벤치리뷰·뉴스·정보/고전 스페셜 정보

[고전 2002.06.24] 인텔이 오로지 메모리 대역의 확대에 집착하는 이유

tware 2005. 10. 6. 11:30


점점 오르는 Intel의 FSB & 메모리 대역


 Pentium 4 계 CPU의 FSB (Front Side Bus)는 400MHz (3.2GB / sec)에서 시작해 약 1년 반 만에 533MHz (4.3GB / sec)으로 그리고 내년에는 667MHz (5.3GB / sec)로 오른다. 또한 미래 아마 800MHz FSB (6.4GB / sec)도 온다. 이에 따라 Intel은 메모리 대역폭도 끌어 올린다. 듀얼 채널 (램버스) PC800 (3.2GB / sec)에서 듀얼 채널 (램버스) PC1066 또는 듀얼 채널 DDR 266 (4.3GB / sec), 그리고 듀얼 채널 DDR333 (5.3GB / sec)로. 왜 Intel은 여기까지 메모리와 FSB의 대역폭에 집착 하는가?


 재미있는 것은, 라이벌 AMD는 메모리 (& FSB) 대역보다 메모리 레이턴시를 중시하고있는 것이다. 예를 들어, 차세대 데스크톱 Athlon (ClawHammer : 클로해머)는 단일 채널 DDR266 (2.1GB / sec) 또는 333 (2.7GB / sec). Intel과 비교하면 메모리 대역은 절반이지만, 대신 DRAM 컨트롤러를 CPU에 탑재해 메모리 지연 시간 12ns (2GHz시)라는 경이적인 짧음이 된다.

 보통으로 생각하면, Hammer 쪽이 성능면에서는 현명한 선택으로 보인다. 라는 것은 일반적인 응용 프로그램의 대부분은 메모리 대역폭의 향상보다 대기 시간 단축으로 성능이 향상되기 때문이다.

 FSB 및 메모리 대역폭을 인상하더라도 원칙적으로 대역을 압박하는 응용 프로그램에서 밖에 이점을 누릴 수 없다. 현재는 소프트웨어의 대부분이 실제로 메모리 대역의 몇 분의 1 정도 밖에 사용하지 않는다. 즉, 데이터 양이 다수인 멀티미디어 및 과학 기술 연산 등에서는 (효과가) 살아나지만 , 일반 사무용 응용프로그램이라면 효과가 나기 힘들다는 것이다.

 반면, 대부분의 소프트웨어는 분기를 많이 포함하고 L2 캐시 미스한 경우에는 CPU 코어는 DRAM 액세스에서 100 사이클 이상을 손실하게 된다. 즉, 현재 CPU는 메모리에서 데이터를 기다리는 시간 낭비로 성능이 떨어져 버린다. 즉, 대기 시간의 단축은 대부분의 소프트웨어에 효과가 있다.



Intel과 AMD에서 일치하는 견해

 사실 이 내용은 Intel, AMD도 똑같은 견해다. 예를 들어, Intel의 패트릭 겔싱어 CTO 겸 부사장 (Patrick Gelsinger, Vice President & Chief Technology Officer)는 "(CPU의 성능 향상에) 메모리 레이턴시는 중요하다 .L1와 L2 캐시를 미스하면 메모리에서 돌아오기 까지 CPU는 말 그대로 수백 클럭도 기다려야 한다. 최악의 경우 로스는 1000 클럭 이상이 된다."  "메모리 레이턴시가 성능 향상의 가장 큰 제약인 것은 확실하다" 라고 말했다.

 한편 AMD의 더크 메이어 (Dirk Meyer) 그룹 부사장 (Computation Products Group)도 "CPU의 성능에는 세가지 기본적인 제약이있다 .첫째는 명령 경로 길이. 둘째는 오퍼레이션의 레이턴시, 특히 메모리 레이턴시가 큰. 세번째는 컨트롤 흐름의 예측성, 즉 분기 예측이다. 이 세가지를 감안할 때, DRAM 인터페이스의 통합 (그로 인하여 대기 시간을 단축 하는)의 장점은 명확하다 "고 말했다.

 즉, Intel도 AMD도 모두 CPU 개발의 장기적인 방향성을 결정하는 입장에 있는 인물은 메모리 지연 시간의 단축이 가장 큰 과제 중 하나라고 생각하고 있다. 그리고 AMD는 솔직하게 메모리 지연 시간을 단축하는 방향으로 향했다. 그런데 Intel은 메모리 지연 시간을 줄이는 것이 아니라 메모리 대역을 끌어 올리는 방향으로 향하고 있다. 이것은 왜 일까?

Hyper-Threading 메모리 레이턴시를 은폐


 사실 여기에는 분명한 이유가 있다. Intel은 메모리 대역폭을 높여 최종적으로 메모리 레이턴시를 은폐하려는 것이다. 즉, Intel의 장기 전략 안에는 "메모리 대역의 확대 = 메모리 대기 시간 단축 '인 것이다.

 어째서? 라고 생각할지도 모른다. 그러나, Intel이 다중 스레드 (명령의 흐름)의 병렬 처리 "스레드 수준 병렬화 (TLP : Thread-Level Parallelism)"기술로 매진하고 있는 것을 생각하면,이 수수께끼가 풀린다. Intel은 TLP 기술의 첫 단계로 Xeon이나 내년 데스크탑 CPU "Prescott (프레스콧)" 에서 지원하는 "Hyper-Threading"에서 하나의 CPU가 2개의 스레드를 동시에 처리 할 수​​ 있도록 했다. 그리고 이것이 결국 메모리 레이턴시 대책이 된다고 한다.

 "가장 큰 문제는 메모리 지연 시간의 제약을 넘어 IPC (instruction per cycle : 1 사이클에서 실행할 수있는 명령어 수)를 증가하는 것을 계속하는 것이다. 그리고 Hyper-Threading 이라면 높은 메모리 지연 시간이 허용될 수 있게 된다 예를 들어, 10 스레드를 병렬로 실행할 수 있다면, 1 스레드가 캐시 미스를 기다리는 동안 다른 9 스레드를 실행하는 것을 계속할 수 있다. 즉, 사실상 메모리 레이턴시를 은폐한다 "고 Intel의 겔 싱어 CTO는 설명한다.

 물론 현재의 2 스레드 병렬 실행 아키텍처는 메모리 지연 시간 은폐의 효과는 크지 않다. 그러나 향후 CPU 아키텍처를 개량하여 스레드 / 클럭을 점점 높이고 CPU 측의 유닛 수를 늘리면 효과가 나오는 것이다.

 그러나 이 경우 메모리 레이턴시를 은폐 할 수 있다는 것은 CPU 측에서 본 이야기 일 뿐이다. 즉, CPU 내부의 실행 유닛이 메모리 대기에 의해 노는 것이 없어진다는 이야기이지만, 그 경우에도 메모리 대기로 개별 프로그램이 스톨하는 것 자체는 변하지 않는다. 즉 DRAM 인터페이스의 CPU로의 탑재처럼 모든 프로그램에 대한 대기 시간 단축을 통한 성능 향상은 기대할 수 없다.



투기 멀티 스레딩이 다음 단계

 그러나 Intel은 다음 단계에서, 그것도 생각하고 있다. 그것은 "투기 멀티 스레딩 (Speculative Multithreading)"라고 ​​불리는 기술로, Intel은 지난해 'Speculative Precomputation : Long-range Prefetching of Delinquent Loads"라는 논문을 발표했다. 이것은 TLP 기술을 사용하여 완전한 데이터 로드 프리 페치를 실현하자는 기술이다.

 구체적으로 하나의 스레드에 대해 "투기 스레드"라는 스레드 군을 컴파일러로 생성한다. 이것은 본래의 스레드 중 로드 명령 (메모리에서 데이터를 읽어 명령)과 종속 명령만을 뽑아 스레드가 된다. 그리고 본 스레드와 병행하여 이 합작 thread를, TLP 아키텍처에서 실행한다. 즉, 투기 스레드가 시간이 걸리는 로드 명령을 미리 투기 실행해 버리는 것이다. 그러면 본래의 스레드 로드 명령을 수행할 때 필요한 모든 데이터가 L1 캐시에 로드되어 있는 것이다.

 "(Speculative Precomputation는) 아직 연구 단계이지만 혁신적인 기술이다. 스레드가 어떻게 실행되는지를 예측하고 (다른 스레드를) 실행하고 이를 통해 다른 스레드가 캐시를 워밍업 한다. 그러면 진정한 스레드가 거기 (로드 명령)에 왔을 때 이미 올바른 정보가 사전에 로드 되어 ","완전한 프리 페치가 행해지기 때문에 메모리에 액세스 할 필요가 거의 없어진다. 매우 강력하다 " 고 겔싱어 CTO는 설명한다.



메모리 레이턴시는 CPU 아키텍처에서 은폐

 이러한 Speculative Multithreading을 컴파일러에서 정적으로 제공하는 것이 아니라 런타임 환경에서 실현 될 수 있으면 단일 스레드 응용 프로그램에서 메모리 액세스 지연 시간이 은폐되어 극적으로 성능을 향상시킬 수 있게된다. 사실, Intel은 이러한 런타임의 연구 개발을 하고있다. 실현될 때는 응용프로그램 아래에 Speculative Multithreading 런타임 계층이 오게 될 것이다.

 이러한 Intel의 기술적인 방향성을 보면 메모리 지연 시간을 CPU 아키텍처에서 커버하려고 하는 자세가 명확하게 보인다. 즉, AMD와 Transmeta처럼 CPU에 DRAM 컨트롤러를 내장하여 물리적으로 메모리 지연 시간을 줄이는 것이 아니라 CPU의 아키텍쳐를 개량함으로써 실질적으로 메모리 레이턴시를 보이지 않게 하려고 한다. 실로 웅장하고 대담한 전략이다.

 그리고 이 방법으로 메모리 지연 시간을 은폐하려고 하면 그 경우는 메모리 대역이 필요하다. 투기로드가 증가하면 (파기되는 경우도 나오기 때문에)로드 횟수도 증가, 원래 TLP의 정도를 높일수록 로드 / 스토어 유닛 자체도 수를 늘리게 될 것이다. 즉, 메모리 대역은 필요하지만 메모리 레이턴시는 결국 없어지는 그러한 그림이라 생각된다.

 물론, 메모리 대역의 인상은 데이터 집약적인 멀티미디어 애플리케이션을 위함 이기도하다는 것이지만, 플러스 TLP 화 되는 미래를 생각하고 있는 것은 틀림 없다. 그리고 이를 위해 메모리 대역폭 인상을 필사적으로 유도하고 있다고 생각된다. 메모리 대역을 끌어 올리는 것은 하룻밤에 할 수 없기 때문에 지금부터 팍팍 메모리를 광대역화 하고 있는 것이다.



단기적으로는 불리한 Intel 접근

 Intel이 물리적으로 DRAM 대기 시간을 단축하는 것이 아니라 CPU 아키텍처에서 해결하려고 한 이유도 충분히 이해된다. 우선 (1) DRAM 인터페이스를 CPU에 탑재하고 대기 시간을 단축하는 것은 기술적으로 상당히 위험. 그 때 (2) 중기적으로 봐도 범용 DRAM (Commodity DRAM) 자체의 지연 시간이 현저히 감소 될 전망이 없다. 그러나 (3) DRAM 대역은 올리는 것은 비교적 쉽게 보인다. 하는 정도가 아닌 것일까.

 그러나,이 방법 자체도 위험함이 있다. 라고 하는 것은, 적어도 단기적으로는 DRAM 인터페이스의 탑재가 유리하기 때문이다. DRAM 인터페이스 탑재라면 CPU에 증가되는 로직은 적게 끝난다 (그러나 어려움은 크다). Speculative Multithreading 같은 성가신 일을하지 않아도 쉽게 DRAM 레이턴시가 몇분의 1이 된다. 게다가 그것은 기존의 소프트웨어 환경에서 사용되기 때문에, 즉시 효과가 나타난다. 데스크톱 CPU라면 연말 Hammer에서 누구나 효과를 체감할 수 있다.

 즉, Intel의 접근 방식은 맞으면 크지만, (효과) 발생까지 시간도 수고도 걸린다는 것이다. 그리고 성과가 보이기까지는 (PC 용으로는) 쓸데없이 많은 대역과 비효율적인 CPU 코어가 비판에 노출될 수 있다.



2002년 6월 24일 기사 입니다.


[고전 2003.10.18] 모든 CPU는 멀티 스레드로, 명확하게 된 CPU의 방향



[고전 2000.08.25] 그래픽 통합 CPU 팀나(Timna)의 개요를 분명히-극적인 다이 크기 축소를 실현



[고전 2001.08.30] 인텔 하이퍼 쓰레딩 펜티엄4 계획, 인텔 투기 (Spectulative) 스레드 실



[분석정보] Intel 차세대 하이퍼 쓰레딩 (Hyper-Threading) 기술 공개



[분석정보] Many-Core CPU로 향하는 Intel. CTO Gelsinger 인터뷰 1/2부



[분석정보] 시리얼이 되는 FSB와 메모리. CTO Gelsinger 인터뷰 2/2부



[아키텍처] 폴락의 법칙에 찢어지고 취소된 테자스(Tejas)



[정보분석] 팀스위니 미래의 게임 개발 기술. 소프트웨어 렌더링으로 회귀



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