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 đủ
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:
- bai_giang_kien_truc_may_tinh_tuan_10_bo_xu_ly_processor.pptx