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.
Một dòng: m C B A wb.
B, C/B, A là lũy thừa của 2; A ≤ C/B; wb ∈ {0,1}.
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:
Đang tải editor...