Bài giảng Kiến trúc máy tính - Chương 1: Đại cương - Nguyễn Duy Phúc
Thế hệ máy tính cơ khí
• Blaise Pascal (1636-1662): chế tạo máy có thể tính
toán được đầu tiên (cộng, trừ) năm 1642
• Leibniz (1646-1716): chế được máy có thể tính được
phép nhân, chia
• Charles Babbage (1791-1871): nghiên cứu chế tạo
máy phân tích (analytical engine)
• Đưa ý tưởng về máy tính đa năng (general purpose)
• Không thành công do công nghệ phần cứng chưa đáp ứng
e.com Vĩnh Long, 06/2013 Đường đi của dữ liệu Các thành phần: • ALU • PC (Program Counter) • SR (Status Register) • Thanh ghi tổng quát • TEMP • MAR (Memory Address Register) • MBR (Memory Buffer Register) • MUX (Multiplexor) • S1, S2, Dest Bộ điều khiển Nhiệm vụ: • Giải mã lệnh • Phát tín hiệu điều khiển các bộ phận chức năng thực hiện lệnh Có 2 loại: • Dùng mạch điện tử: đơn giản, phù hợp với BXL RISC • Dùng vi chương trình (microprogram): dễ sửa đổi, phù hợp với BXL CISC Nguyên tắc hoạt động của bộ điều khiển dùng mạch điện tử Nguyên tắc hoạt động của bộ điều khiển dùng vi chương trình Diễn tiến thi hành lệnh mã máy IF • Đọc lệnh (Instruction Fetch) ID • Giải mã lệnh (Instruction Decode) EX • Thi hành lệnh (Execute) MEM • Thâm nhập bộ nhớ trong hoặc nhảy (Memory Access) RS • Lưu trữ kết quả (Result Storing) Diễn tiến thi hành lệnh mã máy (2) Đọc lệnh (IF) • MAR PC • IR M[MAR] Giải mã lệnh (ID) • A Rs1 • B Rs2 • PC PC + d d: kích thước của lệnh Diễn tiến thi hành lệnh mã máy (3) Thi hành lệnh (EX): tùy theo trường hợp • Liên hệ tới bộ nhớ • MAR Địa chỉ cần liên hệ do ALU tính (Rs2) • MBR Dữ liệu cần lưu và bộ nhớ (Rs1) • Một lệnh tính toán của ALU • Ngã ra ALU kết quả phép tính • Lệnh nhảy • Ngã ra ALU địa chỉ cần nhảy đến Diễn tiến thi hành lệnh mã máy (4) Thâm nhập bộ nhớ trong/nhảy lần cuối (MEM) • Liên hệ tới bộ nhớ • Đọc từ bộ nhớ: MBR M[MAR] • Ghi vào bộ nhớ: M[MAR] MBR • Nhảy • Có điều kiện nếu điều kiện đúng thì: PC ngã ra ALU • Không điều kiện thì: PC ngã ra ALU Lưu trữ kết quả (RS) • Rd ngã ra ALU / MBR Diễn tiến thi hành lệnh mã máy (5) Ví dụ 1: diễn tiến thi hành lệnh ADD R1, R2, R3 IF MAR PC IR M[MAR] ID A R2 B R3 PC PC + d EX Ngã ra ALU A + B MEM RS R1 C Ngã ra ALU Diễn tiến thi hành lệnh mã máy (6) Ví dụ 2: diễn tiến thi hành lệnh LOAD R1, (R2) IF MAR PC IR M[MAR] ID B R2 PC PC + d EX MAR Ngã ra ALU B MEM MBR M[MAR] RS R1 C Ngã ra ALU MBR Diễn tiến thi hành lệnh mã máy (7) Ví dụ 3: diễn tiến thi hành lệnh STORE R3, (R4) IF MAR PC IR M[MAR] ID A R3 B R4 PC PC + d EX MAR Ngã ra ALU B MBR Ngã ra ALU A MEM M[MAR] MBR RS Diễn tiến thi hành lệnh mã máy (8) Ví dụ 4: diễn tiến thi hành lệnh JMP R1 IF MAR PC IR M[MAR] ID B R1 PC PC + d EX Ngã ra ALU B MEM PC Ngã ra ALU RS Kỹ thuật ống dẫn (Pipeline) Là kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc. Thực thi lệnh bình thường Lệnh Xung nhịp 1 2 3 4 5 6 7 8 9 10 i IF ID EX MEM RS i + 1 IF ID EX MEM RS Kỹ thuật ống dẫn (2) Áp dụng kỹ thuật ống dẫn Lệnh Xung nhịp 1 2 3 4 5 6 7 8 9 10 i IF ID EX MEM RS i + 1 IF ID EX MEM RS i + 2 IF ID EX MEM RS i + 3 IF ID EX MEM RS i + 4 IF ID EX MEM RS i + 5 IF ID EX MEM RS Kỹ thuật ống dẫn (3) Yêu cầu: • Có mạch điện riêng để thi hành từng giai đoạn của lệnh • Có nhiều thanh ghi khác nhau dùng cho đọc và ghi dữ liệu • Giải mã phải hoàn tất trong một chu kỳ xung nhịp • Có nhiều thanh IR, PC, ALU Kỹ thuật ống dẫn (4) Khó khăn do cấu trúc • Do thiếu bộ phận chức năng Khó khăn do số liệu • Do trong đường ống có lệnh sử dụng kết quả của lệnh trước nó Khó khăn do điều khiển • Do có lệnh nhảy làm mất tính tuần tự của chương trình Các kỹ thuật khác Siêu vô hướng (SuperScalar) Máy tính có lệnh thật dài (VLIW) Máy tính vector Máy tính song song: SISD, SIMD, MISD, MIMD Kiến trúc IA-64 KIẾN TRÚC MÁY TÍNH Chương 4: Bộ nhớ Nguyễn Duy Phúc duyphucit@live.com Vĩnh Long, 06/2013 Các loại bộ nhớ Bộ nhớ trong: ROM, RAM Bộ nhớ ngoài: đĩa, băng từ, thẻ nhớ, Công nghệ chế tạo RAM • RAM tĩnh (SRAM – Static RAM) • RAM động (DRAM – Dynamic RAM) Các loại DRAM • SDRAM • DDR SDRAM • RDRAM SRAM và DRAM SRAM DRAM - Công nghệ ECL - Kích thước lớn, phức tạp - Tốc độ nhanh - Không cần làm tươi bộ nhớ - Đắt tiền - Dùng làm bộ nhớ cache, thanh ghi - Công nghệ MOS - Nhỏ gọn, đơn giản - Tốc độ chậm - Cần phải làm tươi - Rẻ tiền - Dùng làm bộ nhớ chính (các thanh RAM) Các cấp bộ nhớ Toán hạng (Operand) Khối (Block) Trang (Page) File Từ trên xuống: dung lượng tăng, giá thành và tốc độ giảm Bộ nhớ Cache Là bộ nhớ nhanh (thường là SRAM), hoạt động trung gian giữa bộ nhớ trong và CPU, chứa lệnh và dữ liệu thường xuyên hoặc sẽ sử dụng đến CPUMain Memory Cache Xác xuất truy cập dữ liệu trong bộ nhớ trong Một chương trình mất 90% thời gian của nó để thi hành 10% số lệnh của chương trình. Nguyên tắc về thời gian • Chương trình luôn có phần được truy xuất thường xuyên nhất. Nguyên tắc về không gian • Khả năng thập nhập ô nhớ kế tiếp là cao do tính tuần tự của chương trình. Vận hành của Cache CPUMain Memory Cache Trao đổi dữ liệu giữa CPU – Cache – Bộ nhớ trong Blocks Words Vận hành của Cache (2) Thành công Cache (Cache hit) • Dữ liệu cần truy xuất có trong cache Thất bại Cache (Cache miss) • Dữ liệu cần truy xuất không tìm thấy trong cache Trừng phạt thất bại Cache (Cache penalty) • Thời gian cần thiết để xử lý một thất bại cache • Bao gồm: thời gian truy xuất bộ nhớ trong + thời gian chuyển khối cần đọc từ bộ nhớ trong đến cache Sắp xếp khối trong Cache Tương ứng trực tiếp Vị trí đặt khối tính theo công thức K = i mod n Trong đó • K : Vị trí đặt khối trong cache • i : số thứ tự của khối trong bộ nhớ trong • n : số lượng khối của cache Sắp xếp khối trong Cache (2) Hoàn toàn phối hợp Một khối trong bộ nhớ trong có thể đặt ở khối có vị trí bất kỳ trong cache Sắp xếp khối trong Cache (3) Phối hợp theo tập hợp Cache được chia thành nhiều tập hợp, mỗi tập hợp có nhiều khối, số lượng khối của các tập hợp bằng nhau Cách đặt khối trong bộ nhớ vào cache • Tính K = i mod s • Trong đó s là số lượng tập hợp của cache • Khối sẽ được đặt vào bất kỳ vị trí nào trong tập hợp thứ K 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Bộ nhớ trong Bộ nhớ cache 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 Hoàn toàn phối hợp 0 1 2 3 4 5 6 7 Tương ứng trực tiếp 0 1 2 3 4 5 6 7 0 0 1 1 2 2 3 3 Phối hợp theo tập hợp Cách tìm khối trong Cache Ứng với một thao tác truy xuất một từ trong bộ nhớ, cần phải xác định được: • Số thứ tự khối cần truy xuất • Vị trí của từ trong khối Vị trí của từ trong khối được xác định dựa vào địa chỉ của từ và kích thước của một khối Ví dụ: Địa chỉ bộ nhớ là 10 bit, kích thước khối là 16 (4 bit) Chỉ số khối trong bộ nhớ (6 bit) Địa chỉ của từ trong khối (4 bit) Cách tìm khối trong Cache (2) Nhận dạng chỉ số khối – tương ứng trực tiếp • Chỉ số khối cache: xác định khối cần xét • Nhãn: dùng so sánh xem khối đang xét có phải khối cần tìm hay không Chỉ số khối trong bộ nhớ Địa chỉ của từ trong khối Nhãn Chỉ số khối cache Cách tìm khối trong Cache (3) Nhận dạng chỉ số khối – hoàn toàn phối hợp • Chỉ số khối: được so sánh với nhãn của tất cả các khối trong cache để xác định khối cần tìm có trong cache hay không Chỉ số khối trong bộ nhớ Địa chỉ của từ trong khối Cách tìm khối trong Cache (4) Nhận dạng chỉ số khối – tương ứng trực tiếp • Chỉ số khối cache: xác định tập hợp cần xét • Nhãn: dùng so sánh với nhãn của tất cả khối trong tập hợp đang xét để xác định khối cần tìm Chỉ số khối trong bộ nhớ Địa chỉ của từ trong khối Nhãn Chỉ số tập hợp Thay thế khối trong Cache Thay thế ngẫu nhiên Khối xưa nhất (LRU – Least Recently Used) Vào trước ra trước (FIFO) Tần số sử dụng ít nhất (LFU – Least Frequently Used) Chiến thuật ghi Cache Ghi đồng thời • Dữ liệu được ghi cùng lúc vào khối trong cache và bộ nhớ trong Ghi lại • Chỉ ghi lại trong cache, khi nào thay thế khối mới ghi lại trong bộ nhớ trong Hiệu quả của Cache Thường đánh giá bằng thời gian thâm nhập trung bình của cache Công thức tính Thời gian thâm nhập trung bình của cache = Thời gian thâm nhập thành công + Tỷ lệ thất bại ∗ Trừng phạt thất bại Cache duy nhất và Cache riêng lẻ Cache duy nhất • Chứa cả lệnh và dữ liệu Cache riêng lẻ • Phân biệt cache chứa lệnh và cache chứa dữ liệu Cache riêng lẻ giúp tránh tranh chấp khi cùng đọc lệnh và dữ liệu, tối ưu về mặt kích thước và phối hợp giữa các khối Các mức Cache Số mức tùy thuộc vào thiết kế, chênh lệch giữa CPU và bộ nhớ trong Ký hiệu: L1, L2, L3, Ví dụ: các mức cache của một CPU có 2 nhân Các kỹ thuật tăng băng thông của bộ nhớ trong Nới rộng chiều dài ô nhớ (kích thước từ nhớ) Bộ nhớ đan chéo đơn giản • Dùng chung đường địa chỉ với điều khiển ô nhớ Bộ nhớ đan chéo tổ chức độc lập • Dùng riêng đường địa chỉ, có thể dùng riêng đường dữ liệu Tránh xung đột giữa các dãy bộ nhớ • Thường xử lý bằng cách tăng số lượng dãy Bộ nhớ ảo (Virtual Memory) Là cơ chế tự động hoán chuyển (swapping) dữ liệu giữa bộ nhớ trong và bộ nhớ ngoài để tăng dung lượng bộ nhớ có thể sử dụng của tiến trình (process) Bộ nhớ ảo giúp tiến trình không phụ thuộc vào kích thước của bộ nhớ RAM có trong máy Tăng khả năng đa chương, giảm nhẹ gánh nặng về bộ nhớ cho người lập trình Mô hình bộ nhớ ảo KIẾN TRÚC MÁY TÍNH Chương 5: Nhập – Xuất Nguyễn Duy Phúc duyphucit@live.com Vĩnh Long, 06/2013 Đĩa từ Lưu trữ dài hạn các tập tin Tham gia làm bộ nhớ ảo lúc chạy chương trình Các thông số: • Dung lượng (GB) • Giao tiếp (PATA, SATA, SCSI) • Tốc độ quay (rpm) • Bộ nhớ đệm – cache (MB) Cấu tạo của đĩa cứng Tổ chức lưu trữ thông tin trong đĩa cứng Đĩa quang Thẻ nhớ Thẻ nhớ CompactFlash, MemoryStick, Secure Digital (SD) và xD Các chuẩn bus ISA PCI AGP PCI-Express USB e-SATA IEEE 1394 Thunderbolt Hệ thống đĩa dự phòng (RAID) RAID – Redundant Arrays of Inexpensive Disks Các mức RAID • RAID 0: tăng tốc độ, an toàn thấp • RAID 1: tăng an toàn • RAID 5: tăng tốc độ, tăng an toàn
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_1_dai_cuong_nguyen_duy_p.pdf