테크노아
> 기획&벤치 > 강좌
프로세서 성능 향상 기술
테크노아  |  webmaster@technoa.co.kr
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
승인 2000.02.01  00:00:00
트위터 페이스북 미투데이 요즘 네이버 구글 msn

[프로세서 성능 향상 기술]

인텔, AMD, IDT, RiSE 등과 같이 프로세서를 생산하여 판매하는 회사들은 공통적으로 프로세서의 성능을 향상시키기 위해서 많은 노력을 거듭하고 있으며 각종 기술이 개발되고 있다. 사실 최근에 출시된 인텔의 Itanium(Merced의 공식 명칭), AMD Athlon(AMD K7의 별칭)에는 기본적인 연산 기능이외에도 성능의 향상을 위한 각종 기능들이 내장되어 있으며 그에 따라 프로세서가 보다 복잡하게 구성되어지는 추세이다. 실제로 프로세서의 발전 방향이나 사용하는 기능을 살펴보면 궁극적으로 몇 가지로 요약하여 살펴 볼 수 있다. 또한, 중요한 몇 가지만 이해한다면 현재 출시되고 있는 그리고 앞으로 출시될 프로세서들이 어떤 방향으로 그리고 어떻게 발전하여 어떤 형태를 가질지 알 수 있다. 이를 위한 필수적으로 이해해야 할 성능 향상 기술과 기능을 살펴보도록 하겠다.


8비트에서 64비트로...

8비트 컴퓨터는 8비트 정밀도의 정수 연산을 한번에 처리할 수 있다. 반면에 64비트 컴퓨터에서는 64비트 정밀도를 한번에 처리한다. 외형적으로 64비트 컴퓨터가 8배의 많은 자료를 처리하는 것처럼 느껴지지만 실제로 두 가지의 프로세서는 모두 한번에 한 개의 자료만을 처리하며 단지, 처리할 수 있는 자료의 크기만 다를 뿐이다. 8비트는 -127~+128까지 표현이 가능하며, 문자의 처리에는 유효하지만 일반적인 연산에는 무척 작은 숫자이다. 16비트라 하더라도 -32767~32768 범위의 숫자만을 처리할 수 있으며, 흔히 10만원을 표기하고 싶다면 32비트 이상의 정밀도가 필요하게 된다.

최근에는 32비트 정밀도의 정수 연산이 주가 되고 있으며 일반적인 연산은 모두 처리가 가능하다. 물론, 이것도 큰 숫자라 할 수는 없다. 만약, 전 세계의 인구의 수를 표현하려면 몇 개의 비트가 필요할까? 또한 100년후의 인구를 계산한다면 또한 몇 비트가 필요할까? 이처럼 표현하고자 하는 정밀도가 높아질 수록 높은 비트수가 필요하다. 만약, 32비트 연산을 하는 경우에 32비트 프로세서와 64비트 프로세서는 모두 한번에 한 개의 연산을 처리할 수 있다. 반면에 8비트 프로세서는 8번 그리고 16비트 프로세서는 최소한 3번의 연산이 필요하게 된다.

따라서 동일한 클럭이라 하더라도 계산하고자 하는 정밀도에 따라서 성능은 현저하게 달라질 수 있다. 개인용 컴퓨터에서 필요한 연산은 32비트 수준이면 충분하다. 따라서 8비트, 16비트 그리고 32비트로 컴퓨터가 급격히 향상되었지만 64비트의 등장이 더딘 주된 이유이기도 하다.


보다 빠른 동작 속도

프로세서는 일정한 클럭에 따라서 동작한다. 예를 들어 펜티엄II 300MHz 프로세서에 비하여 펜티엄II 600MHz 프로세서는 두 배의 연산 속도의 차이가 있다. 실제로 10년 사이에 10배 이상의 클럭이 향상되었다. 빠른 클럭으로 동작하게 되면 프로세서의 전력 소모가 현저하게 증가되며 따라서 발열이 심화되게 된다. 결국 프로세서가 손상될 수도 있다. 특히, 프로세서에 각종 고급 기능들이 적용이 되면서 상대적으로 많은 수의 부품들로 구성되기 때문에 더욱 쉽게 손상되게 되며,이를 방지하기 위해서는 낮은 전압으로 동작 시켜 전력 소모를 최소화하는 방법이 유리하다.

결국 반도체를 제작하는 공정 정밀도를 높여야 하며, 실제로 프로세서의 선폭이 486급 컴퓨터에서는 1㎛였지만 최근의 제품들은 0.25/0.18㎛로 1/4로 축소되었으며 동작 속도는 400MHz 이상 구현이 가능하게 되었다. 인텔/AMD에서 출시되는 프로세서 제품군들이 600MHz라는 한계를 가지고 있으며 0.22/0.18㎛ 공정을 사용하여 700MHz 제품도 출시하고 있지만 가격이 상당히 고가라는 것을 알 수 있다. 이것은 반도체 공정이 올라가게 되면 불량율이 현저하게 증가하여 제품의 생산 단가가 급증하기 때문에 경제성을 잃게 되는 문제점이 이어지게 된다. 현재의 프로세서 기술은 2GHz 정도의 제품도 문제없다. 단지, 가격이 문제인 것이다. 예를 들어 펜티엄III 2GHz 제품이 있고 가격이 천만원 정도 한다면 이 제품을 구입하는 사람이 몇이나 될까? 반도체 공정 기술이 발전해감에 따라서 프로세서의 동작 속도도 현저하게 개선이 되겠지만 역시 시간과 돈이 필요한 일이다. 따라서 무작정 동작 속도를 향상 시킬 수는 없으며 이러한 물리적인 제약을 극복하기 위해서는 시간에 따라서 점차적으로 이루어져야 할 일이다.


명령어 실행에 필요한 시간을 줄여라 - 슈퍼 스케일러

100MHz 프로세서는 초당 1억번의 연산이 가능하다. 하지만, 1억개의 명령어를 처리하지는 못한다. 일반적인 기계어들은 수 회의 클럭에 처리가 가능하기 때문이다. 만약, 모든 명령어가 1클럭으로 동작한다면 실제 성능이 현저하게 향상될 것이다. 실제로 동일한 클럭의 486에 비하여 펜티엄이 40% 정도 우수한 성능을 가지고 있고 펜티엄에 비하여 펜티엄II 프로세서가 30% 정도의 높은 성능을 갖는 것도 명령어의 실행에 필요한 지연 시간이 그만큼 작기 때문에 발생하는 것이다. 명령어의 지연 시간을 줄이기 위해서 지금도 인텔과 AMD에서는 피땀 어린 노력을 지속하고 있다.

일반 프로그램이 컴파일러를 이용하여 기계로 번역이 되면 흔히 말하는 실행 프로그램이 된다. 이때, 실행 프로그램의 바이트 단위를 실행 코드라는 용어로 표현한다. 일반적으로 연산 횟수는 초당 몇개의 실행 코드를 처리할 수 있는 지를 의미한다. 실행 코드가 CPU의 내부에서 비록 실행되지는 못하고 몇단계의 처리 과정을 미리 거쳐야 한다. 이것은 프로세서가 복잡한 명령어를 복합적으로 처리하지 못하고 단계로 구분하여 실행하기 때문이다.


명령어입력

메모리에서 명령어를 읽어 들인다

명령어변환

기계어를 마이크로 코드로 변환하다

명령어실행

마이크로 코드를 실행한다

결과송출

결과를 메모리에 저장한다

위에서는 최소한 4단계를 거치고 4개의 클럭이 있어야 동작이 가능하다. 하지만, 각 단계를 독립적인 모듈로 구성하여 독자적으로 실행할 수 있도록 하는 기술이 개발되어 이용되고 있으며, 이 경우에 명령어 실행 유니트가 명령어를 처리하는 순간에 명령어 변환 유니트는 다음에 처리할 명령어를 미리 동시에 번역하는 구조이다. 이것을 슈퍼 스케일러(Super Scalar) 구조라 하며, 이러한 일련의 처리 방식을 Pipe Lining 이라 한다.

이러한 일련의 처리 기법을 이용하여 명령어 수행에 필요한 클럭 수를 줄이고 있다. 간단한 명령어는 간단하게 번역하여 처리할 수 있지만 명령어가 복잡할 수록 변환기의 효율이 떨어지고 실행 유니트와 불균형을 이루게 된다. 따라서 명령어 실행에 필요한 클럭 수가 상대적으로 증가한다. 이를 방지하기 위해서 단계를 보다 세분화하여 여러 단계를 동시에 수행함으로 해서 명령어의 실행 효율을 높이는 방법이 사용되며, 펜티엄 프로세서는 4단계, 펜티엄II는 7단계 그리고 애슬론은 9단계로 구분이 되어져 있다.

단계가 세분화 되고 최적화 될수록 명령어 수행에 필요한 클럭 수를 줄 일 수 있지만 상대적으로 프로세서는 급격히 복잡화되게 된다. 이러한 처리 기법도 1개의 클럭에 명령어 한개는 처리가 사실상 어려우며 단지, 1에 근접할 뿐이다. 일반적으로 2-3개의 클럭 수준으로 근접하였지만 아직도 갈 길은 멀다.


명령어 실행에 필요한 시간을 줄여라 - RISC86

명령어는 크게 RISC(Reduced Instruction Set Computer)방식과 CISC(Complex Instruction Set Computer) 방식으로 구분할 수 있다. RISC 방식은 프로세서에 따라서 필요한 명령어 세트만을 제한적으로 지원하고 명령어의 길이가 일정하게 구성이 된다. 따라서 하위 프로세서와 호환이 되지 않으며 전용 운용 시스템에 전용 소프트웨어를 필요로 한다. 이 경우에 명령어의 길이가 일정하고 명령어의 실행 위치가 미리 확연하게 정해져 있기 때문에 프로그램을 기계어로 변환하는 과정에서 프로그램이 최적화되게 된다.

또한 명령어의 개수가 제한적이고 적기 때문에 프로그램의 최적의 실행을 위한 재배열도 손쉽게 이루어진다. 또한, 기계어를 다른 코드로 변환하지 않고 직접 실행 유니트에서 실행되기 때문에 대부분의 명령어를 1클럭으로 실행하게 된다. 따라서 실행 타이밍은 명령어의 개수를 통해서 쉽게 알 수 있기 때문에 여러 개의 명령어를 동시에 실행할 때 순서를 정하는 스케쥴링이 쉽다.

반면에 CISC 방식은 기본 명령어가 있고 필요에 따라서 뒤에 명령어의 길이를 늘리는 방식으로 명령어를 확장한다. 따라서 하위 호환성을 갖게 된다. 예를 들어 펜티엄용 프로그램은 펜티엄 이상의 프로세서에서는 모두 사용이 가능하다. 하지만, 명령어의 개수가 많고 명령어와 데이터의 길이가 일정하지 않고 가변적으로 구성된다는 문제점이 있다. 따라서 프로그램의 실행 위치는 실제 프로그램이 순차적으로 실행되기 전에는 알 수 없게 된다. 또한, CISC 방식은 명령어의 수준과 길이에 따라서 명령어 변환 과정에 소요되는 클럭 수가 달라지게 되어 프로그램의 실행 타이밍을 정확히 추적하는 것도 어렵게 되며, 실행 타이밍을 정하기도 어렵다. 이처럼 CISC 명령어는 RISC 명령어에 비하여 실행과정도 복잡하고 많은 단점을 가지고 있다.

하지만 왜 일반적으로 사용하고 있을까? 그것은 CISC 명령어는 호환성이 뛰어나다는 점이다. 즉, 상위 프로세서는 하위 프로세서용으로 제작된 프로그램도 모두 사용이 가능하다. 실제로 RISC 계열의 컴퓨터에 비하여 CISC 계열의 컴퓨터용 소프트웨어가 엄청나게 많은 주된 이유가 바로 이것 때문이다. 궁극적으로 사용자는 소프트웨어를 운용하게 되며 많은 소프트웨가 있을 수록 컴퓨터의 사용 환경은 당연히 더욱 유리해진다. 따라서 인텔 계열에서는 CISC를 포기하지 못하고 있는 것이다.

[RISC와 CISC 명령어의 실행 단계 구분]

예로 IBM 호환 컴퓨터는 CISC 명령어 계열이며 파워 맥킨토시는 RISC 계열의 프로세서를 사용하고 있다. 비록 파워 맥킨토시의 프로세서 성능은 동급의 IBM 호환기종에 비하여 30% 이상 우수하며 특히 실수 연산에서는 더욱 큰 차이를 보이고 있다. 하지만, IBM이 주를 이룰 수 있는 이유는 당장 컴퓨터를 구입하고나서 사용할 소프트웨어를 살펴보면 대부분이 IBM 기종이 필수적인 선택이 되기 때문이다. 실제로 과거 DTP, 3D, IMAGING 소프트웨어들이 맥킨토시를 유지하는 뼈대였지만 이미 기득권을 가지고 있는 컴퓨터를 소유한 사용자들 마져도 점차 IBM으로 방향을 전환하고 있으며 특수한 사용자의 경우에 그 명맥을 유지하고 있을 뿐이다.

이처럼 소프트웨어는 하드웨어의 발전을 위한 가장 기초적인 발판이 된다. 따라서 최근에 출시된 고성능의 프로세서들은 CISC 명령어를 마이크로 코드로 먼저 변환하고 RISC 명령어로 다시 변환한다. 변환된 명령어는 여러개의 RISC 명령어 처리기를 이용하여 동시에 처리하게 하면 클럭수가 많아도 명령어 유니트가 많아지면 궁극적으로 1개의 클럭에 근접한 처리가 가능하다. 이를 위해서 펜티엄III에서는 7개의 명령어 처리기가 있으며 애슬론에서는 9개의 명령어 처리를 내장하고 있다.

[관련기사]

테크노아의 다른기사 보기  
폰트키우기 폰트줄이기 프린트하기 메일보내기 신고하기
트위터 페이스북 미투데이 요즘 네이버 구글 msn 뒤로가기 위로가기
이 기사에 대한 댓글 이야기 (11)
자동등록방지용 코드를 입력하세요!   
확인
- 200자까지 쓰실 수 있습니다. (현재 0 byte / 최대 400byte)
- 욕설등 인신공격성 글은 삭제 합니다. [운영원칙]
hesoyam
오래된 내용이지만 좋은 강좌네요 ㅎㅎ
(2013-11-14 04:42:27)
김대방
첫번째 공부할 내용!!!흐흐
(2007-11-13 15:52:12)
민재홍
좋은 강좌입니다~
(2006-04-30 13:44:01)
hope21th
좋은 강좌이네여 좀 도움이
(2001-09-27 16:52:11)
elec94
이태니엄인가 새로나온 프로세서에 대한 설명도 있었으면 하네여
(2001-09-29 03:07:06)
orchid7
자료가 오래되어서 아마 그림 링크를 빼 먹으신듯...
암튼 공부 열심히 하고 있습니다...
그런데 컴퓨터 용어가 나오면 잘 이해 못하기도 하네요...
컴퓨터 용어만 따로 모아 놓는건 없을런지요...^^;

(2003-03-24 22:41:52)
kissof10
내용 무 라는 말인가요?
(2003-02-21 20:40:24)
kissof10
그림도 안보여염
(2003-02-21 20:42:22)
kissof10
ㅠ.ㅠ 몬알아 보겠따.. 여기 내용이 너무 고급유저위주로 되어있는듯 ㅠ.ㅠ
(2003-02-21 20:41:32)
infkdi
기본부터 차근차근 내공을 쌓아야.....
(2002-12-28 21:50:59)
drevil
냉무.
(2002-10-28 17:04:20)
이 기사에 대한 댓글 이야기 (11)
e피플
[e피플] 나이가 대수? 공조냉동기계기능사 필기시험 100점 맞은 NCS교육생
[e피플] 나이가 대수? 공조냉동기계기능사 필기시험 100점 맞은 NCS교육생
나이가 들면 들수록 공부하기가 어렵다는 말이 있다. 더군다나 실업인 상태에서 공부하는 것이라면 부담이 더 클 수 밖에 없다.하지만 이를 비웃듯이 극복하고, 올해 2월 공조냉동기능사...

제호 : 테크노아  |  발행인 : 김필규  |  편집인 : 김필규  |  청소년보호책임자 : 박상규
서울지사 : 서울특별시 구로구 디지털로32가길 18, 7F | 제보 : it@technoa.co.kr
발행소 : 전라북도 전주시 완산구 전룡6길 6 3F | 등록번호 : 전라북도 아00057
등록일자 : 2008년 1월 14일  |  대표전화 : 070-8755-6291  |  FAX : 02-6280-9562
Copyright © 1999-2017 테크노아. All rights reserved. mail to technoa@technoa.co.kr