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

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

tware 2006. 10. 13. 19:00

 

쿼드 코어 다이 사진도 공개

 

 AMD는 네이티브 쿼드 코어 CPU "Barcelona (바르셀로나)"의 내용을 공개했다. 이것은 "K8 Revision H (Rev. H)" 또는"K8L " 이라고 부르던 CPU 코어를 기반으로 한 쿼드 코어 CPU로 "Deerhound (디어하운드) " 라고 부르던 쿼드 코어와 같은 것이다. AMD의 코드 네임이나 리비전 이름은 자주 바뀐다.

 

 현재 AMD는 San Jose에서 10월 9 ~ 11일에 개최된 "Fall Microprocessor ​​Forum "에서 Barcelona에 대한 보다 심도있는 기술 내용을 설명했다. AMD는 올해 (2006년) 5월의 "Spring Processor ​​Forum (SPF)"에서 이 CPU의 대략적인 기술 내용을 발표하고, 이번 발표는 그 후속편이 된다.

 

 또 AMD는 Barcelona의 다이 (반도체 본체) 사진도 공개했다. SPF에서는 대략적인 다이 레이아웃의 사진 뿐이었지만, 이번은 다이 사진이 되어,  제품화에 한 걸음 다가간 것을 느끼게 했다. 아래는 이번에 공개된 Barcelona의 다이 사진과 5월에 공개된 레이아웃 그림이다.

 

 

Barcelona의 다이 사진

 

 

AMD 's Next Generation Processor

 

 다이 사진을 보면, CPU 코어 내부의 레이아웃은, 지난번 공개한 것에서 거의 변하지 않은 것을 알 수 있다.

 

 참고로, AMD는 2 주전에 Barcelona 웨이퍼도 공개했다. 마이크로 아키텍처를 갱신한 CPU의 경우, 검증에 1년 정도 걸리는 것이 일반적이므로, 내년 (2007년) 후반이라 말하는 Barcelona의 개발 상황은, 일정으로 그냥 꼭 맞게 된다.

 Barcelona는 65nm SOI (silicon-on-insulater) 공정으로 제조되는 쿼드 코어로, 2007년 투입이 예정되어 있다. K8 Rev. F의 Opteron부터 채택된 "Socket F (1207pin) "호환으로, TDP (Thermal Design Power : 열 설계 전력)도 Socket F 프로세서와 동일한 범위가 된다. 즉, 최대 120W의 TDP 범위 내에서 제공되며, 메인 스트림용 95W TDP 버전도 제공 될 것으로 보인다. 듀얼 코어부터 같은 소켓 같은 TDP로 바꿔 올리기가 가능하다는 것이다. 또 AMD의 데스크탑용 쿼드 코어는 Barcelona와 동일한 코어를 기반으로 한다고 보인다.

Barcelona의 기술상의 포인트는 6개.

○ SSE 연산 강화
○ CPU 코어의 IPC (instruction per cycle)의 향상
○ DRAM 메모리의 실효 대역의 확장
○ L3 캐시 탑재
○ 가상화의 성능 향상
○ 전력 관리 강화

 이러한 확장의 일부는 다이에서도 볼 수 있다. 아래가 추정되는 Barcelona의 각 블록 다이 사진에 더한 그림과, AMD의 현재 K8 Rev. F와 2007년에 투입되는 Barcelona와 Mobile 코어 각각의 CPU 코어 부분을 비교한 그림이다. Barcelona에서는 명확하게, CPU 코어의 SSE / 부동 소수점 연산 유닛 부분과 명령어 페치 부분의 유닛이 대형화 되었다.

 

Barcelona 다이 블록

 

 

AMD Processor Cores

 

명령 페치의 확장은 SSE 명령에 최적화하기 위함

 이전 리포트한 것처럼, Barcelona 세대부터 AMD는 CPU 코어의 SIMD (Single Instruction, Multiple Data) 연산 성능을 강화한다. SSE / 부동 소수점 연산 유닛을 2배로 강화, 128bit의 SIMD 연산을 1사이클로 처리할 수 있게 한다. 이것은 Intel이 Core Microarchitecture (Core MA 콘로)에서 한 것과 기본적으로는 같은 확장이다.

 현재는 SSE 계의 128bit SIMD 연산은, 64bit 씩 하위와 상위로 나눠서 2 패스로 연산하고 있다. 연산 유닛을 두배로해서 128bit 분을 1 사이클로 실행할 수 있도록 한다. 부동 소수점과 정수 양방의 SIMD 연산의 성능을 2배로 한다. K8의 파이프 라인에서는, SSE / 부동 소수점 연산 파이프로는 SIMD 연산 계 유닛이 2개있다. 더하기 유닛 FADD와 곱셈 유닛 FMUL에서 각각 128bit SIMD 연산을 병렬 처리가 가능하다. 그 밖에 FMISC라고 부르는 스토어 파이프가 있다. Barcelona에서는, 새롭게 SSE MOV (무브) 명령이 스토어 파이프로 실행할 수 있게 되었다. 따라서 더하기와 곱셈과 병행해서 SSE MOV를 실행할 수 있다.

 

 다만, 연산 경로의 대역폭을 2배로 늘린 것만으로는, 명령과 데이터 전달이 병목이 되어 버린다. 그래서 AMD는 명령 페치와 데이터 로드를 개량했다고 한다.

 

 AMD의 현재 CPU의 L1 명령 캐시로부터 명령 페치 대역은 16byte / cycle. 16byte의 명령 윈도우에서 명령을 잘라 반출해서 3 병렬의 디코더에 보낸다. Barcelona에서는 이것이 32byte / cycle로 확장된다. L1 -> 페치 유닛의 대역이 32byte (256bit) 폭이 된 셈이다.

 

 

Ben Sander 씨

 

 Fall Microprocessor ​​Forum에서 강연한 Ben Sander (벤 썬더) 씨 (AMD Principal Member of Technical Staff)는 명령 페치의 확장에 대해 다음과 같이 설명했다.

 "명령 페치 대역을 SSE 명령을 타겟으로 최적화 했다. x86 아키텍처에 확장된 명령에는 접두사가 붙어서 명령 길이가 길어진다. 3 명령 / 사이클로 SSE 128 엔진에 명령을 공급하기 위해, 16byte의 명령 페치로는 충분하지 않다고 판단했다. 따라서 실행 엔진을 2 배로하는 것과 동시에, 명령 페치 대역도 2 배로 했다"

 

 이 부분은 Intel의 Core MA와 가장 큰 차이다. Core MA의 현재 구현에서는 L1 -> 페치 유닛의 대역은 16byte 폭인 채로 되어 있다.

 

 

2 배의 엔진에 데이터를 공급하는 구조

 

 이전에도 리포트 했지만, Barcelona에는 L1 데이터 캐시로부터 데이터 로드 대역도 같도록 강화했다. 기존의 AMD CPU는 L1 데이터 캐시로부터 64bit의 로드를 2 병렬로 할 수 있었다. 즉, 64bit / cycle의 로드가 2 배로, 128bit / cycle의 대역을 갖는다. Barcelona는 여기도 2 배로 확장됐다. 128bit / cycle의 로드를 2 병렬로 하는 것이 가능하다.

 

 2로드를 병행 가능하게 한 것은, 데이터가 정렬되어 있지 않은 경우, 1 액세스가 2개의 데이터 액세스 오퍼레이션을 낳는 경우가 있기 때문이라고 AMD는 설명한다. 정렬되지 않은 데이터가 연속하는 경우에도, SSE 파이프를 풀로 돌리기 위해 2로드가 필요해진다고 한다.

 

 다만, Barcelona에서는 SSE 로드에, 정렬되지 않은 데이터에 액세스 하는 SSE Unaligned Load-Execute 모드도 더해졌다. 이 모드에서는 정렬되지 않은 데이터로의 액세스 때에, 2 로드를 생성할 필요를 절감한다고 한다. 이러한 기능은 정렬되지 않은 데이터가 많은 미디어 애플리케이션용 PC를 주요 타겟으로 하는 기능 확장이라고 한다.

 

 L1 캐시로부터 실행 코어로의 대역을 2 배로 한것에 맞춰서, L2와 노스 브릿지 블록과의 사이의 대역도 기존의 2 배인 128bit 폭으로 확장된다.

 

 또 SSE / 부동 소수점 스케줄러도 확장되었다. K8에서는 SSE / 부동 소수점 전용 스케줄러가 있어, 기존에는 64bit의 오퍼레이션 (OPs)을 36 개 다루는 것이 가능했다. 연산 코어의 확장에 맞춰서 스케줄러는 128bit OPs를 36개 다룰 수 있게 되었다. 즉, 스케줄러가 다룰 수 있는 OPs의 수는 변하지 않았지만, OPs를 64bit로 분할하지 않고서 완료 되기 때문에, 실제 2 배의 처리를 다룰 수 있게 되었다는 의미다. 아래가 SSE / 부동 소수점 연산계의 확장 목록이다.

 

 

현행 제품과 Barcelona의 SSE128 기능 비교

 

 

스택 포인터의 조작을 처리하는 전용 하드를 탑재

 Barcelona에서는 SSE / 부동 소수점 연산의 강화에 더해서, 정수 연산계의 IPC를 높이기 위해 확장도 많이 더해진다. SSE / 부동 소수점 이외의 명령도, 보다 많이 병렬로 실행 가능하게 된다. IPC 향상에, 특히 눈에 띄는 강화점은 아래의 다섯 가지다.

○ 분기 예측 (branch prediction) 강화
○ 32byte의 명령 페치
○ 사이드 밴드 스택 최적화
○ 아웃 오브 오더 로드 실행
○ TLB (Translation Lookaside Buffer) 최적화

 

 

CPU Core IPC Enhancements

 

 분기 예측에서는, 인다이렉트 프리딕터 (간접 분기 예측)가 더해져, 전용 512 엔트리가 마련된다. 리턴 어드레스 스택이 24로 배로 늘어, 분기 히스토리 비트도 늘어난다. 명령 페치는 이미 언급한 바와 같이 32Byte로 늘어난다. 이것은 SSE128 때문이지만, 정수 연산 코드에서도 장점이 있다고 한다.

 

 

명령 페치의 유효성

 

 사이드밴드 스택 최적화 (Sideband Stack Optimizer)는 이번에 밝혀진 기능이다. x86의 경우, 데이터를 일시 스택에 넣기 위해 스택 조작이 많이 생긴다. 이 경우 데이터를 격납할 뿐만이 아닌, 스택 포인터를 조작할 필요가 있다. 따라서 스택 작업 PUSH / POP 오퍼레이션은, 기존의 CPU에서는 지나친 오퍼레이션을 발생시켜 CPU 내부에서의 부하가 컸다.

 

"(스택에 격납하는) PUSH 명령의 경우 실제로는 2 개의 OPs를 생성했다. 스토어와 스택 포인터 조정의 2개의 OPs다. 그래서 우리는 스택 포인터 조작을 위한 전용 하드웨어 를 더했다. 이것에 의해서, 스택 포인터 조작 OPs를 통상의 실행 유닛에서 실행할 필요가 없어졌다. 또 스택 포인터 조작을 병렬로 실행 가능하게 됐다 "고 Sander 씨는 말한다.

 

 

스택 포인트 조작 강화

 

 스택 포인터의 조작에 대해서는, 전용 유닛으로 처리해 버리는 것이다. 이 기능은 Intel이 Pentium M (Banias : 베니어스)에서 채용한 Dedicated Stack Manager와 기본적으로 동일한 것이다. Intel은 이것에 의해서 실행 유닛에 보내는 OPs을 5% 줄일 수 있었다고 설명했다. 똑같은 것이 Barcelona에서도 기대 가능하게 된다. Intel의 아이디어를 AMD도 채용한 모습이지만, 이것은 x86의 약점을 극복하려고 하면, 비슷한 방법을 취할 수 밖에 없는 것도 의미한다.

 

 

물리 메모리는 256TB까지 액세스 가능

 

 아웃 오브 오더형 로드 실행은, 로드 명령을 다른 로드 명령이나 스토어 명령을 바이패스해서 투기적으로 실행 가능하게 하는 기능. Intel이 Core MA에서 구현한 "Memory Disambiguation "과 유사한 기능이다. L1 데이터 캐시를 미스하면 로드 레이턴시가 길기 때문에, 이 기능으로 로드 명령을 기존보다 이른 단계에서 실행시키면 레이턴시의 단축에 효과가 있다.

 

 

아웃 오브 오더 형의 로드 명령

 

 AMD는 메모리의 TLB (Translation Lookaside Buffer)도 강화했다. 먼저 물리 메모리 어드레스를 기존의 40bit에서 48bit로 확장했다. 이것에 의해서, 액세스 가능한 메모리량이  1TB (TeraByte)에서 256TB로 늘었다. 또 메모리 페이지의 크기는 기존의 4KB, 2MB 외에 1GB가 새롭게 더해졌다. 이것은 데이터베이스 어플리케이션으로 부터의 요청에 의한 것이라고 한다.

 

 가상 어드레스로 부터 물리 어드레스로의 어드레스 변환 캐시인 TLB 자체도, 더욱 커졌다. 이것은 가상화의 기능확장과 데이터베이스나 트랜잭션 등의 어플리케이션 때문이라고 한다.

 

 

TBL 강화

 

 Barcelona의 SSE 연산과 IPC (instruction per cycle)의 강화를 살펴보면 눈에 띄는 것은, 우선 Intel의 Core MA와의 공통성. 상당히 방법이 비슷한 점이 있다. x86 CPU의 성능 강화에는 가는 길이 닮아간다.

 

 또 하나 눈에 띄는 것은, 클라이언트용의 기능 확장과, 서버나 고성능 컴퓨팅용 기능 확장의 양방이 이뤄졌다는 점. 특히 메모리 부분의 확장은, 대형 데이터 세트를 다루는, 가상화가 중요한 서버를 의식한 부분이 많다. K8 아키텍처 자체가, 원래 DEC의 Alpha 아키텍처의 흐름을 끌어 온 만큼으로 서버에 적합한 요소가 많았다. Barcelona에서도 이러한 기본적인 방향은 변하지 않았다.

 

2006년 10월 13일 기사

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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

 

 

[고전 2002.09.11] 이것이 Banias 플랫폼이다 CPU 마이크로 아키텍처 편

 

 

[고전 2003.02.20] Pentium M 1.60GHz의 처리 능력

 

 

[분석정보] Intel의 차세대 CPU 아키텍처 Core Microarchitecture

 

 

[분석정보] 명확해진 Core Microarchitecture

 

 

[아키텍처] Core Microarchitecture 속도의 비밀은 CISC의 아름다움

 

 

[고전 1997.10.31] Intel과 DEC 전격 제휴 MPU의 판도가 바뀐다

 

 

[고전 1998.11.4] DEC의 Alpha 개발 팀이 대 Intel 진영으로

 

 

[고전 2003.09.12] AMD의 차기 CPU 코어 "K9"는 2005 년에 등장인가?

 

 

[분석정보] K8 이후 크게 바뀐 AMD의 CPU 개발주기

 

[분석정보] 수수께끼가 많은 K10 아키텍처의 방향성

 

 

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

 

 

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

 

 

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

 

 

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

 

 

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