Giáo trình Kiến trúc máy tính - Chuyên ngành: Kỹ thuật lắp ráp, sửa chữa máy tính - Trường Cao đẳng công nghiệp Hải Phòng

pdf 105 trang Gia Huy 17/05/2022 2160
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kiến trúc máy tính - Chuyên ngành: Kỹ thuật lắp ráp, sửa chữa máy tính - Trường Cao đẳng công nghiệp Hải Phòng", để 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:

  • pdfgiao_trinh_kien_truc_may_tinh_chuyen_nganh_ky_thuat_lap_rap.pdf

Nội dung text: Giáo trình Kiến trúc máy tính - Chuyên ngành: Kỹ thuật lắp ráp, sửa chữa máy tính - Trường Cao đẳng công nghiệp Hải Phòng

  1. UBND TỈNH HẢI PHÒNG TRƯỜNG CAO ĐẲNG CÔNG NGHIỆP HẢI PHÒNG GIÁO TRÌNH KIẾN TRÚC MÁY TÍNH Chuyên ngành: Kỹ thuật lắp ráp, sửa chữa máy tính (Lưu hành nội bộ) HẢI PHÒNG 1
  2. LỜI GIỚI THIỆU ”Cấu trúc máy tính” là môn học bắt buộc trong các trường nghề. Tuỳ thuộc vào đối tượng người học và cấp bậc học mà trang bị cho học sinh, sinh viên những kiến thức cơ bản nhất. Để thống nhất chương trình và nội dung giảng dạy trong các nhà trường chúng tôi biên soạn cuốn giáo trình: Cấu trúc máy tính. Giáo trình được biên soạn phù hợp với các nghề trong các trường đào tạo nghề phục vụ theo yêu cầu của thực tế xã hội hiện nay. Tài liệu tham khảo để biên soạn gồm: [1]. Nguyễn Kim Khánh, Bài giảng kiến trúc máy tính, ĐH Bách Khoa Hà Nội, 2010. [2]. Trần Quang Vinh, Cấu trúc máy vi tính, nxb ĐH Quốc gia Hà Nội, 2009. [3]. Hoàng Xuân Dậu, Bài giảng kiến trúc máy tính, Học viện Công nghệ Bưu chính viễn thông, 2010. [4]. Willian Stallings, Computer Organization and ArchitectureDesigning for Performance –2009 (8thedition). Kết hợp với kiến thức mới có liên quan môn học và những vấn đề thực tế thường gặp trong sản xuất, đời sống để giáo trình có tính thực tế cao, giúp cho người học dễ hiểu, dễ dàng lĩnh hội được kiến thức môn học. Trong quá trình biên soạn giáo trình kinh nghiệm còn hạn chế, chúng tôi rất mong nhận được ý kiến đóng góp của bạn đọc để lần hiệu đính sau được hoàn chỉnh hơn. Tổ bộ môn Kỹ thuật hệ thống và mạng máy tính 2
  3. Mục lục LỜI GIỚI THIỆU 1 Chương 1: HỆ THỐNG MÁY TÍNH 6 1.1. Các thành phần cơ bản của máy tính 6 1.2. Hoạt động cơ bản của máy tính 13 1.3. LIÊN KẾT HỆ THỐNG 16 Chương 2: BỘ VI XỬ LÝ TRUNG TÂM 25 2.1. Cấu trúc của CPU 25 2.2. Tập lệnh 32 2.3. Hoạt động của CPU 36 2.4. Kiến trúc Intel 38 2.5. Cấu trúc chung của các bộ xử lý tiên tiến 46 2.6. Bộ xử lý đa lõi 48 CHƯƠNG 3: HỆ THỐNG NHỚ 52 3.1. Tổng quan về hệ thống nhớ 52 3.2. Bộ nhớ bán dẫn 55 3.3. Bộ nhớ đệm Cache 67 CHƯƠNG IV: HỆ THỐNG VÀO RA 88 4.1. Tổng quan về hệ thống vào ra 88 4.2. Các phương pháp điều khiển vào ra 90 4.4. Các cổng vào ra thông dụng trên máy tính 96 3
  4. CẤU TRÚC MÁY TÍNH I. Vị trí, tính chất của môn học: - Vị trí: Được bố trí học sau các môn học chung, các môn tin học đại cương, tin học văn phòng. - Tính chất: Là môn học kỹ thuật cơ sở thuộc môn học đào tạo nghề bắt buộc. II. Mục tiêu môn học: Kiến thức: - Trình bày đúng chức năng của các thành phần cơ bản trên Máy tính, cấu trúc và nguyên tắc làm việc của Bộ xử lý trung tâm-CPU, cấu trúc một số dòng CPU tiên tiến ngày nay; - Chỉ ra được chức năng và phân biệt được các loại bộ nhớ khác nhau được sử dụng trong máy tính. Mô tả được cách thức quản lý và làm việc của Cache, HDD, CDROM; - Nhắc lại được vai trò của hệ thống vào-ra trong hoạt động của máy tính, các phương pháp điều khiển vào-ra mà CPU sử dụng trong trao đổi thông tin. Kỹ năng: - Nhận biết được các thành phần cơ bản của máy tính; - Phân biệt được CPU 2 hãng Intel và AMD; - Phân biệt RAM và ROM; - Kiểm tra được thông số máy tính; - Lắp ráp máy tính bằng phần mềm giả lập. - Phân biệt được các kiểu ghép nối, nhận biết được các cổng vào ra thông dụng trên máy tính. Năng lực tự chủ và trách nhiệm: - Cẩn thận tỷ mỉ, tuân thủ nội quy phòng học; - Linh hoạt vận dụng kiến thức vào thực tế. III. Nội dung môn học: 1. Nội dung tổng quát và phân phối thời gian: Số TT Tên chương/mục I Chương 1: Hệ thống máy tính II Chương 2: Bộ vi xử lý trung tâm III Chương 3: Hệ thống nhớ IV Chương 4: Hệ thống vào ra V Bài tập lớn VI Ôn tập 4
  5. Chương 1: HỆ THỐNG MÁY TÍNH 1.1. Các thành phần cơ bản của máy tính 1.1.1. Mô hình cơ bản của máy tính 1.1.2. Bộ vi xử lý trung tâm - CPU 1.1.3. Hệ thống nhớ 1.1.4. Hệ thống vào-ra 1.1.5. Hệ thống BUS 1.2. Hoạt động cơ bản của máy tính 1.2.1. Thực hiện chương trình 1.2.2. Hoạt động ngắt 1.3. Liên kết hệ thống 1.3.1. Hệ thống BUS 1.3.2. Mainboard 5
  6. Chương 1: HỆ THỐNG MÁY TÍNH 1.1. Các thành phần cơ bản của máy tính 1.1.1. Mô hình cơ bản của máy tính Chức năng của máy tính - Xử lý dữ liệu: là chức năng quan trọng nhất của máy tính. Dữ liệu có thể có rất nhiều dạng khác nhau và có yêu cầu xử lý khác nhau. - Lưu trữ dữ liệu: Dữ liệu đưa vào máy tính được xử lý ngay hoặc có thể được lưu trong bộ nhớ. Khi cần chúng sẽ được lấy ra xử lý. - Trao đổi dữ liệu: Trao đổi dữ liệu giữa các thành phần bên trong và bên ngoài máy tính -> Quá trình vào ra (input-output). Các thiết bị vào-ra: nguồn cung cấp dữ liệu hoặc nơi tiếp nhận dữ liệu. Dữ liệu được vận chuyển trên khoảng cách xa gọi là truyền dữ liệu (data communication). - Điều khiển: Máy tính cần phải điều khiển ba chức năng trên. 6
  7. Cấu trúc cơ bản của máy tính - Bộ xử lý trung tâm - CPU (Central Processor Unit): Điều khiển các hoạt động của máy tính và thực hiện xử lý dữ liệu. - Hệ thống nhớ: Lưu trữ chương trình và dữ liệu - Hệ thống vào ra (Input-Output System): Trao đổi thông tin giữa máy tính và thế giới bên ngoài. - Hệ thống BUS: Kết nối và vận chuyển thông tin giữa CPU, bộ nhớ chính và hệ thống vào ra của máy tính với nhau. 1.1.2. Bộ vi xử lý trung tâm - CPU Chức năng: - Điều khiển hoạt động của toàn bộ hệ thống máy tính - Xử lý dữ liệu Nguyên tắc hoạt động: CPU hoạt động theo chương trình nằm trong bộ nhớ chính, bằng cách: - Nhận lệnh từ bộ nhớ chính - Giải mã lệnh và phát các tín hiệu điều khiển thực thi lệnh 7
  8. - CPU có thể trao đổi dữ liệu với bộ nhớ chính hay hệ thống vào-ra. - Thực hiện lệnh - Ghi kết quả Các thành phần cơ bản: - Đơn vị điều khiển (Control Unit- CU): điều khiển hoạt động của máy tính theo chương trình đã định sẵn. - Đơn vị số học và logic (Arithmetic and Logic Unit- ALU): thực hiện các phép toán số học và phép toán logic. - Tập thanh ghi (Register File- RF): lưu giữ các thông tin tạm thời phục vụ cho hoạt động của CPU. - Đơn vị nối ghép bus (Bus Interface Unit-BIU) kết nối và trao đổi thông tin giữa bus bên trong (internal bus) và bus bên ngoài (external bus). Tốc độ của bộ xử lý: - Số lệnh được thực hiện trong 1 giây, MIPS (Million of Instructions per Second). - Khó đánh giá chính xác (còn phụ thuộc bộ nhớ, bo mạch đồ họa ). Tần số xung nhịp của bộ xử lý: 8
  9. - Bộ xử lý hoạt động theo một xung nhịp (Clock) có tần số xác định. - Tốc độ của bộ xử lý được đánh giá gián tiếp thông qua tần số của xung nhịp. Dạng xung nhịp: T0: chu kỳ xung nhịp Mỗi thao tác của bộ xử lý mất một số nguyên lần chu kỳ T0 => T0 càng nhỏ thì bộ xử lý chạy càng nhanh. Tần số xung nhịp: f0 = 1/T0 gọi là tần số làm việc của CPU. Ví dụ: Máy tính dùng bộ xử lý Intel Pentium IV 2 GHz 9 9 Ta có: f0 = 2 GHz = 2 x 10 Hz > T0 = 1/f0 = 1/(2x10 ) = 0,5 ns 1.1.3. Hệ thống nhớ Chức năng: Lưu trữ chương trình và dữ liệu. Các thao tác cơ bản với bộ nhớ: Thao tác ghi (Write) và thao tác đọc (Read). Các thành phần chính của bộ nhớ: - Bộ nhớ trong (Internal Memory) - Bộ nhớ ngoài (External Memory) 1.1.3.1. Bộ nhớ trong Chức năng và đặc điểm: 9
  10. - Chứa các thông tin mà CPU có thể trao đổi trực tiếp - Tốc độ rất nhanh - Dung lượng không lớn - Sử dụng bộ nhớ bán dẫn: ROM và RAM Các loại bộ nhớ trong: - Bộ nhớ chính (Main Memory) - Bộ nhớ cache (bộ nhớ đệm) Bộ nhớ chính (Main Memory) - 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 và dữ liệu đang được CPU sử dụng. - Tổ chức thành các ngăn nhớ được đánh địa chỉ. - Ngăn nhớ thường được tổ chức theo Byte. - Nội dung của ngăn nhớ có thể thay đổi, song địa chỉ vật lý của ngăn nhớ luôn cố định. - Thông thường, bộ nhớ chính gồm 2 phần: RAM và ROM + ROM (Read Only Memory), hay Bộ nhớ chỉ đọc, lưu trữ các chương trình mà khi mất nguồn điện cung cấp sẽ không bị (xóa) mất. Ngày nay còn có công nghệ FlashROM tức bộ nhớ ROM không những chỉ đọc mà còn có thể ghi lại được, nhờ có công nghệ này BIOS được cải tiến thành Flash BIOS. + RAM (Random Access Memory), hay Bộ nhớ truy cập ngẫu nhiên có tốc độ truy cập nhanh, lưu trữ dữ liệu tạm thời, dữ liệu sẽ bị mất vĩnh viễn khi không còn nguồn điện cung cấp. Bộ nhớ cache (bộ nhớ đệm) - Bộ nhớ có tốc độ nhanh được đặt đệm giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy cập bộ nhớ. - Dung lượng nhỏ hơn bộ nhớ chính. Tốc độ nhanh hơn. - Cache thường được chia thành một số mức: Cache L1, L2, L3 - Cache có thể được tích hợp trên cùng chip bộ xử lý. 10
  11. - Cache có thể có hoặc không. 1.1.3.2. Bộ nhớ ngoài Chức năng và đặc điểm: - Lưu giữ tài nguyên phần mềm của máy tính, bao gồm: Hệ điều hành, các chương trình và dữ liệu. - Bộ nhớ ngoài được kết nối với hệ thống dưới dạng các thiết bị vào ra - Dung lượng lớn - Tốc độ chậm Các loại bộ nhớ ngoài: - Bộ nhớ từ: Đĩa cứng, đĩa mềm - Bộ nhớ quang: Đĩa CD, DVD, - Bộ nhớ bán dẫn: Thẻ nhớ, USB flash. 1.1.4. Hệ thống vào-ra Chức năng: Trao đổi thông tin giữa máy tính với thế giới 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 (Peripheral Devices) - Các mô-đun vào-ra (IO Modules). Cấu trúc cơ bản của hệ thống vào-ra 11
  12.  Các thiết bị ngoại vi Chức năng: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính. Các loại thiết bị ngoại vi cơ bản: - Thiết bị vào: bàn phím, chuột, máy quét - Thiết bị ra: màn hình, máy in - Thiết bị nhớ: các ổ đĩa - Thiết bị truyền thông: MODEM  Các mô-đun vào-ra - Chức năng: nối ghép các thiết bị ngoại vi với máy tính - Mỗi mô-đun vào-ra có một hoặc một vài cổng vào-ra (I/O Port). - Mỗi cổng vào-ra được đánh một địa chỉ xác định. - Các thiết bị ngoại vi được kết nối và trao đổi dữ liệu với máy tính thông qua các cổng vào-ra. 1.1.5. Hệ thống BUS Hệ thống BUS (Bus system) làm nhiệm vụ vận chuyển thông tin giữa các phần khác nhau trong máy tính. 12
  13. Hệ thống Bus bao gồm: - Bus dữ liệu dùng để vận chuyển dữ liệu từ bộ nhớ tới CPU hoặc ngược lại. - Bus địa chỉ dùng để vận chuyển tín hiệu địa chỉ (ô nhớ hay cổng vào/ra do CPU phát ra). - Bus điều khiển dùng để vận chuyển tín hiệu điều khiển do CPU phát ra để điều khiển các khối trong hệ thống hoặc do thiết bị ngoại vi gửi tới CPU yêu cầu thực hiện một công việc nào đó. 1.2. Hoạt động cơ bản của máy tính 1.2.1. Thực hiện chương trình Là hoạt động cơ bản của Máy tính. Máy tính lặp đi lặp lại quá trình thực hiện lệnh gồm hai bước cơ bản: - Nhận lệnh (Fetch) - Thực hiện lệnh (Execute)  Chương trình dừng khi: - Mất nguồn - Gặp lệnh dừng - Gặp tình huống không giải quyết được(lỗi) Chu trình lệnh: 13
  14.  Nhận lệnh (Fetch) - Bắt đầu mỗi chu kỳ lệnh là CPU tiến hành lấy lệnh từ bộ nhớ chính. Trong quá trình lấy và thực hiện lệnh có 2 thanh ghi bên trong CPU mà ta quan tâm đó là PC (Program Counter) và thanh ghi IR (Instruction Register). - CPU lấy lệnh từ ngăn nhớ được trỏ bởi thanh ghi PC đưa vào thanh ghi lệnh IR lưu giữ. - Sau mỗi lệnh được nhận thì nội dung của thanh ghi PC tự động tăng để trỏ tới lệnh kế tiếp sẽ được thực hiện.  Thực hiện lệnh (Execute) - Bộ xử lý giải mã lệnh đã được nhận và phát tín hiệu điều khiển thực hiện thao tác mà lệnh yêu cầu thông qua khối điều khiển CU. - Thực hiện trao đổi giữa CPU và bộ nhớ chính. - Thực hiện trao đổi giữa CPU và mô-đun I/O. - Xử lý dữ liệu thực hiện các phép toán số học và logic. - Điều khiển rẽ nhánh. - Kết hợp các thao tác trên. Một số ví dụ về quá trình thực hiện lệnh, với giả thiết cấu trúc lệnh có dạng như sau: 14
  15. 1.2.2. Hoạt động ngắt Khái niệm chung về ngắt: Ngắt là cơ chế cho phép CPU tạm dừng chương trình đang thực hiện chuyển sang thực hiện một chương trình khác, gọi là chương trình con phục vụ ngắt. Các loại ngắt: - Ngắt do lỗi thực hiện chương trình, ví dụ: tràn số, chia cho 0 - Ngắt do lỗi phần cứng, ví dụ: lỗi bộ nhớ RAM - Ngắt do mô-đun vào-ra phát ra tín hiệu ngắt đến CPU yêu cầu trao đổi dữ liệu. Hoạt động của ngắt: Sau khi hoàn thành một lệnh, bộ xử lý kiểm tra tín hiệu ngắt. 15
  16. - Nếu không có ngắt thì bộ xử lý tiếp tục nhận lệnh tiếp theo. - Nếu có tín hiệu ngắt: + Tạm dừng chương trình đang thực hiện. Cất ngữ cảnh (thông tin có liên quan đến chương trình đang thực hiện). + Thiết lập bộ đếm chương trình PC trỏ đến chương trình con phục vụ ngắt. + Thực hiện chương trình con phục vụ ngắt. + Cuối chương trình con phục vụ ngắt. Khôi phục lại ngữ cảnh và tiếp tục chương trình đang bị tạm dừng. 1.3. LIÊN KẾT HỆ THỐNG 1.3.1. Hệ thống Bus 1.3.1.1. Các luồng thông tin trong máy tính Một máy tính bao gồm một tập hợp các thành phần hay mô-đun thuộc 3 kiểu cơ bản: - CPU - Mô-đun nhớ - Mô-đun vào-ra Trong thực tế, máy tính được xem như một mạng gồm nhiều thành phần cơ bản. 16
  17. Do đó, để máy tính hoạt động được cần phải có các đường dẫn kết nối các mô-đun lại với nhau. a) Kết nối mô-đun nhớ: - Địa chỉ đưa đến để xác định ngăn nhớ - Dữ liệu được đưa đến khi ghi - Dữ liệu hoặc lệnh được đưa ra khi đọc (lưu ý: bộ nhớ không phân biệt lệnh và dữ liệu). - Nhận các tín hiệu điều khiển: Điều khiển đọc (Read), điều khiển ghi (Write). b) Kết nối mô-đun vào-ra: - Địa chỉ đưa đến để xác định cổng vào-ra - Ra dữ liệu (Output) + Nhận dữ liệu từ CPU hoặc bộ nhớ chính + Đưa dữ liệu ra thiết bị ngoại vi - Vào dữ liệu (Input) + Nhận dữ liệu từ thiết bị ngoại vi 17
  18. + Đưa dữ liệu vào CPU hoặc bộ nhớ chính - Nhận các tín hiệu điều khiển từ CPU - Phát các tín hiệu điều khiển đến thiết bị ngoại vi - Phát các tín hiệu ngắt đến CPU c) Kết nối CPU: - Phát địa chỉ đến các mô-đun nhớ hay các mô-đun vào-ra - Đọc lệnh và dữ liệu - Đưa dữ liệu ra (sau khi xử lý) - Phát tín hiệu điều khiển đến các mô-đun nhớ và các mô-đun vào-ra - Nhận các tín hiệu ngắt 1.3.1.2. Cấu trúc Bus cơ bản Chức năng vận chuyển thông tin giữa các thành phần trong máy tính, như thông tin từ CPU tới bộ nhớ, từ CPU tới bộ điều khiển vào ra I/O. - Khái niệm BUS: Bus là tập hợp các đường kết nối dùng để vận chuyển thông tin giữa các mô-đun của máy tính với nhau. - Độ rộng của BUS: Là số đường dây của Bus có thể truyền các bit thông tin đồng thời (chỉ dùng cho bus địa chỉ và bus dữ liệu). - Phân loại BUS: Theo chức năng ta chia bus ra làm 3 loại là BUS địa chỉ, BUS dữ liệu và BUS điều khiển. 18
  19. a) BUS địa chỉ : - Chức năng: Dùng để vận chuyển địa chỉ từ CPU đến các mô-đun nhớ hay các mô-đun vào ra, nhằm để xác định ngăn nhớ hay cổng vào ra nào cần truy xuất trao đổi thông tin (đây là BUS một chiều). - Độ rộng của BUS địa chỉ (A0, A1, , An-1). Cho biết khả năng quản lý cực đại số các ngăn nhớ. Nếu sử dụng độ rộng bus địa chỉ n đường thì dung lượng cực đại của bộ nhớ có thể quản lý là 2n ngăn nhớ hay tương đương với 2n Byte nhớ (nếu mỗi ngăn nhớ 1 Byte) b) BUS dữ liệu: - Chức năng: Vận chuyển lệnh từ bộ nhớ đến CPU, vận chuyển dữ liệu giữa CPU, mô-đun nhớ, mô-đun vào-ra với nhau. - Độ rộng của Bus dữ liệu (D0, D1, .Dm-1). Cho biết số bit dữ liệu có thể được trao đổi đồng thời, m=8, 16, 32, 64, 128 bit. c) BUS điều khiển: Tập hợp các tín hiệu điều khiển gồm có: - Các tín hiệu phát ra từ CPU để điều khiển mô-đun nhớ và mô-đun vào ra. - Các tín hiệu từ mô-đun nhớ, mô-đun vào ra gửi đến CPU yêu cầu. 19
  20. - Ngoài ra còn là BUS cung cấp nguồn tín hiệu xung nhịp (clock) với các BUS đồng bộ. 20
  21. Một số tín hiệu điều khiển điển hình: - Memory Read (MEMR): điều khiển đọc dữ liệu từ một ngăn nhớ có địa chỉ xác định lên bus dữ liệu. - Memory Write (MEMW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu đến một ngăn nhớ có địa chỉ xác định. - I/O Read (IOR): điều khiển đọc dữ liệu từ một cổng vào-ra có địa chỉ xác định lên bus dữ liệu. - I/O Write (IOW): điều khiển ghi dữ liệu có sẵn trên bus dữ liệu ra một cổng có địa chỉ xác định - Interupt Request (INTR): Tín hiệu phát ra từ thiết bị gửi đến CPU yêu cầu ngắt - Interupt Acknowledge (INTA): Tín hiệu phát ra từ CPU báo hiệu với thiết bị rằng CPU cho phép ngắt. - Non – Maskable Interupt (NMI): Thường dùng để báo sự cố của máy tính. - Reset: Tín hiệu gửi đến CPU yêu cầu khởi động lại máy tính. d) Các yếu tố trong thiết kế BUS: - Các kiểu Bus:. Có 2 kiểu Bus tổng quát là Bus dành riêng và Bus dồn kênh. + Bus dành riêng: sử dụng các đường truyền dữ liệu và địa chỉ chuyên dụng tách biệt. Đây là sự chuyên biệt hóa về chức năng. Ưu điểm của kiều Bus này là điều khiển đơn giản tuy nhiên lại sử dụng nhiều đường kết nối. Điều này làm gia tăng kích thước và phí tổn cho hệ thống. + Bus dồn kênh: dùng chung các đường truyền địa chỉ và dữ liệu. Lợi ích của Bus dồn kênh chính là sử dụng ít đường dữ liệu giúp tiết kiệm không gian và phí tổn. Tuy nhiên điểm bất lợi của nó là cần nhiều mạch điện tử phức tạp và sụt giảm hiệu suất. - Phân xử Bus: Có nhiều hơn một mô-đun điều khiển Bus (VD:CPU, DMAcontroller ), nhưng tại một thời điểm chỉ duy nhất một mô-đun có thể điều kiển bus → cần phân xử Bus. Sự phân xử bus có thể là tập trung hoặc phân tán. + Phân xử tập trung: có một thiết bị phần cứng điều khiển sự truy nhập bus được gọi là Bộ điều khiển bus(Bus controller) hay Trọng tài Bus (Arbiter). Bộ điều khiển bus này có thể nằm trên CPU hoặc tách riêng. 21
  22. + Phân xử phân tán: mỗi mô-đun có thể điều khiển bus, nhưng có sự điều khiển logic trên tất cả mô-đun. e) Một số Bus điển hình trong máy tính - Bus của bộ xử lý (Front Side Bus - FSB): có tốc độ nhanh nhất - Bus của bộ nhớ chính (nối ghép với các mô-đun RAM) - PCI bus(Peripheral Component Interconnect): nối ghép với các thiết bị ngoại vi có tốc độ trao đổi dữ liệu nhanh. - IDE (Integrated Device Electronics): Bus kết nối với ổ đĩa cứng hoặc ổ đĩa CD, DVD - USB (Universal Serial Bus): Bus nối tiếp đa năng. 1.1.1. Mainboard Trong một hệ thống máy tính có khoảng 10 thiết bị khác nhau như: CPU, RAM, Card Video, Card Sound, Card LAN, HDD, CDROM, FDD, Keyboard, Mouse. Các thiết bị này có tần số làm việc rất khác nhau, ví dụ: Tần số qua chân CPU là 800MHz nhưng qua chân RAM là 400MHz và tần số qua Card Sound chỉ có 66MHz. Ngoài ra số đường mạch (số BUS) cũng khác nhau, vì vậy mà các thiết bị trên không thể kết nối trực tiếp với nhau được. Vậy tại sao chúng có thể làm việc với nhau ? Mainboard chính là thiết bị đóng vai trò trung gian để kết nối tất cả các thiết bị trên hệ thống máy tính liên kết lại với nhau thành một bộ máy thống nhất. 1.3.2.1. Chức năng của Mainboard - Gắn kết các thành phần trên một hệ thống máy tính lại với nhau. - Điều khiển thay đổi tần số BUS cho phù hợp với các thành phần khác nhau. - Quản lý nguồn cấp cho các thành phần trên Main. - Cung cấp xung nhịp chủ (xung Clock) để đồng bộ sự hoạt động của toàn hệ thống. Chính vì những chức năng quan trọng trên mà khi Mainboard có sự cố thì máy tính không thể hoạt động được. Sơ đồ khối của một Mainboard: 22
  23. 1.3.2.2. Các thành phần chính trên Mainboard a) Socket (đế cắm CPU) Có nhiều loại đế cắm cho CPU tuỳ theo chủng loại Mainboard - Socket 370 trên các Mainboard dùng cho Intel Pentium 3 - Socket 478 trên các Mainboard dùng cho Intel Pentium 4 - Socket 775 trên các Mainboard dùng cho Intel Core 2 Duo, Core 2 Quad - Socket 1155 trên các Mainboard dùng cho Intel Sandy Bridge (Core i5-2500), Intel Ivy Bridge (Core i5-3570). - Socket 1150 trên các Mainboard dùng cho Intel Haswell (Core i5-4570). Các chân Socket do Chipset bắc điều khiển. b) North Bridge (Chipset bắc) - Chipset bắc có nhiệm vụ điều khiển các thành phần có tốc độ cao như CPU, RAM và Card Video. - Chipset bắc điều khiển về tốc độ BUS và điều khiển chuyển mạch dữ liệu, đảm bảo cho dữ liệu qua lại giữa các thành phần được thông suốt và liên tục, khai thác hết được tốc độ của CPU và bộ nhớ RAM. - Có thể ví Chipset giống như một nút giao thông ở một ngã tư, điều khiển chuyển mạch như các đèn xanh đèn đỏ cho phép từng luồng dữ liệu đi qua trong một 23
  24. khoảng thời gian nhất định, còn điều khiển tốc độ BUS là mỗi hướng của ngã tư khác nhau thì các phương tiện phải chạy theo một tốc độ quy định. c) South Bridge (Chipset nam) Chức năng của Chipset nam tương tự như Chipset bắc, nhưng Chipset nam điều khiển các thành phần có tốc độ chậm như: Card Sound, Card Net, ổ cứng, ổ CD ROM, các cổng USB, IC SIO và BIOS d) ROM BIOS (Read Only Memory - Basic In Out System) ROM là IC nhớ chỉ đọc, BIOS là chương trình nạp trong ROM do nhà sản xuất Mainboard nạp vào, chương trình BIOS có các chức năng chính sau đây: - Khởi động máy tính, duy trì sự hoạt động của CPU. - Kiểm tra lỗi của bộ nhớ RAM và Card Video. - Quản lý trình điều khiển cho Chipset bắc, Chipset nam, IC-SIO và card video onboard. - Cung cấp bản cài đặt CMOS SETUP mặc định để máy có thể hoạt động khi schưa thiết lập CMOS. e) IC SIO (Super In Out) - IC điều khiển các cổng vào ra dữ liệu 24
  25. - SIO điều khiển các thiết bị trên cổng Parallel như máy In, máy Scaner, điều khiển ổ mềm, các cổng Serial như cổng COM, cổng PS/2. - Ngoài ra SIO còn thực hiện giám sát các bộ phận khác trên Mainboard hoạt động để cung cấp tín hiệu báo sự cố. - Tích hợp mạch điều khiển tắt mở nguồn, tạo tín hiệu Reset hệ thống. f) Clock generator (Clocking) - Mạch tạo xung Clock Mạch tạo xung Clock có vai trò quan trọng trên Main, chúng tạo xung nhịp cung cấp cho các thành phần trên Main hoạt động đồng thời đồng bộ sự hoạt động của toàn hệ thống máy tính, nếu mạch Clock bị hỏng thì các thành phần trên Main không thể hoạt động được, mạch Clocking hoạt động đầu tiên sau khi Main có nguồn cung cấp. g) VRM (Voltage Regulator Module) – Mô-đun ổn áp Đây là mạch điều khiển nguồn VCORE cấp cho CPU, mạch có nhiệm vụ biến đổi điện áp 12V/2A thành điện áp khoảng 1,5V và cho dòng lên tới 10A để cấp cho CPU, mạch bao gồm các linh kiện như đèn Mosfet, IC dao động, các mạch lọc L,C. h) Khe AGP hoặc PCI Express Khe AGP và PCI Express dùng để gắn Card video, khe AGP hoặc PCI Express do Chipset bắc điều khiển. i) Khe RAM Khe RAM do Chipset bắc điều khiển dùng để gắn bộ nhớ RAM, đây là bộ nhớ trung gian không thể thiếu được trong một hệ thống máy tính. k) Khe PCI Khe PCI do Chipset nam điều khiển dùng để gắn các Card mở rộng như Card sound, Card Net l) Cổng IDE Cổng IDE do Chipset nam điều khiển, cổng IDE dùng để gắn các ổ đĩa như HDD, CDROM, DVD Chương 2: BỘ VI XỬ LÝ TRUNG TÂM 2.1. Cấu trúc của CPU MỤC TIÊU CỦA BÀI 25
  26. Sau khi học xong bài này người học có khả năng Kiến thức: - Mô tả đúng cấu trúc cơ bản của một CPU, cấu trúc CPU Dual Core của hãng AMD và Intel. - Trình bày được một số ưu điểm vượt trội của công nghệ Dual Core. Kỹ năng: Nhận diện được CPU Dual Core của hãng AMD và Intel. Thái độ: Có ý thức giữ gìn CPU khi sử dụng. Linh hoạt trong việc vận dụng kiến thức đã học vào thực tế. NỘI DUNG 2.1.1. Cấu trúc cơ bản của một CPU 2.1.1.1. Khối điều khiển CU – Control Unit a) Chức năng - Nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh IP. - Tăng nội dung thanh ghi PC mỗi khi nhận lệnh xong. - Giải mã lệnh và xác định thao tác mà lệnh yêu cầu. - Phát ra tín hiệu điều khiển thực thi lệnh - Nhận các tín hiệu yêu cầu từ BUS hệ thống và giải quyết đáp ứng yêu cầu đó. 26
  27. b) Các thông tin kết nối đến CU - Clock: tín hiệu xung nhịp từ mạch tạo dao động. - Mã lệnh từ thanh ghi lệnh đưa đến CU giải mã - Các trạng thái cờ đưa đến cho biết trạng thái của CPU cũng như trạng thái thực hiện các phép toán trong ALU. - Các tín hiệu điều khiển từ BUS điều khiển. - Các tín hiệu điều khiển bên trong CPU: điều khiển thanh ghi, ALU. - Các tín hiệu điều khiển bên ngoài CPU đó là Bộ nhớ hay cổng vào ra. 2.1.1.2. Khối Logic toán học ALU Chức năng: Thực các phép toán số học và logic - Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo, - Logic: AND, OR,XOR, NOT, dịch bit, - Mô hình kết nối của ALU 27
  28. 2.1.1.3. Tập các thanh ghi a) Chức năng: - Thực chất là vùng nhớ được CPU nhận biết qua tên thanh ghi và có tốc độ truy xuất cực nhanh. - Chứa thông tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPU - Số lượng thanh ghi tuỳ thuộc vào bộ vi xử lý cụ thể -> tăng hiệu năng CPU - Thanh ghi chia 2 loại: Loại lập trình được và loại không lập trình được Dưới đây là tập các thanh ghi đa năng ở các thế hệ vi xử lý từ 8bit – 64bit: c) Phân loại thanh ghi theo chức năng - Thanh ghi địa chỉ: Thanh ghi được sử dụng để quản lý địa chỉ của ngăn nhớ hay cổng vào ra. - Thanh ghi dữ liệu: Thanh ghi dùng để lưu trữ dữ liệu tạm thời - Thanh ghi đa năng: Thanh ghi có thể chứa dữ liệu hoặc địa chỉ đều được - Thanh ghi điều khiển/trạng thái: Thanh ghi chứa thông tin về trạng tháiCPU. - Thanh ghi lệnh: thanh ghi chứa lệnh đang được thực hiện. 28
  29. 2.1.2. Cấu trúc CPU Dual Core 2.1.2.1. Cấu trúc chung của một CPU dual core của AMD Hình 2.1. Dual Core của AMD Ta nhận thấy rằng ở thế hệ này 2 nhân CPU được tích hợp trên một chip duy nhất với cùng kích thước và số chân nhưng tốc độ thực thi tăng gần như gấp đôi. Tuy nhiên với kiến trúc này vẫn có một nhược điểm đó là mỗi Core có một cache riêng, điều này làm cho hiệu xuất sử dụng cache sẽ không cao, vì có khi một core thiếu cache trong khi core kia không sử dụng đến cache của mình. 2.1.2.2. Cấu trúc CPU dual core của Intel Hình 2.2. Smart Cache trong Chip Dual core của Intel 29
  30. Kiến trúc này sử dụng công nghệ chia sẻ thông minh cache L2, nghĩa là 2 core sử dụng chung cache L2 với tổng dung lượng 4MB. Còn ở thế hệ Dual Core trước đây, mỗi nhân có cache L2 riêng với dung lượng mỗi cache là 2MB và có nhược điểm là cache L2 của nhân nào thì nhân đó dùng, nếu thừa thì để đó và thiếu thì phải đợi. Việc chia sẻ cache L2 cũng làm tăng băng thông của từng nhân. Cache L2 dùng chung được cấp một cách năng động cho từng nhân của CPU dựa vào khối lượng công việc. Việc thực thi tối ưu 2 nhân có hiệu quả này làm tăng khả năng truy cập dữ liệu của mỗi nhân từ cache L2, giảm thời gian trễ một cách đáng kể cho những dữ liệu được thường xuyên sử dụng và nâng cao hiệu quả tính toán. 2.1.2.3. Một số ưu điểm vượt trội của công nghệ dual core 1) Tăng tốc độ tính toán song song bằng kỹ thuật siêu phân luồng (Hình 2.3) 2) Tăng tốc độ thực thi chương trình bằng bằng công nghệ chia sẻ với Cache lớn hơn (Hình 2.4) 3) Tăng tốc độ xử lý các gói Media (Video, ảnh, ) 128bit/lần (Hình 2.5) 4) Tiết kiệm năng lượng tối đa: Chỉ cấp nguồn cho core nào đang hoặt động. Hình 2.3. Siêu phân luồng với đa nhân 30
  31. Hinh 2.4. Chia sẻ Cache thông minh 31
  32. Hình 2.5. Tăng tốc độ xử lý media 2.2. Tập lệnh 2.2.1. Giới thiệu về tập lệnh Tập lệnh là thứ ngôn ngữ duy nhất mà một CPU có thể hiểu và làm theo. Về mặt bản chất có thể hiểu rằng mọi chương trình chạy trên máy tính là sự kết hợp các lệnh và chỉ với những lệnh này theo một cách thức nào đấy nhằm làm một việc cụ thể. Cũng như ta có Búa, Cưa, Gỗ, Đinh, Nhưng bằng các cách và quy trình khác nhau ta có thể tạo ra Bàn, Ghế, Tủ, Một lệnh máy thường có 2 phần: - Mã thao tác (Operation Code: Opcode): Mã chỉ ra thao tác mà bộ vi xử lý cần phải thực hiện. - Địa chỉ toán hạng (Operand Address): Chỉ ra nơi chứa các toán hạng mà mã thao tác sẽ tác động: . Toán hạng nguồn: dữ liệu vào của thao tác . Toán hạng đích: dữ liệu ra của thao tác 2.2.2. Một số nhóm lệnh cơ bản 2.2.2.1. Phân loại - Thao tác chuyển dữ liệu - Thao tác xử lý số học và logic - Thao tác vào ra dữ liệu qua cổng - Thao tác điều khiển rẽ nhánh - Thao tác điều khiển hệ thống - Thao tác xử lý số dấu chấm động - Thao tác chuyên dụng khác: xử lý ảnh, âm thanh, tiếng nói, 2.2.2.2. Các lệnh chuyển dữ liệu 32
  33. - Lệnh Mov: Sao chép dữ liệu từ toán hạng nguồn -> đích . Cú pháp: Mov đích, nguồn - Lệnh Load: Nạp dữ liệu từ bộ nhớ -> bộ xử lý . Cú pháp: Load nguồn - Lệnh XCHG: Trao đổi nội dung của hai toán hạng cho nhau . Cú pháp: XCHG toán_hạng , toán_hạng - Lệnh PUSP: Cất nội dung của một toán hạng nguồn vào stack . Cú pháp: PUSH nguồn - Lệnh POP: Lấy nội dung ở đỉnh Stack ra toán hạng đích . Cú pháp: POP đích Ví dụ: MOV AX, Var 1 // sao chép dữ liệu từ biến Var 1 tới thanh ghi AX MOV Var 2, AX // sao chép dữ liệu từ thanh ghi AX vào biến Var 2 2.2.2.3. Các lệnh vào ra - Lệnh Input: . Cú pháp: In đích, địa_chỉ_cổng_nguồn - Lệnh Output . Cú pháp: Out địa_chỉ_cổng_đích, nguồn Ví dụ: MOV DX, 278 h // sao chép dữ liệu từ 278 h tới thanh ghi DX IN AL,DX // 2.2.2.4. Các lệnh chuyển điều khiển - Lệnh Jump: Nhẩy đến vị trí bất kỳ trong chương trình . Cú pháp: Jump Nhãn - Lệnh Call: Gọi chương trình con . Cú pháp: Call Tên_chương_trình_con - Lệnh Return : trở về từ chương trình con Ví dụ: 33
  34. 2.2.2.5. Các lệnh điều khiển hệ thống - Lệnh Halt : dừng thực hiện chương trình - Lệnh Wait : tạm dừng thực hiện chương trình, lặp kiểm tra cho đến khi thoả mãn thì tiếp tục thực hiện. - No Operation: không thực hiện gì cả - Lệnh Lock : Cấm không cho chuyển nhượng BUS - Lệnh Unlock: cho phép chuyển nhượng BUS 2.2.3. Các phương pháp xác định địa chỉ toán hạng Mỗi một lệnh đều có trường toán hạng, trong thực tế khi ta lập trình với các ngôn ngữ bậc cao, có nhiều cách để gán một giái trị cho một biến: X = 15 // gán tức thì gia trị 15 cho X X = y // Gán giá trị cho X thông qua y X = mang[i] // gán giá trị cho X bằng địa chỉ tương đối qua biến Cách thức để tìm được giá trị và truyền cho X gọi là các cách xác định địa chỉ, có 7 cách xác định địa chỉ chính như sau: 2.2.3.1. Chế độ địa chỉ thanh ghi Dùng thanh ghi như là các toán hạng chứa dữ liệu cần thao tác, tốc độ thực hiện lệnh rất nhanh vì CPU không mất thời gian tìm kiếm dữ liệu. Ví dụ: MOV AL, BL ; AL:= BL MOV DS, BX ; DS:= BX ADD AL, DL ; AL:= AL + DL 2.2.3.2. Chế độ địa chỉ tức thì Toán hạng đích là thanh ghi, hoặc ô nhớ. Toán hạng nguồn là 1 giá trị cụ thể (hằng số). 34
  35. Ví dụ: MOV AL, 0Dh ; AL:=0Dh Lệnh này thường được dùng để nạp dữ liệu cần thao tác vào thanh ghi nào đó. 2.2.3.3. Chế độ địa chỉ trực tiếp Một toán hạng là địa chỉ offset của ô nhớ chứa giá trị cần thao tác. Toán hạng kia là thanh ghi (không được là ô nhớ). Ví dụ: MOV AL, [04FCh] ;đưa vào thanh ghi AL nội dung ô nhớ có địa chỉ logic DS:04FCh. 2.2.3.4. Chế độ địa chỉ gián tiếp qua thanh ghi Một toán hạng là thanh ghi chứa địa chỉ offset của ngăn nhớ chứa giá trị cần thao tác. Toán hạng kia là thanh ghi (không được là ngăn nhớ). MOV [BX], AL ; Đưa nội dung thanh ghi AL vào ngăn nhớ có địa chỉ offset nằm trong thanh ghi BX. 2.2.3.5. Chế độ địa chỉ tương đối cơ sở 35
  36. Thanh ghi BX, BP và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ trong DS, SS chứa giá trị cần thao tác. Ví dụ: MOV [BX + N], CL ; Đưa nội dung thanh ghi CL vào ngăn nhớ có địa chỉ offset BX + N (DS:BX + N) MOV AL, [BP + N] ; Đưa nội ngăn nhớ có địa chỉ offset BP + N vào thanh ghi AL (SS:BP + N) 2.2.3.6. Chế độ địa chỉ tương đối chỉ số Thanh ghi DI, SI và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ chứa giá trị trong DS cần thao tác. Ví dụ: MOV [SI + N], AH ; Đưa nội dung thanh ghi AH vào ngăn nhớ có địa chỉ offset tại SI + N (DS:SI + N). MOV CL, [DI + N] ; Đưa nội dung ngăn nhớ có địa chỉ offset tại DI + N (DS:DI + N) vào thanh ghi CL. 2.2.3.7. Chế độ địa chỉ tương đối chỉ số cơ sở Chế độ địa chỉ này là sự kết hợp cả 2 chế độ địa chỉ trên. Dùng cả thanh ghi cơ sở và thanh ghi chỉ số để tính địa chỉ toán hạng. Ví dụ: MOV [BX + SI + N], AX ; Đưa nội dung thanh ghi AX vào ngăn nhớ có địa chỉ offset tại BX + SI + N (DS:BX + SI + N). MOV CL, [BP + DI + N] ; Đưa nội dung ngăn nhớ có địa chỉ offset tại BP + DI + N (DS:BP + DI + N) vào thanh ghi CL. 2.3. Hoạt động của CPU 2.3.1. Nguyên tắc chung Khi bạn kích đúp vào một biểu tượng nào đó để chạy chương trình thì những gì sẽ xảy ra là: 36
  37. - Chương trình đã lưu bên trong ổ đĩa cứng(hoặc USB/CDROM) sẽ được đưa vào bộ nhớ RAM. Ở đây chương trình chính là một loạt các chỉ lệnh đối với CPU. - CPU sử dụng mạch phần cứng được gọi là memory controller để tải dữ liệu chương trình từ bộ nhớ RAM vào CPU. - Lúc đó dữ liệu bên trong CPU sẽ được xử lý. - Những gì diễn ra tiếp theo sẽ phụ thuộc vào chương trình vừa được nạp. CPU có thể tiếp tục tải và thực thi chương trình hoặc có thể thực hiện một công việc nào đó với dữ liệu đã được xử lý, như việc hiển thị kết quả thực hiện nào đó lên màn hình. Quy trình chương trình được lưu đưa vào CPU 2.3.2. Tải dữ liệu giữa bộ nhớ ngoài và RAM Trước đây, CPU trực tiếp điều khiển việc vận chuyển dữ liệu giữa bộ nhớ ngoài và RAM. Vì bộ nhớ ngoài thường có tốc độ truy cập thấp hơn so với bộ nhớ RAM nên nó làm chậm quá trình thực thi chương trình cho cả hệ thống, chính vì vậy CPU sẽ rất bận một cách vô ích trong việc tải dữ liệu giữa bộ nhớ ngoài và RAM. Phương pháp này được gọi là PIO, Processor I/O (hay Programmed I/O). Ngày nay, việc vận chuyển dữ liệu giữa bộ nhớ ngoài và RAM được thực hiện mà không sử dụng trực tiếp đến CPU, điều này làm cho hệ thống hoạt động nhanh hơn và CPU rảnh thời gian thay vì phải chuyển dữ liệu sang làm việc khác. Phương pháp này được gọi là bus mastering hay DMA (Direct Memory Access). Đây là giải pháp chuyên biệt cho việc vận chuyển dữ liệu. Các bộ vi xử lý của AMD dựa trên sockets 754, 939 và 940 (Athlon 64, Athlon 64 X2, Athlon 64 FX, Opteron và một số mô hình Sempron) có một đơn vị điều khiển bộ nhớ (memory controller) được nhúng bên trong. Điều đó có nghĩa rằng với các bộ 37
  38. vi xử lý này, CPU truy cập bộ nhớ RAM một cách trực tiếp mà không sử dụng chíp bắc cầu Bắc (north bridge chip). 2.3.3. Giải mã và thực thi lệnh Khối tìm nạp (CU) chịu hoàn toàn trách nhiệm về việc nạp các lệnh từ bộ nhớ. Đầu tiên, nó xem lệnh được yêu cầu bởi CPU có trong bộ nhớ Cache L1(L1 instruction cache) hay không. Nếu không có ở đây, nó sẽ vào bộ nhớ Cache L2. Nếu lệnh cũng không có trong bộ nhớ Cache L2 thì nó sẽ phải nạp trực tiếp từ bộ nhớ RAM. Khi bạn bật máy tính, tất cả các Cache đều trống rỗng, tuy nhiên khi hệ thống bắt đầu nạp hệ điều hành, CPU bắt đầu xử lý các lệnh đầu tiên từ ổ cứng và cache controller bắt đầu nạp lệnh vào Cache. Sau khi khối tìm nạp đã có được lệnh cần thiết cho CPU để được xử lý, nó gửi lệnh này đến khối giải mã. Khối giải mã sẽ “phân tích” và chỉ ra lệnh này thực hiện những nhiệm vụ gì. Sau khi khối giải mã dịch xong lệnh và lấy được tất cả dữ liệu cần thiết để thực thi lệnh này, nó sẽ gửi tất cả cùng với MicroCode của lệnh đó đến khối thực thi. Khối thực thi sẽ thực hiện lệnh này. Trên các CPU hiện đại, bạn sẽ thấy có nhiều khối thực thi làm việc song song. Điều này nhằm tăng hiệu suất của CPU. Ví dụ, một CPU có 6 khối thực thi sẽ có thể thực thi đến 6 lệnh song song đồng thời, chính vì vậy theo lý thuyết nó hoàn toàn có thể thực hiện được một hiệu suất bằng với 6 bộ vi xử lý mà chỉ có một khối thực thi. 2.4. Kiến trúc Intel 2.4.1. Kiến trúc Intel 8086/8088 Bộ vi xử lý 8088/8086 thực thi chương một chương trình bằng cách lặp đi lặp lại 3 thao tác chính là lấy lệnh (fetch), giải mã lệnh (decode) và thực hiện (execute). Sơ đồ khối của bộ vi xử lý 8088/8086 gồm 2 đơn vị chính(Hình 30): - EU (Execution Unit): Đơn vị (khối) thực hiện lệnh. - BIU (Bus Interface Unit): Đơn vị giao tiếp bus (khối tương thích bus) để điều khiển bus hiệu quả hơn. 38
  39. 2.4.1.1. Khối thực hiện lệnh EU Đơn vị EU của 8088 và 8086 giống nhau, bao gồm ALU, thanh ghi cờ, các thanh ghi đệm và các thanh ghi đa năng. Các bus dữ liệu bên trong của EU đều là 16 bit. EU không kết nối trực tiếp với bên ngoài, nó nhận lệnh từ hàng đợi lệnh bên trong BUI.Nếu là lệnh cần truy nhập bộ nhớ hoặc cổng vào/ra (I/O port - thiết bị ngoại vi) thì EU yêu cầu BIU lấy hoặc gửi dữ liệu. Tất cả các địa chỉ mà EU thao tác đều là 16 bit, khi gửi sang BIU thì BIU sẽ thực hiện tính toán để tạo địa chỉ vật lý 20 bit và phát ra các chân địa chỉ của chip. a. Các thanh ghi của EU Có 8 thanh ghi, là thành phần nhớ có tốc độ truy nhập rất cao. Bao gồm các thành ghi đa năng Ax, Bx, Cx, Dx. Mỗi thanh ghi 16 bit có thể được phân chia thành 2 thanh ghi 8 bit làm việc độc lập nhau. 39
  40. - AX (Accumulator, Acc): Thanh chứa, chứa tạm thời dữ liệu (toán hạng, kết quả phép toán như nhân, chia và được coi là Acc). AX có thể được phân chia thành AH (Phần cao) và AL (Phần thấp). - BX (Base): Thanh ghi cơ sở, thường được dùng để chứa địa chỉ cơ sở cần truy nhập trong lệnh XLAT. BX có thể được phân chia thành BH (Phần cao) và BL (Phần thấp). - CX (Count): Bộ đếm, thường được dùng để đếm số lần lặp của công việc (số lần lặp trong các vòng lặp). CX có thể được phân chia thành CH (Phần cao) và CL (Phần thấp). CX thường được dùng để chứa số lần lặp trong các lệnh LOOP, còn CL thường chứa số lần dịch hoặc quay trong các lệnh dịch quay thanh ghi. - DX (Data): Thanh ghi đữ liệu, sử dụng để chứa toán hạng, kết quả. DX cùng AX dùng để chứa toán hạng hoặc kết quả của các phép nhân, chia số 16 bit. DX còn chứa địa chỉ cổng trong các lệnh vào ra trực tiếp (IN, OUT). DX có thể được phân chia thành DH (Phần cao) và DL (Phần thấp). b. Các thanh con trỏ Các thanh ghi SP, BP là các thanh ghi con trỏ không tách rời. - SP (Stack Pointer): Thanh ghi con trỏ ngăn xếp, trỏ vào đỉnh hiện thời của ngăn xếp nằm trong đoạn ngăn xếp SS (Nó luôn kết hợp với thanh ghi SS). Ta có địa chỉ logic SS: SP. Sau mỗi thao tác cất một word vào stack (thao tác Push) thì SP tự động giảm 2 đơn vị, còn sau thao tác lấy một word ra khỏi stack (thao tác Pop), SP được tự động tăng 2 đơn vị. - BP (Base stack Pointer): Con trỏ cơ sở, luôn trỏ vào một dữ liệu cụ thể nằm trong đoạn ngăn xếp SS. Ta có địa chỉ logic SS: BP. - SI (Source Index): Thanh ghi chỉ số nguồn (hay nguồn), chỉ vào dữ liệu nằm trong đoạn DS. Ta có địa chỉ logic DS: SI. - DI (Destination Index): Thanh ghi chỉ số đích, chỉ dữ liệu trong đoạn DS. Ta có địa chỉ logic DS: DI. c. Khối ALU 40
  41. Làm nhiệm vụ thực hiện các lệnh số học và logic. - Số học: +, -, *, /, so sánh, đảo dấu. - Logic: NOT, AND, OR, XOR. d. Thanh ghi cờ Đây là thanh ghi 16 bit, mỗi bit được sử dụng để thể hiện một trạng thái của bộ vi xử lý tại một thời điểm nhất định trong quá trình thực hiện chương trình (dãy các câu lệnh), nhưng chỉ dùng 9 bit đối với bộ vi xử lý 8088/8086. Mỗi bit đó được gọi là một cờ (flag). Giá trị của mỗi cờ được biểu diễn bằng các ký hiệu gợi nhớ như cách biểu diễn của chương trình Debug của DOS. - CF (Carry Flag): Cờ nhớ (cờ tràn). CF = 1 (CY - CarrY) khi kết quả phép toán vượt (tràn) khuôn khổ biểu diễn (có nhớ (mượn) lên trên (từ) MSB), CF = 0 (NC - No Carry) trong trường hợp ngược lại. Cờ này thường được sử dụng khi thực hiện các phép cộng, trừ các số nhiều byte. Ví dụ: 1011 0001 + 0110 1001 10001 1010 - PF (Parity Flag): Cờ chẵn lẻ. PF = 1 (PE - Parity Even) khi số bit 1 trong kết quả phép toán (hay các phép vận chuyển dữ liệu) là chẵn, PF = 0 (PO - Parity Old) trong trường hợp ngược lại. - AF (Carry Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ). Cờ này có ý nghĩa khi ta làm việc với số BCD. AF = 1 (AC - Auxiliary Carry) khi có nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4 bit cao) và AF = 0 (NA - No Auxiliary carry) trong trường hợp ngược lại. - SF (Sign Flag): Cờ dấu. 41
  42. Trong bộ vi xử lý 8088/8086 các số âm được biểu diễn dưới dạng số bù 2, nên phải dùng cờ SF để chỉ thị dấu của kết quả.SF = 1 (NG - NeGative), khi kết quả phép toán là một số âm, SF = 0 (PL- PLus) trong trường hợp ngược lại. - ZF (Zero Flag): Cờ rỗng. OF = 1 (OV-OVerflow) khi kết quả là số bù 2 vượt khuôn khổ biểu diễn (tràn số học, hay nói cách khác: khi cộng hai số cùng dấu mà kết quả là một số trái dấu thì OF = 1), OF = 0 (NV-Non oVerflow) trong trường hợp ngược lại (cờ này làm việc với số có dấu). - Cờ điều khiển Cờ trạng thái phụ thuộc kết quả phép toán, còn với cờ điều khiển ta có thể thiết lập nhờ lệnh. - IF (Interrupt Flag): Cờ ngắt. IF = 1 (EI-Enable Interrup), CPU cho phép ngắt, IF = 0 (DI-Disable Interrup) CPU không cho phép ngắt (cấm) các loại ngắt che được (Maskable). - TF (Trap Flag): Cờ bẫy. TF = 1 CPU làm việc trong chế độ chạy từng lệnh, thường dùng để gỡ rối chương trình (debug). Sau khi thực hiện xong mỗi lệnh, bộ vi xử lý sẽ phát ra một lệnh ngắt (INT) để có kiểm tra chương trình. - DF (Direction Flag): Cờ hướng. Điều khiển hướng xử lý đối với thao tác chuỗi. DF = 1 (DN-DowN) thì các lệnh vận chuyển dữ liệu hay xử lý chuỗi sẽ thao tác lùi từ phải đến trái (địa chỉ cao đến địa chỉ thấp). DF=0 (UP) trong trường hợp ngược lại (thao tác các phần tử từ địa chỉ thấp đến địa chỉ cao). 2.4.1.2. Đơn vị giao tiếp Bus - Hàng đợi: Là tập thanh ghi 42
  43. Với 8086 hàng đợi lệnh là 6 byte, 8088 hàng đợi lệnh là 4 byte nên chứa được tối đa là 4 lệnh. CPU chứa tập thanh ghi theo kiểu LIFO. Cơ chế: + Đọc lệnh (lấy lệnh) + Giải mã lệnh + Thực hiện - Thanh ghi IP: Thanh ghi con trỏ lệnh, trỏ vào lệnh tiếp theo chuẩn bị được thực hiện nằm trong đoạn CS (CS: IP). Sau khi đọc 1 byte, IP tự động tăng thêm 1. Như vậy thực tế thì cặp CS:IP mới là con trỏ lệnh vì nó chứa địa chỉ đầy đủ của một lệnh trong bộ nhớ - Thanh ghi đoạn: + CS (Code Segment): Thanh ghi đoạn mã, là thanh ghi địa chỉ đoạn mã lệnh, chứa địa chỉ cơ sở (địa chỉ đoạn) của chương trình đang thực hiện. + DS (Data Segment): Thanh ghi đoạn dữ liệu, là thanh ghi địa chỉ đoạn dữ liệu, chứa địa chỉ đoạn của vùng dữ liệu mà chương trình đang thực hiện sử dụng. Vùng này thường chứa các biến của chương trình. + SS (Stack Segment): Thanh ghi đoạn ngăn xếp, là thanh ghi địa chỉ đoạn bộ nhớ ngăn xếp (stack) của chương trình đang chạy. + ES (Extra Segment): Thanh ghi đoạn dữ liệu phụ, là thanh ghi địa chỉ đoạn dữ liệu bổ sung mà chương trình đang thực hiện sử dụng. Vùng này cũng thường chứa các biến của chương trình. Không gian địa chỉ 8088 có 20 bit địa chỉ, trong khi đó các thanh ghi quản lý bộ nhớ là 16 bit. Để xác định một ngăn nhớ có địa chỉ 20 bit, nó dùng 2 thanh ghi 16 bit để xác định địa chỉ. 43
  44. - Một thanh ghi lưu địa chỉ đoạn. - Một thanh ghi lưu địa chỉ lệch (offset) Một địa chỉ yêu cầu trong một lệnh nào đó là địa chỉ logic có dạng: DS:SI DS:DI DS:XX Địa vật lý (phải là số 20 bit) được xác định như sau: Địa vật lý = địa chỉ đoạn*16 + địa chỉ lệch Ví dụ: DS = 4000h, SI = 3F4Dh Địa chỉ logic của ngăn nhớ: 4000:3F4D Địa chỉ vật lí của ngăn nhớ: DS * 16 + SI = 40000 + 3F4D = 43F4Dh Tại một thời điểm CPU quản lý được 4 đoạn nhớ (DS, SS, CS, ES) , nó có thể đồng thời truy nhập 4 đoạn đó. Bộ nhớ được chia thành nhiều đoạn. Mỗi đoạn có kích thước tối đa là 64 KB. Vậy ta có 16 đoạn tách rời và địa chỉ lệch thay đổi từ 0000 H đến FFFFh. Nếu địa chỉ đoạn thay đổi từ 0000h đến FFFFh thì có 64 Kđoạn. Khi đó các đoạn bao trùm lên nhau. 2 đoạn kề nhau sẽ các nhau 16 Byte (Paragraph). Khi khởi động máy (hoặc Reset) CS được nạp giá trị F000h, IP được nạp giá trị FFF0h. Địa chỉ này chỉ đến chương trình khởi động trong ROM. Địa chỉ vật lý = F000h*16 + FFF0h = F0000h + FFF0h = FFFF0h 2.4.2. Kiến trúc CPU Intel 64bit 2.4.2.1. CPU nền tảng 64 bit- Kiến trúc Netburst a. P4 Prescott( năm 2004) Vi kiến trúc NetBurst 64 bit (Extended Memory 64 Technology - EM64T) đầu tiên được Intel sử dụng trong BXL P4 Prescott (tên mã Prescott 2M). Prescott 2M cũng sử dụng công nghệ 90 nm, bộ nhớ đệm L2 2 MB, bus hệ thống 800 MHz, socket 775LGA. b. Pentium D 44
  45. Pentium D(Smithfield-8xx) là bộ VXL lõi kép( dual core) đầu tiên của Intel,là một giải pháp tình thế bấy giờ của Intel trong nỗ lực cạnh tranh công nghệ đa nhân đang phát triển với AMD và IBM nên còn chứa nhiều nhược điểm như tiêu thụ điện năng cao,tỏa nhiệt lớn.Cải tiến từ PenIV Prescott 90nm,L2 2MB(2x1 không chia sẻ),bus 533 hoặc 800 MHz,socket 775 LGA. Pentium D (mã Presler, 9xx) được thiết kế mới trên công nghệ 65nm, có 376 triệu transistor, L2 4MB (2x2MB),có hiệu năng cao,tốn ít điện.Dòng này có hỗ trợ công nghệ ảo hóa Virtualization Technology. Các bộ vi xử lí được nâng cấp trên cơ sở PentiumD như Pentium Extreme Edition (năm 2005), Pentium EE Presler. 2.4.2.2. CPU nền tảng 64bit kiến trúc Core Tại diễn đàn IDF đầu năm 2006, Intel giới thiệu kiến trúc Intel Core với năm cải tiến quan trọng: khả năng mở rộng thực thi động (Wide Dynamic Execution), tính năng quản lý điện năng thông minh (Intelligent Power Capability), chia sẻ bộ nhớ đệm linh hoạt (Advanced Smart Cache), truy xuất bộ nhớ thông minh (Smart Memory Access) và tăng tốc phương tiện số tiên tiến (Advanced Digital Media Boost). a. Intel Core 2 Duo CPU lõi kép thực thụ sản xuất trên công nghệ 45nm cho hiệu suất cao, hỗ trợ SIMD instructions, công nghệ Virtualization Technology cho phép chạy cùng lúc nhiều HĐH, tăng cường bảo vệ hệ thống trước sự tấn công của virus (Execute Disable Bit), tối ưu tốc độ BXL tiết kiệm điện năng (Enhanced Intel SpeedStep Technology), quản lý máy tính từ xa (Intel Active Management Technology).Ngoài ra, còn hỗ trợ các tập lệnh MMX, SSE, SSE2,SSE3, SSE3. Core 2 Duo (Conroe) có 291 triệu transistor,socket 775LGA,bus 1066,L2 4MB như E6600 (2.4Ghz) ,E6700 (2.66Ghz) Core 2 Duo (Allendale) E6300 (1,86 GHz), E6400 (2,13 GHz) có 167 triệu transistor, L2 2MB, bus 1066 MHz, socket 775LGA. E4300 (1,8 GHz) xuất hiện năm 45
  46. 2007 có bộ nhớ đệm L2 2 MB, bus 800 MHz, không hỗ trợ Virtualization Technology. b. Intel Quad Core (Core 2 Quad) Là dòng CPU có 4 nhân của Intel trong cuộc chạy đua về công nghệ đa nhân.Quad Core có hiệu suất xử lí mạnh mẽ hơn so với Core 2 Duo.Dòng Quad Core được phát triển qua hai giai đoạn: Giai đoạn hình thành với việc ra mắt các series Q6xxx, dùng công nghệ 65 nm, điện năng tiêu tốn nhiều, nhiệt năng tỏa ra rất lớn.L2 8MB, socket 775LGA, bus 1066 Mhz. Q6xxx có 4 nhân chia làm 2 cặp gắn trên 2 bản mạch cùng đính trên một đế chip. Giai đoạn hoàn thiện của các series Q8xxx,Q9xxx công nghệ 45nm tiết kiệm năng lượng ,hiệu suất cao do lúc này đã tách 4 nhân riêng biệt gắn chung trên một bản mạch.Bộ nhớ đệm L2 4MB (Q8xxx), 12MB (Q9xxx), socket 775LGA, bus 1333Mhz.Hỗ trợ công nghệ Virtualization Technology (trừ Q8200 và Q8200S). c. Intel Core I Gồm các series Core i3, i5 và i7 sử dụng công nghệ 45 nm và 32 nm.Dòng core i được tích hợp bộ điều khiển nên hiệu suất nâng cao so với dòng Quad core,giải quyết đc hiện tượng nghẽn cổ chai ở chip cầu bắc.Hỗ trợ công nghệ Virtualization Technology và HT.Tích hợp luôn chip xử lí đồ họa vào CPU. 2.5. Cấu trúc chung của các bộ xử lý tiên tiến 2.5.1. Các đơn vị xử lý dữ liệu Các đơn vị số nguyên Các đơn vị số dấu phẩy động Các đơn vị chức năng đặc biệt: - Đơn vị xử lý dữ liệu âm thanh - Đơn vị xử lý dữ liệu hình ảnh - Đơn vị xử lý dữ liệu vector 46
  47. Sơ đồ cấu trúc chung của các bộ xử lý tiên tiến 2.5.2. Bộ nhớ cache Được tích hợp trên chip vi xử lý Bao gồm hai mức cache: - Cache L1 gồm hai phần tách rời: Cache lệnh Cache dữ liệu  Nhằm giải quyết xung đột khi nhận lệnh và dữ liệu - Cache L2: chung cho lệnh và dữ liệu 2.5.3. Đơn vị quản lý bộ nhớ Chuyển đổi địa chỉ ảo thành địa chỉ vật lý Cung cấp cơ chế phân trang/phân đoạn Cung cấp chế độ bảo vệ bộ nhớ 47
  48. 2.6. Bộ xử lý đa lõi 2.6.1. Kỹ thuật xử lý Tuần tự: Các lệnh được xử lý tuần tự Pipeline (đường ống): 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 (như dây chuyền lắp ráp) Siêu vô hướng (Superscalar): Máy tính siêu vô hướng bậc n có thể thực hiện đồng thời n lệnh trong một chu kỳ xung nhịp Tc Đa luồng: CPU xử lý đồng thời nhiều luồng dữ liệu vào. Đa lõi: CPU có nhiều lõi (Core) 2.6.2. Các dạng tổ chức bộ xử lý đa lõi Hình a) Mỗi CPU Core có Cache L1 được dành riêng chuyên dụng Hình b) Mỗi CPU Core có Cache L2 được dành riêng chuyên dụng Hình c) Cache L2 được chia sẻ dùng chung cho các CPU Core Hình d) Cache L3 được chia sẻ dùng chung cho các CPU Core 48
  49. 2.6.3. Intel - Core Duo Tại diễn đàn IDF đầu năm 2006, Intel giới thiệu kiến trúc Intel Core Duo. Intel Core Duo có Hai nhân (core) x86 với công nghệ Siêu vô hướng (superscalar), có chia sẻ dùng chung L2 cache với dung lượng 2MB L2 cache. Mỗi Core có Cache L1 được dành riêng chuyên dụng với 32KB cho lệnh và 32KB cho dữ liệu. 49
  50. 2.6.4. Kiến trúc Intel đa lõi x86 - Core i7 Được Intel giới thiệu tháng 11/2008, có 4 lõi x86 SMT. Dành riêng L2 cache, có sự chia sẻ chung L3 cache. Dự đoán trước khi lấy lệnh vào cache. 50
  51. Trên một chíp điều khiển bộ nhớ RAM DDR3 có: 3 kênh 8 byte (192 bit) đạt tốc độ 32GB/s, không có Font side bus. Hỗ trợ kết nối QuickPath Interconnection - Hỗ trợ kết nối cache chặt chẽ kiểu point-to-point - Kết nối tốc độ cao giữa các core trên chip. - Tốc độ đạt 6.4G transfers /s, với 16 bit / transfer - Hỗ trợ cặp 2 chiều chuyên dụng - Tổng băng thông đạt 25.6 GB/s 51
  52. CHƯƠNG 3: HỆ THỐNG NHỚ MỤC TIÊU CỦA BÀI Sau khi học xong bài này người học có khả năng Kiến thức: - Trình bày được các đặc trưng của bộ nhớ và các mô hình phân cấp bộ nhớ - Trình bày được các công nghệ ROM - Trình bày được đặc điểm của RAM và các loại RAM - Trình bày được thiết kế module nhớ theo tăng dần số lượng từ nhớ hoặc ngăn nhớ - Mô tả được quá trình phát hiện lỗi và sửa lỗi trong bộ nhớ. Kỹ năng: - Phân hóa được các cấp bộ nhớ - Phân loại được các loại ROM - Phân loại được các loại RAM - Thực hiện được các bài tập về thiết kế module nhớ Thái độ: - Tích cực vận dụng kiến thức đã học vào thực tiễn; - Cẩn thận, đảm bảo an toàn người và thiết bị. 3.1. Tổng quan về hệ thống nhớ 3.1.1. Tìm hiểu các loại bộ nhớ Chúng ta cần xem xét bộ nhớ ở 2 góc độ là logic (hoạt động) và vật lý (cấu tạo). Trước hết chúng ta cần biết bộ nhớ là gì, chúng nằm ở đâu trong hệ thống và hoạt động như thế nào. Sau đó chúng ta sẽ xem xét một số loại bộ nhớ và tốc độ, hình dạng và các modul nhớ mà ta có thể cài đặt. Bộ nhớ (memmory) là không gian làm việc của bộ vi xử lý. Đó là nơi cất giữ tạm thời các chương trình và dữ liệu đang được thao tác với bộ vi xử lý. Việc lưu trữ bộ nhớ được xem tạm thời vì dữ liệu chỉ tồn tại trong thời gian máy đang hoạt động và không bị khởi động lại. Trước khi khởi động lại hay tắt máy, dữ liệu đã thay đổi cần 52
  53. được ghi vào các thiết bị lưu trữ lâu dài – storage – (thường là ổ đĩa cứng) để sau này có thể nạp lại vào bộ nhớ. Nhiều người mới làm quen với máy tính thường nhầm lẫn giữa bộ nhớ và đĩa lưu trữ(storage disk) bởi vì cả hai cùng sử dụng đơn vị đo lường là byte, Kilobyte, Megabyte, Gigabyte hoặc đơn vị cao hơn. Một điểm quan trọng mà chúng ta cần ghi nhớ đó là: một file khi được nạp vào trong bộ nhớ, nó chỉ là bản sao của file đó, còn thực chất file đó vẫn tồn tại trong ổ đĩa. Vì tính chất tạm thời của bộ nhớ cho nên file đã bị thay đổi cần được ghi lại vào đĩa cứng trước khi tắt máy, vì khi tắt máy dữ liệu trong bộ nhớ sẽ bị xoá. Bộ nhớ lưu trữ các chương trình đang chạy và dữ liệu của chúng sử dụng. Các chip nhớ có lúc được gọi là lưu trữ không ổn định (volatile storage) bởi vì khi tắt máy hoặc có sự cố về nguồn điện, lưu trữ trong RAM sẽ bị mất. Vì bản chất bất ổn định như vậy cho nên nhiều người dùng có thói quen ghi lại thường xuyên (một số chương trình ứng dụng có thể ghi một cách tự động theo thời gian đã định). Các đặc trưng của bộ nhớ - Ví trí: + Bên trong CPU: Tập các thanh ghi (register), cache + Bộ nhớ trong: Bộ nhớ chính (Main memmory – RAM, ROM) + Bộ nhớ ngoài: Các thiết bị nhớ, RAID (HDD, CD-Rom, ) - Dung lượng: + Độ dài từ nhớ (tính bằng bit) – Kích thước trên một đơn vị lưu trữ + Số lượng từ nhớ - Dung lượng bộ nhớ - Đơn vị truyền: + Từ nhớ - Truyền tuần tự từng Word + Khối nhớ - Truyền một khối gồn n Word - Phương pháp truy nhập: + Truy nhập tuần tự (băng từ) – Để đến được điểm n đầu từ phải duyệt qua n-1 vị trí trước. + Truy nhập trực tiếp (các loại đĩa) – Đầu từ di chuyển trực tiếp đến vị trí cần đọc. + Truy nhập ngẫu nhiên (bộ nhớ bán dẫn) – ô nhớ cần đọc sẻ được giả mã để lấy thông tin ngay lập tức. + Truy nhập liên kết (cache) – Truy cập thông qua ban sao của ô nhớ cần đọc - Hiệu năng: + Thời gian truy nhập 53
  54. + Chu kỳ truy xuất bộ nhớ + Tốc độ truyền - Kiểu bộ nhớ vật lý: + Bộ nhớ bán dẫn – Lưu trữ bằng điện + Bộ nhớ từ - Lưu trữ dùng từ tính + Bộ nhớ quang – Lưu trữ sử dụng công nghệ Laze - Các đặc tính vật lý: + Khả biến/không khả biến + Xoá được/không xoá được 3.1.2. Mô hình phân cấp bộ nhớ Việc trao đổi dữ liệu giữa CPU và bộ vi xử lý và bộ nhớ chính là một thao tác quan trọng, chiếm đa số trong các lệnh xử lý dữ liệu nên nó quyết định hiệu suất của hệ thống vi xử lý nói chung và máy tính nói riêng. Bộ nhớ chính và bộ nhớ ngoài thường có tốc độ trao đổi dữ liệu chậm (chênh lệch) hơn so với tốc độ làm việc của CPU (kể cả việc vận chuyển dữ liệu trong bộ vi xử lý). Để nâng cao tốc độ xử lý dữ liệu chung của toàn hệ thống, người ta tìm cách nâng cao tốc độ trao đổi dữ liệu (kể cả lệnh) giữa bộ vi xử lý và bộ nhớ ngoài phạm vi bộ vi xử lý. Dựa trên nguyên lý cục bộ về không gian và thời gian mà người ta xây dựng hệ thống nhớ 5 cấp như sau: - Cấp 0 : Tập các thanh ghi nằm trong bộ vi xử lý. Thanh ghi là bộ nhớ kiểu SRAM nên tác động nhanh và thông tin ổn định. Đây là thành phần nhớ có tốc độ trao đổi dữ liệu nhanh nhất trong hệ thống vì nó gần ALU và CU. Tuy nhiên nó có dung lượng nhỏ. - Cấp 1 : Primary cache (cache sơ cấp) : Là bộ nhớ có tốc độ trao đổi dữ liệu 54
  55. rất nhanh (nhỏ hơn thanh ghi), có dung lượng nhỏ và được đặt trong bộ vi xử lý, nhưng cũng có thể nằm ngoài bộ vi xử lý. Trong các bộ vi xử lý tiên tiến, bộ nhớ cache thường được tách (chia) làm 2 với mục đích tránh xung đột trong xử lý song song (đại diện là pipline) là Icache : dành cho lệnh và Dcache : dành cho dữ liệu. - Cấp 2 : Secondary cache (cache thứ cấp) : Cũng giống như Primary cache, nhưng loại này nằm ngoài bộ vi xử lý. Nó chỉ có khi có Primary cache (ngược lại, nó chính là Primary cache). Dung lượng của Secondary cache thường lớn hơn Primary cache và nhỏ hơn bộ nhớ. - Cấp 3 : Main Memory (Bộ nhớ chính): Chứa chương trình và dữ liệu đang hoạt động. Bộ nhớ này được bộ vi xử lý đánh địa chỉ trực tiếp và quản lý thông qua địa chỉ đó. Một phần của chương trình đang được thi hành có thể nằm trong cache (lệnh và dữ liệu) nhằm tăng tốc độ hoạt động của hệ thống. Dung lương của bộ nhớ chính thường lớn hơn rất nhiều lần dung lượng bộ nhớ cache. Như đã biết, trong các hệ thống máy tính hiện đại ngày nay thì bộ nhớ chính thường là DRAM. - Câp 4 : Secondary memory (Bộ nhớ thứ cấp – bộ nhớ ngoài): Bộ nhớ này có dung lượng rất lớn nhưng tốc độ trao đổi dữ liệu chậm. Bộ nhớ này để lưu trữ chương trình và dữ liệu một cách lâu dài, cho nhiều người sử dụng (ghi/đọc, mất nguồn điện vẫn còn thông tin). Đại diện cho các bộ nhớ loại này đó chính là các ổ đĩa cứng, mềm CD ROM, CD – WOM, CD WR, băng từ, 3.2. Bộ nhớ bán dẫn 3.2.1. Bộ nhớ ROM Ðây là loại bộ nhớ dùng trong các hãng sãn xuất là chủ yếu. Nó có đặc tính là thông tin lưu trữ trong ROM không thể xoá được và không sửa được, thông tin sẽ được lưu trữ mãi mãi. Nhưng ngược lại ROM có bất lợi là một khi đã cài đặt thông tin vào rồi thì ROM sẽ không còn tính đa dụng. Ví dụ điển hình là các con "chip" trên motherboard hay là BIOS ROM để vận hành khi máy tính vừa khởi động. 55
  56.  Các công nghệ ROM - EPROM: Đối với EPROM, dữ liệu có thể ghi vào bằng điện và có thể xóa được. EPROM sử dụng một transistor có cấu trúc FAMOST (Floating gate avalanche injection MOS transistor). Đối với transistor loại này, cấu tạo cũng giống như dạng FET thông thường nhưng trong cực gate tồn tại thêm một cực, gọi là cực nổi (floating gate). Nếu cực nổi không có điện tích thì transistor này hoạt động như một FET thông thường, nghĩa là nếu cực Gate có điện áp dương thì FET dẫn, cực drain nối với cực source cực drain có mức logic 1. Nếu cực nổi có chứa điện tích thì nó sẽ tạo ra trường điện từ đủ sức ngăn chặn không cho FET dẫn cực drain có mức logic 0. Quá trình nạp điện tử vào cửa nổi được thực hiện bằng các xung điện có độ rộng khoảng 50 ms và biên độ 20V đặt vào cực gate và cực drain. Điện tử được lưu trữ tại vùng cửa nổi khi xung điện tắt (thời gian lưu trữ ít nhất là 10 năm). Để xóa dữ liệu trên EPROM, ta phải chiếu ánh sáng tử ngoại vào chip nhớ. Các điện tử sẽ hấp thu năng lượng đủ để có thể vượt ra khỏi cực nổi làm cho cực nổi không chứa điện tử toàn bộ EPROM chứa giá trị 1. Do đó, trên các chip EPROM sẽ có một cửa số bằng thạch anh cho phép ánh sáng tử ngoại đi qua. - EEPROM Do việc sử dụng cửa sổ thạch anh không tiện lợi nên những năm gần đây đã xuất hiện them chip ROM có thể xóa bằng điện. Cấu tạo của EEPROM cũng giống như EPROM nhưng lúc này có thêm một lớp màng mỏng oxide giữa vùng cực nổi và cực drain cho phép các điện tử di chuyển từ vùng cực nổi sang cực drain khi đặt một điện áp âm. Như vậy, quá trình lập trình cho EEPROM tương tự như EPROM trong khi đó để xóa dữ liệu thì chỉ cẩn đặt một điện áp -20V vào cực gate và cực drain vói thời gian thích hợp (vì nếu thời gian quá dài thì các điện tử sẽ di chuyển thêm sang cực drain làm cho cực nổi sẽ có điện tích dương FET sẽ không hoạt động như bình thường). 3.2. 2.Bộ nhớ RAM RAM là thế hệ kế tiếp của ROM, cả RAM và ROM đều là bộ nhớ truy xuất ngẫu nhiên, tức là dữ liệu được truy xuất không cần theo thứ tự. Tuy nhiên ROM chạy chậm hơn RAM rất nhiều. Thông thường ROM cần trên 50ns để xử lý dữ liệu trong khi đó RAM cần dưới 10ns. 56
  57. a) DRAM  Cấu tạo của DRAM Địa chỉ xác định ô nhớ chia thành 2 phần: địa chỉ hàng và cột. Hai địa chỉ này được đưa lần lượt vào bộ đệm. Quá trình dồn kênh địa chỉ điều khiển bằng các tín hiệu RAS (Row Access Strobe) và CAS (Column Access Strobe). Bộ điều khiển nhớ của CPU phải thực hiện 3 công việc sau: chia địa chỉ từ CPU thành các địa chỉ hàng và cột; tích cực các chân RAS , CAS và WE một cách chính xác; truyền và nhận các dữ liệu đọc, ghi. Một ô nhớ của DRAM có thể biểu diễn như hình vẽ:  Làm tươi DRAM Điện tích trên tụ điện bị giảm theo thời gian do chúng phóng qua FET và lớp điện môi oxide làm cho dữ liệu có thể bị mất. Do đó, tụ điện phải được nạp lại một cách tuần hoàn (refresh), thông thường khoảng từ 1 ÷ 16 ms tùy theo loại RAM. Có 3 phương pháp refresh: 57
  58. - Chỉ tác động RAS: Tạo chu kỳ đọc giả (dummy read) để làm tươi ô nhớ. Trong chu kỳ giả này, tín hiệu RAS tích cực và địa chỉ hàng được đưa vào DRAM nhưng CAS bị cấm nên không thể truyền dữ liệu ra ngoài được. Để làm tươi toàn bộ bộ nhớ thì tất cả các địa chỉ phải được cấp lần lượt. Nhược điểm của phương pháp này là cần phải dùng mạch logic hay một chương trình để làm tươi. Trong máy tính, điều này thực hiện bằng kênh 0 của DMAC 8237, tác động định kỳ bằng bộ đếm 1 của PIT 8253. - Tác động CAS trước RAS: DRAM có một mạch logic làm tươi của riêng nó với một bộ đếm địa chỉ. Tín hiệu CAS sẽ tích cực trong một khoảng thời gian trước khi RAS tích cực. Địa chỉ làm tươi được phát ra bên trong bằng bộ đếm địa chỉ mà không cần mạch logic bên ngoài. Sau mỗi chu kỳ làm tươi, bộ đếm địa chỉ sẽ tự động tăng lên 1 để chỉ địa chỉ kế tiếp. - Ẩn: Chu kỳ làm tươi được chứa sau chu kỳ đọc bộ nhớ. Tín hiệu CAS giữ nguyên mức thấp trong khi chỉ có RAS lên mức cao. Ở đây, bộ đếm địa chỉ cũng tự phát ra địa chỉ làm tươi.Việc đọc dữ liệu trong chu kỳ đọc cũng có thể thực ngay cả khi đang thực hiện chu kỳ làm tươi. Phương pháp này sẽ tiết kiệm được thời gian do thời gian làm tươi thường ngắn hơn so với thời gian đọc. b) SRAM Đối với SRAM, nội dung ô nhớ vẫn giữ nguyên khi chưa mất nguồn cung cấp mà không cần phải tốn thời gian làm tươi ô nhớ. Do điện áp chênh lệch lớn nên thời gian xử lý khuếch đại sẽ nhỏ hơn trong DRAM (thời gian truy xuất của DRAM là khoảng 1ns trong khi của DRAM khoảng 40ns). Từ đó, SRAM không thực hiện phân kênh địa chỉ hàng và cột (điều này sẽ làm giảm thời gian truy xuất). Sau khi dữ liệu ổn định, bộ giải mã cột chọn cột phù hợp và đưa dữ liệu đến bộ đệm ngõ ra. Các khác biệt của SRAM so với DRAM: - Tốc độ của SRAM lớn hơn DRAM do không phải tốn thời gian refresh - Chế tạo SRAM tốn kém hơn DRAM nên thông thường sử dụng DRAM để hạ giá thành sản phẩm. 3.2.3. Một số loại RAM - FPM - DRAM (Fast Page Mode DRAM) DRAM chuẩn được truy cập qua một kỹ thuật được gọi là kỹ thuật phân trang (paging). Việc truy cập thông thường bằng cách chọn địa chỉ hàng và địa chỉ cột mất rất nhiều thời gian (giải mã hai bước). Phân trang cho phép truy nhập tất cả dữ liệu trong một hàng nhanh hơn bằng cách giữ nguyên địa chỉ các hàng và chỉ thay đổi giá trị cột. Bộ nhớ sử dụng kỹ thuật này gọi là bộ nhớ đánh số trang Page mode hay 58
  59. Fast page Mode (FPM). Ngoài ra còn một số cách gọi khác là: Column hay Nibble Mode Memory. - EDO - DRAM (Extended Data Out DRAM) Một loại bộ nhớ khác gọi là EDO RAM được dùng trong các máy Pentium từ năm 1995. EDO là bộ nhớ kiểu FPM đã được sửa lỗi hay còn được gọi là Hyper Page Mode. Hãng Micron Technology đã phát minh ra và lấy bằng sáng chế EDO RAM. Bộ nhớ EDO gồm những Chip được sản xuất đặc biệt cho phép chồng các lần truy nhập liên tiếp. Cái tên Extended Data Out xuất phát từ thực tế là không giống như FPM, các trình điều khiển dữ liệu ra (data output driver) trên chip không bị tắt khi mạch điều khiển bộ nhớ xoá địa chỉ cột để bắt đầu chu kỳ tiếp theo. Điều này cho phép chu kỳ tiếp theo chồng lên chu kỳ trước và tiết kiệm thời gian được khoảng 10ns một chu kỳ. Để sử dụng bộ nhớ EDO, chipset của mainboard phải hỗ trợ bộ nhớ đó. Hầu hết các mainboard về sau kể từ loại Intel 430 FX (Trion) công bố năm 1995 đều hỗ trợ EDO RAM. Do chi phí cho chip bộ nhớ EDO tương đương chip chuẩn và các mainboard Intel đều hỗ trợ EDO nên thị trường máy tính tập trung vào bộ nhớ EDO. Rất lý tưởng khi sử dụng EDO RAM cho các máy có tốc độ bus dưới 66 MHz, tức là các máy trên thị trường trước năm 1998. Từ năm 1998, thị phần của EDO RAM đã giảm do bộ nhớ chính nhanh hơn và mới hơn là SDRAM (Synchronuos DRAM) đã trở thành bộ nhớ chuẩn của các máy PC mới. - BDEO-DRAM (Burst Extended Data Out DRAM) Là thế hệ sau của EDO DRAM, dùng kỹ thuật đường ống (pipeline) để rút ngắn thời gian dò địa chỉ. - SDRAM (Synchronous DRAM) Ðây là một loại RAM có nguyên lý chế tạo khác hẳn với các loại RAM trước. Đồng bộ (synchronous) là một khái niệm rất quan trọng trong lĩnh vực số. RAM hoạt động do một bộ điều khiển xung nhịp (clock memory), dữ liệu sẽ được truy xuất hay cập nhật mỗi khi clock chuyển từ logic 0 sang 1, đồng bộ có nghĩa là ngay lúc clock nhảy từ logic 0 sang 1 chứ không hẳn là chuyển sang logic 1 hoàn toàn (tác động bằng cạnh xung). Do kỹ thuật này, SDRAM và các thế hệ sau có tốc độ cao hơn hẳn các loại DRAM trước, đạt tốc độ 66, 100, 133 MHz. - DDR SDRAM (Double Data Rate SDRAM) Ðây là loại bộ nhớ cải tiến từ SDRAM. Nó nhân đôi tốc độ truy cập của SDRAM bằng cách dùng cả hai quá trình đồng bộ khi clock chuyển từ logic 0 sang 1 và từ logic 1 sang 0 (dùng cả cạnh âm và cạnh dương). Loại RAM này được 59
  60. CPU Intel và AMD hỗ trợ, tốc độ vào khoảng 266 MHz. (DDR-SDRAM đã ra đời trong năm 2000) - DRDRAM (Direct Rambus DRAM) Hệ thống Rambus (tên hãng chế tạo) có nguyên lý và cấu trúc chế tạo hoàn toàn khác loại SDRAM truyền thống. Bộ nhớ sẽ được vận hành bởi một hệ thống phụ gọi là kênh truyền Rambus trực tiếp (direct Rambus channel) có độ rộng bus 16 bit và một xung clock 400MHz (có thể lên tới 800MHz). Theo lý thuyết thì cấu trúc mới nầy sẽ có thể trao đổi dữ liệu với tốc độ 400MHz x 16 bit = 400MHz x 2 bytes = 800 MBps. Hệ thống Rambus DRAM cần một chip serial presence detect (SPD) để trao đổi với motherboard.Ta thấy kỹ thuật mới nầy dùng giao tiếp 16 bit, khác hẳn với cách chế tạo truyền thống là dùng 64 bit cho bộ nhớ nên kỹ thuật Rambus cho ra đời loại chân RIMM (Rambus Inline Memory Module), khác so với bộ nhớ truyền thống. Loại RAM này chỉ được hỗ trợ bởi CPU Intel Pentum IV, tốc độ vào khoảng 400 – 800 MHz - SLDRAM (Synchronous - Link DRAM) Là thế hệ sau của DRDRAM, thay vì dùng kênh Rambus trực tiếp 16 bit và tốc độ 400MHz, SLDRAM dùng bus 64 bit chạy với tốc độ 200MHz. Theo lý thuyết thì hệ thống mới có thể đạt được tốc độ 200MHz x 64 bit = 200MHz x 8 bytes = 1600 MBps, tức là gấp đôi DRDRAM. Ðiều thuận tiện là là SLDRAM được phát triển bởi một nhóm 20 công ty hàng đầu về vi tính cho nên nó rất da dụng và phù hợp nhiều hệ thống khác nhau. - VRAM (Video RAM) Khác với bộ nhớ trong hệ thống, do nhu cầu về đồ hoạ ngày càng cao, các hãng chế tạo card đồ họa đã chế tạo VRAM riêng cho video card của họ mà không cần dùng bộ nhớ của hệ thống chính. VRAM chạy nhanh hơn vì ứng dụng kỹ thuật Dual Port nhưng đồng thời cũng đắt hơn rất nhiều. - SGRAM (Synchronous Graphic RAM) Là sản phẩm cải tiến của VRAM, nó sẽ đọc và viết từng block thay vì từng mảng nhỏ. 3.2.4. Thiết kế module nhớ - Sơ đồ cơ bản của chip nhớ: 60
  61. - Các tín hiệu của chip nhớ n + Các đường địa chỉ: A0 A n-1 để xác định 2 ngăn nhớ. + Các đường dữ liệu: D0 D m-1 độ dài từ nhớ (m bit) => dung lượng chip nhớ = 2n x m bit - Các tín hiệu điều khiển + Tín hiệu chọn chip hoạt động: CS (Chip Select) +Tín hiệu điều khiển đọc hoặc ghi (WE: Write Enable; OE: Output Enable) - Thiết kế module nhớ bán dẫn + Cho chip nhớ 2n x m bit + Yêu cầu sử dụng chip nhớ trên thiết kế module nhớ dung lượng là bội kích thước chip nhớ trên. - Giải quyết vấn đề Có hai cách: +Thiết kế để tăng độ dài từ nhớ, số ngăn nhớ không thay đổi. +Thiết kế để tăng số lượng ngăn nhớ, độ dài từ nhớ không thay đổi. - Thiết kế tăng số lượng từ nhớ Cách thiết kế này nhằm tăng kích thước của 1 ô nhớ, nhằm làm tăng dung lượng trong một lần truy xuất bộ nhớ. Cũng giống như ta có 100 lô đất, mỗi lô rộng 100m, bây giờ ta thiết kế để vẫn 100 lô đó nhưng mỗi lô có kích thước là 200m2. Rõ dàng ta thấy vì vẫn là 100 lô nên số địa chỉ cho mỗi lô đất vẫn không đổi (n không đổi) chỉ có kích thước của môi lô đất (mỗi ô nhớ) là thay đổi. o Giả thiết: Cho các chip nhớ có dung lượng 2n x m bit. (n là số đường địa chỉ, m là số bít trong một ô nhớ) o Yêu cầu: Thiết kế module nhớ có kích thước: 2n x (k.m) bit Giải quyết: 61
  62. Để thiết kế được yêu cầu ta xác định hai thông số n (số đường địa chỉ)và k(số chip nhớ cần để ghép vào module thiết kế. Ví dụ: Cho các chip nhớ SDRAM dung lượng 4K x 4 bit. Hãy thiết kế module nhớ có kích thước 4K x 8 bit Giải: Dung lượng chip nhớ 4k x 4 bit = 212k x 4 bit, => số đường địa chỉ n = 12, số đường dữ liệu m=4. Nhận thấy với yêu cầu của đề bài thì số đường địa chỉ là 12 đường không đổi (số ngăn nhớ không thay đổi), số đường dữ liệu là 8 (tức kích thước một ô nhớ đang từ 4 bit tăng lên thành 8bit), vậy số chip sử dụng để thiết kế là 2(k=2). Mạch thiết kế: - Thiết kế tăng số lượng ngăn nhớ: Cách này làm tăng số lượng ô nhớ mà không thay đổi kích thước của một ô nhớ, ví dụ ta tăng lên 200 lô đất nhưng mỗi ô vẫn là 100m2 o Giả thiết: Cho các chip nhớ có dung lượng 2nx m bit. o Yêu cầu: Thiết kế module nhớ có kích thước: 2k.2n x m bit Giải quyết: Để thiết kế được ta xác định hai thông số n+k (số đường địa chỉ mới để mã hóa đủ số ô nhớ cần thiết kế) và 2k(số chip nhớ cần để ghép vào module thiết kế). Ví dụ : Cho các chip nhớ SDRAM dung lượng 4K x 8 bit. Hãy thiết kế module nhớ có kích thước 8K x 8 bit. Giải: Nhận thấy rằng đề yêu cầu tăng số lượng ô nhớ lên 2 lần tức từ 4K lên 8K, còn kích thước một ô nhớ vân là 8 bit. 62
  63. Dung lượng 4k x 8bit = 212k x 8 bit, => số đường địa chỉ là n =12 và số đường dữ liệu m=8. Yêu cầu mới là 8k x 8bit = 213k x 8bit = 2 x 212k x 8bit = 2 chíp nhớ 4kx8bit. Mạch thiết kế: 3.2.5. Phát hiện lỗi và sửa lỗi trong bộ nhớ Nguyên tắc chung: Trong quá trình truyền dữ liệu có thể gặp sự thay đổi các bit thông tin do nhiễu hoặc do sai hỏng của thiết bị hay module vào ra. Vì vậy, thực tế đặt ra là phải làm sao phát hiện được lỗi và có thể sửa sai được. Một trong phương pháp phát hiện lỗi (EDC: Error Dectecting Code) và sửa lỗi (ECC: Error Correcting Code) là: Giả sử cần kiểm tra m bit thì người ta ghép thêm k bit kiểm tra được mã hoá theo cách nào đó rồi truyền từ ghép m+k bit (k bit được truyền không mang thông tin nên gọi là bit dư thừa) Trong đó m là số bit cần ghi vào bộ nhớ và k bit là số bit cần tạo ra kiểm tra lỗi trong m bit. Khi đọc dữ liệu ra có khả năng sau: + Không phát hiện dữ liệu có lỗi. + Phát hiện thấy dữ liệu lỗi và có thể hiệu chỉnh dữ liệu lỗi thành đúng. + Phát hiện thấy lỗi nhưng không có khả năng chỉ ra lỗi vì thế phát ra tín hiệu báo lỗi. Sơ đồ phát hiện lỗi và sửa lỗi: 63
  64. Ví dụ : Phát hiện lỗi với bit chẵn lẻ (Party) Mã EDC đơn giản là bit chẵn lẻ được gắn thêm vào các bit dữ liệu. Bit chẵn lẻ =1: nếu số bit 1 trong xâu là lẻ. Hoặc sử dụng bit chẵn lẻ =0: nếu số bit 1 là chẵn + Ưu điểm: đơn giản và số bit dư thừa ít. + Nhược điểm: không định vị được lỗi, hoặc nếu có sự thay đổi cả hai bit hoặc 1 hoặc 0 thì không phát hiện được. Khắc phục nhược điểm trên xây dựng mã EDC cho từng khối Giả thiết một khung truyền một ký tự ASCII 7 bit có nôi dung như sau: Khi đó sử dụng thêm một bit party đếm số bit 1 trong khung là: Ví dụ : Phát hiện lỗi bằng mã dư thừa CRC (Cycle Redundary Check). Nguyên tắc: Một xâu nhị phân bất kỳ có thể coi là tập hợp các hệ số của đa thức B(x) trong đó x là biến. Chọn đa thức G(x) là đa thức nào đó ta quy định trước gọi đa thức sinh. Ta tiến hành chia module2 đa thức B(x) cho G(x) ta được thương số Q(x) và phần dư R(x). + Đa thức sinh do tổ chức viễn thông quốc tế quy định. + Khi đó ta cần truyền xâu B(x) + R(x) bit + Để kiểm tra lỗi ta cần chia giá trị nhận được cho đa thức sinh nếu phép chia có dư thì có lỗi xuất hiện trong xâu Giả thiết ta cần truyền một xâu 1101000111 + đa thức B(x) = x9+ x8+ x6+ x2+ x +1 + giả sử dùng đa thức sinh G(x)= x4+ x + 1 (chuỗi 10011) 64
  65. + R(x) = B(x) mod G(x) + Chia module 2 như sau: Nếu dãy nhị phân đầu vào bên trên có bít cực tả (đầu tiên bên trái) là 0, không làm gì hết và dịch số chia sang phải một bít. Nếu dãy nhị phân đầu vào bên trên có bít cực tả là 1, lấy dãy số đầu vào trừ đi số chia (hay nói cách khác, lấy từng bít ở dãy số đầu vào trên trừ đi từng bít ở số chia). Số chia sau đó dịch vị trí 1 bít sang phải, quá trình cứ tiếp diễn như vậy đến khi số chia chạm tới tận cùng bên phải của dãy số đầu vào. Ví dụ : M sửa lỗi Hamming Nguyên tắc: Một từ mã Hamming gồm m bit dữ liệu và k bit kiểm tra chẵn lẻ. Mỗi bit được chọn vị trí thích hợp để phát hiện chính xác ví trí để có thể sửa lỗi được. Ví dụ: chọn m=4 => k=3 (m=2n; k=n+1) Dữ liều 4 bit ký hiệu là: I4 I3 I2 I1 3 Bít điều khiển ký hiệu là: C3 C2 C1 Ta có thứ tự trong khung truyền đi như sau: Các bit này được mã hoá theo quy luật sau (sử dụng phép logic XOR): Giả thiết ta cần truyền 4 bit dữ liệu như sau: 65
  66. C1 = I1 xor I2 xor I4 = 1 xor 0 xor 1 = 0 C2 = I1 xor I3 xor I4 = 1 xor 1 xor 1 = 1 C3 = I2 xor I3 xor I4 = 0 xor 1 xor 1 = 0 Vậy khung truyền đi có dạng như sau: Giả sử bên nhận khi nhận được khung này bị lỗi một bít ở vị trí I2, I2 đang bằng 0 đã bị lỗi thành 1 Khi đó khung dữ liệu nhận được bên nhận là Ta tách ra lấy: Phần dữ liệu: I4 I3 I2 I1 = 1111 Phần điều khiển C3 C2 C1 = 010 Ta tính lại các bít điều khiển từ phần dữ liệu: C1 = I1 xor I2 xor I4 = 1 xor 1 xor 1 = 1 C2 = I1 xor I3 xor I4 = 1 xor 1 xor 1 = 1 C3 = I2 xor I3 xor I4 = 1 xor 1 xor 1 = 1 Như vậy phần điều khiển bên nhận tính ra là 111 khác so với bên gửi thu được là 010 chứng tỏ dữ liệu đã bị lỗi trên đường truyền, vấn đề tiếp theo là xác định vị trí bị lỗi để bên nhận tự sửa lại mà không cần báo lại cho bên gửi. Lấy 111 xor 010 = 101 đổi sang cơ số mười 101=5, đây chính là vị trí bít lỗi trong khung truyền 66
  67. Vì bít 5 bị lỗi, giá trị của nó đang bằng 1 => giá trị đúng còn lại chỉ là 0, vậy khung truyền chính xác bên nhận tự sửa là: Nhận xét: Hoàn toàn đúng với bản gốc bên gửi. 3.3. Bộ nhớ đệm Cache 3.3.1. Tổng quan và ý nghĩa của Cache Bộ nhớ Cache là kiểu bộ nhớ tốc độ cao có bên trong CPU để tăng tốc độ truy cập cho dữ liệu và các lệnh được lưu trong bộ nhớ RAM. Một máy tính sẽ hoàn toàn vô dụng nếu bạn không bắt bộ vi xử lý (CPU) thực hiện một nhiệm vụ nào đó. Công việc sẽ được thực hiện thông qua một chương trình, chương trình này lại gồm rất nhiều các lệnh để ra lệnh cho CPU làm việc. CPU lấy các chương trình từ bộ nhớ RAM. Tuy nhiên có một vấn đề với bộ nhớ RAM đó là khi nguồn nuôi của nó bị cắt thì các thành phần dữ liệu được lưu trong RAM cũng sẽ bị mất – chính điều này nên một số người nói rằng bộ nhớ RAM là một môi trường dễ bay hơi. Các chương trình và dữ liệu như vậy phải được lưu trên môi trường không dễ bay hơi sau khi tắt máy tính (giống như các ổ đĩa cứng hay các thiết bị quang như đĩa CD và DVD). Khi kích đúp vào một biểu tượng trong Windows để chạy một chương trình nào đó. Các chương trình thông thường được lưu trên ổ đĩa cứng của máy tính, khi được 67
  68. gọi nó sẽ được nạp vào bộ nhớ RAM sau đó từ bộ nhớ RAM, CPU nạp chương trình thông qua một mạch có tên gọi là memory controller, thành phần này được đặt bên trong chipset (north bridge chip - chíp cực bắc) trên các bộ vi xử lý Intel hoặc bên trong CPU trên các bộ vi xử lý AMD. Vấn đề là CPU không thể tìm nạp dữ liệu trực tiếp từ các ổ đĩa cứng vì tốc độ truy suất dữ liệu của ổ đĩa cứng là quá thấp với nó, thậm chí nếu bạn có cả ổ đĩa cứng với tốc độ truy suất lớn nhất. Hãy lấy một số ví dụ làm dẫn chứng cho điều này, ổ cứng SATA-300 – một trong số những loại ổ đĩa cứng có tốc độ nhanh nhất, đang được cung cấp ngày nay đến phần lớn người dùng – có tốc độ truyền tải theo lý thuyết là 300 MB/s. Một CPU chạy với tốc độ 2GHz với đường dữ liệu*64bit sẽ truyền tải dữ liệu bên trong với tốc độ 16GB/s – như vậy là lớn gấp 50 lần. Sự khác nhau trong tốc độ cũng bắt nguồn từ một thực tế đó là các ổ đĩa cứng còn bao gồm cả hệ thống cơ khí, các hệ thống cơ khí này bao giờ cũng chậm hơn hệ thống điện tử thuần túy, các thành phần cơ khí phải chuyển động để dữ liệu mới có thể được đọc ra (điều này chậm hơn rất nhiều so với việc chuyển động của điện tử). Hay nói cách khác, bộ nhớ RAM là 100% điện tử, có nghĩa là nó sẽ nhanh hơn tốc độ của ổ đĩa cứng và quang. Tuy nhiên đây chính là vấn đề, thậm chí bộ nhớ RAM nhanh nhất cũng không nhanh bằng CPU. Nếu bạn sử dụng các bộ nhớ DDR2-800, chúng truyền tải dữ liệu ở tốc độ 6.400 MB/s – 12.800 MB/s nếu sử dụng chế độ hai kênh. Thậm chí con số này còn có thể lên đến 16GB/s trong ví dụ trước, vì các CPU hiện nay còn có thể tìm nạp dữ liệu từ L2 memory cache ở tốc độ 128- bit hay 256-bit, chúng ta đang nói về 32 GB/s hoặc 64 GB/s nếu CPU làm việc bên trong với tốc độ 2GHz. Giải pháp đã tìm thấy để giảm sự ảnh hưởng trong việc sử dụng bộ nhớ RAM chậm hơn CPU là sử dụng một số lượng nhỏ các RAM tĩnh giữa CPU và bộ nhớ RAM. Công nghệ này được gọi là bộ nhớ Cache và ngày nay có một số lượng nhỏ bộ nhớ tĩnh này được đặt bên trong CPU. Bộ nhớ Cache copy hầu hết các dữ liệu đã được truy cập gần đây từ bộ nhớ 68
  69. RAM vào bộ nhớ tĩnh và đoán dữ liệu gì CPU sẽ hỏi tiếp theo, tải chúng đến bộ nhớ tĩnh trước khi CPU yêu cầu thực sự. Mục đích là làm cho CPU có thể truy cập vào bộ nhớ Cache thay vì truy cập trực tiếp vào bộ nhớ RAM, vì nó có thể truy vấn dữ liệu từ bộ nhớ Cache một cách tức thời hoặc cũng hầu như ngay lập tức thay vì phải đợi khi truy cập vào dữ liệu được đặt trong RAM. CPU càng truy cập vào Cache nhớ thay cho RAM nhiều hơn thì hệ thống sẽ càng hoạt động nhanh hơn. Cũng theo đó, chúng ta sẽ sử dụng hoán đổi hai thuật ngữ dữ liệu và chỉ lệnh cho nhau vì những gì được lưu bên trong mỗi địa chỉ nhớ không có gì khác biệt đối với bộ nhớ. Nguyên tắc: Cache có tốc độ truy xuất nhanh hơn rất nhiều bộ nhớ chính. Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ trao đổi thông tin giữa CPU và bộ nhớ chính. Cache thường được đặt trong chip vi xử lý. 69
  70. Các thao tác chính của Cache: CPU yêu cầu lấy nội dung của một ngăn nhớ bằng việc đưa ra một địa chỉ xác định ô nhớ. CPU kiểm tra xem có nội dung cần tìm trong Cache o Nếu có: CPU nhận dữ liệu từ bộ nhớ Cache o Nếu không có: Bộ điều khiển Cache đọc Block nhớ chứa dữ liệu CPU cần vào Cache. Tiếp đó chuyển dữ liệu từ Cache đến CPU Sơ đồ thao tác cache, bộ nhớ chính và CPU Cấu trúc bộ nhớ Cache: Bộ nhớ cache được chia thành các line (C line), mỗi line chia thành 2 trường, trường Tag và Block. Trường Tag lưu địa chỉ của ô nhớ được chuyển vào cache từ main memmory (RAM). Trường Block lưu dữ liệu của block chuyển từ Bộ nhớ chính vào. Trên Bộ nhớ chính cũng được chia thành các block có kích thước bằng 70
  71. kích thước block trên Cache. Trong mỗi block lại được chia thành k word Vậy: Trên Bộ nhớ chính có 2n word => số block = 2n/k Kích thước của cache = C*k word 3.3.2. Các phương pháp ánh xạ cache a) Ánh xạ trực tiếp Nguyên tắc: Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một vị trí Line duy nhất của cache: 71
  72. Tổng quát: B(j) chỉ có thể được nạp vào L(j mod m) (với m là số Line của cache). Mô tả: Đặ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. 72
  73. 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), 2T = số block của bộ nhớ chính. Khi CPU phát ra một địa chỉ A có N bit với 3 trường trên, đầu tiên CPU sẽ truy cập vào line (L mod m) trên cache, so sánh trường tag của line này với trường tag trong địa chỉ A, nếu giống nhau (Cache hit) thì word thứ W trong line này sẽ được tải vào CPU. Nếu khác nhau (Cache miss) tức trong cache chưa có ô nhớ cần truy xuất, hệ thống sẽ truy xuất tới block thứ T (trường tag trong A) để tải block đó vào cache. Ưu điểm: Bộ so sánh đơn giản vì chỉ thực hiện một lần với 2 toán hạng vào. Nhược điểm: Xác suất cache hit thấp và hiệu xuất của cache không cao vì mỗi một block chỉ có thể đưa vào một vị trí xác định trong khi các vị trí khác có thể đang trống. Ví dụ: Hãy xác định giá trị của Line (block), Tag và Word trong địa chỉ có kích thước 32 bit là 3FE9704Ah, biết rằng: o Bộ nhớ sử dụng cơ chế ánh xạ trực tiếp. o 1 word=2 byte: o Kích thước cache 16K line o Kích thước của 1 bock = 1 line = 16 word Giải o 3FE9704Ah = 0011 1111 1110 1001 0111 0000 0100 1010 b o Kích thước cache 16K line = 24 x 210 line = 214 line => L=14 bit o Kích thước 1 block = 16 word = 24 => k = 4 bit o => Số bít cho trường Tag = 32 – 4 – 14 = 14 o Kết quả là: 73
  74. b) Ánh xạ toàn phần Để khắc phục nhược điểm của phương pháp trực tiếp là, có thể rất nhiều block tranh chấp 1 line trên cache trong khi các vị trí khác bỏ trống, thì phương pháp này cho phép một block trên MainMem được tải vào một vị trí line bất kỳ còn trống trên cache. Nguyên tắc: 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: o Trường Word giống như trường hợp ở trên. o Trường Tag dùng để xác định Block của bộ nhớ chính. Tag xác định Block đang nằm ở Line đó. 74
  75. Đặc điểm của ánh xạ toán phần Khi CPU phát ra một địa chỉ A gồm N bit trong đó có 2 trường tag + word. Đầu tiên CPU sẽ duyệt từ line 0 cho đến hết, lần lượt kiêm tra trường Tag cua line hiện thời nếu trùng với trường Tag của A tức cache hit thì ô nhớ Word sẽ được tải vào CPU. Trái lại không tìm thấy line nào có tag trùng với Tag của A tức cache miss thì CPU phải truy xuất vào block thứ Tag trên MainMem. Ưu điểm: Hiệu xuất cache tối đa, cache hit cao Nhược điểm: Tốc độ tìm kiếm chậm, bộ so sánh phức tạp vì phải lấy tất các các tag của cache để so sánh. c) Ánh xạ liên kết thành bộ Đây là phương pháp án dụng cả hai phương pháp trên, trên cache và MainMem nhóm các line hay block lại thành các SET, khi đó một block thuộc một SET thứ S trên MainMem chỉ được nạp vào SET thứ (S mod x) với x là số SET trên cache, còn trong phạm vi một SET thì block đó có thể dặt vào vị trí bất kỳ nào có line đang trống. Mô tả 75
  76. Đặc điểm của ánh xạ thành bộ CPU phát ra một địa chỉ A n bit gồm 3 trường Tag + Set + Word, đầu tiên CPU sẽ truy xuất vào SET thứ (Set mod x) với x là số SET của cache, sau dó lấy trường tag của A so sánh lầ lượt với các Tag của các line trong cache, nếu trùng thì Word đượct tải vào CPU, trái lại CPU phải tỉ từ bock thứ Tag trên MainMem. 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) Thông thường 2,4,8,16 Lines/Set Ưu điểm: Tăng tốc độ tìm kiếm nhớ ứng dụng cơ ánh xạ trực tiếp đối với các SET. Giảm được cache Miss do áp dụng ánh xạ toàn phần trong một SET 3.4. Bộ nhớ ngoài 3.4.1. Tổng quan Bộ nhớ chính bằng vật liệu bán dẫn không thể lưu trữ một khối lượng rất lớn dữ 76
  77. liệu nên cần phải có thêm các thiết bị nhớ bên ngoài như băng giấy đục lỗ, băng cassette, trống từ, đĩa từ, đĩa quang, Các thiết bị lưu trữ này còn được gọi là bộ nhớ khối (mass storage). Thiết bị nhớ khối thông dụng nhất là đĩa từ. Đĩa từ là một tấm đĩa tròn, mỏng làm bằng chất dẻo, thủy tinh cứng hay kim loại cứng, trên đó có phủ một lớp bột từ tính oxide sắt từ. Đĩa từ sử dụng kỹ thuật ghi từ để lưu trữ dữ liệu. Khi đã ghi dữ liệu trên đĩa, dữ liệu có thể tồn tại khi không còn nguồn cung cấp và cũng có khả năng xóa đi, thay thế bằng dữ liệu mới. Về cơ bản, các thiết bị từ tính thực hiện các thao tác như sau: Ghi dữ liệu: - Các đầu đọc/ghi - thực chất là các nam châm điện sẽ ghi thông tin lên mặt đĩa bằng cách tạo ra các xung điện làm biến đổi bề mặt từ tính. - Do sự thay đổi từ trường, các phần tử ở dưới đầu đọc ghi sẽ được sắp xếp lại theo một quy tắc nào đó. Đọc dữ liệu: Quá trình đọc sẽ thực hiện cảm nhận mẫu từ tính ở bề mặt và biến đổi chúng thành các xung điện Hình bên mô tả một vùng đĩa được ghi dữ liệu (bên phải) và vùng đĩa chưa được từ hóa (bên trái) Mô tả việc ghi và đọc trên đĩa từ 77
  78. 3.4.2. Đĩa cứng Đĩa cứng gồm một hay nhiều đĩa từ bằng kim loại hay nhựa cứng được xếp thành một chồng theo một trục đứng và được đặt trong một hộp kín. Dung lượng đĩa cứng lớn hơn nhiều so với đĩa mềm. Ổ đĩa cứng có nhiều đầu từ, các đầu từ này gắn trên một cần truy xuất và di chuyển thành một khối. Khi đĩa quay, đầu từ không chạm vào mặt đĩa mà cách một lớp đệm không khí. Khoảng cách giữa mặt đĩa và đầu từ tùy theo tốc độ quay và mật độ ghi dữ liệu của đĩa và rất nhỏ so với kích thước đĩa (khoảng 0.3 µm). 78
  79. Đĩa cứng cũng được phân thành các đơn vị vật lý như đĩa mềm. Ngoài ra, nó còn một khái niệm nữa là cylinder. Cylinder là vị trí của đầu từ khi di chuyển trên các mặt tạo thành một hình trụ, đó là một chồng các track xếp nằm lên nhau đối với một vị trí đầu từ. Dung lượng đĩa cứng = số head × số cylinder × số sector/track × số mặt × 512 byte Tốc độ quay của đĩa cứng là 3600 vòng/phút, 6800v/p, 7200v/p, nên thời gian truy xuất của đĩa cứng nhanh hơn đĩa mềm nhiều. Thời gian truy xuất dữ liệu (data access time) là một thông số quan trọng của đĩa cứng, bao gồm thời gian tìm kiếm (seek time), thời gian chuyển đầu từ (head switch time) và thời gian quay trễ (rotational latency). Thời gian tìm kiếm là thời gian chuyển đầu từ từ một track này sang track khác. Thời gian chuyển đầu từ là thời gian chuyển giữa hai trong số các đầu từ khi đọc hay ghi dữ liệu. Thời gian quay trễ là thời gian tính từ khi đầu từ được đặt trên một track cho đến khi tới được sector mong muốn. Tổ chức logic của đĩa cứng sử dụng định dạng file FAT Có thể coi về mặt logic đĩa cứng là một hoặc nhiều ổ đĩa mềm liên tiếp: Như vậy về mặt logic khi ổ cứng được phân vùng thành nhiều ổ logic (C,D,E) thì mỗi ổ có cấu trúc logic tương tự như một ổ A. Tuy nhiên làm thế nào mà Máy tính có 79
  80. thể biết ổ cứng được chia thành bao nhiêu ổ, kích thước mỗi ổ, loại hệ điều hành cài trên mỗi ổ, một phần tử mới trong cấu trúc này đó là Master Boot (Vùng có dấu ?). Cấu trúc của MBR: Trên MBR ngoài phần đoạn chương trình mồi khởi động thì còn có 4 vùng chứa tham số của logic chính (primary partition). Thông tin của vùng này giúp máy tính có thể xác định được ổ cứng được chia thành bao nhiêu ổ, ở vị trí nào và kích thước là bao nhiêu. Cấu trúc của một Partition table: 80
  81. 3.4.3. Tổ chức logic của đĩa cứng với hệ thống file NTFS - New Technology File System Hệ thống file FAT ngày càng bộc lộ những nhược điểm, như không có khả năng bảo mật trong mạng, hiệu xuất sử dụng không cao do kích thước của Cluster cố định không đổi, không có khả năng tự sửa lỗi, chính vì thế mà NTFS đã ra đời. NTFS (New Technology File System): Được giới thiệu cùng với phiên bản Windows NT đầu tiên (phiên bản này cũng hỗ trợ FAT32). Với không gian địa chỉ 64 bit, khả năng thay đổi kích thước của cluster độc lập với dung lượng đĩa cứng, NTFS hầu như đã loại trừ được những hạn chế về số cluster, kích thước tối đa của tập tin trên một phân vùng đĩa cứng. Cấu trúc của NTFS: - Boot Sector chứa mã khởi động và thông tin xác định MFT, đây là 81
  82. điều tuyệt vời của NTFS, nếu như trong hệ thống file FAT thì bảng FAT1 và FAT2 cực kỳ quan trọng giúp định vị và truy xuất file, nếu nó bị hỏng thì toàn bộ dữ liệu cũng bị hỏng nhưng với NTFS vùng tương đương là MFT có thể di động ở vị trí bất kỳ nếu sector đó bị BAD (lỗi). - Master File Table (MFT) NTFS sử dụng bảng quản lý tập tin MFT (Master File Table) thay cho bảng FAT quen thuộc nhằm tăng cường khả năng lưu trữ, tính bảo mật cho tập tin và thư mục, khả năng mã hóa dữ liệu đến từng tập tin. Ngoài ra, NTFS có khả năng chịu lỗi cao, cho phép người dùng đóng một ứng dụng chết (not responding) mà không làm ảnh hưởng đến những ứng dụng khác. Tuy nhiên, NTFS lại không thích hợp với những ổ đĩa có dung lượng thấp (dưới 400 MB) và không sử dụng được trên đĩa mềm. So sánh giữa FAT32 và NTFS NTFS là hệ thống file tiên tiến hơn rất nhiều so với FAT32. Nó có đầy đủ các đặc tính của hệ thống file hiện đại và FAT32 không hề có. Bạn nên dùng NTFS để thay thế cho FAT32 vì các lý do sau: FAT32 không hỗ trợ các tính năng bảo mật như phân quyền quản lý, mã hoá như NTFS. Vấn đề này đặc biệt hiệu quả đối với Windows. Với NTFS, bạn có thể không cần sử dụng các tiện ích mã hoá hay đặt mật khẩu giấu thư mục vì đây là đặc tính đã có sẵn của NTFS. Việc sử dụng các tiện ích không nằm sẵn trong hệ điều hành để thao tác trực tiếp với đĩa vẫn có ít nhiều rủi ro. FAT32 có khả năng phục hồi và chịu lỗi rất kém so với NTFS. Có một số ý kiến cho rằng NTFS không tương thích nhiều với các chương trình kiểm tra đĩa hay sửa đĩa mà người dùng đã quen thuộc từ lâu, như vậy sẽ vô cùng bất tiện trong trường hợp đĩa bị hỏng sector. Người dùng nên yên tâm vì NTFS là hệ thống file có khả năng ghi lại được các hoạt động mà hệ điều hành đã và đang thao tác trên dữ liệu. Nó có khả năng xác định được ngay những file bị sự cố mà không cần phải quét lại toàn bộ hệ thống 82
  83. file, giúp quá trình phục hồi dữ liệu trở nên tin cậy và nhanh chóng hơn. Đây là ưu điểm mà FAT 32 hoàn toàn không có. Nếu mất điện đột ngột thì Windows 98, 2000, XP đều phải quét lại đĩa khi khởi động lại nếu đĩa đó được format bằng chuẩn FAT32. Trong khi format đĩa cứng bằng NTFS thì lại hoàn toàn không cần quét đĩa lại, bởi vì hệ thống dùng NTFS có được những thông tin về tính toàn vẹn dữ liệu ghi trên đĩa và nó mất rất ít thời gian để biết được về mặt logic đĩa của mình có lỗi hay không và nếu có thì hệ thống cũng tự phục hồi một cách cực kỳ đơn giản và nhanh chóng. Với FAT32 thì nó phải rà quét toàn bộ lâu hơn nhiều. Một hệ thống Windows 2000, XP sẽ ổn định hơn nhiều nếu cài trên phân vùng được format bằng NTFS. Ngoài ra NTFS còn được trang bị công cụ kiểm tra và sửa đĩa rất tốt của Microsoft. NTFS có khả năng truy cập và xử lý file nén tốt như truy cập vào các file chưa nén, điều này không chỉ tiết kiệm được dung lượng mà còn gia tăng được tuổi thọ của đĩa cứng. Nhiều người phàn nàn rằng không thể truy cập vào các đĩa cứng được format bằng NTFS khi đang ở DOS, Windows 98 hoặc WinME Thực ra thì DOS, Windows 98 và Windows ME đã quá cũ và các phần mềm còn hữu dụng của chúng cũng không còn bao nhiêu. NTFS đặt được quota sử dụng cho người dùng, tiện dụng cho các hệ thống máy ở công ty, đặc biệt khi âm thầm cấm được con cái sao chép những phim ảnh độc hại vào các thư mục bí mật của chúng trong đĩa cứng. Ngoài ra, NTFS còn có rất nhiều tiện ích chuyên sâu khác cho giới người dùng cao cấp như mount partition , tạo hard link tới một file, hỗ trợ dùng RAID Nếu bạn đã thực sự quyết định chọn NTFS thì bạn có thể từ bỏ hẳn FAT 32 kể từ nay. Hiện có rất nhiều tiện ích chuyển đổi từ FAT 32 sang NTFS tùy bạn lựa chọn. Tiện hơn cả là dùng bộ tiện ích có sẵn trong các đĩa CD khởi động bằng Hirenboot đang rất phổ biến hiện nay. 83
  84. Tuy thế, FAT32 vẫn còn tỏ ra hữu dụng trên các máy tính cấu hình quá yếu ớt, chỉ có thể chạy được Windows 98. FAT16 và FAT32 vẫn được dùng để định dạng cho các loại thẻ nhớ (hay USB), vì các thiết bị chấp nhận thẻ nhớ như máy ảnh số, máy nghe nhạc rất ít loại có tương thích với NTFS. FAT16 luôn là lựa chọn hàng đầu khi bạn muốn copy dữ liệu của mình từ một máy tính chạy Windows sang máy chạy hệ điều hành khác như Mac chẳng hạn. Hầu hết các máy Macintosh hiện nay đều không thể nhận dạng các thẻ nhớ USB được định dạng bằng FAT 32. 3.4.4. Đĩa quang Ngày nay, đĩa quang đã được sử dụng phổ biến, chúng có mật độ ghi thông tin cao hơn đĩa từ thông thường. Các đĩa quang dựa trên cùng một công nghệ được sử dụng trong Compact Disc để ghi âm nên được gọi tên là CD ROM. Các đĩa CD ROM được tạo ra bằng cách dùng một tia laser mạnh đốt chảy các hốc đường kính 1 µm trên một đĩa chủ, từ đĩa chủ này sẽ tạo ra các khuôn để tạo các bản copy trên đĩa chất dẻo. Sau đó, phủ một lớp nhôm mỏng lên trên mặt đĩa và lại phủ một lớp chất dẻo trong suốt lên lớp nhôm để bảo vệ. Lớp nhôm có tác dụng phản xạ tia laser. Các hốc nhỏ được gọi là pit, diện tích không bị dốt nóng gọi là land. Chúng có độ phản xạ khác nhau nên có thể phân biệt được pit và land. Tổ chức dữ liệu Thông tin trên CD ROM được ghi theo một đường xoắn ốc duy nhất và ghi thành từng nhóm 24 byte, mỗi byte được mở rộng thành 14 bit bằng cách dùng mã sửa sai Reed – Solomon. Ba bit được thêm vào giữa các nhóm và một byte đồng bộ được bổ sung để tạo thành 1 frame. 98 frame tạo thành một block chứa 2 KB dữ liệu. CD ROM có thể chứa 270,000 block tương ứng với dung lượng 553 MB. Các đĩa CD ROM được đọc bằng một đầu dò đo năng lượng phản xạ từ bề mặt đĩa khi chiếu lên đó một tia laser công suất nhỏ. Dữ liệu được đọc với tốc độ 75 inches/s, cho tốc độ đọc dữ liệu là 153.6 KBps 84
  85. CD-R o CD-R và CD-RW là bị thay thế cho thế hệ ổ CD-ROM ban đầu o CD-R nghĩa là Compact Disk Recordable o CD-R cho phép ghi dữ liệu lên một phần của đĩa và sau đó có thể ghi tiếp lên phần còn lại vào lần sau o Mỗi phần của một đĩa CD-R chỉ có thể ghi lên một lần và không thể xóa đi được Công nghệ CD-R 86
  86. DVD’s o DVD-ROM - digital video disk o Là đĩa quang có khả năng lưu trữ từ 4.7 GB cho tới 17 GB o Khả năng lưu trữ của một 1đĩa DVD ROM đủ cho lưu toàn bộ danh bạ điện thoại của cả nước Mĩ. o Ban đầu DVD được phát triển phục vụ cho ngành công nghiệp điện ảnh nhưng khả năng lưu trữ khổng lồ khiến nó trở nên hấp dẫn cho việc lưu trữ lượng dữ liệu lớn. 87
  87. Công nghệ DVD một các đa lớp: CHƯƠNG IV: HỆ THỐNG VÀO RA 4.1. Tổng quan về hệ thống vào ra Chức năng: Trao đổi thông tin giữa Máy tính với môi trường bên ngoài. Máy tính muốn trao đổi với con người cần có bàn phím, chuột, loa, mic, Máy tính muốn trao đổi thông tin với không gian cần có máy ảnh + thẻ nhớ, máy Scan, Các thao tác cơ bản: - Vào dữ liệu - Ra dữ liệu Các thành phần chính: - Thiết bị ngoại vi - Module ghép nối vào ra 88
  88.  Thiết bị ngoại vi Chức năng: phương tiện chuyển đổi thông tin giữa bên trong và bên ngoài máy tính. Đặc điểm các thiết bị: Trên thị trường tồn tại rất nhiều các thiết bị ngoại vi khác nhau về: Nguyên tắc hoạt động, tốc độ, định dạng dữ liệu truyền, v.v. Đồng thời các thiết bị này có tốc độ làm việc chậm hơn CPU và RAM rất nhiều. Chính vì lý do trên cần có Module vào ra để ghép nối các thiết bị ngoại vi vào hệ thống BUS máy tính.  Phân loại: - Thiết bị nhập: Keyboard, Mouse, Scan, Micro, - Thiết bị xuất: Monitor, Printer, - Thiết bị xuất nhập: Modem, NIC, Driver,  Cấu trúc tổng quát của thiết bị ngoại vi: - Bộ chuyển đổi tín hiệu: chuyển đổi dữ liệu giữa bên trong và bên ngoài máy tính. - Bộ đệm dữ liệu: nơi lưu trữ dữ liệu trung gian giữa Máy tính và thiết bị ngoại vi, đặt bên trong 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 theo tín hiệu từ Module I/O gửi tới thiết bị.  Module I/O Chức năng: Nối ghép thiết bị ngoại vi với bus của máy tính. 89
  89. - Đ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 máy tính với thiết bị ngoại vi - Phát hiện lỗi của các thiết bị ngoại vi Cấu trúc chung: - Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi - Cổng nối ghép vào ra: kết nối thiết bị ngoại vi, mỗi cổng có địa chỉ xác định và chuẩn kết nối riêng phụ thuộc sơ đồ chân. - Thanh ghi trạng thái/điều khiển: lưu trữ thông tin trạng thái cho các cổng vào ra - Khối logic điều khiển: điều khiển Module vào ra 4.2. Các phương pháp điều khiển vào ra  Phân loại: - Vào ra bằng chương trình - Vào ra bằng ngắt - Truy cập bộ nhớ trực tiếp DMA 4.2.1. Vào ra bằng chương trình – polling Nguyên tắc chung: 90
  90. - Sử dụng lệnh vào ra trong chương trình để trao đổi dữ liệu với cổng vào ra - Khi CPU thực hiện chương trình gặp lệnh vào ra thì CPU điều khiển trao đổi dữ liệu với cổng vào ra. - CPU và thiết bị ngoại vi chỉ trao đổi dữ liệu khi có tín hiệu móc nối báo sẵn sàng (Ready/ACK) của các phía. Sau khi máy tính khởi động thiết bị ngoại vi (khối ghép nối), máy tính luôn chờ và kiểm tra trạng thái sẵn sàng của thiết bị ngoại vi gồm các bước: (1) Đọc thông tin về trạng thái sẵn sàng của thiết bị ngoại vi (2) Kiểm tra: Nếu thiết bị ngoại vi sẵn sàng thì trao đổi dữ liệu, ngược lại thì về bước (1) để kiểm tra lại. Phương pháp này được dùng khi tốc độ trao đổi dữ liệu của các bên (CPU và thiết bị ngoại vi) rất không bằng nhau. Nhận xét: - Việc trao đổi thông tin là tin cậy vì chỉ trao đổi khi thiết bị ngoại vi sẵn sàng. 91
  91. - Tốn thời gian CPU vì phải kiểm tra trạng thái sẵn sàng của thiết bị ngoại vi, việc kiểm tra này do CPU đảm nhiệm nên giảm hiệu suất của hệ thống. - Phù hợp với những hệ thống không đòi hỏi cao về tốc độ trao đổi dữ liệu, hệ thống có ít thiết bị ngoại vi. 4.2.2. Vào ra bằng phương pháp ngắt Bình thường máy tính thực hiện một chương trình (công việc) nào đó. Khi thiết bị ngoại vi có yêu cầu trao đổi dữ liệu, nó sẽ gửi tín hiệu yêu cầu ngắt CPU dừng công việc hiện tại, phục vụ cho trao đổi dữ liệu thông qua tín hiệu yêu cầu ngắt IRQ (Interrupt Request) tác động vào chân INTR (chân tiếp nhận yêu cầu ngắt) của CPU. CPU nhận được yêu cầu ngắt, nếu chấp nhận nó sẽ đưa ra xung INTA xác nhận tới thiết bị ngoại vi, sau đó CPU tìm chương trình con phục vụ ngắt tương ứng số hiệu ngắt và thực hiện nó. Đó chính là chương trình con thực hiện trao đổi(vào/ra) dữ liệu do thiết bị ngoại vi yêu cầu. Khi trao đổi xong (ISR – Interrupt Service Routine) kết thúc thì CPU tiếp tục công việc (chương trình) đã bị gián đoạn. 92
  92. 4.2.3. Vào ra sử dụng DMA Trong các phương pháp vào/ra dữ liệu bằng chương trình kể trên, dữ liệu phải được chuyển qua lại từ bộ nhớ đến CPU rồi đến thiết bị ngoại vi hoặc ngược lại bằng việc thực hiện từng lệnh (MOV, IN hoặc OUT) của CPU với sự tham gia của các thanh ghi. Dữ liệu của mỗi lần vận chuyển là byte hoặc word (2 byte), tốc độ trao đổi dữ liệu phụ thuộc rất nhiều vào tốc độ thực hiện các lệnh trao đổi dữ liệu kể trên. Nói chung, tốc độ trao đổi dữ liệu là không thể nhanh được. Với các thiết bị làm việc với bộ nhớ khối như màn hình, ổ đĩa, yêu cầu trao đổi cả mảng dữ liệu thì phương pháp vào/ra dữ liệu bằng chương trình là không phù hợp. Khi đó người ta nghĩ đến việc điều khiển dữ liệu vào/ra trực tiếp từ bộ nhớ đến thiết bị ngoại vi hoặc ngược lại mà không thông qua CPU bằng những lệnh trao đổi dữ liệu như MOV, IN hoặc OUT. Đó là phương pháp vào/ra dữ liệu bằng cách truy nhập trực tiếp bộ nhớ (DMA – Direct Memory Access). Trong trường hợp này CPU trao quyền điều khiển cho một mạch phần cứng phụ điều khiển việc vào/ra dữ liệu, đó là DMAC– DMA Controller  Các thành phần của DMAC - Thanh ghi dữ liệu: chứa dữ liệu trao đổi. - Thanh ghi địa chỉ: chứa địa chỉ của ngăn nhớ dữ liệu - Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi 93
  93. - Khối logic điều khiển: điều khiển hoạt động của DMAC  Hoạt động của DMA Khi cần vào ra dữ liệu thì CPU nhờ DMAC tiến hành vào ra dữ liệu với thông tin cho biết như sau: - Địa chỉ thiết bị vào ra - Địa chỉ đầu của mảng nhớ chứa dữ liệu và DMAC nạp thanh ghi địa chỉ - Số từ dữ liệu cần truyền và DMAC nạp vào bộ đếm dữ liệu - CPU sẽ đi thực hiện việc khác - DMAC điều khiển việc trao đổi dữ liệu sau khi truyền một từ dữ liệu thì nội dung thanh ghi địa chỉ tăng lên và nội dung bộ đếm dữ liệu giảm xuống một đơn vị. - Khi bộ đếm bằng dữ liệu bằng 0, DMAC gởi tín hiệu ngắt CPU để báo kết thúc DMA  Các kiểu thực hiện DMA - DMA truyền theo khối: DMAC sử dụng BUS để truyền cả khối dữ liệu (CPU chuyển nhượng BUS cho DMAC) - DMA lấy chu kỳ: DMAC cưỡng bức CPU treo tạm thời từng chu kỳ BUS để thực hiện truyền một từ dữ liệu 94
  94. - DMA trong suốt: DMAC nhận biết những chu kỳ nào CPU không sử dụng BUS thì chiếm BUS để trao đổi dữ liệu (DMAC lấy lén chu kỳ)  Đặc điểm DMA - CPU không tham gia trong 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à Module vào ra với tốc độ nhanh. - Phù hợp với yêu cầu trao đổi mảng dữ liệu có kích thước lớn. 4.3. Ghép nối thiết bị ngoại vi  Các kiểu nối ghép vào ra - Nối ghép song song - Nối ghép nối tiếp  Nối ghép song song - Truyền các bit dữ liệu được truyền song song trong cùng một thời điểm trên nhiều đường dây. - Tốc độ truyền cao - Cần đường truyền song song để tải các bit dữ liệu cùng đi, điều đó khiến phương pháp này tốn kém về dây dẫn. Điển hình của phương pháp này cổng máy in 25 chân LPT.  Nối ghép nối tiếp - Từng Bit của dữ liệu lần lượt được gửi đi trên một đường truyền duy nhất - Dữ liệu trong máy tính thường ở dạng 8bit, 16bit, vì thế cần có bộ chuyển đổi từ song song sang nối tiếp. - Tốc độ truyền của phương pháp này chậm vì truyền tường bit trên một đường dây - Ưu điểm là kinh tế, không tốn dây, có thể dùng để truyền đi xa. - Các cấu hình ghép nối: + Điểm - điểm (point to point): Qua một cổng vào ra chỉ có thể ghép một thiết bị ngoại vi (PS/2, COM, LPT, ) 95
  95. + Điểm - đa điểm (Point to multipoint): Thông qua một cổng vào ra ghép nhiều thiết bị vào ra. Ví dụ: SCSI(7,15), USB (127), 4.4. Các cổng vào ra thông dụng trên máy tính 4.4.1. Cổng song song LPT Các máy tính PC được trang bị ít nhất là 1 cổng song song và 1 cổng nối tiếp. Khác với ghép nối nối tiếp có nhiều ứng dụng, ghép nối song song thường chỉ phục vụ cho máy in. Sơ đồ ghép nối song song như hình sau: Có ba thanh ghi có thể truyền số liệu và điều khiển máy in cũng như khối ghép nối. Địa chỉ cơ sở của các thanh ghi cho tất cả cổng LPT (line printer) từ LPT1 đến LPT4 được lưu trữ trong vùng số liệu BIOS. Thanh ghi số liệu được định vị ở offset 00h, thanh ghi trạng thái ở 01h, và thanh ghi điều khiển ở 02h. Thông thường, địa chỉ cơ sở của LPT1 là 378h, LPT2 là 278h, do đó địa chỉ của thanh ghi trạng thái là 379h 96
  96. hoặc 279h và địa chỉ thanh ghi điều khiển là 37Ah hoặc 27Ah. Định dạng các thanh ghi như sau: Thanh ghi dữ liệu (hai chiều): Thanh ghi trạng thái máy in (chỉ đọc): Thanh ghi điều khiển máy in: x: không sử dụng IRQ: yêu cầu ngắt cứng; 1 = cho phép; 0 = không cho phép Bản mạch ghép nối chỉ có bus dữ liệu 8 bit do dữ liệu luôn đi qua máy in thành từng khối 8 97