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 điều khiển control Xây dựng đường đi dữ liệu và điều khiển mang tính
Trang 1Khoa KH & KT Máy tính
Bộ môn Kỹ thuật Máy tính
Trang 2Tài liệu tham khảo
John L Hennessy & David A Patterson, Second Edition,
MORGAN KAUFMANN PUBLISHERS, INC 1998
John L Hennessy & David A Patterson, Third Edition,
MORGAN KAUFMANN PUBLISHERS, INC 2002
Trang 3Chương 5.
Trang 45.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
đ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
Trang 55.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
• Đọ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
Trang 65.1
) Các khối mạch được chia làm 2 loại: mạch tổ hợp
hay mạch tuần tự
) Sơ đồ tổng quát hiện thực kiến trúc phần cứng ở MIPS
Trang 75.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ộ cộng) Bộ đếm chương trình (PC)
Trang 95.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
• 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
Trang 105.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ớ ?
Trang 125.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 ?
Trang 135.2
) Đường đi dữ liệu cho
lệnh rẽ nhánh
Trang 145.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
Trang 15MemWrite
M U X
ALUSrc
M U X
MemtoReg
Trang 16MemWrite
M U X
ALUSrc
M U X
MemtoReg
Instruction address
Instruction
Instruction memory
Trang 17M U X
ALUSrc
M U X
MemtoReg
Instruction address
Instruction
Instruction memory
PCSrc
Trang 185.3
) Điều khiển ALU
• Các tín hiệu điều khiển
• Quan hệ với câu lệnh
• Thiết kế các tín hiệu điều
Opcode
Trang 19rd rt
rs 0
rs 4
Trang 20Read data 1
Read data 2
Registers
Regwrite
Zero Result
ALU
Address
Write data
Read data
Data memory
MemWrite
1
M U X
0
ALUSrc
1
M U X
0
MemtoReg
Instruction address
Instruction [31 - 0]
Instruction memory
1 RegDst
Instruction [25 - 21]
Instruction [20 - 16]
Instruction [15 - 11]
Instruction [15 - 0]
Trang 215.3
) Đường đi dữ liệu + Đơn vị điều khiển = Bộ xử lý
Read register 1 Read register 2 Write register
Write data
Read data 1
Read data 2
Data memory
1
M U X
0
1
M U X
0
Instruction address
Instruction [31 - 0]
Instruction memory
1
Instruction [25 - 21]
Instruction [20 - 16]
Instruction [15 - 11]
RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite
Trang 225.4 Bộ xử lý đa chu kỳ
) Trong thực tế, người ta không sử dụng bộ xử lý đơn chu
kỳ vì các lý do sau
• Thời gian thực hiện các câu lệnh luôn khác nhau Ö phải chọn
chu kỳ hoạt động của bộ xử lý bằng với chu kỳ thực thi câu lệnh dài nhất !
• Khả năng trùng lắp các phần tử chức năng cao
) Ở bộ xử lý đa chu kỳ (multiple clock), quá trình thực thi 1 câu lệnh diển ra thành nhiều chu kỳ clock
) Bộ xử lý đa chu kỳ khắc phục được những nhược điểm
chính của bộ xử lý đơn chu kỳ
) Một số khác biệt trong thiết kế
• Tinh chỉnh thời gian thực thi từng câu lệnh theo giản đồ trạng thái
• Có thể sử dụng 1 bộ nhớ chung cho cả câu lệnh lẫn dữ liệu
Trang 23Register #
Register # Register #
B
Trang 24Bài tập
) 5.5) 5.10
John L Hennessy & David A Patterson, Second Edition,
MORGAN KAUFMANN PUBLISHERS, INC 1998