Chuong 2 Khoi xu ly trung tam TV tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các lĩnh...
Trang 1Chương 2 Khối xử lý trung tâm - CPU
Trang 2Nội dung
2.1 Khối xử lý trung tâm
2.2 Tập lệnh máy tính
2.3 Cơ chế ống lệnh (pipeline)
Trang 32.1 Khối xử lý trung tâm
Trang 42.1.1 Chu kỳ xử lý lệnh
1 Khi một chương trình được chạy, hệ điều hành tải mã chương trình vào bộ nhớ
trong
2 Địa chỉ lệnh đầu tiên của chương trình được đưa vào thành ghi PC
3 Địa chỉ của ô nhớ chứa lệnh được chuyển tới bus A qua thanh ghi MAR
4 Tiếp theo, bus A truyền địa chỉ tới khối quản lý bộ nhớ MMU
(Memory Management Unit)
5 MMU chọn ô nhớ và sinh ra tín hiệu READ
Trang 52.1.1 Chu kỳ xử lý lệnh
Lệnh chứa trong ô nhớ được chuyển tới thanh ghi MBR qua
MBR chuyển lệnh tới thanh ghi IR Sau đó IR lại chuyển lệnh
CU giải mã lệnh và sinh ra các tín hiệu xử lý cho các đơn vị
ALU để thực hiện lệnh
Địa chỉ trong PC được tăng lên để trỏ tới lệnh tiếp theo của
được thực hiện
Thực hiện lại các bước
Trang 6▪ độ rất cao (bằng tốc độ CPU)
➢ Các CPU thế hệ cũ (80x86) có 16 – 32 thanh ghi CPU thế hệ mới (Intel Pentium
4, Core 2 Duo) có hàng trăm thanh ghi
➢ Kích thước thanh ghi phụ thuộc vào thiết kế CPU: 8, 16, 32,
Trang 72.1.3 Thanh ghi tích lũy A
Trang 82.1.4 Bộ đếm chương trình
• Program Counter hay Instruction Pointer lưu địa chỉ bộ nhớ của lệnh tiếp theo
• PC chứa địa chỉ ô nhớ chứa lệnh đầu tiên của chương trình khi nó được kích hoạt
và được tải vào bộ nhớ
• Sau khi CPU chạy xong 1 lệnh, địa chỉ ô nhớ chứa lệnh tiếp theo được tải vào PC
• Kích thước của PC phụ thuộc vào thiết kế CPU: 8, 16, 32, 64 bit
Trang 92.1.5 Thanh ghi trạng thái FR
Mỗi
Có
Cờ trạng thái: CF, OF, AF, ZF, PF, SF
Cờ điều khiển: IF, TF, DF
Trang 102.1.6 Thanh ghi trạng thái FR
Trang 112.1.7 Thanh ghi trạng thái của 8086
Trang 122.1.8 Con trỏ ngăn xếp
Trang 132.1.9 Các thanh ghi đa năng
• Có thể sử dụng cho nhiều mục đích:
Lưu các toán hạng đầu vào
Lưu các kết quả đầu ra
• Ví dụ: CPU 8086 có 4 thanh ghi đa năng
AX: Accumulator Register
BX: Base Register
CX: Counter Register
DX: Data Register
Trang 142.1.10 Thanh ghi lệnh IR
Trang 152.1.11 Thanh ghi MBR và MAR
Trang 162.1.12 Các thanh ghi tạm thời
CPU thường sử dụng một số thanh ghi tạm thời để:
•
Lưu trữ các toán hạng đầu vào
Lưu các kết quả đầu ra
Hỗ trợ xử lý song song (tại một thời điểm chạy nhiều hơn 1 lệnh)
Hỗ trợ thực hiện lệnh theo cơ chế thực hiện tiên tiến kiểu không trật tự (OOO –Out Of Order execution)
Trang 172.1.13 Khối điều khiển CU
Trang 192.1.14 Khối số học và login ALU
Trang 222.2 Tập lệnh máy tính
Lệnh máy tính là một từ nhị phân (binary word
Lệnh được lưu trong bộ nhớ
Lệnh được đọc từ bộ nhớ vào CPU để giải mã và thực hiện
Mỗi lệnh có chức năng riêng của nó
Tập
Chuyển dữ liệu (data movement)
Tính toán (computational)
Điều kiện và rẽ nhánh (conditioning & branching)
Các lệnh khác …
Trang 232.2 Tập lệnh máy tính
Quá trình thực hiện/ chạy lệnh được chia thành các pha
lệnh có thể được thực hiện theo 4 giai đoạn:
✓ Đọc lệnh IF(Instruction Fetch): lệnh được đọc từ bộ nhớ vào CPU
✓ Giải mã lệnh ID(Instruction Decode): CPU giải mã lệnh
✓ Chay lệnh IE(Instruction Execution): CPU thực hiện lệnh
✓ Ghi WB(Write Back): kết quả lệnh (nếu có) được ghi vào thành ghi hoặc bộ nhớ
Trang 242.2.1 Khuôn dạng lệnh
Trang 25Toán hạng 3 địa chỉ
Trang 28Toán hạng 1.5 địa chỉ
Trang 292.2.2 Chế độ địa chỉ
Trang 30Chế độ địa chỉ tức thời
Trang 31CHẾ ĐỘ ĐỊA CHỈ TRỰC TIẾP/ TUYỆT ĐỐI
Trang 32CHẾ ĐỘ ĐỊA CHỈ TRỰC TIẾP/ TUYỆT ĐỐI
Trang 33CHẾ ĐỘ ĐỊA CHỈ GIÁN TIẾP
Trang 34CHẾ ĐỘ ĐỊA CHỈ CHỈ SỐ
Địa
một thanh ghi, là thanh ghi chỉ số
Ví
LOAD
Trang 35CHẾ ĐỘ ĐỊA CHỈ TƯƠNG ĐỐI
Địa
một thanh ghi, là thanh ghi con đếm chương trình PC
Ví
LOAD
Trang 36TỔNG KẾT CÁC CHẾ ĐỘ ĐỊA CHỈ
Tức thì (immediate operand_
Giá trị của toán hạng được chứa trong lệnh LOAD Ri, 1000 Ri 1000
Trực tiếp (direct address)
Địa chỉ của toán hạng được chứa trong lệnh LOAD Ri, (1000) Ri M[1000]
Gián tiếp thanh ghi (Register indirect)
Giá trị của thanh ghi trong lệnh là địa chỉ bô nhớ chứa toán hạng LOAD Ri, (Rj) Ri M[Rj]
Gián tiếp bộ nhớ (indirect address)
Địa chỉ bộ nhớ trong lệnh chứa địa chỉ
bộ nhớ của toán hạng
LOAD Ri, ((1000)) Ri M[M[1000]]
Chỉ số (index address) Địa chỉ của toán hạng là tổng của hằng số (trong lệnh) và giá trị của một
thanh ghi chỉ số
LOAD Ri, X(Rind) Ri M[X+ Rind]
Tương đối (Relative address)
Địa chỉ của toán hạng là tổng của hằng số và giá trị của thanh ghi con đếm chương trình
LOAD Ri, X(PC) Ri M[ X+ PC]
Trang 37Autoincrement 400 /* AC (R1)+ */ 700
Autodecrement 399 /* AC -(R) */ 450
Load to AC Mode Address = 500 Next instruction
200 201 202
399 400
450 700
PC = 200 R1 = 400
XR = 100 AC
Trang 40MỘT SỐ LỆNH VẬN CHUYỂN DỮ LIỆU THÔNG DỤNG
MOVE:
nhớ
LOAD:
STORE: lưu nội dung
Trang 44Lệnh điều khiển/tuần tự
Được
❖ dùng để thay đổi trình tự các lệnh được thực hiện:
Các lệnh rẽ nhánh (nhẩy) có điều
Các lệnh rẽ nhánh (nhẩy) không điều
Trang 45Một số lệnh điều khiển thông dụng
Trang 46Các lệnh vào ra
Trang 472.2.4 CÁC VÍ DỤ
R0 0 R1 100
R1 R1-1
go to LAP if R1>0 M[2000] R0
Trang 48Bài tập
• 1 Cho đoạn lệnh sau: ADD R2, (R0); SUBSTRACT R2,
(R1); MOVE 500(R0), R2; LOAD R2, #5000; STORE
Trang 49Bài tập
2 Cho đoạn lệnh sau:
MOVE R0, #100;
CLEAR R1; CLEAR R2;
Trang 502.3 GIỚI THIỆU CƠ CHẾ ỐNG LỆNH PIPELINE
Trang 522.3.1 PIPELINE – VÍ DỤ THỰC TẾ
Trang 532.3.1 PIPELINE – VÍ DỤ THỰC TẾ
Trang 542.3.2 GIỚI THIỆU VỀ CPU PIPELINE – NGUYÊN LÝ
Quá trình thực hiện lệnh được
5
❖ giai đoạn của hệ thống load – store:
Instruction
▪ fetch (IF): lấy lệnh từ bộ nhớ (hoặc cache)
Instruction Decode (ID):
▪ giải mã lệnh và lấy các toán hạng
Execute (EX): thực hiện lệnh: nếu là lệnh truy
▪ cập bộ nhớ thì tính toán địa chỉ bộ nhớ
Memory access
▪ (MEM): đọc/ ghi bộ nhớ ; nếu không truy cập bộ nhớ thì không có
Write
▪ back (WB): lưu kết quả vào thanh ghi
Cải thiện hiệu năng bằng cách tăng số lượng lệnh
Trang 552.3.2 GIỚI THIỆU VỀ CPU PIPELINE – NGUYÊN LÝ
Trang 562.3.3 GIỚI THIỆU VỀ CPU PIPELINE – ĐẶC ĐIỂM
Pipeline là kỹ thuật song song ở mức lệnh
▪ 2, 3, 5 giai đoạn: pipeline đơn giản
Trang 572.3.4 SỐ LƯỢNG GIAI ĐOẠN
Theo lý thuyết, số lượng
Nếu pipeline dài
pipeline
Trang 582.3.5 CÁC VẤN ĐỀ CỦA PIPELINE
Vấn
▪ Xung đột truy cập bộ nhớ
▪ Xung đột truy cập thanh ghi
Xung đột/
▪ Hầu hết là RAW hay Read After Write Hazard
Các
▪ Không điều kiện
▪ Có điều kiện
▪ Gọi thực hiện và trở về từ chương trình con
Trang 59Xung đột tài nguyên
Trang 60Xung đột tài nguyên
▪ cache: hỗ trợ nhiều thao tác đọc/ ghi cùng lúc
Chia cache thành cache lệnh
▪ và cache dữ liệu để cải thiện truy nhập
Trang 61Xung đột dữ liệu
▪ giá trị cũ của R1 trước khi ADD lưu trữ giá trị mới vào R1
• Dữ liệu chưa sẵn sàng cho các lệnh phụ thuộc tiếp theo
Trang 62Xung đột dữ liệu
SUB R4, R1, R2; R4 R1 + R2
Trang 63Hướng khắc phục xung đột dữ liệu
▪ NO-OP vào giữa các lệnh có RAW
Thay đổi trình tự các lệnh trong chương trình
▪ và chèn các lệnh độc lập dữ liệu vào vị trí giữa 2 lệnh có RAW
Sử dụng
❖ phần cứng để xác định RAW (có trong các CPUs hiện đại) và dự đoán trước giá trị dữ liệu phụ thuộc
Trang 64QUẢN LÝ CÁC LỆNH RẼ NHÁNH TRONG PIPELINE
❖ các CPU mà pipeline dài (P4 với 31 giai đoạn) và nhiều pipeline chạy song song, vấn
đề rẽ nhánh càng trở nên phức tạp hơn vì:
Trang 65QUẢN LÝ CÁC LỆNH RẼ NHÁNH TRONG PIPELINE
Trang 66GIẢI PHÁP QUẢN LÝ CÁC LỆNH RẼ NHÁNH
❖ Đích rẽ nhánh (branch target)
❖ Rẽ nhánh có điều kiện (conditional branches)
Trang 67GIẢI PHÁP QUẢN LÝ CÁC LỆNH RẼ NHÁNH
Các
❖ lênh rẽ nhánh được xác định tại giai đoạn ID, vậy có thể biết trước chúng bằng cách giải mã trước
Sử dụng
❖ đệm đích rẽ nhánh (BTB: branch target buffer) để lưu vết của các lệnh rẽ nhánh đã được thực thi:
Địa chỉ đích của các lệnh
▪ rẽ nhánh được thực hiện
▪ địa chỉ đích của chúng lưu trong BTB có thể được dùng mà không cần tính lại
Các lệnh đích có thể dùng trực tiếp không cần load lại từ
• Điều này có thể vì địa chỉ và lệnh đích thường không thay đổi
Trang 68Lệnh rẽ nhánh có điều kiện
Khó
❖ quản lý các lệnh rẽ nhánh ko có điều kiện hơn vì:
Có
▪ 2 lệnh đích để lựa chọn
Không thể xác định được lệnh đích tới
▪ khi lệnh rẽ nhánh được thực hiện xong
Sử dụng BTB
▪ không hiệu quả vì phải đợi tới khi có thể xác định được lệnh đích
Trang 69Lệnh rẽ nhánh có điều kiện – các chiến lược
❖ Làm chậm rẽ nhánh
❖ Dự đoán arẽ nhánh
Trang 70❖ điểm của làm chậm rẽ nhánh:
Hoạt động tốt trên các
▪ vi xử lý RISC trong đó các lệnh có thời gian xử lý bằng nhau Pipeline
▪ ngắn (thông thường là 2 giai đoạn)
Lệnh sau lệnh nhảy luôn được thực hiện, không phụ thuộc
▪ vào kết quả lệnh rẽ nhánh Cài
Trang 71Làm chậm rẽ nhánh – nhận xét
được viết hoặc biên dịch lại trên các nền VXL mới
Trang 72Dự đoán rẽ nhánh
Có thể dự
❖ đoán lệnh đích của lệnh rẽ nhánh:
Dự đoán
▪ đúng: nâng cao hiệu năng
Dự đoán sai: đẩy các lệnh tiếp theo đã load
Trường hợp xấu của dự đoán là
Trang 77) 1 (
nk T
T Speedup
k
n is equivalent to number of loads in
the laundry example
k is the stages (washing, drying and
folding.
Clock cycle is the slowest task time
n
k
Trang 78*SPEEDUP(tốc độ thực hiện)
After that the remaining (n
Trang 79If we execute the same task sequentially in a single
•processing unit, it takes (k * n) clock cycles
•
• The speedup gained by using the pipeline is:
S = k * n / (k + n
Trang 81Example: 6 tasks, divided into 4 segments
Trang 82Bài tập
1)Cho Ai*Bi+Ci*Di với i=1->6 Vẽ sơ đồ thực hiện, bảng thực hiện theo chu kỳ clock, tính thời gian và tốc độ thực hiện Biết thời gian của chu kỳ clock là 10ns.
2)Ai+Bi*Ci+Di với i=1->5 Vẽ sơ đồ thực hiện, bảng thực hiện theo chu kỳ clock, tính thời gian và tốc độ thực hiện Biết thời gian của 1 chu kỳ clock là 12ns.
Tanenbaum, Structured Computer Organization, Fifth Edition, (c) 2006 Pearson Education, Inc All rights reserved 0-13-
148521-0
Trang 83TỔNG KẾT
CPU là
hoạt động của các thiết bị trong máy tính để xử lý đúng theo chương trình
đã định
Một
• số các cải tiến như pipeline, kiến trúc siêu hướng và dự đoán rẽ
nhánh đã giúp cho việc xử lý lệnh trong CPU được song song hoá
Trang 84CÂU HỎI VÀ BÀI TẬP
1 Chức năng của CPU và các thành phần trong CPU.
2 Nêu cấu trúc lệnh và tại sao có thể dùng các lệnh có 1 thành phần địa chỉ trong khi nhiều phép toán thông thường có nhiều đối tượng tham gia tính toán.
3 Mô tả hoạt động xử lý lệnh của CPU.
4 Pipeline là gì.
Trang 85Tài liệu tham khảo
Slide
Vinh, Học viện CN Bưu Chính Viễn Thông