Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý (the processor) (tt)

24 11 0
Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý (the processor) (tt)

Đ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

Bài giảng Kiến trúc máy tính - Chương 4: Bộ xử lý (the processor) cung cấp cho người đọc các kiến thức phần Kỹ thuật ống dẫn (Pipeline). Hi vọng đây sẽ là một tài liệu tham khảo hữu ích dành cho các bạn sinh viên Công nghệ thông tin dùng làm tài liệu học tập và nghiên cứu.

CE KIẾN TRÚC MÁY TÍNH CHƯƠNG BỘ XỬ LÝ (THE PROCESSOR)  Phần Xây dựng đường liệu (Datapath)  Phần Kỹ thuật ống dẫn (Pipeline) CE Kỹ thuật ống dẫn (pipeline)  Pipeline kỹ thuật mà lệnh thực thi theo kiểu chồng lắp lên  Ví dụ minh họa hoạt động không pipeline hay pipeline: Giả sử phịng có nhiều người, người cần giặt quần áo bẩn Quá trình giặt quần áo bao gồm công đoạn: Đặt quần áo bẩn vào máy giặt để giặt Khi máy giặt hoàn thành, đưa quần áo ướt vào máy sấy Khi máy sấy hoàn thành, đặt quần áo khơ lên bàn ủi Khi ủi hồn tất, xếp quần áo vào tủ CE Kỹ thuật ống dẫn (pipeline)  Nếu người hoàn tất tất công đoạn giặt quần áo (xong công đoạn ủi, xếp quần áo vào tủ) người khác bắt đầu (bắt đầu đặt quần áo bẩn vào máy giặt), q trình thực gọi khơng pipeline  Tuy nhiên, rõ ràng người trước hoàn thành cơng đoạn 1, sang cơng đoạn máy giặt trống, lúc người đưa quần áo bẩn vào giặt Như vậy, người không cần phải chờ người trước xong công đoạn thứ bắt đầu, mà người trước đến cơng đoạn thứ người bắt đầu cơng đoạn thứ tiếp tục Quá trình thực chồng lắp gọi pipeline CE Kỹ thuật ống dẫn (pipeline) Hình ảnh người A, B, C, D giặt quần áo theo kiểu tiếp cận khơng pipeline (hình trên) pipeline (hình dưới) CE Kỹ thuật ống dẫn (pipeline) - Cách tiếp cận dùng kỹ thuật pipeline tiêu tốn thời gian cho tất cơng việc hồn tất cơng việc thực song song, số cơng việc hồn thành nhiều so với không pipeline - Chú ý, pipeline không làm giảm thời gian hồn thành cơng việc mà làm giảm thời gian hồn thành tổng số cơng việc (như ví dụ trên, thời gian cho người A hoàn thành việc giặt áp dụng pipeline hay không pipeline giờ, tổng số cho người A, B, C D hoàn thành dùng pipeline giảm nhiều so với không pipeline) CE Kỹ thuật ống dẫn (pipeline) Tương tự việc giặt quần áo, thay lệnh phải chờ lệnh trước hồn thành thực thi lệnh chương trình xử lý thực thi theo kiểu pipeline Khi thực thi, lệnh MIPS chia làm công đoạn: Nạp lệnh từ nhớ Giải mã lệnh đọc ghi cần thiết (MIPS cho phép đọc giải mã đồng thời) Thực thi phép tính tính tốn địa Truy xuất toán hạng nhớ Ghi kết cuối vào ghi Vì vậy, MIPS pipeline chương xem có cơng đoạn (cịn gọi pipeline tầng) CE An Overview of Pipelining Nạp lệnh từ nhớ − IF Giải mã lệnh đọc ghi − ID Thực thi − EX Truy xuất nhớ − MEM Ghi kết vào ghi − WB CE Kỹ thuật ống dẫn (pipeline) - Xét xử lý với lệnh bản: load word (lw), store word (sw), add (add), subtract (sub), AND (and), OR (or), set less than (slt), nhảy với điều kiện (beq) - Giả sử thời gian hoạt động công đoạn sau: 200 ps cho truy xuất nhớ, 200 ps cho tính tốn ALU, 100 ps cho thao tác đọc/ghi ghi - So sánh thời gian trung bình lệnh thực đơn chu kỳ pipeline CE Kỹ thuật ống dẫn (pipeline) Ví dụ hình ảnh lệnh lw thực theo kiểu khơng pipeline, đơn chu kỳ (hình trên) có pipeline (hình dưới)  Thời gian lệnh thứ thứ tư không pipeline x 800 = 2400 ps, pipeline x 200 = 600 ps CE Kỹ thuật ống dẫn (pipeline) Sự tăng tốc pipeline  Trong trường hợp lý tưởng: mà công đoạn pipeline hồn tồn thời gian hai lệnh liên tiếp thực thi pipeline bằng: Như vậy, ví dụ trên, thời gian hai lệnh liên tiếp có pipeline 160 ps (800:5 = 160)  Trong trường hợp lý tưởng, pipeline tăng tốc so với không pipeline với số lần số tầng pipeline  Trong thực tế: Các công đoạn thực tế không nhau, việc áp dụng pipeline phải chọn công đoạn dài để làm chu kỳ pipeline Vì vậy, ví dụ trên, thời gian liên tiếp hai lệnh pipeline 200 ps Và áp dụng pipeline tăng tốc gấp lần so với không pipeline Speed-up ≈ Thời gian hai lệnh liên tiếp không pipeline : Thời gian hai lệnh liên tiếp pipeline ≈ 800 : 200 = < (number pipeline stages)  Trong thực tế, pipeline tăng tốc so với không pipeline với số lần nhỏ số tầng pipeline 10 CE Kỹ thuật ống dẫn (pipeline) Lưu ý, pipeline tăng tốc so với không pipeline:  Kỹ thuật pipeline không giúp giảm thời gian thực thi lệnh riêng lẽ mà giúp giảm tổng thời gian thực thi đoạn lệnh/chương trình chứa nhiều lệnh (từ giúp thời gian trung bình lệnh giảm) Việc giúp giảm thời gian thực thi cho nhiều lệnh vơ quan trọng, chương trình chạy thực tế thông thường lên đến hàng tỉ lệnh 11 CE Kỹ thuật ống dẫn (pipeline) Quy ước trình bày công đoạn thực thi lệnh pipeline: Lưu ý cách vẽ hình cơng đoạn pipeline sau:  Khối tơ đen hồn tồn để trắng hồn tồn: Trong cơng đoạn pipeline, lệnh thực thi khơng làm cơng đoạn tơ trắng, ngược lại tơ đen Ví dụ lệnh “add” có EX đen MEM trắng tức lệnh có tính tốn cơng đoạn EX khơng truy xuất nhớ liệu công đoạn MEM  Các công đoạn liên qua đến nhớ ghi tơ trái phải đen: Nếu phải tơ đen, tức cơng đoạn thực thao tác đọc; ngược lại trái tơ đen, cơng đoạn thực thao tác ghi 12 CE Kỹ thuật ống dẫn (pipeline) Hình ảnh datapath có hỗ trợ pipeline 13 CE Kỹ thuật ống dẫn (pipeline) Các xung đột xảy áp dụng kỹ thuật pipeline (Pipeline Hazards): Xung đột trạng thái mà lệnh thực thi chu kỳ pipeline sau (hoặc thực thi cho kết sai), thường ba nguyên nhân sau: Xung đột cấu trúc (Structural hazard): lệnh dự kiến thực thi chu kỳ pipeline phần cứng cần khơng thể hỗ trợ Nói cách khác, xung đột cấu trúc xảy có hai lệnh truy xuất vào tài nguyên phần cứng lúc Xung đột liệu (Data hazard): lệnh dự kiến thực thi chu kỳ pipeline liệu mà lệnh cần chưa sẵn sàng Xung đột điều khiển (Control/Branch hazard): lệnh dự kiến thực thi chu kỳ pipeline lệnh nạp vào lệnh cần Xung đột xảy trường hợp luồng thực thi chứa lệnh nhảy 14 CE Kỹ thuật ống dẫn (pipeline) Xung đột cấu trúc Ví dụ xung đột cấu trúc: Giả sử có nhớ đơn thay hai nhớ lệnh liệu rời rạc Nếu pipeline ví dụ hình có thêm lệnh thứ tư chu kỳ pipeline từ 600 tới 800 lệnh thứ thực truy xuất nhớ lấy liệu lệnh thứ tư thực truy xuất nhớ lấy lệnh Do khơng có nhớ lệnh liệu riêng lẽ, trường hợp có xung đột cấu trúc xảy 15 CE Kỹ thuật ống dẫn (pipeline) Xung đột liệu Ví dụ cho đoạn lệnh sau: add $s0, $t0, $t1 sub $t2, $s0, $t3 Trong ví dụ trên, áp dụng pipeline bình thường cơng đoạn ID lệnh sub thực lúc với cộng đoạn EX lệnh add Trong công đoạn ID, lệnh sub cần đọc giá trị ghi $s0, giá trị ghi $s0 phải tới công đoạn WB lệnh add sẵn sàng Vì vậy, thực pipeline thông thường, trường hợp xảy xung đột liệu 16 CE Kỹ thuật ống dẫn (pipeline) Xung đột liệu Ví dụ cho đoạn lệnh sau: add $s0, $t0, $t1 sub $t2, $s0, $t3 Một cách giải trường hợp chờ thêm hai chu kỳ xung xung clock lệnh add nạp vào 17 CE Kỹ thuật ống dẫn (pipeline) Xung đột liệu Thay chờ số chu kỳ đến liệu cần sẵn sàng, kỹ thuật áp dụng để rút ngắn số chu kỳ rỗi, gọi kỹ thuật nhìn trước (forwarding hay bypassing) Như ví dụ trước, thay chờ sau hai chu kỳ rỗi nạp lệnh add vào, ALU hồn thành tính tốn tổng cho lệnh add tổng cung cấp cho công đoạn EX lệnh sub (thông qua đệm liệu gắn thêm bên trong) để ALU tính tốn kết cho sub nhanh 18 CE Kỹ thuật ống dẫn (pipeline) Xung đột liệu  Kỹ thuật nhìn trước: phương pháp giải xung đột liệu đưa thêm vào đệm phụ bên trong, liệu cần truy xuất từ đệm chờ đợi đến sẵn sàng nhớ hay ghi 19 CE Kỹ thuật ống dẫn (pipeline) Xung đột liệu Lưu ý, với lệnh lw lệnh có chức tương tự, thơng thường kết cuối khơng phải hồn tất cơng đoạn EX mà hồn tất cơng đoạn MEM 20 CE Kỹ thuật ống dẫn (pipeline) Xung đột liệu Xét ví dụ sau: lw $s0, 20($t1) sub $t2, $s0, $t3 Với lệnh lw, liệu mong muốn sẵn sàng sau chu kỳ pipeline (tức sau cơng đoạn MEM hồn tất) Vì vậy, giả sử liệu đầu công đoạn MEM lệnh lw truyền tới đầu vào công đoạn EX lệnh sub theo sau, lệnh sub phải chờ sau chu kỳ rỗi nạp vào 21 CE Kỹ thuật ống dẫn (pipeline) Xung đột liệu Kỹ thuật forwarding hỗ trợ giải xung đột liệu hiệu quả, nhiên khơng thể ngăn chặn tất trường hợp chu kỳ rỗi 22 CE Kỹ thuật ống dẫn (pipeline) Xung đột liệu Tóm lại, với kỹ thuật forwarding có:  ALU-ALU forwarding hay EX-EX forwarding (hình 1)  MEM-ALU forwarding hay MEM-EX forwarding (hình 2) Hình Hình 23 CE Kỹ thuật ống dẫn (pipeline) Xung đột điều khiển  Một số lệnh nhảy có điều kiện khơng điều kiện MIPS (branches, jumps) tạo xung đột điều kiển Ví dụ xét đoạn chương trình sau: add $4, $5, $6 beq $1, $2, label lw $3, 300($s0) Nếu áp dụng pipeline thông thường, chu kỳ thứ ba pipeline, beq thực thi công đoạn ID lệnh lw nạp vào Nhưng điều kiện lệnh beq xảy lệnh thực hiệp tiếp sau khơng phải lw mà lệnh gán nhãn ‘label’, lúc xảy xung đột điều khiên  Các giải pháp giải xung đột điều khiển (tham khảo thêm mục 4.8, sách tham khảo chính) 24 ... trình giặt quần áo bao gồm công đoạn: Đặt quần áo bẩn vào máy giặt để giặt Khi máy giặt hoàn thành, đưa quần áo ướt vào máy sấy Khi máy sấy hoàn thành, đặt quần áo khơ lên bàn ủi Khi ủi hồn tất,... chương trình xử lý thực thi theo kiểu pipeline Khi thực thi, lệnh MIPS chia làm công đoạn: Nạp lệnh từ nhớ Giải mã lệnh đọc ghi cần thiết (MIPS cho phép đọc giải mã đồng thời) Thực thi phép tính. .. ống dẫn (pipeline) - Xét xử lý với lệnh bản: load word (lw), store word (sw), add (add), subtract (sub), AND (and), OR (or), set less than (slt), nhảy với điều kiện (beq) - Giả sử thời gian hoạt

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

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan