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] Tổng dung lượng vật lý của cache (kể overhead)

    Ngoài dữ liệu, mỗi dòng cache còn có bit valid, bit dirty (nếu write-back) và trường tag. Cho m bit địa chỉ, dung lượng dữ liệu C byte, block B byte, độ kết hợp A, cờ wb (1 = write-back có bit dirty, 0 = không).

    lines  = C / B
    sets   = lines / A
    tag_bits = m - log2(B) - log2(sets)
    overhead_per_line = 1 (valid) + wb (dirty) + tag_bits
    total_bits = lines * (8*B + overhead_per_line)
    

    In tag_bits total_overhead_bits total_bits (total_overhead_bits = lines*overhead_per_line).

    Ví dụ: m=32, C=32768, B=64, A=1, wb=1 → lines=512, sets=512, tag=17, overhead/line=1+1+17=19, total_overhead=9728, total=512*(512+19)=271872.

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

      Một dòng: m C B A wb.

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

      B, C/B, A là lũy thừa của 2; A ≤ C/B; wb ∈ {0,1}.

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

      Một dòng: tag_bits total_overhead_bits total_bits.

    Ví dụ:

    Đầu vào:

    32 32768 64 1 1
    

    Đầu ra:

    17 9728 271872

    Giải thích:

    lines=512, sets=512, tag=17, overhead/line=1+1+17=19, total_overhead=9728, total=512*(512+19)=271872.

    Đang tải editor...