|
아주 유용한 자료입니다.. 마지막까지 모두 읽어보신후 뿌듯함을 느겨보시길..*
하이퍼스레딩에 대해..
하이퍼 스레딩 Ready!
인텔의 새로운 프로세서가 오늘 공개된다. 이 프로세서는 3GHz에 이르는 클럭 속도를 갖고 있지만 더 중요한 것은 클럭이 아닌 Hyper-Threading Technology이다. 하이퍼 스레딩 기술은 하나의 물리적인 프로세서를 두 개의 논리 프로세서로 사용할 수 있도록 해주는 것이다.
이러한 하이퍼 스레딩이 적용된 프로세서는 32bit 데스크탑 프로세서에서는 3.06GHz에서 처음 선보이는 것이지만 서버/워크스테이션 플랫폼에서는 이미 Xeon 프로세서에 탑재가 되었던 것이다. 하지만 3.06GHz 프로세서에 처음으로 하이퍼 스레딩 기술을 적용시킨 것은 아니다. 기존의 NorthWood 프로세서에는 이미 하이퍼 스레딩 기술이 탑재되어 있었으며 인텔에서 원하는 정도의 성능이 보이질 않았기에 disable 시켜놓은 것이었다.
그렇다면 하이퍼 스레딩은 무엇인가. 하이퍼 스레딩이란 하나의 물리적 프로세서를 두 개의 논리적 프로세서로 나누어 사용하는 것이라고 하였다. 이렇게 사용을 하면 여러개의 프로세스(process 또는 task)를 실행할 때 두 개의 논리 프로세서가 적당히 일(스레드)을 분배하여 처리를 하기 때문에 조금더 빠른 일처리를 할 수 있게된다. 참고로 하나의 프로세스에서는 하나의 스레드밖에 처리를 할 수 없었다.
앞선 Intel i845PE 메인보드 리뷰에서 하이퍼 스레딩을 사용하기 위한 조건을 잠깐 언급한적이 있었다. 이러한 조건에 대해서 다시 한 번 살펴보고자 한다.
바이오스와 메인보드 칩셋의 지원
하이퍼 스레딩을 위한 메인보드 칩셋은 i845PE/GE와 i850/i850E, i845E, i845G/GV 등이 있다. i845PE/GE/GV의 경우 가장 최근에 출시된 칩셋이기에 기본적으로 지원이 되지만 i845E/G의 경우에는 바이오스 업데이트를 통해서 지원이 가능하다고 되어 있다. 그렇다고 모든 i845E/G 메인보드에서 지원을 하는 것은 아니다. 변경된 리비전이 적용된 i845E/G 칩셋을 사용한 메인보드에서만 바이오스 업데이트를 통해서 하이퍼 스레딩을 사용할 수 있다. 이 점은 유의해야 할 것이다.
바이오스의 지원은 크게 문제는 없을 것이다. 이미 인텔에서 제조한 메인보드의 바이오스나 써드 파티 업체 제품 중에도 이미 하이퍼 스레딩을 <Enable/Disable> 할 수 있는 옵션이 제공되고 있기 때문이다. 이 옵션은 하이퍼 스레딩을 위한 스위치와 같기 때문에 매우 중요하며 바이오스에서 이 옵션이 없으면 Windows XP를 설치한다 하더라도 MP 커널이 설치되지 않기 때문에 하이퍼 스레딩을 사용할 수 없게 된다는 점을 알아야 할 것이다.
운영체제에서의 지원
어찌보면 하드웨어에서의 지원보다 더욱 중요하고 난해한 부분이 운영체제에서의 지원이라 생각된다. 하이퍼 스레딩은 멀티 프로세서를 지원하는 운영체제, 구체적으로 말하면 멀티스레드(Multi-Thread)를 지원하는 운영체제에서만 사용할 수 있다. 이러한 멀티 스레드를 지원하는 운영체제는 Windows NT 기반이나 Solais, Linux 커널 2.4.x 등이 있지만 여기에서도 또다시 제한이 생겨 MicroSoft 제품군에서는 유일하게 Windows XP Home Edition/Professional만이 지원을 할 것이다. 이 부분에 대해서는 다음장에 조금더 자세히 다루도록 하겠다.
하이퍼스레딩의 구현 원리
스레드, 프로세스, 프로세서?
하이퍼 스레딩(Hyper Threading)은 스레드 개념에서 시작이 된다. 스레드(thread)란 하나의 프로그램이 실행된 후 그 내부에서 순차적으로 명령을 수행하는 흐름이라고 보면 된다. 예전 도스에서는 하나의 프로세스에서 하나의 스레드만을 지원하는 단일 스레드 접근방식(single-threaded approach)이 사용되었다. 하지만 지금 운영체제는 하나의 프로세스에서 여러개의 스레드를 지원하는 다중스레딩을 지원한다. 이러한 다중스레딩은 스레드의 병렬처리를 가능하게 해주어 응용프로그램의 실행 속도를 빨리 해주는 계기가 되며 궁극적으로는 하이퍼 스레딩을 사용하기 위한 기반이 되는 것이다.
멀티스레드 = 멀티태스킹 = 멀티프로세서?
참으로 난해한 공식이다. 그러나 분명한 것은 Hyper-Threading에는 위의 3가지 모두가 관련된다는 것이다. Multi-Thread(다중 스레딩)은 하나의 프로세스에서 여러 가지의 명령이 동시에 처리되는 것이라 볼 수 있다. 멀티태스킹/멀티프로세스는 여러개의 작업을 동시에 수행하는 것으로 이에 대해서는 잘 알고 있을 것이다. 그러나 여기에서 설명하고 있는 '동시' 수행이라는 것을 정확히 표현하면 '동시에 수행되는 것처럼' 보이는 것일 뿐이다.
A0 |
A1 |
A2 |
A3 |
▲ A 프로세스
B0 |
B1 |
B2 |
B3 |
▲ B 프로세스
위와 같이 주기억 장치에 두 개의 프로세스 (A,B)가 있다고 가정을 하고 각각의 프로세스에는 4개의 명령어가 수록되어 있다고 볼 때 운영체제는 위의 두 프로세스를 적절하게 배분을 하여 프로세서가 처리하도록 한다. 만약 2개의 명령어씩 처리를 하도록 한다면 아래와 같은 방식으로 처리가 될 것이다.
A0 |
A1 |
B0 |
B1 |
A2 |
A3 |
B2 |
B3 |
▲ 하나의 프로세서에서 두 개의 프로세스를 처리하는 과정 (인터리빙)
▲ 인텔에서 소개한 HT의 동작 방식
이렇게 처리를 함으로써 하나의 프로세스가 프로세서의 독점을 방지하고 멀티태스킹이 가능하도록 해준다. 하지만 2개의 프로세서가 있다면 위와 같이 2개의 프로세스를 처리할 때 인터리빙을 하는 번거로운 방식을 취하지 않고 하나의 프로세서가 하나의 프로세스를 처리할 수 있기 때문에 수행속도는 더욱 빨리지게 될 것이다. 당연히 운영체제가 멀티태스킹을 지원해야 한다는 전제조건이 붙는다.
스캔한 이미지는 하이퍼스레딩의 동작 상태를 보여준다. 두 개의 스레드를 처리할 때 하이퍼스레딩이 적용되지 않았을 때의 모습 (가운데 그림)과 하이퍼스레딩이 적용되었을 때의 모습(세 번째 그림)을 비교해보면 대략 짐작을 할 수 있을 것이다. 가운데 그림은 첫 번째 태스크(프로세스)의 스레드와 두 번째 태스크(프로세스)의 스레드가 번갈아가면서 처리되는 모습이며, 세 번째 그림은 첫 번째 스레드와 두 번째 스레드가 동시에 실행이 되고 있으며 작업 처리 시간이 그만큼 줄어든 것을 잘 보여주고 있다.
멀티프로세스
멀티프로세서는 말 그대로 2개 이상의 프로세서가 탑재된 것을 말한다. 이러한 멀티프로세서는 병렬형 구조, 즉 SMP (Symmetric Multi-Processing)로 이동을 하고 있으며 멀티프로세스를 지원하는 운영체제 역시 이러한 SMP를 지원하고 있다. 그러나 이러한 SMP 구조에서 운영체제는 싱글 프로세서 체제보다 더 많은 신경을 써야 한다. 운영체제의 커널이 로딩되는 프로세스가 어떠한 프로세서에서 실행이 될 것인지, 같은 프로세스를 두 개 이상의 프로세서 어디에서 실행될 것인지와 동시에 서로 다른 프로세서에서 실행이 되지 않게 할 것인지 등의 스케쥴링 등은 상당히 까다롭다.
참고로 SMP 구조에서는 프로세서의 수만큼 성능이 높아지는 것은 아니다. 즉 두 개의 프로세서를 사용한다고 해서 싱글 프로세서일 때보다 2배의 성능이 나오는 것은 아니라는 것이다. 이는 앞서 말한 문제 때문에 발생하는 것이며, 두 번째 이유는 바로 병렬구조로 되어 있기 때문이다.
SMP는 건전지 두 개를 병렬로 연결하고 꼬마 전구를 연결했을 때 빛의 밝기는 하나의 건전지에 연결을 했을 때와 동일하다는 것으로 비유를 할 수 있을 것이다. 하지만 하나의 건전지를 연결했을 때보다는 건전지 수명이 두 배로 길어진다는 장점이 있다. 이와 마찬가지로 SMP에서도 일의 처리속도는 싱글프로세스 구조일 때보다 크게 향상되지는 않지만 프로세서간의 밸런싱이 유지되어 프로세스 점유율에 여유가 생기게 된다.
▲ SMP 구조
▲ 싱글프로세서 구조
첫 번째 사진은 하이퍼스레딩 상태에서 MPEG 인코딩을 할 때 프로세서의 로드 상태를 보여준다. 하나의 프로세스는 거의 100% 풀로딩이 되고 있지만 다른 하나는 상당한 여유폭이 있음을 알 수 있다. 또한 스레드와 프로세스의 수를 살펴보면, 프로세스는 동일하게 18개로 되어 있지만 스레드는 30개의 차이가 있음을 볼 수 있다.
그러나 하이퍼 스레딩은 SMP와 비슷한 구조로 동작을 하지만 SMP와 완전히 동일할 수는 없다. 물리적으로는 한 개의 프로세서이기 때문에 SMP 테스트가 불가능하며 자원의 공유(프로세서 내부의 캐시 등)로 인한 성능 하락, 풀로딩을 필요로 하는 응용프로그램에서의 병목 현상 등은 하이퍼 스레딩의 취약한 부분을 그대로 나타내기 때문이다.
서론이 너무 길었기에 조금은 지루하지 않았을까 한다. 이제 본격적인 성능 테스트를 통해서 Intel Pentium4 3.06GHz의 성능과 함께 하이퍼스레딩을 적용했을 때와의 성능차이도 알아보고자 한다.
Intel Pentium4 3.06GHz 스펙
Intel Pentium4 3.06GHz 프로세서는 기존의 Pentium4 프로세서와 커다란 차이점을 찾아볼 수 없다. 최근에 발표한 2.8GHz와의 비교를 해봐도 겉모습에서 달라진 점은 거의 없다. 단 내부적으로 동작 전압이 0.025V 올라가고 전력 소비량이 증가하였다는 것과 하이퍼스레딩(Hyper Threading) 기능을 탑재하고 있다는 것이다.
이와함께 레퍼런스 쿨러도 함께 변화가 있었다.
Pentium4 3.06GHz |
제품명 |
Pentium4 2.8GHz |
Intel |
제조사 |
Intel |
mPGA 478 |
패키지 |
mPGA 478 |
533MHz |
시스템버스 |
533MHz |
0.13㎛ |
제조공정 |
0.13㎛ |
1.550v |
동작전압 |
1.525v |
81.8(?) |
전력소비량 |
68.4 |
512KB |
L2캐쉬 |
512KB |
▲ 2.8GHz
▲ HT 3.06 Processor #1
▲ HT 3.06GHz Processor #2
기존 2.8GHz과는 동일한 스테핑으로 이루어져 있다는 것을 WCPUID를 통해서 확인을 해 볼 수 있다.
▲ 2.8GHz의 L1 캐시 정보
▲ 3.06GHz의 L1 캐시 정보
2.8GHz와 3.06GHz의 캐시 정보를 살펴보면 약간 다르다는 것을 볼 수 있다. Instruction TLB(Translastion lookaside Buffer)에서 2.8GHz는 128 entries로 되어 있지만 3.06GHz의 경우에는 64 entries로 되어 있는 것을 확인할 수 있다. 잘못된 정보가 아닐까 하지만 위의 내용은 잘못된 것이 아니다. 하나의 프로세서에서 64 페이지 엔트리, 그러므로 2개의 프로세서에서 128 페이지 엔트리가 되는 것이다.
샘플 버전이기에 클럭이나 L2 캐쉬의 크기, 생산 날짜 등은 찍혀있지 않고 내부 시리얼 넘버만이 적혀있다.
프로세서의 윗면을 보면 달라진 점은 없지만 뒤쪽의 캐패시터를 보면 기존 2.8GHz와의 차이가 있음을 볼 수 있다. 캐패시터의 수는 12개로 동일하지만 그 위치가 다르기 때문이다. 이는 전압의 변화와 함께 이러한 설계가 이루어진게 아닌가 한다.
이번 Pentium4 3.06GHz 프로세서에 함께 패키지로 온 레퍼런스 쿨러이다. 3.06GHz로 클럭이 높아지고 소비 전력이 커지면서 이에 발생하는 열을 효과적으로 처리하기 위한 쿨러를 새로이 디자인한게 아닌가 한다. 이 새로운 팬의 제조사는 Sunon社이다.
자세히 보면 웬지 디자인을 하다만 제품처럼 약간은 불안하게 되어 있지만 그래도 인텔에서 레퍼런스로 지정한 제품이니 신뢰가 가는 제품이다. 단 설치가 약간 힘들다는게 단점이다.
코어와 직접 닿는 부분은 구리로 되어 있어 열전도에 많은 신경을 쓰고 있다. 히트싱크는 좁은 공간에서 방열 면적을 넓히기 위해서 타원형 구조로 되어 있는 것을 볼 수 있다.
▲ 새로운 쿨러의 문제점
새로운 레퍼런스 쿨러에서 가장 큰 문제점은 바로 전원 케이블이 쿨링팬에 걸리적거린다는 것이다. 이를 위해서 별도의 쿨러 설치법을 매뉴얼로 만들어 제공하고 있지만, 솔직히 프로세서 구입 후 팬쿨러 매뉴얼 보면서 쿨러 장착하는 사람이 얼마나 될 것인가. 팬이 회전하면 팬의 날개 끝부분이 케이블에 걸려 엄청난 소음이 발생하고 이러한 현상이 지속되면 케이블 이상까지 발생할 수 있기 때문에 약간은 까다로운 설치법을 준수해야 한다.
▲ 가이드 설치 모습
쿨링 팬은 기존의 Intel 레퍼런스 쿨러와는 달리 외부에 그대로 노출되어 있기 때문에 이를 보호하기 위해서 가이드가 제공되며 이는 주변의 케이블에 쿨링팬이 걸리지 않도록 하는 역할을 한다. 하지만 그냥 보기에도 약간 부실해 보이기 때문에 불안감을 없애기는 힘들 것이다.
테스트 사양과 방법
이번 성능테스트에서는 비교 제품으로 Intel Pentium4 2.8GHz을 사용하였다. AMD Athlon XP 시스템도 비교를 해보려 하였지만 Pentium4 3.06GHz에 준하는 프로세서는 둘째치고 사용환경의 형평성이 맞지 않는 관계로 포기를 하게되었다. 사용환경이란 메모리로, 인텔에서는 Intel Pentium4 3.06GHz를 위해서 PC1066 256 MB x 2개의 RDRAM과 Intel i850E 메인보드를 세트로 보내왔기 때문이다.
DDR SDRAM 환경에서 테스트를 진행해도 무방하겠지만 프로세서의 대역폭을 싱글 채널 DDR SDRAM으로는 쫓아갈 수 없기 때문에 메모리 병목 현상을 최소화하기 위해서 PC1066 기반의 RDRAM에서 테스트를 진행한 것이다.
테스트 사양
분류 |
제품명 |
CPU |
Intel Pentium 4 3.06B GHz NorthWood |
Memory |
Samsung PC1066 RDRAM 256 x 2EA |
Mainboard |
Intel D850EMV2 (i850E) |
HDD |
WD400 (5400RPM , 2MB) |
VGA |
Leadtek GeForce 4 Ti4600 |
Chipset Driver |
Intel INF Update Utility 4.00.1009 |
VGA Driver |
Detonator 30.82 |
Power Supply |
Hanmi Micronix HPC-250 250W |
운영체제 |
|
Microsoft 영문 Windows XP build 2600 SP1 |
테스트에 앞서 테스터가 한 가지 실수를 한 부분이 있어 일찌감치 시인을 하도록 하겠다. 테스트 시스템을 구성하는데 있어 하드디스크를 기존에 사용하던 제품을 사용하여 I/O 병목 현상이 심하게 발생함에 따라 정확한 테스트 결과가 나오질 않았다는 것이다. 특히 I/O 액세스가 심한 바이러스 스캐닝을 통한 성능 테스트는 프로세서의 성능보다는 하드디스크 드라이브에 의한 병목 때문에 정확한 테스트 결과가 나오질 않았다는 것이다. 추후 성능 테스트에 관한 부분을 볼 때에는 이를 감안해야 할 것이며 추후 프로세서 테스트에서는 이와 같은 실수를 범하지 않도록 주의를 하겠다.
▲ 제어판의 장치관리자
▲ 작업관리자에서 본 프로세서 상태
이상에서 볼 수 있듯이 하이퍼 스레딩을 사용하면 두 개의 프로세서처럼 인식을 하게 되며 제어판이나 작업 관리자에도 외형상은 그렇게 나타난다.
테스트는 지금까지 사용한 벤치마크 프로그램을 사용하여 테스트를 진행하였으며, 하이퍼 스레딩을 활성화 했을 경우와 활성화 하지 않았을 경우, 그리고 Intel Pentium4 2.8GHz와의 성능 차이를 테스트하였다. 다음으로는 MP3 Encoding과 Virus 스캐닝, MPEG 인코딩, 두 가지 작업을 동시에 실행했을 때의 작업 처리 시간 및 프로세서 사용률을 체크하였다.
기본 성능 테스트
Sandra 2002 Pro SP1
▲ 산드라에서 본 프로세서 정보
Sandra 2002 Pro SP1은 Intel Pentium4 3.06GHz의 하이퍼 스레딩을 정확하게 인식을 하였으며 SMT(Simultaneous Multi Thread)를 지원하고 있음을 보여주고 있다. Sandra의 경우 CPU 성능 테스트에 적합하게 되어 있으며 싱글 스레드와 멀티 스레드 테스트, SMP 테스트가 가능하기 때문에 이번 Intel Pentium4 3.06GHz의 성능을 가장 잘 보여줄 것이다.
▲ Sandra 2002 Pro CPU 테스트 결과
Sandra 2002 Pro에 기본으로 내장되어 있는 데이터베이스와 비교를 해보면 하이퍼 스레딩의 고유 성능을 알 수 있을 것이다. Intel Pentium 4 2.4GHz와 2.66GHz를 비교(500 MIPS 차이)하고 2.66GHz SMT와 2.66GHz 싱글스레드를 비교(1100 MIPS 차이)해보면 알 수 있다. 클럭의 차이보다 멀티스레드 처리 유무에 의한 성능 차이가 더 크다는 것을 알 수 있다.
SPEC CPU2000 v1.2
▲ Hyper-Threading 비적용
▲ Hyper-Threading 적용
SPEC CPU2000은 SPEC社의 CPU 벤치마크 툴로써 상당한 공신력이 있는 프로그램이다. 이 테스트를 위해서 인텔측에서 제공한 Pentium4에 최적화된 바이너리 파일을 사용하였으며 별도의 컴파일 과정은 이루어지지 않았다는 것을 미리 밝혀둔다.
테스트는 3.06GHz에서 하이퍼스레딩의 활성/비활성 상태에서 테스트를 진행하였으며 테스트 진행 상황과 이에 대한 CPU 점유율은 위와 같다. 정수 연산과 실수 연산을 나누어 테스트하며 기본 상태(base)와 최고 상태(peak)로 나누어 테스트가 진행된다.
테스트 결과 하이퍼스레딩의 활성화 유무에 따라 성능 상의 차이는 크게 없다는 것을 볼 수 있다. 이는 하이퍼 스레딩을 활성화 했을 때에도 CPU 점유율이 약 50% 정도로 유지가 됨에 따라 나타나는 현상으로 멀티 프로세서 테스트가 아닌 싱글 프로세서 테스트였기 때문이다.
CCwinstone 2002
CCWinstone 2002는 그동안 메인보드 성능 테스트를 할 때 빠지지 않고 이루어졌던 벤치마크 프로그램으로 프로그램의 동시 실행을 통하여 시스템의 성능을 측정할 수 있는 대표적인 프로그램 중 하나였다. 이는 SYSMark 2002의 Internet Content Creation의 그것과 동일하다고 생각을 했지만 방식에 약간의 차이가 있는게 아닌가 한다. 테스트 결과를 보면 오히려 점수에서는 Intel Pentium4 2.8GHz 보다도 낮은 성능을 보여주고 있다.
위와 같이 낮은 성능이 나온 이유는 CPU 점유율을 통해서 확인할 수 있었다. 일단 하이퍼스레딩이 적용되지 않은 상태에서는 Intel Pentium4 2.8GHz보다 빠른 것을 확인할 수 있을 것이다. 하이퍼스레딩 적용 여부에 따라 CPU 점유율은 22%의 차이가 발생하게 되며 이에 영향을 받아 CCWinstone 2002의 점수에도 영향을 끼치게 된 것이다. 점수만으로 계산을 하면 하이퍼스레딩을 적용했을 때에는 분명히 낮은 성능을 보여주지만 그만큼 CPU 점유율이 낮기 때문에 안정적으로 작업을 수행할 수 있으며 또다른 프로그램을 구동할 수도 있게 된다.
SYSMark 2002
SYSMark 2002에서는 하이퍼스레딩의 확실한 성능을 알 수가 있었다. 중간에 CPU 점유율이 어느 정도인지 확인을 할 수 없었지만, 이정도의 점수차이가 발생했다는 것은 2개의 논리 프로세서가 상당히 바쁘게 움직였다는 것을 예측해 볼 수 있을 것이며 멀티스레드 처리도 제대로 이루어졌다고 생각이 된다.
3DMark 2001 SE Build 330
3DMark 2001 SE Build 330에서는 하이퍼스레딩의 효과를 크게 느낄 수 없다. 싱글 태스크 기반의 프로그램이기 때문에 커다란 성능 차이를 볼 수 없었던게 아닐까 한다.
응용 성능 테스트
거원제트오디오 5.0.0.1004 베타3에서의 MP3 인코딩
▲ HT 적용
▲ HT 비적용
거원제트오디오 v5.0.0.1004 베타3 버전과 Now 3집 앨범을 이용하여 실시간 MP3 인코딩 테스트를 진행하였다. CD-ROM 드라이브의 Wav 추출 속도에도 영향을 받겠지만 동일한 CD-ROM 드라이브로 테스트를 진행하였기에 이는 큰 문제가 되지 않을 것이라 생각이 든다.
먼저 화면 캡쳐 자료를 보면, HT를 적용한 것과 적용하지 않는 것은 어느 정도 차이가 있음을 알 수 있다. 하이퍼스레딩을 적용하지 않았을 때에는 CPU 점유율이 꾸준하게 상승을 하고 있는 것을 볼 수 있다. 이러한 현상 자체에 문제가 있는 것은 아니며 오히려 작업 속도는 더 빨라질 수 있겠지만 다른 작업과 병행시 병목이 생길 수 있다는 단점이 생긴다. 절반 정도 MP3 인코딩을 했을 때 CPU 점유율이 70%를 넘어섰음을 볼 수 있다.
하이퍼스레딩을 적용한 경우에는 두 개의 논리 프로세서가 로드밸런싱을 이루며 평균 점유율을 유지하고 있음을 볼 수 있다. 하나의 프로세서에서 작업을 하는 경우 다른 프로세서는 대기 상태에 있어 타 작업 명령이 들어올 경우 그 일을 처리할 수 있는 여유가 있기 때문에 멀티 태스킹에 유리하게 된다. 하지만 하이퍼스레딩을 적용했다 하더라도 풀로드의 작업이 아닌 관계로 작업 시간에는 그리 큰 영향을 미치지 못할 것이다.
Norton Anti-Virus 2003 v9.0.0.55a 베타
▲ HT 적용
▲ HT 비적용
다음은 Norton Anti-Virus 프로그램을 이용한 검색시간을 측정해 보았다. 그런데 테스터가 미쳐 생각치 못한 오류를 범하고 말았으니.. 바로 I/O 병목 현상이다. 테스트를 할 때 사용한 하드디스크는 WD400EB로 버퍼 2MB에 5400RPM의 스펙을 갖고 있는 제품이다. 바이러스 검색을 할 때 하드디스크의 스와핑 때문에 병목이 발생하여 하이퍼스레딩의 효과를 정확하게 확인을 하지 못하였다.
테스트 결과를 봐도 그렇게 커다란 차이는 느낄 수 없을 것이며 2.8GHz와의 차이는 클럭에 의한 것 뿐이다.
Norton Anti-Virus & MP3 Encoding
▲ HT 적용
▲ HT 비적용
Norton Anti-Virus와 제트오디오 MP3 인코딩을 동시에 수행할 때에는 어떠한 결과가 나올 것인가. 각각 테스트를 했을 때에는 MP3 인코딩에서만 16초 차이만 있었지만 둘을 동시에 수행하면 테스트 결과는 많은 차이가 생기게 된다. 일단 멀티태스킹이기에 두 개의 논리 프로세서가 안티바이러스와 MP3 인코딩에 필요한 프로세스를 서로 조율하여 담당함으로써 작업 시간이 줄어들기 때문이다.
두 개의 작업 중 먼저 끝나는 MP3 인코딩에서는 하이퍼스레딩을 적용한 3.06GHz가 284초로 단독 실행을 했을 때인 234초보다 50초 정도 늦어진 반면, 하이퍼스레딩을 적용하지 않은 경우에는 멀티태스킹 시 380초이며 단독 실행시에는 250초였다. 무려 130초 정도의 갭이 발생한 것이다.
안티 바이러스 종료 시간에서도 차이가 발생한다. 하이퍼스레딩을 적용한 경우에는 10초에 불과한 시간이 적용하지 않은 경우에는 81초, 2.8GHz에서는 143초 정도의 갭이 생긴다. MP3 인코딩 작업이 일찍 끝났다는 점을 감안하면 이 정도의 차이는 매우 크다고 볼 수 있으며 작업 내용이 두 개가 아니라 3,4개 정도까지 되면 그 차이는 더욱 커진다고 볼 수 있다.
TMPGEnc 2.53
▲ HT 적용 (싱글스레드)
▲ HT 적용 (멀티스레드)
▲ HT 비적용 (싱글스레드)
▲ HT 비적용 (멀티스레드)
마지막으로 TMPGEnc 2.53에서 동영상 인코딩 성능을 측정하였다. MPEG 인코딩은 최근 Divx의 활성화로 인해서 많이 사용되는 것이며 CPU의 성능을 측정하기에 아주 좋은 프로그램이기에 눈여겨 볼 필요가 있는 부분이다.
소스는 1분짜리 MPG이며 비디오와 오디오 모두를 동시에 인코딩한 시간을 측정하였다. 단순히 하이퍼 스레딩 활성화 유무에서는 3초 차이가 있었지만, TMPGEnc 2.53에서 멀티스레드 옵션을 활성화 하면 인코딩 시간은 75초로 대폭 단축이 된다. 만약 2시간 분량의 소스를 인코딩한다고 가정할 때 단순하게 산술 계산만 할 경우에는 2시간 30분이 소요될 것이며 하이퍼 스레딩을 활성화하지 않은 상태에서는 3시간 4분으로 약 34분의 차이가 발생하게 될 것이다.
하이퍼스레딩을 활성화 하지 않은 상태에서는 TMPGEnc의 멀티스레드 옵션을 켜거나 꺼도 측정시간은 92초로 동일하였다. 이는 프로세서에서 멀티스레드를 지원하지 못하기 때문이다.
CPU 점유율을 살펴보면 하이퍼스레딩을 적용하지 않았을 때에는 거의 100% 풀로드가 되지만 하이퍼스레딩을 적용하게 되면(싱글 스레드) 55% 내외가 되기 때문에 다른 작업을 병행해도 작업 시간에 큰 변화가 생기지 않기 때문이다.
뛰어난 성능, 그러나 때를 기다려야..
이번 Intel Pentium4 3.06GHz는 지금까지의 펜티엄4와는 달리 특별한 의미가 있다. 3GHz를 넘었다는 단순한 산술적인 문제가 아닌 클럭만을 높여 성능을 향상시키는 방법이 아닌 새로운 아키텍쳐를 적용시켜 프로세서의 성능을 향상시킨다는 부분을 강조하고 싶다.
지금까지의 테스트 결과를 통해서 대략적이나마 알 수 있듯이 뉴스에서 보도하는 내용과는 달리 그리 비관적인 것만은 아니라 볼 수 있다. 예전 인텔이 SSE 기술을 처음 선보였을 때 이 기술을 이용하면 응용 프로그램의 실행 속도 향상이 있을 것이라 하였지만 실제 체감에서는 느낄 수 없었다. 이유는 응용프로그램에서 SSE를 지원해야만 했기 때문이다. 하지만 하이퍼 스레딩은 멀티스레드를 지원하고 있거나 듀얼 프로세서를 지원하는 응용프로그램이라면 별도의 최적화 과정이 없더라도 성능 향상을 맛볼 수 있기에 더욱 매력적인게 아닌가 한다.
그렇다고 장점일색의 제품인 것은 아니다. 데스크탑 환경에서는 처음으로 선보이는 기술이며 더구나 최고 클럭 제품에 탑재되어 있기 때문에 이 제품의 출시 가격은 80만원 정도($639) 할 것으로 보이며, Windows XP를 제외한 기존의 운영체제를 사용할 경우에는 잘 사용하고 있는 Windows 98/ME/2000을 삭제하고 새로이 설치하거나 업그레이드를 해야 하는 불편함도 있다. MS에서는 Windows XP가 뛰어난 제품이다라고 광고를 하지만 실제 사용자들 모두가 그렇게 여기지 않는다는 것을 염두해 둬야 할 것이다. 이와함께 메인보드 역시 교체를 해야 한다. 이렇게 따지면 하이퍼스레딩을 사용해 보기 위해서는 거의 100만원돈이 추가로 들어갈 것이며 이 정도의 금액이라면 고급형 시스템을 하나 만들어서 별도의 작업을 할 수 있는 정도이다.
그렇기에 하이퍼스레딩이 적용된 Intel Pentium4 3.06GHz의 구매층은 부득이 하게 듀얼 프로세서를 요구하는 사용자나 워크스테이션 급의 시스템을 필요로 하는 작업자 등에게 어울리지 않을까 한다. 하지만 인텔은 Athlon MP를 이용한 듀얼 시스템과의 경쟁도 고려를 해야 할 것이다. 아직은 가격대 성능비에서 불리한 Intel Pentium4 3.06GHz는 세, 네 번 이상의 가격 인하가 있어야 그나마 소비자들이 이 프로세서의 구입을 고려해볼 수 있지 않을까 한다.
|