Bài giảng Kiến trúc máy tính - Nguyễn Kim Khánh

GPU Architectures „ Processing is highly data-parallel „ GPUs are highly multithreaded „ Use thread switching to hide memory latency „ Less reliance on multi-level caches „ Graphics memory is wide and high-bandwidth „ Trend toward general purpose GPUs „ Heterogeneous CPU/GPU systems „ CPU for sequential code, GPU for parallel code „ Programming languages/APIs „ DirectX, OpenGL „ C for Graphics (Cg), High Level Shader Language (HLSL) „ Compute Unified Device Architecture (CUDA) Example: NVIDIA Tesla „ Streaming Processors „ Single-precision FP and integer units „ Each SP is fine-grained multithreaded „ Warp: group of 32 threads „ Executed in parallel, SIMD style „ 8 SPs × 4 clock cycles „ Hardware contexts for 24 warps „ Registers, PCs,

pdf136 trang | Chia sẻ: hachi492 | Ngày: 06/01/2022 | Lượt xem: 311 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Kiến trúc máy tính - Nguyễn Kim Khánh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thành việc đọc/ghi dữ liệu „ Hazard điều khiển: do rẽ nhánh gây ra Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 353 Hazard về cấu trúc „ Khắc phục: „ nhân tài nguyên để tránh xung đột „ Làm trễ Ví dụ: „ Bus dữ liệu: truyền lệnh và dữ liệu Æ Bus lệnh riêng, bus dữ liệu riêng (cache lệnh và cache dữ liệu) NKK-HUST Kiến trúc máy tính14 January 2013 354 Ví dụ Hazard về cấu trúc conflict on arithmetic unit cache miss TLB miss MULT A,B,C MULT D,E,F I D F E E E W I D F F F E E E W 3 clocks necessary for multiplication stall NKK-HUST Kiến trúc máy tính14 January 2013 355 Hazard về dữ liệu „ Các dạng: „ RAW (Read After Write) „ WAR (Write After Read) „ WAW (Write After Write) NKK-HUST Kiến trúc máy tính14 January 2013 356 Sự phụ thuộc về dữ liệu RAW WAR WAW ADD A,B,C ADD E,A,D ADD A,B,C ADD B,D,E ADD A,B,C ADD A,D,E Write-A must be earlier than Read-A Read-B must be earlier than Write-B First Write-A must be earlier Than second Write-A Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 357 WAR and WAW WAR WAW ADD A,B,C ADD B,D,E ADD A,B,C ADD A,D,E Read-B is earlier than Write-B first Write-A is earlier than second Write-A I D F E W I D F E W Write B Read B I D F E W I D F E W Write A Write A no conflict at in-order pipeline conflict at out-of-order pipeline NKK-HUST Kiến trúc máy tính14 January 2013 358 RAW ADD A,B,C ADD E,A,D I D F E W I D F E C I D F E W I D D D F E W Read A Write A stall Write-A must be earlier Than Read-A Write A Read A NKK-HUST Kiến trúc máy tính14 January 2013 359 Hazard điều khiển BEQ A, B, Label LOAD C, X ・・・・ Label: LOAD C, Y I D F E C I D F E C set PC stall Wait for branch address calculation next instruction to a branch instruction cannot be fetched until branch condition defined and PC updated NKK-HUST Kiến trúc máy tính14 January 2013 360 Các kiến trúc song song mức lệnh „ Siêu đường ống (Superpipeline & Hyperpipeline) „ Siêu vô hướng (Superscalar) Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 361 Superpipeline NKK-HUST Kiến trúc máy tính14 January 2013 362 Superscalar NKK-HUST Kiến trúc máy tính 6.4. Thiết kế bộ xử lý theo kiến trúc MIPS* Bộ xử lý MIPS – Chapter 4 – [2] 14 January 2013 363 NKK-HUST Kiến trúc máy tính14 January 2013 364 Hết chương 6 Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính Kiến trúc máy tính Chương 7 BỘ NHỚ MÁY TÍNH Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội NKK-HUST Kiến trúc máy tính 366„ Nội dung học phần „ Chương 1. Giới thiệu chung „ Chương 2. Cơ bản về logic số „ Chương 3. Hệ thống máy tính „ Chương 4. Số học máy tính „ Chương 5. Kiến trúc tập lệnh „ Chương 6. Cấu trúc bộ xử lý „ Chương 7. Bộ nhớ „ Chương 8. Vào-ra „ Chương 9. Các kiến trúc song song 14 January 2013 NKK-HUST Kiến trúc máy tính14 January 2013 367 7.1. Phân cấp bộ nhớ 7.2. Bộ nhớ chính 7.3. Bộ nhớ cache 7.4. Bộ nhớ ngoài 7.5. Bộ nhớ ảo Nội dung của chương 7 NKK-HUST Kiến trúc máy tính14 January 2013 368 7.1. Phân cấp bộ nhớ máy tí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ị nhớ „ Dung lượng „ Độ dài từ nhớ (tính bằng bit) „ Số lượng từ nhớ 1. Các đặc trưng của bộ nhớ máy tính Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 369 Các đặc trưng của hệ thống nhớ (tiếp) „ Đơn vị truyền „ Từ nhớ „ Khối nhớ „ Phương pháp truy nhập „ Truy nhập tuần tự (băng từ) „ Truy nhập trực tiếp (các loại đĩa) „ Truy nhập ngẫu nhiên (bộ nhớ bán dẫn) „ Truy nhập liên kết (cache) NKK-HUST Kiến trúc máy tính14 January 2013 370 Các đặc trưng của hệ thống nhớ (tiếp) „ Hiệu năng (performance) „ Thời gian truy nhập „ Chu kỳ nhớ „ Tốc độ truyền „ Kiểu vật lý „ Bộ nhớ bán dẫn „ Bộ nhớ từ „ Bộ nhớ quang NKK-HUST Kiến trúc máy tính14 January 2013 371 Các đặc trưng của hệ thống nhớ (tiếp) „ Các đặc tính vật lý „ Khả biến / Không khả biến (volatile / nonvolatile) „ Xoá được / không xoá được „ Tổ chức NKK-HUST Kiến trúc máy tính14 January 2013 372 2. Phân cấp bộ nhớ Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính Công nghệ bộ nhớ 14 January 2013 373 „ Static RAM (SRAM) „ 0.5ns – 2.5ns, $2000 – $5000 per GB „ Dynamic RAM (DRAM) „ 50ns – 70ns, $20 – $75 per GB „ Ổ đĩa từ „ 5ms – 20ms, $0.20 – $2 per GB „ Bộ nhớ lý tưởng „ Thời gian truy nhập như SRAM „ Dung lượng và giá thành như ổ đĩa cứng NKK-HUST Kiến trúc máy tính14 January 2013 374 Ví dụ hệ thống nhớ thông dụng Từ trái sang phải: „ dung lượng tăng dần „ tốc độ giảm dần „ giá thành/1bit giảm dần NKK-HUST Kiến trúc máy tính14 January 2013 375 Nguyên lý cục bộ hoá tham chiếu bộ nhớ „ Trong một khoảng thời gian đủ nhỏ CPU thường chỉ tham chiếu các thông tin trong một khối nhớ cục bộ „ Ví dụ: „ Cấu trúc chương trình tuần tự „ Vòng lặp có thân nhỏ „ Cấu trúc dữ liệu mảng NKK-HUST Kiến trúc máy tính14 January 2013 376 7.2. Bộ nhớ chính Kiểu bộ nhớ Tiêu chuẩn Khả năng xoá Cơ chế ghi Tính khả biến Read Only Memory (ROM) Bộ nhớ chỉ đọc Không xoá được Mặt nạ Không khả biến Programmable ROM (PROM) Bằng điện Erasable PROM (EPROM) Bộ nhớ hầu như chỉ đọc bằng tia cực tím, cả chip Electrically Erasable PROM (EEPROM) bằng điện, mức từng byte Flash memory Bộ nhớ đọc-ghi bằng điện, từng khối Random Access Memory (RAM) bằng điện, mức từng byte Bằng điện Khả biến 1. Bộ nhớ bán dẫn Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 377 ROM (Read Only Memory) „ Bộ nhớ không khả biến „ Lưu trữ các thông tin sau: „ Thư viện các chương trình con „ Các chương trình điều khiển hệ thống (BIOS) „ Các bảng chức năng „ Vi chương trình NKK-HUST Kiến trúc máy tính14 January 2013 378 Các kiểu ROM „ ROM mặt nạ: „ thông tin được ghi khi sản xuất „ rất đắt „ PROM (Programmable ROM) „ Cần thiết bị chuyên dụng để ghi bằng chương trình Æ chỉ ghi được một lần „ EPROM (Erasable PROM) „ Cần thiết bị chuyên dụng để ghi bằng chương trình Æ ghi được nhiều lần „ Trước khi ghi lại, xóa bằng tia cực tím NKK-HUST Kiến trúc máy tính14 January 2013 379 Các kiểu ROM (tiếp) „ EEPROM (Electrically Erasable PROM) „ Có thể ghi theo từng byte „ Xóa bằng điện „ Flash memory (Bộ nhớ cực nhanh) „ Ghi theo khối „ Xóa bằng điện NKK-HUST Kiến trúc máy tính14 January 2013 380 RAM (Random Access Memory) „ Bộ nhớ đọc-ghi (Read/Write Memory) „ Khả biến „ Lưu trữ thông tin tạm thời „ Có hai loại: SRAM và DRAM (Static and Dynamic) Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 381 SRAM (Static) – RAM tĩnh „ Các bit được lưu trữ bằng các Flip-Flop Æ thông tin ổn định „ Cấu trúc phức tạp „ Dung lượng chip nhỏ „ Tốc độ nhanh „ Đắt tiền „ Dùng làm bộ nhớ cache NKK-HUST Kiến trúc máy tính14 January 2013 382 DRAM (Dynamic) – RAM động „ Các bit được lưu trữ trên tụ điện Æ cần phải có mạch làm tươi „ 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 NKK-HUST Kiến trúc máy tính14 January 2013 383 Các DRAM tiên tiến „ Enhanced DRAM „ Cache DRAM „ Synchronous DRAM (SDRAM): làm việc được đồng bộ bởi xung clock „ DDR-SDRAM (Double Data Rate SDRAM) „ Rambus DRAM (RDRAM) NKK-HUST Kiến trúc máy tính14 January 2013 384 Tổ chức của chip nhớ ƒ Sơ đồ cơ bản của chip nhớ Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 385 Các tín hiệu của chip nhớ „ Các đường địa chỉ: An-1 ÷ A0 Æ có 2n từ nhớ „ Các đường dữ liệu: Dm-1 ÷ D0Æ độ dài từ nhớ = m bit „ Dung lượng chip nhớ = 2n x 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) NKK-HUST Kiến trúc máy tính14 January 2013 386 Tổ chức bộ nhớ một chiều NKK-HUST Kiến trúc máy tính14 January 2013 387 Tổ chức bộ nhớ hai chiều NKK-HUST Kiến trúc máy tính14 January 2013 388 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ài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 389 Tổ chức của DRAM NKK-HUST Kiến trúc máy tính14 January 2013 390 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 Select) „ Tín hiệu chọn địa chỉ cột CAS (Column Address Select) „ Dung lượng của DRAM= 22n x m bit NKK-HUST Kiến trúc máy tính14 January 2013 391 Chip nhớ NKK-HUST Kiến trúc máy tính14 January 2013 392 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 Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 393 Tăng độ dài từ nhớ VD1: „ 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 NKK-HUST Kiến trúc máy tính14 January 2013 394 Ví dụ tăng độ dài từ nhớ NKK-HUST Kiến trúc máy tính14 January 2013 395 Bài toán tăng độ dài từ nhớ tổng quát „ Cho chip nhớ 2n x mbit „ Thiết kế mô-đun nhớ 2n x (k.m) bit „ Dùng k chip nhớ NKK-HUST Kiến trúc máy tính14 January 2013 396 Tăng số lượng từ nhớ VD2: „ 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ài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 397 Tăng số lượng từ nhớ G A Y0 Y1 0 0 0 1 0 1 1 0 1 x 1 1 NKK-HUST Kiến trúc máy tính14 January 2013 398 Bài tập 1. 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 2. 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 3. 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 NKK-HUST Kiến trúc máy tính14 January 2013 399 Bộ giải mã 2Æ4 G B A Y0 Y1 Y2 Y3 0 0 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1 1 1 1 1 0 1 x x 1 1 1 1 NKK-HUST Kiến trúc máy tính Bài tập „ Tăng số lượng từ nhớ gấp 3 lần „ Tăng số lượng từ nhớ gấp 5, 6, 7 lần Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 401 2. Các đặc trưng cơ bản của bộ nhớ chính „ 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 ngăn nhớ được đánh địa chỉ trực tiếp bởi CPU „ Dung lượng của bộ nhớ chính nhỏ hơn không gian địa chỉ bộ nhớ mà CPU quản lý. „ Việc quản lý logic bộ nhớ chính tuỳ thuộc vào hệ điều hành NKK-HUST Kiến trúc máy tính14 January 2013 402 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 ngăn nhớ được tổ chức theo byte Æ tổ chức bộ nhớ vật lý khác nhau NKK-HUST Kiến trúc máy tính14 January 2013 403 m=8bit Æ một băng nhớ tuyến tính NKK-HUST Kiến trúc máy tính14 January 2013 404 m = 16bit Æ hai băng nhớ đan xen Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 405 m = 32bit Æ bốn băng nhớ đan xen NKK-HUST Kiến trúc máy tính14 January 2013 406 m = 64bit Æ tám băng nhớ đan xen NKK-HUST Kiến trúc máy tính14 January 2013 407 7.3. Bộ nhớ đệm nhanh (cache memory) 1. Nguyên tắc chung của cache „ Cache có tốc độ nhanh hơn bộ nhớ chính „ Cache được đặt giữa CPU và bộ nhớ chính nhằm tăng tốc độ CPU truy cập bộ nhớ „ Cache có thể được đặt trên chip CPU NKK-HUST Kiến trúc máy tính14 January 2013 408 Ví dụ về thao tác của cache „ CPU yêu cầu nội dung của ngăn 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ó, đọc Block nhớ chứa dữ liệu từ bộ nhớ chính vào cache „ Tiếp đó chuyển dữ liệu từ cache vào CPU Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 409 Cấu trúc chung của cache / bộ nhớ chính NKK-HUST Kiến trúc máy tính14 January 2013 410 Cấu trúc chung của cache / bộ nhớ chính (tiếp) „ 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 NKK-HUST Kiến trúc máy tính14 January 2013 411 Cấu trúc chung của cache / bộ nhớ chính (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 nhập (đọc/ghi) một từ nhớ, có hai khả năng xảy ra: „ Từ nhớ đó có trong cache (cache hit) „ Từ nhớ đó không có trong cache (cache miss). NKK-HUST Kiến trúc máy tính14 January 2013 412 2. Các phương pháp ánh xạ (Chính là các phương pháp tổ chức bộ nhớ cache) „ Ánh xạ trực tiếp (Direct mapping) „ Ánh xạ liên kết toàn phần (Fully associative mapping) „ Ánh xạ liên kết tập hợp (Set associative mapping) Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 413 Á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. NKK-HUST Kiến trúc máy tính14 January 2013 414 Minh hoạ ánh xạ trực tiếp NKK-HUST Kiến trúc máy tính14 January 2013 415 Đặc điểm của ánh xạ trực tiếp „ Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trường: „ Trường Word gồm W bit xác định một từ nhớ trong Block hay Line: 2W = kích thước của Block hay Line „ Trường Line gồm L bit xác định một trong số các Line trong cache: 2L = số Line trong cache = m „ Trường Tag gồm T bit: T = N - (W+L) „ Bộ so sánh đơn giản „ Xác suất cache hit thấp NKK-HUST Kiến trúc máy tính14 January 2013 416 Ánh xạ liên kết toàn phần „ Mỗi Block có thể nạp vào bất kỳ Line nào của cache. „ Địa chỉ của bộ nhớ chính bao gồm hai trường: „ Trường Word giống như trường hợp ở trên. „ Trường Tag dùng để xác định Block của bộ nhớ chính. „ Tag xác định Block đang nằm ở Line đó Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 417 Minh hoạ ánh xạ liên kết toàn phần NKK-HUST Kiến trúc máy tính14 January 2013 418 Đặc điểm của ánh xạ liên kết toàn phần „ So sánh đồng thời với tất cả các Tag Æ mất nhiều thời gian „ Xác suất cache hit cao. „ Bộ so sánh phức tạp. NKK-HUST Kiến trúc máy tính14 January 2013 419 Ánh xạ liên kết tập hợp „ Cache đươc chia thành các Tập (Set) „ Mỗi một Set chứa một số Line „ Ví dụ: „ 4 Line/Set Æ 4-way associative mapping „ Ánh xạ theo nguyên tắc sau: „ B0Æ S0 „ B1Æ S1 „ B2Æ S2 „ ....... NKK-HUST Kiến trúc máy tính14 January 2013 420 Minh hoạ ánh xạ liên kết tập hợp Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 421 Đặc điểm của ánh xạ liên kết tập hợp „ Kích thước Block = 2W Word „ Trường Set có S bit dùng để xác định một trong số V = 2S Set „ Trường Tag có T bit: T = N - (W+S) „ Tổng quát cho cả hai phương pháp trên „ Thông thường 2,4,8,16Lines/Set NKK-HUST Kiến trúc máy tính14 January 2013 422 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: „ Ánh xạ trực tiếp „ Ánh xạ liên kết toàn phần „ Ánh xạ liên kết tập hợp 4 đường NKK-HUST Kiến trúc máy tính14 January 2013 423 Với ánh xạ trực tiếp „ Bộ nhớ chính = 4GB = 232 byte Æ N = 32 bit „ Cache = 256 KB = 218 byte. „ Line = 32 byte = 25 byte ÆW = 5 bit „ Số Line trong cache = 218/ 25 = 213 Line Æ L = 13 bit „ T = 32 - (13 + 5) = 14 bit NKK-HUST Kiến trúc máy tính14 January 2013 424 Với ánh xạ liên kết toàn phần „ Bộ nhớ chính = 4GB = 232 byte Æ N = 32 bit „ Line = 32 byte = 25 byte ÆW = 5 bit „ Số bit của trường Tag sẽ là: T = 32 - 5 = 27 bit Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 425 Với ánh xạ liên kết tập hợp 4 đường „ Bộ nhớ chính = 4GB = 232 byte Æ N = 32 bit „ Line = 32 byte = 25 byte ÆW = 5 bit „ Số Line trong cache = 218/ 25 = 213 Line „ Một Set có 4 Line = 22 Line Æ số Set trong cache = 213/ 22 = 211 SetÆ S = 11 bit „ Số bit của trường Tag sẽ là: T = 32 - (11 + 5) = 16 bit NKK-HUST Kiến trúc máy tính14 January 2013 426 Bài tập Giả thiết rằng máy tính có 128KB cache tổ chức theo kiểu ánh xạ liên kết tập hợp 4-line. Cache có tất cả là 1024 Set từ S0 đến S1023. Địa chỉ bộ nhớ chính là 32-bit và đánh địa chỉ cho từng byte. a) Tính số bit cho các trường địa chỉ khi truy nhập cache ? b) Xác định byte nhớ có địa chỉ 003D02AF(16) được ánh xạ vào Set nào của cache ? NKK-HUST Kiến trúc máy tính14 January 2013 427 3. Thuật giải thay thế (1): Ánh xạ trực tiếp „ Không phải lựa chọn „ Mỗi Block chỉ ánh xạ vào một Line xác định „ Thay thế Block ở Line đó NKK-HUST Kiến trúc máy tính14 January 2013 428 Thuật giải thay thế (2): Ánh xạ liên kết „ Được thực hiện bằng phần cứng (nhanh) „ Random: Thay thế ngẫu nhiên „ FIFO (First In First Out): Thay thế Block nào nằm lâu nhất ở trong Set đó „ LFU (Least Frequently Used): Thay thế Block nào trong Set có số lần truy nhập ít nhất trong cùng một khoảng thời gian „ LRU (Least Recently Used): Thay thế Block ở trong Set tương ứng có thời gian lâu nhất không được tham chiếu tới. „ Tối ưu nhất: LRU Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 429 4. Phương pháp ghi dữ liệu khi cache hit „ Ghi xuyên qua (Write-through): „ ghi cả cache và cả bộ nhớ chính „ tốc độ chậm „ Ghi trả sau (Write-back): „ chỉ ghi ra cache „ tốc độ nhanh „ khi Block trong cache bị thay thế cần phải ghi trả cả Block về bộ nhớ chính NKK-HUST Kiến trúc máy tính14 January 2013 430 7.4. Bộ nhớ ngoài Các kiểu bộ nhớ ngoài „ Băng từ „ Đĩa từ „ Đĩa quang „ Bộ nhớ Flash NKK-HUST Kiến trúc máy tính14 January 2013 431 Đĩa từ NKK-HUST Kiến trúc máy tính14 January 2013 432 Các đặc tính đĩa từ „ Đầu từ cố định hay đầu từ di động „ Đĩa cố định hay thay đổi „ Một mặt hay hai mặt „ Một đĩa hay nhiều đĩa „ Cơ chế đầu từ „ Tiếp xúc (đĩa mềm) „ Không tiếp xúc Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 433 Nhiều đĩa NKK-HUST Kiến trúc máy tính14 January 2013 434 Cylinders NKK-HUST Kiến trúc máy tính14 January 2013 435 Đĩa mềm „ 8”, 5.25”, 3.5” „ Dung lượng nhỏ: chỉ tới 1.44Mbyte „ Tốc độ chậm „ Hiện nay không sản xuất nữa NKK-HUST Kiến trúc máy tính14 January 2013 436 Đĩa cứng „ Một hoặc nhiều đĩa „ Thông dụng „ Dung lượng tăng lên rất nhanh „ 1993: ~ 200MB „ 2003: ~ 40GB „ 2012: ~ 500GB „ Tốc độ đọc/ghi nhanh „ Rẻ tiền Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 437 RAID „ Redundant Array of Inexpensive Disks „ Redundant Array of Independent Disks „ Hệ thống nhớ dung lượng lớn NKK-HUST Kiến trúc máy tính14 January 2013 438 Đặc điểm của RAID „ Tập các đĩa cứng vật lý được OS coi như một ổ logic duy nhất Æ dung lượng lớn „ Dữ liệu được lưu trữ phân tán trên các ổ đĩa vật lý Æ truy cập song song (nhanh) „ Có thể sử dụng dung lượng dư thừa để lưu trữ các thông tin kiểm tra chẵn lẻ, cho phép khôi phục lại thông tin trong trường hợp đĩa bị hỏng Æ an toàn thông tin „ 7 loại phổ biến (RAID 0 – 6) NKK-HUST Kiến trúc máy tính14 January 2013 439 RAID 0, 1, 2 NKK-HUST Kiến trúc máy tính14 January 2013 440 RAID 3 & 4 Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 441 RAID 5 & 6 NKK-HUST Kiến trúc máy tính14 January 2013 442 Ánh xạ dữ liệu của RAID 0 NKK-HUST Kiến trúc máy tính14 January 2013 443 Đĩa quang „ CD-ROM (Compact Disk ROM) „ CD-R (Recordable CD) „ CD-RW (Rewriteable CD) „ Dung lượng thông dụng 650MB „ Ổ đĩa CD: „ Ổ CD-ROM „ Ổ CD-Writer: Ghi một phiên hoặc ghi nhiều phiên „ Ổ CD-RW „ Tốc độ đọc cơ sở 150KByte/s. „ Tốc độ bội, ví dụ: 48x, 52x,... NKK-HUST Kiến trúc máy tính14 January 2013 444 Đĩa quang (tiếp) „ DVD „ Digital Video Disk: chỉ dùng trên ổ đĩa xem video „ Digital Versatile Disk: ổ trên máy tính „ Ghi một hoặc hai mặt „ Một hoặc hai lớp trên một mặt „ Thông dụng: 4,7GB/lớp Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 445 Bộ nhớ flash „ Bộ nhớ bán dẫn (flash memory) „ Tốc độ nhanh „ Các dạng: „ Ổ nhớ kết nối qua cổng USB „ Thẻ nhớ „ Ổ SSD (Solid State Drive): kết nối nhiều chip nhớ flash và cho phép truy cập song song NKK-HUST Kiến trúc máy tính14 January 2013 446 7.5. Bộ nhớ ảo (Virtual Memory) „ Khái niệm bộ nhớ ảo: gồm bộ nhớ chính và bộ nhớ ngoài mà được CPU coi như là một bộ nhớ duy nhất (bộ nhớ chính). „ Các kỹ thuật thực hiện bộ nhớ ảo: „ Kỹ thuật phân trang: Chia không gian địa chỉ bộ nhớ thành các trang nhớ có kích thước bằng nhau và nằm liền kề nhau Thông dụng: kích thước trang = 4KBytes „ Kỹ thuật phân đoạn: Chia không gian nhớ thành các đoạn nhớ có kích thước thay đổi, các đoạn nhớ có thể gối lên nhau. NKK-HUST Kiến trúc máy tính14 January 2013 447 Phân trang „ Phân chia bộ nhớ thành các phần có kích thước bằng nhau gọi là các khung trang „ Chia chương trình (tiến trình) thành các trang „ Cấp phát số hiệu khung trang yêu cầu cho tiến trình „ HĐH duy trì danh sách các khung trang nhớ trống „ Tiến trình không yêu cầu các khung trang liên tiếp „ Sử dụng bảng trang để quản lý NKK-HUST Kiến trúc máy tính14 January 2013 448 Cấp phát các khung trang Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 449 Địa chỉ logic và địa chỉ vật lý của phân trang NKK-HUST Kiến trúc máy tính14 January 2013 450 Nguyên tắc làm việc của bộ nhớ ảo phân trang „ Phân trang theo yêu cầu „ Không yêu cầu tất cả các trang của tiến trình nằm trong bộ nhớ „ Chỉ nạp vào bộ nhớ những trang được yêu cầu „ Lỗi trang „ Trang được yêu cầu không có trong bộ nhớ „ HĐH cần hoán đổi trang yêu cầu vào „ Có thể cần hoán đổi một trang nào đó ra để lấy chỗ „ Cần chọn trang để đưa ra NKK-HUST Kiến trúc máy tính14 January 2013 451 Thất bại „ Quá nhiều tiến trình trong bộ nhớ quá nhỏ „ HĐH tiêu tốn toàn bộ thời gian cho việc hoán đổi „ Có ít hoặc không có công việc nào được thực hiện „ Đĩa luôn luôn sáng „ Giải pháp: „ Thuật toán thay trang „ Giảm bớt số tiến trình đang chạy „ Thêm bộ nhớ NKK-HUST Kiến trúc máy tính14 January 2013 452 Lợi ích „ Không cần toàn bộ tiến trình nằm trong bộ nhớ để chạy „ Có thể hoán đổi trang được yêu cầu „ Như vậy có thể chạy những tiến trình lớn hơn tổng bộ nhớ sẵn dùng „ Bộ nhớ chính được gọi là bộ nhớ thực „ Người dùng cảm giác bộ nhớ lớn hơn bộ nhớ thực Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 453 Cấu trúc bảng trang NKK-HUST Kiến trúc máy tính14 January 2013 454 Minh họa: bộ nhớ trên PC hiện nay „ Bộ nhớ cache: tích hợp trên chip vi xử lý: „ L1: cache lệnh và cache dữ liệu „ L2, L3 „ Bộ nhớ chính: Tồn tại dưới dạng các mô-đun nhớ RAM „ SIMM – Single Inline Memory Module „ DIMM – Dual Inline Memory Module NKK-HUST Kiến trúc máy tính14 January 2013 455 Hệ thống nhớ trên PC (tiếp) „ ROM BIOS chứa các chương trình sau: „ Chương trình POST (Power On Self Test) „ Chương trình CMOS Setup „ Chương trình Bootstrap loader „ Các trình điều khiển vào-ra cơ bản (BIOS) „ CMOS RAM: „ Chứa thông tin cấu hình hệ thống „ Đồng hồ hệ thống „ Có pin nuôi riêng „ Video RAM: quản lý thông tin của màn hình „ Các loại bộ nhớ ngoài NKK-HUST Kiến trúc máy tính14 January 2013 456 Hết chương 7 Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 Kiến trúc máy tính Chương 8 VÀO-RA Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 457 NKK-HUST Kiến trúc máy tính 458 Nội dung học phần „ Chương 1. Giới thiệu chung „ Chương 2. Cơ bản về logic số „ Chương 3. Hệ thống máy tính „ Chương 4. Số học máy tính „ Chương 5. Kiến trúc tập lệnh „ Chương 6. Cấu trúc bộ xử lý „ Chương 7. Bộ nhớ „ Chương 8. Vào-ra „ Chương 9. Các kiến trúc song song 14 January 2013 NKK-HUST Kiến trúc máy tính14 January 2013 459 8.1. Tổng quan về vào-ra 8.2. Các phương pháp điều khiển vào-ra 8.3. Nối ghép thiết bị ngoại vi 8.4. Các cổng vào-ra thông dụng trên PC Nội dung của chương 8 NKK-HUST Kiến trúc máy tính14 January 2013 460 8.1. Tổng quan về vào-ra 1. Giới thiệu chung „ Chức năng của vào-ra: 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 „ Các mô-đun vào-ra Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 461 Cấu trúc cơ bản của vào-ra NKK-HUST Kiến trúc máy tính14 January 2013 462 Đặc điểm của vào-ra „ Tồn tại đa dạng các thiết bị ngoại vi khác nhau về: „ Nguyên tắc hoạt động „ Tốc độ „ Khuôn dạng dữ liệu „ Tất cả các thiết bị ngoại vi đều chậm hơn CPU và RAM Æ Cần có các mô-đun vào-ra để nối ghép các thiết bị ngoại vi với CPU và bộ nhớ chính NKK-HUST Kiến trúc máy tính14 January 2013 463 2. 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: Bàn phím, Màn hình, Máy in,... „ Thiết bị ngoại vi giao tiếp máy-máy: gồm các thiết bị theo dõi và kiểm tra „ Thiết bị ngoại vi truyền thông: Modem, Network Interface Card (NIC) NKK-HUST Kiến trúc máy tính14 January 2013 464 Một số thiết bị ngoại vi Input type Prime examples Other examples Data rate (b/s) Main uses Symbol Keyboard, keypad Music note, OCR 10s Ubiquitous Position Mouse, touchpad Stick, wheel, glove 100s Ubiquitous Identity Barcode reader Badge, fingerprint 100s Sales, security Sensory Touch, motion, light Scent, brain signal 100s Control, security Audio Microphone Phone, radio, tape 1000s Ubiquitous Image Scanner, camera Graphic tablet 1000s-106s Photos, publishing Video Camcorder, DVD VCR, TV cable 1000s-109s Entertainment Output type Prime examples Other examples Data rate (b/s) Main uses Symbol LCD line segments LED, status light 10s Ubiquitous Position Stepper motor Robotic motion 100s Ubiquitous Warning Buzzer, bell, siren Flashing light A few Safety, security Sensory Braille text Scent, brain stimulus 100s Personal assistance Audio Speaker, audiotape Voice synthesizer 1000s Ubiquitous Image Monitor, printer Plotter, microfilm 1000s Ubiquitous Video Monitor, TV screen Film/video recorder 1000s-109s Entertainment Two-way I/O Prime examples Other examples Data rate (b/s) Main uses Mass storage Hard/floppy disk CD, tape, archive 106s Ubiquitous Network Modem, fax, LAN Cable, DSL, ATM 1000s-109s Ubiquitous Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 465 Cấu trúc chung của thiết bị ngoại vi NKK-HUST Kiến trúc máy tính14 January 2013 466 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 vào-ra và thiết bị ngoại vi „ Khối logic điều khiển: điều khiển hoạt động của thiết bị ngoại vi đáp ứng theo yêu cầu từ mô-đun vào-ra NKK-HUST Kiến trúc máy tính14 January 2013 467 3. Mô-đun vào-ra „ Chức năng của mô-đun vào-ra: „ Đ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 NKK-HUST Kiến trúc máy tính14 January 2013 468 Cấu trúc chung của mô-đun vào-ra Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 469 Các thành phần của mô-đun vào-ra „ Thanh ghi đệm dữ liệu: đệm dữ liệu trong quá trình trao đổi „ Các cổng vào-ra (I/O Port): kết nối với thiết bị ngoại vi, mỗi cổng có một địa chỉ xác định „ Thanh ghi trạng thái/điều khiển: lưu giữ thông tin trạng thái/điều khiển cho các cổng vào-ra „ Khối logic điều khiển: điều khiển mô- đun vào-ra NKK-HUST Kiến trúc máy tính14 January 2013 470 4. Địa chỉ hóa cổng vào-ra Không gian địa chỉ của bộ xử lý NKK-HUST Kiến trúc máy tính14 January 2013 471 Không gian địa chỉ của bộ xử lý (tiếp) „ Một số bộ xử lý chỉ quản lý duy nhất một không gian địa chỉ: „ không gian địa chỉ bộ nhớ: 2N địa chỉ „ Ví dụ: „ Các bộ xử lý 680x0 (Motorola) „ Các bộ xử lý theo kiến trúc RISC: MIPS, NKK-HUST Kiến trúc máy tính14 January 2013 472 Không gian địa chỉ của bộ xử lý (tiếp) „ Một số bộ xử lý quản lý hai không gian địa chỉ tách biệt: „ Không gian địa chỉ bộ nhớ: 2N địa chỉ „ Không gian địa chỉ vào-ra: 2N1 đị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 vào-ra chuyên dụng „ Ví dụ: Pentium (Intel) „ không gian địa chỉ bộ nhớ = 232 byte = 4GB „ không gian địa chỉ vào-ra = 216 byte = 64KB „ Tín hiệu điều khiển „ Lệnh vào-ra chuyên dụng: IN, OUT Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 473 Các phương pháp địa chỉ hoá cổng vào-ra „ Vào-ra riêng biệt (Isolated IO hay IO mapped IO) „ Vào-ra theo bản đồ bộ nhớ (Memory mapped IO) NKK-HUST Kiến trúc máy tính14 January 2013 474 Vào-ra riêng biệt „ Cổng vào-ra được đánh địa chỉ theo không gian địa chỉ vào-ra „ CPU trao đổi dữ liệu với cổng vào-ra thông qua các lệnh vào-ra 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ỉ vào-ra riêng biệt NKK-HUST Kiến trúc máy tính14 January 2013 475 Vào-ra theo bản đồ bộ nhớ „ Cổng vào-ra được đánh địa chỉ theo không gian địa chỉ bộ nhớ „ Vào-ra giống như đọc/ghi bộ nhớ „ CPU trao đổi dữ liệu với cổng vào-ra 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 NKK-HUST Kiến trúc máy tính14 January 2013 476 8.2. Các phương pháp điều khiển vào-ra „ Vào-ra bằng chương trình (Programmed IO) „ Vào-ra điều khiển bằng ngắt (Interrupt Driven IO) „ Truy nhập bộ nhớ trực tiếp - DMA (Direct Memory Access) Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính Ba kỹ thuật thực hiện vào một khối dữ liệu 14 January 2013 477 NKK-HUST Kiến trúc máy tính14 January 2013 478 1.Vào-ra bằng chương trình „ Nguyên tắc chung: CPU điều khiển trực tiếp vào-ra bằng chương trình Æ cần phải lập trình vào-ra. NKK-HUST Kiến trúc máy tính14 January 2013 479 Các tín hiệu điều khiển vào-ra „ Tín hiệu điều khiển (Control): kích hoạt 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 vào-ra và thiết bị ngoại vi „ Tín hiệu điều khiển đọc (Read): yêu cầu mô- đun vào-ra 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 vào-ra 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 NKK-HUST Kiến trúc máy tính14 January 2013 480 Các lệnh vào-ra „ Với vào-ra riêng biệt: sử dụng các lệnh vào-ra chuyên dụng (IN, OUT). „ Với vào-ra 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 vào-ra. Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 481 Lưu đồ đoạn chương trình vào-ra NKK-HUST Kiến trúc máy tính14 January 2013 482 Hoạt động của vào-ra bằng chương trình „ CPU yêu cầu thao tác vào-ra „ Mô-đun vào-ra thực hiện thao tác „ Mô-đun vào-ra thiết lập các bit trạng thái „ CPU kiểm tra các bit trạng thái: „ Nếu chưa sẵn sàng thì quay lại kiểm tra „ Nếu sẵn sàng thì chuyển sang trao đổi dữ liệu với mô-đun vào-ra NKK-HUST Kiến trúc máy tính14 January 2013 483 Đặc điểm „ Vào-ra do ý muốn của người lập trình „ CPU trực tiếp điều khiển vào-ra „ CPU đợi mô-đun vào-ra Æ tiêu tốn thời gian của CPU NKK-HUST Kiến trúc máy tính14 January 2013 484 2. Vào-ra điều khiển bằng ngắt „ Nguyên tắc chung: „ CPU không phải đợi trạng thái sẵn sàng của mô-đun vào-ra, CPU thực hiện một chương trình nào đó „ Khi mô-đun vào-ra 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 vào-ra tương ứng để trao đổi dữ liệu „ CPU trở lại tiếp tục thực hiện chương trình đang bị ngắt Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 485 Chuyển điều khiển đến chương trình con ngắt NKK-HUST Kiến trúc máy tính14 January 2013 486 Hoạt động vào dữ liệu: nhìn từ mô-đun vào-ra „ Mô-đun vào-ra nhận tín hiệu điều khiển đọc từ CPU „ Mô-đun vào-ra nhận dữ liệu từ thiết bị ngoại vi, trong khi đó CPU làm việc khác „ Khi đã có dữ liệu Æ mô-đun vào-ra phát tín hiệu ngắt CPU „ CPU yêu cầu dữ liệu „ Mô-đun vào-ra chuyển dữ liệu đến CPU NKK-HUST Kiến trúc máy tính14 January 2013 487 Hoạt động vào 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 để vào dữ liệu „ Khôi phục ngữ cảnh của chương trình đang thực hiện NKK-HUST Kiến trúc máy tính14 January 2013 488 Các vấn đề nảy sinh khi thiết kế „ Làm thế nào để xác định được mô-đun vào-ra nào phát tín hiệu ngắt ? „ CPU làm như thế nào khi có nhiều yêu cầu ngắt cùng xẩy ra ? Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 489 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 (PIC) NKK-HUST Kiến trúc máy tính14 January 2013 490 Nhiều đường yêu cầu ngắt „ Mỗi mô-đun vào-ra đượ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 vào-ra „ Các đường ngắt được qui định mức ưu tiên NKK-HUST Kiến trúc máy tính14 January 2013 491 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 vào-ra „ Chậm „ Thứ tự các mô-đun được hỏi vòng chính là thứ tự ưu tiên NKK-HUST Kiến trúc máy tính14 January 2013 492 Hỏi vòng bằng phần cứng Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 493 Kiểm tra vòng bằng phần cứng (tiếp) „ CPU phát tín hiệu chấp nhận ngắt (INTA) đến mô-đun vào-ra đầu tiên „ Nếu mô-đun vào-ra đó 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 vào-ra kết nối trong chuỗi xác định thứ tự ưu tiên NKK-HUST Kiến trúc máy tính14 January 2013 494 Bộ điều khiển ngắt lập trình được „ PIC – Programmable Interrupt Controller „ 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 NKK-HUST Kiến trúc máy tính14 January 2013 495 Đặc điểm của vào-ra đ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 vào-ra „ CPU không phải đợi mô-đun vào-ra Æ hiệu quả sử dụng CPU tốt hơn NKK-HUST Kiến trúc máy tính14 January 2013 496 Ngắt của 80x86 „ Tổ chức kiểu vector ngắt „ Số hiệu ngắt: n (00-FF) „ Bảng vector ngắt: 256 x 4 byte = 1024bytes 00000 – 003FF „ Lệnh INT n Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 497 3. DMA (Direct Memory Access) „ Vào-ra 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 qua CPU „ Để khắc phục dùng DMA „ Thêm mô-đun phần cứng trên bus Æ DMAC (Controller) „ DMAC điều khiển trao đổi dữ liệu giữa mô- đun vào-ra với bộ nhớ chính NKK-HUST Kiến trúc máy tính14 January 2013 498 Sơ đồ cấu trúc của DMAC NKK-HUST Kiến trúc máy tính14 January 2013 499 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ỉ ngăn nhớ dữ liệu „ Bộ đếm dữ liệu: chứa số từ dữ liệu cần trao đổi „ Logic điều khiển: điều khiển hoạt động của DMAC NKK-HUST Kiến trúc máy tính14 January 2013 500 Hoạt động DMA „ CPU “nói” cho DMAC „ Vào hay Ra dữ liệu „ Địa chỉ thiết bị vào-ra (cổng vào-ra tương ứng) „ Địa chỉ đầu của mảng nhớ 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 Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 501 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 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. NKK-HUST Kiến trúc máy tính14 January 2013 502 Cấu hình DMA (1) „ Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus hai lần „ Giữa mô-đun vào-ra với DMAC „ Giữa DMAC với bộ nhớ NKK-HUST Kiến trúc máy tính14 January 2013 503 Cấu hình DMA (2) „ DMAC điều khiển một hoặc vài mô-đun vào-ra „ 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ớ NKK-HUST Kiến trúc máy tính14 January 2013 504 Cấu hình DMA (3) „ Bus vào-ra tách rời hỗ trợ tất cả các thiết bị cho phép DMA „ Mỗi lần trao đổi một dữ liệu, DMAC sử dụng bus một lần „ Giữa DMAC với bộ nhớ Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 505 Đặ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 vào-ra (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 NKK-HUST Kiến trúc máy tính14 January 2013 506 4. Kênh vào-ra hay là bộ xử lý vào-ra „ Việc điều khiển vào-ra được thực hiện bởi một bộ xử lý vào-ra chuyên dụng „ Bộ xử lý vào-ra hoạt động theo chương trình của riêng nó „ Chương trình của bộ xử lý vào-ra có thể nằm trong bộ nhớ chính hoặc nằm trong một bộ nhớ riêng „ Hoạt động theo kiến trúc đa xử lý NKK-HUST Kiến trúc máy tính14 January 2013 507 8.3. Nối ghép thiết bị ngoại vi 1. 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 NKK-HUST Kiến trúc máy tính14 January 2013 508 Nối ghép song song „ Truyền nhiều bit song song „ Tốc độ nhanh „ Cần nhiều đường truyền dữ liệu Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 509 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 „ Tốc độ chậm hơn „ Cần ít đường truyền dữ liệu NKK-HUST Kiến trúc máy tính14 January 2013 510 2. Các cấu hình nối ghép „ Điểm tới điểm (Point to Point) „ Thông qua một cổng vào-ra nối ghép với một thiết bị ngoại vi „ Điểm tới đa điểm (Point to Multipoint) „ Thông qua một cổng vào-ra cho phép nối ghép được 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ị NKK-HUST Kiến trúc máy tính14 January 2013 511 Hết chương 8 NKK-HUST Kiến trúc máy tính14 January 2013 512 Kiến trúc máy tính Chương 9 CÁC KIẾN TRÚC SONG SONG Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính 513 Nội dung học phần „ Chương 1. Giới thiệu chung „ Chương 2. Cơ bản về logic số „ Chương 3. Hệ thống máy tính „ Chương 4. Số học máy tính „ Chương 5. Kiến trúc tập lệnh „ Chương 6. Cấu trúc bộ xử lý „ Chương 7. Bộ nhớ „ Chương 8. Vào-ra „ Chương 9. Các kiến trúc song song 14 January 2013 NKK-HUST Kiến trúc máy tính14 January 2013 514 9.1. Phân loại kiến trúc máy tính 9.2. Đa xử lý bộ nhớ dùng chung 9.3. Đa xử lý bộ nhớ phân tán 9.4. Bộ xử lý đa lõi 9.5. Bộ xử lý đồ họa* Nội dung của chương 9 NKK-HUST Kiến trúc máy tính14 January 2013 515 9.1. Phân loại kiến trúc máy tính „ Phân loại của Michael Flynn (1966) „ SISD - Single Instruction Stream, Single Data Stream „ SIMD - Single Instruction Stream, Multiple Data Stream „ MISD - Multiple Instruction Stream, Single Data Stream „ MIMD - Multiple Instruction Stream, Multiple Data Stream NKK-HUST Kiến trúc máy tính14 January 2013 516 SISD „ CU: Control Unit „ PU: Processing Unit „ MU: Memory Unit „ Một bộ xử lý „ Đơn dòng lệnh „ Dữ liệu được lưu trữ trong một bộ nhớ „ Chính là Kiến trúc von Neumann Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 517 SIMD NKK-HUST Kiến trúc máy tính14 January 2013 518 SIMD (tiếp) „ Đơn dòng lệnh điều khiển đồng thời các phần tử xử lý PE (processing elements) „ Mỗi phần tử xử lý có một bộ nhớ dữ liệu riêng LM (local memory) „ Mỗi lệnh được thực hiện trên một tập các dữ liệu khác nhau „ Các mô hình SIMD „ Vector Computer „ Array processor NKK-HUST Kiến trúc máy tính14 January 2013 519 MISD „ Một luồng dữ liệu cùng được truyền đến một tập các bộ xử lý „ Mỗi bộ xử lý thực hiện một dãy lệnh khác nhau. „ Chưa tồn tại máy tính thực tế „ Có thể có trong tương lai NKK-HUST Kiến trúc máy tính14 January 2013 520 MIMD „ Tập các bộ xử lý „ Các bộ xử lý đồng thời thực hiện các dãy lệnh khác nhau trên các dữ liệu khác nhau „ Các mô hình MIMD „ Multiprocessors (Shared Memory) „ Multicomputers (Distributed Memory) Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 521 MIMD - Shared Memory NKK-HUST Kiến trúc máy tính14 January 2013 522 MIMD - Distributed Memory NKK-HUST Kiến trúc máy tính14 January 2013 523 9.2. Đa xử lý bộ nhớ dùng chung SMP- Symmetric Multiprocessors NKK-HUST Kiến trúc máy tính14 January 2013 524 SMP (tiếp) „ Một máy tính có n >= 2 bộ xử lý giống nhau „ Các bộ xử lý dùng chung bộ nhớ và hệ thống vào-ra „ Thời gian truy cập bộ nhớ là bằng nhau với các bộ xử lý „ Tất cả các bộ xử lý chia sẻ truy nhập vào-ra „ Các bộ xử lý có thể thực hiện chức năng giống nhau „ Hệ thống được điều khiển bởi một hệ điều hành phân tán Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 525 Ưu điểm của SMP „ Hiệu năng „ Các công việc có thể thực hiện song song „ Tính sẵn dùng „ Các bộ xử lý có thể thực hiện các chức năng giống nhau, vì vậy lỗi của một bộ xử lý sẽ không làm dừng hệ thống „ Khả năng mở rộng „ Người sử dụng có thể tăng hiệu năng bằng cách thêm bộ xử lý NKK-HUST Kiến trúc máy tính14 January 2013 526 9.3. Đa xử lý bộ nhớ phân tán Clusters „ Nhiều máy tính được kết nối với nhau bằng mạng liên kết tốc độ cao (~ Gbps) „ Mỗi máy tính có thể làm việc độc lập „ Mỗi máy tính được gọi là một node „ Các máy tính có thể được quản lý làm việc song song theo nhóm (cluster) „ Toàn bộ hệ thống có thể coi như là một máy tính song song NKK-HUST Kiến trúc máy tính14 January 2013 527 Cluster (tiếp) „ Dễ dàng xây dựng và mở rộng „ Tính sẵn sàng cao „ Khả năng chịu lỗi „ Giá thành rẻ với hiệu năng cao NKK-HUST Kiến trúc máy tính14 January 2013 528 Cluster of PCs Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 529 Cluster of SMPs NKK-HUST Kiến trúc máy tính14 January 2013 530 Ví dụ: Hệ thống máy chủ Google (12/ 2000) „ Cluster of PCs „ Hơn 6.000 bộ xử lý „ Hệ thống lưu trữ dùng RAID: có 12.000 đĩa cứng ~ 1petabyte (1triệu GB) „ 2 site ở Silicon Valley, 1site ở Virginia „ Mỗi site được kết nối với Internet qua OC48 (2488Mbps) NKK-HUST Kiến trúc máy tính14 January 2013 531 9.4. Bộ xử lý đa lõi (multicores) „ Thay đổi của bộ xử lý: „ Tuần tự „ Pipeline „ Siêu vô hướng „ Đa luồng „ Đa lõi NKK-HUST Kiến trúc máy tính14 January 2013 532 Các dạng tổ chức bộ xử lý đa lõi Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính14 January 2013 533 Intel - Core Duo „ 2006 „ Two x86 superscalar, shared L2 cache „ Dedicated L1 cache per core „ 32KB instruction and 32KB data „ 2MB shared L2 cache NKK-HUST Kiến trúc máy tính14 January 2013 534 Intel Core Duo (3) NKK-HUST Kiến trúc máy tính14 January 2013 535 Intel x86 Multicore Organization - Core i7 „ November 2008 „ Four x86 SMT processors „ Dedicated L2, shared L3 cache „ Speculative pre-fetch for caches „ On chip DDR3 memory controller „ Three 8 byte channels (192 bits) giving 32GB/s „ No front side bus „ QuickPath Interconnection „ Cache coherent point-to-point link „ High speed communications between processor chips „ 6.4G transfers per second, 16 bits per transfer „ Dedicated bi-directional pairs „ Total bandwidth 25.6GB/s NKK-HUST Kiến trúc máy tính14 January 2013 536 Intel Core i7 Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính 9.5. Bộ xử lý đồ họa (GPU) History of GPUs „ Early video cards „ Frame buffer memory with address generation for video output „ 3D graphics processing „ Originally high-end computers (e.g., SGI) „ Moore’s Law ⇒ lower cost, higher density „ 3D graphics cards for PCs and game consoles „ Graphics Processing Units „ Processors oriented to 3D graphics tasks „ Vertex/pixel processing, shading, texture mapping, rasterization 14 January 2013 537 NKK-HUST Kiến trúc máy tính Graphics in the System 14 January 2013 538 NKK-HUST Kiến trúc máy tính GPU Architectures „ Processing is highly data-parallel „ GPUs are highly multithreaded „ Use thread switching to hide memory latency „ Less reliance on multi-level caches „ Graphics memory is wide and high-bandwidth „ Trend toward general purpose GPUs „ Heterogeneous CPU/GPU systems „ CPU for sequential code, GPU for parallel code „ Programming languages/APIs „ DirectX, OpenGL „ C for Graphics (Cg), High Level Shader Language (HLSL) „ Compute Unified Device Architecture (CUDA) 14 January 2013 539 NKK-HUST Kiến trúc máy tính Example: NVIDIA Tesla „Streaming multiprocessor „8 × Streaming processors 14 January 2013 540 Bài giảng Kiến trúc máy tính 14 January 2013 Nguyễn Kim Khánh - ĐHBKHN NKK-HUST Kiến trúc máy tính Example: NVIDIA Tesla „ Streaming Processors „ Single-precision FP and integer units „ Each SP is fine-grained multithreaded „ Warp: group of 32 threads „ Executed in parallel, SIMD style „ 8 SPs × 4 clock cycles „ Hardware contexts for 24 warps „ Registers, PCs, 14 January 2013 541 NKK-HUST Kiến trúc máy tính Classifying GPUs „ Don’t fit nicely into SIMD/MIMD model „ Conditional execution in a thread allows an illusion of MIMD „ But with performance degredation „ Need to write general purpose code with care Static: Discovered at Compile Time Dynamic: Discovered at Runtime Instruction-Level Parallelism VLIW Superscalar Data-Level Parallelism SIMD or Vector Tesla Multiprocessor 14 January 2013 542 NKK-HUST Kiến trúc máy tính14 January 2013 543 Hết

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

  • pdfbai_giang_kien_truc_may_tinh_nguyen_kim_khanh.pdf