Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU) - Phan Trung Kiên

Tóm tắt Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU) - Phan Trung Kiên: ...khiển ALU  Các tín hiệu điều khiển bên ngoài BXL:  Điều khiển bộ nhớ  Điều khiển các modul vào-ra Phan Trung Kiên 17 Các phương pháp thiết kế KĐK  KĐK vi chương trình (Microprogrammed Control Unit)  KĐK nối kết cứng (Hardwired Control Unit) Phan Trung Kiên 18 Đơn vị điều khiển ...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 Phan Trung Kiên 31 Sơ đồ tả nhận toán hạng gián tiếp Phan Trung Kiên 32 T...ầ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 Phan Trung Kiên 45 Đơn vị quản lý bộ nhớ (MMU)  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ế đ...

pdf67 trang | Chia sẻ: havih72 | Lượt xem: 357 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU) - Phan Trung Kiên, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1Kiến trúc máy tính
Chương 4
BỘ
XỬ
LÝ TRUNG TÂM (CPU)
Phan Trung Kiên 2
Nội dung chương 4

Cấu trúc chung của bộ
xử
lý

Khối điều khiển

Khối số
học & logic

Ho?t d?ng c?a CPU

RISC & CISC
Phan Trung Kiên 3
Sơ đồ
cấu trúc cơ bản của CPU
Phan Trung Kiên 4
Cấu trúc chung của bộ
xử
lý 
(BXL)

Cấu trúc

Đơ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 thanh ghi (Registers)
Phan Trung Kiên 5
Cấu trúc chung của bộ
xử
lý 
(BXL)

Chức năng

Điều khiển toàn bộ
hoạt động của hệ
thống

Xử
lý dữ
liệu

Nguyên tắc hoạt động

BXL hoạt động dựa theo chương trình nằm sẵn trong 
bộ
nhớ
Phan Trung Kiên 6
Cấu trúc chung của bộ
xử
lý 
(BXL)

Các nhiệm vụ
của BXL

Nhận lệnh: nhận lệnh từ
bộ
nhớ

Giải mã lệnh: Giải mã lệnh được nhận vào để
biết lệnh làm gì

Nhận dữ
liệu: Lệnh có
thể
yêu cầu nhận dữ
liệu từ
bên ngoài 
vào

Xử
lý dữ
liệu: Lệnh có
thể
yêu cầu thực hiện một phép toán 
nào đó

Ghi dữ
liệu: Lệnh có
thể
yêu cầu cất kết quả
ra ngoài
Ngoài ra, trong quá
trình thực hiện chương trình còn 
nhận
các yêu cầu từ
bên ngoài, xử
lý
các yêu cầu đó
Phan Trung Kiên 7
BXL với bus hệ
thống
Phan Trung Kiên 8
Cấu trúc bên trong của BXL
Phan Trung Kiên 9
Phân tích nhiệm vụ
của BXL

Nhận lệnh (Fetch Instructions -
FI)

Địa chỉ
của lệnh cần thực hiện nằm trong bộ đếm 
chương trình (PC - Program Counter), được đưa qua 
bộ đệm địa chỉ, qua bus địa chỉ để
tìm ra ngăn nhớ
 chứa lệnh

Tiếp theo, BXL phát ra tín hiệu đọc ngăn nhớ
vừa tìm 
được

Nội dung của ngăn nhớ được chuyển qua bus dữ
liệu 
và đưa đến thanh ghi lệnh
(Instruction Reg.)
Phan Trung Kiên 10
Phân tích nhiệm vụ
của BXL

Giải mã lệnh (Interpret Instructions -
II)

Lệnh từ
thanh ghi lệnh được đưa đến khối điều khiển

Tại đây, lệnh được giải mã để
xác định thao tác mà
 lệnh yêu cầu

Khi đó, khối điều khiển sẽ
phát ra tín hiệu điều khiển 
tương ứng với lệnh đó.
Phan Trung Kiên 11
Phân tích nhiệm vụ
của BXL

Nhận dữ
liệu (Fetch Data -
FD)

BXL phát ra địa chỉ
của ngăn nhớ/cổng vào ra chứa 
dữ
liệu cần nhận

BXL phát ra tín hiệu điều khiển đọc ngăn nhớ/cổng 
vào ra tương ứng

Dữ
liệu được chuyển qua bus dữ
liệu đưa vào tập 
thanh ghi
bên trong
Phan Trung Kiên 12
Phân tích nhiệm vụ
của BXL

Xử
lý dữ
liệu (Process Data -
PD)

Dữ
liệu được chuyển từ
các thanh ghi vào ALU

ALU sẽ
thực hiện các phép
toán dưới sự điều khiển 
của khối điều khiển

Kết quả
phép toán được cất tạm thời vào thanh ghi 
dữ
liệu
Phan Trung Kiên 13
Khối điều khiển (CU)

Chức năng

ĐK nhận lệnh tiếp theo từ
bộ
nhớ, đưa vào thanh ghi 
lệnh

Tăng nội dung của PC để
trỏ
sang lệnh tiếp theo

Giải mã lệnh nằm trong thanh ghi lệnh để
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 tín hiệu yêu cầu từ
bên ngoài, xử
lý các tín hiệu 
đó.
Phan Trung Kiên 14
Mô hình kết nối KĐK
Khối điều 
khiển
Thanh ghi lệnh
Các t/h điều 
khiển bên 
trong BXL
Các t/h điều 
khiển từ
bus hệ
 thống
Các t/h điều 
khiển đến bus 
hệ
thống
Các cờ
. . .
Xung 
nhịp
Bus hệ
thống
Phan Trung Kiên 15
Các tín hiệu đưa đến KĐK

Nhịp: tín hiệu đồng hồ
từ
mạch tạo nhịp bên ngoài:

T0
là
chu kỳ
của xung nhịp

Mỗi thao tác của BXL cần k.T0 , k ? N

Tần số xung đồng hồ: f0
= 1/T0

Ví
dụ: máy tính dùng BXL có
tốc độ
5GHz
Ta có: f0
= 5GHz = 5*109 Hz ? T0
= 1/f0
= 1/(5*109) = 0.2 ns

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 BXL

Các tín hiệu điều khiển
từ bus điều khiển yêu cầu BXL
T0
Phan Trung Kiên 16
Các tín hiệu phát ra từ KĐK

Các tín hiệu điều khiển bên trong BXL:

Đ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 BXL:

Điều khiển bộ
nhớ

Điều khiển các modul vào-ra
Phan Trung Kiên 17
Các phương pháp thiết kế KĐK

KĐK vi chương trình
(Microprogrammed Control Unit)

KĐK nối kết cứng
(Hardwired Control Unit)
Phan Trung Kiên 18
Đơn vị điều khiển vi chương trình
Phan Trung Kiên 19
Đơn vị điều khiển vi chương trình

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
Phan Trung Kiên 20
Đơn vị điều khiển nối kết cứng
Phan Trung Kiên 21
Đơn vị điều khiển nối kết cứng

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
Phan Trung Kiên 22
Khối số
học và
logic (ALU)

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, NOT, XOR, dịch bit, quay bit
Phan Trung Kiên 23
Mô hình kết nối ALU
ALU
Thanh ghi cờ
Dữ
liệu ra đến các 
thanh ghi
Dữ
liệu vào từ
các 
thanh ghi
T/h điều khiển từ 
KĐK
Phan Trung Kiên 24
Hoạt động của CPU

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
Phan Trung Kiên 25
Giản đồ
trạng thái của chu kỳ
lệnh
Tính toán
địa chỉ
lệnh
Giải mã
thao tác
lệnh
Tính toán
địa chỉ
toán hạng
Xử
lý dữ
liệu
Tính toán
địa chỉ
toán hạng
Nhận lệnh Nhận toánhạng
Cất toán
hạng
Nhiều
toán
hạng
Nhiều
kết
quả
DL dạng
xâu hoặc
vectơ
Kết thúc lênh,
nhận lệnh
tiếp theo
Kiểm tra
ngắt Ngắt
Không
có
ngắt
Phan Trung Kiên 26
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
Phan Trung Kiên 27
Sơ đồ
mô tả
quá
trình nhận lệnh
Phan Trung Kiên 28
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
Phan Trung Kiên 29
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
Phan Trung Kiên 30
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 
Phan Trung Kiên 31
Sơ đồ
tả
nhận toán hạng gián tiếp
Phan Trung Kiên 32
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)

...
Phan Trung Kiên 33
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
Phan Trung Kiên 34
Sơ đồ
mô tả
quá
trình ghi toán hạng
Phan Trung Kiên 35
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
Phan Trung Kiên 36
Sơ đồ
mô tả
chu trình ngắt 
Phan Trung Kiên 37
Đườ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)
Phan Trung Kiên 38
Biểu đồ
thời gian của đường ống lệnh
Phan Trung Kiên 39
Các xung đột của đường ống lệch:

Xung đột có
cấu trúc: do nhiều công đoạn dùng 
chung 1 tài nguyên

Xung đột dữ
liệu: lệnh sau sử
dụng kết quả
của 
lệnh trước 

Xung đột điều khiển: do rẽ
nhánh gây ra
Phan Trung Kiên 40
Rẽ
nhánh trong Pipelining
Phan Trung Kiên 41
Các kỹ
thuật tiên tiến của bộ
xử
lý

Cấu trúc chung của các bộ
xử
lý tiên tiến

Các kiến trúc song song mức lệnh

Kiến trúc RISC
Phan Trung Kiên 42
Cấu trúc chung của các bộ
xử
lý tiên tiến
Phan Trung Kiên 43
Các đơn vị
xử
lý dữ
liệu

Các đơn vị
số
nguyên 

Các đơn vị
số
dấu phẩy động

Các đơn vị
chức năng đặc biệt

Đơ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
Phan Trung Kiên 44
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
Phan Trung Kiên 45
Đơn vị
quản lý bộ
nhớ
(MMU)

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ớ
Phan Trung Kiên 46
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)
Phan Trung Kiên 47
Superpipeline
Phan Trung Kiên 48
Superscalar
Phan Trung Kiên 49
VLIW (Very Long Instruction Word)
Phan Trung Kiên 50
RISC

CISC và
RISC

CISCComplex Instruction Set Computer:

Máy tính với tập lệnh phức tạp

Các bộ
xử
lý truyền thống: x86, 680x0

RISCReduced Instruction Set Computer: 

Máy tính với tập lệnh thu gọn

SunSPARC, Power PC, ...

RISC đối nghịch với CISC 
Phan Trung Kiên 51
Các đặc trưng của RISC

Số lượng lệnh ít

Hầu hết các lệnh truy nhập toán hạng ở
các 
thanh ghi 

Truy nhập bộ
nhớ
bằng các lệnh LOAD/STORE

Thời gian thực hiện lệnh là
một chu kỳ
máy

Các lệnh có độ
dài cố định (32 bit)
Phan Trung Kiên 52
Các đặc trưng của RISC

Số lượng khuôn dạng lệnh là
ít (<=4)

CPU có
tập thanh ghi lớn

Có
ít mode địa chỉ
(<=4)

Hỗ
trợ
các thao tác của ngôn ngữ
bậc cao

Đều được thiết kế
kiểu pipeline lệnh
Phan Trung Kiên 53
Cửa sổ
thanh ghi 
Phan Trung Kiên 54
Kiến trúc Intel

Kiến trúc 4-bit: 4004

Kiến trúc 8-bit: 8008,8080,8085

Kiến trúc 16-bit: 8086/8088,80186,80286

Kiến trúc 32-bit: 80386, 80486, 
Pentium,Pentium II, 
Celeron, Pentium III, 
Pentium 4

Kiến trúc 64-bit: Itanium, Core 2 Duo
Phan Trung Kiên 55
Kiến trúc 16-bit (IA-16)

Các thanh ghi bên trong: 16-bit

Xử
lý các phép toán số
nguyên với 16-bit

Quản lý bộ
nhớ theo đoạn 64KBytes

Mở đầu cho dòng máy tính IBM-PC
Phan Trung Kiên 56
Kiến trúc 32-bit (IA-32)

Các thanh ghi bên trong: 32-bit

Xử
lý các phép toán số
nguyên với 32-bit

Có
ba chế độ
làm việc:

Chế độ
8086 thực (Real 8086 mode): làm việc như một bộ
xử
 lý 8086

Chế độ
8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ
xử 
lý 8086 (đa nhiệm 16-bit)

Chế độ
bảo vệ
(Protected mode)

Đa nhiệm 32-bit

Quản lý bộ
nhớ ảo

Xử
lý các phép toán số
dấu phẩy động (từ
80486)
Phan Trung Kiên 57
Kiến trúc 64-bit (IA-64)

Các thanh ghi bên trong: 64-bit

Xử
lý các phép toán số
nguyên với 64-bit

Xử
lý các phép toán số
dấu phẩy động

Không tương thích phần cứng với các bộ
xử lý 
trước đó

Tương thích phần mềm bằng cách giả
lập môi 
trường
Phan Trung Kiên 58
Sù
ph¸t
triÓn
cña
BXL hä
Intel
Year Chip L transistors
1971 4004 10µm 2.3K
1974 8080 6µm 6.0K
1976 8088 3µm 29K
1982 80286 1.5µm 134K
1985 80386 1.5µm 275K
1989 80486 0.8µm 1.2M
1993 Pentium® 0.8µm 3.1M
1995 Pentium® Pro 0.6µm 15.5M
1999 Mobile PII 0.25µm 27.4
2000 Pentium® 4 0.18µm 42M
2002 Pentium® 4 (N) 0.13µm 55M
2003 Itanium® 2 (M) 0.13µm 410M
Phan Trung Kiên 59
Minh
häa
mét
sè
BXL
Intel 4004 -
1970s
(First Microprocessor)
Intel 8088
(LSI Microprocessor)
Phan Trung Kiên 60
Minh
häa
mét
sè
BXL
PowerPC 7400 (G4)
6.5M transistors / 450MHz / 8-10W
L=0.15µm
Pentium®
III
28M transistors / 733MHz-1Gz / 13-26W
L=0.25µm shrunk to L=0.18µm
Phan Trung Kiên 61
Minh häa mét sè
BXL
Pentium®
4
42M transistors / 1.3-1.8GHz / 49-55W
L=0.18µm
Pentium®
4 “Northwood”
55M transistors / 2-2.5GHz 
L=0.13µm Area=131mm2
Co l¹i
Phan Trung Kiên 62
Minh häa mét sè
BXL
PowerPC®
940 (G5)
58M transistors / 2GHz / 97W
L=0.13µm Area=118mm2
Image courtesy International Business Machines 
All Rights ReservedIntel Itanium®
2
410M transistors / 1.3GHz / 130W
L=0.13µm Area=374mm2
Image source: Intel Corporation www.intel.com
Phan Trung Kiên 63
Minh häa mét sè
BXL
Phan Trung Kiên 64
Phan Trung Kiên 65
Phan Trung Kiên 66
Phan Trung Kiên 67

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_4_bo_xu_ly_trung_tam_cpu.pdf