Bài giảng Kiến trúc máy tính và hợp ngữ: Chương 9 - ĐH KHTN TP.HCM

33 18 0
Bài giảng Kiến trúc máy tính và hợp ngữ: Chương 9 - ĐH KHTN TP.HCM

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Pipelining là một kỹ thuật thực hiện lệnh trong đó các lệnh thực hiện theo kiểu gối đầu nhau (overlap) nhằm tận dụng những khoảng thời gian rỗi giữa các công đoạn, qua đó làm tăng tốc độ xử lý lệnh. Để tìm hiểu chi tiết hơn về Pipelining mời các bạn cùng tham khảo.

Mơn học: Kiến trúc máy tính & Hợp ngữ • Có cách tiếp cận phổ biến: – Latency: Thời gian hồn thành cơng việc định • Ví dụ: Thời gian để đọc sector từ đĩa gọi disk access time disk latency – Throughput: Số lượng cơng việc hồn thành khoảng thời gian định • Pipeline khơng phải giải pháp giúp tăng tốc theo kiểu Latency, mà Throughput tồn cơng việc giao – Trên lượng tài nguyên không đổi, công việc tiến hành song song thay tuần tự, công việc chạy pipepline (đường ống) • Pipelining kỹ thuật thực lệnh lệnh thực theo kiểu “gối đầu” (overlap) nhằm tận dụng khoảng thời gian rỗi cơng đoạn, qua làm tăng tốc độ xử lý lệnh • Khả tăng tốc phụ thuộc vào số lượng đường ống (pipeline) sử dụng • Thời gian chảy đầy (fill) đường ống Thời gian để làm khô (drain) làm giảm khả tăng tốc – Ví dụ giặt ủi khơng tính thời gian fill drain tăng tốc lần, cịn tính tăng tốc 2.3 lần • Giả sử máy giặt giặt 20 phút, gấp đồ 20 phút Vậy dùng giải pháp pipeline nhanh bình thường bao nhiêu? • Tổng thời gian cho giải pháp pipeline bị giới hạn thời gian thực thi đường ống chậm • Độ dài khơng cân đường ống làm giảm khả tăng tốc • IFtch: Instruction Fetch, Increment PC (Nạp lệnh) • Dcd: Instruction Decode, Read Registers (Giải mã lệnh) • Exec: (Thực thi) – Mem-ref: Calculate Address (Tính tốn địa tốn hạng) – Arith-log: Perform Operation (Tính tốn số học, luận lý) • Mem: (Lưu chuyển với nhớ) – Load: Read Data from Memory – Store: Write Data to Memory • WB: Write Data Back to Register (Lưu liệu vào ghi) 10 • Giải pháp tối ưu hoá 1: – Chèn thêm phép so sánh rẽ nhánh đặc biệt Stage (decode) – Ngay sau lệnh decode, định giá trị cho ghi PC – Lợi ích: Bởi điều kiện rẽ nhánh làm xong stage 2, nên có lệnh khơng cần thiết nạp  cần no-op đủ 19 20 21 22 • Giải pháp tối ưu hố 2: Tái định nghĩa rẽ nhánh – Định nghĩa cũ: Nếu thực rẽ nhánh khơng có lệnh sau lệnh rẽ nhánh làm cách “vơ tình” (khơng mong muốn) – Định nghĩa mới: Bất thực rẽ nhánh, lệnh sau lệnh rẽ nhánh thực thi (gọi branch-delay slot) – Ý nghĩa: Chúng ta ln thực thi lệnh phía sau lệnh rẽ nhánh 23 • Lưu ý Branch-Delay Slot: – Trường hợp xấu nhất: ln phải đặt lệnh noop vào branch-delay slot – Trường hợp tốt hơn: tìm lệnh trước lệnh rẽ nhánh để đặt branch-delay slot mà không làm ảnh hưởng chương trình • Thủ cơng: Tái cấu trúc thứ tự lệnh cách làm phổ biến • Tự động: Compiler phải thơng minh để tìm lệnh làm điều 24 25 • Xem xét dãy lệnh sau: add $t0, $t1, $t2 sub $t4, $t0, $t3 and $t5, $t0, $t6 or $t7, $t0, $t8 xor $t9, $t0, $t10 26 27 28 • Giải pháp: Phải trì hỗn lệnh sub lại (stall) sau dùng Forwarding 29 30 • Vị trí lệnh (instruction slot) sau load gọi “load delay slot” • Nếu lệnh dùng kết load, hardware interlock hỗn (stall) chu kỳ clock • Nếu sau load lệnh khơng liên quan, khơng cần trì hỗn (stall) lệnh 31 32 • Sách Petterson & Hennessy: Đọc 6.1 33 ... (gọi branch-delay slot) – Ý nghĩa: Chúng ta thực thi lệnh phía sau lệnh rẽ nhánh 23 • Lưu ý Branch-Delay Slot: – Trường hợp xấu nhất: ln phải đặt lệnh noop vào branch-delay slot – Trường hợp tốt... Decode, Read Registers (Giải mã lệnh) • Exec: (Thực thi) – Mem-ref: Calculate Address (Tính tốn địa tốn hạng) – Arith-log: Perform Operation (Tính tốn số học, luận lý) • Mem: (Lưu chuyển với nhớ) –... tính chu kỳ clock) • Write vào RegFile suốt nửa đầu chu kỳ clock • Read từ RegFile nửa chu kỳ clock lại – Tạo RegFile với ngõ Read Write độc lập 15 16 • Chúng ta phải đặt điều kiện rẽ nhánh vào

Ngày đăng: 11/05/2021, 08:11

Tài liệu cùng người dùng

Tài liệu liên quan