Bài giảng Kiến trúc máy tính - Chương 3: Bộ xử lý khối điều khiển và đường dữ liệu

Nội dung

 Thành phần cơ bản của bộ xử lý

– Lệnh truy cập

– Các toán tử ALU

– Toán tử bộ nhớ

 Kết nối các thành phần

– Các tín hiệu điều khiển và bộ đồn kênh MUXes

– Các chỉ thị giải mã lệnh

pdf62 trang | Chuyên mục: Kiến Trúc Máy Tính | Chia sẻ: yen2110 | Lượt xem: 387 | Lượt tải: 0download
Tóm tắt nội dung Bài giảng Kiến trúc máy tính - Chương 3: Bộ xử lý khối điều khiển và đường dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
g
 Hiệu năng (tốc độ) của máy tính X:
 Máy tính X nhanh hơn máy tính Y, n lần:
 Để tối đa hóa hiệu năng, cần tối thiểu hóa thời gian thực hiện
 Giảm thời gian đáp ứng thường sẽ tăng thông lượng
x
x TimeExecution 
1ePerformanc 
n
x
y
y
x
imeExecutionT
imeExecutionT
ePerformanc
ePerformanc
Đo hiệu năng – Đo thời gian
thực hiện
Thời gian dùng để tính hiệu năng
 Thời gian đáp ứng (thời gian đồng hồ, thời gian đã trôi qua): 
 Tổng thời gian hoàn thành 1 nhiệm vụ
 Bao gồm: thời gian truy cập đĩa, bộ nhớ, thời gian vào ra, thời gian cho hệ điều hành
 Thời gian bộ xử lý (CPU time)
 Thời gian CPU người dùng
 Thời gian CPU hệ thống
 Thời gian CPU – thời gian bộ xử lý dùng để thực hiện 1 nhiệm vụ
 Không bao gồm thời gian chờ vào/ra hay thời gian thực hiện các chương trình khác
 Thời gian CPU cho 1 chương trình, Tcpu được tính từ số chu kỳ đồng hồ CPU thưc
hiện chương trình P và thời gian 1 chu kỳ đồng hồ
ccpuccpu fCTTCT /or 
Ví dụ
 Công thức để tính thời gian CPU, khi máy tính A thực hiện chương trình:
 Số chu kỳ máy tính A dùng để thực hiện chương trình:
 Số chu kỳ máy tính B dùng để thực hiện chương trình:
 Tốc độ đồng hồ của máy tính B:
 Hiệu năng có thể cải thiện bằng cách giảm số chu kỳ 1 xung đồng hồ hoặc giảm
số chu kỳ cần thiết để thực hiện chương trình
Ac
A
Acpu f
CT
,
, 
cycles102010210 99,,  AcAcpuA fTC
AB CC  2,1
GHz
T
Cf
Bcpu
B
Bc 46
10202,1 9
,
, 
Máy tính A với xung đồng hồ 2GHz thực hiện 1 chương
trình hết 10 giây. Để thực hiện chương trình đó trong 6 
giây bằng máy tính B, ta cần tăng tốc độ xung đồng hồ
của máy B. Tuy nhiên, tăng tốc độ xung đồng hồ cũng
làm tăng số chu kỳ cần thiết lên 1,2 lần. Xác định tốc
độ xung đồng hồ máy tính B
Số xung đồng hồ
HUST-FET, 04/04/2014
 Số xung đồng hồ thực hiện 1 chương trình:
 Trong đó:
 I là số chỉ thị máy cần thực hiện trong chương trình
 CPI (eng. Clock cycles per Instruction) là số xung đồng hồ trung bình cần để thực thi 
1 chỉ thị máy, 
 CPI có thể dùng để so sánh các máy tính khác nhau cùng triển khai 1 kiến trúc tập lệnh. 
 Ví dụ: có 3 loại lệnh A, B, C khác nhau trong 1 kiến trúc tập lệnh. Mỗi lệnh trong từng
loại có CPI tương ứng: 
CPIIC 
CPI for this instruction class
A B C
CPI 1 2 3
So sánh dựa trên CPI
 Khi 2 máy tính A, B cùng thực hiện 1 chương trình, chúng cùng thực
hiện I chỉ thị.
 Do đó: 
 Máy A nhanh hơn máy B:
IpsITCPIIT
IpsITCPIIT
BcBBcpu
AcAAcpu


6005002,1
5002500,2
,,
,,
PerformanceA
PerformanceB
 Tcpu,B
Tcpu,A
 600 I
500 I 1,2
Máy tính A và B cùng triển khai 1 kiến
trúc tập lệnh. Máy A có chu kỳ đồng hồ
là 250ps, và CPI hiệu dụng cho 1 
chương trình P là 2,0. Máy B có chu kỳ
đồng hồ là 500ps, và CPI hiệu dụng
cho cùng 1 chương trình P là 1,2. Máy
tính nào nhanh hơn và nhanh hơn bao
nhiêu?
CPI hiệu dụng (trung bình)
 CPI hiệu dụng được tính bằng cách xét tất cả các lớp chỉ thị có trong 
chương trình và lấy trung bình với trọng số là tỉ lệ xuất hiện của lớp chỉ thị
trong chương trình
 Trong đó:
 ICi là tỉ lệ (%) số chỉ thị thuộc loại i được thực thi
 CPIi là số chu kỳ (trung bình) cần để thực hiện 1 chỉ thị thuộc thuộc loại i
 n là số loại chỉ thị
 CPI hiệu dụng phụ thuộc vào tỉ lệ chỉ thị trong một chương trình (tần suất
động của các chỉ thị trong 1 hoặc nhiều chương trình)
)(
1
i
n
i
i ICCPICPI 

So sánh đoạn mã chương trình
HUST-FET, 04/04/2014
51
 Người thiết kế một máy tính triển khai kiến trúc tập lệnh gồm 3 loại chỉ thị A, 
B, C được CPI như sau:
 Với 1 câu lệnh ở ngôn ngữ bậc cao, người viết trình biên dịch có thể lựa
chọn 2 đoạn chỉ thị máy gồm có tần suất các loại chỉ thị như sau:
 Đoạn mã nào gồm nhiều chỉ thị hơn? Đoạn mã nào nhanh hơn? Tính CPI 
của từng đoạn mã.
A B C
CPI 1 2 3
Đoạn mã A B C
1 2 1 2
2 4 1 1
So sánh đoạn mã chương trình
HUST-FET, 04/04/2014
52
 Đoạn mã 1 dùng 5 chỉ thị, đoạn mã 2 dùng 6 chỉ thị
 Số xung đồng hồ để thực hiện mỗi đoạn mã được tính như sau:
 Trong đó I1,i, I2,i là số lượng chỉ thị loại i trong đoạn mã 1 và 2 tương ứng
 Như vậy đoạn mã 1 chậm hơn đoạn mã 2, mặc dù dùng ít chỉ thị hơn
Đoạn mã A B C
1 2 1 2
2 4 1 1
9)131241()(
10)231221()(
,2
3
1
2
,1
3
1
1






i
i
i
i
i
i
ICPIC
ICPIC
A B C
CPI 1 2 3
Cải tiến hiệu năng
 Cho một máy tính thực hiện 1 chương trình gồm 4 loại chỉ thị máy có các thông số về tần suất và CPI 
như sau:
 Nếu ta có bộ đệm dữ liệu làm giảm thời gian nạp (Load) xuống 2 chu kỳ, máy tính sẽ nhanh lên bao
nhiêu lần?
 Nếu ta có khối dự báo rẽ nhánh cho phép tiết kiệm 1 chu kỳ khi rẽ nhánh, hiệu năng sẽ thế nào?
 Nếu ta có 2 khối ALU thực hiện 2 chỉ thị ALU đồng thời?
Op Tần suất (ICi) CPIi ICi x CPIi
ALU 50% 1
Load 20% 5
Store 10% 3
Branch 20% 2
 =
Hiệu năng thiết kế đơn xung nhịp
HUST-FET, 04/04/2014
Độ trễ logic khi
Truy cập lệnh 2 ns
Đọc thanh ghi 1 ns
Hoạt động ALU 2 ns
Truy cập bộ nhớ DL 2 ns
Ghi thanh ghi 1 ns
Tổng 8 ns
Tốc độ đồng hồ = 125 MHz
Các loại lệnh:
R-type 44% 6 ns
Load 24% 8 ns
Store 12% 7 ns
Branch 18% 5 ns
Jump 2% 4 ns
Thời gian trung bình 6.38 ns
CPI = 1.
P 
C 
P 
C 
P 
C 
P 
C 
P 
C 
ALU-type 
Load 
Store 
Branch 
Jump 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
(and jr) 
(except 
jr & jal) 
Thiết kế đơn xung nhịp – Ưu
nhược điểm
HUST-FET, 04/04/2014
55
 Sử dụng chu kỳ đồng hồ không hiệu quả – chu kỳ đồng hồ được đặt
theo lệnh chậm nhất.
 Các lệnh phức tạp như lệnh nhân dấu phẩy động: Tốn diện tích thiết kế
vì cần nhân đôi một số khối chức năng (VD. bộ cộng) vì chúng không
thể được chia sẻ trong cùng 1 chu kỳ đồng hồ
 Đơn giản và dễ hiểu
Clk
lw sw Waste
Cycle 1 Cycle 2
Thiết kế đa xung nhịp
HUST-FET, 04/04/2014
56
 Chia lệnh thành các pha thực hiện: IF, ID, EX, MEM, WB. Mỗi pha thực hiện trong 
1 chu kỳ xung nhịp
 Thời gian thực hiện (= số pha) của mỗi lệnh được điều chỉnh tùy thuộc độ phức
tạp của lệnh
 Các khối chức năng được chia sẻ giữa các pha khác nhau của lệnh do một khối
chức năng cụ thể không cần trong toàn bộ các pha thực hiện của lệnh
Clock 
Clock 
Instr 2 Instr 1 Instr 3 Instr 4 
3 cycles 3 cycles 4 cycles 5 cycles 
Time 
saved 
Instr 1 Instr 4 Instr 3 Instr 2 
Time 
needed 
Time 
needed 
Time 
allotted 
Time 
allotted 
Hiệu năng thiết kế đa xung nhịp
HUST-FET, 04/04/2014
Các loại lệnh sử dụng số
chu kỳ khác nhau
R-type 44% 4 cycles
Load 24% 5 cycles
Store 12% 4 cycles
Branch 18% 3 cycles
Jump 2% 2 cycles
Đóng góp vào số chu kỳ
trung bình cần cho một
lệnh:
R-type
Load
Store
Branch
Jump
_____________________________
CPI trung bình 
P 
C 
P 
C 
P 
C 
P 
C 
P 
C 
ALU-type 
Load 
Store 
Branch 
Jump 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
(and jr) 
(except 
jr & jal) 
Hiệu năng thiết kế đa xung nhịp
HUST-FET, 04/04/2014
58
Các loại lệnh sử dụng số
chu kỳ khác nhau
R-type 44% 4 cycles
Load 24% 5 cycles
Store 12% 4 cycles
Branch 18% 3 cycles
Jump 2% 2 cycles
Tính số chu kỳ trung bình
cần cho một lệnh:
R-type 0.444 = 1.76
Load 0.245 = 1.20
Store 0.124 = 0.48
Branch 0.183 = 0.54
Jump 0.022 = 0.04
_____________________________
CPI trung bình  4.02
P 
C 
P 
C 
P 
C 
P 
C 
P 
C 
ALU-type 
Load 
Store 
Branch 
Jump 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
Not 
used 
(and jr) 
(except 
jr & jal) 
Thiết kế đơn xung nhịp
HUST-FET, 04/04/2014
59
 / 
 ALU 
Data 
cache 
Instr 
cache 
Next addr 
Reg 
file 
op 
 jta 
fn 
inst 
 imm 
rs (rs) 
 (rt) 
Data 
addr 
Data 
in 0 
1 
ALUSrc 
ALUFunc DataWrite 
DataRead 
SE 
RegInSrc 
rt 
rd 
RegDst 
RegWrite 
32 
 / 
16 
Register input 
Data 
out 
Func 
ALUOvfl 
Ovfl 
31 
0 
1 
2 
Next PC 
Incr PC 
 (PC) 
Br&Jump 
ALU 
out 
PC 
0 
1 2 
Clock rate = 125 MHz
CPI = 1 (125 MIPS)
Thiết kế đa xung nhịp
HUST-FET, 04/04/2014
60
Clock rate = 500 MHz
CPI  4 ( 125MIPS)
 / 
16 
rs 
0 
1 
0 
 1 
 2 
 ALU 
Cache Reg file 
op 
 jta 
fn 
 (rs) 
 (rt) 
Address 
Data 
 Inst Reg 
 Data Reg 
 x Reg 
 y Reg 
z Reg PC 
4 
ALUSrcX 
ALUFunc 
MemWrite 
 MemRead 
RegInSrc 
4 
rd 
RegDst RegWrite 
 / 
32 
Func 
ALUOvfl 
Ovfl 
31 
PCSrc 
 PCWrite IRWrite 
ALU out 
0 
1 
0 
1 
0 
 1 
 2 3 
0 
 1 
 2 
 3 
InstData 
 ALUSrcY 
SysCallAddr 
 / 
26 
4 
rt 
ALUZero 
Zero 
 x Mux 
 y Mux 
0 
1 
JumpAddr 
 4 MSBs 
 / 
30 
 30 
SE 
imm 
2
So sánh đánh giá thiết kế
đơn xung nhịp
HUST-FET, 04/04/2014
Instruction access 2 ns
Register read 1 ns
ALU operation 2 ns
Data cache access 2 ns
Register write 1 ns
Total 8 ns
Single-cycle clock = 125 MHz
Đồng hồ tốc độ 125 MHz là bình thường
So sánh độ trễ thực hiện 1 lệnh: 
Một bộ xử lý 2.5 GHz với 20 giai đoạn pipeline có độ trễ khoảng:
0.4 ns/cycle  20 cycles = 8 ns 
Lưu lượng của bộ xử lý có pipeline tốt hơn rất nhiều:
Tốt hơn tới 20 lần với các bộ xử lý phát hành đơn lệnh
Tốt hơn tới 100 lần với các bộ xử lý phát hành đa lệnh
So sánh đánh giá thiết kế đa xung
nhịp
HUST-FET, 04/04/2014
62
R-type 44% 4 cycles
Load 24% 5 cycles
Store 12% 4 cycles
Branch 18% 3 cycles
Jump 2% 2 cycles
Contribution to CPI
R-type 0.444 = 1.76
Load 0.245 = 1.20
Store 0.124 = 0.48
Branch 0.183 = 0.54
Jump 0.022 = 0.04
_____________________________
Average CPI  4.02
Cycle time = 2 ns
Clock rate = 500 MHz
So sánh độ trễ thực hiện 1 lệnh:
Một bộ xử lý 2.5 GHz với 20 giai đoạn pipeline 
có độ trễ khoảng: 0.4 ns/cycle  20 cycles = 8 ns 
Lưu lượng của bộ xử lý có pipeline 
tốt hơn rất nhiều:
- Tốt hơn tới 20 lần với các bộ xử lý phát
hành đơn lệnh
- Tốt hơn tới 100 lần với các bộ xử lý phát
hành đa lệnh

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_3_bo_xu_ly_khoi_dieu_khi.pdf