GIÁO TRÌNH TỔNG QUAN VỀ MÁY TÍNH

Chia sẻ: Nguyen Ba Thang | Ngày: | Loại File: DOC | Số trang:118

0
233
lượt xem
116
download

GIÁO TRÌNH TỔNG QUAN VỀ MÁY TÍNH

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu tham khảo về công nghệ thông tin

Chủ đề:
Lưu

Nội dung Text: GIÁO TRÌNH TỔNG QUAN VỀ MÁY TÍNH

  1. Bài 1: TỔNG QUAN VỀ MÁY TÍNH 1.1 Giới thiệu chung 1.1.1 Giới thiệu Máy tính (computer) - còn gọi là máy điện toán - là những thiết bị hay hệ thống dùng để lưu trữ, xử lý thông tin. Máy tính được cấu thành bởi các thành phần chức năng cơ bản đã xây dựng trước. Quá trình tác động tương hỗ phức tạp của các thành phần này tạo cho máy tính có tiềm năng to lớn trong xử lý thông tin. Nếu chương trình máy tính được xây dựng một cách chính xác, máy tính có thể mô phỏng lại một số khía cạnh của một vấn đề hay của một hệ thống nào đó trong thế giới thực. Kể từ khi ra đời từ những năm 1950, những tiến bộ trong khoa học và công nghệ không ngừng phát triển, các tính năng của máy tính được ngày càng hoàn thiện. Tuy nhiên, các nguyên lý hoạt động cũng như kiến trúc của máy tính vẫn chưa thay đổi đáng kể. Bài này tập trung giới thiệu các nguyên lý thiết kế máy tính cơ bản. 1.1.2 Máy tính điện tử Do sự phát triển nhanh của lĩnh vực ứng dụng máy tính, đã có nhiều quan niệm khác nhau về máy tính điện tử. Theo nghĩa chung nhất, người ta quan niệm máy tính điện tử (người ta thường gọi tắt là máy tính) như sau : “máy tính điện tử là phương tiện được xây dựng dựa trên các linh kiện điện tử để thực hiện các phép tính toán, biến đổi toán học,...”. Có hai loại máy tính điện tử đó là : - Máy tính số (Digital Computer) là máy tính có nhiệm vụ xử lý dữ liệu được biểu diễn dưới dạng các đại lượng rời rạc như : bóng đèn, transistor,…. - Máy tính tương tự làm việc với các dữ liệu được biểu diễn dưới dạng các đại lượng liên tục điện từ, điện áp,… Hệ thống máy tính thường được cấu thành bởi hai thành phần đó là phần cứng và phần mềm : - Phần cứng (Hardware) là các đối tượng vật lý hữu hình như : bản mạch chính (Mainboard), bộ nhớ trong (RAM), đĩa cứng (HardDisk), màn hình (Display Screen),… 1
  2. - Phần mềm (Software): là các chương trình được cài đặt trên máy tính nhằm thực hiện các thao tác theo yêu cầu của con người. Mỗi phần mềm máy tính là một ánh xạ của phần cứng máy tính, hay còn gọi là máy ảo. 1.1.3 Phân loại máy tính Dựa vào kích thước vật lý, hiệu suất và lĩnh vực sử dụng, người ta chia máy tính số thành 5 loại cơ bản sau, các loại có thể trùm lên nhau một phần: - MicroComputer: còn gọi là PC (personal computer), là những máy tính có kích thước nhỏ, năng lực lưu trữ và tính toán thấp. MicroComputer thường được dùng bởi một người và thực thi các ứng dụng phục vụ cho công việc cá nhân như các ứng dụng văn phòng, giải trí, ... - MiniComputer: là những máy tính cỡ trung bình, kích thước thường lớn hơn PC. MiniComputer có khả năng hỗ trợ hàng trăm người sử dụng đồng thời, và thường dùng để thực hiện các ứng dụng có khối lượng tính toán lớn như dịch vụ Web, dịch vụ Mail,…. - Mainframe: là loại máy tính cỡ lớn, có khả năng hỗ trợ hàng ngàn người sử dụng tính đa dụng. Nó có thể dùng cho các ứng dụng quản lý hoặc xử lý các giao dịch như trong ngân hàng,…cũng như các tính toán khoa học. Mainframe thường dùng kỹ thuật xử lý song song và có hệ thống vào/ra mạnh. Giá một máy tính lớn có thể từ vài trăm ngàn USD đến hàng triệu USD. - SuperComputer: Đây là các siêu máy tính, đắt tiền nhất và tính năng kỹ thuật cao nhất, được thiết kế đặc biệt để đạt được tốc độ thực hiện các phép tính dấu phẩy động cao nhất có thể được. Các siêu máy tính thường là các máy tính vectơ hay các máy tính dùng kỹ thuật vô hướng và được thiết kế để tính toán khoa học, mô phỏng các hiện tượng. Các siêu máy tính được thiết kế với kỹ thuật xử lý song song với rất nhiều bộ xử lý (hàng ngàn đến hàng trăm ngàn bộ xử lý trong một siêu máy tính). 2
  3. 1.2 Nguyên lý thiết kế máy tính cơ bản 1.2.1 Nguyên lý Turing Alan Turing (1912 - 1954) là một nhà toán học người Anh đã đưa ra một thiết bị tính đơn giản gọi là máy Turing. Về lý thuyết, mọi quá trình tính toán có thể được thì đều có thể mô phỏng lại trên máy Turning. Máy Turning gồm có : - Một bộ điều khiển trạng thái hữu hạn (finite control), trong đó có các trạng thái đặc biệt như trạng thái khởi đầu và trạng thái kết thúc. - Một băng ghi (tape) chứa tín hiệu trong các ô. - Một đầu đọc (head) và ghi có thể di chuyển theo 2 chiều trái hoặc phải một đơn vị. Hình 1.1: Sơ đồ máy Turing Ðầu đọc/ghi mang chức năng thông tin nối giữa Bộ điều khiển hữu hạn và băng ghi. Ðầu bằng cách đọc dấu hiệu từ băng và cũng dùng nó để thay đổi dấu hiệu trên băng. Bộ kiểm soát vận hành theo từng bước riêng biệt; mỗi bước nó thực hiện 2 chức năng tùy thuộc vào trạng thái hiện tại của nó và tín hiệu hiện tại của băng: (1) Ðặt bộ điều khiển ở trạng thái ban đầu q1, băng trắng và đầu đọc/ghi chỉ vào ô khởi đầu. (2) Nếu: (a) trạng thái hiện tại q trùng với trạng thái kết thúc qo thì máy sẽ dừng. (b) ngược lại, trạng thái q sẽ chuyển qua q, tín hiệu trên băng s thành s và đầu đọc dịch chuyển sang phải hoặc trái một đơn vị. Máy hoàn thành xong một bước tính toán và sẵn sàng cho bước tiếp theo. 1.2.2 Nguyên lý Von Neumann 3
  4. Năm 1946, nhà toán học Mỹ Von Neumann (1903 - 1957) đã đề ra một nguyên lý máy tính hoạt động theo một chương trình được lưu trữ và truy nhập theo địa chỉ. Nguyên lý này được trình bày ở một bài báo nổi tiếng nhan đề: “Thảo luận sơ bộ về thiết kế logic của máy tính điện tử”. Nội dung nguyên lý Von Neumann gồm: (i) Máy tính có thể hoạt động theo một chương trình đã được lưu trữ Theo Von Neumann, chúng ta có thể tập hợp các lệnh cho máy thi hành theo một chương trình được thiết kế và coi đó như một tập dữ liệu. Dữ liệu này được cài vào trong máy và được truyền bằng xung điện. Ðây là một cuộc cách mạng mới cho máy tính nhằm tăng tốc độ tính toán vào thời đó vì trước kia máy chỉ có thể nhận được các lệnh từ băng giấy hoặc bìa đục lỗ và nạp vào bằng tay. Nếu gặp bài toán lặp lại nhiều lần thì cũng tiếp tục bằng cách nạp lại một cách thủ công như vậy gây hạn chế trong tính toán sử dụng. (ii)Bộ nhớ được địa chỉ hóa Mỗi dữ liệu đều có một địa chỉ của vùng nhớ chứa số liệu đó. Như vậy để truy nhập dữ liệu ta chỉ cần xác định địa chỉ của nó trên bộ nhớ. (iii) Bộ đếm của chương trình Nếu mỗi câu lệnh phải dùng một vùng nhớ để chứa địa chỉ của câu lệnh tiếp theo thì không gian bộ nhớ sẽ bị thu hẹp. Ðể khắc phục hạn chế này, máy được gắn một thanh ghi để chỉ ra vị trí của lệnh tiếp theo cần được thực hiện và nội dung của nó tự động được tăng lên mỗi lần lệnh được truy cập. Muốn đổi thứ tự lệnh ta chỉ cần thay đổi nội dung thanh ghi bằng một địa chỉ của lệnh cần được thực hiện tiếp. 4
  5. Bài 2: TỔ CHỨC CỦA MÁY TÍNH 2.1 Kiến trúc chung của máy tính Kể từ khi ra đời cho đến nay, kiến trúc cơ sở của các máy vi tính ngày nay không thay đổi nhiều. Mọi máy tính số đều được hình thành từ các thành phần chính sau: bộ xử lý trung tâm (CPU: Central Processing Unit), bộ nhớ trong, bộ phận Vào/Ra thông tin. Các bộ phận trên được kết nối với nhau thông qua các hệ thống Bus. Hệ thống Bus bao gồm: bus địa chỉ, bus dữ liệu và bus điều khiển. Bus địa chỉ và bus dữ liệu dùng trong việc chuyển dữ liệu giữa các bộ phận trong máy tính. Bus điều khiển làm cho sự trao đổi thông tin giữa các bộ phận được đồng bộ. Thông thường người ta phân biệt một bus hệ thống dùng trao đổi thông tin giữa CPU và bộ nhớ trong (thông qua cache), và một bus Vào/Ra dùng trao đổi thông tin giữa các bộ phận Vào/Ra và bộ nhớ trong. Một chương trình sẽ được sao chép từ đĩa cứng vào bộ nhớ trong cùng với các thông tin cần thiết cho chương trình hoạt động, các thông tin này được nạp vào bộ nhớ trong từ các bộ phận các thiết bị vào dữ liệu (ví dụ như một bàn phím hay một đĩa từ). Bộ xử lý trung tâm sẽ đọc các lệnh và dữ liệu từ bộ nhớ, thực hiện các lệnh và lưu các kết quả trở lại bộ nhớ trong hay cho xuất kết quả ra bộ phận xuất thông tin (màn hình hay máy in). Data Bus Control Bus Thiết bị vào Bộ nhớ (Input Unit) Bộ xử lý Bộ nhớ ngoài Phối ghép trung trong (Mass store vào/ra tâm (Memory) ROM-RAM Unit) (I/O) (CPU) Thiết bị ra (Output Unit) Adrress Bus 5
  6. Hình 2.1: Kiến trúc chung của máy tính Thành phần cơ bản của một máy tính bao gồm : Bộ nhớ trong: Đây là một tập hợp các ô nhớ, mỗi ô nhớ có một số bit nhất định và chứa một thông tin được mã hoá thành số nhị phân mà không quan tâm đến kiểu của dữ liệu mà nó đang chứa. Các thông tin này là các lệnh hay số liệu. Mỗi ô nhớ của bộ nhớ trong đều có một địa chỉ. Thời gian thâm nhập vào một ô nhớ bất kỳ trong bộ nhớ là như nhau. Vì vậy, bộ nhớ trong còn được gọi là bộ nhớ truy cập ngẫu nhiên (RAM - Random Access Memory). Độ dài của một từ máy tính (computer word) là 32 bit (hay 4 byte), tuy nhiên dung lượng một ô nhớ thông thường là 8 bit (1 Byte). Bộ xử lý trung tâm (CPU - Central Processing Unit): Đây là bộ phận thi hành lệnh của máy tính, CPU lấy lệnh và lấy các số liệu mà lệnh đó xử lý từ bộ nhớ trong để tiến hành xử lý. Bộ xử lý trung tâm gồm có hai phần: phần thi hành lệnh và phần điều khiển. Phần thi hành lệnh bao gồm bộ số học và logic (ALU: Arithmetic And Logic Unit) và các thanh ghi. Nó có nhiệm vụ làm các phép toán trên số liệu. Phần điều khiển có nhiệm vụ đảm bảo thi hành các lệnh một cách tuần tự và tác động các mạch chức năng để thi hành các lệnh. Hình 2.2 : Sơ đồ hoạt động của máy tính PC 6
  7. Bộ phận Vào/ Ra (I/O – Input/Output): đây là bộ phận xuất nhập thông tin, bộ phận này thực hiện sự giao tiếp giữa máy tính và người dùng hay giữa các máy tính với môi trường (như là các hệ thống khác trọng mạng máy tính, ...). Các bộ phận Vào/Ra thường gặp là: bộ lưu trữ ngoài, màn hình, máy in, bàn phím, chuột, máy quét ảnh, các giao diện mạng cục bộ hay mạng diện rộng... Sự khác biệt quan trọng nhất của các hệ máy tính là kích thước và tốc độ. Sự phát triển không ngừng của các thế hệ máy tính nhờ vào hai yếu tố quan trọng, đó là sự phát triển của công nghệ chế tạo IC và công nghệ chế tạo bộ nhớ. 2.2 Hoạt động chung của hệ thống máy tính Các đơn vị chức năng và mối quan hệ của chúng có thể được minh họa bằng hình 2.3 dưới đây (Các đường vẽ bằng nét đứt chỉ mối quan hệ điều khiển. Các đường vẽ bằng nét liền là các con đường truyền dữ liệu). Có thể mô tả sự hoạt động của máy tính một cách khái quát như sau: Trước hết các chương trình và số liệu ban đầu được đưa vào bộ nhớ trong, đó thường là bộ nhớ bán dẫn RAM. Khi bắt đầu thi hành chương trình, lệnh đầu tiên trong tập lệnh đã được tích lũy ở bộ nhớ trong được đưa vào đơn vị điều khiển - CU. CU tiến hành giải mã lệnh, nếu việc giải mã cho thấy lệnh cần một hay một số toán hạng thì nó sẽ xác định xem toán hạng đó nằm ở đâu trong bộ nhớ, việc này thường được gọi là tính địa chỉ các toán hạng. Toán hạng là thành phần tham gia phép tính cơ bản. Ví dụ như một phép cộng có thể có hai toán hạng là hai số hạng tham gia phép cộng. Còn khi cộng một dãy hơn hai số hạng thì phải thực hiện theo một thuật toán chẵng hạn như công liên tiếp từng số hạng với tổng. Sau khi tính địa chỉ các toán hạng, CU sẽ phát ra tín hiệu điều khiển tới các thành phần cần thiết của hệ thống để lấy các toán hạng về, đặt vào các thanh ghi bên trong đơn vị tính toán ALU. CU phát tín hiệu điều khiển tới ALU để ALU thực hiện phép toán trên các toán hạng đã lấy về. Kết quả phép toán có thể được để trong ALU để nó tham gia vào các phép toán tiếp theo hoặc đưa vào 7
  8. bộ nhớ trong. Điều này tùy thuộc vào mã lệnh mà CU đã nhận vào và giải mã. Nếu CU giải mã và thấy rằng, mã lệnh cho biết cần tiến hành rẽ nhánh chương trình, nó sẽ tính địa chỉ bộ nhớ của lệnh kế tiếp cần thực hiện và phát ra các tín hiệu điều khiển để lấy lệnh kế tiếp về, sau đó mọi việc lại diễn ra lặp lại tương tự như quá trình trên trên. Nếu sau khi giải mã, CU thấy rằng không cần rẽ nhánh chương trình, nó sẽ phát ra tín hiệu điều khiển để lấy về lệnh ngay sau nó trong bộ nhớ, sau đó mọi việc lại diễn ra lặp lại tương tự như quá trình trên. Hình 2.3: Mối quan hệ logic giữa các thành chức năng trong máy tính Quan hệ giữa bộ nhớ trong và ALU là quan hệ 2 hướng, tức là số liệu sau khi đã được đưa vào xử lý trong ALU theo đúng ý muốn của người lập chương trình sẽ lại được đưa ra bộ nhớ trong để sau đó khi có lệnh từ CU số liệu này có thể được đưa ra thiết bị ra. Qua mối quan hệ nêu trên ta thấy rằng, CU, ALU và Bộ nhớ trong tham gia trực tiếp vào quá trình xử lý số liệu, chính vì vậy mà chúng còn được gọi là Đơn vị xử lý trung tâm - CPU. 8
  9. Tập hợp các thiết bị vào và thiết bị ra thường được gọi bằng một cái tên chung là thiết bị ngoại vi (thuật ngữ tiếng Anh là Peripherals, hoặc I/O Devices). Có những thiết bị trong quá trình hoạt động của máy tính khi thì đóng vai trò của thiết bị vào, khi thì đóng vai trò của thiết bị ra ví dụ như đĩa cứng, đĩa CD. Thông tin trao đổi giữa bộ nhớ ngoài và hệ thống máy tính luôn thông qua bộ nhớ trong, dưới sự điều khiển của CU. Bộ nhớ ngoài của các máy tính ngày nay được sử dụng thường xuyên nên tốc độ hoạt động của chúng có ảnh hưởng nhiều tới tốc độ chung của hệ thống máy tính. 2.4 Phần cứng và phần mềm Các chương trình viết bằng ngôn ngữ máy (cấp 1) được thực thi trực tiếp bằng các mạch điện tử của máy tính, không có trình thông dịch và biên dịch nào can thiệp vào. Các mạch điện tử cùng với bộ nhớ và các thành phần xuất / nhập tạo nên phần cứng máy tính. Phần cứng bao gồm các mạch tích hợp, các board mạch in, cable, nguồn cung cấp, bộ nhớ, thiết bị đầu cuối,… Phần mềm bao gồm các giải thuật và các biểu diễn của các giải thuật này gọi là chương trình. Nó chính là tập hợp các lệnh tạo thành một chương trình, chứ không phải là các phương tiện vật lý lưu trữ chúng. Một dạng trung gian giữa phần mềm và phần cứng gọi là phần dẻo (firmware). Nó chính là thành phần bao gồm phần mềm được đặt vào bên trong các mạch điện tử trong quá trình sản xuất. Phần dẻo được dùng khi chương trình không thay đổi hay hiếm khi phải thay đổi như chương trình điều khiển đặt trong ROM BIOS. Một thao tác bất kỳ thực thi bằng phần mềm có thể được gắn trực tiếp vào phần cứng và một lệnh bất kỳ thực thi bằng phần cứng cũng có thể được mô phỏng bằng phần mềm. Quyết định đặt một số chức năng vào phần mềm và các chức năng khác vào phần cứng dựa trên các yếu tố giá thành, tốc độ, độ tin cậy. Trên nhiều máy tính đầu tiên, phần cứng và phần mềm được phân biệt rõ ràng. Phần cứng thực hiện vài lệnh đơn giản như cộng và nhảy, các thủ tục khác phải do lập trình viên tự thiết kế. Sau đó, một số thao tác thường xuyên thực thi đòi hỏi các nhà thiết kế hướng đến yêu cầu xây dựng các mạch điện từ thực thi các thao tác này. Kết quả là hình thành xu hướng di chuyển các thao tác theo hướng từ cấp cao xuống cấp 9
  10. thấp hơn. Một số thao tác trước đây được lập trình ở cấp máy quy ước, sau đó được chuyển xuống thực thi ở phần cứng. Tuy nhiên, khi xuất hiện thế hệ máy tính dùng vi lập trình và thế hệ máy tính nhiều cấp, lại xuất hiện xu hướng ngược lại, nghĩa là di chuyển các thao tác từ cấp thấp lên cấp cao hơn. Ví dụ như lệnh cộng sẽ được thực hiện trực tiếp bằng phần cứng ở các máy trước kia. Đối với máy tính được vi lập trình hóa, lệnh cộng của cấp máy quy ước được thông dịch bằng một vi chương trình chạy trên cấp thấp nhất và được thực thi bằng một chuỗi các bước nhỏ: tìm lệnh, nạp lệnh, xác định lệnh, định vị dữ liệu, tìm và nạp dữ liệu từ bộ nhớ, thực thi phép cộng và lưu trữ kết quả. Một số đặc trưng trước đây được lập trình ở cấp máy quy ước, sau đó được thực hiện bằng phần cứng hay vi chương trình: - Các lệnh nhân, chia số nguyên. - Các lệnh xử lý dấu chấm động. - Các lệnh gọi thủ tục và quay về từ lệnh gọi thủ tục. - Các lệnh đếm. - Các lệnh quản lý chuỗi ký tự. - Các đặc trưng làm tăng tốc độ tính toán chuỗi: định địa chỉ chỉ số và định địa chỉ gián tiếp. - Các đặc trưng cho phép chương trình di chuyển trong bộ nhớ sau khi đã thực thi (cấp phát lại bộ nhớ). - Các xung clock cho thủ tục định thời. - Các ngắt báo hiệu cho máy tính. - Khả năng chuyển đổi quá trình. Như vậy, ta thấy ranh giới giữa phần cứng và phần mềm là không nhất định và thường xuyên thay đổi. Theo quan điểm của lập trình viên, cách thức thực thi một lệnh là không quan trọng, ngoại trừ tốc độ thực thi. Như vậy, phần cứng của người này có thể là phần mềm của người kia. Từ đó dẫn đến ý tưởng thiết kế máy tính có cấu trúc (structured computer). Đó là cấu trúc một máy tính 10
  11. thành một chuỗi các cấp, lập trình viên làm việc trên cấp n không quan tâm đến các cấp khác. Bài 3: BỘ VI XỬ LÝ CỦA INTEL Có thể nói, lịch sử phát triển của máy tính PC gắn liền với lịch sử phát triển của các thế hệ bộ vi xử lý. Bộ vi xử lí trong bản mạch chính là thành phần quan trọng nhất của máy tính của PC. Có hai thuật ngữ dùng để chỉ bộ phận này là: Bộ vi xử lý (MicroProcessor - MP) hoặc Đơn vị xử lý trung tâm (Central Processing Unit - CPU). Nó được phát triển trên cơ sở công nghệ chế tạo các mạch vi điện tử có độ tích hợp rất lớn với các phần tử cơ bản là các transistor trường MOS có độ tiêu hao công suất rất nhỏ. Trong họ vi xử lý 80x86, chúng thực hiện tất cả các hoạt động logic và số học. Nói chung, vi xử lí đọc số liệu từ bộ nhớ, xử lí nó theo cách được xác định bởi lệnh và sau đó ghi kết qủa vào bộ nhớ hoặc thiết bị ngoại vi. 3.1 Cấu trúc chung của bộ vi xử lý 80286 Intel Các bộ vi xử lý tiên tiến hiện nay đã đạt đến tốc độ xử lý hàng trăm triệu, thậm chí hàng tỷ phép tính trong một giây do có mật độ tích hợp vô cùng lớn cộng với việc áp dụng những giải pháp kỹ thuật nhằm tối ưu hoá hiệu năng tính toán. Tuy nhiên, cấu trúc chung của các bộ vi xử lý cho đến nay vẫn dựa trên những nguyên tắc thiết kế cơ bản từ đầu những năm 70 của thế kỷ XX. Intel là hãng đi đầu trong công nghệ chế tạo bộ vi xử lý và bài này trình bày cấu trúc của bộ vi xử lý 80286 - bộ vi xử lý được đánh giá là có vai trò đi tiên phong trong việc tiếp cận với các hệ điều hành đa nhiệm. Sơ đồ chân tín hiệu của 80286 được thể hiện như hình 3.1. Những đặc trưng cơ bản của 80286 là: - Tần số xung nhịp là 16MHz. - Khả năng địa chỉ hoá được 16MB bộ nhớ vật lý và 1GB nhớ ảo. - Có hai chế độ hoạt động là chế độ thực và chế độ ảo (chế độ bảo vệ). - Có khả năng làm việc với bộ đồng xử lý. 11
  12. Hình 3.1: Sơ đồ bố trí chân tín hiệu của 80286 Các tín hiệu của 80286 được phân theo nhóm và được tổ chức thành 3 nhóm cơ bản: a. Nhóm tín hiệu địa chỉ: A0 – A23 là 24 chân tín hiệu địa chỉ dùng để địa chỉ hoá cho các bộ nhớ vật lý và các cổng vào/ra. Dung lượng bộ nhớ tối đa có thể địa chỉ hoá trực tiếp được là 224 = 16MB. Khi làm việc với các cổng vào/ra thì các chân địa chỉ A16 – A23 được ghim ở mức logic 0, do đó 80286 có thể quản lý trực tiếp 16K cổng vào/ra. b. Nhóm tín hiệu dữ liệu: D0 – D15 là 16bit của kênh dữ liệu 2 chiều, ba trạng thái và có mức tích cực là logic 1. c. Nhóm tín hiệu điều khiển và đồng bộ: 12
  13. - CLK là tín hiệu xung đồng bộ cho bộ vi xử lý. Tần số vào CLK sẽ được chia đôi ở bên trong 80286 và tạo thành đồng hồ ngoại vi PCLK. Mỗi CLK được gọi là 1 pha của 80286. - Cap là chân gắn tụ lọc nhiễu. Tụ này có giá trị 0,047μF ± 20% có tác dụng khử nhiễu xung của nguồn nuôi. - /BHE là tín hiệu cho phép chọn phần cao của kênh dữ liệu. Tín hiệu này kết hợp với A0 cho phép cho biết dữ liệu được truyền theo byte hay word: BHE A0 Chøc n¨ng 0 0 D÷ liÖu­­WORD   tõ D15­D0 D÷ liÖu­­BYTE   cao  tõ D15­ 0 1 D8 D÷ liÖu­­BYTE   thÊp   tõ D7­ 1 0 D0 1 1 Kh«ng sö dông - M/IO là tín hiệu dùng để phân biệt bộ nhớ và cổng vào/ra thông tin khi mà bộ vi xử lý cần quy chiếu chúng, nếu quy chiếu bộ nhớ thì M/IO = 1 còn quy chiếu cổng vào/ra thì M/IO = 0. - Các tín hiệu COD/INTA cùng với các tín hiệu M/IO, /S1, /S0 cho phép phân biệt các chu kỳ máy khác nhau theo bảng sau: COD/INTA M/Io   S S0         Chu kú m¸y cña 80286 1 0 0 0 0 Tr¶ lêi ng¾t 0 0 0 1 Cha sö dông 0 0 1 0 Cha sö dông 0 0 1 1 Kh«ng lµ chu kú m¸y 0 1 0 0 A1=1 dõng     A1=0   ®ãng 0 1 0 1 Chu kú m¸y  MR 0 1 1 0 Chu kú m¸y  MW 0 1 1 1 Khéng lµ chu kú m¸y 1 0 0 0 Cha sö dông 1 0 0 1 Chu kú m¸y  IOR 1 0 1 0 Chu kú m¸y  IOW 1 0 1 1 Cha sö dông 1 1 0 0 Cha sö dông 1 1 0 1 Chu kú m¸y  OF 13
  14. 1 1 1 0 Cha sö dông 1 1 1 1 Kh«ng lµ chu kú m¸y - /READY là tín hiệu sẵn sàng làm việc của thiết bị ngoại vi, đây là tín hiệu được dùng để hỗ trợ cho hoạt động của CPU khi giao tiếp với thiết bị ngoại vi có tốc độ chậm. - INTR là tín hiệu yêu cầu ngắt của ngoại vi, /INTA là tín hiệu trả lời ngắt của CPU, NMI là tín hiệu ngắt không che được (các tín hiệu này được đề cập chi tiết trong bài Hoạt động ngắt của máy tính). - HOLD và HLDA là tín hiệu phục vụ cho chế độ thâm nhập bộ nhớ trực tiếp DMA (sẽ được đề cập trong bài tổ chức bộ nhớ cho máy tính PC). - LOCK là tín hiệu cấm các bộ vi xử lý khác (trong chế độ làm việc song song) dành quyền làm chủ kênh hệ thống. Lệnh LOCK khởi động tín hiệu trên và nó sẽ trở thành mức tích cực một cách tự động khi thực hiện lệnh XCHG hoặc ở chu kỳ /INTA hoặc trong thời gian thâm nhập bảng các bộ mô tả. - PEREQ và /PEACK phục vụ chế độ đối thoại giữa bộ vi xử lý 80286 với các bộ đồng xử lý ví dụ như bộ đồng xử lý 80287. Tín hiệu PEREQ ở mức logíc 1 là tín hiệu yêu cầu 80286 gửi một toán hạng cho bộ đồng xử lý. Tín hiệu /PEACK thông báo cho bộ đồng xử lý biết toán hạng mà nó yêu cầu đang được chuyển tới. - /BUSY và /ERROR là tín hiệu điều khiển cho bộ đồng xử lý. /BUSY thông báo cho 80286 biết rằng bộ đồng xử lý đang bận. Lúc này bộ vi xử lý 80286 thực hiện các lệnh ESC và WAIT để đợi bộ đồng xử lý. Tín hiệu /ERROR sẽ báo cho 80286 biết rằng bộ đồng xử lý phát hiện điều kiện ngoại lệ không che được. - RESET là tín hiệu khởi động có mức tích cực là mức logíc 1. Tín hiệu này sẽ lập trạng thái ban đầu cho tất cả các thành phần cần thiết của hệ máy tính. Khi có RESET thì các tín hiệu ra có mức logíc như sau: Các tín hiệu ra Trạng thái /S1, /S0, /PEACK, A0-A23 1 14
  15. /BHE, /LOCK 1 M/IO, CLD/INTA, HLDA 0 D0-D15 Trở kháng cao Hình 3.2 biểu diễn sơ đồ khối chức năng (bên trong) của bộ vi xử lý 8028: Hình 3.2: Sơ đồ khối cấu trúc của 80286 Bộ vi xử lý 80286 được cấu tạo từ 4 đơn vị có thể làm việc song song (hình 2.2). Đó là các đơn vị: BU (BUS UNIT), IU (INSTRUCTION UNIT), EU (EXECUTE UNIT) và AU (ADDRESSED UNIT). Đơn vị BU phát sinh các tín hiệu địa chỉ, dữ liệu và thông tin điều khiển để thâm nhập vào bộ nhớ hay vào các cổng vào/ra. Nó cho phép thiết lập các quan hệ với các bộ đồng xử lý hoặc với các bộ xử lý đang làm chủ kênh. Đơn vị này cho phép quá trình nhận lệnh diễn ra song song với các quá trình khác nhờ có tệp đệm 6 byte. Nó cho phép loại trừ thời gian chết khi nhận lệnh từ bộ nhớ. Đơn vị lệnh IU nhận lệnh từ tệp đệm, giải mã rồi đưa vào tệp đợi. Tệp đợi chứa được 3 lệnh. Đơn vị thực hiện EU sẽ thực hiện lệnh đã được giải mã trong tệp đợi. Nó liên hệ nới bộ nhớ và cổng vào/ra thông qua đơn vị BU. Đơn vị địa chỉ AU bảo đảm việc bảo vệ, quản lý bộ nhớ và chuyển địa chỉ logíc (địa chỉ ảo) thành địa chỉ vật lý (địa chỉ thực) cho đơn vị điều khiển kênh BU. 15
  16. Ngoài ra, để hỗ trợ cho các hoạt động của mình, bên trong CPU có một tập hợp các thanh ghi được chia thành các nhóm theo hình sau: 8086-80286 i386/i486/ Pentium AX AH AL EAX AH AL BX BH BL EBX BH BL Các CX CH CL ECX CH CL thanh ghi DX DH DL EDX DH DL đa năng BP EBP BP SI ESI SI DI EDI DI SP ESP SP CS CS Các DS DS thanh SS SS ghi ES ES đoạn FS GS -Thanh ghi IP EIP IP con trỏ lệnh -Thanh ghi cờ Flag EFlag Flag Hình 3.3 : Các thanh ghi của họ 80x86 Trong đó: AX (AH, AL): Thanh ghi tích luỹ BX( BH, BL): Thanh ghi cơ sở CX (CH, CL): Thanh ghi đếm DX (DH, DL): Thanh ghi số liệu BP: Thanh ghi con trỏ cơ sở SI: Thanh ghi chỉ số nguồn DI: thanh ghi chỉ số đích SP: Thanh ghi con trỏ ngăn xếp CS: Thanh ghi đoạn mã DS: Thanh ghi đoạn số liệu SS: Thanh ghi đoạn ngăn xếp ES: Thanh ghi đoạn phụ IP: Thanh ghi con trỏ lệnh F: Thanh ghi cờ. Có thể liệt kê các nhóm thanh ghi điển hình như sau: Thanh ghi con trỏ lệnh IP IP dùng để lưu trữ địa chỉ của lệnh kế tiếp sẽ được chạy trong đoạn chương trình hiện tại. IP giống như bộ đếm chương trình của các laọi CPU 16
  17. trước. Mỗi lần một từ lệnh được đọc ra từ bộ nhớ, BIU sẽ thay đổi giá trị của IP sao cho nó đến địa chỉ của từ lệnh kế tiếp trong bộ nhớ. Các thanh ghi dữ liệu - Thanh ghi tích lũy AX, thường được sử dụng để tích luỹ các kết quả tính toán (cộng, trừ, nhân, chia...) - Thanh ghi cơ sở BX, thường dùng chỉ địa chỉ cơ sở (đáy) của một vùng nhớ trong bộ nhớ. - Thanh ghi đếm CX, thường dùng để khai báo số lần một thao tác nào đó phải được thực hiện trong các vòng lặp, phép dịch, phép quay... giá trị của CX tăng lên môt với một tác động. - Thanh ghi số liệu DX, thường dùng để lưu trữ dữ liệu dùng làm thông số chuyển giao cho một chương trình. DX là thanh ghi duy nhất dùng cho việc truy nhập các địa chỉ vào/ra trên 255 (FFh). Các thanh ghi con trỏ và chỉ số - Thanh ghi con trỏ ngăn xếp SP, chứa địa chỉ đỉnh ngăn xếp, Ngăn xếp là một vùng nhớ đặc biệt, hoạt động liên quan đến các chỉ thị của CPU. Địa chỉ cũng như kích thước của nó do chương trình ấn định. SP cho phép truy xuất dễ dàng các địa chỉ trong đoạn ngăn xếp SS. Giá trị trong SP mô tả phần offset của địa chỉ ngăn xếp kế tiếp, so với địa chỉ hiện tại đang được lưu trong SS. - Thanh ghi con trỏ cơ sở BP, cũng có chức năng mô tả offset tính từ SS nhưng còn được sử dụng để truy nhập dữ liệu bên trong ngăn xếp. - Các thanh ghi chỉ số (index regiters): được dùng để lưu trữ các địa chỉ offset đối với những lệnh truy nhập dữ liệu được cất trong thanh ghi đoạn dữ liệu. Do đó chúng luôn liên quan tới các trị số trong thanh ghi đoạn số liệu DS (data segment). Chúng bao gồm thanh ghi chỉ số nguồn (source index) và thanh ghi chỉ số đích (destination index). Các thanh ghi đoạn Bộ nhớ PC được chia thành các đoạn lôgic dài 64 kbyte một đoạn như sẽ nói dưới đây. CPU có thể truy nhập một lần tới bốn đoạn. Địa chỉ của đoạn (địa 17
  18. chỉ cơ sở - địa chỉ bắt đầu thấp nhất của vùng nhớ) chứa trong các thanh ghi đoạn. Có các thanh ghi đoạn sau: - Thanh ghi đoạn mã CS (code segment register), dùng để nhận diện địa chỉ bắt đầu của đoạn chương trình hiện hành trong bộ nhớ. - Thanh ghi đoạn dữ liệu DS (data segment register), dùng để nhận diện địa chỉ bắt đầu của đoạn số liệu hiệnhành trong bộ nhớ, nghĩa là nơi chứa các biến của chương trình. - Thanh ghi đoạn ngăn xếp SS (stack segment register), chứa địa chỉ lôgic là địa chỉ bắt đầu của ngăn xếp trong bộ nhớ. - Thanh ghi đoạn mở rộng ES (extra segment register), thường dùng để lưu trữ dữ liệu các chuỗi (string). Thanh ghi cờ Chỉ có chín trong số 16 bit của thanh ghi này được sử dụng. Mỗi cơ hiệu (là mỗi bit) có thể được đắt (=1) hay xoá (=0) để chỉ thị kết quả của một thao tác trước đó hoặc trạng thái hiện tại của bộ xử lí. Tuỳ từng loại cụ thể, họ 80x86 có một số cờ như sau: - 6 bit mô tả trạng thái (cờ trạng thái) + Cờ nhớ CF (carry): được đặt nếu một thao tác phát ra một tín hiệu carry hoặc borrow cho toán hạng đích. Thí dụ, khi kết quả của phép lấy tổng hai toán hạng 8 bit quá 225 (= 28 -1). Cờ này có thể được đặt bởi lệnh STC (set carry), được xoá bởi lệnh CLC (clear carry) hoặc cộng thêm 1 bởi lệnh CMC (complement carry). + Cờ chẵn lẻ PF (parity): được đặt nếu kết quả của một phép toán có chứa số bit được đặt (=1). + Cờ mang phụ AF (auxiliary carry): được dùng cho mã BCD và được đặt nếu thao tác phát ra mộ tín hiệu carry hoặc borrow cho 4 bit thấp của toán hạng. + Cờ zê - rô ZF (zero): được đặt nếu kết quả của phép toán bằng không (=0) + Cờ đấu SF (sign): đấu tương ứng với bit nhiều ý nghĩa nhất của kết quả phép toán được đặt (0 = kết quả đương, 1 = kết quả âm). 18
  19. + Cờ tràn OF (overflow): được đặt nếu kết quả của phép toán quá lớn hoặc quá nhỏ cho toán hạng đích. - 3 bit cờ điều khiển: + Cờ báo hướng DF (direction): xác định hướng của phép toán xử lí chuỗi. Nếu hướng được đặt, chuỗi sẽ được xử lí từ địa chỉ cao tới địa chỉ thấp và ngược lại. Cờ này có thể được đặt bởi lệnh STD và được xoá bởi lệnh CLD. + Cờ ngắt IF (interrup enable): nếu được đặt, CPU sẽ chấp nhận một yêu cầu ngắt cứng IRQs và phục vụ ngắt. Cờ này có thể được đặt bởi lệnh STI và được xoá bởi lệnh CLI. + Cờ bước TF (trap): nếu được đặt, CPU sẽ phát ra ngắt số 1 sau mỗi bước chương trình dùng cho việc gỡ rối (debug). Trong trường hợp này, chương trình được chạy từng bước một. Cờ này có thể không được đặt hay xoá trực tiếp bởi lệnh máy mà phải dùng với sự phụ trợ của ngăn xếp. 3.2 Hoạt động của bộ vi xử lý 80286 Một phương án kết nối bộ vi xử lý 80286 trong máy tính PC được chỉ ra ở hình 3.3. Ta sẽ mô tả 2 hoạt động điển hình của nó là hoạt động đọc/ghi thông tin và hoạt động quản lý bộ nhớ. 19
  20. Address Buffer Clock CLK 74LS244 Multiplexer 82284 74LS158 Address Synchr CLK READY Data Buffer 74LS245 74LS245 Memory Buffer CPU Main Memory Bus Controller 80286 Controller 82288 Memory Asynchronous READY Hình 3.3: Sơ đồ ghép nối CPU với các vi mạch bổ trợ Ghi chú: 82284: vi mạch phát xung nhịp đồng hồ 8284 Address Buffer: đệm địa chỉ asynchronous READY: tín hiệu READY không Data Buffer: đệm số liệu: đồng bộ Ports: các cổng Sychr, READY: tín hiệu READY đồng bộ Bus Controller: bộ điều khiển bus 3.2.1 Hoạt động đọc/ghi thông tin: Chu kỳ máy đọc thông tin có thể chia làm 6 pha: A, B, C, D, E, F. 20
Đồng bộ tài khoản