TLB 문서의 검증 코드다. if __name__ == "__main__": 아래가 자체 테스트다.

"""TLB가 있을 때의 평균 메모리 접근 시간(유효 접근 시간).
TLB 적중: TLB 검사 + 메모리 1번, 실패: TLB 검사 + 페이지 표 1번 + 메모리 1번 (1단계 표, 페이지 부재 없음)."""


def eat(hit, tlb, mem):
    return hit * (tlb + mem) + (1 - hit) * (tlb + 2 * mem)


if __name__ == "__main__":
    assert abs(eat(0.0, 0, 100) - 200) < 1e-9          # TLB 없으면 두 배
    assert abs(eat(0.98, 20, 100) - 122) < 1e-9        # 본문 예
    assert abs(eat(0.80, 20, 100) - 140) < 1e-9        # 카드 C2
    # 적중률을 99%로 올리면
    assert abs(eat(0.99, 20, 100) - 121) < 1e-9
    print("ALL CHECKS PASSED")