|
HD 2000 시리즈는 DirectX 10 지원 최초의 타이틀을 놓쳤지만, 경쟁사보다 먼저
Xbox 360의 Xenos GPU를 통해 통합 쉐이딩 아키텍처를 먼저 적용한 경험이 있으므로 경쟁사보다 많은 노하우를
축적하여 보다 효율적인 구성이 가능하다고 언급하고 있다. 여기서는 AMD ATI Radeon HD 2000 시리즈에
적용되고 있는 통합 쉐이딩 아키텍처를 살펴보도록 하자.
2세대 통합 쉐이더 적용

[이전 세대의 처리 방식과 통합 쉐이더 처리 방식의 차이]

[DirectX 10은 CPU의 오버헤드를 줄여 처리 성능을 높일 수 있다.]
DirectX 10으로 넘어오면서 가장 큰 장점이 되는 부분은 DirectX 9 환경에서 발생된 CPU의 부하 즉,
오버헤드를 줄이는 방법을 적용하고 있다는 것이다. 이 방법은 CPU에 의한 처리를 줄이고 GPU를 통한 처리를 늘린
것이다.
이를 위해서 통합 쉐이더 아키텍처를 적용하게 되었고 이는 이전 세대가 Pixel Shader와 Vertex Shader를
구분하여 처리하여 비효율적인 연산을 하였던 것을 하나의 통합 쉐이더를 통해 효율적인 연산이 가능하도록 하였다. 통합
쉐이더를 통해 Pixel과 Vertex, 그리고 추가로 Geometry 연산까지 한꺼번에 진행할 수 있어 그만큼 반복
과정을 줄이고 효율적인 처리가 가능해졌다.
특히, AMD ATI는 경쟁사가 DirectX 10지원 8800 시리즈에 처음으로 통합 쉐이딩 아키텍처를 적용하였던 것과는
달리 이미 Xbox 360에 사용된 Xenos GPU에 통합 쉐이딩 아키텍처를 적용하였던 경험을 바탕으로 이를 더욱
발전시킨 형태로 내놓은 것이 HD 2000 시리즈라고 할 수 있다. 그렇기 때문에 AMD ATI에서도 이번 HD 2000
시리즈에 적용된 통합 쉐이더 아키텍처를 2세대라고 부르는 것이다.
320개의 Stream Processing Unit

[AMD ATI Radeon HD 2900XT 블록 다이어그램]

[AMD ATI Radoen X1950XTX 블록 다이어 그램]
AMD ATI Radeon HD 2900XT는 상위 버전답게 경쟁사와 비교하여 약 2.5배에 이르는 320개의 Stream
Processinng Unit을 제공하는 것이 특징이다. 이전의 Radeon X1950XTX와 비교하여 분리되었던
Pixel과 Vertex 처리를 위해 통합 쉐이딩 아키텍처를 적용하는 만큼 48개나 되었던 쉐이더 프로세서보다도 약 6배에
이른다고 볼 수 있다. 이전에도 언급되었던 Ultra-Threaded Dispatch Processor는 쉐이더 처리
능력을 향상시키기 위해 도입된 만큼 처리 효율을 높이기 위해 그대로 유지되고 있다.

[G80의 블록 다이어그램]

[8800
시리즈에 적용된 스트리밍 프로세서 구조]
하지만, 경쟁사가 이전 시리즈보다 개수, 클럭, 쉐이더 처리 능력까지 높였던 것과 다르게 AMD ATI는 쉐이더 프로세서의
개수는 비약적으로 늘고 처리 효율 및 성능을 높였지만, 쉐이더 프로세서의 클럭은 경쟁사보다 더 낮은 동작 클럭을 갖는
것으로 알려지고 있어 적은 Stream Processing Unit과 높은 동작 클럭대 많은 Stream
Processing Unit과 낮은 동작 클럭의 비교로도 볼 수 있다.
또한, 8800 시리즈는 128개의 SP (Stream Processing Unit)을 가지고 있는데 Vertex 처리는
클럭 당 16 쓰레드의 명령어 처리가 가능 (클럭 당 8 Vertex 명령어 처리)하며, Pixel 처리의 경우 클럭당
32 쓰레드의 명령어 처리 (클럭 당 4 Pixel 명령어 처리)가 가능하다.

[5-Way SupersCalar Shader processor]
AMD의 320개 SP (Stream Processing Unit)은 경쟁사와는 약간 다르게 동작되는데 각각의 블럭은
5개의 SP로 구성되고 이 중 하나가 특별한 연산이나 부동 소수점 연산을 담당하게 되며, 하나의 SP가 정수 곱셈 연산을
진행할 때 다른 SP들은 유사한 정수 연산을 진행한다. 이는 하나의 쓰레드 (Vertex, Primitive 혹은
Pixel)를 5개로 구성된 SP 하나가 연산을 진행하게 되는 것이다.
즉, 320개의 SP는 5개가 하나의 쓰레드를 처리하여 클럭 당 64개의 쓰레드를 처리하게 되는 것이다. (8800 GTX와
같은 경우 클럭 당 128개의 쓰레드를 처리할 수 있다.) 그러나, 64 쓰레드 처리는 NVIDIA의 128 쓰레드
처리보다 잠재적으로 더 많은 일을 처리할 수 있을 수도 있다. 이는 R600이 쓰레드 당 5개의 병렬 동작을 하기 때문이고
NVIDIA는 SP 당 하나의 동작을 다루기 때문이다. 하지만, R600은 최적화를 이루기가 더 어렵고 항상 최적의 성능을
보기는 어려운 부분도 있다. 최상의 경우로 보면 R600은 G80보다 클럭 당 최대 2.5배 ( 320 R600 vs
128 G80)의 처리를 보일 수 있고 반대의 경우 G80이 2배 (64 R600 vs 128 G80) 더 나은 결과를
얻을 수도 있게 된다.
앞서 언급한 쉐이더 프로세서의 클럭 차이 및 스트림 프로세서의 처리 능력에 따라 서로의 성능에서 차이를 보일 것인데 실제
쉐이더 처리 능력 부분은 별도로 뒤에서 살펴보았다.

[Texture Unit 구조]
Radeon HD
2900XT는 4Texture Unit을 가지고 있는데 내부에는 8 Texture Address (총 32개), 20
Texture Sampler (총 80개), 4 FP Texture Filter Unit (총 16개)로 구성되고 있다.
HD 2600은 2Texture Unit, HD 2400은 1Texture Unit을 가진다. 또한, HD 2900과 HD
2600은 멀티 레벨 텍스처 캐쉬를 가지며, HD 2900은 256KB, HD 2600은 128KB의 L2 캐쉬를 각각
가진다. HD 2400은 싱글 레벨 텍스처 캐쉬를 제공하게 된다. G80 같은 경우는 4개의 텍스처 어드레스 유닛과 8개의
텍스처 필터를 16개의 SP에 블럭 당 제공한다.
하위 버전들은 제한된 구성을 제공

[AMD ATI Radeon HD 2600 (좌)/ HD 2400 시리즈 (우) 블록 다이어그램]
항상 상위의 하이엔드 제품과 퍼포먼스, 메인스트림, 로우 엔드로 나뉘는데 이번 HD 2000 시리즈 역시 상위와 하위
버전을 나누어 놓고 있다. 구성 방법 역시 기존에서처럼 Stream Processing Unit을 제한하고 각각의 처리
부분을 제한하여 놓고 있다.
HD 2900XT는 320개의 Stream Processing Units을 제공하며, 4 SIMDs, 4 Texture
Units, 4 Render Back-End 구성으로 되어 있으며, HD 2600 시리즈는 120개의 Stream
Processing Units, 3 SIMDs, 2 Texture Units, 1 Render Back-End로 구성된다.
로우엔드인 HD 2400 시리즈는 40개의 Stream Processing Units, 2 SIMDs, 1Texture
Units, 1 Render Back-End Shader Vertex/ Texture Cahce로 각각 구분되고 있다.
80nm 공정이 적용된 R600

[90nm 공정 R580+ (좌)/ 80nm 공정 R600 (우)]
HD 2900 시리즈 중 하이엔드에 속하는 HD 2900XT에 사용된 R600은 경쟁사의 8800시리즈가 90nm 공정을
적용하고 있는 것과는 다르게 앞선 80nm 공정을 적용하고 있으며, 트랜지스터의 개수 역시 700million 개를
사용하고 있다. (8800 시리즈는 681million 개)
트랜지스터의 개수가 늘어난 주요 원인으로는 통합 쉐이딩 아키텍처의 변화와 더불어 멀티미디어 능력 강화에도 주요요인이 있다.
내장된 HDCP 암호화 키 테이블 및 오디오 컨틀롤러, AVIVO HD의 중요한 부분인 비디오 프로세싱을 담당하는 UVD
(Universal Video Decder, Unified Video Decoder)도 이전 시리즈와는 다르게 별도로
포함되고 있기 때문이다.
이전의 90nm 공정의 R580+ (Radeon X1950XTX, 384million개의 트랜지스터 내장) 코어와 80nm
공정의 R600 (Radeon HD 2900XT) 코어의 크기를 비교하였는데 80nm
공정의 적용으로 이전 세대보다 더 많은 트랜지스터를 내장하고 있음에도 코어의 크기는 약간 더 커진 것을 볼 수 있다.

[HD 2000 시리즈 프로세서 제조 공정에 따른 향상]
이번 HD 2000 시리즈는 통합 쉐이딩 아키텍처의 적용 외에도 경쟁사보다 앞선 65nm 공정까지 적용하고 있다. 가장
상위인 HD 2900XT에는 여전히 80nm 공정을 적용하였지만, 하위인 HD 2600과 HD 2400 시리즈에는 65nm
공정을 적용하고 있다.
HD 2900XT에 적용된 80nm HS 공정은 기존 공정보다 작은 다이 사이즈와 더 높은 동작 클럭을 얻을 수 있고 누수되는
전류를 그만큼 줄일 수 있게 된다. 게이트에 내장되는 트랜지스터의 수는 그만큼 더 늘어난다. HD 2600, 2400
시리즈에 적용된 65G+ (65nm 공정)는 80HS보다도 더 적은 누수 전류 등의 이익을 얻을 수 있게 된다.
듀얼 코어를 능가하는 FLOPS 처리 능력

[FLOPS 처리 능력 비교]
FLOPS는
Floating-Point Operations Per
Second의 약자로 1초에 처리할 수 있는 부동 소수점 연산의 횟수를 나타내는
말이다. HD 2000 시리즈는 3GHz의 높은 클럭으로 동작하는 듀얼 코어 프로세서와 비교하여 하위 버전인 HD
2400XT도 더 높은 부동 소수점 연산이 가능하며, HD 2900XT의 경우는 두 개를 사용할 경우
950GigaFLOPS를 처리하여 거의 1TeraFLOPS에 까까운 처리 능력을 보여줄 만큼 부동 소수점 연산 처리
부분에서 상당히 높은 처리 성능을 보여준다.
내부 1024bit로 동작하는 업그레이드된 링버스 메모리 아키텍처

[X1000 시리즈 (좌)/ HD 2000 시리즈 (우) 링버스 메모리 아키텍처]

[HD 2900XT는 읽기 512bit와 쓰기 512bit를 통해 내부 1024bit로 동작]

[Crossbar와 Hybrid, 링버스 메모리 아키텍처의 비교]
링버스 메모리 아키텍처는 기존의 그래픽 카드들이 사용하던 Crossbar의 한계를 극복하고자
AMD ATI X1000 시리즈부터 등장한 새로운 메모리 아키텍처이다. 링버스 메모리 아키텍처의 구조는
Shader Model 3.0과 HDR 그 이상이 있다!, ATI Radeon X1000 시리즈에서
소개했던 적이 있는데 Crossbar 방식은 많은 장치들을 연결할 경우 회선이 복잡해지고 밀도 역시 증가되며, 이로 인하여
데이터의 빠른 전송에 문제가 발생할 수도 있고 고속의 메모리 사용에서도 그만큼 불리한 부분이 있게 된다.
하지만, 새롭게 소개한 링버스 메모리 아키텍처는 32bit의 8개 채널로 나누어 Crossbar에서보다 더욱 높은 효율을
얻을 수 있게 구성하여 고속 메모리 사용에도 유리하다. 외부 256bit 구성을 위해 32bit 8 채널 구성을 통해
효율을 높였고 내부는 256bit 읽기와 쓰기로 512bit 구성을 하고 있다.
이전 시리즈가 쓰기 부분에서는 Crossbar Switch를 혼합하여 사용한 Hybid 방식이었다면, 이번 HD 2000
시리즈는 Crossbar Switch를 없애고 PCI-Express Ring stop 및 완전한 링버스 메모리 아키텍처의
형태를 치하고 있다. 특히, 그래픽 카드 최초로 512bit를 지원하게 되었다. 경쟁사가 Crossbar를 통해
384bit를 구현하여 성능을 높인 것과 대조적으로 완전한 링버스 메모리 아키텍처의 적용과 8채널 64it 메모리 채널을
제공하여 고속 메모리와 빠른 전송을 가능하게 해주고 있다. 이를 위해 내부는 512bit 읽기와 쓰기를 통해 이전 방식보다
높은 1024bit 링버스를 채용하고 있다.
이번 HD 2000 시리즈는 모두 완전한 형태의 링버스 메모리 아키텍처를 제공하며 하위는 128bit 메모리 인터페이스
구성인 만큼 64bit 2채널 구성으로 보다 쉽게 메모리 인터페이스를 구성할 수 있는 부분도 포함된다. 또한, 이를 통해
상위 HD 2900XT와 같은 경우 64bit 8채널 512bit 메모리 인터페이스 지원을 통해 최대 106GB/s에
이르는 높은 대역폭을 확보하여 성능 향상을 꾀할 수 있게 되었다.


[HD 2900XT는 512bit 메모리 인터페이스 (64bit 8채널 구성)]
HD 2900XT와 같은 경우는 512bit의 메모리 인터페이스를 구현하고 있는데 메모리는
최근 고성능 그래픽 카드들이 대부분 전면에 메모리가 위치하였던 것과는 달리 전면에 8개, 후면에 8개로 각각 32bit
구성의 32MB 16개의 GDDR3 SDRAM 메모리를 통해 구성하고 있다. 상위 버전 역시 마찬가지의 방법으로 구성할 수
있으며, 메모리 용량만 증가시키면 되므로 크게 어려울 것은 없다. 다만, GDDR4 SDRAM을 사용한 상위 버전의 경우
GDDR4 SDRAM 수급과 높은 가격의 문제로 인하여 X1950XTX에서처럼 많은 제품이 등장하기는 어려울 것으로
보여진다.
HD 2000 시리즈 제품군
|
스펙 |
ATI Radeon HD 2900 |
ATI Radeon HD 2600 |
ATI Radeon HD 2400 |
|
제조 공정 |
80nm (80HS) |
65nm (65G+) |
65nm (65G+) |
|
코어 |
R600 |
RV630 |
RV610 |
|
트랜지스터 수 |
700million |
390million |
180million |
|
코어 클럭 |
740MHz |
600-800MHz |
525-700MHz |
|
쉐이더 클럭 |
740MHz |
600-800MHz |
525-700MHz |
|
Stream Processors |
320 |
120 |
40 |
|
메모리 클럭/ 인터페이스 |
1650(825)MHz/ 512bits |
800-2200(400-1100)MHz/ 128bits |
800-1600(400-800)MHz/ 64bits |
|
메모리 대역폭(GB/sec) |
106GB/s |
12.8-35.2GB/s |
6.4-12.8GB/s |
|
Texture Units |
16 |
8 |
4 |
|
Render Back-Ends |
16 |
4 |
4 |
|
메모리 구성 |
512MB GDDR3 |
256MB GDDR4, 256MB GDDR3, 256MB DDR2 |
256MB GDDR3, 128/256MB DDR2 |
|
HDCP 지원 |
지원 |
옵션 |
옵션 |
|
RAMDACs |
400MHz |
400MHz |
400MHz |
|
출력 |
D + DL + DVI w/HDCP (HDMI adaptor) |
D + DL + DVI (HDMI adaptor) |
sVGA + DDVI + VO (HDMI adaptor) |
|
버스 |
PCI-Express 1.1a |
PCI-Express 1.1a |
PCI-Express 1.1a |
HD 2000 시리즈는 하이엔드의 HD
2900XT가 먼저 선보였지만, 메인스트림의 HD 2600과 로우엔드의 HD 2400 시리즈도 함께 발표되었다. 서로의
차이는 앞서도 설명하였지만, 표에 나타나 있듯이 상위 HD 2900XT가 320개의 스트림 프로세서와 512bit 메모리
인터페이스를 사용하고 있는 것과는 다르게 HD 2600의 경우 1/4 수준인 128bit의 메모리 인터페이스, HD
2400은 1/8 수준인 64bit 메모리 인터페이스를 제공하여 상당히 높은 성능 차이를 보일 것으로 예상된다. 쉐이더
클럭의 경우 경쟁사와는 다르게 공개하지 않고 있지만, 이전 X1000 시리즈처럼 코어 클럭과 동일하게 동작하는 것으로
알려지고 있다.
경쟁 제품 및 이전 제품과의 비교
|
제품명 |
Radeon HD 2900XT |
GF 8800 GTX |
GF 8800 GTS |
RD 1950 XTX |
|
제조 공정 |
80nm |
90nm |
90nm |
90nm |
|
트랜지스터 |
700 백만 |
681 백만 |
681 백만 |
384 백만 |
|
코어 클럭 |
740 Mhz |
575 Mhz |
500 Mhz |
650 Mhz |
|
Shader 클럭 |
740MHz |
1350 Mhz |
1200 Mhz |
650 Mhz |
|
Stream 프로세서 |
320 개 |
128
개 |
96 개 |
Pixel : 48 개
Vertex : 8 개 |
Native
DirectX |
DirectX 10 /
Shader Model 4 |
DirectX 10 / Shader Model 4 |
DirectX 10 /
Shader Model 4 |
DirectX 9/ Shader Model 3 |
|
메모리 인터페이스 |
512 Bits |
384 Bits |
320 Bits |
256 Bits |
|
메모리 클럭 |
1650 (825) MHz |
1800 (900) MHz |
1600 (800) MHz |
2000 (1000) Mhz |
|
메모리 용량 |
GDDR3 512MB |
GDDR3 768MB |
GDDR3 640MB |
GDDR4 512MB |
|
ROP |
16 |
24 |
20 |
16 |
|
텍스쳐 Fill Rate |
- |
36.8 GT/s |
24
GT/s |
10.4 GT/s |
|
Display Out Color |
채널당 10 Bit |
채널당 10 Bit |
채널당 10 Bit |
채널당 10 Bit |
HD 2000 시리즈와 경쟁사의 제품들을
비교하여 보았는데 각각에서 언급하고 있는 스트림 프로세서의 개수는 R600을 사용한 HD 2900XT는 320개, G80을
사용한 8800GTX 같은 경우는 128개, 8800GTS 640MB는 96개를 가지고 있다. 또한, R600은
8800GTX가 가진 384bit의 메모리 클럭을 넘어서 진정한 링버스 메모리 아키텍처를 통해 512bit의 메모리
인터페이스를 적용하여 최대
106GB/s 메모리 대역폭을 확보할 수 있게 되었다. |