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 direct-mapped: tách tag/index/offset

    Trong cache ánh xạ trực tiếp (direct-mapped), một địa chỉ bộ nhớ được chia thành 3 phần:

    • Offset = log2(B) bit (B = kích thước block, byte)
    • Index = log2(L) bit (L = số dòng cache)
    • Tag = phần còn lại

    Với địa chỉ nguyên addr:

    offset = addr mod B
    index  = (addr div B) mod L
    tag    = addr div (B * L)
    

    Ví dụ: B=16, L=8, addr=1234 → offset = 1234 mod 16 = 2, index = (1234//16) mod 8 = 77 mod 8 = 5, tag = 1234//128 = 9.

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

      Dòng 1: ba số nguyên m B L (số bit địa chỉ, kích thước block, số dòng cache). Dòng 2: địa chỉ addr.

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

      B, L là lũy thừa của 2; 0 ≤ addr < 2^m.

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

      Một dòng: tag index offset (ba số nguyên cách nhau bởi khoảng trắng).

    Ví dụ:

    Đầu vào:

    16 16 8
    1234
    

    Đầu ra:

    9 5 2

    Giải thích:

    B=16 -> offset=1234%16=2; L=8 -> index=(1234//16)%8=77%8=5; tag=1234//128=9.

    Đang tải editor...