Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
4,5 MB
Nội dung
Bộ xử lý đường ống Processor Pipelining Nội dung • So sánh tốc độ xử lý – Single ‐ cycle datapath (from the previous lecture) – Multi‐cycle – Pipelining • Kỹ thuật đường ống – Kỹ thuật đường ống gì? – Tại lại sử dụng kỹ thuật đường ống? • Xây dựng xử lý đường ống – Chia cắt từ xử lý đơn xung nhịp – Hoạt động MIPS pipeline – Điều khiển Pipeline Tốc độ xử lý (What limits our clock?) Thời gian thực thi đơn xung nhịp • Lệnh thực thi chậm lệnh có thời gian thực thi chu kỳ • Lãng phí thời gian Giải pháp: Bộ xử lý đa xung nhịp • Lệnh nhanh xác định tương ứng với chu kỳ • Lệnh chậm chiếm nhiều chu kỳ Cách tốt hơn? • Chia lệnh thành giai đoạn khác • Giai đoạn dài xác định tốc độ xử lý …Cần nhiều chu kỳ cho lệnh! Chia thành parts → đồng hồ nhanh 5x lần → cần nhiều 5x chu kỳ cho lệnh Ví dụ MIPS: giai đoạn đường ống Kỹ thuật có tốt khơng? Hoạt động đường ống Đây điều cần từ đường ống: sử dụng tất phần xử lý lệnh khác thời điểm Kỹ thuật đường ống gì? Một số ví dụ đời sống Chuyển tiếp liệu Lấy kết thời điểm xuất sớm ghi pipeline nào, chuyển tiếp đến khối chức (VD ALU) mà cần kết chu kỳ đồng hồ Với khối chức ALU: đầu vào từ ghi pipeline không cần từ ID/EX cách Thêm chọn vào trước đầu vào ALU Nối liệu ghi Rd EX/MEM MEM/WB tới hoăc ghi pipeline Rs Rt thuộc giai đoạn EX Thêm phần điều khiển phần cứng để điều khiển chọn Các khối chức khác cần thêm tương tự (VD DM) Với chuyển tiếp đạt CPI = có phụ thuộc liệu HUST-FET, 10/28/21 50 Giải xung đột: Chuyển tiếp liệu or $8,$1,$9 xor $4,$1,$5 HUST-FET, 10/28/21 Reg DM Reg DM Reg DM Reg ALU and $6,$1,$7 IM DM ALU sub $4,$1,$5 Reg ALU IM ALU O r d e r add $1, ALU I n s t r Giải xung đột liệu chuyển tiếp kết chúng sẵn sàng tới nơi cần IM IM Reg IM Reg Reg Reg DM 51 Reg Giải xung đột: Chuyển tiếp liệu or $8,$1,$9 xor $4,$1,$5 HUST-FET, 10/28/21 Reg DM Reg DM Reg DM Reg ALU and $6,$1,$7 IM DM ALU sub $4,$1,$5 Reg ALU IM ALU O r d e r add $1, ALU I n s t r Giải xung đột liệu chuyển tiếp kết chúng sẵn sàng tới nơi cần IM IM Reg IM Reg Reg Reg DM 52 Reg Minh họa triển khai chuyển tiếp sub $4,$1,$5 and $6,$7,$1 Reg IM DM Reg DM Reg ALU IM ALU O r d e r add $1, ALU I n s t r IM EX forwarding HUST-FET, 10/28/21 Reg Reg DM Reg MEM forwarding 53 Xung đột liệu chuyển tiếp add $1,$1,$4 HUST-FET, 10/28/21 Reg IM DM Reg DM Reg ALU add $1,$1,$3 IM ALU O r d e r add $1,$1,$2 ALU I n s t r Một loại xung đột liệu xuất chuyển tiếp: Xung đột kết lệnh giai đoạn WB lệnh giai đoạn MEM – kết cần chuyển tiếp? IM Reg Reg DM Reg 54 Xung đột liệu có lệnh lw xor $4,$1,$5 DM Reg DM Reg DM Reg DM Reg ALU $8,$1,$9 Reg ALU or IM DM ALU O r d e r and $6,$1,$7 sub $4,$1,$5 Reg ALU $1,4($2) ALU lw ALU IM I n s t r IM IM Reg IM Reg IM HUST-FET, 10/28/21 Reg Reg 55 Reg DM Xung đột liệu có lệnh lw or $8,$1,$9 xor $4,$1,$5 Reg DM Reg DM Reg DM Reg ALU and $6,$1,$7 DM ALU sub $4,$1,$5 Reg ALU IM stall ALU $1,4($2) DM ALU O r d e r lw Reg ALU I n s t r IM IM IM Reg IM Reg IM Reg Reg Sẽ cần chu kỳ chờ có chuyển tiếp HUST-FET, 10/28/21 56 Reg DM Xung đột điều khiển Khi địa lệnh không (i.e., PC = PC + 4); xuất có lệnh thay đổi dịng chương trình Lệnh rẽ nhánh khơng điều kiện (j, jal, jr) Lệnh rẽ nhánh có điều kiện (beq, bne) Ngắt, Exceptions Giải pháp Tạm dừng (ảnh hưởng CPI) Tín tốn điều kiện rẽ nhánh sớm tốt giai đoạn pipeline giảm số chu kỳ phải dừng Rẽ nhánh chậm (Delayed branches - Cần hỗ trợ trình dịch) Dự đoán hy vọng điều tốt nhất! Xung đột điều khiển xảy ra, khơng có giải pháp giải hiệu chuyển tiếp xung đột liệu HUST-FET, 10/28/21 57 Lệnh nhảy: Cần chu kỳ dừng j target Reg IM DM Reg DM Reg ALU O r d e r flush IM ALU j ALU I n s t r IM Giải xung đột lệnh nhảy cách chờ – flush Reg Reg DM Reg Lệnh nhảy không giải mã giai đoạn ID, cần lệnh xóa (flush) Để xóa, đặt trường mã lệnh ghi pipeline IF/ID (làm trở thành lệnh noop) 10/28/21 58 LệnhHUST-FET, nhảy xuất – chiếm 3% số lệnh SPECint Xung đột điều khiển lệnh rẽ nhánh IM lw Inst HUST-FET, 10/28/21 Reg IM DM Reg DM Reg DM Reg ALU Inst Reg ALU O r d e r IM ALU beq ALU I n s t r IM Reg Reg DM Reg 59 Giải xung đột điều khiển lệnh rẽ nhánh flush flush HUST-FET, 10/28/21 DM Reg DM Reg IM IM IM Reg Reg IM Reg DM Reg DM Reg ALU Inst Reg Reg ALU beq target IM DM ALU flush Reg ALU IM ALU O r d e r beq ALU I n s t r Giải xung đột chờ– flush – ảnh hưởng CPI 60 Reg DM Giải xung đột điều khiển lệnh rẽ nhánh Inst IM DM Reg DM Reg IM IM Fix branch hazard by waiting – flush Reg Reg Reg DM ALU beq target Reg ALU O r d e r flush IM ALU beq ALU I n s t r Reg DM Tính tốn điều kiện rẽ nhánh sớm tốt, tức giai đoạn giải mã cần chu kỳ chờ HUST-FET, 10/28/21 61 Rẽ nhánh chậm Nếu phần cứng cho rẽ nhánh nằm giai đoạn ID, ta loại bỏ chu kỳ chờ rẽ nhánh cách sử dụng rẽ nhánh chậm (delayed branches) – thực lệnh theo sau lệnh lệnh rẽ nhánh – rẽ nhánh có tác dụng sau lệnh Trình dịch MIPS compiler chuyển lệnh an tồn (khơng bị ảnh hưởng lệnh rẽ nhánh) tới sau lệnh rẽ nhánh (vào khe trễ) Vì dấu rẽ nhánh chậm Với pipeline sâu (nhiều giai đoạn), trễ rẽ nhánh tăng cần nhiều lệnh chèn vào sau lệnh rẽ nhánh Rẽ nhánh chậm thay phương pháp khác tốn mềm dẻo (động) dự đoán rẽ nhánh Sự phát triển IC cho phép có dự đốn rẽ nhánh tốn HUST-FET, 10/28/21 62 Sắp xếp lệnh rẽ nhánh chậm A Từ trước lệnh rẽ nhánh B Từ đích lệnh rẽ nhánh add $1,$2,$3 if $2=0 then delay slot becomes sub $4,$5,$6 add $1,$2,$3 if $1=0 then delay slot becomes if $2=0 then add $1,$2,$3 add $1,$2,$3 if $1=0 then sub $4,$5,$6 C Từ nhánh sai add $1,$2,$3 if $1=0 then delay slot sub $4,$5,$6 becomes add $1,$2,$3 if $1=0 then sub $4,$5,$6 TH A lựa chọn tốt nhất, điền khe trễ giảm I TH B , lệnh sub cần chép lại, tăng I TH B C, phải đảm bảo thực lệnh sub không ảnh hưởng không rẽ nhánh HUST-FET, 10/28/21 63 Tóm tắt Các xử lý đại dùng kỹ thuật pipeline Pipelining không làm giảm độ trễ nhiệm vụ đơn lẻ, giúp tăng thơng lượng tồn Tăng tốc tiềm năng: CPI = đồng hồ nhanh, Tc nhỏ Tốc độ đồng hồ bị hạn chế giai đoạn pipeline chậm Các giai đoạn pipeline không cân làm giảm hiệu suất Thời gian “làm đầy” pipeline thời gian “làm trống” pipeline ảnh hưởng đến độ tăng tốc pipeline sâu (nhiều giai đoạn) đoạn mã ngắn Cần phát giải xung đột Dừng ảnh hưởng xấu tới CPI (làm CPI lớn giá trị lý tưởng 1) HUST-FET, 10/28/21 67 ... CPI stall HUST-FET, 10/28/21 IM DM Reg ALU and $6,$1,$7 ALU sub $4, $1,$5 Reg DM 47 Reg 1: 2: L1: 3: 4: 5: Ví dụ: Tính CPI cho chương trình add $t0, $t0, $s1 addi $s1, $s1, bne $s1, $s0, L1 IF... thời gian gây xung 10/28/21 44 đột Reg Sử dụng ghi: Xung đột liệu $8,$1,$9 xor $4, $1,$5 Reg DM Reg DM Reg DM Reg ALU or IM DM ALU and $6,$1,$7 Reg ALU O r d e r sub $4, $1,$5 IM ALU add $1, ALU... tiếp? IM Reg Reg DM Reg 54 Xung đột liệu có lệnh lw xor $4, $1,$5 DM Reg DM Reg DM Reg DM Reg ALU $8,$1,$9 Reg ALU or IM DM ALU O r d e r and $6,$1,$7 sub $4, $1,$5 Reg ALU $1 ,4( $2) ALU lw ALU IM I