||1인텔의 네할렘 아키텍처 L3 캐시에 대한 글입니다. 출처는 pc.watch.impress.co.jp

인텔이 4월 초에 상하이에서 발표하는 IDF를 두고 프리뷰를 발표했습니다. 여기에서 차기 CPU 아키텍처인 네할렘의 캐시에 대한 일부 정보가 공개되었습니다.

네할렘은 L1, L2, L3의 캐시를 사용합니다. 쿼드코어 네할렘에서는 각각의 CPU 코어마다 32KB의 L1 명령/데이터 캐시, 256KB의 L2 캐시가 있고, 마지막으로 4개의 코어가 공유하는 8MB L3 캐시가 있습니다.



인텔은 서버용 CPU에 L3 캐시를 사용하고 있었습니다. 예를 들어서 올해 출시되는 6코어 MP 프로세서인 던닝턴은 각각의 코어마다 32KB의 L1 명령/데이터 캐시가 있고, 2개의 CPU 코어마다 3MB의 L2 캐시, 6개의 코어가 16MB의 L3 캐시를 공유합니다. 인텔 뿐만 아니라 서버 CPU에서 L3 캐시를 사용하는 것은 흔한 일이지만, 네할렘의 L3 캐시 구조는 기존의 서버 CPU에서 쓰이는 L3 캐시와는 다릅니다.

지금까지 인텔은 데스크탑이나 모바일에서 대용량 L2 캐시를 사용하고, 서버용 제품에서는 대용량 L3 캐시를 더한 것입니다. 하지만 네할렘은 처음부터 모든 제품군에서 L3 캐시를 전제로 설계하였고, CPU의 구성에 따라서 L3 캐시가 달라지게 됩니다.

쿼드코어 네할렘은 8MB L3 캐시를 사용하지만, 듀얼코어 네할렘은 4MB L3 캐시를 사용하고, 옥타코어 네할렘은 24MB L3 캐시를 사용합니다.



네할렘 캐시의 추정



헤븐데일/오번데일의 시스템 아키텍처

캐시 메모리는 용량이 커질수록 엑세스 딜레이가 커지게 됩니다. 또한 엑세스하는 코어의 수가 늘어나도 딜레이가 커질 수 있습니다. L2 캐시 엑세스에 필요한 사이클은 원래 한자리였지만 L2 캐시가 커지고 멀티코어 CPU가 쓰이면서 두자리수까지 늘어나게 됩니다. 따라서 CPU에서 L2 캐시는 점점 멀어지게 되는 것입니다.

그렇다고 해서 캐시를 사용하지 않으면 그보다 거리가 더 먼 시스템 메모리에 직접 액세스를 해야 하는데, 이렇다면 세자리수의 사이클로도 부족하게 됩니다. 그래서 사이클 딜레이가 커지는 것을 감수하고 더욱 대용량 캐시를 사용하게 된 것입니다.

네할렘의 L3 캐시도 이런 문제를 해결하기 위해 나온 것으로 여겨집니다. 인텔은 지금보다 L2 캐시 딜레이가 더 커지면 성능에 미치는 영향이 심해진다고 판단했기에, 새로운 캐시 방식을 사용하여 딜레이를 해결한 것입니다. 즉, 딜레이가 낮은 L2 캐시와 딜레이는 길지만 용량이 큰 L3 공유 캐시를 사용하는 것입니다.

이렇게 보면 멀티 코어에서 공유 캐시의 용량이 커지기 때문에, 대용량 고 딜레이 캐시와 소용량 저 딜레이의 캐시 사이에, 중간 정도의 딜레이와 용량을 가지고 있는 새로운 캐시를 도입했다고 할 수 있겠습니다. 실제로도 인텔은 3개의 캐시 구조에서 새로 추가된 것은 L3이 아니라 L2라고 말하고 있습니다. 즉 기존의 L1-L2 캐시 아래에 L3 캐시를 더한게 아니고, L2와 L1 사이에 다른 캐시를 추가하면서 모두 3개의 캐시를 갖추가 되었다는 것입니다.



캐시와 딜레이

보다 큰 시점에서 보면 CPU에서 메모리와 저장 장치는 엑세스가 점점 늦어지고, 그 때문에 컴퓨터 시스템의 메모리 단계는 더더욱 늘어나게 됩니다. 이런 상황을 보면 인텔이건 AMD건 L3 캐시의 도입은 당연한 것이라고 말할 수 있겠습니다.



인텔은 포괄적 캐시 방식을 사용합니다. 여기서 L1과 L2에 존재하는 데이터는 L3에도 저장되어 있습니다. 배타적 캐시에서는 데이터가 다른 CPU 코어나 캐시에 존재하는지 찾기 위해 모든 코어와 캐시를 찾아야 하지만 포괄적 캐시에서는 L3 캐시만 찾아보면 됩니다.

포괄적 캐시에는 캐시 용량을 그만큼 많이 사용하지만(데이터가 중복 저장되기에) 장점도 있습니다. 전통적으로 포괄적 캐시를 사용했던 인텔은 배타적 캐시를 사용한 AMD와 차이를 보여왔었는데, AMD도 쿼드코어 바르셀로나에서는 포괄적 캐시와 배타적 캐시를 같이 사용하는 방식을 채택하게 됩니다.

네할렘에서는 L1 뿐만 아니라 L2가 코어에 부속되어 있습니다. 따라서 CPU의 코어에 맞춰서 L3 캐시를 맞추는 것만으로도 용량 변화가 가능합니다. 네할렘 L2 캐시의 용량은 256KB로 작기 때문에 지금처럼 다이 크기가 그리 크지 않으며, 덕분에 데스크탑이나 모바일처럼 다이 크기를 줄여서 전력을 낮추는 제품에서도 사용할 수 있습니다.

따라서 네할렘 아키텍처의 기본 쿼드코어에서 듀얼코어나 옥타코어를 만드는 방식에도 CPU 코어의 설계에는 변함이 없을 것입니다. 32나노 공정 웨스트모어에서는 고급형 데스크탑과 서버가 6코어가 되지만 거기서도 마찬가지일 것으로 추측됩니다. 즉, 이런 캐시 방식을 통해 파생되는 제품의 개발이 더욱 빨라지게 될 것입니다.

네할렘의 다이 사진을 보면 CPU 코어의 아래에 캐시가 몰아져 있음을 볼 수 있습니다. 이렇게 해서 CPU 코어와 캐시 부분을 간단히 정리가 가능하게 됩니다.



네할렘 이전의 인텔 CPU에서는 이렇게 유연한 확장성이 없었습니다. 그래서 서버 CPU는 데스크탑/모바일용으로 설계된 CPU에 L3 캐시를 부착하는 방식을 사용하였습니다. 이것의 좋은 예가 던닝턴에서 32KB의 L2 데이터/명령어 캐시, 3MB L2 듀얼코어 공유 캐시, 16MB L3 공유 캐시인데, L2 코어를 2개의 코어가 공유하는 것은 코어 마이크로아키텍처 자체가 2개의 코어가 L2 캐시를 공유하는 방식이기 때문입니다.



벡톤과 던닝턴의 캐시 구성 비교

던닝턴의 다이 사진을 보면 듀얼코어 펜린이 3개 부착되고 여기에 스위치를 사용하여 L3 캐시와 연결하는 형태임을 알 수 있습니다.



각각의 CPU에 L2 캐시가 있고 제일 아래이 공유 L3 캐시가 있다는 네할렘의 캐시 구성은 AMD의 쿼드코어와 공통되는 요소입니다. AMD의 바르셀로나 CPU가 L1 데이터/명령어 캐시가 CPU 코어에 64KB씩, L2 캐시가 512KB, 그리고 4개의 코어가 공유하는 2MB L3 캐시를 사용하고 있는데, 이렇게 비슷한 캐시를 사용하는 것은 이것이 제일 합리적인 방법이기 때문인듯 합니다.



네할렘의 캐시 구성은 AMD 쿼드코어와 같습니다.



인텔 데스크탑 CPU 로드맵



인텔 모바일 CPU 로드맵
기글하드웨어(http://gigglehd.com/zbxe)에 올라온 모든 뉴스와 정보 글은 다른 곳으로 퍼가실 때 작성자의 허락을 받아야 합니다. 번역한 뉴스와 정보 글을 작성자 동의 없이 무단 전재와 무단 수정하는 행위를 금지합니다.