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 CPUPhan 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ệnhPhan 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
67 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 531 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng môn Kiến trúc máy tính - Chương 4: Bộ xử lý trung tâm (CPU), để xem tài liệu hoàn chỉnh 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
CISCComplex 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
RISCReduced 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
Các file đính kèm theo tài liệu này:
- bai_giang_mon_kien_truc_may_tinh_chuong_4_bo_xu_ly_trung_tam.pdf