20160727

여러 개의 페이지 크기를 지원하기 위한 TLB 구조
워크로드가 사용하는 메모리가 커지게 되면, 메모리 접근의 지역성이 떨어질 수 있다. 이러한 경우에 주소 변환 과정에서 TLB가 충분히 이를 감당하지 못하게 되는데, 이를 해결하기 위해 large page (super page)를 사용하곤 한다. 현재 아키텍쳐에서도 이를 지원하고 있는데, 자세한 구조를 알지 못했다. 세권이 형께서 물어보셨으나 답변하지 못했다.
address translation.PNG우선 다양한 크기의 페이지를 지원한다는 것은 주소 변환 과정에서 page offset과 VPN이 달라진다는 것이다. 더 큰 페이지를 지원하게 되면 offset 부분이 커지고, 상대적으로 VPN 부분이 줄어들게 된다. 여러 개의 페이지 크기를 지원하기 위한 아키텍쳐에는 fully associative TLBs, separate TLBs, multiple indexing methods, hybrids 등이 있다고 한다(링크). 프로세서에서는 일반적으로  separate TLB를 사용해 여러 개의 페이지 크기를 지원한다고 한다 (“Processors usually maintain separate TLBs for different page sizes”, Using TLB Speculation to Overcome Page Splintering in Virtual Machines).

Advertisements
Tagged with: , , , , , , ,
Posted in 1) Memo
7 comments on “20160727
  1. heartinpiece says:

    4KB 페이지랑 2MB, 1GB 페이지가 있을때 주소에서 index 그리고 tag부분이 달라지게 됨. 4KB는 12bit 지점부터 index 넓이만큼 윗쪽으로 index를 잡고, 2MB는 21bit, 1GB는 30bit지점부터 index를 잡게 됨. 그리고 자연스래 index가 끝나는 지점부터 47bit까지 tag가 형성되고.

    Intel의 경우 L1 TLB에는 구분된 구조들이 3개 있어서 각각 Page Size에 맞는 index부분을 확인하고 tag matching을 동시에 진행하게 됨. 이렇게 되면 동시에 서로 다른 페이지 사이즈에 대해서 병렬적으로 확인할수 있는 장점이 있지만 TLB의 entry들이 static하게 partition 되어있는 단점이 존재함.

    L2 TLB의 경우 Haswell부터 4KB, 2MB가 같이 사용하고 있는데, 이것을 어떻게 하는지는 공개되어있지 않음. 가장 간단하게는 4KB먼저 찾아보고 없으면 2MB 찾아보고 없으면 page walk를 trigger하는 방법이 될듯. 조금 더 복잡하게는 read port 2개를 둬서 동시에 4KB, 2MB를 같은 구조에 대해 접근해보는 방법도 있을수 있을테고.

    • gumdaeng says:

      오호… 좋은 답변 고맙습니다 ㅠㅠ 전혀 기억에 없어서. 각각의 페이지 크기에 대한 L1 TLB들이 따로 있고, 병렬적으로 탐색하는 것이군요. L2 TLB는 알려져있지만 두 번 탐색인 것이고.. 감사합니다!

      • heartinpiece says:

        근데 AMD는 또 L1에서 Fully-associative TLB를 사용하고, FA는 index가 없기때문에, 4KB, 2MB, 1GB의 Tag부분만 생성해서 matching하는 걸로 알고있어
        AMD의 방법의 단점은 당연 FA이니 전력소모도, 시간도 많이 들고 크기를 많이 키우기도 어려운 점이 생긴다는것.

        • gumdaeng says:

          아하.. 이제 어떤 구조인지 알겠네요 🙂 세권이 형이 궁금해 하셨던게 Intel에서 어떻게 하는지였어서. 이제 안 까먹도록 잘 기억해둬야겠어요 ㅠ

          • heartinpiece says:

            또 까먹어도 되 ㅋㅋㅋ 내가 또 알려줄께 ㅋㅋㅋㅋㅋ
            근데 이쪽도 엄청 바뀌고 있어서
            사실 AMD도 이번에 불도저 기반에서 Zen기반으로 확 바뀔 예정이라 (micro architecture가) 어떻게 될지 모름 ㅋㅋㅋㅋㅋ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

누적 방문자 수
  • 103,476 hits
%d bloggers like this: