Kiến trúc máy tính - Chương 6: Bộ xử lý trung tâm
MMU – Memory Mangement Unit Chuyển đổi địa chỉ ảo thành địa chỉ vật lý Cung cấp cơ chế phân trang/phân đoạn Cung cấp chế độ bảo vệ bộ nhớ
Bạn đang xem trước 20 trang tài liệu Kiến trúc máy tính - Chương 6: Bộ xử lý trung tâm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
NKK-HUT
26 May 2012 IT3030 1
Kiến trúc máy tính
Chương 6
BỘ XỬ LÝ TRUNG TÂM
(Central Processing Unit - CPU)
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
NKK-HUT
2 26 May 2012
Nội dung học phần
Chương 1. Giới thiệu chung
Chương 2. Cơ bản về logic số
Chương 3. Hệ thống máy tính
Chương 4. Kiến trúc tập lệnh
Chương 5. Số học máy tính
Chương 6. Bộ xử lý
Chương 7. Bộ nhớ
Chương 8. Vào-ra
Chương 9. Kiến trúc máy tính tiên tiến
IT3030 26 May 2012
NKK-HUT
26 May 2012 IT3030 3
6.1. Tổ chức của CPU
6.2. Thiết kế đơn vị điều khiển
6.3. Kỹ thuật đường ống lệnh
6.4. Cấu trúc bộ xử lý tiên tiến
6.5. Các kiến trúc song song mức lệnh
Nội dung
NKK-HUT
26 May 2012 IT3030 4
6.1. Tổ chức của CPU
Nhiệm vụ của CPU:
Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ
nhớ.
Giải mã lệnh (Decode Instruction): xác định thao tác
mà lệnh yêu cầu.
Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ
hoặc các cổng vào-ra.
Xử lý dữ liệu (Process Data): thực hiện phép toán số
học hay phép toán logic với các dữ liệu.
Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay
cổng vào-ra
1. Cấu trúc cơ bản của CPU
NKK-HUT
26 May 2012 IT3030 5
Sơ đồ cấu trúc cơ bản của CPU
§¬n vÞ
®iÒu khiÓn
(CU)
§¬n vÞ
sè häc vµ
logic
(ALU)
TËp c¸c
thanh ghi
(RF)
§¬n vÞ nèi ghÐp bus (BIU)
bus d÷ liÖu
bus bªn trong
bus ®Þa chØbus ®iÒu khiÓn
NKK-HUT
26 May 2012 IT3030 6
Đơn vị điều khiển (Control Unit - CU)
Đơn vị số học và logic (Arithmetic and
Logic Unit - ALU)
Tập thanh ghi (Register File - RF)
Đơn vị nối ghép bus (Bus Interface Unit -
BIU)
Bus bên trong (Internal Bus)
Các thành phần cơ bản của CPU
NKK-HUT
26 May 2012 IT3030 7
Đơn vị số học và logic
Chức năng: Thực hiện các phép toán
số học và phép toán logic:
Số học: cộng, trừ, nhân, chia, tăng, giảm,
đảo dấu
Logic: AND, OR, XOR, NOT, phép dịch bit.
NKK-HUT
26 May 2012 IT3030 8
Mô hình kết nối ALU
§¬n vÞ
sè häc vµ logic
(ALU)
D÷ liÖu vµo tõ
c¸c thanh ghi
C¸c tÝn hiÖu
tõ ®¬n vÞ
®iÒu khiÓn
Thanh ghi cê
D÷ liÖu ra ®Õn
c¸c thanh ghi
NKK-HUT
26 May 2012 IT3030 9
Đơn vị điều khiển
Chức năng
Điều khiển nhận lệnh từ bộ nhớ đưa vào
thanh ghi lệnh
Tăng nội dung của PC để trỏ sang lệnh kế
tiếp
Giải mã lệnh đã được nhận để xác định thao
tác mà lệnh yêu cầu
Phát ra các tín hiệu điều khiển thực hiện lệnh
Nhận các tín hiệu yêu cầu từ bus hệ thống và
đáp ứng với các yêu cầu đó.
NKK-HUT
26 May 2012 IT3030 10
Mô hình kết nối đơn vị điều khiển
§¬n vÞ
®iÒu khiÓn
Thanh ghi lÖnh
Bus ®iÒu khiÓn
C¸c tÝn hiÖu
®iÒu khiÓn
bªn trong CPU
C¸c cê
Clock
C¸c tÝn hiÖu
®iÒu khiÓn ®Õn
bus hÖ thèng
C¸c tÝn hiÖu
yªu cÇu tõ
bus hÖ thèng
NKK-HUT
26 May 2012 IT3030 11
Các tín hiệu đưa đến đơn vị điều khiển
Clock: tín hiệu nhịp từ mạch tạo dao
động bên ngoài.
Mã lệnh từ thanh ghi lệnh đưa đến để
giải mã.
Các cờ từ thanh ghi cờ cho biết trạng
thái của CPU.
Các tín hiệu yêu cầu từ bus điều khiển
NKK-HUT
26 May 2012 IT3030 12
Các tín hiệu phát ra từ đơn vị điều khiển
Các tín hiệu điều khiển bên trong CPU:
Điều khiển các thanh ghi
Điều khiển ALU
Các tín hiệu điều khiển bên ngoài CPU:
Điều khiển bộ nhớ
Điều khiển các mô-đun vào-ra
NKK-HUT
26 May 2012 IT3030 13
2. Hoạt động của chu trình lệnh
Chu trình lệnh
Nhận lệnh
Giải mã lệnh
Nhận toán hạng
Thực hiện lệnh
Cất toán hạng
Ngắt
NKK-HUT
26 May 2012 IT3030 14
Giản đồ trạng thái chu trình lệnh
NhËn lÖnh
TÝnh
®Þa chØ
cña lÖnh
Gi¶i m·
thao t¸c
lÖnh
NhËn
to¸n h¹ng
TÝnh
®Þa chØ
to¸n h¹ng
Thao t¸c
d÷ liÖu
CÊt
to¸n h¹ng
TÝnh
®Þa chØ
to¸n h¹ng
KiÓm tra
ng¾t
Ng¾t
LÖnh hoµn thµnh,
nhËn lÖnh tiÕp theo
Quay l¹i víi d÷ liÖu
String hoÆc Vector
Kh«ng
Ng¾t
NhiÒu
to¸n
h¹ng
NhiÒu
to¸n
h¹ng
Cã
Ng¾t
NKK-HUT
26 May 2012 IT3030 15
Nhận lệnh
CPU đưa địa chỉ của lệnh cần nhận từ bộ
đếm chương trình PC ra bus địa chỉ
CPU phát tín hiệu điều khiển đọc bộ nhớ
Lệnh từ bộ nhớ được đặt lên bus dữ liệu
và được CPU copy vào thanh ghi lệnh IR
CPU tăng nội dung PC để trỏ sang lệnh
kế tiếp
NKK-HUT
26 May 2012 IT3030 16
Sơ đồ mô tả quá trình nhận lệnh
CPU
PC
§¬n vÞ
®iÒu khiÓn
IR
Bé nhí
Bus
®Þa
chØ
Bus
®iÒu
khiÓn
Bus
d÷
liÖu
PC: Bé ®Õm ch-¬ng tr×nh
IR: Thanh ghi lÖnh
NKK-HUT
26 May 2012 IT3030 17
Giải mã lệnh
Lệnh từ thanh ghi lệnh IR được đưa
đến đơn vị điều khiển
Đơn vị điều khiển tiến hành giải mã lệnh
để xác định thao tác phải thực hiện
Giải mã lệnh xảy ra bên trong CPU
NKK-HUT
26 May 2012 IT3030 18
Nhận dữ liệu
CPU đưa địa chỉ của toán hạng ra bus
địa chỉ
CPU phát tín hiệu điều khiển đọc
Toán hạng được đọc vào CPU
Tương tự như nhận lệnh
NKK-HUT
26 May 2012 IT3030 19
Nhận dữ liệu gián tiếp
CPU đưa địa chỉ ra bus địa chỉ
CPU phát tín hiệu điều khiển đọc
Nội dung ngăn nhớ được đọc vào CPU,
đó chính là địa chỉ của toán hạng
Địa chỉ này được CPU phát ra bus địa
chỉ để tìm ra toán hạng
CPU phát tín hiệu điều khiển đọc
Toán hạng được đọc vào CPU
NKK-HUT
26 May 2012 IT3030 20
Sơ đồ tả nhận toán hạng gián tiếp
CPU
MAR
§¬n vÞ
®iÒu khiÓn
MBR
Bé nhí
Bus
®Þa
chØ
Bus
®iÒu
khiÓn
Bus
d÷
liÖu
MAR: Thanh ghi ®Þa chØ bé nhí
MBR: Thanh ghi ®Öm bé nhí
NKK-HUT
26 May 2012 IT3030 21
Thực hiện lệnh
Có nhiều dạng tuỳ thuộc vào lệnh
Có thể là:
Đọc/Ghi bộ nhớ
Vào/Ra
Chuyển giữa các thanh ghi
Thao tác số học/logic
Chuyển điều khiển (rẽ nhánh)
...
NKK-HUT
26 May 2012 IT3030 22
Ghi toán hạng
CPU đưa địa chỉ ra bus địa chỉ
CPU đưa dữ liệu cần ghi ra bus dữ liệu
CPU phát tín hiệu điều khiển ghi
Dữ liệu trên bus dữ liệu được copy đến
vị trí xác định
NKK-HUT
26 May 2012 IT3030 23
Sơ đồ mô tả quá trình ghi toán hạng
CPU
MAR
§¬n vÞ
®iÒu khiÓn
MBR
Bé nhí
Bus
®Þa
chØ
Bus
®iÒu
khiÓn
Bus
d÷
liÖu
MAR: Thanh ghi ®Þa chØ bé nhí
MBR: Thanh ghi ®Öm bé nhí
NKK-HUT
26 May 2012 IT3030 24
Ngắt
Nội dung của bộ đếm chương trình PC (địa
chỉ trở về sau khi ngắt) được đưa ra bus dữ
liệu
CPU đưa địa chỉ (thường được lấy từ con trỏ
ngăn xếp SP) ra bus địa chỉ
CPU phát tín hiệu điều khiển ghi bộ nhớ
Địa chỉ trở về trên bus dữ liệu được ghi ra vị
trí xác định (ở ngăn xếp)
Địa chỉ lệnh đầu tiên của chương trình con
điều khiển ngắt được nạp vào PC
NKK-HUT
26 May 2012 IT3030 25
Sơ đồ mô tả chu trình ngắt
CPU
MAR
MBR
Bé nhí
Bus
®Þa
chØ
Bus
®iÒu
khiÓn
Bus
d÷
liÖu
MAR: Thanh ghi ®Þa chØ bé nhí
MBR: Thanh ghi ®Öm bé nhí
PC: Bé ®Õm ch-¬ng tr×nh
SP: Con trá ng¨n xÕp
PC
§¬n vÞ
®iÒu khiÓn
SP
NKK-HUT
26 May 2012 IT3030 26
6.2. Thiết kế đơn vị điều khiển
Đơn vị điều khiển vi chương trình
(Microprogrammed Control Unit)
Đơn vị điều khiển nối kết cứng
(Hardwired Control Unit)
NKK-HUT
26 May 2012 IT3030 27
Đơn vị điều khiển vi chương trình
Bé nhí
vi ch-¬ng tr×nh
Thanh ghi lÖnh
C¸c tÝn hiÖu
®iÒu khiÓn
bªn trong CPU
C¸c cê
Clock
C¸c tÝn hiÖu
®iÒu khiÓn
®Õn bus hÖ thèng
Thanh ghi ®i¹ chØ vi lÖnhM¹ch d·y
Bé gi¶i m·
Bé gi¶i m· vi lÖnh
Thanh ghi ®Öm vi lÖnh
C¸c tÝn hiÖu
®iÒu khiÓn
tõ bus hÖ thèng
Vi lÖnh
tiÕp
theo
Bộ nhớ vi chương trình
(ROM) lưu trữ các vi
chương trình
(microprogram)
Một vi chương trình bao
gồm các vi lệnh
(microinstruction)
Mỗi vi lệnh mã hoá cho
một vi thao tác
(microoperation)
Để hoàn thành một lệnh
cần thực hiện một hoặc
một vài vi chương trình
Tốc độ chậm
NKK-HUT
26 May 2012 IT3030 28
Đơn vị điều khiển nối kết cứng
§¬n vÞ
®iÒu khiÓn
Bé gi¶i m·
C¸c
cê
Clock
C¸c tÝn hiÖu ®iÒu khiÓn
M¹ch
ph©n chia
thêi gian
T
1
...
...
C
0
. . .
Thanh ghi lÖnh
T
2
T
n
C
m-1
C
1
Sử dụng mạch
cứng để giải
mã và tạo các
tín hiệu điều
khiển thực hiện
lệnh
Tốc độ nhanh
Đơn vị điều
khiển phức tạp
NKK-HUT
26 May 2012 IT3030 29
6.3. Kỹ thuật đường ống lệnh (Instruction
Pipelining)
Chia chu trình lệnh thành các công đoạn và cho
phép thực hiện gối lên nhau (như dây chuyền lắp
ráp)
Chẳng hạn có 6 công đoạn:
Nhận lệnh (Fetch Instruction - FI)
Giải mã lệnh (Decode Instruction - DI)
Tính địa chỉ toán hạng (Calculate Operand Address-CO)
Nhận toán hạng (Fetch Operands - FO)
Thực hiện lệnh (Execute Instruction - EI)
Ghi toán hạng (Write Operands - WO)
NKK-HUT
26 May 2012 IT3030 30
Biểu đồ thời gian của đường ống lệnh
1 109875432 6 t131211
FI EIFOCODI WO
FI EIFOCODI WO
FI EIFOCODI WO
FI EIFOCODI WO
FI EIFOCODI WO
FI EIFOCODI WO
FI EIFOCODI WO
FI EIFOCODI WO
lÖnh 1
lÖnh 2
lÖnh 3
lÖnh 4
lÖnh 5
lÖnh 6
lÖnh 7
lÖnh 8
NKK-HUT
26 May 2012 IT3030 31
Các Hazard (trở ngại) của đường ống lệnh
Hazard cấu trúc: do nhiều công đoạn
dùng chung một tài nguyên
Hazard dữ liệu: lệnh sau sử dụng dữ
liệu kết quả của lệnh trước
Hazard điều khiển: do rẽ nhánh gây ra
NKK-HUT
26 May 2012 IT3030 32
Hazard về cấu trúc
Nguyên nhân: Dùng chung tài nguyên
Khắc phục:
nhân tài nguyên để tránh xung đột
Làm trễ
Ví dụ:
Bus dữ liệu: truyền lệnh và dữ liệu
Bus lệnh riêng, bus dữ liệu riêng (cache
lệnh và cache dữ liệu)
NKK-HUT
26 May 2012 IT3030 33
Ví dụ Hazard về cấu trúc
conflict on arithmetic unit
cache miss
TLB miss
MULT A,B,C
MULT D,E,F
I D F E E E W
I D F F F E E E W
3 clocks necessary for multiplication
stall
NKK-HUT
26 May 2012 IT3030 34
Hazard về dữ liệu
Nguyên nhân: lệnh sau sử dụng dữ liệu
kết quả của lệnh trước
Các dạng:
RAW (Read After Write)
WAR (Write After Read)
WAW (Write After Write)
NKK-HUT
26 May 2012 IT3030 35
Sự phụ thuộc về dữ liệu
RAW
WAR
WAW
ADD A,B,C
ADD E,A,D
ADD A,B,C
ADD B,D,E
ADD A,B,C
ADD A,D,E
Write-A must be earlier than
Read-A
Read-B must be earlier than
Write-B
First Write-A must be earlier
Than second Write-A
NKK-HUT
26 May 2012 IT3030 36
WAR and WAW
WAR
WAW
ADD A,B,C
ADD B,D,E
ADD A,B,C
ADD A,D,E
Read-B is earlier than Write-B
first Write-A is earlier than second Write-A
I D F E W
I D F E W
Write B
Read B
I D F E W
I D F E W
Write A
Write A
no conflict at in-order pipeline
conflict at out-of-order pipeline
NKK-HUT
26 May 2012 IT3030 37
RAW
ADD A,B,C
ADD E,A,D
I D F E W
I D F E C
I D F E W
I D D D F E W
Read A
Write A
stall
Write-A must be earlier
Than Read-A
Write A
Read A
NKK-HUT
26 May 2012 IT3030 38
Hazard điều khiển
BEQ A, B, Label
LOAD C, X
・・・・
Label: LOAD C, Y
I D F E C
I D F E C
set PC
stall
Wait for branch address
calculation
next instruction to a branch instruction cannot be fetched until branch condition
defined and PC updated
NKK-HUT
26 May 2012 IT3030 39
6.4. Cấu trúc chung của các bộ xử lý tiên tiến
texttext
§¬n vÞ
nèi ghÐp
bus
(BIU)
Cache
L2
Cache lÖnh L1
(I-Cache)
Cache d÷ liÖu L1 (D-Cache)
§¬n vÞ nhËn lÖnh
§¬n vÞ
qu¶n lý
bé nhí
(MMU)
texttext
§¬n vÞ gi¶i m· vµ ®iÒu phèi thùc hiÖn lÖnh
ALUs FPUs
texttextSFUs
TËp thanh ghi
sè nguyªn
TËp thanh ghi
d÷ liÖu
chuyªn dông
TËp thanh ghi
sè dÊu
phÈy ®éng
Bus
bªn ngoµi
bus bªn trong
NKK-HUT
26 May 2012 IT3030 40
Các đơn vị xử lý dữ liệu
Các đơn vị số nguyên (ALU)
Các đơn vị số dấu phẩy động (FPU –
Floating Point Unit)
Các đơn vị chức năng đặc biệt (SFU
Special Function Unit)
Đơn vị xử lý dữ liệu âm thanh
Đơn vị xử lý dữ liệu hình ảnh
Đơn vị xử lý dữ liệu vector
NKK-HUT
26 May 2012 IT3030 41
Bộ nhớ cache
Được tích hợp trên chip vi xử lý
Bao gồm hai mức cache:
Cache L1 gồm hai phần tách rời:
Cache lệnh
Cache dữ liệu
giải quyết xung đột khi nhận lệnh và dữ liệu
Cache L2: chung cho lệnh và dữ liệu
NKK-HUT
26 May 2012 IT3030 42
Đơn vị quản lý bộ nhớ
MMU – Memory Mangement Unit
Chuyển đổi địa chỉ ảo thành địa chỉ vật lý
Cung cấp cơ chế phân trang/phân đoạn
Cung cấp chế độ bảo vệ bộ nhớ
NKK-HUT
26 May 2012 IT3030 43
6.5. Các kiến trúc song song mức lệnh
Siêu đường ống (Superpipeline &
Hyperpipeline)
Siêu vô hướng (Superscalar)
VLIW (Very Long Instruction Word)
NKK-HUT
26 May 2012 IT3030 44
Superpipeline
COLÖnh 1 FI DI FO EI WO
COFI DI FO EI WO
COFI DI FO EI WO
COFI DI FO EI WOLÖnh 4
LÖnh 3
LÖnh 2
NKK-HUT
26 May 2012 IT3030 45
Superscalar
COLÖnh 1 FI DI FO EI WO
COFI DI FO EI WO
COFI DI FO EI WO
COFI DI FO EI WOLÖnh 4
LÖnh 3
LÖnh 2
COFI DI FO EI WO
COFI DI FO EI WOLÖnh 6
LÖnh 5
NKK-HUT
26 May 2012 IT3030 46
VLIW (Very Long Instruction Word)
Opcode Operands
Opcode 3Opcode 1 Opcode 2 Operands Operands Operands
Tõ lÖnh dµi
Tõ lÖnh th«ng th-êng
NKK-HUT
26 May 2012 IT3030 47
Hết chương 6
Các file đính kèm theo tài liệu này:
- ca6_6311.pdf