Bài giảng Kiến trúc máy tính - Tuần 10: Bộ xử lý processor

KIẾN TRÚC MÁY TÍNH  
Tuần 10  
BỘ XỬ LÝ  
PROCESSOR  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
1
BỘ XỬ LÝ  
Mục đích:  
✓ Hiểu cơ chế thực thi lệnh và các quy ước về thiết kế  
logic  
✓ Thiết kế Datapath với 8 lệnh cơ bản cho một bộ xử lý và  
cách hiện thực thiết kế này.  
Slide tham khảo từ:  
1. Computer Organization and Design: The Hardware/Software Interface,  
Patterson, D. A., and J. L. Hennessy, Morgan Kaufman, Revised Fourth  
Edition, 2011.  
2. NUS, Singapore  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
2
BỘ XỬ LÝ  
1. Giới thiệu  
2. Nhắc lại các quy ước thiết kế logic  
3. Xây dựng đường dữ liệu (datapath) đơn giản  
4. Hiện thực datapath đơn chu kỳ  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
3
Giới thiệu  
❖ Hiệu suất của một máy tính được xác định bởi ba yếu tố:  
Tổng số câu lệnh  
Được xác định bởi trình biên dịch  
và kiến trúc tập lệnh  
Chu kỳ xung clock  
Được xác định bởi quá  
trình hiện thực bộ xử lý  
Số chu kỳ xung clock trên một lệnh  
(Clock cycles per instruction − CPI)  
❖ Mục đích chính của chương này:  
- Giải thích quy tắc hoạt động và hướng dẫn xây dựng datapath cho một bộ xử lý chứa  
một số lệnh đơn giản (giống kiến trúc tập lệnh dạng MIPS), gồm hai ý chính:  
• Thiết kế datapath  
• Hiện thực datapath đã thiết kế  
MIPS (bắt nguồn từ chữ viết tắt của ‘Microprocessor without Interlocked Pipeline Stages’) là  
một kiến trúc tập tập lệnh dạng RISC, được phát triển bởi MIPS Technologies (trước đây là  
MIPS Computer Systems, Inc.)  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
4
Giới thiệu  
Chương này chỉ xem xét 8 lệnh trong 3 nhóm chính của tập lệnh  
MIPS:  
▪ Nhóm lệnh tham khảo bộ nhớ (lw và sw)  
▪ Nhóm lệnh liên quan đến logic và số học (add, sub, AND, OR, và slt)  
▪ Nhóm lệnh nhảy (Lệnh nhảy với điều kiện bằng beq)  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
5
Giới thiệu  
Tổng quan các lệnh cần xem xét:  
Nhóm lệnh tham khảo bộ nhớ:  
Nạp lệnh → Đọc một/hai thanh ghi → Sử dụng ALU → Truy xuất bộ nhớ để đọc/ghi dữ  
liệu  
Nhóm lệnh logic và số học:  
Nạp lệnh → Đọc một/hai thanh ghi → Sử dụng ALU → Ghi dữ liệu vào thanh ghi  
Nhóm lệnh nhảy:  
Nạp lệnh → Đọc một/hai thanh ghi → Sử dụng ALU → Chuyển đến địa chỉ lệnh tiếp  
theo dựa trên kết quả so sánh  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
6
Giới thiệu  
Hình ảnh datapath của một bộ xử lý với 8 lệnh MIPS: add, sub, AND, OR, slt,  
lw, sw và beq  
03/2017  
7
BỘ XỬ LÝ  
1. Giới thiệu  
2. Nhắc lại các quy ước thiết kế logic  
3. Xây dựng đường dữ liệu (datapath) đơn giản  
4. Hiện thực datapath đơn chu kỳ  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
8
Quy ước thiết kế  
Phần này nhắc lại các khái niệm:  
❖ Mạch tổ hợp (Combinational): ALU  
❖ Mạch tuần tự (Sequential): instruction/data memories và thanh ghi  
❖ Tín hiệu điều khiển (Control signal)  
❖ Tín hiệu dữ liệu (Data signal)  
▪ Asserted (assert): Khi tín hiệu ở mức cao hoặc ‘true’  
▪ Deasserted (deassert): Khi tín hiệu ở mức thấp hoặc ‘false’  
▪ Edge-triggered clocking (Rising/Falling)  
❖ Bus  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
9
BỘ XỬ LÝ  
1. Giới thiệu  
2. Nhắc lại các quy ước thiết kế logic  
3. Xây dựng đường dữ liệu (datapath) đơn giản  
4. Hiện thực datapath đơn chu kỳ  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
10  
Quy trình thực thi lệnh  
◼ Instruction Fetch (tìm nạp lệnh):  
Instruction  
Fetch  
Nạp lệnh từ bộ nhớ (memory)  
Địa chỉ của lệnh lưu trong thanh ghi Program  
Counter (PC)  
Instruction  
Decode  
◼ Instruction Decode (giải mã lệnh):  
Tìm ra lệnh thực hiện  
Operand  
Fetch  
◼ Operand Fetch (tìm nạp toán hạng):  
Lấy các toán hạng cần thiết cho lệnh  
◼ Execute (thực thi):  
Execute  
Thực hiện câu lệnh  
Result  
Write  
◼ Result Write (lưu trữ):  
Lưu trữ kết quả  
11  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Quy trình thực thi lệnh  
◼ Bảng sau mô tả ba giai đoạn thực thi lệnh trong ba nhóm lệnh cơ bản của  
MIPS (Giai đoạn Fetch and Decode không được hiển thị)  
add $3, $1, $2 lw $3, 20( $1 ) beq $1, $2, label  
Fetch &  
Decode  
standard  
standard  
standard  
o Đọc thanh ghi $1, xem o Đọc thanh ghi $1, xem  
như toán hạng opr1 như toán hạng opr1  
o Đọc thanh ghi $2, xem o Sử dụng 20 như toán  
o Đọc thanh ghi $1, xem như  
toán hạng opr1  
o Đọc thanh ghi $2, xem như  
toán hạng opr2  
Operand  
Fetch  
như toán hạng opr2  
hạng opr2  
o MemAddr = opr1 + opr2  
o Sử dụng MemAddr để  
đọc dữ liệu từ bộ nhớ  
Taken = (opr1 == opr2 )?  
Target = PC + Label*  
Execute Result = opr1 + opr2  
Dữ liệu của từ nhớ có địa  
chỉ MemAddr được được  
lưu trữ vào $3  
Result  
Write  
Result được lưu trữ vào  
$3  
if (Taken)  
PC = Target  
◼
◼
opr = Operand  
MemAddr = Memory Address  
◼
* = simplification, not exact  
12  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Quy trình thực thi lệnh của MIPS (5 công đoạn)  
◼ Thay đổi thiết kế các giai đoạn thực hiện lệnh:  
✓ Gộp giai đoạn Decode và Operand Fetch – Giai đoạn Decode của MIPS khá đơn giản  
✓ Tách giai đoạn Execute thành ALU (Calculation) và Memory Access  
add $3, $1, $2  
lw $3, 20( $1 )  
beq $1, $2, label  
Đọc lệnh (địa chỉ của lệnh Đọc lệnh (địa chỉ của lệnh Đọc lệnh (địa chỉ của lệnh lưu  
Fetch  
lưu trong thanh ghi PC)  
o Đọc thanh ghi $1, xem o Đọc thanh ghi $1, xem  
như toán hạng opr1 như toán hạng opr1  
o Đọc thanh ghi $2, xem o Sử dụng 20 như toán  
lưu trong thanh ghi PC)  
trong thanh ghi PC)  
o Đọc thanh ghi $1, xem như  
toán hạng opr1  
o Đọc thanh ghi $2, xem như  
toán hạng opr2  
Decode &  
Operand  
Fetch  
như toán hạng opr2  
hạng opr2  
Taken = (opr1 == opr2 )?  
Target = PC + Label*  
ALU  
Result = opr1 + opr2  
MemAddr = opr1 + opr2  
Memory  
Access  
Sử dụng MemAddr để đọc  
dữ liệu từ bộ nhớ  
Dữ liệu của từ nhớ có địa  
Result được lưu trữ vào $3 chỉ MemAddr được được  
Result  
Write  
if (Taken)  
PC = Target  
lưu trữ vào $3  
13  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Quy trình thực thi lệnh của MIPS (5 công đoạn)  
Fetch  
◼ Instruction Fetch (Nạp lệnh)  
Instruction  
◼ Instruction Decode & Operand  
Decode  
Fetch  
ALU  
(Giải mã và lấy các toán hạng cần thiết, Gọi  
tắt là “Instruction Decode”)  
Memory  
Access  
◼ ALU (Giai đoạn sử dụng ALU hay giai đoạn  
thực thi)  
Result  
Write  
◼ Memory Access (Giai đoạn truy xuất vùng  
nhớ)  
◼ Result Write (Giai đoạn ghi lại kết quả/lưu  
trữ)  
14  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Quy trình thực thi lệnh của MIPS (5 công đoạn)  
Fetch  
◼ Instruction Fetch (Nạp lệnh)  
Instruction  
◼ Instruction Decode & Operand  
Decode  
Fetch  
ALU  
(Giải mã và lấy các toán hạng cần thiết, Gọi  
tắt là “Instruction Decode”)  
Memory  
Access  
◼ ALU (Giai đoạn sử dụng ALU hay giai đoạn  
thực thi)  
Result  
Write  
◼ Memory Access (Giai đoạn truy xuất vùng  
nhớ)  
◼ Result Write (Giai đoạn ghi lại kết quả/lưu  
trữ)  
15  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Giai đoạn tìm nạp lệnh (Instruction Fetch)  
◼ Giai đoạn nạp lệnh:  
1. Sử dụng thanh ghi Program Counter (PC) để tìm nạp lệnh  
từ bộ nhớ  
◼ Thanh ghi PC là một thanh ghi đặc biệt trong bộ vi xử lý  
2. Tăng giá trị trong thanh ghi PC lên 4 đơn vị để lấy địa chỉ  
của lệnh tiếp theo  
◼ Tại sao địa chỉ lệnh tiếp theo là PC + 4?  
◼ Chú ý, lệnh rẽ nhánh (branch) và lệnh nhảy (jump) là một trường  
hợp ngoại lệ  
◼ Kết quả của giai đoạn này là đầu vào cho giai đoạn  
tiếp theo (Decode):  
Kết quả của giai đoạn này là 32 bit mã máy của lệnh cần thực thi. Chuỗi 32 bits  
này sẽ sử dụng như đầu vào (input) cho giai đoạn tiếp theo là Decode  
16  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Giai đoạn tìm nạp lệnh (Instruction Fetch)  
Bộ cộng  
Add  
4
PC  
Read  
address  
Instruction  
Instruction  
Instruction  
memory  
Thanh ghi  
PC  
Vùng nhớ lưu trữ  
lệnh  
17  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Khối Instruction Memory  
◼ Vùng nhớ lưu trữ lệnh  
Instruction  
Address  
◼ Đầu vào: là địa chỉ của lệnh  
Instruction  
◼ Đầu ra: là nội dung lệnh tương ứng  
với địa chỉ được cung cấp  
Instruction  
Memory  
Instruction  
Memory  
………..  
add $3, $1, $2  
2048  
2052  
2056  
……  
Cách sắp xếp của bộ nhớ giống như hình  
bên phải➔  
sll $4, $3, 2  
andi $1, $4, 0xF  
………..  
18  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Bộ cộng  
◼ Mạch logic kết hợp để cộng 2 số - bộ cộng  
A
◼ Đầu vào:  
A+B  
Hai số 32-bit A, B  
Sum  
Add  
◼ Đầu ra:  
B
A + B  
19  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Ý niệm về việc sử dụng xung clock  
◼ Dường như thanh ghi PC được đọc và cập nhật cùng lúc:  
PC hoạt động chính xác như thế nào?  
◼ Magic of clock:  
PC được đọc trong nửa clock đầu và cập nhật thành PC+4 trong  
lần kích cạnh lên tiếp theo  
Add  
4
Time  
PC  
Read  
address  
Clk  
In  
Instruction  
100  
104  
104  
108  
108  
112  
112  
116  
PC  
In  
Instruction  
memory  
20  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
Tải về để xem bản đầy đủ
pptx 53 trang yennguyen 22260 Free
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 - Tuần 10: Bộ xử lý processor", để 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_tuan_10_bo_xu_ly_processor.pptx