IT 산업에 있어 빼놓을 수 없는 존재가 컴퓨터이고, 이 컴퓨터의 중심이라고 할 수 있는 것이 바로 '프로세서'다. 이 프로세서는 트랜지스터의 개발과 집적회로의 등장과 함께 급격한 속도로 발전하고 있고, 이 발전은 아직도 진행 중이며 아마 컴퓨터란 존재의 패러다임이 완전히 바뀌는 그날까지 진행될 것이 확실하다.
하지만, 이 프로세서들이 모두 같은 방향으로 발전하는 것은 아니다. 프로세서의 구별법은 여러 가지가 있지만, 가장 흔히 쓰이는 게 ‘어떤 명령어 형태를 사용하는가’를 기준으로 RISC(Reduced instruction set computer)와 CISC(Complex instruction set computer)로 나뉜다. 현재는 이 두 프로세서가 모두 서로의 장점을 받아들이면서 발전하고 있지만, 아직까지 이 두 종류의 프로세서의 구분은 확연하다.
CISC 프로세서는 길고 복잡한 명령어를 사용하여 제어가 쉽지만, 프로세서가 복잡하고 성능을 높이기 힘들다는 특징이 있다. 이를 사용한 프로세서 중 현재 상업적으로 성공한 프로세서는 시장의 주류로 자리잡은 인텔의 x86 계열이 있다. 물론 현재 인텔의 x86 프로세서는 CISC 형태의 틀 안에 있으면서도 엄밀히 말하면 RISC 프로세서에서 사용되는 많은 기술들이 접목되어 CISC의 한계를 넘고 있다.
RISC 프로세서는 짧고 간결한 명령어들의 조합을 사용하며, 프로세서 구조가 단순하고 성능을 끌어올리기 쉽다. 하지만 프로그램의 최적화 수준에 따라 비교적 분명한 성능 차이가 난다는 점이 단점이다. 대표적인 RISC 프로세서로는 현재 주위에서 흔히 볼 수 있는 ARM, MIPS 프로세서를 비롯해 썬(Sun)의 SPARC, HP의 PA-RISC, DEC의 알파(Alpha), IBM의 Power 시리즈가 있다.
▲ 'IBM Power 시리즈'의 변천사IBM이 공급하는 Power 프로세서 시리즈는 IBM의 서버 제품군과 함께, 한때 애플 매킨토시 시리즈에 사용되기도 했으며, 이 아키텍처의 변종 프로세서들은 각종 게임 콘솔의 메인 프로세서로 사용되고 있다. RISC 구조의 이 프로세서는 비교적 높은 클럭 속도와 저전력, RISC 특유의 효율을 등에 업고 특정 분야에서 놀라운 효율을 보였다. 또한 대형 서버에도 사용될 수 있을 정도로 유연한 확장성을 지닌 플랫폼이라는 장점이 있다.
2004년 발표된 Power5 프로세서에서는 Power4에 비해 다양한 변화를 찾아볼 수 있다. 하나의 물리 코어에서 두 개의 스레드를 동시에 처리할 수 있는 SMT(Simultaneous Multithreading), IBM의 서버 제품군의 가상화에도 이용되는 마이크로 파티셔닝 기술이 추가되었으며 개선된 메모리 서브시스템과 가상 I/O 기능이 추가되어 가상화 기반의 서버에서 강점을 보이게 되었다. 이어 Power5+에서는 더 높아진 클럭 속도, 개선된 공정과 함께 DDR2 메모리를 지원하고 쿼드 코어 프로세서를 발표할 수 있었다.
Power5 프로세서의 재미있는 점은 고도의 모듈화를 통한 멀티칩 패키징이 가능하다는 것이다. 덕분에 네이티브에 가까운 형태를 보이면서도 네이티브가 아닌 이 프로세서는 놀라운 확장성을 가지게 되었고, 캐시 용량 또한 비교적 적은 부담으로 고용량을 탑재할 수 있었다.
지난 2007년에 발표된 Power6 프로세서는 최대 5GHz에 달하는 클럭 속도를 가지고 있으며, 65nm SOI 공정으로 만들어졌다. Power6는 기존의 Power4/5와 달리 순차실행 방식을 채택해서 클럭을 대폭 끌어올렸지만, 서로 이진 호환성을 가지고 있으며, 별도의 프로그램 수정 없이도 기존 제품에 비해 월등히 높은 성능을 얻을 수 있다.
또한 공유 L2 캐시를 가지는 것이 아니라, 코어별로 독립적인 캐시를 가지며, L3 캐시는 프로세서 외부에서 전용 버스를 통해 연결된다. 프로세서 내부에 메모리 컨트롤러와 L3 캐시 컨트롤러가 통합되어 있으며, L3 캐시의 대역폭은 대략 80GB/s 수준이다. 높은 클럭을 무기로 상상을 초월하는 수준의 메모리 대역폭을 가지고 있으며, 에너지 효율을 높이기 위해 전력관리 기술이 내장되어 있다.
확장성 면에서도 프로세서간 포인트-투-포인트(Point-to-Point) 연결과 내장 메모리 컨트롤러 기반의 NUMA 구조는 쉽게 시스템 확장이 가능하도록 되어 있으며, 최대 32way의 프로세서 구성을 지원한다. 이는 경쟁 제품들에 비해 높은 확장성이며, 제품화되었을 때 경쟁 우위를 가질 수 있는 힘이 된다.
가상화 기능도 대폭 추가되어서, 워크로드 파티셔닝(Workload Partitioning), Live Partition Mobility, Application Mobility 등의 기능이 추가되었다. 이 기능들은 Power6 프로세서 제품군을 사용하는 IBM의 System p 시리즈에서도 찾아볼 수 있다.
시스템의 성능을 높이는 방법은 크게 두 가지가 있다. 프로세서 연산 속도를 높이는 방법과 연산 유닛을 늘리는 방법이 그것이다. 하지만 이 중 어느 한 가지가 정답이라고 할 수는 없다. 전체 연산 성능은 프로세서 수를 늘리는 만큼 정확히 정수배로 증가하지 않으며, 프로세서 연산 속도를 높이는 방법 역시, 물리적인 한계에 부딪치기 일쑤다.
그리고, 프로세서 수를 늘리는 방법은 분명 처리 용량을 늘릴 수 있는 가장 간편한 방법이지만, 이 또한 분명한 한계가 있으며 이를 넘어갈 경우 지나치게 시스템이 복잡해진다는 단점이 있다. 또한 적은 수의 고성능 프로세서를 사용할 경우와 비교해 이론적으로는 같지만 실제 성능은 더 떨어지는 경우도 생긴다.
이런 경우는 크게 두 가지 경우가 있다. 가장 대표적인 경우로, 멀티스레딩 형태로 프로그래밍되지 않은 어플리케이션의 경우, 아무리 프로세서가 많이 장착되어 있더라도 프로세서 하나에 모든 작업이 집중되고, 실제 성능은 프로세서 하나의 성능 정도만 나오게 된다. 이 경우 적은 수의 고성능 프로세서를 장착한 시스템이 훨씬 좋은 성능을 나타내는 건 당연하다.
그렇다면, 많은 수의 프로세스가 완전히 분산되어 실행되는 경우엔 어떨까? 위의 슬라이드는 같은 성능을 보이는 3코어 시스템과 단일코어 시스템간의 성능을 비교한 것이다. 트렌젝션이 진행될 때에 전체 평균 응답시간을 계산할 경우, 3코어 시스템은 1코어 시스템에 비해 분명 떨어지는 결과를 보여준다.
이는 코어의 다중화도 중요하지만, 각 코어를 강화해야 하는 필요성으로도 볼 수 있다. 이론적으로 같은 처리량을 보여 준다 하더라도, 실제 나오는 결과는 단위 코어당 성능이 뛰어난 시스템이 더 우수하다는 결과를 쉽게 확인할 수 있다. 언제나 코어의 다중화는 개별 코어의 강화가 한계에 다다랐을 때 선택해야 하는 방법이다.
IBM은 Power6 프로세서에서 ‘더 많은 코어의 내장’보다는 ‘더 강력한 코어’를 만드는 것을 선택했다. 두 가지를 모두 할 수 있다면 가장 이상적이겠지만, 모두 만족할 만큼 이루어내기는 힘들며, IBM의 선택은 각 코어의 성능을 대폭 끌어올리는 것이었다. 그리고 Power6는 5GHz에 이르는 클럭 속도를 바탕으로 코어당 성능은 이제 경쟁 제품을 큰 폭으로 제칠 수 있는 수준에 다다랐다.
IBM이 제시한 자료에 따르면, 인텔(Intel)의 아이테니엄(Itanium) 9000 시리즈와 9100 시리즈의 성능 차이는 약 11~17% 수준이다. 특히 하이퍼스레드 기술을 사용하지 않을 경우 성능 향상치는 11% 수준이고, 이 성능 차이는 높아진 FSB의 영향이지, 코어의 역량이 강화되었다고 보기는 힘들다.
SAP 벤치마크에서도 이런 경향은 그대로 나타난다. 같은 조건에서 아이테니엄 9000과 9100 시리즈의 성능 차이는 7%가 채 되지 않는다. 그리고, HP의 128코어 아이테니엄 서버는 IBM의 64코어 Power6 서버와 비슷한 성능을 보이며, 전체 성능은 약간의 우세, 코어당 성능 차이는 2.3배까지 벌어진다.
TPC-H 벤치마크에서도 재미있는 결과를 보여준다. 아이테니엄 기반의 서버는 같은 조건에서 9000+오라클(Oracle)10g, 9100+오라클11g의 벤치마크 결과가 22% 정도의 성능 차이를 보였는데, 문제는 오라클10g에서 11g로 업그레이드하는 것만으로도 26%의 성능 향상이 있다는 것이다. 이는 아이테니엄 기반 시스템 내부가 그리 효율적이지 않다는 것을 잘 보여주는 예라고도 할 수 있다.
그리고, IBM이 공개한 TPC-H 공인 벤치마크 결과에서는 같은 코어 수를 가진 상태에서 Power6 기반의 서버가 아이테니엄 9100 기반의 서버에 비해 1.7배 이상의 성능을 보여주고 있다. 이는 시스템 구조의 최적화와 함께 프로세서 코어의 역량이 크게 개선되었다는 것을 잘 보여준다.
IBM의 결과는 클러스터 구성이 포함된 결과이다. 클러스터링이 이루어질 경우 필연적으로 동기화를 위한 오버헤드가 발생하고, 이는 성능을 떨어뜨리는 원인이 되지만, 이를 감안하고도 경쟁 제품과의 큰 격차가 유지되고 있다. 만약 클러스터링이 이루어지지 않았다면 이 격차는 다소 더 벌어졌을 것이라 생각할 수 있다.
특히, 앞서 나온 Power5 기반의 System p5 575와 비교해서는 거의 두 배에 가까운 성능을 보여주고 있는데, 같은 코어 개수에서 이 정도의 성능 차이라면, 사용된 솔루션의 성능 차이를 떠나서 프로세서 코어의 성능이 얼마나 크게 개선되었는지를 잘 보여주는 부분이라고 할 수 있다.
물론 비교된 세 시스템의 환경은 동일하지 않지만, 일반적으로 서버 시스템은 하드웨어 성능이 아니라 어플리케이션 성능이 기준인 만큼 이러한 비교도 큰 문제가 되지는 않는다. 그리고 테스트에 사용된 오라클10g와 IBM의 DB2 9.1/8.2는 같은 서버에서 테스트했을 때 그 성능 차가 거의 없다.
Power6 프로세서가 가진 유연한 확장성은 다중 프로세서 구성에서 그 진가가 나타난다. 일반적으로 다중 프로세서 구성의 경우, 프로세서 간의 통신에 별도의 대역폭이 필요하며, 프로세서 수가 늘어날수록 데이터의 병목 현상이 심해져서 개별 프로세서 성능은 조금씩 떨어지게 된다. 이는 다중 프로세서 구성의 서버에서 상당히 해결하기 힘든 문제이며, 대형 서버의 효율을 위협하는 요인 중 하나이기도 했다.
IBM은 Power6에서 이런 성능 하락 요인을 최대한 제거했다. IBM이 제시한 자료에는 같은프로세서를 사용할 경우 4코어 시스템과 64코어 시스템의 코어당 성능 차이는 6% 정도이다. 하지만 비교군으로 제시된 아이테니엄 기반의 HP 서버의 경우, 4코어에서 8코어로만 가도 당장 20% 가량이 떨어지는 것을 볼 수 있으며, 128코어까지 가서는 코어당 성능이 아예 반 정도로 떨어지는 것을 확인할 수 있다.
이런 차이가 나타나는 원인은 각 프로세서가 가지는 연결 방식의 차이 때문이다. Power6 프로세서는 프로세서들이 포인트-투-포인트로 직접 연결되며 시스템 대역폭을 분산시켜 병목 현상을 최소화하고, 다중 프로세서 구성에서 일어나는 성능 저하를 최소화할 수 있게 해 준다. 반면 아이테니엄 기반 시스템은 FSB 기반의 크로스바 스위치 아키텍처(Crossbar Switch Architecture)를 사용하므로 다수의 프로세서에서 병목 현상을 피할 수 없게 된다.
현재 시장에서 IBM Power6의 가장 강력한 경쟁자는 인텔의 코드명 Montvale, 아이테니엄 9100 시리즈이다. 그리고, 지금까지 Power5 프로세서가 성능에서 밀리던 상황에서, IBM은 Power6 프로세서를 사용해 엔터프라이즈 시장에서 성능으로 비교우위를 확보하고 주도권을 잡을 기회를 맞았다.
현재 많은 벤치마크에서 Power6 프로세서 기반의 시스템은 비슷한 조건의 아이테니엄 기반 시스템에 비해 환경에 따라 최소 1.8배, 최대 3배 이상까지의 성능 격차를 보여 준다. 슬라이드에 적힌 것처럼 꼭 3배 빠르다고 하기엔 다소 무리가 있지만, 성능 격차가 상당한 것은 분명한 사실이다. 특히 다수의 코어와 많은 메모리를 사용하는 DBMS 위주의 환경에서는 이 차이가 더욱 커진다.
특히, 다수의 프로세서를 사용하는 환경에서 각 코어들의 효율을 떨어뜨리지 않고 성능을 낼 수 있다는 것은 효율 면에서 각별한 의미를 가진다. 하나의 프로세서가 소비하는 전력 도 만만치 않은 상황에서, 그린 IT의 추세와 유지, 관리 비용이 중요시되는 상황이라면 더 적은 프로세서로 더 높은 성능과 뛰어난 비용 효율성을 가지는 Power6 프로세서 기반 시스템은 좀 더 특별한 존재로 보일 것이다.
|
'팁 & 테크' 카테고리의 다른 글
리플룩 운영체제(XP) 설치가이드 (0) | 2009.06.30 |
---|---|
운영체제(OS) 설치, USB 메모리로 완전정복! (3) | 2009.06.01 |
나의 브라우저 성능을 벤치마킹 하자 (1) | 2009.05.14 |
서울시 'One-Click 인터넷 서비스' 사용방법 (0) | 2009.05.13 |
'지메일 실험실'의 흥미로운 기능 열 가지 (0) | 2009.05.06 |
댓글