4. 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)
5. 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ớ
6. 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 đó
9. 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.)
10. 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 đó.
11. 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
12. 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
13. 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
đó.
14. 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
15. 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
16. 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
17. 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)
19. 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
21. 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
22. 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
23. 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
24. 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
25. 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án
hạ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
26. 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
28. 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
29. 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
30. 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
32. 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)
...
33. 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
35. 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
37. 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)
39. 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
41. 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
42. Phan Trung Kiên 42
Cấu trúc chung của các bộ xử lý tiên tiến
43. 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
44. 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
45. 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ớ
46. 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)
50. 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
51. 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)
52. 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
55. 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
56. 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)
57. 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