Tải bản đầy đủ (.ppt) (23 trang)

slide bài giảng kiến trúc máy tính và hệ điều hành chương 3 kỹ thuật pipelining

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (313.79 KB, 23 trang )

KIẾN TRÚC MÁY TÍNH
VÀ HỆ ĐIỀU HÀNH
  ỹ ậ
 ể
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
  ỹ ậ
* Cấu trúc tuần tự:
 ự
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
+ Thực hiện các lệnh một cách tuần tự.
+ 5 khâu :
-
IF (Instruction Fetch) : Nhận lệnh
-
ID (Instruction Decode) : Giải mã lệnh
-
DF (Data Fetch) : Nhận dữ liệu
-
EX (Execution) : Thực hiện lệnh
-
DS (Data Save) : Lưu kết quả
  ỹ ậ
* Cấu trúc tuần tự:
 ự
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
+ Ví dụ:
- Giả sử mỗi lệnh thực hiện trong 1 chu kì τ
- Với n lệnh :
Ttuần tự = τ *n
- Mỗi khâu thực hiện trong thời gian τ /5
  ỹ ậ


* Cấu trúc tuần tự:
 ự
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
+ Hạn chế:
- Các lệnh được thực hiện liên tiếp nhau
- Xuất hiện khoảng thời gian rỗi (stall) giữa các khâu
- Lệnh trước thực hiện xong mới đến lệnh sau
Kỹ thuật pipeline được đưa ra để tận dụng những
stall này, từ đó tăng tốc độ cho vi xử lý
  ỹ ậ
* Cấu trúc Pipeline:
 ự
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 5 khâu của một lệnh trong MIPS (Microprocessor
without Interlocked Pipeline Stages)
1. F (Fetch) : Nhận lệnh.
2. D (Decode) : Giải mã lệnh.
3. X (Execution) : Thực hiện lệnh.
4. M (Memory Access) : Truy nhập bộ nhớ.
5. W (Result Write Back) : Ghi kết quả
  ỹ ậ
* Cấu trúc Pipeline:
 ự
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
+ Mô hình Pipeline lý tưởng: thông lượng trung bình là 1
CPI (Clock Cycle per Instruction)
  ỹ ậ
* Cấu trúc Pipeline:
 ự
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ

- Tính toán:
Thời gian để thực hiện 1 công đoạn là τ /5.
Thời gian để thực hiện 1 lệnh là τ
Thời gian để thực hiện 2 lệnh là τ + τ /5
Thời gian để thực hiện 3 lệnh là τ + τ *2/5

Thời gian để thực hiện n lệnh là τ + τ *(n-1)/5
+ Mô hình Pipeline lý tưởng:
Tpipeline = τ + τ * (n-1)/m
  ỹ ậ
* Định nghĩa Pipelining:
 ự
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
+ Kỹ thuật thực hiện lệnh trong đó các lệnh được thực
hiện theo kiểu gối đầu nhằm tận dụng những khoảng
thời gian rỗi (stalls) giữa các công đoạn (stages), qua đó
làm tăng tốc độ thực hiện lệnh của VXL.
+ Trong trường hợp không có xung đột có thể tăng tốc
độ vi xử lý lên 400%.
  ỹ ậ
* Xung đột cấu trúc (Structural Hazard)
  !"#$%ộ
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
* Xung đột dữ liệu (Data Hazard)
* Xung đột điều khiển (Control Hazard)
  ỹ ậ
  !"#$%ộ
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
+ Xung đột cấu trúc: xảy ra khi có 2 lệnh cùng cố gắng
sử dụng cùng 1 nguồn tại cùng 1 thời điểm

- Khi 2 lệnh cùng ghi kết quả vào 1 thanh ghi:
ADD R1, R2, R3
SUB R1, R4, R5
- Khi cả 2 lệnh cùng truy cập vào 1 ô nhớ tại cùng
một thời điểm.
- Khi cả 2 lệnh cùng yêu cầu một bộ tính toán số học
(bộ cộng, bộ nhân, bộ chia).
  ỹ ậ
  !"#$%ộ
CH NG ƯƠ 3: K THU T PIPELININGỸ Ậ
+ Xung đột cấu trúc:
- Xung đột xảy ra khi
việc nạp lệnh và đọc
dữ liệu từ bộ nhớ
diễn ra cùng lúc
- 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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.
Lệnh nhánh
F D X M W
Nhánh kế thừa
F Stall Stall
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 W
Nhánh kế thừa +3
F D X M
Nhánh kế thừa +4
F D X
Nhánh kế thừa +5
F D
 ể

CH NG ƯƠ 3: K THU T 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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 ƯƠ 3: K THU T PIPELININGỸ Ậ
+ 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

×