Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh

6.1. Tổ chức của CPU

n Nhiệm vụ của CPU:

n Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ

nhớ

n Giải mã lệnh (Decode Instruction): xác định thao tác

mà lệnh yêu cầu

n Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ

hoặc các cổng vào-ra

n 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

n Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay

cổng vào-ra

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 1

Trang 1

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 2

Trang 2

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 3

Trang 3

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 4

Trang 4

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 5

Trang 5

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 6

Trang 6

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 7

Trang 7

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 8

Trang 8

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 9

Trang 9

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 42 trang xuanhieu 5820
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh

Bài giảng Kiến trúc máy tính - Chương 6: Bộ xử lý - Nguyễn Kim Khánh
NKK-HUST
Kiến trúc máy tính
Chương 6
BỘ XỬ LÝ 
Nguyễn Kim Khánh
Trường Đại học Bách khoa Hà Nội
2017 Kiến trúc máy tính 310
NKK-HUST
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. Số học máy tính
Chương 5. Kiến trúc tập lệnh
Chương 6. Bộ xử lý
Chương 7. Bộ nhớ máy tính
Chương 8. Hệ thống vào-ra
Chương 9. Các kiến trúc song song
2017 Kiến trúc máy tính 311
NKK-HUST
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. Ví dụ thiết kế bộ xử lý theo kiến trúc 
MIPS (*)
(*) dành cho Chương trình Tài năng và Chất lượng cao
Nội dung của chương 6
2017 Kiến trúc máy tính 312
NKK-HUST
6.1. Tổ chức của CPU 
n Nhiệm vụ của CPU:
n Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ 
nhớ
n Giải mã lệnh (Decode Instruction): xác định thao tác 
mà lệnh yêu cầu
n Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ 
hoặc các cổng vào-ra
n 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 
n 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
2017 Kiến trúc máy tính 313
NKK-HUST
Sơ đồ cấu trúc cơ bản của CPU
2017 Kiến trúc máy tính 314
Đơn vị 
điều khiển
(CU)
Đơn vị 
số học
 và logic
(ALU)
Tập
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-HUST
2. Đơn vị số học và logic
n Chức năng: Thực hiện các phép toán 
số học và phép toán logic:
n Số học: cộng, trừ, nhân, chia, đảo dấu
n Logic: AND, OR, XOR, NOT, phép dịch bit
2017 Kiến trúc máy tính 315
NKK-HUST
Mô hình kết nối ALU
Đơn vị 
số học và logic
(ALU)
Dữ liệu từ 
các thanh ghi
Các tín hiệu
từ đơn vị
điều khiển
Thanh ghi cờ
Dữ liệu đến 
các thanh ghi
2017 Kiến trúc máy tính 316
Thanh ghi cờ: hiển thị trạng thái của kết quả phép toán
NKK-HUST
3. Đơn vị điều khiển 
n Chức năng
n Điều khiển nhận lệnh từ bộ nhớ đưa vào CPU
n Tăng nội dung của PC để trỏ sang lệnh kế tiếp
n Giải mã lệnh đã được nhận để xác định thao 
tác mà lệnh yêu cầu
n Phát ra các tín hiệu điều khiển thực hiện lệnh 
n 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 đó. 
2017 Kiến trúc máy tính 317
NKK-HUST
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 
điều khiển từ 
bus hệ thống
2017 Kiến trúc máy tính 318
NKK-HUST
Các tín hiệu đưa đến đơn vị điều khiển 
n Clock: tín hiệu nhịp từ mạch tạo dao 
động bên ngoài
n Lệnh từ thanh ghi lệnh đưa đến để giải 
mã
n Các cờ từ thanh ghi cờ cho biết trạng 
thái của CPU
n Các tín hiệu yêu cầu từ bus điều khiển
2017 Kiến trúc máy tính 319
NKK-HUST
Các tín hiệu phát ra từ đơn vị điều khiển 
n Các tín hiệu điều khiển bên trong CPU:
n Điều khiển các thanh ghi 
n Điều khiển ALU
n Các tín hiệu điều khiển bên ngoài CPU:
n Điều khiển bộ nhớ
n Điều khiển các mô-đun vào-ra 
2017 Kiến trúc máy tính 320
NKK-HUST
4. Hoạt động của chu trình lệnh
Chu trình lệnh
n Nhận lệnh
n Giải mã lệnh
n Nhận toán hạng
n Thực hiện lệnh
n Cất toán hạng
n Ngắt
2017 Kiến trúc máy tính 321
NKK-HUST
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
2017 Kiến trúc máy tính 322
NKK-HUST
Nhận lệnh
n CPU đưa địa chỉ của lệnh cần nhận từ bộ 
đếm chương trình PC ra bus địa chỉ 
n CPU phát tín hiệu điều khiển đọc bộ nhớ 
n Lệnh từ bộ nhớ được đặt lên bus dữ liệu 
và được CPU copy vào thanh ghi lệnh IR
n CPU tăng nội dung PC để trỏ sang lệnh 
kế tiếp
2017 Kiến trúc máy tính 323
NKK-HUST
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 
2017 Kiến trúc máy tính 324
NKK-HUST
Giải mã lệnh
n Lệnh từ thanh ghi lệnh IR được đưa 
đến đơn vị điều khiển 
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
n Giải mã lệnh xảy ra bên trong CPU
2017 Kiến trúc máy tính 325
NKK-HUST
Nhận dữ liệu từ bộ nhớ 
n CPU đưa địa chỉ của toán hạng ra bus 
địa chỉ 
n CPU phát tín hiệu điều khiển đọc 
n Toán hạng được đọc vào CPU 
n Tương tự như nhận lệnh
2017 Kiến trúc máy tính 326
NKK-HUST
Sơ đồ mô tả nhận dữ liệu từ bộ nhớ
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ớ 
2017 Kiến trúc máy tính 327
NKK-HUST
Thực hiện lệnh
n Có nhiều dạng tuỳ thuộc vào lệnh
n Có thể là:
n Đọc/Ghi bộ nhớ 
n Vào/Ra
n Chuyển giữa các thanh ghi 
n Phép toán số học/logic
n Chuyển điều khiển (rẽ nhánh)
n ...
2017 Kiến trúc máy tính 328
NKK-HUST
Ghi toán hạng
n CPU đưa địa chỉ ra bus địa chỉ
n CPU đưa dữ liệu cần ghi ra bus dữ liệu 
n CPU phát tín hiệu điều khiển ghi
n Dữ liệu trên bus dữ liệu được copy đến 
vị trí xác định
2017 Kiến trúc máy tính 329
NKK-HUST
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ớ 
2017 Kiến trúc máy tính 330
NKK-HUST
Ngắt
n 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 
n CPU đưa địa chỉ (thường được lấy từ con trỏ 
ngăn xếp SP) ra bus địa chỉ 
n CPU phát tín hiệu điều khiển ghi bộ nhớ 
n Địa chỉ trở về trên bus dữ liệu được ghi ra vị 
trí xác định (ở ngăn xếp) 
n Đị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
2017 Kiến trúc máy tính 331
NKK-HUST
Sơ đồ mô tả chu trình ngắt 
CPU
MAR
MBR
Bộ nhớ
PC
Đơn vị 
điều khiển
SP
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
2017 Kiến trúc máy tính 332
NKK-HUST
6.2. Các phương pháp thiết kế đơn vị điều khiển 
n Đơn vị điều khiển vi chương trình 
(Microprogrammed Control Unit)
n Đơn vị điều khiển nối kết cứng 
(Hardwired Control Unit)
2017 Kiến trúc máy tính 333
NKK-HUST
1. Đơn vị điều khiển vi chương trình 
n Bộ nhớ vi chương trình 
(ROM) lưu trữ các vi 
chương trình 
(microprogram)
n Một vi chương trình bao 
gồm các vi lệnh 
(microinstruction)
n Mỗi vi lệnh mã hoá cho 
một vi thao tác 
(microoperation)
n Để 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 
n Tốc độ chậm
Bộ nhớ 
vi chương trình
Thanh ghi lệnh
Tín hiệu điều 
khiển bên trong 
CPU
Các cờ
Clock
Tín hiệu điều 
khiển đến bus hệ 
thống
Thanh ghi địa 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
2017 Kiến trúc máy tính 334
NKK-HUST
2. Đơn vị điều khiển nối kết cứng
n 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
n Tốc độ nhanh
n Đơn vị điều khiển 
phức tạp
Đơ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
T1
...
...
C0 . . .
Thanh ghi lệnh
T2
Tn
Cm-1C1
2017 Kiến trúc máy tính 335
NKK-HUST
6.3. Kỹ thuật đường ống lệnh
n 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)
n Chẳng hạn bộ xử lý MIPS có 5 công đoạn:
1. IF: Instruction fetch from memory – Nhận lệnh từ bộ nhớ
2. ID: Instruction decode & register read – Giải mã lệnh và đọc 
thanh ghi
3. EX: Execute operation or calculate address – Thực hiện thao tác 
hoặc tính toán địa chỉ
4. MEM: Access memory operand – Truy nhập toán hạng bộ nhớ
5. WB: Write result back to register – Ghi kết quả trả về thanh ghi
2017 Kiến trúc máy tính 336
NKK-HUST
Biểu đồ thời gian của đường ống lệnh
2017 Kiến trúc máy tính 337
1 765432 t1098
WBlệnh 1
lệnh 2
lệnh 3
lệnh 4
lệnh 5
lệnh 6
lệnh 7
lệnh 8
IF ID EX MEM
WBIF ID EX MEM
WBIF ID EX MEM
WBIF ID EX MEM
WBIF ID EX MEM
WBIF ID EX MEM
11 12
WBIF ID EX MEM
WBIF ID EX MEM
Thời gian thực hiện 1 công đoạn = T
Thời gian thực hiện tuần tự 8 lệnh: 8 x 5T = 40T
Thời gian thực hiện đường ống 8 lệnh: (1 x 5T) + [ (8-1) x T ] = 12T
NKK-HUST
Các mối trở ngại (Hazard) của đường ống lệnh
n Hazard: Tình huống ngăn cản bắt đầu 
của lệnh tiếp theo ở chu kỳ tiếp theo
n Hazard cấu trúc: do tài nguyên được yêu 
cầu đang bận
n Hazard dữ liệu: cần phải đợi để lệnh trước 
hoàn thành việc đọc/ghi dữ liệu
n Hazard điều khiển: do rẽ nhánh gây ra
2017 Kiến trúc máy tính 338
NKK-HUST
Hazard cấu trúc
n Xung đột khi sử dụng tài nguyên
n Trong đường ống của MIPS với một bộ 
nhớ dùng chung
n Lệnh Load/store yêu cầu truy cập dữ liệu
n Nhận lệnh cần trì hoãn cho chu kỳ đó
n Bởi vậy, datapath kiểu đường ống yêu 
cầu bộ nhớ lệnh và bộ nhớ dữ liệu tách 
rời (hoặc cache lệnh/cache dữ liệu tách 
rời)
2017 Kiến trúc máy tính 339
NKK-HUST
Hazard dữ liệu
n Lệnh phụ thuộc vào việc hoàn thành truy 
cập dữ liệu của lệnh trước đó
add $s0, $t0, $t1
sub $t2, $s0, $t3
2017 Kiến trúc máy tính 340
NKK-HUST
Forwarding (gửi vượt trước)
n Sử dụng kết quả ngay sau khi nó được tính 
n Không đợi đến khi kết quả được lưu đến thanh 
ghi
n Yêu cầu có đường kết nối thêm trong datapath
2017 Kiến trúc máy tính 341
NKK-HUST
Hazard dữ liệu với lệnh load
n Không phải luôn luôn có thể tránh trì hoãn 
bằng cách forwarding
n Nếu giá trị chưa được tính khi cần thiết
n Không thể chuyển ngược thời gian
n Cần chèn bước trì hoãn (stall hay bubble)
2017 Kiến trúc máy tính 342
NKK-HUST
Lập lịch mã để tránh trì hoãn
n Thay đổi trình tự mã để tránh sử dụng kết 
quả load ở lệnh tiếp theo
n Mã C: 
a = b + e; c = b + f;
lw $t1, 0($t0)
lw $t2, 4($t0)
add $t3, $t1, $t2
sw $t3, 12($t0)
lw $t4, 8($t0)
add $t5, $t1, $t4
sw $t5, 16($t0)
stall
stall
lw $t1, 0($t0)
lw $t2, 4($t0)
lw $t4, 8($t0)
add $t3, $t1, $t2
sw $t3, 12($t0)
add $t5, $t1, $t4
sw $t5, 16($t0)
11 cycles13 cycles
2017 Kiến trúc máy tính 343
NKK-HUST
Hazard điều khiển
n Rẽ nhánh xác định luồng điều khiển
n Nhận lệnh tiếp theo phụ thuộc vào kết quả 
rẽ nhánh
n Đường ống không thể luôn nhận đúng lệnh
n Vẫn đang làm ở công đoạn giải mã lệnh (ID) 
của lệnh rẽ nhánh
n Với đường ống của MIPS
n Cần so sánh thanh ghi và tính địa chỉ đích 
sớm trong đường ống
n Thêm phần cứng để thực hiện việc đó 
trong công đoạn ID
2017 Kiến trúc máy tính 344
NKK-HUST
Trì hoãn khi rẽ nhánh
n Đợi cho đến khi kết quả rẽ nhánh đã được 
xác định trước khi nhận lệnh tiếp theo
2017 Kiến trúc máy tính 345
NKK-HUST
Dự đoán rẽ nhánh
n Những đường ống dài hơn không thể 
sớm xác định dễ dàng kết quả rẽ nhánh 
n Cách trì hoãn không đáp ứng được
n Dự đoán kết quả rẽ nhánh
n Chỉ trì hoãn khi dự đoán là sai
n Với MIPS
n Có thể dự đoán rẽ nhánh không xẩy ra
n Nhận lệnh ngay sau lệnh rẽ nhánh (không 
làm trễ)
2017 Kiến trúc máy tính 346
NKK-HUST
MIPS với dự đoán rẽ nhánh không xẩy ra
Prediction 
correct
Prediction 
incorrect
2017 Kiến trúc máy tính 347
NKK-HUST
Đặc điểm của đường ống
n Kỹ thuật đường ống cải thiện hiệu năng 
bằng cách tăng số lệnh thực hiện
n Thực hiện nhiều lệnh đồng thời
n Mỗi lệnh có cùng thời gian thực hiện
n Các dạng hazard:
n Cấu trúc, dữ liệu, điều khiển
n Thiết kế tập lệnh ảnh hưởng đến độ phức 
tạp của việc thực hiện đường ống
2017 Kiến trúc máy tính 348
NKK-HUST
Tăng cường khả năng song song mức lệnh
2017 Kiến trúc máy tính 349
n Tăng số công đoạn của đường ống
n Siêu vô hướng (Superscalar)
 Lệnh 1 
 Lệnh 4
Lệnh 3
Lệnh 2
 Lệnh 5
 Lệnh 6
 Lệnh 1 
 Lệnh 4
Lệnh 3
Lệnh 2
 Lệnh 6
Lệnh 5
NKK-HUST
6.4. Thiết kế bộ xử lý theo kiến trúc MIPS(*) 
Dành riêng cho Chương trình Tài năng và Chất lượng cao
MIPS.pptx
2017 Kiến trúc máy tính 350
NKK-HUST
Hết chương 6
2017 Kiến trúc máy tính 351

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_6_bo_xu_ly_nguyen_kim_kh.pdf