Xem mẫu
- Kiến trúc tập lệnh1
- Nội dung
¡ Xem lại cách thực thi một chương trình
¡ Phân loại lệnh trong MIPS
¡ Truy cập bộ nhớ trong MIPS
¡ Chi tiết về các toán tử
– Add, sub, etc.
¡ Chi tiết về các lệnh chuyển đổi dữ liệu
– Load, store…
¡ Chi tiết về các lệnh điều khiển
– Jump, branch if equal…
- Thực thi lệnh
Today we’re going to learn the details!
- 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
- 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)
- Bảng tham khảo định dạng lệnh
- 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.
– Kí hiệu R0…R31 hoặc $0…$31 Trả lời: Luôn cần
– Các biến phải lưu trên thanh ghi. giá trị 0 trong một
chương trình
Một số trường hợp đặc biệt. Move:
– R0 luôn có giá trị zero (0) add dest, src, R0
– R29 là thanh ghi con trỏ ngăn
xếp
– R31 được sử dụng cho thủ tục
quay lại địa chỉ
Một số thanh ghi đặc biệt.
– PC (Program Counter): Thanh
ghi lệnh hiện tại
– HI & LO: lưu 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
- 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ỉ bộ nhớ trong mảng
Đị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ớ (16EB)
– 64-bit x86 lên tới ~48‐bits một ô nhớ (4PB).
- Dữ liệu: Kiểu và kích thước
Các kiểu dữ liệu trong MIPS được định nghĩa là 1 từ
– Một từ gồm 32 bits = 4 bytes
– 232 bytes = 230 words: addresses 0, 4, 8, …
Câu hỏi: Đâu là 2 bit cuối cùng trong một địa chỉ từ ?
- Truy nhập alignment (Access alignment)
• Đị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
• Địa chỉ Unalignment thì không (e.g., 1, 3, 7, 63)
• Một số kỹ thuật hỗ trợ truy cập Unaligment (not MIPS)
– Phần cứng có thể chuyển đổi thành đa truy cập định tuyến ( complex)
– Phần cứng có thể dò được và có phần mềm cố định truy cập không
định tuyến (slow)
• Một số nhược điểm
– 2 truy cập bộ nhớ cộng gộp tạo ra dữ liệu unaligned
– Intel cung cấp hỗ trợ thực thi mức cao trên vào năm 2010 (Nehalem)
- Processor execution model
¡Bộ xử lý thực thi
lệnh theo 2 chế Question:
Why do we
care about in‐
độ sequential và order and
atomic
execution?
atomic
Answer:
Without it we
could not
understand
the program.
– Sequential:
- Máy tính lưu trữ chương trình
Chương trình và dữ liệu được lưu trữ trong bộ nhớ
– Các lệnh phải được nạp từ bộ nhớ để thực thi
– Dữ liệu phải được nạp từ bộ nhớ để tính toán
- Ví dụ: Các chỉ thị lệnh
Phép toán (Data operations)
– Số học (add, multiply, subtract, divide,
1. Data operations:
…) add/sub
– Logic (and, or, not, xor, …)
Dịch chuyển dữ liệu (Data transfer)
– Move (register to register) 2. Data transfers: load
– Load (memory to register) word/store word
– Store (register to memory)
Rẽ nhánh (Sequencing)
3. Sequencing:
– Branch (conditional, e.g., , ==)
Branch/jump
– Jump (unconditional, e.g., goto)
- Chi tiết về các chỉ thị lệnh
1. Program Counter (PC) lưu trữ địa
chỉ lệnh.
2. Các lệnh được nạp từ bộ nhớ
vào thanh ghi lệnh.
3. Bộ điều khiển giải mã lệnh và
báo cho ALU và tệp thanh ghi
phải làm gì.
4. ALU thực thi lệnh và kết quả
được chuyển lại tệp thanh ghi.
5. Bộ điều khiển cập nhật lại giá
trị của PC cho lệnh tiếp theo.
- Add/sub example (1 of 2)
- Add/sub example (2 of 2)
Bộ đếm chương
trình (PC) nạp lệnh
từ thanh ghi lệnh
Control báo cho
ALU và thanh ghi
dữ liệu (Register
File) phải làm gì.
ALU ghi kết quả vào
Register File.
- Thực hành: add/sub
f=(g+h) ‐(i+j)
R3=f
R4=g
R5=h
R6=i
R7=j
- Các lệnh dịch chuyển dữ liệu
- Chi tiết về dịch chuyển dữ liệu
1. ALU tạo ra địa chỉ
2. Địa chỉ gửi tới thanh ghi
địa chỉ bộ nhớ (Memory
Address Register)
3. Kết quả xác định hướng
dịch chuyến đi/ đến được
lưu trữ trên thanh ghi dữ
liệu bộ nhớ (Memory Data
Register)
4. Dữ liệu từ bộ nhớ có thể
được ghi lại trên tệp thanh
ghi (Register File) hoặc
ghi vào bộ nhớ.
nguon tai.lieu . vn