Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU) - Phan Trung Kiên
Tóm tắt Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU) - Phan Trung Kiên: ...khiển ALU Các tín hiệu điều khiển bên ngoài BXL: Điều khiển bộ nhớ Điều khiển các modul vào-ra Phan Trung Kiên 17 Các phương pháp thiết kế KĐK KĐK vi chương trình (Microprogrammed Control Unit) KĐK nối kết cứng (Hardwired Control Unit) Phan Trung Kiên 18 Đơn vị điều khiển ...n đọc Nội dung ngăn nhớ được đọc vào CPU, đó chính là địa chỉ của toán hạng Địa chỉ này được CPU phát ra bus địa chỉ để tìm ra toán hạng CPU phát tín hiệu điều khiển đọc Toán hạng được đọc vào CPU Phan Trung Kiên 31 Sơ đồ tả nhận toán hạng gián tiếp Phan Trung Kiên 32 T...ần tách rời: Cache lệnh Cache dữ liệu giải quyết xung đột khi nhận lệnh và dữ liệu Cache L2: chung cho lệnh và dữ liệu Phan Trung Kiên 45 Đơn vị quản lý bộ nhớ (MMU) Chuyển đổi địa chỉ ảo thành địa chỉ vật lý Cung cấp cơ chế phân trang/phân đoạn Cung cấp chế đ...
1Kiến trúc máy tính Chương 4 BỘ XỬ LÝ TRUNG TÂM (CPU) Phan Trung Kiên 2 Nội dung chương 4 Cấu trúc chung của bộ xử lý Khối điều khiển Khối số học & logic Ho?t d?ng c?a CPU RISC & CISC Phan Trung Kiên 3 Sơ đồ cấu trúc cơ bản của CPU Phan Trung Kiên 4 Cấu trúc chung của bộ xử lý (BXL) Cấu trúc Đơn vị điều khiển (Control Unit - CU) Đơn vị số học và logic (Arithmetic and Logic Unit - ALU) Tập thanh ghi (Register File - RF) Đơn vị nối ghép bus (Bus Interface Unit - BIU) Bus bên trong (Internal Bus) Các thanh ghi (Registers) Phan Trung Kiên 5 Cấu trúc chung của bộ xử lý (BXL) Chức năng Điều khiển toàn bộ hoạt động của hệ thống Xử lý dữ liệu Nguyên tắc hoạt động BXL hoạt động dựa theo chương trình nằm sẵn trong bộ nhớ Phan Trung Kiên 6 Cấu trúc chung của bộ xử lý (BXL) Các nhiệm vụ của BXL Nhận lệnh: nhận lệnh từ bộ nhớ Giải mã lệnh: Giải mã lệnh được nhận vào để biết lệnh làm gì Nhận dữ liệu: Lệnh có thể yêu cầu nhận dữ liệu từ bên ngoài vào Xử lý dữ liệu: Lệnh có thể yêu cầu thực hiện một phép toán nào đó Ghi dữ liệu: Lệnh có thể yêu cầu cất kết quả ra ngoài Ngoài ra, trong quá trình thực hiện chương trình còn nhận các yêu cầu từ bên ngoài, xử lý các yêu cầu đó Phan Trung Kiên 7 BXL với bus hệ thống Phan Trung Kiên 8 Cấu trúc bên trong của BXL Phan Trung Kiên 9 Phân tích nhiệm vụ của BXL Nhận lệnh (Fetch Instructions - FI) Địa chỉ của lệnh cần thực hiện nằm trong bộ đếm chương trình (PC - Program Counter), được đưa qua bộ đệm địa chỉ, qua bus địa chỉ để tìm ra ngăn nhớ chứa lệnh Tiếp theo, BXL phát ra tín hiệu đọc ngăn nhớ vừa tìm được Nội dung của ngăn nhớ được chuyển qua bus dữ liệu và đưa đến thanh ghi lệnh (Instruction Reg.) Phan Trung Kiên 10 Phân tích nhiệm vụ của BXL Giải mã lệnh (Interpret Instructions - II) Lệnh từ thanh ghi lệnh được đưa đến khối điều khiển Tại đây, lệnh được giải mã để xác định thao tác mà lệnh yêu cầu Khi đó, khối điều khiển sẽ phát ra tín hiệu điều khiển tương ứng với lệnh đó. Phan Trung Kiên 11 Phân tích nhiệm vụ của BXL Nhận dữ liệu (Fetch Data - FD) BXL phát ra địa chỉ của ngăn nhớ/cổng vào ra chứa dữ liệu cần nhận BXL phát ra tín hiệu điều khiển đọc ngăn nhớ/cổng vào ra tương ứng Dữ liệu được chuyển qua bus dữ liệu đưa vào tập thanh ghi bên trong Phan Trung Kiên 12 Phân tích nhiệm vụ của BXL Xử lý dữ liệu (Process Data - PD) Dữ liệu được chuyển từ các thanh ghi vào ALU ALU sẽ thực hiện các phép toán dưới sự điều khiển của khối điều khiển Kết quả phép toán được cất tạm thời vào thanh ghi dữ liệu Phan Trung Kiên 13 Khối điều khiển (CU) Chức năng ĐK nhận lệnh tiếp theo từ bộ nhớ, đưa vào thanh ghi lệnh Tăng nội dung của PC để trỏ sang lệnh tiếp theo Giải mã lệnh nằm trong thanh ghi lệnh để xác định thao tác mà lệnh yêu cầu Phát ra các tín hiệu điều khiển thực hiện lệnh đó Nhận tín hiệu yêu cầu từ bên ngoài, xử lý các tín hiệu đó. Phan Trung Kiên 14 Mô hình kết nối KĐK Khối điều khiển Thanh ghi lệnh Các t/h điều khiển bên trong BXL Các t/h điều khiển từ bus hệ thống Các t/h điều khiển đến bus hệ thống Các cờ . . . Xung nhịp Bus hệ thống Phan Trung Kiên 15 Các tín hiệu đưa đến KĐK Nhịp: tín hiệu đồng hồ từ mạch tạo nhịp bên ngoài: T0 là chu kỳ của xung nhịp Mỗi thao tác của BXL cần k.T0 , k ? N Tần số xung đồng hồ: f0 = 1/T0 Ví dụ: máy tính dùng BXL có tốc độ 5GHz Ta có: f0 = 5GHz = 5*109 Hz ? T0 = 1/f0 = 1/(5*109) = 0.2 ns Mã lệnh từ thanh ghi lệnh đưa đến để giải mã Các cờ từ thanh ghi cờ cho biết trạng thái của BXL Các tín hiệu điều khiển từ bus điều khiển yêu cầu BXL T0 Phan Trung Kiên 16 Các tín hiệu phát ra từ KĐK Các tín hiệu điều khiển bên trong BXL: Điều khiển các thanh ghi Điều khiển ALU Các tín hiệu điều khiển bên ngoài BXL: Điều khiển bộ nhớ Điều khiển các modul vào-ra Phan Trung Kiên 17 Các phương pháp thiết kế KĐK KĐK vi chương trình (Microprogrammed Control Unit) KĐK nối kết cứng (Hardwired Control Unit) Phan Trung Kiên 18 Đơn vị điều khiển vi chương trình Phan Trung Kiên 19 Đơn vị điều khiển vi chương trình Bộ nhớ vi chương trình (ROM) lưu trữ các vi chương trình (microprogram) Một vi chương trình bao gồm các vi lệnh (microinstruction) Mỗi vi lệnh mã hoá cho một vi thao tác (microoperation) Để hoàn thành một lệnh cần thực hiện một hoặc một vài vi chương trình Tốc độ chậm Phan Trung Kiên 20 Đơn vị điều khiển nối kết cứng Phan Trung Kiên 21 Đơn vị điều khiển nối kết cứng Sử dụng mạch cứng để giải mã và tạo các tín hiệu điều khiển thực hiện lệnh Tốc độ nhanh Đơn vị điều khiển phức tạp Phan Trung Kiên 22 Khối số học và logic (ALU) Chức năng: thực hiện các phép toán số học và phép toán logic Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu Logic: AND, OR, NOT, XOR, dịch bit, quay bit Phan Trung Kiên 23 Mô hình kết nối ALU ALU Thanh ghi cờ Dữ liệu ra đến các thanh ghi Dữ liệu vào từ các thanh ghi T/h điều khiển từ KĐK Phan Trung Kiên 24 Hoạt động của CPU Chu trình lệnh Nhận lệnh Giải mã lệnh Nhận toán hạng Thực hiện lệnh Cất toán hạng Ngắt Phan Trung Kiên 25 Giản đồ trạng thái của chu kỳ lệnh Tính toán địa chỉ lệnh Giải mã thao tác lệnh Tính toán địa chỉ toán hạng Xử lý dữ liệu Tính toán địa chỉ toán hạng Nhận lệnh Nhận toánhạng Cất toán hạng Nhiều toán hạng Nhiều kết quả DL dạng xâu hoặc vectơ Kết thúc lênh, nhận lệnh tiếp theo Kiểm tra ngắt Ngắt Không có ngắt Phan Trung Kiên 26 Nhận lệnh CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trình PC ra bus địa chỉ CPU phát tín hiệu điều khiển đọc bộ nhớ Lệnh từ bộ nhớ được đặt lên bus dữ liệu và được CPU copy vào thanh ghi lệnh IR CPU tăng nội dung PC để trỏ sang lệnh kế tiếp Phan Trung Kiên 27 Sơ đồ mô tả quá trình nhận lệnh Phan Trung Kiên 28 Giải mã lệnh Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển Đơn vị điều khiển tiến hành giải mã lệnh để xác định thao tác phải thực hiện Giải mã lệnh xảy ra bên trong CPU Phan Trung Kiên 29 Nhận dữ liệu CPU đưa địa chỉ của toán hạng ra bus địa chỉ CPU phát tín hiệu điều khiển đọc Toán hạng được đọc vào CPU Tương tự như nhận lệnh Phan Trung Kiên 30 Nhận dữ liệu gián tiếp CPU đưa địa chỉ ra bus địa chỉ CPU phát tín hiệu điều khiển đọc Nội dung ngăn nhớ được đọc vào CPU, đó chính là địa chỉ của toán hạng Địa chỉ này được CPU phát ra bus địa chỉ để tìm ra toán hạng CPU phát tín hiệu điều khiển đọc Toán hạng được đọc vào CPU Phan Trung Kiên 31 Sơ đồ tả nhận toán hạng gián tiếp Phan Trung Kiên 32 Thực hiện lệnh Có nhiều dạng tuỳ thuộc vào lệnh Có thể là: Đọc/Ghi bộ nhớ Vào/Ra Chuyển giữa các thanh ghi Thao tác số học/logic Chuyển điều khiển (rẽ nhánh) ... Phan Trung Kiên 33 Ghi toán hạng CPU đưa địa chỉ ra bus địa chỉ CPU đưa dữ liệu cần ghi ra bus dữ liệu CPU phát tín hiệu điều khiển ghi Dữ liệu trên bus dữ liệu được copy đến vị trí xác định Phan Trung Kiên 34 Sơ đồ mô tả quá trình ghi toán hạng Phan Trung Kiên 35 Ngắt Nội dung của bộ đếm chương trình PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ CPU phát tín hiệu điều khiển ghi bộ nhớ Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác định (ở ngăn xếp) Địa chỉ lệnh đầu tiên của chương trình con điều khiển ngắt được nạp vào PC Phan Trung Kiên 36 Sơ đồ mô tả chu trình ngắt Phan Trung Kiên 37 Đường ống lệnh (Instruction Pipelining) Chia chu trình lệnh thành các công đoạn và cho phép thực hiện gối lên nhau (như dây chuyền lắp ráp) Chẳng hạn có 6 công đoạn: Nhận lệnh (Fetch Instruction - FI) Giải mã lệnh (Decode Instruction - DI) Tính địa chỉ toán hạng (Calculate Operand Address-CO) Nhận toán hạng (Fetch Operands - FO) Thực hiện lệnh (Execute Instruction - EI) Ghi toán hạng (Write Operands - WO) Phan Trung Kiên 38 Biểu đồ thời gian của đường ống lệnh Phan Trung Kiên 39 Các xung đột của đường ống lệch: Xung đột có cấu trúc: do nhiều công đoạn dùng chung 1 tài nguyên Xung đột dữ liệu: lệnh sau sử dụng kết quả của lệnh trước Xung đột điều khiển: do rẽ nhánh gây ra Phan Trung Kiên 40 Rẽ nhánh trong Pipelining Phan Trung Kiên 41 Các kỹ thuật tiên tiến của bộ xử lý Cấu trúc chung của các bộ xử lý tiên tiến Các kiến trúc song song mức lệnh Kiến trúc RISC Phan Trung Kiên 42 Cấu trúc chung của các bộ xử lý tiên tiến Phan Trung Kiên 43 Các đơn vị xử lý dữ liệu Các đơn vị số nguyên Các đơn vị số dấu phẩy động Các đơn vị chức năng đặc biệt Đơn vị xử lý dữ liệu âm thanh Đơn vị xử lý dữ liệu hình ảnh Đơn vị xử lý dữ liệu vector Phan Trung Kiên 44 Bộ nhớ cache Được tích hợp trên chip vi xử lý Bao gồm hai mức cache: Cache L1 gồm hai phần tách rời: Cache lệnh Cache dữ liệu giải quyết xung đột khi nhận lệnh và dữ liệu Cache L2: chung cho lệnh và dữ liệu Phan Trung Kiên 45 Đơn vị quản lý bộ nhớ (MMU) Chuyển đổi địa chỉ ảo thành địa chỉ vật lý Cung cấp cơ chế phân trang/phân đoạn Cung cấp chế độ bảo vệ bộ nhớ Phan Trung Kiên 46 Các kiến trúc song song mức lệnh Siêu đường ống (Superpipeline & Hyperpipeline) Siêu vô hướng (Superscalar) VLIW (Very Long Instruction Word) Phan Trung Kiên 47 Superpipeline Phan Trung Kiên 48 Superscalar Phan Trung Kiên 49 VLIW (Very Long Instruction Word) Phan Trung Kiên 50 RISC CISC và RISC CISCComplex Instruction Set Computer: Máy tính với tập lệnh phức tạp Các bộ xử lý truyền thống: x86, 680x0 RISCReduced Instruction Set Computer: Máy tính với tập lệnh thu gọn SunSPARC, Power PC, ... RISC đối nghịch với CISC Phan Trung Kiên 51 Các đặc trưng của RISC Số lượng lệnh ít Hầu hết các lệnh truy nhập toán hạng ở các thanh ghi Truy nhập bộ nhớ bằng các lệnh LOAD/STORE Thời gian thực hiện lệnh là một chu kỳ máy Các lệnh có độ dài cố định (32 bit) Phan Trung Kiên 52 Các đặc trưng của RISC Số lượng khuôn dạng lệnh là ít (<=4) CPU có tập thanh ghi lớn Có ít mode địa chỉ (<=4) Hỗ trợ các thao tác của ngôn ngữ bậc cao Đều được thiết kế kiểu pipeline lệnh Phan Trung Kiên 53 Cửa sổ thanh ghi Phan Trung Kiên 54 Kiến trúc Intel Kiến trúc 4-bit: 4004 Kiến trúc 8-bit: 8008,8080,8085 Kiến trúc 16-bit: 8086/8088,80186,80286 Kiến trúc 32-bit: 80386, 80486, Pentium,Pentium II, Celeron, Pentium III, Pentium 4 Kiến trúc 64-bit: Itanium, Core 2 Duo Phan Trung Kiên 55 Kiến trúc 16-bit (IA-16) Các thanh ghi bên trong: 16-bit Xử lý các phép toán số nguyên với 16-bit Quản lý bộ nhớ theo đoạn 64KBytes Mở đầu cho dòng máy tính IBM-PC Phan Trung Kiên 56 Kiến trúc 32-bit (IA-32) Các thanh ghi bên trong: 32-bit Xử lý các phép toán số nguyên với 32-bit Có ba chế độ làm việc: Chế độ 8086 thực (Real 8086 mode): làm việc như một bộ xử lý 8086 Chế độ 8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ xử lý 8086 (đa nhiệm 16-bit) Chế độ bảo vệ (Protected mode) Đa nhiệm 32-bit Quản lý bộ nhớ ảo Xử lý các phép toán số dấu phẩy động (từ 80486) Phan Trung Kiên 57 Kiến trúc 64-bit (IA-64) Các thanh ghi bên trong: 64-bit Xử lý các phép toán số nguyên với 64-bit Xử lý các phép toán số dấu phẩy động Không tương thích phần cứng với các bộ xử lý trước đó Tương thích phần mềm bằng cách giả lập môi trường Phan Trung Kiên 58 Sù ph¸t triÓn cña BXL hä Intel Year Chip L transistors 1971 4004 10µm 2.3K 1974 8080 6µm 6.0K 1976 8088 3µm 29K 1982 80286 1.5µm 134K 1985 80386 1.5µm 275K 1989 80486 0.8µm 1.2M 1993 Pentium® 0.8µm 3.1M 1995 Pentium® Pro 0.6µm 15.5M 1999 Mobile PII 0.25µm 27.4 2000 Pentium® 4 0.18µm 42M 2002 Pentium® 4 (N) 0.13µm 55M 2003 Itanium® 2 (M) 0.13µm 410M Phan Trung Kiên 59 Minh häa mét sè BXL Intel 4004 - 1970s (First Microprocessor) Intel 8088 (LSI Microprocessor) Phan Trung Kiên 60 Minh häa mét sè BXL PowerPC 7400 (G4) 6.5M transistors / 450MHz / 8-10W L=0.15µm Pentium® III 28M transistors / 733MHz-1Gz / 13-26W L=0.25µm shrunk to L=0.18µm Phan Trung Kiên 61 Minh häa mét sè BXL Pentium® 4 42M transistors / 1.3-1.8GHz / 49-55W L=0.18µm Pentium® 4 “Northwood” 55M transistors / 2-2.5GHz L=0.13µm Area=131mm2 Co l¹i Phan Trung Kiên 62 Minh häa mét sè BXL PowerPC® 940 (G5) 58M transistors / 2GHz / 97W L=0.13µm Area=118mm2 Image courtesy International Business Machines All Rights ReservedIntel Itanium® 2 410M transistors / 1.3GHz / 130W L=0.13µm Area=374mm2 Image source: Intel Corporation www.intel.com Phan Trung Kiên 63 Minh häa mét sè BXL Phan Trung Kiên 64 Phan Trung Kiên 65 Phan Trung Kiên 66 Phan Trung Kiên 67
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_4_bo_xu_ly_trung_tam_cpu.pdf