Bài giảng Cấu trúc máy tính - Chương 3: Hệ thống máy tính (Tiếp theo)

pdf 213 trang ngocly 50
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cấu trúc máy tính - Chương 3: Hệ thống máy tính (Tiếp theo)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_cau_truc_may_tinh_chuong_3_he_thong_may_tinh_tiep.pdf

Nội dung text: Bài giảng Cấu trúc máy tính - Chương 3: Hệ thống máy tính (Tiếp theo)

  1. 3.2. Bộ xử lý trung tâm 3.2.1. Cấu trúc cơ bản của CPU 3.2.2. Tập lệnh 3.2.3. Hoạt động của CPU 241
  2. 3.2.1. Cấu trúc cơ bản của CPU §¬n vÞ §¬n vÞ TËp c¸c sè häc vµ ®iÒu khiÓn thanh ghi logic (CU) (RF) (ALU) bus bªn trong §¬n vÞ nèi ghÐp bus (BIU) bus ®iÒu khiÓn bus d÷ liÖu bus ®Þa chØ 242
  3. 1. Đơn vị điều khiển (CU) . Chức năng:  Điều khiển nhận lệnh từ bộ nhớ đƣa vào thanh ghi lệnh và tăng nội dung của PC để trỏ sang lệnh kế tiếp.  Giải mã lệnh nằm trong thanh ghi lệnh để xác định thao tác cần thực hiện và phát ra tín hiệu điều khiển thực hiện lệnh đó.  Nhận tín hiệu yêu cầu từ bus hệ thống và đáp ứng với các yêu cầu đó. 243
  4. Đơn vị điều khiển (tiếp) . Mô hình kết nối của đơn vị điều khiển: Thanh ghi lÖnh TÝn hiÖu C¸c cê ®iÒu khiÓn §¬n vÞ bªn trong CPU ®iÒu khiÓn Clock TÝn hiÖu yªu cÇu TÝn hiÖu ®iÒu khiÓn tõ bus hÖ thèng ®Õn bus hÖ thèng Bus ®iÒu khiÓn 244
  5. Đơn vị điều khiển (tiếp) . Các tín hiệu đƣa đến đơn vị điều khiển:  Mã lệnh từ thanh ghi lệnh đƣa đến để giải mã  Các cờ từ thanh ghi cờ cho biết trạng thái của CPU  Xung clock từ bộ tạo xung bên ngoài cung cấp cho đơn vị điều khiển làm việc  Các tín hiệu yêu cầu từ bus điều khiển 245
  6. Đơn vị điều khiển (tiếp) . Các tín hiệu phát ra từ đơn vị điều khiển:  Các tín hiệu điều khiển bên trong CPU: . Điều khiển các thanh ghi . Điều khiển hoạt động của ALU  Các tín hiệu điều khiển bên ngoài CPU: . Điều khiển bộ nhớ chính . Điều khiển các module vào-ra 246
  7. 2. Đơn vị số học và logic (ALU) . Chức năng: Thực hiện các phép toán số học và các phép toán logic.  Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu,  Logic: AND, OR, XOR, NOT, các phép dịch và quay bit 247
  8. Đơn vị số học và logic (tiếp) . Mô hình kết nối của ALU: D÷ liÖu vµo tõ D÷ liÖu ra ®Õn c¸c thanh ghi c¸c thanh ghi §¬n vÞ C¸c tÝn hiÖu sè häc vµ logic tõ ®¬n vÞ (ALU) ®iÒu khiÓn Thanh ghi cê 248
  9. 3. Tập thanh ghi (RF) a. Chức năng và phân loại b. Một số thanh ghi điển hình 249
  10. a. Chức năng và phân loại . Chức năng:  Là tập hợp các thanh ghi nằm trong CPU  Chứa các thông tin tạm thời phục vụ cho hoạt động hiện tại của CPU. 250
  11. Phân loại tập thanh ghi . Phân loại theo khả năng can thiệp của ngƣời lập trình:  Các thanh ghi không lập trình đƣợc: ngƣời lập trình không can thiệp đƣợc  Các thanh ghi lập trình đƣợc: ngƣời lập trình can thiệp đƣợc . Phân loại theo chức năng:  Thanh ghi địa chỉ: quản lý địa chỉ của ngăn nhớ hay cổng vào-ra  Thanh ghi dữ liệu: chứa các dữ liệu tạm thời hoặc kết quả trung gian phục vụ cho việc xử lý dữ liệu của CPU  Thanh ghi điều khiển và trạng thái: chứa các thông tin điều khiển và trạng thái của CPU  Thanh ghi lệnh: chứa lệnh đang đƣợc thực hiện  Thanh ghi đa năng: có thể chứa địa chỉ hoặc dữ liệu 251
  12. b. Một số thanh ghi điển hình . Các thanh ghi địa chỉ  Bộ đếm chƣơng trình (Program Counter – PC)  Con trỏ dữ liệu (Data Pointer – DP)  Con trỏ ngăn xếp (Stack Pointer – SP)  Thanh ghi cơ sở và thanh ghi chỉ số (Base Register & Index Register) . Các thanh ghi dữ liệu . Thanh ghi trạng thái 252
  13. Các vùng nhớ cơ bản của CT . Chƣơng trình đang thực hiện phải nằm trong bộ nhớ chính và nó chiếm 3 vùng nhớ cơ bản sau:  Vùng nhớ lệnh (Code): chứa các lệnh của chƣơng trình.  Vùng dữ liệu (Data): chứa dữ liệu của chƣơng trình. Thực chất đây là nơi cấp phát các ngăn nhớ cho các biến nhớ.  Vùng ngăn xếp (Stack): là vùng nhớ có cấu trúc LIFO (Last In First Out) dùng để cất giữ thông tin và sau đó có thể khôi phục lại. Thƣờng dùng cho việc thực hiện các chƣơng trình con. 253
  14. Bộ đếm chƣơng trình (PC) . Còn gọi là con trỏ lệnh (Instruction Pointer - IP) . Là thanh ghi chứa địa chỉ của lệnh tiếp theo sẽ đƣợc nhận vào. . Sau khi một lệnh đƣợc nhận vào thì nội dung của PC tự động tăng để trỏ sang lệnh kế tiếp nằm ngay sau lệnh vừa đƣợc nhận. 254
  15. Minh họa hoạt động của PC Vùng nhớ lệnh (Code) Lệnh Lệnh PC Lệnh sẽ đƣợc nhận vào Lệnh kế tiếp Lệnh Lệnh 255
  16. Thanh ghi con trỏ dữ liệu (DP) . Chứa địa chỉ của ngăn nhớ dữ liệu mà CPU muốn truy cập. . Thƣờng có một số thanh ghi con trỏ dữ liệu. 256
  17. Minh họa hoạt động của DP Vùng dữ liệu (Data) Dữ liệu Dữ liệu DP Dữ liệu cần đọc/ghi Dữ liệu Dữ liệu Dữ liệu 257
  18. Con trỏ ngăn xếp (SP) . Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp (ngăn xếp có chiều từ đáy lên đỉnh ngƣợc với chiều tăng của địa chỉ) . Khi cất thêm một thông tin vào ngăn xếp:  Nội dung của SP tự động giảm  Thông tin đƣợc cất vào bắt đầu từ ngăn nhớ trỏ bởi SP . Khi lấy một thông tin ra khỏi ngăn xếp:  Thông tin đƣợc lấy ra bắt đầu từ ngăn nhớ trỏ bởi SP  Nội dung của SP tự động tăng . Khi ngăn xếp rỗng: SP trỏ vào đáy ngăn xếp 258
  19. Minh họa hoạt động của SP Ngăn xếp (Stack) Ngăn xếp (Stack) Đỉnh Stack cũ Đỉnh Stack mới Đ Đ ị ị SP Đỉnh Stack mới a SP Đỉnh Stack cũ a c c h h ỉ ỉ t t ă ă n n g g d d ầ ầ n n Đáy Stack Đáy Stack Khi lấy 1 thông tin ra khỏi ngăn xếp, SP tự động tăng Khi cất 1 thông tin vào ngăn xếp, SP tự động giảm 259
  20. Thanh ghi cơ sở và thanh ghi chỉ số . Thanh ghi cơ sở: chứa địa chỉ của ngăn nhớ cơ sở (địa chỉ cơ sở). . Thanh ghi chỉ số: chứa độ lệch địa chỉ giữa ngăn nhớ mà CPU cần truy cập so với ngăn nhớ cơ sở (chỉ số). . Địa chỉ của ngăn nhớ cần truy cập = địa chỉ cơ sở + chỉ số 260
  21. Minh họa thanh ghi cơ sở và chỉ số Bộ nhớ chính Thanh ghi cơ sở Ngăn nhớ cơ sở Thanh ghi chỉ số Ngăn nhớ cần truy cập 261
  22. Các thanh ghi dữ liệu . Chứa các dữ liệu tạm thời hoặc các kết quả trung gian phục vụ cho việc xử lý dữ liệu của CPU . Cần có nhiều thanh ghi dữ liệu . Các thanh ghi số nguyên: 8, 16, 32, 64 bit . Các thanh ghi số dấu chấm động 262
  23. Thanh ghi trạng thái . Còn gọi là thanh ghi cờ (Flag Register) . Chứa các thông tin trạng thái của CPU  Các cờ phép toán: biểu thị trạng thái của kết quả phép toán  Các cờ điều khiển: điều khiển chế độ làm việc của CPU 263
  24. Ví dụ cờ phép toán . Cờ Zero (ZF - cờ rỗng): đƣợc thiết lập lên 1 khi kết quả của phép toán vừa thực hiện xong bằng 0. . Cờ Sign (SF - cờ dấu): đƣợc thiết lập lên 1 khi kết quả của phép toán vừa thực hiện nhỏ hơn 0, hay nói cách khác, cờ Sign nhận giá trị bằng bit dấu của kết quả. . Cờ Carry (CF - cờ nhớ): đƣợc thiết lập lên 1 nếu phép toán xảy ra hiện tƣợng carry-out. . Cờ Overflow (OF - cờ tràn): đƣợc thiết lập lên 1 nếu phép toán xảy ra hiện tƣợng overflow. 264
  25. Ví dụ cờ điều khiển . Cờ Interrupt (IF - cờ cho phép ngắt):  Nếu IF = 1 thì CPU ở trạng thái cho phép ngắt với tín hiệu yêu cầu ngắt từ bên ngoài gửi tới.  Nếu IF = 0 thì CPU ở trạng thái cấm ngắt với tín hiệu yêu cầu ngắt từ bên ngoài. 265
  26. Bài tập . Giả sử có các biến nhớ a, b, c, d, e, f thuộc kiểu số nguyên có dấu 8 bit. Các biến a, b đƣợc gán giá trị nhƣ sau: a:=-58 b:=72 Hãy biểu diễn các phép tính sau đây dƣới dạng số nhị phân và cho biết kết quả dạng thập phân cùng với giá trị của các cờ ZF, SF, CF, OF tƣơng ứng. c:=a-b d:=a+b e:=b-a f:=-a-b 266
  27. Bộ xử lý trung tâm 3.2.1. Cấu trúc cơ bản của CPU 3.2.2. Tập lệnh 3.2.3. Hoạt động của CPU 267
  28. 3.2.2. Tập lệnh 1. Giới thiệu chung về tập lệnh 2. Các kiểu thao tác điển hình 3. Các phƣơng pháp địa chỉ hóa toán hạng 268
  29. 1. Giới thiệu chung về tập lệnh . Mỗi bộ xử lý có một tập lệnh xác định (mang tính kế thừa trong cùng một dòng họ). . Tập lệnh thƣờng có hàng chục đến hàng trăm lệnh. . Mỗi lệnh là một chuỗi số nhị phân mà bộ xử lý hiểu đƣợc để thực hiện một thao tác xác định. . Các lệnh đƣợc mô tả bằng các kí hiệu gợi nhớ các lệnh hợp ngữ. 269
  30. Khuôn dạng của một lệnh máy Mã thao tác Tham chiếu toán hạng . Mã thao tác (Operation Code - Opcode): mã hóa cho thao tác mà CPU phải thực hiện. . Tham chiếu toán hạng: mã hóa cho toán hạng hoặc nơi chứa toán hạng mà thao tác sẽ tác động.  Toán hạng nguồn (Source Operand): dữ liệu vào của thao tác (CPU sẽ đọc)  Toán hạng đích (Destination Operand): dữ liệu ra của thao tác (CPU sẽ ghi) 270
  31. Số lƣợng toán hạng trong lệnh . Ba toán hạng:  2 toán hạng nguồn, 1 toán hạng đích  VD: c = a + b  Từ lệnh dài vì phải mã hóa địa chỉ cho cả 3 toán hạng  Thƣờng đƣợc sử dụng trên các bộ xử lý tiên tiến . Hai toán hạng:  1 toán hạng là toán hạng nguồn, toán hạng còn lại vừa là nguồn vừa là đích.  VD: a = a + b  Giá trị cũ của 1 toán hạng nguồn sẽ bị ghi đè bằng KQ  Rút gọn độ dài từ lệnh  Thƣờng đƣợc dùng phổ biến 271
  32. Số lƣợng toán hạng trong lệnh (tiếp) . Một toán hạng:  Chỉ có 1 toán hạng đƣợc chỉ ra trong lệnh  Toán hạng còn lại đƣợc ngầm định, thƣờng là thanh ghi (VD: thanh chứa – Accumulator)  Thƣờng đƣợc sử dụng trên các bộ xử lý thế hệ cũ . Không có toán hạng:  Các toán hạng đều đƣợc ngầm định  Sử dụng Stack  VD: lệnh c = a + b push a push b add pop c  Không thông dụng 272
  33. 2. Các kiểu thao tác điển hình . Chuyển dữ liệu . Xử lý số học với số nguyên . Xử lý logic . Điều khiển vào-ra . Chuyển điều khiển (rẽ nhánh) . Điều khiển hệ thống 273
  34. Các lệnh chuyển dữ liệu MOVE Copy dữ liệu từ nguồn đến đích LOAD Copy dữ liệu từ bộ nhớ đến bộ xử lý STORE Copy dữ liệu từ bộ xử lý đến bộ nhớ EXCHANGE Tráo đổi nội dung của nguồn và đích CLEAR Chuyển các bit 0 vào toán hạng đích SET Chuyển các bit 1 vào toán hạng đích PUSH Copy dữ liệu từ nguồn đến đỉnh ngăn xếp POP Copy dữ liệu từ đỉnh ngăn xếp đến đích 274
  35. Các lệnh số học ADD Tính tổng hai toán hạng SUBTRACT Tính hiệu hai toán hạng MULTIPLY Tính tích hai toán hạng DIVIDE Tính thương hai toán hạng ABSOLUTE Thay toán hạng bằng trị tuyệt đối của nó NEGATE Đổi dấu toán hạng (lấy bù 2) INCREMENT Cộng 1 vào toán hạng DECREMENT Trừ toán hạng đi 1 COMPARE So sánh hai toán hạng để lập cờ 275
  36. Các lệnh logic AND Thực hiện phép AND hai toán hạng OR Thực hiện phép OR hai toán hạng XOR Thực hiện phép XOR hai toán hạng NOT Đảo bit của toán hạng (lấy bù 1) TEST Thực hiện phép AND hai toán hạng để lập cờ SHIFT Dịch trái (phải) toán hạng ROTATE Quay trái (phải) toán hạng CONVERT Chuyển đổi dữ liệu từ dạng này sang dạng khác 276
  37. VD các lệnh AND, OR, XOR, NOT . Giả sử có hai thanh ghi chứa dữ liệu nhƣ sau: (R1) = 1010 1010 (R2) = 0000 1111 . Khi đó ta có: (R1) AND (R2) = 0000 1010  Phép toán AND có thể đƣợc dùng để xoá một số bit và giữ nguyên các bit còn lại của toán hạng. (R1) OR (R2) = 1010 1111  Phép toán OR có thể đƣợc dùng để thiết lập một số bit và giữ nguyên các bit còn lại của toán hạng. (R1) XOR (R2) = 1010 0101  Phép toán XOR có thể đƣợc dùng để đảo một số bit và giữ nguyên các bit còn lại của toán hạng. NOT (R1) = 0101 0101  Phép toán NOT dùng để đảo tất cả các bit của toán hạng. 277
  38. Các lệnh SHIFT và ROTATE DÞch tr¸i logic 0 DÞch ph¶i logic 0 DÞch tr¸i sè häc 0 DÞch ph¶i sè häc Quay tr¸i logic Quay ph¶i logic 278
  39. Các lệnh vào-ra chuyên dụng IN Copy dữ liệu từ một cổng xác định đến đích OUT Copy dữ liệu từ nguồn đến một cổng xác định 279
  40. Các lệnh chuyển điều khiển JUMP (BRANCH) Nhảy (rẽ nhánh) không điều kiện; nạp vào PC một địa chỉ xác định JUMP CONDITIONAL Kiểm tra điều kiện xác định, hoặc nạp vào PC một địa chỉ xác định hoặc không không làm gì cả CALL Cất nội dung PC vào ngăn xếp, nạp vào PC địa chỉ xác định để nhảy đến thực hiện chương trình con RETURN Khôi phục nội dung PC từ đỉnh ngăn xếp để trở về chương trình chính 280
  41. Lệnh rẽ nhánh không điều kiện . Chuyển tới thực hiện lệnh ở vị trí có địa chỉ là XXX: PC ← XXX lÖnh lÖnh_rÏ_nh¸nh XXX lÖnh_kÕ_tiÕp lÖnh lÖnh . . . XXX lÖnh lÖnh 281
  42. Lệnh rẽ nhánh có điều kiện . Kiểm tra điều kiện trong lệnh:  Nếu điều kiện đúng chuyển tới thực hiện lệnh ở vị trí có địa chỉ XXX PC  XXX  Nếu điều kiện sai chuyển sang thực hiện lệnh_kế_tiếp . Điều kiện thƣờng đƣợc kiểm tra thông qua các cờ. . Có nhiều lệnh rẽ nhánh có điều kiện. 282
  43. Minh họa lệnh rẽ nhánh có điều kiện lÖnh lÖnh lÖnh_rÏ_nh¸nh_®k XXX lÖnh_kÕ_tiÕp lÖnh lÖnh . . . XXX lÖnh lÖnh lÖnh 283
  44. Lệnh CALL và RETURN . Lệnh gọi chƣơng trình con: lệnh CALL  Cất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) vào Stack  Nạp vào PC địa chỉ của lệnh đầu tiên của chƣơng trình con đƣợc gọi → Bộ xử lý chuyển sang thực hiện chƣơng trình con tƣơng ứng . Lệnh trở về từ chƣơng trình con: lệnh RETURN  Lấy địa chỉ của lệnh_kế_tiếp đƣợc cất ở Stack nạp trả lại cho PC → Bộ xử lý đƣợc điều khiển quay trở về thực hiện tiếp lệnh nằm sau lệnh CALL 284
  45. Minh họa lệnh CALL và RETURN lÖnh lÖnh CALL CTCon lÖnh_kÕ_tiÕp lÖnh lÖnh . . . CTCon lÖnh ®Çu tiªn cña CTCon lÖnh lÖnh . . . RETURN 285
  46. Các lệnh điều khiển hệ thống HALT Dừng thực hiện chương trình WAIT Dừng thực hiện chương trình, lặp kiểm tra điều kiện cho đến khi thoả mãn thì tiếp tục thực hiện NO OPERATION (NOP) Không thực hiện gì cả LOCK Cấm không cho xin chuyển nhượng bus UNLOCK Cho phép xin chuyển nhượng bus 286
  47. 3. Các phƣơng pháp địa chỉ hóa toán hạng . Phƣơng pháp địa chỉ hóa toán hạng là cách thức chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác động. . Toán hạng có thể là:  Hằng số → cần cho biết giá trị của hằng số đó  Nội dung của một thanh ghi bên trong CPU → cần cho biết tên của thanh ghi  Nội dung của một ngăn nhớ → cần cho biết địa chỉ ngăn nhớ  Nội dung của một cổng vào-ra → cần cho biết địa chỉ của cổng vào-ra 287
  48. Các chế độ địa chỉ thông dụng . Chế độ địa chỉ tức thì . Chế độ địa chỉ thanh ghi . Chế độ địa chỉ trực tiếp . Chế độ địa chỉ gián tiếp qua thanh ghi . Chế độ địa chỉ dịch chuyển 288
  49. Chế độ địa chỉ tức thì Mã thao tác Toán hạng . Immediate Addressing Mode . Toán hạng là một hằng số ở ngay trong lệnh . Ví dụ: ADD AX, 5 ; AX ← AX + 5 . Truy nhập toán hạng rất nhanh 289
  50. Chế độ địa chỉ thanh ghi . Register Addressing Mode . Toán hạng là nội dung của Mã thao tác Tên thanh ghi một thanh ghi mà tên thanh ghi đƣợc cho biết ở trong lệnh. Tập thanh ghi . Ví dụ: MOV AX, BX ; AX ← BX . Tốc độ truy cập nhanh hơn Toán hạng so với những lệnh có truy cập đến bộ nhớ. 290
  51. Chế độ địa chỉ trực tiếp . Direct Addressing Mode . Toán hạng là nội dung của một Mã thao tác Địa chỉ ngăn nhớ mà địa chỉ ngăn nhớ đƣợc cho trực tiếp ở trong lệnh. Bộ nhớ chính . Ví dụ: MOV AL, [1000] Toán hạng ; AL ← nội dung byte nhớ có địa chỉ là 1000 291
  52. Chế độ địa chỉ gián tiếp qua thanh ghi Mã thao tác Tên thanh ghi Tập thanh ghi Bộ nhớ chính Địa chỉ Toán hạng . Register Indirect Addressing Mode . Ví dụ: MOV AL, [BX] ; AL ← nội dung của byte nhớ có địa chỉ bằng giá trị của thanh ghi BX 292
  53. Chế độ địa chỉ dịch chuyển . Displacement Addressing Mode . Trƣờng địa chỉ chứa 2 thành phần:  Tên thanh ghi  Hằng số . Địa chỉ của toán hạng = nội dung thanh ghi + hằng số . Thanh ghi có thể đƣợc ngầm định 293
  54. Minh họa chế độ địa chỉ dịch chuyển Mã thao tác Tên thanh ghi Hằng số Tập thanh ghi Bộ nhớ chính Toán hạng 294
  55. Các dạng chế độ địa chỉ dịch chuyển . Địa chỉ hóa tƣơng đối với PC:  Thanh ghi là PC  VD: các lệnh chuyển điều khiển . Định địa chỉ cơ sở:  Thanh ghi là thanh ghi cơ sở (chứa địa chỉ cơ sở)  Hằng số là chỉ số . Định địa chỉ chỉ số:  Thanh ghi là thanh ghi chỉ số (chứa chỉ số)  Hằng số là địa chỉ cơ sở 295
  56. 3.2. Bộ xử lý trung tâm 3.2.1. Cấu trúc cơ bản của CPU 3.2.2. Tập lệnh 3.3.3. Hoạt động của CPU 296
  57. 3.2.3. Hoạt động của CPU 1. Chu trình lệnh 2. Đƣờng ống lệnh 297
  58. 1. Chu trình lệnh . Bao gồm các công đoạn chính sau đây:  Nhận lệnh  Giải mã lệnh  Nhận toán hạng  Thực hiện lệnh  Cất toán hạng  Ngắt 298
  59. Giản đồ trạng thái chu trình lệnh Nhận từ bộ - Từ bộ nhớ - Ra bộ nhớ nhớ chính - Từ cổng vào - Đến cổng ra Nhận toán Cất toán Nhận lệnh hạng hạng Xác định Giải mã Tính địa Tính địa Thao tác Kiểm tra Có địa chỉ của thao tác chỉ toán chỉ toán Ngắt dữ liệu ngắt lệnh của lệnh hạng hạng Lệnh tiếp theo Lệnh xử lý STRING hay VECTOR Không 299
  60. Nhận lệnh . CPU đƣa địa chỉ của lệnh cần nhận từ thanh ghi bộ đếm chƣơng trình PC ra bus địa chỉ . CPU phát tín hiệu điều khiển đọc bộ nhớ . Lệnh từ bộ nhớ đƣợc đặt lên bus dữ liệu và đƣợc CPU copy vào trong thanh ghi lệnh IR . CPU tăng nội dung của PC để trỏ sang lệnh kế tiếp 300
  61. Minh họa quá trình nhận lệnh CPU PC Đơn vị Bộ nhớ điều khiển IR PC : Bộ đếm chƣơng trình Bus Bus Bus IR : Thanh ghi lệnh địa dữ điều chỉ liệu khiển 301
  62. Giải mã lệnh . Lệnh từ thanh ghi lệnh IR đƣợc đƣa đến đơn vị điều khiển . Đơn vị điều khiển tiến hành giải mã lệnh để xác định thao tác cần phải thực hiện 302
  63. Nhận toán hạng . CPU đƣa địa chỉ của toán hạng ra bus địa chỉ . CPU phát tín hiệu điều khiển đọc . Toán hạng đƣợc chuyển vào trong CPU 303
  64. Nhận toán hạng gián tiếp . CPU đƣa địa chỉ ra bus địa chỉ . CPU phát tín hiệu điều khiển đọc . Nội dung ngăn nhớ đƣợc chuyển vào CPU, đó chính là địa chỉ của toán hạng . CPU phát địa chỉ này ra bus địa chỉ . CPU phát tín hiệu điều khiển đọc . Nội dung của toán hạng đƣợc chuyển vào CPU 304
  65. Minh họa nhận toán hạng gián tiếp CPU MAR Đơn vị Bộ nhớ điều khiển MBR MAR (Memory Address Register) : Bus Bus Bus Thanh ghi địa chỉ bộ nhớ địa dữ điều MBR (Memory Buffer Register): chỉ liệu khiển Thanh ghi đệm bộ nhớ 305
  66. Thực hiện lệnh . Có nhiều dạng thao tác tùy thuộc vào lệnh . Có thể là:  Đọc/ghi bộ nhớ  Vào-ra dữ liệu  Chuyển dữ liệu giữa các thanh ghi  Thực hiện phép toán số học hoặc logic  Chuyển điều khiển (rẽ nhánh)  306
  67. Ghi toán hạng . CPU đƣa địa chỉ ra bus địa chỉ . CPU đƣa dữ liệu cần ghi ra bus dữ liệu . CPU phát tín hiệu điều khiển ghi . Dữ liệu trên bus dữ liệu đƣợc copy đến vị trí xác định 307
  68. Minh họa quá trình ghi toán hạng CPU MAR Đơn vị Bộ nhớ điều khiển MBR MAR : Thanh ghi địa chỉ bộ nhớ Bus Bus Bus MBR : Thanh ghi đệm bộ nhớ địa dữ điều chỉ liệu khiển 308
  69. Ngắt . CPU lƣu lại giá trị hiện tại của PC (là địa chỉ trở về sau khi hoàn thành ngắt) – thƣờng lƣu vào Stack:  CPU đƣa nội dung của PC ra bus dữ liệu  CPU đƣa địa chỉ (thƣờng đƣợc xác định từ con trỏ ngăn xếp SP) ra bus địa chỉ  CPU phát tín hiệu điều khiển ghi bộ nhớ  Địa chỉ trở về (nội dung của PC) trên bus dữ liệu đƣợc lƣu vào ngăn nhớ tƣơng ứng ở ngăn xếp . CPU nạp vào PC địa chỉ lệnh đầu tiên của chƣơng trình con phục vụ ngắt tƣơng ứng:  CPU xác định địa chỉ của vector ngắt tƣơng ứng  CPU phát địa chỉ này ra bus địa chỉ  CPU phát tín hiệu điều khiển đọc bộ nhớ  Giá trị của vector ngắt (địa chỉ lệnh đầu tiên của CTC phục vụ ngắt) đƣợc chuyển ra bus dữ liệu  Giá trị này đƣợc nạp vào trong PC 309
  70. 2. Đƣờng ống lệnh . Nguyên tắc của Pipeline: chia chu trình lệnh thành các công đoạn và cho phép thực hiện gối lên nhau theo kiểu dây chuyền. . Giả sử chu trình lệnh gồm 6 công đoạn với thời gian thực hiện nhƣ nhau (T):  Nhận lệnh (Fetch Instruction – FI)  Giải mã lệnh (Decode Instruction – DI)  Tính đ/chỉ toán hạng (Calculate Operand Address – CO)  Nhận toán hạng (Fetch Operands – FO)  Thực hiện lệnh (Execute Instruction – EI)  Ghi toán hạng (Write Operands – WO) 310
  71. Biểu đồ thời gian của đƣờng ống lệnh 1 2 3 4 5 6 7 8 9 10 11 12 Lệnh 1 FI DI CO FO EI WO Lệnh 2 FI DI CO FO EI WO Lệnh 3 FI DI CO FO EI WO Lệnh 4 FI DI CO FO EI WO Lệnh 5 FI DI CO FO EI WO Lệnh 6 FI DI CO FO EI WO 311
  72. Các xung đột của đƣờng ống lệnh . Xung đột cấu trúc: do nhiều công đoạn dùng chung một tài nguyên . Xung đột dữ liệu: lệnh sau sử dụng kết quả của lệnh trƣớc . Xung đột điều khiển: do rẽ nhánh gây ra 312
  73. 3.3. Bộ nhớ máy tính 3.3.1. Tổng quan hệ thống nhớ 3.3.2. Bộ nhớ bán dẫn 3.3.3. Bộ nhớ chính 3.3.4. Bộ nhớ cache 3.3.5. Bộ nhớ ngoài 3.3.6. Bộ nhớ ảo 3.3.7. Bộ nhớ trên máy tính cá nhân 313
  74. 3.3.1. Tổng quan hệ thống nhớ 1. Các đặc trƣng của hệ thống nhớ 2. Phân cấp hệ thống nhớ của máy tính 314
  75. 1. Các đặc trƣng của hệ thống nhớ . Vị trí:  Bên trong CPU: tập thanh ghi  Bộ nhớ trong: bộ nhớ chính và cache  Bộ nhớ ngoài: các thiết bị nhớ . Dung lƣợng:  Độ dài từ nhớ (tính bằng bit)  Số lƣợng từ nhớ . Đơn vị truyền:  Theo từng từ nhớ  Theo từng khối (block) nhớ . Phƣơng pháp truy cập:  Truy cập tuần tự (băng từ)  Truy cập trực tiếp (các loại đĩa)  Truy cập ngẫu nhiên (bộ nhớ bán dẫn)  Truy cập liên kết (cache) 315
  76. Các đặc trƣng của hệ thống nhớ . Hiệu năng:  Thời gian truy cập  Chu kỳ nhớ  Tốc độ truyền . Kiểu vật lý:  Bộ nhớ bán dẫn  Bộ nhớ từ  Bộ nhớ quang . Các đặc tính vật lý:  Khả biến (mất điện thì mất thông tin) / Không khả biến  Xóa đƣợc / Không xóa đƣợc . Tổ chức 316
  77. 2. Phân cấp hệ thống nhớ của MT Bé vi xö lý CPU Bé TËp Bé nhí nhí Bé nhí Bé nhí thanh Cache Cache chÝnh ngoµi ghi L2 L1 Bé nhí m¹ng Dung lƣợng , tốc độ , tần suất CPU truy cập , giá thành / bit thông tin , 317
  78. Hệ thống nhớ của máy tính (tiếp) . Tập thanh ghi (Registers):  Là thành phần nhớ nằm trong CPU, đƣợc coi là mức nhớ đầu tiên  Chứa các thông tin phục vụ cho hoạt động ở thời điểm hiện tại của CPU . Bộ nhớ đệm nhanh (Cache):  Bộ nhớ có tốc độ nhanh đƣợc đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ truy cập bộ nhớ của CPU.  Thƣờng đƣợc chia thành một vài mức (L1, L2) . Bộ nhớ chính (Main Memory):  Chứa các chƣơng trình và dữ liệu đang đƣợc sử dụng. . Bộ nhớ ngoài (External Memory):  Chứa các tài nguyên phần mềm của máy tính. 318
  79. 3.3. Bộ nhớ máy tính 3.3.1. Tổng quan hệ thống nhớ 3.3.2. Bộ nhớ bán dẫn 3.3.3. Bộ nhớ chính 3.3.4. Bộ nhớ cache 3.3.5. Bộ nhớ ngoài 3.3.6. Bộ nhớ ảo 3.3.7. Bộ nhớ trên máy tính cá nhân 319
  80. 3.3.2. Bộ nhớ bán dẫn 1. Phân loại 2. Mô hình cơ bản của chip nhớ 320
  81. 1. Phân loại . Gồm 2 loại chính: ROM và RAM . ROM (Read Only Memory): bộ nhớ chỉ đọc . Đặc điểm:  Bộ nhớ chủ yếu dùng để đọc thông tin  Bộ nhớ không khả biến  Chứa các chƣơng trình và dữ liệu cố định với hệ thống 321
  82. ROM (tiếp) . Các loại bộ nhớ ROM:  Maskable ROM (ROM mặt nạ): thông tin đƣợc ghi khi chế tạo  PROM (Programmable ROM): . Khi chế tạo chƣa có thông tin . Cho phép ghi thông tin đƣợc 1 lần bằng thiết bị chuyên dụng  EPROM (Erasable PROM): . Cho phép xóa bằng tia cực tím . Ghi lại bằng thiết bị nạp EPROM  EEPROM (Electrically Erasable PROM): . Có thể xóa bằng tín hiệu điện và ghi lại thông tin ngay trong mạch làm việc (không cần thiết bị ghi riêng) . Có thể xóa và ghi lại ở mức từng Byte . Dung lƣợng nhỏ  Flash Memory: giống EEPROM nhƣng: . Đọc/ghi theo từng block . Tốc độ rất nhanh . Dung lƣợng lớn 322
  83. RAM (Random Access Memory) . RAM (Random Access Memory): bộ nhớ truy cập ngẫu nhiên . Đặc điểm:  Là bộ nhớ đọc/ghi (Read/Write Memory – RWM)  Bộ nhớ khả biến  Chứa các thông tin tạm thời 323
  84. RAM (tiếp) . Các loại bộ nhớ RAM:  SRAM (Static): RAM tĩnh . Mỗi phần tử nhớ là một mạch lật 2 trạng thái ổn định → thông tin trên SRAM ổn định . Tốc độ nhanh . Dung lƣợng chip nhớ nhỏ . Giá thành đắt . Thƣờng dùng làm bộ nhớ Cache  DRAM (Dynamic): RAM động . Mỗi phần tử nhớ là một tụ điện rất nhỏ → cứ sau một khoảng thời gian thì điện tích trên tụ điện sẽ bị mất, cho nên thông tin trên DRAM không ổn định → khắc phục bằng mạch làm tƣơi (refresh) DRAM . Tốc độ chậm (do mất thời gian làm tƣơi DRAM) . Dung lƣợng chip nhớ lớn . Giá thành rẻ . Thƣờng dùng làm bộ nhớ chính 324
  85. 2. Mô hình cơ bản của chip nhớ Tõ nhí 0 Tõ nhí 1 A0 D0 Bé Tõ nhí 2 A1 . Bé D1 gi¶i A2 Ma trËn nhí ®Öm m· . . . 2n x m bit d÷ . ®Þa liÖu . . chØ . . An-1 Dm-1 Tõ nhí 2n-1 §iÒu khiÓn ®äc/ghi CS WE OE 325
  86. Mô hình cơ bản của chip nhớ (tiếp) . Có n chân địa chỉ (An-1 ÷ A0) : vận chuyển vào chip nhớ đƣợc n bit địa chỉ đồng thời → trong chip nhớ có 2n từ nhớ. . Có m chân dữ liệu: (Dm-1 ÷ D0) : cho phép vận chuyển đồng thời đƣợc m bit dữ liệu → độ dài từ nhớ là m bit. → Dung lƣợng của chip nhớ là: 2n x m bit . Các chân tín hiệu điều khiển:  CS (Chip Select): tín hiệu điều khiển chọn chip nhớ làm việc  OE (Output Enable): tín hiệu điều khiển đọc dữ liệu của 1 từ nhớ đã đƣợc xác định.  WE (Write Enable): tín hiệu điều khiển ghi dữ liệu vào 1 từ nhớ đã đƣợc xác định. 326
  87. Hoạt động của chip nhớ . Hoạt động đọc:  Các bit địa chỉ đƣợc đƣa đến các chân địa chỉ.  Tín hiệu điều khiển chọn chip nhớ làm việc đƣợc đƣa đến CS  Tín hiệu điều khiển đọc đƣa đến OE  Dữ liệu từ ngăn nhớ tƣơng ứng với địa chỉ đã có sẽ đƣợc đƣa ra các chân dữ liệu. 327
  88. Hoạt động của chip nhớ (tiếp) . Hoạt động ghi:  Các bit địa chỉ đƣợc đƣa đến các chân địa chỉ  Dữ liệu cần ghi đƣợc đƣa đến các chân dữ liệu  Tín hiệu điều khiển chọn chip đƣợc đƣa đến CS  Tín hiệu điều khiển ghi đƣợc đƣa đến WE  Dữ liệu từ các chân dữ liệu sẽ đƣợc ghi vào ngăn nhớ tƣơng ứng. 328
  89. 3.3. Bộ nhớ máy tính 3.3.1. Tổng quan hệ thống nhớ 3.3.2. Bộ nhớ bán dẫn 3.3.3. Bộ nhớ chính 3.3.4. Bộ nhớ cache 3.3.5. Bộ nhớ ngoài 3.3.6. Bộ nhớ ảo 3.3.7. Bộ nhớ trên máy tính cá nhân 329
  90. 3.3.3. Bộ nhớ chính 1. Các đặc trƣng của bộ nhớ chính 2. Tổ chức bộ nhớ đan xen 330
  91. 1. Các đặc trƣng của bộ nhớ chính . Là thành phần nhớ tồn tại trên mọi hệ thống máy tính . Chứa các chƣơng trình đang đƣợc thực hiện và các dữ liệu đang đƣợc sử dụng . Bao gồm các ngăn nhớ đƣợc đánh địa chỉ trực tiếp bởi CPU . Dung lƣợng vật lý của bộ nhớ chính ≤ không gian địa chỉ bộ nhớ mà CPU quản lý . Việc quản lý logic bộ nhớ chính tùy thuộc vào hệ điều hành 331
  92. 2. Tổ chức bộ nhớ đan xen . Độ rộng của bus dữ liệu để trao đổi với bộ nhớ chính M = 8, 16, 32, 64, 128 bit . Các ngăn nhớ đƣợc tổ chức theo từng Byte nhớ → Tổ chức bộ nhớ chính khác nhau 332
  93. M = 8 bit . VD: Intel 8088 . BN chính là 1 băng (bank) nhớ tuyến tính 1 Byte 0 1 2 Bus địa chỉ i AN-1 ÷ A0 Bus dữ liệu D7 ÷ D0 333
  94. M = 16 bit . VD: Intel 8086 ÷ 80286 . Bộ nhớ chính gồm 2 băng (bank) nhớ đan xen Băng 1 Băng 0 1 0 3 2 A0 5 4 BE1 Byte Tạo tín hiệu chọn Byte nhớ BE0 Word Bus địa chỉ 2i+1 2i AN-1 ÷ A1 BE1 BE0 D15 ÷ D8 D7 ÷ D0 Bus dữ liệu 16 bit 334
  95. Các trƣờng hợp khác . Với M = 32 bit (80386, 80486): bộ nhớ chính gồm 4 băng nhớ đan xen . Với M = 64 bit (các bộ xử lý Pentium): bộ nhớ chính gồm 8 băng nhớ đan xen 335
  96. 3.3. Bộ nhớ máy tính 3.3.1. Tổng quan hệ thống nhớ 3.3.2. Bộ nhớ bán dẫn 3.3.3. Bộ nhớ chính 3.3.4. Bộ nhớ cache 3.3.5. Bộ nhớ ngoài 3.3.6. Bộ nhớ ảo 3.3.7. Bộ nhớ trên máy tính cá nhân 336
  97. 3.3.4. Bộ nhớ cache 1. Nguyên tắc chung của cache 2. Các phƣơng pháp ánh xạ 3. Thuật giải thay thế 4. Phƣơng pháp ghi dữ liệu khi cache hit 5. Cache trên các bộ xử lý Intel 337
  98. 1. Nguyên tắc chung của cache . Nguyên lý cục bộ hoá tham chiếu bộ nhớ: Trong một khoảng thời gian đủ nhỏ CPU thƣờng chỉ tham chiếu các thông tin trong một khối nhớ cục bộ . „ Ví dụ:  „ Cấu trúc chƣơng trình tuần tự  „ Vòng lặp có thân nhỏ  „ Cấu trúc dữ liệu mảng 338
  99. 1. Nguyên tắc chung của cache (tiếp) . Cache có tốc độ nhanh hơn bộ nhớ chính . Cache đƣợc đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ truy cập bộ nhớ của CPU . Cache có thể đƣợc đặt trên chip CPU 339
  100. Cấu trúc chung của cache / Bộ nhớ chính 340
  101. Cấu trúc chung của cache / Bộ nhớ chính . „ Bộ nhớ chính có 2N byte nhớ . „ Bộ nhớ chính và cache đƣợc chia thành các khối có kích thƣớc bằng nhau  „ Bộ nhớ chính: B0, B1, B2, , Bp-1 (p Blocks)  „ Bộ nhớ cache: L0, L1, L2, , Lm-1 (m Lines)  „ Kích thƣớc của Block = 8,16,32,64,128 byte 341
  102. Cấu trúc chung của cache / Bộ nhớ chính . Một số Block của bộ nhớ chính đƣợc nạp vào các Line của cache. . Nội dung Tag (thẻ nhớ) cho biết Block nào của bộ nhớ chính hiện đang đƣợc chứa ở Line đó. . Khi CPU truy nhập (đọc/ghi) một từ nhớ, có hai khả năng xảy ra:  „ Từ nhớ đó có trong cache (cache hit)  „ Từ nhớ đó không có trong cache (cache  miss). 342
  103. 2. Các phƣơng pháp ánh xạ . Ánh xạ trực tiếp (Direct mapping) . Ánh xạ liên kết toàn phần (Fully associative mapping) . Ánh xạ liên kết tập hợp (Set associative mapping) 343
  104. Ánh xạ trực tiếp . Mỗi Block của bộ nhớ chính chỉ có thể đƣợc nạp vào một Line của cache:  „ B0 „ L0  „ B1 „ L1  „  „ Bm-1 „ Lm-1  „ Bm „ L0  „ Bm+1 „ L1  „ . „ Tổng quát  „ Bj chỉ có thể nạp vào L j mod m  „ m là số Line của cache. 344
  105. Minh họa ánh xạ trực tiếp 345
  106. Đặc điểm của ánh xạ trực tiếp . Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trƣờng:  Trƣờng Word gồm W bit xác định một từ nhớ trong Block hay Line: 2W = kích thƣớc của Block hay Line  Trƣờng Line gồm L bit xác định một trong số các Line trong cache: 2L = số Line trong cache = m  Trƣờng Tag gồm T bit: T = N - (W+L) . „ Bộ so sánh đơn giản . „ Xác suất cache hit thấp 346
  107. Ánh xạ liên kết toàn phần . Mỗi Block có thể nạp vào bất kỳ Line nào của cache. . Địa chỉ của bộ nhớ chính bao gồm hai trƣờng:  Trƣờng Word giống nhƣ trƣờng hợp ở trên.  Trƣờng Tag dùng để xác định Block của bộ nhớ chính. . Tag xác định Block đang nằm ở Line đó 347
  108. Minh họa ánh xạ liên kết toàn phần 348
  109. Đặc điểm của ánh xạ liên kết toàn phần . So sánh đồng thời với tất cả các Tag mất nhiều thời gian . Xác suất cache hit cao. . Bộ so sánh phức tạp. 349
  110. Ánh xạ liên kết tập hợp . Cache đƣơc chia thành các Tập (Set) . Mỗi một Set chứa một số Line . Ví dụ:  „ 4 Line/Set „ 4-way associative mapping  „ Ánh xạ theo nguyên tắc sau:  „ B0 „ S0  „ B1 „ S1  „ B2 „ S2  „ 350
  111. Minh họa ánh xạ liên kết tập hợp 351
  112. Đặc điểm của ánh xạ liên kết tập hợp . Kích thƣớc Block = 2W Word . Trƣờng Set có S bit dùng để xác định một trong số V = 2S Set . Trƣờng Tag có T bit: T = N - (W+S) . Tổng quát cho cả hai phƣơng pháp trên . Thông thƣờng 2,4,8,16Lines/Set 352
  113. Thuật giải thay thế (Ánh xạ trực tiếp) . „ Không phải lựa chọn . „ Mỗi Block chỉ ánh xạ vào một Line xác định . „ Thay thế Block ở Line đó 353
  114. Thuật giải thay thế (Ánh xạ liên kết) . Đƣợc thực hiện bằng phần cứng (nhanh) . Random: Thay thế ngẫu nhiên . FIFO (First In First Out): Thay thế Block nào nằm lâu nhất ở trong Set đó . LFU (Least Frequently Used): Thay thế Block nào trong Set có số lần truy nhập ít nhất trong cùng một khoảng thời gian . LRU (Least Recently Used): Thay thế Block ở trong Set tƣơng ứng có thời gian lâu nhất không đƣợc tham chiếu tới. . Tối ƣu nhất: LRU 354
  115. Phƣơng pháp ghi dữ liệu khi cache hit . Ghi xuyên qua (Write-through):  ghi cả cache và cả bộ nhớ chính  tốc độ chậm . Ghi trả sau (Write-back):  chỉ ghi ra cache  tốc độ nhanh  khi Block trong cache bị thay thế cần phải ghi trả cả Block về bộ nhớ chính 355
  116. 5. Cache trên các bộ xử lý intel . 80486: 8KB cache L1 trên chip . Pentium: có hai cache L1 trên chip  Cache lệnh = 8KB  Cache dữ liệu = 8KB . Pentium 4: hai mức cache L1 và L2 trên chip  Cache L1: . mỗi cache 8KB . Kích thƣớc Line = 64 byte . ánh xạ liên kết tập hợp 4 đƣờng  cache L2 . 256KB . Kích thƣớc Line = 128 byte . ánh xạ liên kết tập hợp 8 đƣờng 356
  117. 3.3.5. Bộ nhớ ngoài 1. Đĩa từ 2. Đĩa quang 3. Flash disk 4. Các chuẩn nối ghép ổ đĩa 5. RAID 357
  118. 1. Đĩa từ . Các đặc tính của đĩa từ:  Đầu từ cố định hay di động  Đĩa cố định hay thay đổi  Một mặt hay hai mặt  Một đĩa hay nhiều đĩa  Cơ chế đầu từ: . Tiếp xúc . Không tiếp xúc . Gồm 2 loại phổ biến:  Đĩa mềm  Đĩa cứng 358
  119. a. Đĩa mềm . 8”, 5.25”, 3.5” . Dung lƣợng nhỏ (≤ 1.44MB) . Tốc độ chậm . Thông dụng . Rẻ tiền . Tƣơng lai có thể không dùng nữa 359
  120. Đĩa mềm (tiếp) 360
  121. b. Đĩa cứng . Một hoặc nhiều đĩa . Thông dụng . Dung lƣợng tăng nhanh . Tốc độ đọc/ghi nhanh . Tƣơng đối rẻ tiền 361
  122. Đĩa cứng (tiếp) 362
  123. 2. Đĩa quang . Các loại chính:  CD-ROM (Compact Disk Read Only Memory)  CD-R (Recordable CD)  CD-RW (Rewriteable CD)  DVD (Digital Video Disk) 363
  124. a. CD-ROM . Thông tin đƣợc ghi ngay khi sản xuất đĩa. . Dữ liệu tồn tại dƣới dạng các mặt phẳng (land) và các lỗ (pit).  Bit 1 tƣơng ứng với sự thay đổi từ mặt phẳng thành lỗ hay ngƣợc lại;  còn những lỗ hay mặt phẳng kéo dài (không có sự thay đổi) tƣơng ứng với bit 0. . Tốc độ đọc cơ sở của một ổ đĩa CD-ROM ban đầu là 150KB/s (tốc độ 1X). . Các ổ đĩa hiện nay có tốc độ đọc là bội số của tốc độ cơ sở này (ví dụ 48X, 52X, ) 364
  125. CD-ROM (tiếp) 365
  126. b. CD-R . Khi sản xuất ra, các đĩa này đều là đĩa trắng (chƣa có thông tin). Sau đó có thể ghi dữ liệu lên đĩa này nhƣng chỉ ghi đƣợc một lần nhờ ổ ghi CD-R riêng. . CD-R có cấu trúc và hoạt động tƣơng tự nhƣ CD- ROM.  Cấu tạo gồm nhiều lớp, trong đó lớp chứa dữ liệu là một lớp màu polymer hữu cơ.  Khi bị tia laser đốt cháy, lớp màu này chuyển sang màu đen và đóng vai trò nhƣ các lỗ (pit) của CD-ROM. . Các đĩa CD-R sau khi ghi có thể đƣợc đọc từ ổ CD-ROM hoặc từ ổ CD-R. Các đĩa CD-R còn đƣợc gọi là WORM (write one read multiple). 366
  127. c. CD-RW . CD-RW có cấu trúc và hoạt động tƣơng tự nhƣ CD-R. Trong đó lớp chứa dữ liệu là một lớp kim loại. . Nguyên tắc ghi dữ liệu dựa trên sự thay đổi trạng thái của lớp kim loại:  trạng thái tinh thể (phản xạ ánh sáng - mặt phẳng)  và trạng thái vô định hình (không phản xạ ánh sáng - vùng lỗ trong CD-ROM hay màu bị đốt đen trong CD-R). . Quá trình thay đổi trạng thái này có thể thay đổi bất kì tùy theo công suất laser nên đĩa CD-RW có thể đƣợc ghi rồi xóa đi ghi lại nhiều lần. 367
  128. d. DVD . Đây là loại đĩa quang có dung lƣợng lớn và có tốc độ nhanh hơn so với các đĩa quang trên. . Đĩa DVD có thể lƣu trữ thông tin trên hai mặt, mỗi mặt có thể có đến 2 lớp dữ liệu. . Các đĩa DVD hiện nay thƣờng có dung lƣợng là 4.7GB/mặt hoặc 9.4GB/mặt. . Tốc độ truy nhập cơ bản của ổ đĩa DVD là 1.321MByte/s. . DVD cũng có nhiều loại 368
  129. 3. Flash disk . Thực chất là bộ nhớ bán dẫn tốc độ cao (flash memory) . Thƣờng đƣợc kết nối với máy tính thông qua giao tiếp USB . Dung lƣợng tăng nhanh . Thuận tiện, giá thành hợp lý 369
  130. Flash disk (tiếp) 370
  131. 4. Các chuẩn nối ghép ổ đĩa . Giao diện IDE-ATA (Integrated Drive Electronics – AT Attachment):  Đƣợc IBM thiết kế để nối trực tiếp ổ cứng kèm mạch điều khiển với Bus của máy tính AT gọi là giao diện ATA. Sau đó giao diện này đƣợc kết hợp với ổ đĩa và bộ điều khiển trong các ổ đĩa → giao diện IDE/ATA.  Giao diện IDE (mạch điện tử tích hợp trong ổ đĩa) chỉ bất cứ ổ đĩa nào có tích hợp bộ điều khiển đĩa gắn bên trong. . Cáp IDE chuẩn: gồm 40 dây, tín hiệu truyền song song trên cả dây chẵn và dây lẻ nên độ dài của cáp bị hạn chế ở 46 cm. . Giới hạn dung lƣợng đĩa tối đa là 504MB và có tốc độ tƣơng đối chậm.  EIDE (Enhanced IDE - IDE đƣợc nâng cao): . Gia tăng dung lƣợng ổ đĩa lên tới hơn 8GB . Tăng tốc độ truyền tải dữ liệu lên hơn hai lần khả năng của IDE . Tăng gấp đôi số lƣợng ổ đĩa mà một máy PC có thể có 371
  132. Các chuẩn nối ghép ổ đĩa (tiếp)  Giao diện ATA gồm nhiều phiên bản: . ATA-1 (1986-1994) . ATA-2 (1996) . ATA-3 (1997) . ATA-4 (1998, còn gọi là Ultra-ATA/33 MHz) . ATA-5 và ATA-6 (từ 1999 đến nay, còn gọi là Ultra- ATA/66/100/133 MHz). Cáp cho các chuẩn này đƣợc thiết kế gồm 80 dây để truyền dữ liệu tốc độ cao (các dây nối đất và dây tín hiệu xen kẽ nhau nhằm mục đích khử nhiễu) 372
  133. Các chuẩn nối ghép ổ đĩa (tiếp) . Giao diện Serial ATA:  Do một số cty lớn đƣa ra vào năm 1999  Giao tiếp Serial Advanced Technology Attachment (Serial ATA) cho ổ cứng và thiết bị ATA Packet Interface (ATAPI)  So với Parallel ATA, Serial ATA dùng điện áp thấp, đầu chân cắm nhỏ gọn và ít dây hơn.  Serial ATA tƣơng thích hoàn toàn với phần mềm trƣớc đây dành cho thiết bị Parallel ATA và ATAPI.  Thế hệ sản phẩm Serial ATA đầu tiên xuất hiện trên thị trƣờng vào giữa 2002, đạt tốc độ 150MBps. Trong tƣơng lai, các phiên bản kế tiếp có thể đạt băng thông 300MBps và 600MBps. 373
  134. Các chuẩn nối ghép ổ đĩa (tiếp) . Giao diện SCSI (Small Computer System Interface):  Dùng để kết nối nhiều loại thiết bị có tốc độ trao đổi dữ liệu cao trong một máy tính, thƣờng đƣợc dùng trong các máy chủ.  Một bus SCSI hỗ trợ tối đa 7 hoặc 15 thiết bị  Có nhiều chuẩn SCSI: . SCSI-1 (1986): truyền dữ liệu trên bus song song 8 bit, tốc độ 5 MB/s, dùng cáp 50 dây. . SCSI-2 (1994): truyền dữ liệu trên bus song song 16 bit, tốc độ 10 MB/s, dùng cáp 50 dây mật độ cao. . SCSI-3: đƣợc thiết kế cho các máy tính đời mới hiện nay, gồm 2 phiên bản: Ultra 2 SCSI (tốc độ truyền tới 40 MB/s) và Ultra 3 SCSI (tốc độ truyền tới 80 MB/s hoặc 160 MB/s) 374
  135. 5. RAID . Redundant Array of Independent Disks . Là tập hợp các ổ đĩa cứng vật lý mà hệ điều hành coi nhƣ là một ổ đĩa logic duy nhất . Khi ghi lên hệ thống RAID, các tệp dữ liệu đƣợc phân mảnh và lƣu trữ phân tán trên các ổ cứng vật lý . Có khả năng tạo ra và lƣu trữ thông tin dƣ thừa để đảm bảo khôi phục lại thông tin trong trƣờng hợp ổ đĩa bị hỏng . Có 7 loại phổ biến: RAID 0  6 375
  136. 3.3. Bộ nhớ máy tính 3.3.1. Tổng quan hệ thống nhớ 3.3.2. Bộ nhớ bán dẫn 3.3.3. Bộ nhớ chính 3.3.4. Bộ nhớ cache 3.3.5. Bộ nhớ ngoài 3.3.6. Bộ nhớ ảo 3.3.7. Bộ nhớ trên máy tính cá nhân 376
  137. 3.3.6. Bộ nhớ ảo . Khái niệm bộ nhớ ảo: là bộ nhớ bao gồm bộ nhớ chính và bộ nhớ ngoài mà đƣợc CPU coi nhƣ là một bộ nhớ duy nhất. . Các kỹ thuật thực hiện bộ nhớ ảo:  Kỹ thuật phân trang: Chia không gian địa chỉ bộ nhớ thành các trang nhớ có kích thƣớc bằng nhau và nằm liền kề nhau Thông dụng: kích thƣớc trang = 4KBytes  Kỹ thuật phân đoạn: Chia không gian nhớ thành các đoạn nhớ có kích thƣớc thay đổi, các đoạn nhớ có thể gối lên nhau. 377
  138. 3.3. Bộ nhớ máy tính 3.3.1. Tổng quan hệ thống nhớ 3.3.2. Bộ nhớ bán dẫn 3.3.3. Bộ nhớ chính 3.3.4. Bộ nhớ cache 3.3.5. Bộ nhớ ngoài 3.3.6. Bộ nhớ ảo 3.3.7. Bộ nhớ trên máy tính cá nhân 378
  139. 3.3.7. Bộ nhớ trên máy tính cá nhân 1. Bộ nhớ Cache 2. RAM 3. ROM BIOS 4. CMOS RAM 5. Video RAM 6. Các loại bộ nhớ ngoài 379
  140. 1. Bộ nhớ Cache . Thƣờng đƣợc chia thành nhiều mức:  Cache L1: . Cache lệnh . Cache dữ liệu  Cache L2: 128, 256, 512 KB, 1 MB . Đƣợc tích hợp trên các chip vi xử lý 380
  141. 2. RAM . Sử dụng DRAM, thƣờng đƣợc coi là bộ nhớ chính. . Các loại bộ nhớ RAM:  FPM (Fast Page Mode) DRAM  EDO (Extended Data Out) DRAM  SDRAM (Synchronous DRAM)  DDR SDRAM (Double Data Rate SDRAM)  RDRAM (Rambus DRAM) . Các loại module nhớ RAM:  Máy tính Desktop: . SIMM (Single Inline Memory Module) . DIMM (Dual Inline Memory Module) . RIMM (Rambus Inline Memory Module)  Máy tính Laptop: . SODIMM (Small Outline Dual Inline Memory Module) . MicroDIMM (Micro Dual Inline Memory Module) 381
  142. a. Các loại bộ nhớ RAM . FPM DRAM (Fast Page Mode DRAM)  Khi truy cập bộ nhớ: địa chỉ hàng không đổi, chỉ thay đổi địa chỉ cột.  Chế độ truy cập burst mode (từ 486) cho phép sau khi thiết lập các địa chỉ hàng, cột cho 1 lần truy cập, CPU có thể truy cập thêm 3 địa chỉ tiếp mà không có trạng thái chờ.  Chế độ burst mode của DRAM chuẩn đƣợc mô tả dƣới dạng các thông số x-y-y-y.  VD: FPM DRAM 60ns có thông số định thời của chế độ burst mode là 5-3-3-3. Với bus hệ thống 66MHz thì mất 5x15=75ns cho lần truy cập đầu và 3x15=45ns cho mỗi lần trong số 3 lần truy cập tiếp theo (nhanh hơn 5-5-5-5). 382
  143. Các loại bộ nhớ RAM (tiếp) . EDO DRAM (Extended Data Out DRAM)  Sử dụng chủ yếu từ 1995 – 1997.  Là dạng cải tiến của FPM DRAM: các bộ điều khiển dữ liệu ra không bị tắt khi bộ điều khiển bộ nhớ xóa địa chỉ cột cho chu kỳ tiếp theo => cho phép chu kỳ tiếp theo gối lên chu kỳ trƣớc (tiết kiệm khoảng 10ns cho 1 chu kỳ).  Giá thành ngang với FPM nhƣng hiệu năng cao hơn.  VD: burst mode của EDO là 5-2-2-2 (cần 11 chu kỳ cho 4 lần truyền) so với 5-3-3-3 của FPM (truyền 4 lần trong 14 chu kỳ). 383
  144. Các loại bộ nhớ RAM (tiếp) . SDRAM (Synchronous DRAM):  Sử dụng từ 1997, chủ yếu cho các máy tính PII, PIII.  Chạy đồng bộ với bus bộ nhớ (66, 100, 133 MHz).  Thời gian xác định địa chỉ vẫn nhƣ cũ nhƣng tổng thời gian nhanh hơn so với FPM và EDO DRAM.  VD: SDRAM : 5-1-1-1 (cần 8 chu kỳ cho 4 lần truyền), nhanh hơn 11 và 14 chu kỳ của EDO và FPM. 384
  145. Các loại bộ nhớ RAM (tiếp) . DDR SDRAM (Double Data Rate SDRAM):  Xuất hiện từ năm 2000.  Là dạng cải tiến của SDRAM, cho phép truyền dữ liệu 2 lần ở cả sƣờn dƣơng và sƣờn âm của 1 chu kỳ. . DDR2 SDRAM:  Xuất hiện từ năm 2004.  Là dạng cải tiến của DDR SDRAM: sử dụng cặp dây tín hiệu vi sai cho phép truyền nhanh và ít nhiễu hơn.  Sử dụng điện áp thấp hơn DDR SDRAM (1.8V so với 2.5V). 385
  146. Các loại module nhớ DDR SDRAM 386
  147. Các loại module nhớ DDR2 SDRAM 387
  148. Các loại bộ nhớ RAM (tiếp) . RDRAM (Rambus DRAM):  Là loại RAM tốc độ cao, đƣợc sản xuất theo công nghệ của hãng Rambus.  Xuất hiện chủ yếu từ 1999 đến 2002 (sau 2001 Intel không còn hỗ trợ công nghệ này). 388
  149. Các loại module nhớ RDRAM 389
  150. b. Các loại module nhớ RAM . Các module RAM thế hệ cũ:  DIP (Dual Inline Package)  SIPP (Single Inline Pin Package) . Máy tính Desktop:  SIMM (Single Inline Memory Module)  DIMM (Dual Inline Memory Module)  RIMM (Rambus Inline Memory Module) . Máy tính Laptop:  SODIMM (Small Outline Dual Inline Memory Module)  MicroDIMM (Micro Dual Inline Memory Module) 390
  151. DIP và SIPP . Thƣờng là dạng đóng gói của các module nhớ FPM DRAM. . Dùng trong các máy tính tƣơng đƣơng với hệ 80286 trở về trƣớc. 391
  152. SIMM . Module nhớ đơn hàng chân, gồm 2 loại chính:  SIMM 32 chân (8 bit dữ liệu + 1 bit parity) : FPM DRAM  SIMM 72 chân (32 bit dữ liệu + 4 bit parity tùy chọn) : EDO DRAM 392
  153. DIMM . Module nhớ hai hàng chân, gồm 3 loại chính:  DIMM 168 chân: SDRAM  DIMM 184 chân: DDR SDRAM  DIMM 240 chân: DDR2 SDRAM . Độ rộng đƣờng dữ liệu: 64 bit (non-ECC/parity) hoặc 72 bit (parity/ECC). 393
  154. Minh họa các module nhớ DIMM 394
  155. RIMM . Module nhớ 2 hàng chân (184 chân), là dạng đóng gói của loại bộ nhớ RDRAM. 395
  156. SODIMM . Thƣờng dùng trong các máy laptop, notebook, printer, router, . Gồm 4 loại chính:  SODIMM 72 chân, 32 bit dữ liệu, FPM/EDO  SODIMM 144 chân, 64 bit dữ liệu, FPM/EDO  SODIMM 144 chân, 64 bit dữ liệu, SDRAM  SODIMM 200 chân, 64 bit dữ liệu, DDR/DDR2 SDRAM 396
  157. Các module nhớ SODIMM 397
  158. MicroDIMM . Thƣờng dùng trong các máy notebook cỡ nhỏ, PDA, palmtop, . Gồm 2 loại chính:  MicroDIMM 144 chân, 64 bit dữ liệu, SDRAM  MicroDIMM 172 chân, 64 bit dữ liệu, DDR SDRAM 398
  159. Các module nhớ MicroDIMM 399
  160. 3. ROM BIOS . BIOS: Basic Input Output System. Chứa các chƣơng trình: . Chƣơng trình POST (Power On Self Test): tự kiểm tra khi bật nguồn. Mọi lỗi thông báo ở đây đều là lỗi về phần cứng. . Chƣơng trình CMOS Setup:  Cho phép ngƣời sử dụng có thể thiết lập các thông số cấu hình và thời gian của hệ thống.  Các thông tin sau khi thiết lập sẽ đƣợc cất vào bộ nhớ CMOS RAM. . Chƣơng trình Bootstrap Loader: tìm và nạp Boot Record của đĩa khởi động vào một địa chỉ xác định ở trong RAM và trao quyền điều khiển cho đoạn mã đó. . Các chƣơng trình điều khiển vào-ra cơ bản: tập hợp các chƣơng trình con phục vụ vào-ra. 400
  161. 4. CMOS RAM . Là một vùng nhớ có dung lƣợng nhỏ, đƣợc chế tạo bằng công nghệ CMOS, có một nguồn pin nuôi riêng, dùng để chứa các thông tin cấu hình và thời gian của hệ thống. 401
  162. 5. Video RAM . Vùng nhớ có tốc độ nhanh, dung lƣợng lớn, dùng để quản lý các thông tin hiển thị trên màn hình. 402
  163. 6. Các loại bộ nhớ ngoài . Đĩa mềm . Ổ đĩa cứng . Các loại đĩa quang . Flash disk 403
  164. 3.4. Hệ thống vào ra 3.4.1. Tổng quan về hệ thống vào-ra 3.4.2. Các phƣơng pháp điều khiển vào-ra 3.4.3. Nối ghép với thiết bị ngoại vi 3.4.4. Các cổng vào-ra thông dụng trên PC 404
  165. 3.4.1. Tổng quan về hệ thống vào-ra 1. Giới thiệu chung 2. Các thiết bị ngoại vi 3. Module nối ghép vào-ra 4. Các phƣơng pháp địa chỉ hóa cổng vào-ra 405
  166. 1. Giới thiệu chung . Chức năng: trao đổi thông tin giữa máy tính và hệ thống bên ngoài. . Các thao tác cơ bản:  Vào dữ liệu (Input)  Ra dữ liệu (Output) . Các thành phần chính:  Các thiết bị ngoại vi  Các module nối ghép vào-ra 406
  167. 2. Các thiết bị ngoại vi . Chức năng: Chuyển đổi thông tin từ một dạng vật lý nào đó về dạng dữ liệu phù hợp với máy tính hoặc ngƣợc lại. . Phân loại:  Các thiết bị thu nhận dữ liệu: nhƣ bàn phím, chuột, máy quét ảnh,  Các thiết bị hiển thị dữ liệu: màn hình, máy in,  Các thiết bị lƣu trữ: ổ đĩa mềm, ổ đĩa cứng, ổ đĩa quang CD, DVD,  Các thiết bị truyền thông: modem, card mạng, 407
  168. Cấu trúc chung của TBNV Dữ liệu từ/đến Dữ liệu từ/đến module vào-ra bên ngoài Bộ đệm dữ Bộ chuyển đổi liệu tín hiệu Tín hiệu điều khiển Khối logic điều khiển Tín hiệu trạng thái 408
  169. Các thành phần chính của TBNV . Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên ngoài và bên trong máy tính. . Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa module vào-ra và thiết bị ngoại vi. . Khối logic điều khiển: điều khiển hoạt động của thiết bị ngoại vi đáp ứng theo yêu cầu từ module vào-ra. 409
  170. 3. Module vào-ra . Đặc điểm của vào-ra:  Các thiết bị ngoại vi rất đa dạng, khác nhau về: . Nguyên tắc hoạt động . Tốc độ . Khuôn dạng dữ liệu  Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAM → Cần có các module vào-ra để nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính. 410
  171. Chức năng của module vào-ra . Chức năng:  Điều khiển và định thời  Trao đổi thông tin với CPU  Trao đổi thông tin với thiết bị ngoại vi  Đệm giữa bên trong máy tính với thiết bị ngoại vi  Phát hiện lỗi của thiết bị ngoại vi 411
  172. Cấu trúc chung của module vào-ra Dữ liệu Các đƣờng Bus dữ liệu Cổng nối dữ liệu Thanh ghi đệm bên trong Điều khiển ghép dữ liệu vào-ra Trạng thái Thanh ghi trạng thái / điều khiển Các đƣờng Dữ liệu địa chỉ Cổng nối Điều khiển Khối logic điều khiển ghép vào-ra Trạng thái Các đƣờng điều khiển 412
  173. Các thành phần của module vào-ra . Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi. . Các cổng vào-ra (I/O Port): kết nối với thiết bị ngoại vi, mỗi cổng có một địa chỉ xác định. . Khối logic điều khiển: điều khiển module vào-ra. . Thanh ghi trạng thái / điều khiển: lƣu giữ thông tin trạng thái / điều khiển cho các cổng vào-ra. 413
  174. 4. Địa chỉ hóa cổng vào-ra . Các thiết bị ngoại vi đƣợc nối ghép và trao đổi dữ liệu thông qua các cổng vào-ra. . Mỗi cổng vào-ra phải có 1 địa chỉ xác định → cần phải có các phƣơng pháp địa chỉ hóa cho cổng vào-ra. 414
  175. a. KGĐC bộ nhớ và KGĐC vào-ra . Mọi CPU đều có khả năng quản lý đƣợc một không gian địa chỉ bộ nhớ xác định. N  KGĐC bộ nhớ = 2 byte (N là số bit địa chỉ mà CPU có khả năng phát ra) . Một số CPU có khả năng quản lý thêm 1 không gian địa chỉ vào ra riêng biệt với không gian địa chỉ bộ nhớ. N1  KGĐC vào-ra = 2 byte N1  (N1 : số bit địa chỉ dùng để quản lý không gian địa chỉ vào-ra, 2 << 2N) . Trong trƣờng hợp CPU quản lý đƣợc cả 2 KGĐC thì:  CPU phải có tín hiệu để phân biệt không gian địa chỉ bộ nhớ và không gian địa chỉ vào-ra.  CPU phải có các lệnh vào-ra chuyên dụng. 415
  176. Ví dụ . BXL 68030 của Motorola chỉ quản lý 1 KGĐC bộ nhớ là 232 byte. . BXL Pentium của Intel có khả năng quản lý 2 KGĐC: 32  KGĐC bộ nhớ = 2 byte = 4GB 16  KGĐC vào-ra = 2 byte = 64KB . Pentium có:  Tín hiệu điều khiển phân biệt truy nhập không gian địa chỉ: IO/M  Có 2 lệnh vào-ra chuyên dụng: IN và OUT 416
  177. b. Các pp địa chỉ hóa cổng vào-ra . Vào ra riêng biệt (Isolated I/O):  Cổng vào-ra đƣợc địa chỉ hóa theo không gian địa chỉ vào-ra riêng biệt.  Để trao đổi dữ liệu với cổng, trong chƣơng trình sử dụng các lệnh vào-ra chuyên dụng. . Vào ra theo bản đồ bộ nhớ (Memory-mapped IO):  Cổng vào-ra đƣợc địa chỉ hóa theo không gian địa chỉ bộ nhớ.  Để trao đổi dữ liệu với cổng, trong chƣơng trình sử dụng các lệnh trao đổi dữ liệu với bộ nhớ. 417
  178. 3.4. Hệ thống vào ra 3.4.1. Tổng quan về hệ thống vào-ra 3.4.2. Các phƣơng pháp điều khiển vào-ra 3.4.3. Nối ghép với thiết bị ngoại vi 3.4.4. Các cổng vào-ra thông dụng trên PC 418
  179. 3.4.2. Các pp điều khiển vào-ra 1. Vào-ra bằng chƣơng trình 2. Vào-ra điều khiển bằng ngắt 3. Truy cập trực tiếp bộ nhớ - DMA 4. Bộ xử lý vào-ra 419
  180. 1. Vào-ra bằng chƣơng trình . Nguyên tắc chung:  Trong chƣơng trình ngƣời lập trình chủ động viết các lệnh vào-ra.  Khi thực hiện các lệnh vào-ra đó, CPU trực tiếp điều khiển việc trao đổi dữ liệu với cổng vào-ra. 420
  181. Lƣu đồ thực hiện Đọc trạng thái của module vào-ra Module vào-ra Sai sẵn sàng? Đúng Trao đổi dữ liệu với module vào-ra 421
  182. Hoạt động . CPU yêu cầu thao tác vào-ra. . Module vào-ra thực hiện thao tác. . Module vào-ra thiết lập các bit trạng thái. . CPU kiểm tra các bit trạng thái:  Nếu chƣa sẵn sàng thì quay lại tiếp tục kiểm tra.  Nếu đã sẵn sàng thì chuyển sang trao đổi dữ liệu với module vào-ra. 422
  183. Đặc điểm . Vào-ra do ý muốn của ngƣời lập trình . CPU trực tiếp điều khiển vào-ra . CPU phải đợi module vào-ra sẵn sàng → tiêu tốn thời gian của CPU 423
  184. 2. Vào-ra điều khiển bằng ngắt . Nguyên tắc chung:  CPU không phải đợi trạng thái sẵn sàng của module vào-ra.  CPU đang thực hiện một chƣơng trình nào đó, nếu module vào-ra sẵn sàng thì nó phát tín hiệu yêu cầu ngắt gửi đến CPU.  Nếu yêu cầu ngắt đƣợc chấp nhận thì CPU thực hiện chƣơng trình con vào-ra tƣơng ứng để trao đổi dữ liệu.  Kết thúc chƣơng trình con đó, CPU quay trở lại tiếp tục thực hiện chƣơng trình đang bị ngắt. 424
  185. Hoạt động . Hoạt động vào dữ liệu – nhìn từ phía module vào- ra:  Module vào-ra nhận tín hiệu điều khiển đọc từ CPU.  Module vào-ra nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác.  Khi đã có dữ liệu, module vào-ra phát tín hiệu ngắt CPU.  CPU yêu cầu dữ liệu.  Module vào-ra chuyển dữ liệu đến CPU. 425
  186. Hoạt động (tiếp) . Hoạt động vào dữ liệu – nhìn từ phía CPU:  CPU phát tín hiệu điều khiển đọc.  CPU làm việc khác.  Cuối mỗi chu trình lệnh, CPU kiểm tra tín hiệu ngắt.  Nếu bị ngắt, CPU: . Cất ngữ cảnh hiện tại của chƣơng trình. . Thực hiện chƣơng trình con phục vụ ngắt để vào dữ liệu. . Sau khi hoàn thành chƣơng trình con đó, CPU khôi phục ngữ cảnh và trở về tiếp tục thực hiện chƣơng trình đang tạm dừng. 426
  187. Các vấn đề nảy sinh khi thiết kế . Làm thế nào để xác định đƣợc module vào-ra nào phát tín hiệu yêu cầu ngắt. . Khi có nhiều yêu cầu ngắt cùng gửi đến, CPU sẽ xử lý nhƣ thế nào. 427
  188. Các phƣơng pháp nối ghép ngắt . Sử dụng nhiều đƣờng yêu cầu ngắt . Kiểm tra vòng bằng phần mềm (Software Poll) . Kiểm tra vòng bằng phần cứng (Daisy Chain of Hardware Poll) . Sử dụng bộ điều khiển ngắt (PIC) 428
  189. Sử dụng nhiều đƣờng yêu cầu ngắt INTR 3 Thanh ghi INTR 2 yêu cầu INTR 1 ngắt INTR 0 CPU Module Module Module Module vào-ra vào-ra vào-ra vào-ra . Mỗi module vào-ra đƣợc nối với 1 đƣờng yêu cầu ngắt . CPU phải có nhiều đƣờng tín hiệu yêu cầu ngắt . Hạn chế số lƣợng module vào-ra . Các đƣờng yêu cầu ngắt đƣợc quy định mức ƣu tiên 429
  190. Kiểm tra vòng bằng phần mềm Cờ yêu INTR cầu ngắt Module Module Module Module CPU vào-ra vào-ra vào-ra vào-ra . CPU thực hiện phần mềm hỏi lần lƣợt từng module vào-ra . Tốc độ chậm . Thứ tự các module vào-ra đƣợc hỏi vòng chính là thứ tự ƣu tiên 430
  191. Kiểm tra vòng bằng phần cứng Bus dữ liệu Cờ yêu INTR cầu ngắt INTA Module Module Module Module CPU vào-ra vào-ra vào-ra vào-ra 431
  192. Kiểm tra vòng bằng phần cứng (tiếp) . CPU phát tín hiệu chấp nhận ngắt (INTA) đến module vào-ra đầu tiên. . Nếu module vào-ra đó không gây ra ngắt thì nó gửi tín hiệu đến module kế tiếp cho đến khi xác định đƣợc module gây ngắt. . Module vào-ra gây ngắt sẽ đặt vector ngắt lên bus dữ liệu. . CPU sử dụng vector ngắt để xác định nơi chứa chƣơng trình con phục vụ ngắt. . Thứ tự các module vào-ra kết nối trong chuỗi xác định thứ tự ƣu tiên. 432
  193. Bộ điều khiển ngắt lập trình đƣợc INTR 3 Bus dữ liệu INTR 2 INTR 1 INTR CPU PIC INTR 0 INTA Module Module Module Module vào-ra vào-ra vào-ra vào-ra . PIC: Programmable Interrupt Controller. . PIC có nhiều đƣờng yêu cầu ngắt có quy định mức ƣu tiên. . PIC chọn một yêu cầu ngắt không bị cấm có mức ƣu tiên cao nhất gửi đến CPU. 433
  194. Tổ chức ngắt của 80x86 Địa chỉ Bộ nhớ . Tổ chức kiểu vector ngắt. 00000 IP của INT 0 Vector 0 : Chia cho 0 00002 CS của INT 0 . Mỗi ngắt đƣợc đặc trƣng 00004 IP của INT 1 Vector 1 : Chạy từng lệnh 00006 CS của INT 1 bằng số hiệu ngắt N (00 ÷ 00008 IP của INT 0 Vector 2 : Ngắt không che đƣợc (NMI) FF). 0000A CS của INT 0 0000C IP của INT 1 Vector 3 : Điểm dừng . Bảng vector ngắt: 0000E CS của INT 1 00010 IP của INT 0 Vector 4 : Tràn số học 256 x 4 = 1024 byte 00012 CS của INT 0 00014 IP của INT 1 Vector 5 00000 ÷ 003FF 00016 CS của INT 1 Đƣợc định nghĩa trƣớc . Gọi CTC phục vụ ngắt hoặc dành riêng . Vector 31 bằng lệnh: INT N . . Vector 32 003F8 IP của INT 0 Dành cho ngƣời lập trình Vector 254 003FA CS của INT 0 003FC IP của INT 1 Vector 255 003FE CS của INT 1 434
  195. Đặc điểm của vào-ra bằng ngắt . Có sự kết hợp giữa phần cứng và phần mềm:  Phần cứng: gây ngắt CPU.  Phần mềm: trao đổi dữ liệu. . CPU trực tiếp điều khiển vào-ra. . CPU không phải đợi module vào-ra → hiệu suất sử dụng CPU tốt hơn. 435
  196. 3. Truy cập trực tiếp bộ nhớ . DMA (Direct Memory Access) . Các phƣơng pháp vào-ra bằng chƣơng trình và vào-ra điều khiển bằng ngắt do CPU trực tiếp điều khiển:  Chiếm thời gian của CPU  Tốc độ trao đổi dữ liệu bị hạn chế vì phải chuyển qua CPU . Để khắc phục → dùng DMA:  Thêm module phần cứng là DMAC (Direct Memory Access Controller)  DMAC điều khiển trao đổi dữ liệu giữa module vào-ra với bộ nhớ chính. 436
  197. Cấu trúc của DMAC Các đƣờng địa chỉ Thanh ghi địa chỉ Các đƣờng dữ liệu Thanh ghi dữ liệu Bộ đếm Yêu cầu bus Điều khiển đọc Chuyển nhƣợng bus Điều khiển ghi Ngắt Logic điều khiển Đọc Yêu cầu DMA Ghi Chấp nhận DMA 437
  198. Các thành phần của DMAC . Thanh ghi dữ liệu: chứa dữ liệu cần trao đổi . Thanh ghi địa chỉ: chứa địa chỉ ngăn nhớ dữ liệu . Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi . Logic điều khiển: điều khiển hoạt động của DMAC 438
  199. Hoạt động của DMAC . CPU gửi cho DMAC các thông tin:  Chiều trao đổi dữ liệu: vào hay ra dữ liệu  Địa chỉ thiết bị vào-ra (cổng vào-ra tƣơng ứng)  Địa chỉ đầu của mảng nhớ dữ liệu → nạp vào thanh ghi địa chỉ  Số từ dữ liệu cần truyền → nạp vào bộ đếm dữ liệu . CPU làm việc khác . DMAC điều khiển trao đổi dữ liệu . Sau khi truyền đƣợc 1 từ dữ liệu:  Nội dung thanh ghi địa chỉ tăng  Nội dung bộ đếm dữ liệu giảm . Khi bộ đếm dữ liệu = 0, DMAC gửi yêu cầu ngắt đến CPU để báo hiệu đã kết thúc DMA 439
  200. Các kiểu DMA . DMA truyền theo khối (Block Transfer DMA): CPU trao quyền sử dụng bus cho DMAC trong một khoảng thời gian đủ lớn để DMAC thực hiện trao đổi xong cả khối dữ liệu. . DMA xen kẽ chu kỳ máy với CPU (Cycle Stealing DMA): DMAC và CPU thay nhau sử dụng bus trong từng chu kỳ máy. . DMA trong suốt (Transparent DMA): Trong quá trình hoạt động, không phải chu kỳ nào CPU cũng sử dụng bus hệ thống, DMAC sẽ phát hiện xem những chu kỳ CPU không dùng bus để chiếm dụng bus trong chu kỳ đó và điều khiển trao đổi 1 từ dữ liệu → không làm ảnh hƣởng đến CPU. 440
  201. Các cấu hình thiết kế DMA . Cấu hình 1: System bus . CPU DMAC IO Module IO Module Memory  Mỗi lần truyền, DMAC sử dụng bus 2 lần: . Giữa DMAC với module vào-ra . Giữa DMAC với bộ nhớ 441
  202. Các cấu hình thiết kế DMA (tiếp) . Cấu hình 2: System bus CPU DMAC DMAC Memory IO Module IO Module IO Module  DMAC điều khiển một hoặc một vài module vào-ra  Mỗi lần truyền, DMAC sử dụng bus 1 lần: . Giữa DMAC với bộ nhớ 442
  203. Các cấu hình thiết kế DMA (tiếp) . Cấu hình 3: System bus CPU DMAC Memory I/O bus IO Module IO Module . IO Module  Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMA  Mỗi lần truyền, DMAC sử dụng bus 1 lần: . Giữa DMAC với bộ nhớ 443
  204. Đặc điểm của DMA . CPU không tham gia vào quá trình trao đổi dữ liệu . DMAC điều khiển trao đổi dữ liệu giữa bộ nhớ chính với module vào-ra hoàn toàn bằng phần cứng → tốc độ nhanh. . Thích hợp với các yêu cầu trao đổi dữ liệu kích thƣớc lớn. 444
  205. 4. Bộ xử lý vào-ra . Việc điều khiển vào-ra đƣợc thực hiện bởi một bộ xử lý vào-ra chuyên dụng. . Bộ xử lý vào-ra hoạt động theo chƣơng trình của riêng nó. . Chƣơng trình của bộ xử lý vào-ra có thể nằm trong bộ nhớ chính hoặc nằm trong một bộ nhớ riêng. . Hoạt động theo kiến trúc đa xử lý. 445
  206. 3.4. Hệ thống vào ra 3.4.1. Tổng quan về hệ thống vào-ra 3.4.2. Các phƣơng pháp điều khiển vào-ra 3.4.3. Nối ghép với thiết bị ngoại vi 3.4.4. Các cổng vào-ra thông dụng trên PC 446
  207. 3.4.3. Nối ghép với thiết bị ngoại vi 1. Các kiểu nối ghép 2. Các cấu hình nối ghép 447
  208. 1. Các kiểu nối ghép . Nối ghép song song:  Truyền nhiều bit song song  Tốc độ nhanh  Cần nhiều đƣờng truyền Cổng Bus vào-ra hệ . . TBNV . . . song . thống song 448
  209. Các kiểu nối ghép (tiếp) . Nối ghép nối tiếp:  Truyền lần lƣợt từng bit  Cần có bộ truyển đổi qua lại giữa dữ liệu song song và nối tiếp  Tốc độ chậm hơn  Cần ít đƣờng dây → truyền đƣợc xa hơn Bus Cổng hệ . vào-ra TBNV . thống . nối tiếp 449
  210. 2. Các cấu hình nối ghép . Cấu hình điểm tới điểm (Point to Point): thông qua một cổng vào-ra cho phép nối ghép với một thiết bị ngoại vi.  Nối ghép bàn phím  Nối ghép chuột  Nối ghép ổ đĩa mềm  . Cấu hình điểm tới đa điểm (Point to Multipoint): thông qua một cổng vào-ra cho phép nối ghép với nhiều thiết bị ngoại vi.  Chuẩn nối ghép SCSI: cho phép nối ghép tới 7 hoặc 15 thiết bị  Cổng USB: nối ghép tới 127 thiết bị  Cổng IEEE 1394: nối ghép tới 63 thiết bị 450
  211. 3.4. Hệ thống vào ra 3.4.1. Tổng quan về hệ thống vào-ra 3.4.2. Các phƣơng pháp điều khiển vào-ra 3.4.3. Nối ghép với thiết bị ngoại vi 3.4.4. Các cổng vào-ra thông dụng trên PC 451
  212. 3.4.4. Các cổng vào-ra thông dụng . Các cổng PS/2: nối ghép bàn phím và chuột . Các cổng nối ghép màn hình . Cổng LPT (Line Printer): thƣờng nối ghép với máy in, là cổng song song (Parallel Port) . Cổng COM (Communication): thƣờng nối ghép với MODEM, là cổng nối tiếp (Serial Port) . Cổng USB (Universal Serial Bus): cổng nối tiếp đa năng . 452
  213. Các cổng vào-ra thông dụng (tiếp) 453