View
TLB
Virtual Memory의 작동이 내 생각에는 Cache Memory의 작동방식과 거의 일치하는 것 같다. ( Direct Mapped 방식, N-way SA 방식 ) 이 방식들을 이용하기 위해서는 Page Table을 먼저 작성해야 한다.
Virtual Address는 [ Virtual Page Number + Page Offset ] 으로 구성되어있다. 앞의 VP#는 tag와 index로 또 나눌 수 있고, 이를 이용해 Virtual Page Table을 작성할 수 있다. ( Virtual Address -> TLB -> Physical Address )
TLB Hit
Virtual Page Table에 유효한 주소가 있다면 TLB Hit!
Virtual Address를 Physical Address로 변환하는 과정을 거치기 위해서 파이프라인 구조에서 Memory Access를 위한 Instruction이 한 차례 더 필요하다. … 1 CLK의 시간이 더 소모된다.
TLB Miss
HW가 알아서 처리해준다.
Simple TLB Miss - 약 수십 Cycle이 소요된다.
Page가 Main Memory에는 load되어있는 상태 - 단순히 TLB에 알맞은 Page를 Load해주면 된다. Table의 Base Address가 CPU에 load 되어있으므로, Page Num을 찾아가서 load한다.
Page Fault - 약 수십만 Cycle이 소요된다. ( 치명적!! )
Page가 Main Memory에 load되어있지 않은 상태 - Storage에서 필요한 Page를 Memory에 load + TLB에 Table Load 수행
- TLB Miss가 발생하면, 'Data Abort Exception'이 발생한다. = PipeLine에서 읽어들인 Inst 제거 + TLB Miss 명령 실행
Multi-Level의 Page Table
만약 48bit Virtual Address를 사용한다면, 64G개의 Page가 존재하고, 각 Page마다 4Byte의 주소를 요구한다면 Page Table 하나당 256GB의 크기를 Main Memory 에 담아야 한다. ( 내껀 16GB… MainMem이 1.5TB인 MacPro를 사면 해결할 수 있을 듯 ㅋㅋㅋ )
따라서 주소에 필요없는 값들을 제거해 크기를 줄여준다. ( 같은 자릿수끼리 묶어서 )
여러 Level의 Page Table을 이용 - 알맞은 Address를 찾아간다 : TLB Walk
'학부생 CS > 컴퓨터 시스템 설계' 카테고리의 다른 글
Computer System Design - 정리본.PDF (0) | 2019.07.07 |
---|---|
Computer System Design - 12 : TLB (1) (0) | 2019.06.10 |
Computer System Design - 11 : Cache Memory 2 (0) | 2019.06.10 |
Computer System Deisgn - 10 : Cache Memory (0) | 2019.05.28 |
Computer System Design - 9 : IO Interrupt (0) | 2019.05.21 |