점점 높아지는 스몰 코어 서버에 대한 관심

 

ARM은 차세대 명령어 셋트 ARMv8에서 64비트를 지원하여 서버와 고성능 컴퓨팅 시장에 진입하게 됐습니다. 앞으로 ARM 서버가 새로운 제품군으로 떠오르는 것은 확실하지만, ARM 서버는 x86 같은 서버와 완전히 시장이 겹치는 것이 아닙니다. ARM은 일부 한정된 용도의 시장에서만 사용되게 됩니다.

 

ARM 코어를 서버에서 사용하려는 제조사들의 대부분은 ARM 코어를 x86 CPU와 같은 고성능 컴퓨터로 발전시켜 사용하려는 것이 아닙니다. 오히려 ARM 코어가 전력 효율이 높다는 특징을 살리려 하고 있습니다. 이것이 바로 스몰 코어 서버, 혹은 스몰 매니 코어 서버라는 분야입니다.

 

스몰 코어 서버는 현재 주목을 받고 있는 컨셉으로, 앞으로의 서버 흐름이 될 수 있습니다. 왜냐하면 스몰 코어 서버는 높은 전력 효율을 발휘할 수 있기 때문입니다. 전력 효율이 중요한 취급을 받는 지금, 스몰 코어 서버에 대한 관심이 높아지고 있습니다.

 

1.jpg


AMD의 Don Newell

 

실제로 ARM이 ARMv8을 발표했던 ARM TechCon의 다음 주에 열린 JEDEC의 Server Memory Forum 키노트 프리젠테이션에서도 스몰 코어 서버가 주제로 등장했습니다. 게다가 스몰 코어 서버에 대해 이야기한 것은 x86 CPU를 제조하는 AMD였습니다. AMD의 서버 기술부문을 통괄하는 Don Newell(VP and CTO, Server Business Unit)은 서버 메모리 포럼에서 이렇게 말했습니다.

 

"지금 ARM 뿐만 아니라 아톰이나 밥캣 같은 스몰 코어 x86을 사용하는 스몰 코어 서버가 다양하게 논의되고 있습니다. 학회와 업계에서 스몰 코어는 일정한 부하에 대해서는 대단히 유용하다는 논문이 다수 나오고 있습니다. 스몰 코어 서버가 관련 업계에서 과장 광고일지 희망이 될지 큰 관심을 받고 있습니다"

 

AMD는 밥캣을 저가형 저전력 노트북용으로 출시했지만, 스몰 코어 서버에 대한 기대를 보면서 밥캣의 서버 시장에서 가능성도 타진하고 있는 것으로 보입니다.

 

 

전력 효율이 제일 중요하게 된 서버 시장

 

왜 서버 업계는 스몰 코어 서버에 관심을 보내고 있는 것일까요?

 

스몰 코어 서버의 모티브는 성능 효율과 절대 성능의 교환입니다. 스몰 코어는 절대적인 성능이 낮지만 성능 효율이 뛰어납니다. 따라서 일정 전력에서의 성능 효율을 중요하게 여기는 서버 분야에서 저전력 프로세서 아키텍처로 서버를 만드려는 시도가 나타나고 있다는게 AMD의 설명입니다.

 

2.jpg

 

성능 효율이 뛰어난 스몰 코어 서버

 

스몰 코어 서버가 왜 성능 효율이 뛰어난 것일까요? 그것은 폴락의 법칙(Pollack”s Rule) 때문입니다. 폴락의 법칙은 인텔이 명명한 CPU 개발의 경험에 의거하는 법칙이지만, 그 이름이 붙기 전부터 CPU 업계에서 알려진 것이기도 합니다. 동일 공정에서 CPU 다이 사이즈(트랜지스터 수)를 2~3배로 늘려도, 정수 연산 성능은 1.4~1.7배 정도만 향상한다는 법칙입니다.

 

3.jpg

 

폴락의 법칙과 전력 사용량의 관계

 

위 그림대로 CPU 코어 사이즈를 2배로 늘려 트랜지스터 수가 2배로 늘어나면, CPU가 작동할때의 전력은 단순히 계산했을때 2배로 늘어나게 됩니다. 하지만 싱글 스레드의 정수 연산 성능은 폴락의 법칙에 따라 예측했을때 1.4배 정도밖에 늘어나지 않습니다. 이 때문에 전력대 성능 효율이 70%로 떨어지게 됩니다. 즉, 싱글 스레드의 정수 연산 성능을 향상시키는 것은 CPU 설계에서 전력과 트랜지스터의 효율이 떨어지게 되는 방법입니다.

 

이 그램을 반대로 해서, 코어 수를 2배로 늘리면 스몰 코어의 이론적인 장점을 쉽게 알 수 있습니다. 아래 그림이 바로 그것입니다. 1/2 크기의 스몰 코어는 트랜지스터 수가 절반이 되고 소비 전력도 절반으로 떨어지지만, 싱글 스레드의 정수 성능은 이론적으로 70%만 떨어지게 되며, 그 때문에 전력 효율은 1.4배로 늘어나게 됩니다.

 

4.jpg

 

스몰 코어에서 폴락의 법칙과 전력의 관계

 

그 때문에 스몰 코어는 칩 전체의 효율이 높아집니다. 아래가 라지 코어와 스몰 코어의 칩 전체 비교입니다. 라지 코어에서 4코어 구성과 그 절반 크기의 스몰 코어에서 8코어 구성이, I/O도 포함해서 같은 크기가 된다고 가정해 봅시다.

 

그 경우 칩 전체의 트랜지스터 수와 전력 사용량은 이론적으로 똑같아집니다. 싱글 스레드의 절대 성능은 스몰 코어가 70%로 떨어지지만 코어 수가 2배로 늘어났기 때문에 칩 전체에서의 출력량은 1.4배로 늘어납니다. 그 때문에 멀티 스레드에서의 성능/전력 효율은 이론적으로 1.4배가 되는 것입니다.

 

5.jpg

 

칩 전체에서 본 폴락의 법칙과 소비 전력

 

 

썬의 나이아가라, 스몰 코어 서버의 시초

 

이론적으로는 전력 효율이 높은 스몰 코어 서버지만, 싱글 스레드의 성능은 라지 코어보다 떨어지게 됩니다. 그 때문에 스몰 코어 서버를 사용하여 효과가 높아지는 경우는 어느 정도 한정됩니다. AMD는 여기에 대해 이렇게 설명합니다.

 

"스몰 코어가 효과를 발위하기 위한 중요 조건은, 싱글 스레드 성능이 중요하지 않은 작업이여야 한다는 것입니다. 구체적으로는 메모리나 I/O에의 액세스가 잦은 작업이 스몰 코어에 적합합니다. 메모리나 I/O에서의 데이터를 기다리는 시간이 길어질수록, 라지 코어는 불필요한 전력을 소비하기 때문입니다."

 

이런 분석은 새로운 것이 아닙니다. 오히려 2004년에 이런 컨셉을 사용한 스몰 코어 서버 CPU가 발표됐었습니다. 지금은 오라클에 흡수된 썬 마이크로시스템즈의 나이아가라가 그것입니다. 8개의 스몰 코어를 1개의 칩에 패키징한 나이아가라를 장착한 울트라스팍 T 시리즈에서 썬은 스몰 코어 서버의 컨셉을 발전시켰습니다. 아래는 썬이 나이아가라를 발표했을 때의 컨셉을 설명한 슬라이드입니다.

 

6.jpg7.jpg

 

나이아가라의 컨셉

 

썬은 이때 쓰레드 병렬성(TLP)가 대단히 높은 어플리케이션에서 작업 셋트가 데이터 국소성이 낮아 캐시 미스율이 높고(캐시에 저장되지 않은 데이터를 요청하면서 메모리에 엑세스하는것), 쓰레드 사이에 디이터 공유가 많을 경우 지금까지의 라지 코어에서는 성능을 발휘할 수 없다고 지적하면서, 나이아가라와 같은 스몰 코어 서버 CPU가 그런 어플리케이션에서 성능을 발휘할 수 있다고 주장합니다.

 

 

메모리 엑세스가 높을 경우 스몰 코어 서버가 유리함

 

라지 코어의 경우 연산 시간은 스몰 코어보다 짧아집니다. 그런데 캐시 미스가 많아지몀 메모리 엑세스에 시간이 많이 걸리게 되면서 태스크 전체 실행 시간이 길어지게 됩니다. 한편 스몰 코어는 연산 시간 자체는 라지 코어보다 길어지지만, 메모리 엑세스의 지연 시간은 라지 코어와 변함이 없습니다. 그 때문에 전체 시간을 보면 태스크 실행 시간이 별 차이가 나지 않게 됩니다. 즉, 라지 코어와 스몰 코어의 성능 차이는 그만큼 작아지게 됩니다.

 

8.jpg

 

스몰 코어와 지연 시간

 

게다가 스몰 코어는 라지 코어와 칩 사이즈가 같을 경우, 라지 코어보다 코어 수가 많아지기 때문에 보다 많은 스레드를 병렬로 실행할 수가 있습니다. 그 때문에 스레드 병렬성이 높은 어플리케이션은 다수의 쓰레드를 병렬로 실행하면서 작업 전체의 처리 시간이 짧아지게 됩니다. 스몰 코어 서버가 라지 코어 서버보다 더 높은 성능을 발휘하게 되는 것입니다.

 

하지만 이런 장점도, 사용자의 QoS(Quality of Service)를 만족한다는 것이 전제 조건이라고 AMD는 설명합니다.

 

"QoS를 고려해야 할 필요가 있습니다. 중요한 점은 사용자의 입력에 따른 반응 시간이 연산 시간에 영향을 받지 않아야 한다는 것입니다. 사용자의 리퀘스트에 의한 반응이 스몰 코어에서 늦어진다면 스몰 코어에 적합하지 않은 작업이라는 이야기입니다. 반대로 연산 이외의 요소로 사용자가 기다리게 되는 경우에는 스몰 코어가 적합하다는 이야기입니다."

 

그 밖에도 AMD는 쓰레드 사이에 동기화 오버헤드가 급증하지 않아야 한다는 점이나, 쉬운 쓰레드 스케줄링이 스몰 코어 서버를 적용할 수 있는 어플리케이션에서 중요한 점이라고 설명합니다.

 

9.jpg

 

10.jpg

 

QoS의 만족은 스몰 코어 서버의 전제 조건

 

 

 

다음 ARM의 움직임은 멀티 쓰레딩

 

ARM이나 스몰 코어 x86에서 서버를 고려하고 있는 제조사는 이런 경우를 상정하고 있습니다. 그 때문에 CPU 코어의 절대적인 성능보다도 전력 효율이 더 중요합니다. 그리고 ARM 자신도 이런 시장을 진지하게 고려하고 있습니다. 서버에 불가결한 요소 중에 가상화의 지원을 점점 강화하고 있으며, 64비트 메모리 어드레싱도 ARMv8에서 추가하였습니다.

 

이런 움직임을 보면 ARM의 다음 수단도 예측할 수 있습니다. 서버 시장에서 장점으로 작용하는 요소 중에 ARM이 가지고 있지 않은 나머지 요소는 NUMA 메모리 구성이 가능한 메모리 일관성을 떨어트리는 칩 사이의 인터커넥트입니다. 필수적이지는 않지만 이를 해결하는 편이 낫기 때문에 ARM이 이 기술도제시할 가능성이 있습니다.

 

또 다른 요소는 멀티스레딩입니다. 스몰 코어 서버의 컨셉은 메모리 레이턴시가 지배적인 어플리케이션을 목표로 하고 있습니다. 그 때문에 스몰 코어에 멀티 스레딩을 추가하면 더욱 효율성이 높아지게 됩니다. 메모리 액세스를 기다리는 시간에 코어를 아이들 상태로 두는 것이 아니라, 다른 쓰레드를 연산하면 칩 전체의 출력이 상승하기 때문입니다. 실제로 썬의 울트라스팍 T 시리즈는 1개의 코어가 4 스레드 이상의 멀티 쓰레딩을 지원하고 있습니다.

 

이 경우는 메모리 딜레이를 줄이기 위한 것이 목표이기 때문에, 컨트롤이 복잡한 SMT(Simultaneous Multithreading)일 필요가 없습니다. 메모리 엑세스 때문에 작업이 멈출 경우, 쓰레드를 다른 작업으로 스위칭(컨텍스트는 유지한 상태로)할 수 있으면 됩니다. 멀티쓰레딩의 크기가 크기 때문에 구현도 상대적으로 쉽습니다.

 

11.jpg

 

스몰 코어와 멀티 쓰레딩

 

스몰 코어 서버는 현재 모티베이션이 높아지고 있는 중이며, 어떻게 발전할지는 아직 모릅니다. 그러나 x86 코어가 없는 반도체 회사에게 있어서 서버 시장에 진입할 수 있는 기회가 됩니다. 그 때문에 ARM 기반의 스몰 코어 서버에서 앞으로 움직임이 활발해질 것으로 생각됩니다. 만약 시장이 본격적으로 발전하게 되면 인텔과 AMD도 자사의 코어를 그 시장에 적용하게 될 것입니다.

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