● Llano (라노)의 내부 구조

 

 


AMD는 소프트웨어 개발자를 위한 기술 컨퍼런스 "AMD Fusion Developer Summit (AFDS)"에서 새로운 APU (Accelerated Processing Unit) "AMD A 시리즈" (Llano) 칩 아키텍처의 개요를 분명히 했다.

 

AFDS는 미국 워싱턴주의 벨뷰에서 6 월 13 ~ 16 일 개최된 컨퍼런스이다.

 

AMD는 여기에서 Llano 내부 버스 아키텍처와 CPU 코어와 GPU 코어 사이의 데이터 교환을 가능하게 하는 제로 복사본 개요 등을 공개했다. Llano에서 CPU 코어와 GPU 코어는 새로운 버스 아키텍처로 연결되어 있다.

 

AFDS의 기술 세션과 AMD 관계자의 설명을 통해 나타난 Llano 전체 추측 그림은 아래와 같다. GPU 코어는 특수 버스 아키텍처 통합 노스 브리지 (UNB)와 연결되어 있다. "Fusion Compute Link (Onion)" 와 "Radeon Memory Bus (Garlic)"의 2 계통의 버스가 병렬 연결되어 있고, Radeon Memory Bus (Garlic)에는 2개 분의 BUS가 달려 있다.

 

l1.jpg          
Llano 아키텍처

 

어찌 보면, Llano에서는 GPU 코어가 CPU 코어 및 하드웨어와 동격 이상의 취급이 되고 있다는 것을 알 수 있다. 기존의 임베디드 SoC (System on a Chip)는 CPU 코어 군 내부 CPU 버스에 연결되어 있지만, GPU 코어는 내부 I / O 버스에 연결되어 있으며, CPU 코어와 메모리 컨트롤러와 거리가 있다는 것이 일반적이다.

 

그러나 AMD APU 아키텍처는 GPU 코어 I / O 컨트롤러에 버스 이외에 메모리 컨트롤러에 직결하는 버스인 Radeon Memory Bus (Garlic)을 갖추고 있다. 이 버스는 각 CPU 코어에서 메모리 컨트롤러에 연결되는 것 보다 대역폭이 배가 된다. 또한 Llano는 CPU와 일관성을 가지고 있는 Fusion Compute Link (Onion) 버스도 갖추고 있다. 그리고 메모리 액세스 버스가 2 계통으로 되어 있다.

 

이 구조는 GPU 코어에서 광대역 메모리 액세스를 유지하면서 CPU 코어와 GPU 코어 사이의 부분적인 데이터 교환을 가능하게 하는 것이다. GPU 중심의 버스 구성이라고 해도 좋은 고급스러움이다. 물론 그 목적은 5SIMD 400 프로세서 연산 능력의 높은 GPU 코어인 "Sumo" 와의 DATA Feadback 이다.

 

 

l2.jpg
Sumo 개요


 

이 구조는 Llano뿐만 아니라 하위 APU인 "AMD E 시리즈 APU (Zacate / Ontario : 자카​​테 / 온타리오)"에서도 공통되는 것 같다. 프로그래밍의 일관성을 유지하기 위해, 동세대의 APU간, 아키텍처를 통일하고 있는 것으로 보인다.

 

따라서 Llano의 내부 구성은 Zacate / Ontario 내부 구성에서 추측하는 것이 가능하게 되었다. Zacate / Ontario의 내부 구성은 올해 2 월 ISSCC (IEEE International Solid - State Circuits Conference)와 4 월 일본에서 개최된 COOL Chips에서 밝혀졌다.

 

아래는 COOL Chips에서 계시된 Zacate / Ontario 아키텍처 다이어그램이다.

 

l3.jpg
Zacate / Ontario 아키텍처

 

 

● 크게 다른 Garlic과 Onion 두 버스

 


더 자세히 보면, GPU 코어, UVD3 장치와 같은 GPU에 포함된 장치는 그래픽 메모리 컨트롤러에 연결되어 있다. 여기에서 버스가 연결되어 있으며, Radeon Memory Bus (Garlic)는 통합 노스 브리지 장치 중 DRAM 컨트롤러와 직결되어 있다. 이 구조는 Zacate / Ontario 모두 같지만, Llano는 하나 차이가 있다.

 

Llano의 Garlic 버스는 2 중으로 되어 있으며, 각각 2 채널 DRAM의 한쪽 채널과 관련이 있다고 한다. GPU 코어는 2 채널을 완벽하게 사용할 수 있기 때문에 Garlic 버스를 사용한 액세스 광대역이다. 비디오 메모리 영역에 대한 액세스 실효 대역은 최고 Read가 17GB/sec가 된다.

 

Garlic 버스 - GPU 코어에서 최대 대역폭은 29.8GB/sec이고, 이는 메모리 대역폭과 일치하고 있다. 그러나 일반적으로 실효 대역은 피크 대역폭의 70 % 이하로 떨어지는 것이 일반적이므로, Garlic 대역 전체에 가깝다. 덧붙여서, Llano의 CPU 코어는, 단일에서는 메모리 읽기 & 쓰기가 8GB/sec, 멀티 코어 액세스 시에는 13GB/sec 이기 때문에 GPU 코어가 갖는 메모리 대역폭이 우세하다.

 

Garlic 버스 액세스와 CPU 캐시 스눕은 일치하지 않는다. 액세스 메모리 영역은 주로 공유 메모리의 비디오 메모리 영역이다. Garlic은 말하자면 개별 GPU의 메모리 버스에 가까운 이미지의 버스 아키텍처이다. Garlic 버스 Radeon 이름을 딴 이유도 알 수 있다.


l4.jpg 

Llano의 다이 레이아웃

 

반면 다른 한쪽인 Fusion Compute Link (Onion) 버스는 GPU 코어를 어느 정도 CPU 코어로 처리하는 버스이다. Onion을 통한 메모리 액세스는 GPU 코어가 지금까지 하지 못했던 CPU 캐시에 스눕이 가능하게 된다. 액세스 메모리 공간은 공유 메모리의 CPU 측 시스템 메모리 영역이다. CPU와 일관된 버스로 CPU와 GPU 사이의 데이터 교환을 위해 설치되었다.

 

Fusion Compute Link (Onion) 버스는 그 기능 상, CPU 버스에 연결되어 있다고 추측된다. AMD 멀티 코어 CPU 내부 버스는 코어 간의 시스템 요청을 조정하는 대기열이 있고, 그것이 외부 링크의 크로스바 스위치와 연결되고 있다. Onion 의 다이렉트 여부는 불분명하지만 일관된 대기열에 연결되어 있을 것이다.

 

Llano의 CPU 코어 그룹은 종래대로 L2 캐시를 통한 Cacheable 메모리 액세스 경로 외에, 쓰기 조합 (WC) 버퍼를 통한 쓰기가 있다. WC 버퍼는 64byte 각 코어에 대비할 수 있다. WC 버퍼 자체는 이전부터 AMD 코어가 제공하는 기능이지만, APU에서 GPU 코어와의 데이터 교환과 밀접하게 연관되어 있기 때문에, 특히 그림 그리는 더했다.

덧붙여서, 라이벌인 Intel의 Sandy Bridge는 아래 그림과 같이 단일 링 버스 CPU 코어와 캐시, 그리고 GPU 코어가 각각 동렬에 연결되는 구성으로 되어 있다.

 

l6.jpg
Sandy Bridge의 링 버스

 

 

● 미세 영역으로 나뉜 Llano의 실제 메모리

 


Llano의 실제 메모리에서는 이러한 GPU 버스와 CPU 버스를 사용한 메모리 액세스가 어떻게 되는가? 이것에 대해서는 AFDS에서 개요를 설명했다. 아래 그림은 AFDS의 설명을 기반으로 만든 Llano 메모리 영역의 차트이다.


l7.jpg 

Llano 메모리 액세스 영역

 

Llano는 CPU 코어와 GPU 코어가 동일한 물리적 메모리를 공유하고 있지만 여전히 CPU와 GPU의 메모리 주소 공간은 완전히 분리된다. 포인터를 통해서 양 메모리 영역에 접근할 수 없다. 그러나 제한된 형태로 프로그램에서 명시함으로써 서로의 메모리 공간에 액세스할 수 있다.

 

먼저 CPU 측의 시스템 메모리는 GPU 코어 측으로부터 액세스 할 수 있는 "USWC (Uncached Speculative Write Combine)"영역을 설정할 수 있다. USWC는 CPU에서 캐시되지 않는 메모리이기 때문에 CPU 측에서도 정상적인 접근이 없다. WC 버퍼를 통해 액세스된다.

 

또한 캐시된 시스템 메모리는 GPU 코어 측에서 Fusion Compute Link (Onion) 버스를 통해 액세스할 수 있는 페이지를 설정할 수 있다. 그러나 GPU가 사용하는 페이지는 CPU의 일반 페이지 작업이 수행되지 않도록 고정해야 한다. 또한, GPU가 액세스할 수 있는 메모리 공간도 제한된다.

 

GPU 코어에는 GPU의 메모리 시스템에서 주소되는 로컬 비디오 메모리 영역이 있다. CPU 측에서는 WC를 통하면 이 GPU의 로컬 메모리에 액세스할 수 있다.

 

 

 

● 메모리 영역에 따라 메모리 성능에 큰 차이가 존재. 

 


제약이 많은 상호 액세스가 가능한 CPU 코어와 GPU 코어. 그러나 동일한 물리적 메모리로의 액세스임에도 불구하고 그 메모리 성능은 메모리 영역에 따라 큰 차이가 있다. 아래 그림은 왼쪽이 CPU 코어 3 메모리 영역에 대한 액세스 경로 및 대역폭을 나타낸 그림. 오른쪽이 같은 그림의 GPU 판이다. 기록적인 성능은 AMD의 발표 수치이지만, 이것은 시스템이나 드라이버에 따라 변화할 가능성이 있다. 그러나, 큰 범위에서는 변하지 않을 것이다.

 

l8.jpg
Llano 메모리 액세스

 

먼저 CPU가 일반 시스템 메모리에 액세스하는 경우, 캐시 계층을 경유한다. 싱글 CPU 코어의 액세스 대역폭은 읽기 & 쓰기 모두 8GB/sec, 멀티 코어에서의 액세스는 13GB/sec가 된다. 피크 대역폭의 절반 정도이지만, 그래도 나름의 대역이 확보되어 있다.

 

USWC에서 WC 버퍼를 통해 액세스하는 경우, 쓰기는 정상적인 Cacheable 시스템 메모리에 대한 것과 동일한 8 ~ 13GB/sec. 그런데 Read가 계속 떨어져 1GB/sec 이하로 되어 버린다. 같은 WC 버퍼를 통해, GPU 측의 로컬 비디오 메모리 영역에 액세스하려면 8GB/sec에서 Read가 1GB/sec 이하로 떨어지며, 이것도 읽기가 매우 느리다.

 

GPU 측면에서 보면, GPU가 자신의 비디오 메모리 영역에 액세스하려면 이미 썼다시피 Read가 17GB/sec, Write 는 12GB/sec가 최대 대역폭이 된다. 이것은 Radeon Memory Bus (Garlic) 버스를 사용한 접근이다.

 

같은 Radeon Memory Bus (Garlic) 버스에도 CPU 측의 USWC (Uncached Speculative Write Combine)에 액세스하려면 읽기 & 쓰기가 6 ~ 12GB/sec로 약간 느려지게 된다. 그리고 Fusion Compute Link (Onion) 버스를 사용하여 Cacheable 메모리에 액세스하는 경우, 리드가 4.5GB/sec 로, 꽤 느려진다.

 

 

 

 

● FSA의 중간 단계인 Llano 메모리 아키텍처

 

 
AMD는 향후 이기종 컴퓨팅을 위한 프로그래밍 프레임 워크인 "FSA (Fusion System Architecture)"를 AFDS에서 발표했다. FSA는 궁극적으로 CPU 코어와 GPU 코어가 같은 가상 메모리 공간을 coherency 취하면서 공유함으로써 두 코어 간의 자유로운 데이터 교환을 실현한다.

 

 

l9.jpg
AMD의 차세대 코어의 메모리 공간


 

그러나 그것을 실현하는 것은, AMD가 올해 말 출시를 예정하고 있는 차세대 GPU 코어 "Graphics Core Next"에 APU가 통합되었을 때이다. 이 새로운 코어는 기존의 AMD GPU와 메모리 계층도 메모리 주소도 일신된다. GPU 내부 캐시도 읽기 & 쓰기가 되어, CPU 및 캐시 일관성이 유지된다.


l10.jpg 

차세대 GPU 코어의 일관성


Llano는 버스 및 메모리 컨트롤러 아키텍처의 부분적인 공유를 실현하려고 도래한 것으로 보인다. Llano 방법은 어디까지나 FSA의 중간 해석에 지나지 않는 것 같다.


l11.jpg 

AMD CPU 아키텍처 전환

 

마지막으로, Llano가 단정 밀도뿐만 아니라 배정 밀도를 지원하지 않을 수 있다는 것이 AFDS에서 밝혀졌다.

 

Radeon HD 5870 (Cypress) 시스템은 이전의 Radeon HD 4800 (RV770) 세대 아키텍처로 배정 밀도를 지원했다. 왜 Llano에서 배정 밀도를 지원하지 않는지 이유는 모르겠지만, 이제 HPC (High Performance Computing) 시장에서 Llano 는 거의 닫힌다고 봐도 좋을 것 같다.

 

l12.jpg
Sumo의 SIMD 어레이

 

 

 

(2011年 6月 22日)

[Text by 後藤 弘茂(Hiroshige Goto)]

 

 

출처 : PC.WATCH

 

 

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