Bài giảng Kiến trúc máy tính - Chương 6: Kiến trúc bộ lệnh cung cấp cho người học các kiến thức: Phân loại kiến trúc bộ lệnh, địa chỉ bộ nhớ, mã hóa tập lệnh, bộ lệnh, cấu trúc lệnh CISC và RISC. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương – Kiến trúc lệnh 6.1 Phân loại kiến trúc lệnh 6.2 Địa nhớ 6.3 Mã hóa tập lệnh 6.3.1 Các tiêu chuẩn thiết kế dạng thức lệnh 6.3.2 Opcode mở rộng 6.3.3 Ví dụ dạng thức lệnh 6.3.4 Các chế độ lập địa 6.4 Bộ lệnh 6.4.1 Nhóm lệnh truyền liệu 6.4.2 Nhóm lệnh tính tốn số học 6.4.3 Nhóm lệnh Logic 6.4.4 Nhóm lệnh dịch chuyển 6.4.5 Nhóm lệnh có điều kiện lệnh nhảy 6.5 Cấu trúc lệnh CISC RISC Khoa KTMT Vũ Đức Lung 6.1 Phân loại kiến trúc lệnh kiến trúc ngăn xếp (stack), kiến trúc ghi tích lũy (Accumulator) kiến trúc ghi đa dụng GPRA(general-purpose register architecture) Ví dụ phép tính C = A + B dùng kiểu kiến trúc: Khoa KTMT Vũ Đức Lung Kiểu kiến trúc GPR Ưu điểm – Dùng ghi, dạng lưu trữ CPU có tốc độ nhanh nhớ ngồi – Trình tự thực lệnh thứ tự – Dùng ghi để lưu biến giảm thâm nhập đến nhớ => chương trình nhanh Nhược điểm – Lệnh dài – Số lượng ghi bị giới hạn Ngăn xếp (Stack) ? Thanh ghi tích luỹ (Accumulator Register) ? Khoa KTMT Vũ Đức Lung Kiểu kiến trúc ghi đa dụng lệnh có tốn hạng ADD A, B lệnh có tốn hạng ADD A, B, C Số toán hạng nhớ thay đổi từ tới Các loại tốn hạng • ghi-thanh ghi (kiểu cịn gọi nạp - lưu trữ), • ghi - nhớ • nhớ - nhớ Khoa KTMT Vũ Đức Lung 6.2 Địa nhớ Các khái niệm: – Memory, bit, cell, address, byte, word Sắp xếp thứ tự byte – Có vấn đề khơng cách xếp thứ tự byte Khoa KTMT Vũ Đức Lung Vấn đề thứ tự byte VD: Biểu diễn JIM SMITH, 21 tuổi, phòng 260 Khoa KTMT Vũ Đức Lung 6.3 Mã hóa tập lệnh Các trường mã hóa: – mã tác vụ (operation code): Opcode – Địa Khoa KTMT Vũ Đức Lung Các tiêu chuẩn thiết kế dạng thức lệnh Có tiêu chuẩn thiết kế: – – – – Mã lệnh ngắn ưu việt mã lệnh dài Độ dài mã lệnh đủ đế biểu diễn tất phép toán mong muốn độ dài word máy bội số nguyên độ dài ký tự số BIT trường địa ngắn tốt Ví dụ thiết kế máy với ký tự bit nhớ chứa 216 ký tự + Ơ nhớ kích thước bit => trường địa cần 16 bit + Ơ nhớ kích thước 32 bit => trường địa cần 14 bit Khoa KTMT Vũ Đức Lung Opcode mở rộng ví dụ máy tính có lệnh dài 16 bit : Lệnh (n+k) bit với opcode chiếm k bit địa chiếm n bit VD: 15 lệnh ba địa Khoa KTMT Vũ Đức Lung Opcode mở rộng 14 lệnh hai địa Khoa KTMT Vũ Đức Lung 10 Ví dụ lệnh Add với tham chiếu nhớ Add Khoa KTMT R1, @(R3) Vũ Đức Lung 20 6.4 Bộ lệnh Quá trình biên dịch ngơn ngữ máy Khoa KTMT Vũ Đức Lung 21 Nhóm lệnh truyền liệu MOVE Ri, Rj Một số ví dụ lệnh MOVE: Khoa KTMT Vũ Đức Lung 22 Nhóm lệnh truyền liệu LOAD đích, nguồn – ví dụ: LOAD Ri, M (địa chỉ) // Ri M[địa chỉ] STORE đích, nguồn – ví dụ: STORE M(địa chỉ), Ri Khoa KTMT Vũ Đức Lung // M[địa chỉ] ←Ri 23 Nhóm lệnh tính tốn số học ADD đích, nguồn SUB đích, nguồn Ví dụ: ADD ADD SUB SUB Khoa KTMT AX, BX AL,74H CL, AL AX, 0405H // đích // đích // AX // AL // CL // AX đích + nguồn đích – nguồn AX + BX AL + [74H] CL – AL AX – 0405H Vũ Đức Lung 24 Nhóm lệnh tính tốn số học Các lệnh tính tốn số học Khoa KTMT Vũ Đức Lung 25 Nhóm lệnh logic AND đích, nguồn OR đích, nguồn Ví dụ: AND AL, BL AL = 00001101B BL = 00110011B => AL = 00000001B Khoa KTMT Vũ Đức Lung 26 Nhóm lệnh dịch chuyển số học logic (SHIFT ) SRL (Shift Right Logical - dịch phải logic) SLL (Shift Left Logical - dịch trái logic) SRA (Shift Right Arithmetic - dịch phải số học) SLA (Shift Left Arithmetic – dịch trái số học) Khoa KTMT Vũ Đức Lung 27 Các lệnh dịch chuyển Khoa KTMT Vũ Đức Lung 28 Các lệnh dịch chuyển Khoa KTMT Vũ Đức Lung 29 Các lệnh có điều kiện lệnh nhảy Nếu không (IF THEN ELSE ) Khoa KTMT Vũ Đức Lung 30 Các lệnh có điều kiện lệnh nhảy Ví dụ: LOAD Loop: ADD DECREMENT BEQZ Khoa KTMT R1, #100 R0, (R2)+ R1 R1, Loop Vũ Đức Lung 31 Thống kê sử dụng CPU Loại lệnh Khoa KTMT % sử dụng thời gian Chuyển liệu 43% Điều khiển dịng chảy 23% Tính tốn số học 15% So sánh 13% Phép toán Logic 5% Các lệnh khác 1% Vũ Đức Lung 32 Cấu trúc lệnh CISC RISC RISC CISC – Độ dài lệnh cố định (32 bit) – Sử dụng kiến trúc load-store lệnh xử lý liệu hoạt động ghi cách ly với lệnh truy cập nhớ – Một số lớn ghi đa dụng 32 bit – Có số lệnh (thường 100 lệnh) – Có số kiểu định vị – Có số dạng lệnh (một hai) – Chỉ có lệnh ghi đọc ô nhớ thâm nhập vào nhớ – Kích thước tập lệnh thay đổi – Giá trị nhớ dùng như toán hạng lệnh xử lý liệu – Có nhiều ghi, hầu hết để sử dụng cho mục đích riêng biệt – Có nhiều lệnh (khoảng 500) – Có nhiều kiểu định vị (xem phần 6.3.4) – Có nhiều dạng lệnh – Có nhiều lệnh khác thâm nhập vào nhớ – Giải mã lệnh logic kết nối phần cứng – Thực thi lệnh theo cấu trúc dòng chảy (xem hình 7.9 chương sau) – Một lệnh thực thi chu kì xung nhịp – Sử dụng nhiều code ROM giải mã lệnh – Các máy cũ phải hết dòng lệnh đến dịng lệnh khác – Cần nhiều chu kì xung nhịp để hoàn thành lệnh Khoa KTMT Vũ Đức Lung 33 CÂU HỎI VÀ BÀI TẬP CHƯƠNG Giả sử cần thiết kế máy với ký tự bit nhớ chứa 224 ký tự Hãy cho biết trường địa cần bit trường hợp: a) Ơ nhớ kích thước bit b) Ơ nhớ kích thước 16 bit c) Ơ nhớ kích thước 32 bit Thiết kế opcode mở rộng nhằm cho phép mã hóa nội dung sau lệnh 36 bit – – – lệnh có hai địa 15 bit số hiệu ghi bit 500 lệnh có địa 15 bit số hiệu ghi bit 50 lệnh địa ghi Có thể thiết kế opcode mở rộng phép mã hóa nội dung sau lệnh 12 bit không? Trường ghi rộng bit – – – lệnh có ba ghi 255 lệnh có hai ghi 2048 lệnh khơng có ghi Khoa KTMT Vũ Đức Lung 34 ... Khoa KTMT Vũ Đức Lung 18 VD: Khoa KTMT Vũ Đức Lung 19 Ví dụ lệnh Add với tham chiếu nhớ Add Khoa KTMT R1, @(R3) Vũ Đức Lung 20 6. 4 Bộ lệnh Quá trình biên dịch ngôn ngữ máy Khoa KTMT Vũ Đức Lung 21... dịch chuyển – Displacement Địa ngăn xếp - Stack Khoa KTMT Vũ Đức Lung 14 Các chế độ lập địa Khoa KTMT Vũ Đức Lung 15 Cách tính địa thực Khoa KTMT Vũ Đức Lung 16 Các chế độ lập địa Lập địa tức thời.. .6. 1 Phân loại kiến trúc lệnh kiến trúc ngăn xếp (stack), kiến trúc ghi tích lũy (Accumulator) kiến trúc ghi đa dụng GPRA(general-purpose register architecture)