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ử 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  
Thc thi phép toán (C = A + B) vi các kiu toán hng 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ớ 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 64bit, có 264 ô nhớ (16ExaByte)  
dụ:  
64-bit x86 lên tới ~48bits 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 chthlnh 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ỉ  
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 đủ
pptx 65 trang yennguyen 12/04/2022 12480
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:

  • pptxbai_giang_kien_truc_may_tinh_chuong_2_kien_truc_tap_lenh_ta.pptx