Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
2,65 MB
Nội dung
Processor Pipelining Nội dung • Tốc độ xử lý – Single ‐ cycle datapath (from the previous lecture) – Multi‐cycle – Pipelined • 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?) Đường liệu đơn chu kỳ Tốc độ xác định lệnh có đường liệu dài Q: Nếu truy cập vào nhớ liệu dài gấp lần lệnh khác 30% lệnh chương trình loads/stores, phần trăm thời gian xử lý nhàn rỗi? 20% of the time 35% of the time 40% of the time If slowest path is for load, all instructions go this slowly A: 70%•1/2 = 35% of the time 70% lệnh cần nửa chu kỳ để xử lý Như 35% thời gian để lãng phí Thời gian thực thi đơn chu kỳ • 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 chu kỳ • 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 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 48 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, 04/04/2014 Giải xung đột: Chuyển tiếp 49 liệu Giải xung or $8,$1,$9 IM Reg IM Reg IM Reg DM Reg DM Reg DM đột liệu chuyển tiếp kết chúng sẵn sàng tới nơi cần Reg DM ALU xor $4,$1,$5 Reg ALU and $6,$1,$7 IM ALU sub $4,$1,$5 Reg ALU O r d e r IM ALU I n s t r add $1, Reg DM Reg HUST-FET, 04/04/2014 Giải xung đột: Chuyển tiếp 50 liệu Giải xung or $8,$1,$9 IM Reg IM Reg IM Reg DM Reg DM Reg DM đột liệu chuyển tiếp kết chúng sẵn sàng tới nơi cần Reg DM ALU xor $4,$1,$5 Reg ALU and $6,$1,$7 IM ALU sub $4,$1,$5 Reg ALU O r d e r IM ALU I n s t r add $1, Reg DM Reg HUST-FET, 04/04/2014 Minh họa triển khai chuyển tiếp IM sub $4,$1,$5 IM Reg IM Reg DM EX forwarding Reg DM ALU and $6,$7,$1 Reg ALU O r d e r add $1, ALU I n s t r 51 Reg DM Reg MEM forwarding HUST-FET, 04/04/2014 52 Xung đột liệu chuyển tiếp add $1,$1,$3 Reg IM Reg IM Reg DM Reg DM ALU add $1,$1,$4 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? Reg DM Reg HUST-FET, 04/04/2014 Xung đột liệu có lệnh lw or $8,$1,$9 xor $4,$1,$5 Reg IM Reg IM Reg IM Reg ALU and $6,$1,$7 IM ALU sub $4,$1,$5 Reg ALU $1,4($2)IM ALU O r d e r lw ALU I n s t r IM Reg DM 53 Reg DM Reg DM Reg DM Reg DM Reg ALU DM HUST-FET, 04/04/2014 Xung đột liệu có lệnh lw or $8,$1,$9 Reg IM Reg IM Reg IM Reg DM Reg DM Reg DM Reg DM Reg DM ALU xor $4,$1,$5 IM ALU and $6,$1,$7 Reg ALU sub $4,$1,$5 IM ALU stall Reg ALU O r d e r $1,4($2)IM ALU I n s t r lw 54 Reg DM Sẽ cần chu kỳ chờ có chuyển tiếp HUST-FET, 04/04/2014 55 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) Giải pháp Tạm dừng (ảnh hưởng CPI) Tín toá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ự đốn hy vọng điều tốt nhất! Lệnh rẽ nhánh có điều kiện (beq, bne) Ngắt, Exceptions 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, 04/04/2014 56 Lệnh nhảy: Cần chu kỳ dừng j target Reg IM Reg IM Reg DM Giải xung đột lệnh nhảy cách chờ – flush Reg DM ALU O r d e r flush IM ALU j ALU I n s t r 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) HUST-FET, 04/04/2014 Lệnh nhảy xuất – chiếm 3% số lệnh SPECint 57 Xung đột điều khiển lệnh rẽ nhánh Inst IM Reg IM Reg IM Reg DM Reg DM Reg DM ALU Inst Reg ALU lw IM ALU O r d e r beq ALU I n s t r Reg DM Reg HUST-FET, 04/04/2014 Giải xung đột điều khiển lệnh rẽ nhánh flush IM Reg IM DM Reg DM Reg IM Reg IM Reg Reg DM Reg DM ALU Inst Reg Reg ALU beq target IM DM ALU flush Reg Giải xung đột chờ– flush – ảnh hưởng CPI ALU flush IM ALU O r d e r beq ALU I n s t r 58 Reg DM HUST-FET, 04/04/2014 59 Giải xung đột điều khiển lệnh rẽ nhánh Inst IM Reg IM Reg IM Reg DM Fix branch hazard by waiting – flush Reg DM 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, 04/04/2014 60 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, 04/04/2014 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 becom es if $2=0 then add $1,$2,$3 sub $4,$5,$6 add $1,$2,$3 if $1=0 then delay slot becom es add $1,$2,$3 if $1=0 then sub $4,$5,$6 61 C Từ nhánh sai add $1,$2,$3 if $1=0 then delay slot sub $4,$5,$6 becom add $1,$2,$3 es 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 C, 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, 04/04/2014 62 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, 04/04/2014 ... xung đột 04/ 04/ 20 14 HUST-FET, 44 Sử dụng ghi: Xung đột liệu $8,$1,$9 IM Reg IM Reg IM Reg DM Reg DM Reg DM Reg DM ALU xor $4, $1,$5 Reg ALU or IM ALU and $6,$1,$7 O r d e r Reg ALU sub $4, $1,$5... ALU and $6,$1,$7 DM Reg DM Reg HUST-FET, 04/ 04/ 20 14 47 1: addi s0, zero, 10 Ví dụ: 2: addi s1, zero, Tính CPI cho chương trình L1: 3: add t0, t0, s1 4: addi s1, s1, 5: bne s1, s0, L1 2 IF ID... đọc HUST-FET, 04/ 04/ 20 14 43 Sử dụng ghi: Xung đột liệu $8,$1,$9 IM Reg IM Reg IM Reg DM Reg DM Reg DM Reg DM ALU xor $4, $1,$5 Reg ALU or IM ALU and $6,$1,$7 O r d e r Reg ALU sub $4, $1,$5 IM ALU