Tin học văn phòng - Chương 2: Bộ xử lý trung tâm cpu (central processing unit)

Các kiểu bộ nhớ ngoài – Trống từ (Drum): Ngày nay không còn sử dụng – Băng từ (Tape): Chuyên dùng cho backup dữ liệu – Đĩa từ: Đang sử dụng rộng rãi nhất – Đĩa quang: Dùng để trao đổi dữ liệu giữa các máy tính và phân phối phần mềm – Flash Disk: Loại bộ nhớ bán dẫn gắn ngoài qua cổng USB, nhỏ gọn và thuận tiện để trao đổi dữ liệu – SSD (Solid State Disk): Cũng là bộ nhớ bán dẫn có dung lượng lớn giao tiếp với máy tính tương tự ổ đĩa cứng, tốc độ truy cập cao, ít tốn điện, không ồn, chống sốc tốt  rất phù hợp với máy xách tay. Nhược điểm giá thành đắt.

pdf66 trang | Chia sẻ: huyhoang44 | Lượt xem: 767 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Tin học văn phòng - Chương 2: Bộ xử lý trung tâm cpu (central processing unit), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
suất truy cập bộ nhớ chính Cấu trúc bộ xử lý tiên tiến 10/01/2017 11 • Đơn vị quản lý bộ nhớ – Thường gọi là đơn vị MMU (Memory Management Unit) dùng để quản lý bộ nhớ ảo – Chuyển đổi địa chỉ ảo (trong chương trình) thành địa chỉ vật lý (trong bộ nhớ) – Cung cấp cơ chế phân trang/phân đoạn – Cung cấp chế độ bảo vệ bộ nhớ • Mục đích : Tăng dung lượng bộ nhớ chính bằng cách sử dụng bộ nhớ phụ Cấu trúc bộ xử lý tiên tiến • Các kiến trúc máy tính song song – Nhu cầu giải các bài toán lớn ngày càng nhiều, cần những máy tính cực mạnh có khả năng xử lý tốc độ cao – Kiến trúc máy tính tuần tự (Von-Neumann) tiến đến giới hạn tốc độ, một bộ xử lý duy nhất khó nâng cao hơn nữa khả năng xử lý – Các kiến trúc máy tính song song giúp tăng hiệu suất tính toán cho máy tính: – Kiến trúc song song mức lệnh IPL (Instruction-level parallelism) : Tăng số lượng lệnh thi hành được trên cùng 1 đơn vị thời gian – Kiến trúc song song mức xử lý (Machine parallelism) : Tăng số lượng đơn vị xử lý phần cứng – Cần kết hợp cả 2 kiến trúc song song để tạo ra các máy tính có hiệu suất cao Cấu trúc bộ xử lý tiên tiến • Kiến trúc song song mức lệnh – Siêu đường ống (Superpipeline) • Chia mỗi thao tác trong chu trình lệnh ra n bước nhỏ  ống lệnh dài hơn • Cần 1/n chu kỳ máy cho mỗi thao tác – Siêu hướng (Superscalar) • Sử dụng nhiều ống lệnh  CPU gồm nhiều đơn vị chức năng, cho phép thi hành nhiều lệnh đồng thời • Mỗi chu kỳ máy thực hiện được nhiều lệnh – VLIW (Very Long Instruction Word) • Ghép nhiều lệnh đơn vào 1 từ máy để thực hiện đồng thời • Ví dụ : CPU Itanium họ IA-64 của Intel cho phép ghép 3 lệnh/từ máy gọi là bundle gồm 128 bit Cấu trúc bộ xử lý tiên tiến 10/01/2017 12 • Superpipeline Cấu trúc bộ xử lý tiên tiến Chu kỳ 1 2 3 4 5 6 7 Lệnh 1 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2 Lệnh 2 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2 Lệnh 3 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2 Lệnh 4 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2 Lệnh 5 I1 I2 D1 D2 F1 F2 E1 E2 W1 W2 Chu kỳ 1 2 3 4 5 6 7 8 9 Lệnh 1 I D F E W Lệnh 2 I D F E W Lệnh 3 I D F E W Lệnh 4 I D F E W Lệnh 5 I D F E W Lệnh 6 I D F E W Lệnh 7 I D F E W Lệnh 8 I D F E W Lệnh 9 I D F E W Lệnh 10 I D F E W • Super- scalar • VLIW Cấu trúc bộ xử lý tiên tiến • Ví dụ: Khuôn dạng lệnh của CPU Intel Itanium • Kiến trúc song song mức xử lý – Tích hợp nhiều bộ xử lý đồng thời để tăng khả năng thi hành chương trình – Các xu hướng phát triển: • Đa chương (multi-programming) • Đa luồng (multi-threading) • Đa nhân (multi-core) • Đa xử lý (multi-processing) • Đa máy tính (multi-computer) Cấu trúc bộ xử lý tiên tiến 10/01/2017 13 • Kiến trúc song song mức xử lý (tiếp) Cấu trúc bộ xử lý tiên tiến (a) On-chip parallelism (b) Coprocessor (c) Multiprocessor (d) Multicomputer (e) Grid • Multi-core Cấu trúc bộ xử lý tiên tiến • Ví dụ : CPU Intel Core i7 gồm 4 nhân Cấu trúc bộ xử lý tiên tiến 10/01/2017 14 • Multi-processor – Sử dụng bus chung hoặc switch – Sử dụng bộ nhớ chung hoặc riêng biệt Cấu trúc bộ xử lý tiên tiến Sơ đồ UMA (Uniform Memory Access) dùng bus chung và bộ nhớ chung • Multi-processor (tiếp) – Sơ đồ NUMA (Non-Uniform Memory Access) dùng bus chung và bộ nhớ riêng Cấu trúc bộ xử lý tiên tiến • Multi-processor (tiếp) – Sơ đồ UMA (Uniform Memory Access) dùng switch và bộ nhớ riêng – Còn gọi là hệ thống đa xử lý đối xứng SMP (Symmetric Multi- Processors) Cấu trúc bộ xử lý tiên tiến 10/01/2017 15 • Multi-processor (tiếp) – Sơ đồ multi-processor dùng bộ nhớ chung Cấu trúc bộ xử lý tiên tiến • Ví dụ: Hệ thống SUN E25K (NUMA multi-processor) Cấu trúc bộ xử lý tiên tiến 72 CPU Dual-core UltraSPARC IV+ 1.95GHz 32MB Cache L3 1.15 TB RAM 250TB HDD • Multi-computer – Phân loại theo Flynn (1966): Căn cứ vào số lượng lệnh và số lượng dữ liệu có thể xử lý là 1 hay nhiều • Single instruction, single data stream – SISD • Single instruction, multiple data stream – SIMD • Multiple instruction, single data stream – MISD • Multiple instruction, multiple data stream- MIMD Cấu trúc bộ xử lý tiên tiến 10/01/2017 16 • Sơ đồ phân loại Flynn Cấu trúc bộ xử lý tiên tiến • Ví dụ về SIMD Cấu trúc bộ xử lý tiên tiến • Cluster – Là 1 dạng máy tính loại MIMD gồm nhiều máy tính độc lập kết nối qua mạng tốc độ cao, mỗi máy có CPU, BN và IO riêng – Dùng phương pháp truyền thông báo (Message Passing) để trao đổi thông tin (bằng phần mềm) • MPI (Message Passing Interface) • PVM (Parallel Virtual Machine) – Gồm 2 loại • NOW (Network of Workstations) hoặc COW (Cluster of Workstations) : Kết nối qua LAN • Grid : Kết nối qua Internet Cấu trúc bộ xử lý tiên tiến 10/01/2017 17 Cấu trúc bộ xử lý tiên tiến • Cluster (tiếp) • Message-passing multi-computer Cấu trúc bộ xử lý tiên tiến • Ví dụ: Siêu máy tính Bluegen của IBM Cấu trúc bộ xử lý tiên tiến 2 core PowerPC 440 700 MHz 4MB L3 500 TFLOPS (teraFLOPS) 10/01/2017 18 • Ví dụ: Siêu máy tính Red Storm của Cray Cấu trúc bộ xử lý tiên tiến • So sánh 2 siêu máy tính Bluegen & Red Storm Cấu trúc bộ xử lý tiên tiến • Top 10 siêu máy tính 06/2010 trên trang top500.org Cấu trúc bộ xử lý tiên tiến Rank Site Computer 1 Oak Ridge National Laboratory United States Jaguar - Cray XT5-HE Opteron Six Core 2.6 GHz Cray Inc. 2 National Supercomputing Centre in Shenzhen China (Thâm Quyến) Nebulae (Tinh Vân) - Dawning TC3600 Blade, Intel X5650 Dawning 3 DOE/NNSA/LANL United States Roadrunner - BladeCenter QS22/LS21 Cluster, PowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz, Voltaire Infiniband IBM 4 National Institute for Computational Sciences/University of Tennessee United States Kraken XT5 - Cray XT5-HE Opteron Six Core 2.6 GHz Cray Inc. 5 Forschungszentrum Juelich (FZJ) Germany JUGENE - Blue Gene/P Solution IBM 6 NASA/Ames Research Center/NAS United States Pleiades - SGI Altix ICE 8200EX/8400EX, Xeon HT QC 3.0 Ghz SGI 7 National SuperComputer Center in Tianjin/NUDT China (Thiên Tân) Tianhe-1 (Tinh Hà) - NUDT TH-1 Cluster, Xeon E5540/E5450 NUDT 8 DOE/NNSA/LLNL United States BlueGene/L - eServer Blue Gene Solution IBM 9 Argonne National Laboratory United States Intrepid - Blue Gene/P Solution IBM 10 National Renewable Energy Laboratory United States Red Sky - Sun Blade x6275, Xeon X55xx 2.93 Ghz, Infiniband Sun 10/01/2017 19 Rank Site Computer 1 RIKEN Advanced Institute for Computational Science - Japan K computer, SPARC64 VIIIfx 2.0GHz Fujitsu 2 National Supercomputing Center in Tianjin (Thiên Tân) – China Tianhe-1A (Tinh Hà) X5670 2.93Ghz 6C, NVIDIA GPU NUDT 3 DOE/SC/Oak Ridge National Laboratory United States Jaguar - Cray XT5-HE Opteron 6-core 2.6 GHz Cray Inc. 4 National Supercomputing Centre in Shenzhen (Thâm Quyến) – China Nebulae (Tinh Vân) Intel X5650, NVidia Tesla C2050 GPU Dawning 5 GSIC Center, Tokyo Institute of Technology Japan TSUBAME 2.0 G7 Xeon 6C X5670, Nvidia GPU, NEC/HP 6 DOE/NNSA/LANL/SNL United States Cielo - Cray XE6 8-core 2.4 GHz Cray Inc. 7 NASA/Ames Research Center/NAS United States Pleiades Xeon HT QC 3.0/Xeon 5570/5670 2.93 Ghz SGI 8 DOE/SC/LBNL/NERSC United States Hopper - Cray XE6 12-core 2.1 GHz Cray Inc. 9 Commissariat a l'Energie Atomique (CEA) France Tera-100 - Bull bullx super-node S6010/S6030 Bull SA 10 DOE/NNSA/LANL United States Roadrunner - PowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz IBM • Top 10 siêu máy tính 06/2011 trên trang top500.org Cấu trúc bộ xử lý tiên tiến Rank Site Computer 1 DOE/NNSA/LLNL United States Sequoia - BlueGene/Q, Power BQC 16C 1.60 GHz, Custom IBM 2 RIKEN Advanced Institute for Computational Science Japan K computer, SPARC64 VIIIfx 2.0GHz, Tofu interconnect Fujitsu 3 DOE/SC/Argonne National Laboratory United States Mira - BlueGene/Q, Power BQC 16C 1.60GHz, Custom IBM 4 Leibniz Rechenzentrum Germany SuperMUC - iDataPlex DX360M4, Xeon E5-2680 8C 2.70GHz, Infiniband FDR IBM 5 National Supercomputing Center in Tianjin China Tianhe-1A - NUDT YH MPP, Xeon X5670 6C 2.93 GHz, NVIDIA 2050 NUDT 6 DOE/SC/Oak Ridge National Laboratory United States Jaguar - Cray XK6, Opteron 6274 16C 2.200GHz, Cray Gemini interconnect, NVIDIA 2090 Cray Inc. 7 CINECA Italy Fermi - BlueGene/Q, Power BQC 16C 1.60GHz, Custom IBM 8 Forschungszentrum Juelich (FZJ) Germany JuQUEEN - BlueGene/Q, Power BQC 16C 1.60GHz, Custom IBM 9 CEA/TGCC-GENCI France Curie thin nodes - Bullx B510, Xeon E5-2680 8C 2.700GHz, Infiniband QDR Bull 10 National Supercomputing Centre in Shenzhen (NSCS) China Nebulae - Dawning TC3600 Blade System, Xeon X5650 6C 2.66GHz, Infiniband QDR, NVIDIA 2050 Dawning • Top 10 siêu máy tính 06/2012 trên trang top500.org Cấu trúc bộ xử lý tiên tiến • Top 10 siêu máy tính 11/2012 trên trang top500.org Cấu trúc bộ xử lý tiên tiến Rank Site System Cores 1 DOE/SC/Oak Ridge National Laboratory United States Titan - Cray XK7 , Opteron 6274 16C 2.200GHz, Cray Inc. 560.640 2 DOE/NNSA/LLNL United States Sequoia - BlueGene/Q, Power BQC 16C 1.60 Hz, IBM 1.572.864 3 RIKEN Advanced Institute for Computational Science Japan K computer, SPARC64 VIIIfx 2.0GHz, Fujitsu 705.024 4 DOE/SC/Argonne National Laboratory United States Mira - BlueGene/Q, Power BQC 16C 1.60GHz, IBM 786.432 5 Forschungszentrum Juelich (FZJ) Germany JUQUEEN - BlueGene/Q, Power BQC 16C 1.60GHz, IBM 393.216 6 Leibniz Rechenzentrum Germany SuperMUC - iDataPlex DX360M4, Xeon E5-2680 8C 2.70GHz, IBM 147.456 7 Texas Advanced Computing Center/Univ. of Texas United States Stampede - PowerEdge C8220, Xeon E5-2680 8C 2.700GHz, Intel Xeon Phi Dell 204.900 8 National Supercomputing Center in Tianjin China Tianhe-1A - NUDT YH MPP, Xeon X5670 6C 2.93 GHz, NVIDIA 2050 NUDT 186.368 9 CINECA Italy Fermi - BlueGene/Q, Power BQC 16C 1.60GHz, IBM 163.840 10 IBM Development Engineering United States DARPA Trial Subset - Power 775, POWER7 8C 3.836GHz IBM 63.360 10/01/2017 20 Bộ nhớ (Memory) Nội dung • Tổng quan về hệ thống nhớ • Bộ nhớ bán dẫn • Bộ nhớ chính • Bộ nhớ cache • Bộ nhớ ngoài • Bộ nhớ ảo Tổng quan về hệ thống nhớ • Các đặc trưng của hệ thống nhớ – Vị trí • Bên trong CPU: – Tập thanh ghi • Bộ nhớ trong: – Bộ nhớ chính – Bộ nhớ cache • Bộ nhớ ngoài: các thiết bị lưu trữ – Dung lượng • Độ dài từ nhớ (tính bằng bit) • Số lượng từ nhớ 10/01/2017 21 • Các đặc trưng của hệ thống nhớ (tiếp) – Đơn vị truyền • Từ nhớ (word) • Khối nhớ (block) – Phương pháp truy cập • Truy cập tuần tự (băng từ) • Truy cập trực tiếp (các loại đĩa) • Truy cập ngẫu nhiên (bộ nhớ bán dẫn) • Truy cập kết hợp (cache) Tổng quan về hệ thống nhớ • Các đặc trưng của hệ thống nhớ (tiếp) – Hiệu năng (performance) • Thời gian truy cập • Tốc độ truyền – Kiểu vật lý • Bộ nhớ bán dẫn • Bộ nhớ từ • Bộ nhớ quang – Các đặc tính vật lý • Tự mất/ Không tự mất (volatile/ nonvolatile) • Xoá được/ không xoá được Tổng quan về hệ thống nhớ • Phân cấp hệ thống nhớ Tổng quan về hệ thống nhớ 10/01/2017 22 • Độ tin cậy bộ nhớ – Nguyên tắc chung: cần tạo ra và lưu trữ thêm thông tin dư thừa. • Từ dữ liệu cần ghi vào bộ nhớ: m bit • Cần tạo ra và lưu trữ từ mã: k bit • Lưu trữ (m+k) bit – Phát hiện lỗi • Kiểm tra chẵn/ lẻ (parity): Mỗi byte dữ liệu cần 1 bit kiểm tra • Checksum • CRC (Cyclic Redandancy Check) – Phát hiện và sửa lỗi • Dữ liệu được mã hoá bằng các bộ mã có khả năng sửa lỗi ECC (Error Correction Code), ví dụ : Mã Hamming • Mỗi byte hoặc block dữ liệu cần nhiều bit kiểm tra hơn Tổng quan về hệ thống nhớ • Độ tin cậy bộ nhớ (tiếp) Tổng quan về hệ thống nhớ Bộ nhớ bán dẫn • Phân loại – ROM (Read Only Memory) • Bộ nhớ chỉ đọc • Không tự mất dữ liệu khi cắt nguồn điện – RAM (Random Access Memory) • Bộ nhớ đọc/ ghi • Tự mất dữ liệu khi cắt nguồn điện – Cache • Bộ nhớ có tốc độ cao nhưng dung lượng thấp • Trung gian giữa bộ nhớ chính và thanh ghi trong CPU • Ngày nay thường được tích hợp sẵn trong CPU 10/01/2017 23 • ROM – Thông tin được ghi khi sản xuất – Không xoá/ sửa được nội dung khi sử dụng – Ứng dụng: • Thư viện các chương trình con • Các chương trình điều khiển hệ thống nhập xuất cơ bản BIOS (Basic Input Output System) • Phần mềm kiểm tra khi bật máy POST (Power On Self Test) • Phần mềm khởi động máy tính (OS loader) • Vi chương trình Bộ nhớ bán dẫn • Phân loại ROM – Mask ROM • Thông tin được ghi khi sản xuất • Không xoá/ sửa được nội dung • Giá thành rất đắt – PROM (Programmable ROM) • Khi sản xuất chưa có nội dung (ROM trắng) • Cần thiết bị chuyên dụng để ghi • Cho phép ghi được một lần, gọi là OTP (One Time Programmable) hoặc WORM (Write-Once-Read-Many) – EPROM (Erasable PROM) • Có thể xóa bằng tia cực tím UV (Ultra Violet) • Cần thiết bị chuyên dụng để ghi • Ghi/ xoá được nhiều lần Bộ nhớ bán dẫn • Phân loại ROM (tiếp) – EEPROM (Electrically EPROM) • Xóa bằng mạch điện, không cần tia UV  Không cần tháo chip ROM ra khỏi máy tính • Có thể ghi theo từng byte • 2 chế độ điện áp: – Điện áp cao : Ghi + Xoá – Điện áp thấp : Chỉ đọc – Flash memory (Bộ nhớ cực nhanh) • EEPROM sản xuất bằng công nghệ NAND, tốc độ truy cập nhanh, mật độ cao • Xóa bằng mạch điện; Ghi theo từng block • Ngày nay được sử dụng rộng rãi dưới dạng thẻ nhớ (CF, SD,) , thanh USB, ổ SSD (thay thế cho ổ đĩa cứng) Bộ nhớ bán dẫn 10/01/2017 24 • RAM – Bộ nhớ đọc-ghi (Read/Write Memory) – Có thể ghi/ xoá trong quá trình sử dụng  Làm bộ nhớ chính trong máy tính – Tự mất dữ liệu khi cắt nguồn điện. Chỉ lưu trữ thông tin tạm thời khi chạy chương trình, khi kết thúc chương trình cần lưu trữ dữ liệu ra bộ nhớ ngoài – Có hai loại: • SRAM (Static RAM): RAM tĩnh • DRAM (Dynamic RAM): RAM động Bộ nhớ bán dẫn • SRAM – Các bit được lưu trữ bằng các Flip-Flop – Thông tin ổn định, không tự mất dữ liệu theo thời gian – Cấu trúc phức tạp – Dung lượng chip nhỏ – Tốc độ truy cập nhanh – Đắt tiền – Dùng làm bộ nhớ cache Bộ nhớ bán dẫn • DRAM – Các bit được lưu trữ trên mạch tụ điện – Tự mất dữ liệu theo thời gian  cần phải có mạch làm tươi (refresh) – Cấu trúc đơn giản – Dung lượng lớn – Tốc độ chậm hơn – Rẻ tiền hơn – Dùng làm bộ nhớ chính Bộ nhớ bán dẫn 10/01/2017 25 • Phân loại DRAM theo cơ chế hoạt động – FPM (Fast Page Mode) • Truy cập theo từng trang bộ nhớ (cùng hàng khác cột) – EDO (Enhanced Data Out) • Khi xuất dữ liệu có thể đồng thời đọc địa chỉ của ô nhớ kế tiếp • Cho phép đọc nhanh gấp đôi so với RAM thường – SDRAM (Synchronous DRAM) • Đồng bộ với system clock CPU không cần chu kỳ chờ • Truyền dữ liệu theo block – RDRAM (Rambus DRAM) • Bộ nhớ tốc độ cao, truyền dữ liệu theo block • Do công ty Rambus và Intel sản xuất để sử dụng cho CPU Pentium 4 khi mới xuất hiện năm 2000 • Giá thành đắt nên ngày nay ít sử dụng Bộ nhớ bán dẫn • Phân loại DRAM theo cơ chế hoạt động (tiếp) – DDR-SDRAM (Double Data Rate-SDRAM) • Phiên bản cải tiến của SDRAM nhằm nâng cao tốc độ truy cập nhưng có giá thành rẻ hơn RDRAM • Gởi dữ liệu 2 lần trong 1 chu kỳ clock – DDR2/ DDR3: Gởi dữ liệu 4 hoặc 8 lần trong 1 chu kỳ clock Bộ nhớ bán dẫn • Phân loại DRAM theo hình thức đóng gói – SIMM (Single Inline Memory Module) – DIMM (Dual Inline Memory Module) – RIMM (Rambus Inline Memory Module) – SO-DIMM (Small Outline DIMM) – SO-RIMM (Small Outline RIMM) Bộ nhớ bán dẫn 10/01/2017 26 • Tổ chức của chip nhớ – Các đường địa chỉ: An-1 ÷ A0 có 2 n từ nhớ – Các đường dữ liệu: Dm-1 ÷ D0 độ dài từ nhớ = m bit – Dung lượng chip nhớ = 2n * m bit – Các đường điều khiển: • Tín hiệu chọn chip CS (Chip Select) • Tín hiệu điều khiển đọc OE (Output Enable) • Tín hiệu điều khiển ghi WE (Write Enable) • Các tín hiệu điều khiển thường tích cực với mức 0 Bộ nhớ bán dẫn • Tổ chức bộ nhớ 1 chiều và 2 chiều Bộ nhớ bán dẫn • Tổ chức bộ nhớ hai chiều – Có n đường địa chỉ: n = n1 + n2 • 2n1 hàng, • mỗi hàng có 2n2 từ nhớ, – Có m đường dữ liệu: • mỗi từ nhớ có độ dài m-bit. – Dung lượng của chip nhớ: • [2n1 x (2n2 x m)] bit = (2n1+n2 x m) bit = (2n x m) bit. – Hoạt động giải mã địa chỉ: • Bước 1: bộ giải mã hàng chọn 1 trong 2n1 hàng. • Bước 2: bộ giải mã cột chọn 1 trong 2n2 từ nhớ (cột) của hàng đã được chọn. Bộ nhớ bán dẫn 10/01/2017 27 • Tổ chức của DRAM – Dùng n đường địa chỉ dồn kênh  cho phép truyền 2n bit địa chỉ – Tín hiệu chọn địa chỉ hàng RAS (Row Address Strobe) – Tín hiệu chọn địa chỉ cột CAS (Column Address Strobe) – Dung lượng DRAM = 22n x m bit Bộ nhớ bán dẫn • Thiết kế mô-đun nhớ bán dẫn – Dung lượng chip nhớ 2n x m bit – Cần thiết kế để tăng dung lượng: • Thiết kế tăng độ dài từ nhớ • Thiết kế tăng số lượng từ nhớ • Thiết kế kết hợp: tăng cả độ dài và số lượng từ nhớ – Qui tắc: ghép nối các chip nhớ song song (tăng độ dài) hoặc nối tiếp bằng mạch giải mã (tăng số lượng) Bộ nhớ bán dẫn • Tăng độ dài từ nhớ – VD: • Cho chip nhớ SRAM 4K x 4 bit • Thiết kế mô-đun nhớ 4K x 8 bit – Giải: • Dung lượng chip nhớ = 212 x 4 bit • chip nhớ có: – 12 chân địa chỉ – 4 chân dữ liệu • mô-đun nhớ cần có: – 12 chân địa chỉ – 8 chân dữ liệu – Tổng quát • Cho chip nhớ 2n x m bit • Thiết kế mô-đun nhớ 2n x (k.m) bit • Dùng k chip nhớ Bộ nhớ bán dẫn 10/01/2017 28 Bộ nhớ bán dẫn • Ví dụ: Tăng độ dài từ nhớ • Tăng số lượng từ nhớ – VD: • Cho chip nhớ SRAM 4K x 8 bit • Thiết kế mô-đun nhớ 8K x 8 bit – Giải: • Dung lượng chip nhớ = 212 x 8 bit • Chip nhớ có: – 12 chân địa chỉ – 8 chân dữ liệu • Dung lượng mô-đun nhớ = 213 x 8 bit – 13 chân địa chỉ – 8 chân dữ liệu Bộ nhớ bán dẫn Bộ nhớ bán dẫn • Ví dụ: Tăng số lượng từ nhớ 10/01/2017 29 • Bài tập – Tăng số lượng từ gấp 4 lần: • Cho chip nhớ SRAM 4K x 8 bit • Thiết kế mô-đun nhớ 16K x 8 bit • Gợi ý: Dùng mạch giải mã 2  4 – Tăng số lượng từ gấp 8 lần: • Cho chip nhớ SRAM 4K x 8 bit • Thiết kế mô-đun nhớ 32K x 8 bit • Gợi ý: Dùng mạch giải mã 3  8 – Thiết kế kết hợp: • Cho chip nhớ SRAM 4K x 4 bit • Thiết kế mô-đun nhớ 8K x 8 bit Bộ nhớ bán dẫn Bộ nhớ chính • Các đặc trưng cơ bản – Chứa các chương trình đang thực hiện và các dữ liệu đang được sử dụng – Tồn tại trên mọi hệ thống máy tính – Bao gồm các ô nhớ được đánh địa chỉ trực tiếp bởi CPU – Dung lượng của bộ nhớ chính trên thực tế thường nhỏ hơn không gian địa chỉ bộ nhớ mà CPU có thể quản lý. – Việc quản lý logic bộ nhớ chính tuỳ thuộc vào hệ điều hành người lập trình chỉ sử dụng bộ nhớ logic. • Tổ chức bộ nhớ đan xen (interleaved memory) – Độ rộng của bus dữ liệu để trao đổi với bộ nhớ: m = 8, 16, 32, 64,128 bit ... – Các ô nhớ được tổ chức theo byte  tổ chức bộ nhớ vật lý khác nhau – m=8 bit  một băng nhớ tuyến tính Bộ nhớ chính 10/01/2017 30 • Tổ chức bộ nhớ đan xen (tiếp) – m = 16 bit  hai băng nhớ đan xen Bộ nhớ chính • Tổ chức bộ nhớ đan xen (tiếp) – m = 32 bit  bốn băng nhớ đan xen Bộ nhớ chính • Tổ chức bộ nhớ đan xen (tiếp) – m = 64 bit  tám băng nhớ đan xen Bộ nhớ chính 10/01/2017 31 Bộ nhớ cache • Nguyên tắc chung của cache – Nguyên lý cục bộ : Một chương trình thường sử dụng 90% thời gian chỉ để thi hành 10% câu lệnh – Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ truy cập bộ nhớ của CPU – Ví dụ: • Cấu trúc chương trình tuần tự • Vòng lặp có thân nhỏ • Cấu trúc dữ liệu mảng • Thao tác trên bộ nhớ cache – CPU yêu cầu nội dung của ô nhớ – CPU kiểm tra trên cache với dữ liệu này – Nếu có, CPU nhận dữ liệu từ cache (nhanh) – Nếu không có thực hiện 2 bước sau: • Đọc Block chứa dữ liệu từ bộ nhớ chính vào cache (chậm hơn) • Chuyển dữ liệu từ cache vào CPU Bộ nhớ cache • Cấu trúc chung của cache – Bộ nhớ chính có 2N byte nhớ • Bộ nhớ chính và cache được chia thành các khối có kích thước bằng nhau • Bộ nhớ chính: B0, B1, B2, ... , Bp-1 (p Blocks) • Bộ nhớ cache: L0, L1, L2, ... , Lm-1 (m Lines) • Kích thước của Block = 8,16,32,64,128 byte Bộ nhớ cache 10/01/2017 32 • Cấu trúc chung của cache (tiếp) – Một số Block của bộ nhớ chính được nạp vào các Line của cache. – Nội dung Tag (thẻ nhớ) cho biết Block nào của bộ nhớ chính hiện đang được chứa ở Line đó. – Khi CPU truy cập (đọc/ghi) một từ nhớ, có hai khả năng xảy ra: • Từ nhớ đó có trong cache (cache hit) • Từ nhớ đó không có trong cache (cache miss) Bộ nhớ cache • Tổ chức bộ nhớ cache – Kích thước cache • Cache càng lớn càng hiệu quả nhưng đắt tiền • Cần nhiều thời gian để giải mã và truy cập – Kỹ thuật ánh xạ : Phương pháp xác định vị trí dữ liệu trong cache • Ánh xạ trực tiếp (Direct mapping) • Ánh xạ kết hợp toàn phần (Fully associative mapping) • Ánh xạ kết hợp theo bộ (Set associative mapping) – Giải thuật thay thế • Phương pháp chọn lựa vùng nhớ nào lưu trong cache để tăng hiệu suất sử dụng cache Bộ nhớ cache • Ánh xạ trực tiếp – Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một Line của cache: • B0 L0 • B1 L1 • .... • Bm-1  Lm-1 • Bm L0 • Bm+1 L1 • .... – Tổng quát • Bj chỉ có thể nạp vào L(j mod m) • m là số Line của cache. Bộ nhớ cache Cache line Main Memory blocks s 0 0, m, 2m, 3m2s–m 1 1, m+1, 2m+12s–m+1 m–1 m–1, 2m–1, 3m–12s–1 10/01/2017 33 • Ánh xạ trực tiếp (tiếp) Bộ nhớ cache • Đặ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 vùng: • Vù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 • Vùng Line gồm L bit xác định một trong số các Line trong cache: – 2L = số Line trong cache = m • Vùng Tag gồm T bit: – T = N - (W+L) – Bộ so sánh đơn giản – Giá thành rẻ – Tỷ lệ cache hit thấp (vd: 2 block cùng map vào 1 line) Bộ nhớ cache 10/01/2017 34 • Ánh xạ kết hợp toàn phần – Mỗi Block có thể nạp vào bất kỳ Line nào của cache. – Địa chỉ của bộ nhớ chính bao gồm hai vùng: • Vùng Word giống như trường hợp ánh xạ trực tiếp. • Vùng Tag dùng để xác định Block của bộ nhớ chính. – Tag xác định Block đang nằm ở Line đó • Đặc điểm – So sánh đồng thời Block nhớ với tất cả các Tag  mất nhiều thời gian – Tỷ lệ cache hit cao. – Bộ so sánh phức tạp. Bộ nhớ cache • Ánh xạ kết hợp toàn phần (tiếp) Bộ nhớ cache 10/01/2017 35 • Ánh xạ kết hợp theo bộ – Cache đươc chia thành các bộ (Set) – Mỗi một Set chứa một số Line – Ví dụ: • 4 Line/Set  4-way associative mapping – Ánh xạ theo nguyên tắc sau: • B0 S0 • B1 S1 • B2 S2 • ....... Bộ nhớ cache • Ánh xạ kết hợp theo bộ (tiếp) Bộ nhớ cache 10/01/2017 36 • Đặc điểm ánh xạ kết hợp theo bộ – Kích thước Block = 2W Word – Vùng Set có S bit dùng để xác định một trong số V = 2S Set (dùng để xác định Set nào trong cache) – Vùng Tag có T bit: T = N - (W+S) dùng để xác định Line nào có trong Set – Mỗi Block bộ nhớ có thể ánh xạ vào Line bất kỳ trong 1 Set tương ứng – Là phương pháp tổng hợp từ hai phương pháp trên – Thông thường sử dụng 2, 4, 8, 16 Lines/Set Bộ nhớ cache • Ví dụ về ánh xạ địa chỉ – Không gian địa chỉ bộ nhớ chính = 4GB – Dung lượng bộ nhớ cache là 256KB – Kích thước Line (Block) = 32byte. – Xác định số bit của các trường địa chỉ cho ba trường hợp tổ chức: • Direct mapping • Fully associative mapping • 4-way set associative mapping Bộ nhớ cache • Ví dụ: Direct mapping – Bộ nhớ chính : 4GB = 232 byte  N = 32 bit – Cache : 256 KB = 218 byte. – Line : 32 byte = 25 byte W = 5 bit – Line trong cache : 218/ 25 = 213 Line  L = 13 bit – T = 32 - (13 + 5) = 14 bit Bộ nhớ cache 10/01/2017 37 • Ví dụ: Fully associative mapping – Bộ nhớ chính : 4GB = 232 byte  N = 32 bit – Line : 32 byte = 25 byte W = 5 bit – Số bit của vùng Tag : T = 32 - 5 = 27 bit Bộ nhớ cache • Ví dụ: 4-way set associative mapping – Bộ nhớ chính : 4GB = 232 byte  N = 32 bit – Line : 32 byte = 25 byte W = 5 bit – Line trong cache = 218/ 25 = 213 Line – Một Set có 4 Line = 22 Line – Set trong cache = 213/ 22 = 211 Set  S = 11 bit – Số bit của vùng Tag : T = 32 - (11 + 5) = 16 bit Bộ nhớ cache • Giải thuật thay thế cache – Mục đích: Giải thuật thay thế dùng để xác định Line nào trong cache sẽ được chọn để đưa dữ liệu vào cache khi không còn chỗ trống – Thường được cài đặt bằng phần cứng để tăng tốc độ xử lý – Đối với ánh xạ trực tiếp: • Không phải lựa chọn • Mỗi Block chỉ ánh xạ vào một Line xác định Bộ nhớ cache 10/01/2017 38 • Giải thuật thay thế với ánh xạ kết hợp – FIFO (First In First Out): Thay thế Block nào nằm lâu nhất ở trong Set đó – LFU (Least Frequently Used): Thay thế Block nào trong Set có số lần truy cập ít nhất trong cùng một khoảng thời gian – LRU (Least Recently Used): Thay thế Block ở trong Set tương ứng có thời gian lâu nhất không được tham chiếu tới. – Giải thuật tối ưu nhất: LRU Bộ nhớ cache • Đặc điểm ghi dữ liệu ra cache – Chỉ ghi vào 1 block trong cache khi nội dung trong bộ nhớ chính thay đổi – Nếu CPU ghi ra cache, ô nhớ tương ứng bị lạc hậu (invalid)  cần update ra BN chính. Ngược lại, nếu ghi vào BN chính, nội dung trong cache sẽ bị invalid  cần update lại cache – Trong hệ đa xử lý có nhiều CPU với cache riêng, khi ghi vào 1 cache, các cache khác sẽ bị invalid Bộ nhớ cache • Phương pháp ghi dữ liệu khi cache hit – Write-through: • Ghi cả cache và cả bộ nhớ chính • Tốc độ chậm • Cho phép CPU khác hoặc IO truy cập dữ liệu đã ghi từ BN – Write-back: • Chỉ ghi ra cache • Tốc độ nhanh • CPU khác hoặc IO không đọc được dữ liệu mới trong BN • Khi Block trong cache bị thay thế cần phải ghi Block này về bộ nhớ chính Bộ nhớ cache 10/01/2017 39 • Cache tách biệt và cache đồng nhất – Cache tách biệt (Split Cache): Tổ chức cache riêng cho dữ liệu và cache riêng cho lệnh chương trình • Tối ưu cho từng loại cache • Hỗ trợ kiến trúc pipeline • Phần cứng phức tạp – Cache đồng nhất (Unified Cache): Sử dụng 1 cache chung cho cả dữ liệu lẫn lệnh chương trình • Cân bằng về tỷ lệ cache hit • Phần cứng đơn giản Bộ nhớ cache • Ví dụ: Hệ thống cache trong CPU Intel Pentium 4 Bộ nhớ cache • Ví dụ: Hệ thống cache trong CPU Intel Core i7 Bộ nhớ cache 10/01/2017 40 Bộ nhớ ngoài • Các kiểu bộ nhớ ngoài – Trống từ (Drum): Ngày nay không còn sử dụng – Băng từ (Tape): Chuyên dùng cho backup dữ liệu – Đĩa từ: Đang sử dụng rộng rãi nhất – Đĩa quang: Dùng để trao đổi dữ liệu giữa các máy tính và phân phối phần mềm – Flash Disk: Loại bộ nhớ bán dẫn gắn ngoài qua cổng USB, nhỏ gọn và thuận tiện để trao đổi dữ liệu – SSD (Solid State Disk): Cũng là bộ nhớ bán dẫn có dung lượng lớn giao tiếp với máy tính tương tự ổ đĩa cứng, tốc độ truy cập cao, ít tốn điện, không ồn, chống sốc tốt  rất phù hợp với máy xách tay. Nhược điểm giá thành đắt. • Đĩa từ – Bao gồm đĩa mềm (floppy disk) và đĩa cứng (hard disk) – Các đặc tính đĩa từ • Đầu từ cố định hay đầu từ di động • Đĩa cố định hay thay đổi được (removable) • Một mặt hay hai mặt • Một tấm đĩa (đĩa mềm) hay nhiều tấm đĩa (đĩa cứng) • Cơ chế đầu từ – Tiếp xúc (đĩa mềm) – Không tiếp xúc Bộ nhớ ngoài • Đĩa từ (tiếp) – Đĩa mềm • 8”, 5.25”, 3.5” • Dung lượng nhỏ: chỉ tới 1.44MB • Tốc độ chậm • Hiện nay không sản xuất nữa – Đĩa cứng • Thường có nhiều tấm đĩa • Đang sử dụng rộng rãi • Dung lượng lớn (hiện nay có ổ 3TB – 2011) • Tốc độ đọc/ghi nhanh • Rẻ tiền Bộ nhớ ngoài 10/01/2017 41 • Cấu trúc vật lý đĩa cứng – Mặt đĩa – Track (cylinder) – Sector Bộ nhớ ngoài • Cấu trúc vật lý đĩa cứng (tiếp) Bộ nhớ ngoài • Track là các vòng tròn đồng tâm • Đơn vị đọc ghi: từng sector (~ 512Byte), có thể đọc ghi theo block nhiều sector (cluster) • Thời gian đọc ghi: • Seek time • Latency time • Transfer time • Đĩa quay với vận tốc góc không đổi CAV (constant angular velocity) • Cấu trúc vật lý đĩa cứng (tiếp) – Longitudial recording: Ghi tuyến tính – Perpendicular recording: Ghi trực giao – Cluster: Một bộ gồm nhiều sector Bộ nhớ ngoài 10/01/2017 42 • Định dạng sector Bộ nhớ ngoài • Kỹ thuật RAID – RAID: Redundant Array of Independent Disks – Ghép nhiều ổ đĩa vật lý để truy cập như 1 ổ luận lý • Tăng tốc độ truy cập (đọc ghi luân phiên và song song) • Tăng độ an toàn dữ liệu khi đĩa hư hỏng (ghi dư thừa hoặc ghi thêm thông tin ECC/parity) • Tăng dung lượng tối đa của đơn vị lưu trữ (nhiều đĩa) – Hiện có 7 loại thông dụng: RAID0 – RAID6 Bộ nhớ ngoài • RAID 0, 1 và 2 Bộ nhớ ngoài 10/01/2017 43 • RAID 3 và 4 Bộ nhớ ngoài • RAID 5 và 6 Bộ nhớ ngoài • Tóm tắt kỹ thuật RAID Bộ nhớ ngoài 10/01/2017 44 • Đĩa quang (optical disk) – CD (compact disk) • Khả năng đọc/ghi: CD-ROM, CD-R, CD-RW • Đường kính: 12cm, 8cm • Dung lượng: 700MB, 200MB • Track: Ghi theo các vòng hướng tâm, tốc độ dài không đổi CLV (constant linear velocity) • Tốc độ đọc ghi: 1x – 52x (1x= ??) • Chuẩn định dạng: ISO 9660, UDF (Universal Disk Format) Bộ nhớ ngoài • Đĩa quang (tiếp) – DVD (Digital Versatile Disk): Loại đĩa dung lượng cao (so với CD), xuất phát từ đĩa phim video (Digital Video Disk) – Khả năng đọc ghi: DVD-ROM, DVD±R, DVD±RW, DVD-RAM – Số mặt/ số lớp: 1-2 mặt, 1-2 lớp/mặt – Đường kính: 12cm, 8cm – Tốc độ: 1x – 24x (1x=?) – Đĩa DVD dung lượng cao • HD-DVD (15-60GB) • Blue ray (25-50GB) Bộ nhớ ngoài Sides Layers Diameter (cm) Capacity (GB) 1 1 8 1.46 1 2 8 2.66 2 2 8 2.92 2 4 8 5.32 1 1 12 4.7 1 2 12 8.54 2 2 12 9.4 2 4 12 17.08 Bộ nhớ ảo • Bộ nhớ thật – Không gian địa chỉ trong chương trình trùng với không gian địa chỉ trong bộ nhớ. Cho phép người lập trình truy cập trực tiếp vào 1 ô nhớ  Khó bảo vệ bộ nhớ. – Khi thi hành, hệ điều hành nạp toàn bộ chương trình vào bộ nhớ (nạp trước)  bộ nhớ máy tính phải đủ lớn để chạy các CT lớn – Chương trình được cấp phát 1 vùng nhớ có địa chỉ liên tục (cấp phát liên tục). HĐH sẽ thu hồi vùng nhớ sau khi chương trình kết thúc – Để thực hiện đa chương, HĐH cần chia BN ra nhiều vùng (partition), mỗi vùng cấp phát cho 1 CT – Khi bộ nhớ đầy • HĐH không cấp tiếp, các CT phải chờ đến khi có 1 vùng nhớ trống • HĐH cấp tiếp: Cần kỹ thuật tráo đổi (swapping) để ghi tạm vùng nhớ của 1 CT khác ra BN ngoài, lấy chỗ trống cấp cho CT mới 10/01/2017 45 • Bộ nhớ thật (tiếp) Bộ nhớ ảo • Bộ nhớ ảo (Virtual Memory) – Không gian địa chỉ trong CT (địa chỉ ảo) được tách biệt với không gian địa chỉ trong BN (địa chỉ thực)  CPU và HĐH sẽ phối hợp để ánh xạ (mapping) địa chỉ ảo trong CT thành địa chỉ thật trong BN – Việc ánh xạ và quản lý BN ảo được thực hiện qua đơn vị MMU (Memory Management Unit) Bộ nhớ ảo • Bộ nhớ ảo (tiếp) – Khi thi hành, hệ điều hành chỉ nạp các phần cần thiết của CT vào bộ nhớ (nạp theo yêu cầu), không cần nạp toàn bộ CT  tránh lãng phí BN – Các CT được cấp phát nhiều vùng nhớ có địa chỉ tách biệt nhau (cấp phát không liên tục). – Sử dụng kỹ thuật tráo đổi (swapping) để ghi tạm thời các vùng nhớ chưa cần đến ra BN ngoài (swap-out) để lấy chỗ trống nạp thông tin cần thiết vào BN (swap-in) khi cần đến – BN ngoài thông dụng là đĩa cứng – Có 2 kỹ thuật BN ảo: • Kỹ thuật phân trang : Kích thước các vùng nhớ cố định • Kỹ thuật phân đoạn : Kích thước các vùng nhớ thay đổi Bộ nhớ ảo 10/01/2017 46 • Kỹ thuật phân trang (paging) – Không gian địa chỉ ảo trong CT được chia đều ra các trang ảo (virtual page, gọi tắt là page) có kích thước bằng nhau, mỗi trang là 1 đơn vị cấp phát BN của HĐH – Không gian địa chỉ thật trong BN cũng được chia đều thành các khung trang (page frame, gọi tắt là frame) có kích thước bằng 1 trang (thường là 4KB) – Khi có yêu cầu cấp phát BN, HĐH có thể nạp 1 trang theo yêu cầu vào bất cứ frame nào trong BN thật – Khi CT truy cập vào 1 trang chưa được cấp phát sẽ gây ra lỗi trang (page fault)  HĐH phải xử lý bằng cách swapping với 1 trang khác chưa cần sử dụng đến (chậm) – HĐH cần 1 bảng quản lý để theo dõi trang nào đang được nạp vào frame nào trong BN cho mỗi CT, gọi là bảng trang (page table) Bộ nhớ ảo • Kỹ thuật phân trang (tiếp) Bộ nhớ ảo • Ví dụ về BN phân trang – BN ảo trong CT gồm 64KB được chia ra 16 trang, mỗi trang 4KB – BN thực gồm 32KB được chia ra 8 frame – BN đang được cấp phát như thể hiện trong bảng trang Bộ nhớ ảo Bài tập: Hãy tính địa chỉ thật từ các địa chỉ ảo • 10.000 • 20.000 • 30.000 10/01/2017 47 • Kỹ thuật phân đoạn (segmentation) – Quan điểm người lập trình về BN • Chương trình bao gồm nhiều module • Dữ liệu bao gồm nhiều array, chuỗi, • Khi truy cập sẽ căn cứ vào địa chỉ tương đối của module (lệnh thứ mấy) hay array (phần tử thứ mấy) Bộ nhớ ảo • Kỹ thuật phân đoạn (tiếp) – HĐH sẽ cấp phát BN theo từng đoạn (segment) có kích thước theo yêu cầu lập trình, người lập trình truy cập BN theo offset trong từng segment – Địa chỉ ảo có dạng (segment, offset) – Khi có yêu cầu cấp phát BN, HĐH có thể nạp 1 segment theo yêu cầu vào vùng trống trong BN thật. Nếu không có vùng trống đủ lớn HĐH cần dồn BN để tạo ra vùng trống đủ lớn. – Khi CT truy cập vào 1 segment chưa được cấp phát sẽ gây ra lỗi segment (segment fault)  HĐH phải xử lý bằng cách swapping với 1 hoặc vài segment khác chưa cần sử dụng đến (chậm) – HĐH cần 1 bảng quản lý để theo dõi segment nào đang được nạp vào vị trí nào trong BN cho mỗi CT, gọi là bảng segment (segment table) Bộ nhớ ảo • Ví dụ về BN phân đoạn Bộ nhớ ảo Ban đầu S1 swap-out S4 swap-out S3 swap-out Dồn bộ nhớ S7 swap-in S5 swap-in S6 swap-in 10/01/2017 48 • Tổng quát việc truy cập bộ nhớ trong máy tính Bộ nhớ ảo • Ưu điểm BN ảo – Cho phép CT lớn hơn BN vẫn chạy được – Chỉ nạp phần CT nào cần đến vào BN  tiết kiệm BN • Nhược điểm BN ảo – Tăng phí tổn hệ thống (overhead): Tốn thời gian tính toán địa chỉ ảo sang địa chỉ thật, tốn không gian BN chứa bảng trang/ segment – Truy cập BN chậm hơn so với quản lý BN thực: Cần gấp đôi thời gian truy cập BN. Khi có page/ segment fault việc truy cập BN biến thành truy cập IO • Cách khắc phục – Cần phần cứng đặc biệt hỗ trợ HĐH để quản lý BN – Cần giải thuật thay trang/ segment tối ưu Bộ nhớ ảo • Ví dụ: BN ảo trong CPU Intel Pentium 4 – Phân segment kết hợp phân trang 2 cấp • Phân segment: Segment 16 bit, Offset: 32 bit. • Phân trang: Địa chỉ tuyến tính 32 bit chia ra: Directory 10 bit, page 10 bit và offset 12 bit (4KB/trang) Bộ nhớ ảo 10/01/2017 49 Hệ thống IO (Input Output System) Nội dung • Tổng quan về hệ thống IO • Điều khiển IO • Nối ghép thiết bị ngoại vi • Các thiết bị ngoại vi thông dụng Tổng quan về hệ thống IO • Giới thiệu chung – Chức năng của hệ thống IO: 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: • Nhập dữ liệu (Input) • Xuất dữ liệu (Output) – Các thành phần chính: • Các thiết bị ngoại vi • Các mô-đun IO (IO module) – Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAM Cần có các mô-đun IO để nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính 10/01/2017 50 • Cấu trúc cơ bản của hệ thống IO Tổng quan về hệ thống IO • 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 – Phân loại: • Thiết bị ngoại vi giao tiếp người-máy (người đọc): Bàn phím, Màn hình, Máy in,... • Thiết bị ngoại vi giao tiếp máy-máy (máy đọc): Đĩa cứng, CDROM, USB, • Thiết bị ngoại vi truyền thông: Modem, Network Interface Card (NIC) Tổng quan về hệ thống IO • Tốc độ 1 số TBNV Tổng quan về hệ thống IO 10/01/2017 51 • Các thành phần 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 ngoài và bên trong máy tính – Bộ đệm dữ liệu: đệm dữ liệu khi truyền giữa mô-đun IO và thiết bị ngoại vi – Khối logic điều khiển: điều khiển hoạt động của thiết bị ngoại vi đáp ứng theo yêu cầu từ mô-đun IO Tổng quan về hệ thống IO • Chức năng của mô-đun IO: – Điều khiển và định thời – Trao đổi thông tin với CPU hoặc bộ nhớ chính – Trao đổi thông tin với thiết bị ngoại vi – Đệm giữa bên trong máy tính với thiết bị ngoại vi – Phát hiện lỗi của thiết bị ngoại vi Tổng quan về hệ thống IO • Không gian địa chỉ của CPU – Một số CPU quản lý duy nhất một không gian địa chỉ: • Không gian địa chỉ bộ nhớ: 2M địa chỉ – Một số CPU quản lý hai không gian địa chỉ tách biệt: • Không gian địa chỉ bộ nhớ: 2M địa chỉ • Không gian địa chỉ IO: 2I địa chỉ • Có tín hiệu điều khiển phân biệt truy nhập không gian địa chỉ • Tập lệnh có các lệnh IO chuyên dụng – Ví dụ: CPU Intel Pentium 4 • Không gian địa chỉ bộ nhớ = 236 byte = 64GB • Không gian địa chỉ IO = 216 byte = 64KB • Lệnh IO chuyên dụng: IN, OUT Tổng quan về hệ thống IO 10/01/2017 52 • Các phương pháp địa chỉ hoá cổng IO – IO riêng biệt (Isolated IO, IO mapped IO) • Cổng IO được đánh địa chỉ theo không gian địa chỉ IO • CPU trao đổi dữ liệu với cổng IO thông qua các lệnh IO chuyên dụng (IN, OUT) • Chỉ có thể thực hiện trên các hệ thống có quản lý không gian địa chỉ IO riêng biệt – IO theo bộ nhớ (Memory mapped IO) • Cổng IO được đánh địa chỉ theo không gian địa chỉ bộ nhớ • IO giống như đọc/ghi bộ nhớ • CPU trao đổi dữ liệu với cổng IO thông qua các lệnh truy nhập dữ liệu bộ nhớ • Có thể thực hiện trên mọi hệ thống Tổng quan về hệ thống IO • Ví dụ: So sánh 2 phương pháp IO Tổng quan về hệ thống IO • Các phương pháp điều khiển IO – IO bằng chương trình (Programmed IO) – IO điều khiển bằng ngắt (Interrupt Driven IO) – Truy nhập bộ nhớ trực tiếp DMA (Direct Memory Access) Điều khiển IO 10/01/2017 53 Điều khiển IO • IO bằng chương trình – Nguyên tắc chung: CPU điều khiển trực tiếp IO bằng chương trình  cần phải lập trình IO. – Với IO riêng biệt: sử dụng các lệnh IO chuyên dụng (IN, OUT). – Với IO theo bản đồ bộ nhớ: sử dụng các lệnh trao đổi dữ liệu với bộ nhớ để trao đổi dữ liệu với cổng IO. Điều khiển IO • Các tín hiệu điều khiển IO – Tín hiệu điều khiển (Control): kích hoạt & khởi động thiết bị ngoại vi – Tín hiệu kiểm tra (Test): kiểm tra trạng thái của mô- đun IO và thiết bị ngoại vi – Tín hiệu điều khiển đọc (Read): yêu cầu môđun IO nhận dữ liệu từ thiết bị ngoại vi và đưa vào thanh ghi đệm dữ liệu, rồi CPU nhận dữ liệu đó – Tín hiệu điều khiển ghi (Write): yêu cầu môđun IO lấy dữ liệu trên bus dữ liệu đưa đến thanh ghi đệm dữ liệu rồi chuyển ra thiết bị ngoại vi Điều khiển IO 10/01/2017 54 • Hoạt động của IO bằng chương trình – CPU yêu cầu thao tác IO – Mô-đun IO thực hiện thao tác – Mô-đun IO thiết lập các bit trạng thái – CPU kiểm tra các bit trạng thái: • Nếu chưa sẵn sàng thì quay lại kiểm tra • Nếu sẵn sàng thì chuyển sang trao đổi dữ liệu với mô-đun IO • Đặc điểm – IO do ý muốn của người lập trình – CPU trực tiếp điều khiển IO – CPU đợi mô-đun IO  tiêu tốn thời gian của CPU Điều khiển IO • IO điều khiển bằng ngắt – Sau khi gửi yêu cầu IO, CPU không phải đợi trạng thái sẵn sàng của mô-đun IO, CPU thực hiện một chương trình nào đó – Khi mô-đun IO sẵn sàng thì nó phát tín hiệu ngắt CPU – CPU thực hiện chương trình con IO tương ứng để trao đổi dữ liệu (trình xử lý ngắt) – CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt Điều khiển IO • Hoạt động nhập dữ liệu: nhìn từ mô-đun IO – Mô-đun IO nhận tín hiệu điều khiển đọc từ CPU – Mô-đun IO nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác – Khi đã có dữ liệu  mô-đun IO phát tín hiệu ngắt CPU – CPU yêu cầu dữ liệu – Mô-đun IO chuyển dữ liệu đến CPU Điều khiển IO 10/01/2017 55 • Hoạt động nhập dữ liệu: nhìn từ CPU – Phát tín hiệu điều khiển đọc – Làm việc khác – Cuối mỗi chu trình lệnh, kiểm tra tín hiệu ngắt – Nếu bị ngắt: • Cất ngữ cảnh (nội dung các thanh ghi) • Thực hiện chương trình con ngắt để nhập dữ liệu • Khôi phục ngữ cảnh của chương trình đang thực hiện Điều khiển IO • Các vấn đề nảy sinh khi có ngắt: – Xác định được mô-đun IO nào phát tín hiệu ngắt ? – Có nhiều yêu cầu ngắt cùng xảy ra ? • Các phương pháp nối ghép ngắt – Sử dụng nhiều đường yêu cầu ngắt – Hỏi vòng bằng phần mềm (Software Poll) – Hỏi vòng bằng phần cứng (Daisy Chain or Hardware Poll) – Sử dụng bộ điều khiển ngắt lập trình được PIC (Programmable Interrupt Controller) Điều khiển IO • Nhiều đường yêu cầu ngắt – Mỗi mô-đun IO được nối với một đường yêu cầu ngắt – CPU phải có nhiều đường tín hiệu yêu cầu ngắt – Hạn chế số lượng mô-đun IO – Các đường ngắt được qui định mức ưu tiên Điều khiển IO 10/01/2017 56 • Hỏi vòng bằng phần mềm – CPU thực hiện phần mềm hỏi lần lượt từng mô- đun IO – Chậm – Thứ tự các mô-đun được hỏi vòng chính là thứ tự ưu tiên Điều khiển IO • Hỏi vòng bằng phần cứng – CPU phát tín hiệu chấp nhận ngắt (INTA) đến mô-đun IO đầu tiên – Nếu mô-đun IO đó không gây ra ngắt thì nó gửi tín hiệu đến mô-đun kế tiếp cho đến khi xác định được mô-đun gây ngắt – Thứ tự các mô-đun IO kết nối trong chuỗi xác định thứ tự ưu tiên Điều khiển IO • Bộ điều khiển ngắt lập trình được PIC – PIC có nhiều đường vào yêu cầu ngắt có qui định mức ưu tiên – PIC chọn một yêu cầu ngắt không bị cấm có mức ưu tiên cao nhất gửi tới CPU Điều khiển IO 10/01/2017 57 • Đặc điểm của IO điều khiển bằng ngắt – Có sự kết hợp giữa phần cứng và phần mềm – Phần cứng: gây ngắt CPU – Phần mềm: trao đổi dữ liệu – CPU trực tiếp điều khiển IO – CPU không phải đợi mô-đun IO  hiệu quả sử dụng CPU tốt hơn Điều khiển IO • Ví dụ: Hệ thống ngắt trên máy PC – CPU Intel x86 có 1 chân tín hiệu ngắt – PIC 8259A có 8 đường ngắt – Có thể đấu nối nhiều PIC theo chế độ master/ slaver để tăng số lượng đường ngắt phục vụ cho nhiều thiết bị • DMA (Direct Memory Access) – IO bằng chương trình và bằng ngắt do CPU trực tiếp điều khiển: • Chiếm thời gian của CPU • Tốc độ truyền bị hạn chế vì phải chuyển dữ liệu qua CPU (thanh ghi có dung lượng nhỏ) – Để khắc phục dùng DMA • Thêm mô-đun phần cứng trên bus  DMAC (DMA Controller) • DMAC điều khiển trao đổi dữ liệu giữa môđun IO với bộ nhớ chính Điều khiển IO 10/01/2017 58 • Sơ đồ cấu trúc của DMAC – Thanh ghi dữ liệu: chứa dữ liệu trao đổi – Thanh ghi địa chỉ: chứa địa chỉ ô nhớ dữ liệu – Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi – Logic điều khiển: điều khiển hoạt động của DMAC Điều khiển IO • Hoạt động DMA – CPU gửi tín hiệu cho DMAC • Vào hay Ra dữ liệu • Địa chỉ thiết bị IO (cổng IO tương ứng) • Địa chỉ đầu của mảng nhớ chứa dữ liệu  nạp vào thanh ghi địa chỉ • Số từ dữ liệu cần truyền  nạp vào bộ đếm dữ liệu – CPU làm việc khác – DMAC điều khiển trao đổi dữ liệu – Sau khi truyền được một từ dữ liệu thì: • nội dung thanh ghi địa chỉ tăng • nội dung bộ đếm dữ liệu giảm – Khi bộ đếm dữ liệu = 0, DMAC gửi tín hiệu ngắt CPU để báo kết thúc DMA Điều khiển IO • Các kiểu thực hiện DMA – DMA truyền theo khối (Block-transfer DMA): DMAC sử dụng bus để truyền xong cả khối dữ liệu – DMA lấy lén chu kỳ (Cycle Stealing DMA): DMAC cưỡng bức CPU treo tạm thời từng chu kỳ bus, DMAC chiếm bus thực hiện truyền một từ dữ liệu. – DMA trong suốt (Transparent DMA): DMAC nhận biết những chu kỳ nào CPU không sử dụng bus thì chiếm bus để trao đổi một từ dữ liệu. Điều khiển IO 10/01/2017 59 • Cấu hình DMA 1: Bus chung, DMA tách biệt – Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus hai lần • Giữa mô-đun IO với DMAC • Giữa DMAC với bộ nhớ – CPU bị treo khỏi bus 2 lần Điều khiển IO • Cấu hình DMA 2: Bus chung, DMA tích hợp – DMAC điều khiển một hoặc vài mô-đun IO – Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần • Giữa DMAC với bộ nhớ – CPU bị treo khỏi bus 1 lần Điều khiển IO Điều khiển IO • Cấu hình DMA 3: Bus IO riêng – Bus IO tách rời hỗ trợ tất cả các thiết bị cho phép DMA – Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần • Giữa DMAC với bộ nhớ – CPU bị treo khỏi bus 1 lần 10/01/2017 60 • Đặc điểm của 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ới mô-đun IO (hoàn toàn bằng phần cứng) tốc độ nhanh – Phù hợp với các yêu cầu trao đổi mảng dữ liệu có kích thước lớn (Block devices) • Phân loại TBNV – Character devices – Block devices Điều khiển IO • Ví dụ: Chip DMA trong máy PC – Intel 8237A DMA Controller – Giao tiếp với CPU Intel x86 và DRAM – Khi DMA cần bus, nó gửi tín hiệu HRQ cho CPU – CPU trả lời bằng tín hiệu HLDA – DMA bắt đầu sử dụng bus Điều khiển IO • Kênh IO (IO channel) – Việc điều khiển IO được thực hiện bởi một bộ xử lý IO chuyên dụng – Bộ xử lý IO hoạt động theo chương trình của riêng nó – Chương trình của bộ xử lý IO có thể nằm trong bộ nhớ chính hoặc nằm trong một bộ nhớ riêng – Hoạt động theo kiến trúc đa xử lý • CPU gửi yêu cầu IO cho kênh IO • Kênh IO tự thực hiện việc truyền dữ liệu Điều khiển IO 10/01/2017 61 Nối ghép thiết bị ngoại vi • Các kiểu nối ghép – Nối ghép song song (parallel) – Nối ghép nối tiếp (serial) • Nối ghép song song – Truyền nhiều bit song song – Cần nhiều đường truyền dữ liệu – Tốc độ nhanh – Dễ bị nhiễu giữa các tín hiệu • Nối ghép nối tiếp – Truyền lần lượt từng bit – Cần có bộ chuyển đổi từ dữ liệu song song sang nối tiếp hoặc/và ngược lại – Cần ít đường truyền dữ liệu – Tốc độ chậm hơn Nối ghép thiết bị ngoại vi • Các cấu hình nối ghép – Điểm tới điểm (Point to Point) • Mỗi cổng IO nối ghép với một thiết bị ngoại vi • Ví dụ: – SATA (Serial ATA) – SAS (Serial Atache SCSI) – Điểm tới đa điểm (Point to Multipoint) • Mỗi cổng IO cho phép nối ghép với nhiều thiết bị ngoại vi • Ví dụ: – SCSI (Small Computer System Interface): 7 hoặc 15 thiết bị – USB (Universal Serial Bus): 127 thiết bị – IEEE 1394 (FireWire): 63 thiết bị Nối ghép thiết bị ngoại vi 10/01/2017 62 • Ví dụ: Các cổng nối ghép ngoại vi trên PC – PS/2: nối ghép bàn phím và chuột – MiniDIN 6 chân – RJ45: nối ghép mạng – LPT (Line Printer): nối ghép với máy in, là cổng song song (Parallel Port) – 25 chân – COM (Communication): nối ghép với Modem, là cổng nối tiếp (Serial Port) - 9 hoặc 25 chân – USB (Universal Serial Bus): Cổng nối tiếp đa năng, cho phép nối ghép tối đa 127 thiết bị Nối ghép thiết bị ngoại vi • Ví dụ: Các cổng nối ghép trên card màn hình – VGA: Cổng nối ghép màn hình Analog– 15 chân – DVI: Cổng nối ghép màn hình Digital – S-Video – HDMI Nối ghép thiết bị ngoại vi • Ví dụ: Hệ thống bus ngoại vi trên máy PC Nối ghép thiết bị ngoại vi 10/01/2017 63 • Hệ thống bus ngoại vi trên máy PC (tiếp) – ISA (Industry Standard Architecture): Sử dụng trên máy PC 8086 (8 bit) và AT 80286 (16 bit) – MCA (Micro Channel Architecture): Sử dụng trên máy 80386 của IBM (32 bit) – EISA (Extended ISA) Sử dụng trên các máy 80386 tương thích (32 bit) – VL bus (VESA Local bus): Sử dụng trên các máy 80486 (32 bit) Nối ghép thiết bị ngoại vi • Hệ thống bus ngoại vi trên máy PC (tiếp) – AGP (Accelerated Graphics Port): Bus dành riêng cho card màn hình trên máy Pentium. Bao gồm các mức tốc độ 1x, 2x, 4x và 8x (1x=266MB/s). – PCI (Peripheral Component Interconnect): Sử dụng trên các máy Pentium (32 & 64 bit) • PCI-X: Sử dụng tần số xung nhịp cao hơn (66-133 MHz) so với PCI 33 MHz • PCI-E (PCI-Express): Cho phép truyền dữ liệu tốc độ cao, được sử dụng trong các máy PC đời mới. Gồm nhiều mức tốc độ: 1x, 2x, , 32x (1x: 1 Lane có 4 đường truyền nối tiếp 250 MB/s) Nối ghép thiết bị ngoại vi • Các cổng điều khiển đĩa – Đĩa mềm : Dùng cáp 34 chân kết nối tối đa 2 ổ mềm – Đĩa cứng/CD/DVD/SSD : • Chuẩn ST506 • Chuẩn ESDI • Chuẩn IDE/UDMA/PATA • Chuẩn SCSI • Chuẩn SATA • Chuẩn SAS Nối ghép thiết bị ngoại vi 10/01/2017 64 Các thiết bị ngoại vi thông dụng • Thiết bị nhập – Bàn phím, chuột, scanner, digitizer, micro, đọc vân tay, đọc bar-code, camera, • Thiết bị xuất – Màn hình, máy in, máy vẽ, loa, projector, • Thiết bị mạng & truyền thông – Modem, Router, • Thiết bị lưu trữ – Đĩa mềm, đĩa cứng, SSD, CD, DVD, thẻ nhớ, Chuong 2 : Tổ chức CPU 191 Cahï hoûi ohn taäê • Bïí æaø ár? Troná caùc æoaïi Bïí, Bïí naøo æaø Bïí 2 chiefï. • Cho 1 oh nhzù coù ñòa chæ vaät æyù æaø 1256Â, cho bieát ñòa chæ daïná íeáment:offíet vzùi caùc ñoaïn 1256Â vaø 1240Â. • OÂ nhzù coù ñòa chæ vaät æyù 80FD2Â, zû troná ñoaïn naøo thr noù coù offíet = BFD2Â? • Xaùc ñònh ñòa chæ vaät æyù cïûa oh nhzù coù ñòa chæ æoáic 0A51Â:CD90Â Chuong 2 : Tổ chức CPU 192 Cahï hoûi ohn taäê • Theá naøo æaø biehn áizùi ñoaïn? • Sö ï åhaùc nhaï cz baûn áiö õa boä vi òö û æyù 8086 vaø 80286? • Thïyeát minh trrnh tö ï CPU thö ïc hieän cahï æeänh Mem(b)  Not Mem(a) • Chï åyø æeänh, chï åyø maùy. Cho bieát qïan heä áiö õa chï åyø cæocå, chï åyø maùy vaø chï åyø æeänh. • Qïan heä áiö õa taäê æeänh vaø åieán trïùc cïûa CPU 10/01/2017 65 Chuong 2 : Tổ chức CPU 193 Cahï hoûi ohn taäê • Giaûi thích taïi íao åhi taêná tafn íoá òïná cæocå, áiaûm chï åyø ñait ítate cïûa boä nhzù, thehm cache cho CPU æaïi æaøm cho heä thoáná chaïy vzùi hieäï íïaát cao hzn. ? • Trrnh baøy chieán æö zïc chính æö ï trö õ thohná tin troná Cache? • Tính toác ñoä chïyeån áiao dö õ æieäï cïûa maùy tính coù CPU 486DX-66MÂz vaø maùy Pentiïm 100MÂz. • Phahn bieät RISC vaø CISC. • Trrnh baøy cz cheá ñö zøná oáná troná thö ïc thi cïûa CPU Chuong 2 : Tổ chức CPU 194 BÀI TẬP Bài 1 : Cho biết giá trị chuổi ‘XY’ được lưu trữ trong MT dướI dạng số hex và dạng số bin? Bài 2 : Cho biết giá trị ở hệ 10 của các số nguyên có dấu sau : a.10000000b b.01111111b Bài 3 : Cho đoạn code sau : MOV AH,7F INT 20H MOV AX,1234 Hãy cho biết giá trị của MOV BH,AL các thanh ghi AX,BX ? MOV BL,AH Chuong 2 : Tổ chức CPU 195 BÀI TẬP Bài 4: Cho đoạn code sau : MOV AL,81 ADD AL, 0FE INT 20H Giả sử các số đều là số có dấu. Giải thích kết quả chứa trong thanh ghi AL khi đoạn code trên được thực thi. Sử dụng giá trị ở hệ 10 để giải thích. 10/01/2017 66 Chuong 2 : Tổ chức CPU 196 BÀI TẬP Bài 5: Giả sử thanh ghi trong MT của bạn dài 24 bits, cho biết giá trị của số dương lớn nhất mà thanh ghi này có thể chứa ở 2 hệ 2 và hệ 16? Bài 6 : Biến đổI địa chỉ sau thành địa chỉ tuyệt đối a. 0950:0100 b. 08F1:0200 Câu hỏi

Các file đính kèm theo tài liệu này:

  • pdfchuong_2_bo_xu_ly_cpu_2074.pdf