Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Kiến trúc máy tính] So sánh stall: có forwarding vs không forwarding

    Cho chuỗi n lệnh (TYPE rd rs rt). Với mỗi lệnh tiêu thụ, xét lệnh sinh dữ liệu gần nhất (ghi vào một thanh ghi nguồn của nó) trong khoảng cách 1 hoặc 2:

    • Không forwarding: stall = max(0, 3 - khoảng_cách).
    • Có forwarding: chỉ load-use mới stall — nếu lệnh sinh là LW và khoảng cách = 1 thì +1 stall, ngược lại 0.

    Tính (theo khoảng cách ban đầu, bỏ qua dịch chuyển do stall): tổng stall khi không forwarding và khi có forwarding.

    Ví dụ: LW 3 5 -1, ALU 4 3 6 → không FW: 2, có FW: 1 → 2 1.

    • Định dạng đầu vào:

      Dòng đầu là n. Tiếp theo n dòng TYPE rd rs rt.

    • Ràng buộc đầu vào:

      1 ≤ n ≤ 10^5

    • Định dạng đầu ra:

      In ra <không_forwarding> <có_forwarding>.

    Ví dụ:

    Đầu vào:

    2
    LW 3 5 -1
    ALU 4 3 6

    Đầu ra:

    2 1

    Giải thích:

    Lệnh ALU phụ thuộc LW ở khoảng cách 1: không FW cần 3-1=2 stall; có FW là load-use nên 1 stall → `2 1`.

    Đang tải editor...