Giáo trình Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU)
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- giao_trinh_kien_truc_may_tinh_chuong_4_bo_xu_ly_trung_tam_cp.pdf
Nội dung text: Giáo trình Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU)
- Kiến trúc máy tính Chương 4 BỘ XỬ LÝ TRUNG TÂM (CPU) 1
- 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 2
- Sơ đồ cấu trúc cơ bản của CPU Phan Trung Kiên 3
- 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 4
- 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 5
- 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 6
- BXL với bus hệ thống Phan Trung Kiên 7
- Cấu trúc bên trong của BXL Phan Trung Kiên 8
- 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 9
- 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 10
- 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 11
- 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 12
- 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 13
- Mô hình kết nối KĐK Thanh ghi lệnh Các t/h điều khiển bên trong BXL Các cờ . . . Các t/h điều khiển từ bus hệ thống Khối điều Các t/h điều khiển khiển đến bus hệ thống Xung nhịp Bus hệ thống Phan Trung Kiên 14
- 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 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 9 9 Ta có: f0 = 5GHz = 5*10 Hz ? T0 = 1/f0 = 1/(5*10 ) = 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 Phan Trung Kiên 15
- 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 16
- 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 17
- Đơn vị điều khiển vi chương trình Phan Trung Kiên 18
- Đơ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 19
- Đơn vị điều khiển nối kết cứng Phan Trung Kiên 20
- Đơ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 21
- 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 22
- Mô hình kết nối ALU Dữ liệu vào từ các thanh ghi Dữ liệu ra đến các thanh ghi ALU T/h điều khiển từ KĐK Thanh ghi cờ Phan Trung Kiên 23
- 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 24
- Giản đồ trạng thái của chu kỳ lệnh Nhận toán Cất toán Nhận lệnh hạng hạng Nhiều Nhiều toán kết hạng quả Tính toán Giải mã Tính toán Tính toán Xử lý dữ Kiểm tra địa chỉ thao tác địa chỉ địa chỉ Ngắt liệu ngắt lệnh lệnh toán hạng toán hạng Kết thúc lênh, DL dạng Không nhận lệnh xâu hoặc có ngắt tiếp theo vectơ Phan Trung Kiên 25
- 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 26
- Sơ đồ mô tả quá trình nhận lệnh Phan Trung Kiên 27
- 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 28
- 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 29
- 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 30
- Sơ đồ tả nhận toán hạng gián tiếp Phan Trung Kiên 31
- 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 32
- 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 33
- Sơ đồ mô tả quá trình ghi toán hạng Phan Trung Kiên 34
- 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 35
- Sơ đồ mô tả chu trình ngắt Phan Trung Kiên 36
- Đườ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 37
- Biểu đồ thời gian của đường ống lệnh Phan Trung Kiên 38
- 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 39
- Rẽ nhánh trong Pipelining Phan Trung Kiên 40
- 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 41
- Cấu trúc chung của các bộ xử lý tiên tiến Phan Trung Kiên 42
- 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 43
- 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 44
- Đơ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 45
- 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 46
- Superpipeline Phan Trung Kiên 47
- Superscalar Phan Trung Kiên 48
- VLIW (Very Long Instruction Word) Phan Trung Kiên 49
- RISC CISC và RISC CISC Complex 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 RISC Reduced 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 50
- 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 51
- 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 52
- Cửa sổ thanh ghi Phan Trung Kiên 53
- 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 54
- 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 55
- 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 56
- 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 57
- 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 58
- Minh häa mét sè BXL Intel 8088 Intel 4004 - 1970s (LSI Microprocessor) (First Microprocessor) Phan Trung Kiên 59
- Minh häa mét sè BXL Pentium® III PowerPC 7400 (G4) 28M transistors / 733MHz-1Gz / 13-26W 6.5M transistors / 450MHz / 8-10W L=0.25µm shrunk to L=0.18µm L=0.15µm Phan Trung Kiên 60
- Minh häa mét sè BXL Co l¹i Pentium® 4 Pentium® 4 “Northwood” 42M transistors / 1.3-1.8GHz / 49-55W 55M transistors / 2-2.5GHz L=0.18µm L=0.13µm Area=131mm 2 Phan Trung Kiên 61
- Minh häa mét sè BXL PowerPC® 940 (G5) 58M transistors / 2GHz / 97W L=0.13µm Area=118mm 2 Image courtesy International Business Machines Intel Itanium® 2 All Rights Reserved 410M transistors / 1.3GHz / 130W L=0.13µm Area=374mm2 Image source: Intel Corporation www.intel.com Phan Trung Kiên 62
- Minh häa mét sè BXL Phan Trung Kiên 63
- Phan Trung Kiên 64
- Phan Trung Kiên 65
- Phan Trung Kiên 66
- Phan Trung Kiên 67