You are on page 1of 21

Báo cáo Kiến trúc máy tính

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI


VIỆN TOÁN ỨNG DỤNG VÀ TIN HỌC


BÁO CÁO
Môn: Kiến Trúc Máy Tính
Đề tài:
Kiến Trúc Tập Lệnh

Giảng viên hướng dẫn: TS. Phạm Huyền Linh


Sinh viên thực hiện : Nguyễn Nam Đàn
MSSV : 20173490
Lớp : Toán Tin 01

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

 Địa chỉ toán hạng (Addressing Operand)


o Số lượng địa chỉ toán hạng

3 toán hạng 2 toán hạng

- 2 toán hạng nguồn, 1 toán - 1 toán hạng là toán hạng


hạng đích nguồn, toán hạng còn lại vừa
là nguồn vừa là đích
- VD: c = a + b
- VD: a = a + b
- Từ lệnh dài vì phải mã hoá
địa chỉ cho cả 3 toán hạng - Giá trị cũ của 1 toán hạng
nguồn sẽ bị ghi đè bằng K
- Thường được sử dụng trên
các bộ xử lý tiên tiến - Giảm độ dài của lệnh

- Sử dụng phổ biến

7
Báo cáo Kiến trúc máy tính

1 toán hạng 0 toán hạng


- Toán hạng thường là một thanh - Các toán hạng đều được ngầm
ghi (VD: thanh chứa - định
Accumulator)
- Sử dụng Stack
- Toán hạng thứ hai được ngầm
hiểu - VD: lênh c = a + b (push a ->
push b -> add -> pop c)
- Sử dụng phổ biến trên các bộ vi
xử lý thế hệ cũ - Không thông dụng

Ví dụ:

o Các kiểu địa chỉ toán hạng

a.Hằng số: (Immediate)

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ế

- Thường dùng nạp giá trị khởi đầu cho biến

b. Trực tiếp(Direct)

- Ít thông dụng

- Bị hạn chế về không gian địa chỉ

c.Gián tiếp( Indirect)

- Không bị hạn chế không gian địa chỉ

- Dùng mất hai ô nhớ cho một toán hạ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)

- Trường địa chỉ là địa chỉ của thanh ghi

- Chiều dài trường địa chỉ thường nhỏ, 3->5 bit

- Tốc độ xử lý nhanh , vì không quy nhập bộ nhớ

- Nhược: Số lượng thanh ghi có hạn

e.Gián tiếp thanh ghi (Register Indirect)

- Khắc phục được hạn chế về không gian địa chỉ

- Sử dụng không gian nhớ gián tiếp ít hơn kiểu địa chỉ gián tiếp

f. Địa chỉ dịch chuyển (Displacement)

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ỉ)

- Các lệnh cơ bản

Các lệnh điều khiển hệ thống

- HALT: dừng thực hiện chương trình

- 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

- 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ác lệnh truyền điều khiể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

Các lệnh chuyển dữ liệu


- HALT: dừng thực hiện chương trình

- 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ác lệnh số học

- Đặ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

Các lệnh vào ra

12
Báo cáo Kiến trúc máy tính

- Đặc điểm: Trao đổi dữ liệu với thiết bị ngoại vi


- Các lệnh:
INPUT: copy dữ liệu từ một cổng xác định đến đích
OUTPUT: copy dữ liệu nguồn đến cổng xác định

Các lệnh chuyển dữ liệu


 Đặc điểm:
Sao chép dữ liệu từ nguồn sang dịch
Không ảnh hưởng đến các cờ
- Các lệnh:
MOVE: copy dữ liệu từ nguồn đích
LOAD: copy dữ liệu từ bộ nhớ đến BKL
STORE: copy dữ liệu từ BXL đến bộ nhớ
PUSH: copy dữ liệu từ nguồn điện stack
PCP : copy dữ liệu từ stack đến đích

 Định dang lệnh:


 Chiều dài các lệnh:
 Cách bố trí các trường trong chỉ thị lệnh
 Số bit dành cho mỗi trường
 Địa chỉ toán hạng là ẩn hay hiện
 Kiểu của địa chỉ toán hạng
1.

Opcode Source Destination


4 6 6
2.

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.

Opcode Source Destination Memory address


4 6 6 16
10.

Opcode R Source Memory address


7 3 6 16

11.

Opcode FP Source Memory address


8 2 6 16
12.
14
Báo cáo Kiến trúc máy tính

Opcode Destination Memory address


10 6 16
13.

Opcode Source Destination Memory address1 Memory address2


4 6 6 16 16

+ Thiết kế tập lệnh:


 Thao tác
Các kiểu thao tác
Thao tác chuyển dữ liệu
Thao tác sử lý số học và logic
Thao tác vào ra dữ liệu qua cổng
Thao tác điều khiển rẽ nhánh
Thao tác điều khiển hệ thống
Thao tác xử lý số dấu chấm động
Thao tác chuyên dụng khác: xử lý ảnh, âm thanh, tắt tiếng nói,…
 Kiểu dữ liệu: kiểu dữ liệu mà các thao tác có thể thực hiện được
 Dạng của các lệnh:Chiều dài, số địa chỉ, kích thước của các trường
 Thanh ghi: số thanh ghi và vai trò của chúng
 Địa chỉ: Kiểu của địa chỉ

II. Kiến trúc tập lệnh CISC và RISC


- CISC: Complex Instruction Set Computer
 Máy tính với tập lệnh phức tạp
 Các CPU: Intel x86, Motorola 680x0
- RISC: Reduced Instruction Set Computer
 Máy tính với tập lệnh thu gọn
 CPU: SunSPARC, Power PC, MIPS, ARM…
 RISC đối nghịch với CISC
 Kiến trúc tập lệnh tiên tiến
- Các đặc trưng của kiến trúc CISC:
 Được nghĩ ra từ những năm 1960
 Lệnh có độ dài thay đổi phức tạp gần giống với NNLT bậc cao
 Chiều dài lệnh có thể lên tới vài trạm bit
 Có nhiều chế độ địa chỉ
 Hỗ trợ các loại dữ liệu phức tạp
 Một lệnh có thể thực hiện trên nhiều chu kì
15
Báo cáo Kiến trúc máy tính

 Thuận tiện cho việc lập trình


- Các đặc trưng của kiến trúc RISC
 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 các lệnh là như nhau
 Các lệnh có độ dài cố định ( thường là 32 bit)
 Số lượng dạng lệnh ít
 Có ít phương pháp định địa chỉ toán hạng
 Có nhiều thanh ghi
 Thuận tiện cho việc thiết kế song song hay tăng

 So sánh kiến trúc CISC và RISC


- Ưu của RISC:
 Diện tích cho BXL nhỏ -> dễ thể tích hợp thêm BXL
 Tốc độ tính toán cao ( Câu lệnh đơn giản, dễ giải, chu kỳ lệnh như
nhau nên hiệu quả trong việc thực hiện kỹ thuật đường ống, không
phải thâm nhập nhiều bộ nhớ )
 Giảm chi phí thiết kế
 Bộ điều khiển đơn giản hơn
- Nhược điểm của RISC:
 Chương trình dài
 Ít câu lệnh hỗ trợ bậc cao
- Ưu điểm của CISC:
 Chương trình ngắn hơn
 Thâm nhập bộ nhớ dễ dàng hơn
 Trợ giúp mạnh hơn cho các ngôn ngữ cấp cao
 Các tính năng có dấu phảy mạnh
- Nhược điểm của CISC:
 Tốc độ tính toán chậm
 Thời gian xây dựng BXL lâu hơn
 Kích thước BXL lớn -> giảm khả năng tích hợp them BXL
III. Kiến trúc tập lệnh MIPS (MIPS Architecture)
- MIPS viết tắt cho Microprocessor without Interloked Pipeline Stages)
- Được phát triển bởi John Hennessy và các đồng nghiệp ở đại học
Stanford (1984)
- Được thương mại hóa bở MIPS Technologies
- Là kiến trúc RISC điển hình dễ học
- Được sủ dụng nhiều trong sản phẩm thực tế

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

 MIPS có tập 32 thanh ghi 32 bit


 Được sử dụng thường xuyên
 Được đánh số từ 0 đến 31( mã hóa bằng 5 bít)
 Chương trình hợp ngữ đặt tên:
 $t0, $t1, …, $t9 chứa các giá trị tạm thời
 $s0, $s1, …, $s7 cất các biến
 Quy ước gọi dữ liệu trong MIPS
 Dữ liệu 32 bit được gọi là word
 Dữ liệu 16 bit được gọi là halfword
2. Các kiểu lệnh máy của MIPS
 Lệnh kiểu R

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 R. Các trường của lệnh


 op ( operation code – opcode) mã thao tác với các lệnh kiểu R, op=
000000
 rs : số hiệu thanh ghi nguồn thứ nhất
 rt : số hiệu tahnh ghi nguồn thứ hai
 rd : số hiệu thanh ghi đích
 shamt: số bit được dịch chỉ dùng cho lệnh dịch bit với các lệnh khác
shamt =00000
 funct : mã hàm

Ví dụ mã máy của lệnh add, sub

- 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

lw rt, imm(rs) # (rt) = mem[(rs)+SignExtImm]


sw rt, imm(rs) #mem[(rs)+SignExtImm] = (rt)

Ví dụ mã máy của lệnh addi

- 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

Tài liệu tham khảo


- Bài giảng “Kiến trúc máy tính” – Giảng viên: Phạm Huyền Linh – Bộ môn: Toán
tin – Đại học Bách khoa Hà Nội

- Tra cứu trên Wikipedia tiếng Việt

21

You might also like