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] Cache 2-way set associative (LRU)

    Mô phỏng một cache 2-way set associative dùng chính sách thay thế LRU. Cache có S set, mỗi set chứa 2 đường (way), kích thước block là B byte (lũy thừa của 2).

    Với mỗi địa chỉ truy cập addr: block index = addr // B; set index = block_index % S; tag = block_index // S. Nếu tag có trong set → hit (cập nhật LRU); nếu không → miss, nạp block, thay thế đường ít dùng gần đây nhất (LRU) khi set đầy.

    Hãy đếm số hit và số miss theo thứ tự truy cập.

    Ví dụ

    S = 2, B = 4, các địa chỉ 0 4 8 0: ba truy cập đầu đều miss (cache rỗng), truy cập 0 cuối là hit. Kết quả: 1 hit, 3 miss.

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

      Dòng 1: S B q (số set, kích thước block, số truy cập). Dòng 2: q địa chỉ không âm cách nhau bởi dấu cách.

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

      1 ≤ S ≤ 1024, B lũy thừa của 2 (1 ≤ B ≤ 4096), 1 ≤ q ≤ 10^5, địa chỉ trong [0, 10^9].

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

      Một dòng: hits misses cách nhau bởi dấu cách.

    Ví dụ:

    Đầu vào:

    2 4 4
    0 4 8 0
    

    Đầu ra:

    1 3

    Giải thích:

    3 truy cập đầu miss (cache rỗng/nạp mới), truy cập 0 cuối tìm thấy tag → hit. Tổng 1 hit, 3 miss.

    Đang tải editor...