Bài giảng Kiến trúc máy tính - Chương 2: Kiến trúc tập lệnh - Tạ Kim Huệ
Kiến trúc má y tí nh
Computer architecture
To improve is to change; to be
perfect is to change often.
Chương 2: Kiến trúc tập lệnh
1. Tập lệnh MIPS
2. Biên dịch mã máy
Kiến trúc tập lệnh
software
instruction set
hardware
• Multiple Implementations: 8086 → Pentium 4
• ISAs evolve: MIPS-I, MIPS-II, MIPS-II, MIPS-IV,
MIPS,MDMX, MIPS-32, MIPS-64
Chu kỳ thực thi lệnh cơ bản
Instruction
Fetch
Obtain instruction from program storage
Determine required actions and instruction size
Locate and obtain operand data
Instruction
Decode
Operand
Fetch
Compute result value or status
Execute
Result
Store
Deposit results in register or storage for later use
Next
Determine successor instruction
Instruction
Thực thi chương trì nh
Bộ xử lý thực thi chương trì nh
như thế nào?
1. Tải lệnh
2. Tì m ra toá n tử được sử
dụng
3. Tì m ra dữ liệu nào được
sử dụng
4. Thực hiện tí nh toá n
5. Tì m lệnh tiếp theo
Lặp lại quá trì nh …
Bài giảng nhấn mạnh sự thực thi trong bộ xử lý MIPS
Thực thi lệnh
Today we’re going to learn the details!
Thực thi lệnh
Computer
Program
Programmer's View
(Instructions)
ADD
01010
01110
SUBTRACT
CPU
AND
10011
Memory
OR
10001
COMPARE
11010
.
.
.
.
.
.
I/O
Computer's View
Kiến trúc Princeton (Von Neumann)
Kiến trúc Harvard
--- Data and Instructions mixed in same
--- Data & Instructions in
unified memory
separate memories
--- Program as data
--- Has advantages in certain
high performance
--- Storage utilization
--- Single memory interface
implementations
--- Can optimize each memory
Các kiểu toán hạng cơ bản
Declining cost of registers
So sánh số lượng toán hạng
Thực thi phép toán (C = A + B) với các kiểu toán hạng khác nhau
Register
Register
Stack
(load-store)
Accumulator
(register-memory)
Push A
Push B
Add
Load A
Add B
Store C
Load R1,A
Add R1,B
Store C, R1
Load R1,A
Load R2,B
Add R3,R1,R2
Store C,R3
Pop C
1
Cycles Seconds
ExecutionTime =
= Instructions
Performance
Instruction Cycle
So sá nh số lượng cá c chỉ thị
Kích thước toán hạng (Operand)
0%
Doubleword
69%
74%
Word
Int Avg.
FP Avg.
31%
19%
Halfword
Byte
0%
0%
7%
0%
20%
40%
60%
80%
Frequency of reference by size
Tập thanh ghi trong MIPS
Câ u hỏi: Tại sao
giá trị thanh ghi
R0 luô n bằng 0?
32 Thanh ghi đa dụng.
– R0…R31 or $0…$31
Trả lời: Luô n cần
giá trị 0 trong một
chương trì nh
– Cá c biến phải lưu trên thanh ghi.
Một số trường hợp đặc biệt.
– R0 luô n có giá trị zero (0)
– R29 là thanh ghi con trỏ ngăn xếp
– R31 được sử dụng cho thủ tục
quay lại địa chỉ
Move:
add dest, src, R0
Một số thanh ghi đặc biệt.
– PC (Program Counter): Thanh
ghi lệnh hiện tại
– HI & LO kết quả của phé p nhâ n
– Thanh ghi dấu phẩy động
– Một số thanh ghi điều khiển (kiểm
soá t lỗi hoặc trạng thá i)
Tổ chức bộ nhớ
Bộ nhớ là một mảng 1 chiều lưu trữ dữ liệu
• Mỗi ô nhớ có kí ch thước 1 byte (8 bits)
• Địa chỉ ô nhớ được xá c định theo địa chỉ byte.
Địa chỉ bộ nhớ được đánh chỉ số trên mảng
• Má y tí nh 32 bits, có 232 ô nhớ (4GB)
• Má y tí nh 64‐bit, có 264 ô nhớ (16ExaByte)
Ví dụ:
– 64-bit x86 lên tới ~48‐bits một ô nhớ (4PetaByte).
Tổ chức bộ nhớ
Cá c kiểu dữ liệu trong MIPS được định nghĩa là 1-byte hoặc 1-word
– Một từ gồm 32 bits = 4 bytes
– 232 bytes = 230 words: addresses 0, 4, 8, …
Câ u hỏi: địa chỉ của một từ được xá c định như thế nào ?
Địa chỉ Alignment : Tạo trên 4 byte (word) ở đường biên (e.g., 0, 4, 8, 12…)
– Dữ liệu được lưu trữ ở địa chỉ byte chia hết cho kí ch thước
Ánh xạ địa chỉ theo byte: Endianess
7
0
Big Endian: address of most significant byte = word address
(xx00 = Big End of word)
1019
1018
1017
1016
1015
1014
1013
1012
1011
1010
1009
1008
1007
1006
1005
1004
1003
1002
1001
1000
IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA
Big Endian
31 24 23 16 15
8 7
0
Little Endian
Little Endian: address of least significant byte =
word address (xx00 = Little End of word)
Intel 80x86, DEC Vax, DEC Alpha (Windows NT)
Ánh xạ địa chỉ theo tuyến : Alignment
0
1
2
3
Aligned
Not
Aligned
Alignment: require that objects fall on address that is multiple
of their size.
Dạng chỉ thị MIPS và các chế độ đánh địa chỉ
• Các chỉ thị lệnh dài 32 bits
Register (direct)
op
rs rt rd
register
Immediate
Base+index
op
op
rs rt
rs rt
immed
immed
Memory
Memory
register
+
+
PC-relative
op
rs rt
PC
immed
Thống kê các kiểu địa chỉ
Ví dụ: Tập lệnh MIPS
Định dạng trường lệnh 3 toá n hạng :
Complex operation
many instructions
with temporary
values.
Phâ n loại tập lệnh
Toá n tử
– Số học (add, multiply, subtract, divide, …)
– Logic (and, or, not, xor, …)
Dịch chuyển dữ liệu
– Move (register to register)
– Load (memory to register)
– Store (register to memory)
Điều khiển dữ liệu
– Branch (có điều kiện, e.g., <, >, ==)
– Jump (khô ng điều kiện, e.g., goto)
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 2: Kiến trúc tập lệnh - Tạ Kim Huệ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_2_kien_truc_tap_lenh_ta.pptx