Professional Documents
Culture Documents
Ch−¬ng 4
KIẾN TRÚC RISC & KỸ THUẬT
ỐNG DẪN
3
Giới thiệu kiến trúc RISC
Các kiến trúc với tập lệnh phức tạp CISC (Complex
Instruction Set Computer) được nghĩ ra từ những
năm 1960.
4
Giới thiệu kiến trúc RISC
6
Đặc trưng của RISC (tt)
7
KỸ THUẬT ỐNG DẪN
10
- Phải có nhiều thanh ghi khác nhau dùng cho các tác vụ đọc và viết.
- Trong một máy có kỹ thuật ống dẫn, có khi kết quả của một tác vụ
trước đó, là toán hạng nguồn của một tác vụ khác. Như vậy sẽ có
thêm những khó khăn mà ta sẽ đề cập ở mục tới.
- Cần phải giải mã các lệnh một cách đơn giản để có thể giải mã
và đọc các toán hạng trong một chu kỳ duy nhất của xung nhịp.
- Cần phải có các bộ làm tính ALU hữu hiệu để có thể thi hành lệnh
số học dài nhất, có số giữ, trong một khoảng thời gian ít hơn một
chu kỳ của xung nhịp.
- Cần phải có nhiều thanh ghi lệnh để lưu giữ lệnh mà chúng ta phải
xem xét cho mỗi giai đoạn thi hành lệnh.
- Cuối cùng phải có nhiều thanh ghi bộ đếm chương trình PC để có
thể tái tục các lệnh trong trường hợp có ngắt quãng.
11
Khó khăn trong kĩ thuật ống dẫn
2.1. Khó khăn do cấu trúc
Đây là khó khăn do thiếu bộ phận chức năng, ví dụ trong
một máy tính dùng kỹ thuật ống dẫn phải có nhiều ALU,
nhiều PC, nhiều thanh ghi lệnh IR ... Các khó khăn này được
giải quyết bằng cách thêm các bộ phận chức năng cần thiết
và hữu hiệu.
2.2. Khó khăn do số liệu:
Lấy ví dụ trường hợp các lệnh liên tiếp sau:
Lệnh 1: ADD R1, R2, R3
Lệnh 2: SUB R4, R1, R5
Lệnh 3: AND R6, R1, R7
Lệnh 4: OR R8, R1, R9
12
CHƯƠNG 4: KỸ THUẬT PIPELINING
13
CHƯƠNG 4: KỸ THUẬT PIPELINING
14
CHƯƠNG 3: KỸ THUẬT PIPELINING
- Những kí hiệu “o” chèn vào tượng trưng cho chu kì trễ (stall
cycles) sẽ được sử dụng nếu ta sử dụng bộ nhớ đơn lưu trữ cả
lệnh vào dữ liệu
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.1. Kỹ thuật Pipelining
3.1.2. Xung đột (Hazard)
+ Xung đột cấu trúc:
- Khi cả stage X và D đều yêu cầu bộ cộng, mà chỉ có 1 bộ cộng
trong VXL
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.1. Kỹ thuật Pipelining
3.1.2. Xung đột (Hazard)
+ Xung đột dữ liệu:
- RAW (Read after Write):
Instruction 1: ADD R2, R1, R3 R2 <- R1 + R3
Instruction 2: ADD R4, R2, R3 R4 <- R2 + R3
I1 F D X M W
I2 F D X M W
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.1. Kỹ thuật Pipelining
3.1.2. Xung đột (Hazard)
+ Xung đột dữ liệu:
- WAR (Write after Read):
Instruction 1: ADD R1, R2, R3 R1 <- R2 + R3
Instruction 2: ADD R3, R4, R5 R3 <- R4 + R5
I1 F D X M W
I2 F D X M W
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.1. Kỹ thuật Pipelining
3.1.2. Xung đột (Hazard)
+ Xung đột dữ liệu:
- WAW (Write after Write)
Instruction 1: ADD R2, R1, R3 R2 <- R1 + R3
Instruction 2: ADD R2, R4, R7 R2 <- R4 + R7
I1 F D X M W
I2 F D X M W
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.1. Kỹ thuật Pipelining
3.1.2. Xung đột (Hazard)
+ Xung đột điều khiển:
- Control Hazard xảy ra khi có lệnh rẽ nhánh
- Khi lệnh rẽ nhánh được yêu cầu thực hiện, con trỏ bộ đếm
chương trình (PC) sẽ chuyển tới địa chỉ đích bằng cách cộng
thêm 4
Nhảy tới đúng địa chỉ đích: rẽ nhánh Taken
Trường hợp ngược lại gọi là nhánh Untaken.
- Khi lệnh i có nhánh taken thì PC sẽ không thay đổi như
bình thường tới hết khâu M (memory access)
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.1. Kỹ thuật Pipelining
3.1.2. Xung đột (Hazard)
+ Xung đột điều khiển:
- Phương pháp đơn giản nhất để khắc phục control hazard là
gây trễ kịp thời trên pipeline để phát hiện nhánh cho đến khâu
M, sử dụng giá trị mới của PC.
F D X M W
Lệnh nhánh
Nhánh kế thừa F Stall Stall F D X M W
F D X M W
Nhánh kế thừa +1
F D X M W
Nhánh kế thừa +2
F D X M
Nhánh kế thừa +3
F D X
Nhánh kế thừa +4
F D
Nhánh kế thừa +5
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.2. Điều khiển Pipelining
+ Xung đột (Hazard) là một yếu tố quan trọng ảnh hưởng trực
tiếp tới tốc độ của VXL trong kỹ thuật Pipeline
+ Một số kỹ thuật giải quyết xung đột chủ yếu:
- Chèn trễ
- Tổ chức lại các lệnh
- Sử dụng đường dữ liệu nội đặc biệt
- Tomasulo
- Định biểu
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.2. Điều khiển Pipelining
3.2.1. Chèn trễ
+ Kỹ thuật chèn trễ được sử dụng khá hữu hiệu để giải quyết các
xung đột về cấu trúc cũng như về dữ liệu:
+ Ví dụ:
+ Xung đột dữ liệu xảy ra khi lệnh 1 chưa lưu kết quả vào R1 thì
lệnh 2 đã thực hiện trừ R1 cho R5 (RAW)
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.2. Điều khiển Pipelining
3.2.1. Chèn trễ
+ Chèn trễ:
+ Kỹ thuật chèn trễ này hoạt động khá ổn định, tuy nhiên vẫn còn
chưa tận dụng được nhiều chu kỳ nhàn rỗi của máy, do đó hiệu
suất chưa cao.
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.2. Điều khiển Pipelining
3.2.2. Tổ chức lại các lệnh
+ Kỹ thuật này đòi hỏi trình dịch phải dự đoán được sự phụ thuộc
dữ liệu giữa các lệnh, qua đó thay đổi trật tự thực hiện lệnh
CHƯƠNG 4: KỸ THUẬT PIPELINING
3.2. Điều khiển Pipelining
3.2.3. Sử dụng đường dữ liệu nội đặc biệt
+ Giá trị của biến sẽ được cập nhập rất sớm nhờ sử dụng đường
dữ liệu nội đặc biệt. Điều này làm giảm số chu kỳ nhàn rỗi trong
pipeline và tăng tốc độ VXL
C¸c kiÕn tróc song song møc lÖnh
37
Siêu ống dẫn
38
Siêu ống dẫn
Hình 7.3 trình bày thí dụ về siêu ống dẫn bậc 2, có so sánh
với siêu ống dẫn đơn giản. Ta thấy trong một chu kỳ Tc, máy
dùng kỹ thuật siêu ống dẫn làm 2 lệnh thay vì làm 1 lệnh trong
máy dùng kỹ thuật ống dẫn bình thường. Trong máy tính siêu
ống dẫn, tốc độ thực hiện lệnh tương đương với việc thực hiện
một lệnh trong khoảng thời gian Tc/n. Các bất lợi của siêu ống
dẫn là thời gian thực hiện một giai đoạn con ngắn Tc/n và việc
trì hoãn trong thi hành lệnh nhảy lớn.
39
superscala
40
VLIW (Very Long Instruction Word
41
KiÕn tróc m¸y tÝnh
HÕt ch−¬ng 4