Professional Documents
Culture Documents
BÁO CÁO
Môn: Kiến Trúc Máy Tính
Đề tài:
Kiến Trúc Tập Lệnh
Hà Nội 12/2019
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
1
Báo cáo Kiến trúc máy tính
MỤC LỤC
I. Tập Lệnh............................................................................................................3
1. Giới thiệu chung.............................................................................................3
2. Tập lệnh..........................................................................................................3
II. Kiến trúc tập lệnh CISC và RISC.................................................................14
III. Kiến trúc tập lệnh MIPS (MIPS Architecture).........................................15
1. Tập thanh ghi của MIPS.............................................................................15
2. Các kiểu lệnh máy của MIPS......................................................................16
2
Báo cáo Kiến trúc máy tính
Lời mở đầu
3
Báo cáo Kiến trúc máy tính
I. Tập Lệnh
1. Giới thiệu chung
- Kiến trúc tập lệnh ( Instruction Set Architecture) là một phần của kiến trúc
máy tính liên quan đến lập trình , bao gồm các bản địa các loại dữ liệu,
hướng dẫn, đăng kí, giải quyết chế độ, kiến trúc bộ nhớ, làm gián đoạn và xử
lý ngoại lệ , và bên ngoài kiến trúc tập lệnh bao gồm các đặc điểm kĩ thuật
của các thiết lập của opcode và các bản địa thực hiện bởi một bộ xử lý cụ
thể.
- Vi kiến trúc ( Microarchitecture), còn gọi là tổ chức máy tính (Computer
organization) là một mô tả bậc thấp, cụ thể hơn về hệ thống. Mô tả này nói
về các bộ phận cấu thành của hệ thống được kết nối với nhau như thế nào và
chúng hoạt động tương hỗ như thế nào để thực hiện kiến trúc tập lệnh.
- Ngôn ngữ trong máy tính:
Hợp ngữ (assembly language): là một ngôn ngữ lập trình bậc thấp
dung để viết các chương trình máy tính, Cách dùng các thuật nhớ
thân thiện để viết chương trình đã thay thế cách lập trình trực tiếp lên
máy tính bằng mã máy dạng số.
Ngôn ngữ máy: là một tập các chỉ thị được CPU của máy tính trực
tiếp thực thi. Mỗi chỉ thị thực hiện một chức năng xác định, ví dụ như
tải dữ liệu, nhảy hay tính toán số nguyên trên một đơn vị dữ liệu của
thanh ghi CPU hay bộ nhớ. Tất cả các chương trình được thực thi
trực tiếp bởi CPU đều là các chuỗi các chỉ thị này
- Cách nhận lệnh:
PC (Program Counter)
Lệnh được nạp vào Instruction Register -> PC tự động tăng để trỏ
sang lệnh kế tiếp
Tăng PC
Phụ thuộc vào chiều dài lệnh vừa nạp
Nếu lệnh dài 32 bit, PC tăng 4 ( địa chỉ bộ nhớ đánh theo Byte)
2. Tập lệnh
- Giới thiệu chung : Tập lệnh là một thư viện chức năng, có thể dễ dàng
kết hợp với website. Tập lệnh trình bày các hàm thực hiện các tác vụ cụ
thể và được gọi bằng mã hiện tại. Các ví dụ phổ biến về tập lệnh bao gồm
thư viện chức năng JavaScript và PHP. Tập lệnh sẽ được tải lên máy chủ
nhưng không được cài đặt như ứng dụng. Để có thể truy cập vào chức
năng của tập lệnh, tập lệnh phải được tham chiếu bằng mã trang của bạn.
- Các thành phần của tập lệnh:
4
Báo cáo Kiến trúc máy tính
Mã thao tác ( Operation Code): Xác định thao tác cần thực hiện
Địa chỉ toán hạng : Chỉ ra nơi chứa các toán hạng mà câu lệnh tác
động bao gồm toán hạng nguồn và toán hạng đích
- Các thao tác:
Các kiểu thao tác (Types of Operations) các lệnh truyền dữ liệu,
lệnh số học , lệnh logic, các lệnh vào ra,các lệnh điều khiển hệ
thống.
5
Báo cáo Kiến trúc máy tính
6
Báo cáo Kiến trúc máy tính
7
Báo cáo Kiến trúc máy tính
Ví dụ:
8
Báo cáo Kiến trúc máy tính
- Giá trị của toán hạng nằm ngay trong câu lệnh
- Có thể là :
Số có dấu: bit đầu là bit dấu, khi nạp vào thanh ghi nó được mở
rộng
Số không dấu:
- Tiết kiệm ô nhớ, nhanh. Tuy nhiên độ lớn của toán hạng bị hạn chế
b. Trực tiếp(Direct)
- Ít thông dụng
9
Báo cáo Kiến trúc máy tính
- Có thể có rất nhiều mực gián tiếp , khi đó có một số bit dành cho việc
xác định mức gián tiếp rất phức tạp
d.Thanh ghi(Register)
- Sử dụng không gian nhớ gián tiếp ít hơn kiểu địa chỉ gián tiếp
10
Báo cáo Kiến trúc máy tính
- Địa chỉ toán hạng = Địa chỉ cơ sở + giá trị dịch chuyển (offset)
- lw r2, 128(r3)
g. Ngăn xếp
- Chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp (ngăn xếp có chiều từ đáy lên đỉnh
ngược với chiều tăng của địa chỉ)
- WAIT: dừng thực hiện chương trình, liên tục kiểm tra điều kiện được chỉ
định, chương trình được thực hiện khi điều kiện được thỏa mãn
11
Báo cáo Kiến trúc máy tính
- Đặc điểm:
Điều khiển rẽ nhánh trong chương trình
PC được nạp giá trị địa chỉ mới
- Các lệnh:
JUMP: nhảy không điều kiện đến lệnh mới
JUMP CONDITIONAL: nhảy có điều kiện
CALL: lệnh gọi CTC
RETURN: trở về từ CTC
INTERRUPT:lệnh gọi CTC ngắt
INTERRUPT RETURN: trở về từ CTC ngắt
- WAIT: dừng thực hiện chương trình , liên tục kiểm tra điều kiện được chỉ
định, chương trình được thực hiện khi điều kiện chương trình cho phép.
- NO OPERATION: không có thao tác nào được thực hiện, nhưng chương
trình vẫn tiếp tục chạy
- Đặc điểm:
Thực hiện các phép toán số học
Có ảnh hưởng đến thanh ghi cỡ
- Các lệnh:
NCREMENT:tăng toán hạng lần 1
NEGATE: đổi dầu toán hạng
ABSCLUTE: lấy giá trị tuyệt đối của toán hạng
SUBTRACT: bình hiệu hai toán hạng
MULTIPLY: bình tích hai toán hạng
DVIDE: tích thương hai toán hạng
12
Báo cáo Kiến trúc máy tính
Opcode R Source
7 3 6
3.
13
Báo cáo Kiến trúc máy tính
Opcode Offet
8 8
4.
Opcode FP Destination
8 2 6
5.
Opcode Destination
10 6
6.
Opcode CC
12 4
7.
Opcode R
13 3
8.
Opcode
16
9.
11.
16
Báo cáo Kiến trúc máy tính
- Ban đầu MIPS là kiến trúc 32 bit, sau này mở rộng ra 64 bit
- MIPS I, MIPS II, MIPS III, MiPS IV, MIPS V, MIPS 32 và MIPS 64.
Hiện nay tồn tại MIPS 32 và MIPS 64
1. Tập thanh ghi của MIPS
op Rs rt rd shamt funct
6 bits 5 bits 5 bits 5 bits 5 bits 6bits
Lệnh kiểu I
op rs rt imm
6 bits 5 bits 5 bits 16 bits
Lệnh kiểu J
op address
17
Báo cáo Kiến trúc máy tính
6 bits 26 bits
- Lệnh kiểu I
Dùng cho các lệnh số học/logic với toán hạng tức thì và các lệnh load/
store
s: số hiệu thanh ghi nguồn hoặc tahnh ghi cơ sở
rt : số hiệu thanh ghi đích, hoặc thanh ghi nguồn
imm: hằng số nguyên 16 bit
addi rt, rs, imm # (rt) = (rs)+SignExtImm
18
Báo cáo Kiến trúc máy tính
- Lệnh nhảy J
Mã lệnh: op = 000010
Toán hạng 26-bit địa chỉ
Được sử dụng cho các lệnh nhảy
j (jump)
jal (jump and link)
Mở rộng bis theo hằng số có dấu
- Với các lệnh addi, lw, sw cần cộng nội dung thanh ghi với hằng số
- Thanh ghi có độ dài 32 bit
- Hằng số imm 16-bit, cần mở rộng thành 32-bit theo kiểu số có dấu (Sign-
extended)
- Ví dụ mở rộng số 16-bit thành 32-bit theo kiểu số có dấu
19
Báo cáo Kiến trúc máy tính
HẾT CHƯƠNG 4
20
Báo cáo Kiến trúc máy tính
21