Xem mẫu
- Khoa KH & KT Máy tính
Khoa
Boä moân Kyõ thuaät Maùy tính
Phaïm Töôøng Haûi
ng
Nguyeãn Quoác Tuaán
- Tài liệu tham khảo
“Computer Organization and Design: the hardware/software
interface”,
John L. Hennessy & David A. Patterson, Second Edition,
MORGAN KAUFMANN PUBLISHERS, INC. 1998
“Computer Architecture: a quantitative approach”,
John L. Hennessy & David A. Patterson, Third Edition,
MORGAN KAUFMANN PUBLISHERS, INC. 2002
Kiến trúc Máy tính - Chap 05 2
- Chương 5.
Kiến trúc Máy tính - Chap 05 3
- 5.1 Dẫn nhập
Hiệu suất của máy tính được quyết định bởi 3 yếu tố
chính: số câu lệnh, chu kỳ clock và CPI (cycle per
instruction)
Chương trình dịch và cấu trúc tập lệnh quyết định số câu
lệnh của chương trình
Chu kỳ clock và CPI được quyết định bởi cách hiện thực
của bộ xử lý, cụ thể là đường đi dữ liệu (datapath) và
điều khiển (control)
Xây dựng đường đi dữ liệu và điều khiển (mang tính
minh họa) cho 1 bộ phận của tập lệnh MIPS
• Lệnh truy xuất bộ nhớ: lw và sw
• Lệnh số học – luận lý: add , sub , and , or , và slt
• Lệnh nhảy: beq và j
Kiến trúc Máy tính - Chap 05 4
- 5.1 ...
Bất kỳ câu lệnh nào cũng phải thực thi 2 bước đầu tiên
như sau
• Gửi nội dung của thanh ghi bộ đếm chương trình (program
counter – PC) đến bộ nhớ lệnh để lấy câu lệnh từ bộ nhớ
• Đọc một vài thanh ghi (toán hạng) có địa chỉ được xác định bởi
các vùng toán hạng của câu lệnh
Sau 2 bước thực thi trên, các bước thực thi kế tiếp
nhằm hoàn thành câu lệnh phụ thuộc vào từng nhóm
lệnh khác nhau
Đối với tập con các lệnh MIPS chúng ta chọn để minh
họa, các bước thực thi có khá nhiều điểm giống nhau
(td. sử dụng bộ số học – luận lý ALU)
Điểm khác biệt chủ yếu nằm ở các bước thực thi cuối
của câu lệnh
Kiến trúc Máy tính - Chap 05 5
- 5.1 ...
Các khối mạch được chia làm 2 loại: mạch tổ hợp
(combinational circuit) và mạch trạng thái (state circuit)
hay mạch tuần tự
Sơ đồ tổng quát hiện thực kiến trúc phần cứng ở MIPS
Kiến trúc Máy tính - Chap 05 6
- 5.2 Xây dựng đường đi dữ liệu
Phương thức xây dựng đường đi dữ liệu
• Xác định các phần tử kiến trúc cần thiết cho câu lệnh
• Xây dựng dần dần các phân khúc cho đường đi dữ liệu ứng với
từng công đoạn trong thực thi câu lệnh
• Tiến đến xây dựng hoàn chỉnh đường đi dữ liệu cho câu lệnh
Bộ nhớ lệnh (instruction memory)
Bộ đếm chương trình (PC) Bộ cộng
Kiến trúc Máy tính - Chap 05 7
- 5.2 ...
Đường đi dữ liệu cho bước đọc lệnh
Tiến hành xây dựng
đường đi dữ liệu cho
các lệnh R-type ?
add $t1 , $t2 , $t2
sub $s0 , $t0 , $t1
slt $t0 , $s0 , $s1
Kiến trúc Máy tính - Chap 05 8
- 5.2 ...
Tập thanh ghi (register files)
• 2 ngõ đọc dữ liệu
• 1 ngõ ghi dữ liệu
• 3 ngõ nhận địa chỉ thanh ghi
• Tín hiệu điều khiển ghi
Đơn vị số học – luận lý
(ALU – Arithmetic Logic
Unit)
• 32-bit ALU đã giới thiệu ở
chương 4
• 3-bit các tín hiệu điều khiển
• 2 ngõ vào toán hạng 32-bit
• 1 ngõ ra kết quả và 1 bit zero
Kiến trúc Máy tính - Chap 05 9
- 5.2 ...
Đường đi dữ liệu cho lệnh dạng R-type
Xây dựng đường đi dữ liệu cho các lệnh truy xuất bộ
nhớ ?
lw $t0, 0($t1) sw $t1 , 4($sp)
Kiến trúc Máy tính - Chap 05 10
- 5.2 ...
Bộ nhớ dữ liệu (Data
memory unit)
• 1 ngõ nhận địa chỉ ô nhớ
• 1 ngõ nhận dữ liệu ghi
• Tín hiệu điều khiển đọc/ghi
• 1 ngõ dữ liệu đọc
Bộ mở rộng dấu (Sign-
extension unit)
• Ngõ nhập dữ liệu 16-bit
• Ngõ ra dữ liệu 32-bit
Kiến trúc Máy tính - Chap 05 11
- 5.2 ...
Đường đi dữ liệu cho lệnh truy xuất bộ nhớ
Xây dựng đường đi dữ liệu cho lệnh rẽ nhánh ?
beq $s3 , $s4 , L1
Kiến trúc Máy tính - Chap 05 12
- 5.2 ...
Đường đi dữ liệu cho
lệnh rẽ nhánh
Kiến trúc Máy tính - Chap 05 13
- 5.3 Hiện thực bộ xử lý đơn chu kỳ
Hiện thực bộ xử lý cho các câu lệnh MIPS đã xét
• Xây dựng đường đi dữ liệu cho tất cả các nhóm lệnh trên cơ sở
tổng hợp các đường đi dữ liệu đã khảo sát
• Thêm vào các tín hiệu điều khiển
• Chỉ hiện thực đơn giản bằng kiến trúc đơn chu kỳ (singcle cycle)
Xây dựng đường đi dữ liệu cho tất cả các câu lệnh
• Đáp ứng thực thi mọi câu lệnh chỉ trong 1 chu kỳ clock
• Cần phải nhân số lượng đối với các phần tử kiến trúc được sử
dụng nhiều hơn 1 lần trong cùng một câu lệnh
• Cần 1 bộ nhớ dành riêng cho câu lệnh và 1 bộ nhớ dành riêng
cho dữ liệu
• Chia sẽ các phần tử kiến trúc giữa những nhóm lệnh khác nhau
nhờ vào các bộ multiplexor hay còn gọi là data selector
Kiến trúc Máy tính - Chap 05 14
- 5.3 ...
Xây dựng đường đi dữ liệu cho các lệnh bộ nhớ và lệnh
R-type
ALU operation
Read 3
register 1 Read data 1 MemWrite
Read ALUSrc MemtoReg
Zero
register 2
Instruction
ALU
Registers
Write Read data
Address
Result
M M
register
U U
X X
Read data 2
Write data
Data
Regwrite Write data
memory
Sign extend
16 32
MemRead
Kiến trúc Máy tính - Chap 05 15
- 5.3 ...
Thêm vào đường đi dữ liệu cho bước đọc lệnh
Adder
4
ALU operation
Read
Instruction 3
PC register 1
address MemWrite
Read data 1
Read ALUSrc MemtoReg
Instruction Zero
register 2
memory ALU
Registers
Write Read data
Address
Result
M M
register
U U
Instruction
X X
Read data 2
Write data
Data
Regwrite Write data
memory
Sign extend
16 32
MemRead
Kiến trúc Máy tính - Chap 05 16
- 5.3 ...
Hiện thực đường đi dữ liệu cho cả 3 nhóm lệnh
PCSrc
M
U
X
Adder
Shift left 2
Adder
4
ALU operation
Read
Instruction 3
PC register 1
address MemWrite
Read data 1
Read ALUSrc MemtoReg
Instruction Zero
register 2
memory ALU
Registers
Write Read data
Address
Result
M M
register
U U
Instruction
X X
Read data 2
Write data
Data
Regwrite Write data
memory
Sign extend
16 32
MemRead
Kiến trúc Máy tính - Chap 05 17
- 5.3 ...
Điều khiển ALU
ALU control Input Function
• Các tín hiệu điều khiển
000 AND
001 OR
• Quan hệ với câu lệnh 010 Add
110 Subtract
• Thiết kế các tín hiệu điều 111 Set on less than
khiển ?
Opcode ALUOp Operation Funct field ALU control Input
LW 00 XXXXXX 010
load word
SW 00 XXXXXX 010
store word
BEQ 01 XXXXXX 110
branch equal
R-type 10 100000 010
add
R-type 10 100010 110
subtract
R-type 10 100100 000
AND
R-type 10 100101 001
OR
R-type 10 101010 111
set on less than
Kiến trúc Máy tính - Chap 05 18
- 5.3 ...
Dạng thức nhóm lệnh R-type
0 rs rt rd shamt funct
31 - 26 25 - 21 20 -16 15 - 11 10 - 6 5-0
Dạng thức các lệnh load/store
35 hay 43 rs rt address
31 - 26 25 - 21 20 -16 15 - 0
Dạng thức các lệnh rẽ nhánh
4 rs rt address
31 - 26 25 - 21 20 -16 15 - 0
Kiến trúc Máy tính - Chap 05 19
- 5.3 ...
Đường đi dữ liệu dưới tác động của câu lệnh
PCSrc
0
M
U
X
Adder
1
Shift left 2
Adder
4
Regwrite
Instruction [25 - 21] Read
Instruction
PC register 1
address Read MemWrite
data 1
Instruction [20 - 16] Read ALUSrc MemtoReg
Instruction Zero
register 2
memory ALU
Write Registers
0 Read 1
1 Address
Result
M M
data
M
register
Instruction
Instruction U U
U
[15 - 11]
[31 - 0] X X
Read X
Write data
1 0
0 Data
data 2
Write memory
RegDst
data
Instruction
Sign extend
[15 - 0] 16 32
MemRead
ALU
control
Instruction [15 - 0]
ALUOp
Kiến trúc Máy tính - Chap 05 20
nguon tai.lieu . vn