벤치리뷰·뉴스·정보/아키텍처·정보분석

[분석정보] 대폭 강화된 AMD의 쿼드 코어 Barcelona

tware 2006. 10. 16. 18:30


메모리가 최대 장벽이 되는 멀티 코어

 AMD는 최초의 쿼드 코어 CPU "Barcelona (바르셀로나)"에서 다양한 문제에 직면했다. 최대의 벽은 메모리로, 따라서 메모리 인터페이스와 캐시 부분은, 대폭적인 확장이 더 해지고 있다. AMD는 San Jose에서 10월 9 ~ 11 일에 개최 된 "Fall Microprocessor Forum " 에서 Barcelona의 이러한 확장에 대해 설명을 진행했다.

 

 멀티 코어화로 메모리가 문제가 되는 것은, CPU 코어 수가 늘어남에 따라, 보다 많은 CPU 코어에 명령과 데이터를 공급할 필요가 생기기 때문이다. 따라서 소켓 당 메모리 대역을 보다 넓히는 것이 요구된다. 또 복수의 CPU 코어에서 다른 액세스 패턴의 메모리 액세스가 발생한다. 이것은 페이지 충돌도 늘어나는 경향에 있다고 한다.

 

 그 한편으로, DRAM의 효율은 악화의 한 걸음을 딛고 있다. "DRAM은 DDR2, DDR3로 피크 대역을 넓혀가지만, 레이턴시에 대해서는 아무것도 하지 않는다. 거의 일정하다. 따라서 효율은 떨어지고 있다"고 Fall Microprocessor Forum에서 강연한 Ben Sander (벤 선더) 씨 ( AMD Principal Member of Technical Staff)는 설명한다.

 

 AMD는 쿼드 코어화 즈음에는, 4개의 CPU 코어를 풀로 회전시키기 위해, 메모리 대역을 끌어올려, 메모리 효율을 올리지 않으면 안된다. 그러나 DRAM 기술의 진보는 그다지 빠르지는 않다. Barcelona에도, 지원하는 DRAM 메모리는 Rev. F와 같은 DDR2로, 메모리의 스펙상의 피크 대역은 변하지 않는다.

 

 

Trends in DRAM bandwidth

 

독립형 DRAM 컨트롤러에 메모리 액세스를 효율화

 

 그래서 AMD는 다양한 기술을 짜는 것으로, 메모리의 실효 대역을 글어올린다고 한다. 최대의 포인트는 독립형 (independent) DRAM 컨트롤러다.

 

 "오늘의 Opteron은 2개의 64bit DRAM 컨트롤러를 갖는다. 그러나 이 두 가지는 하나로 합쳐져 있어, 항상 같은 명령을 동시에 오퍼레이트 한다. DRAM 엑세스의 한개의 요청 중 절반을 한쪽 DRAM 컨트롤러에, 다른 절반을 한쪽 DRAM 콘트롤러에 전달.

 

 이에 비해서, 독립형 DRAM 컨트롤러에서는, 각각의 DRAM 컨트롤러가 독립해서 오퍼레이션 할 수 있게 분리했다. 혜택은 병렬성이다. 각각의 DRAM 컨트롤러가 서로 다른 액세스를 동시에 처리 할 수있다. 다른 CPU 코어에서의 DRAM 액세스 요청을 동시에 처리 가능하다. 또 DRAM 뱅크 수를 늘리는 것으로, 페이지 충돌을 줄이는 것이 가능하다" (Sander 씨)

 

 CPU는 캐시 라인 필을 기반으로 DRAM에 액세스 한다. Barcelona에서는, DRAM 컨트롤러를 독립해서 제어하기 위해, ​​버스트 읽기의 길이도 길게 했다고 한다.

 

 

Delivering more DRAM bandwidth (1)

 

 또 DRAM의 아이들 사이클을 메워서, 메모리 효율을 올릴 수 있도록 DRAM 프리 페처도 강화 되었다. 보다 복잡한 엑세스 패턴에 대응할 수 있도록 하는 것으로, 프리 페치의 정밀도를 올렸다고 한다. 또 DRAM의 페이지 히트를 올려, 페이지 충돌을 줄이기 위해, 엑세스 히스토리를 추적하는 것으로 액세스 패턴을 예측하는 기능을 더했다. 또 메모리로의 기입을 버퍼링해서 버스트 전송하는 것으로, DRAM 리드와 라이트의 전환을 최소화 한다.

 

 이 밖에 AMD는 Barcelona에는 노스 브리지 기능도 재 설계했다고 한다. 버퍼 크기를 대형화하는 등, DDR3등 가까운 미래의 DRAM 기술에 대응 가능하도록 확장 했다고 설명했다. DDR3 에서는 최대 1.6Gbps까지의 데이터 전송이 가능하게 된다. DDR3를 지원하기 위해서는, 노스 브리지와 메모리 컨트롤러 사이의 대역을 DDR2 때의 최대 2배로 끌어올릴 필요가 있기는 하지만, 그것에 대해서는 자세히는 설명되지 않았다........

 

 데이터 캐시 프리 페처 (DC Prefetcher)는, 기존에는 L2에서 로드했지만, Barcelona에서는 L1 데이터 캐시에서 직접 프리페치 하게 되었다. 효율상, 이 쪽이 좋다고 판단했기 때문이라고 한다. 명령 캐시 프리페처 (IC Prefetcher)도, 보다 유연하게 개량 되었다.

 

 이러한 개량의 결과, 같은 DDR2 메모리 지원에서도, Rev. F / G와 Barcelona에서는 메모리의 실효 대역이 상당히 다르다고 보인다. 메모리의 실효 대역의 확장은, 멀티코어 CPU의 열쇠이며, 향후도 확장이 필요해진다고 추정된다.

 

 

Delivering more DRAM bandwidth (2)

 

 

 

Delivering more DRAM bandwidth (3)

 

 

 

Delivering more DRAM bandwidth (4)

 

 

Delivering more DRAM bandwidth (5)

 

 

캐시 제어를 지능화 한 L3 캐시

 

 AMD는 Barcelona에서 L3 캐시를 탑재, 3 계층의 캐시 구성을 취한다. Barcelona는 L1 데이터와 L1 명령 캐시가 각 CPU 코어에 각각 64KB 씩, 점유형의 L2 캐시가 각 CPU 코어에 512KB 씩 있고, 여기에 더해 공유 2MB의 L3 캐시를 갖춘다. 또 캐시의 계층을 늘릴뿐만 아니라, 캐시의 제어 방식도 바꿨다.

 

 AMD는 캐시의 제어에 "빅팀 캐시 (Victim-Cache)" 아키텍처, 즉 캐시 계층간에 배타적 (Exclusive)인 제어를 하는 아키텍처를 가져왔다. 이 방식에는 L2와 L1은 독점적으로 제어되기에, L1에 포함되는 캐시 블록은 L2에는 포함되지 않는다. L2에 거둬지는 것은, L1에서 넘치는 캐시 블록 (Victim 또는 Copy-Back)만이 된다. 이 방식의 경우, L2와 L1에는 중복해서 포함되는 데이터가 없기 때문에, L2의 양이 상대적으로 적어도 효율이 오르게된다.

 

 그러나 이 방식은 복수 CPU 코어간에 공유하는 L3의 경우에는 비 효율화를 낳을지도 모른다. 그것은 공유 L3에서 특정 CPU 코어의 점유 L2로 캐시 라인이 이동해 버리면, 다른 코어가 그 캐시 라인을 참조하고 싶은 경우에는, 그 캐시 라인을 가진 CPU 코어의 L2에 액세스하지 않으면 안되기 때문이다. 그래서 Barcelona에서는, 다른 제어 방식을 결합시켜서 L3의 효율화를 도모했다.

 

 Barcelona의 L3는, 기본적으로는 빅팀 캐시 제어 방식을 취한다. 그러나 공유 라인을 L3에 남기는 것도 옵션으로서 가능하다. 특정 캐시 라인에 대해서, 효율을 위한 배타 제어인가, 공유용 제어인가, 그 선택은 요청을 기반으로 한다. 기본적으로는 코드 페처로 부터의 명령 페치의 경우는 사본을 L3에 남긴다. 한편, 데이터 페치의 경우는 L3로 부터 L2로 데이터를 이동시켜 버린다. 그것 이외의 경우에는, 히스토리를 추적해서 동일한 다이의 다른 CPU 코어에서 액세스가 있던 것은 L3에 사본을 남긴다고 한다.

 

 

Balanced, Highly Efficient Cache Structure

 

 

가상화에서는 네스티드 페이징을 활성화

 

 Barcelona에서는 가상화 기능 "AMD-V (Pacifica : 패시피카)"도 하드웨어적으로 확장된다. 중심은 "'네스티드 페이징 (Nested Paging : NP)"다. AMD는 가상화에서 메모리 주소 변환을 하드웨어로 처리하는 네스티드 페이징 (NP)을 이전부터 지원한다고 발표했지만, 활성화는 되어있지 않다. Barcelona부터 활성화 되는 것 같다.

 

 OS는 각각 메모리 페이지 테이블을 가지고 있지만, 가상화의 경우는, 복수의 OS가 시작하기 때문에, 메모리 페이지 테이블이 중복되는 문제가 나온다. 따라서 가상화에서는, 게스트 OS의 페이지 테이블을, 호스트 OS 또는 Hypervisor가 주소를 변환해서 물리 메모리 주소에 매핑 할 필요가 있다. 기존에는 이 메모리 주소 변환은 소프트웨어에 의한 "쉐도우 페이징 (Shadow Paging)"으로 처리했기 때문에, 저속이며 복잡했다.

 

 그러나 AMD는 Barcelona부터는 하드웨어 솔루션으로 네스티드 페이징을 제공한다. Barcelona에서는 게스트 OS와 호스트 OS (또는 Hypervisor)의 양쪽의 페이지 테이블을 하드웨어 측이 인식. 가상 머신의의 OS 테이블부터, 호스트 OS (Hypervisor)가 관리하는 물리 메모리 테이블로의 변환을 하드웨어로 처리한다. 변환은 메모리 주소 변환 버퍼인 TLB (Translation Lookaside Buffer)에 캐시되기 때문에, 고속화된다.

 

따라서 Barcelona에서는 TLB 자체가 대형화 되었다.

 

"TLB를 크게한 것은 두 가지 워크로드에 최적화 하기 위함이다. 하나는 가상화다. Barcelona는 가상화로 네스티드 페이징 기능을 지원했다. 네스티드 페이지 테이블 워크에서는, 기존의 테이블 워크보다 레이턴시가 상당히 길어진다. 따라서 TLB는 매우 효과가 있다. 따라서 TLB를 크게하는 의미가 있다 "고 Sander 씨는 설명한다.

 

 쉐도우 페이징은, Hypervisor의 경우는 최대 75%의 사이클 타임을 차지했기 때문에, 성능이 크게 오른다. 또 Barcelona에서는 Hypervisor와 게스트 OS의 사이를 전활 할 때의 딜레이인 월드 스위치 타임도 25% 감소한다고 한다.

 

 

Faster Virtualization Performance

 

 

Barcelona는 다이가 크다?

 

 

Barcelona 다이

 

 Barcelona에서는, CPU 코어를 성능면에서 강화했을뿐 아니라, AMD는 메모리 부분이나 가상화 기능도 강화했다. 멀티 코어화와 균형을 잡아서, 늘어나는 CPU 코어로의 메모리로 부터의 데이터 공급을 확충. 또 멀티 코어를 보다 효과 있게 쓰기 위해 가상화 하드웨어 지원도 향상시킨다는 방법이다. AMD는 DRAM 인터페이스 통합에 의해, 어드밴테이지가 되는 부분을 살린다 (활용한다).

 Barcelona에서 근심 재료는 다이 크기 (반도체 본체의 면적)와, 그에 따른 비용이다. Barcelona의 다이는, 예상 보다도 상당히 커진다고 보인다. 현재 AMD의 듀얼 코어 CPU는 90nm 공정에서, 199 ~ 220 제곱 mm 정도. 65nm 공정으로 축소하면 계산상은 캐시를 증량해도 동일한 정도이거나 약간 큰 정도에 들어가는 것이다. 그러나 Barcelona는 그것보다도 한층 큰 300 제곱 mm 클래스가 될 것으로 전망된다.

 

 만약 Barcelona가 이 크기가 된다면, AMD의 CPU로는 최대급이 된다. 또 Intel의 쿼드 코어는, 다이 크기가 143 제곱 mm의 Conroe (콘로)의 다이를 2개를, 1 패키지에 담은 것이기 때문에, 크기으로 동급이 된다. Intel 쪽이 다이가 2 개로 나누어져 있는 만큼, 수율은 오르지만, 패키징은 더 복잡해진다. 비용면에서도 Intel의 쿼드 코어와, 좋게 5 대 5 정도가 된다.

 

2006년 10월 16일 기사

 

[분석정보] AMD가 K8 코어의 부동 소수점 연산 유닛을 2배로

 

 

[분석정보] Rev.F의 다음 다음에 오는 AMD의 차세대 코어 Hound

 

 

[분석정보] AMD가 쿼드 코어 CPU Barcelona의 상세를 발표

 

 

[분석정보] AMD "Barcelona"는 가장 빠른 Xeon 보다 50% 고속

 

 

[분석정보] AMD, 데스크탑 네이티브 쿼드코어 Phenom을 발표

 

 

[분석정보] 연내에 투입되어 45nm에서 보급을 노리는 Inte의 쿼드코어

 

 

[분석정보] 2008년 중에 95%를 듀얼 코어로 하는 Intel CPU로드맵의 비밀

 

 

[분석정보] 그리고 CPU는 DRAM 다이도 통합

 

 

[벤치리뷰] 페넘 x4 벤치마크

 

 

[벤치리뷰] Phenom TLB 패치 벤치마크

 

 

[벤치리뷰] TLB 픽스 테스트

 

 

[벤치리뷰] 비교적 저렴한 4코어 CPU 비교 테스트