2009년 6월 1일 월요일

RISC, CISC 비교 및 RISC 의 특징 ( 파이프라인 )

Operating System 2009/05/18 13:41

RISC 프로세서의 특징을 말하기에 앞서 먼저 프로세서의 대표적인 두 가지 아키텍처인 CISC 와 RISC 의 철학에 대해 간단히 이야기해보겠습니다. 결론부터 말하면 CISC 와 RISC 의 철학은 정 반대라고 할 수 있습니다. CISC 프로세서가 하나의 명령어로 최대한 많은 작업을 할 수 있도록 구현된 반면에 RISC 는 명령어 하나당 하나의 연산만을 수행하도록 구현되어 있습니다. 그래서 같은 작업을 하는 데에 있어서 RISC 프로세서는 CISC 의 2배 정도의 명령어가 필요한데 바로 이 점이 두 가지 아키텍처의 가장 큰 차이점이며 이로 인해서 명령어의 길이나 Clock 스피드, 메모리 액세스 방식, 어드레싱, 레지스터 등의 차이점이 발생한다고 볼 수 있습니다.

그럼 이제부터는 RISC 프로세서에 대해 더 자세하게 분석해 보겠습니다. RISC 는 Reduced Instruction Set Computer 의 약자로서 말 그대로 간단한 명령어의 집합으로 이루어진 컴퓨터입니다. 명령어가 간단해지다 보니 명령어들의 동작 또한 간단해져서 자연스레 프로그램을 작성하는데 많은 명령어를 사용하게 되고 프로그램 길이도 길어지며 저장 공간 또한 늘어나게 됩니다. 이러한 RISC 철학이 나타나게 된 배경은 CISC 프로세서로부터 시작합니다. CISC 프로세서는 프로그램을 위한 모든 명령어를 지원하지만 그 중에서 실제로 사용되는 명령어는 10% 이하정도 뿐이었습니다. 그래서 많은 사람들이 ‘쓸데없는 명령어들이 너무 많아! 필요한 명령어들만 모아 놓은 프로세서가 있었으면 좋겠다!’ 하고 생각했다고 합니다. 바로 이러한 생각에 착안하여 개발된 것이 RISC 프로세서이며, HP 에서 1986 년에 RISC 프로세서를 소개했습니다. 초기에는 RISC 프로세서가 CISC 프로세서에서 명령어의 수만 줄어든 개념으로 인식되기도 했지만 CISC 프로세서의 명령어들이 처리하던 것들을 RISC 프로세서의 명령어들로도 처리할 수 있게 되면서 RISC 가 주목받고 발전하게 되었습니다. 그리고 이후에 특정 작업에서 강력한 성능이 요구되는 워크스테이션급의 컴퓨터에서 RISC 칩을 주로 사용하게 된 것입니다.

조금 더 구체적으로 RISC 프로세서가 어떻게 CISC 프로세서보다 빠르게 동작할 수 있는지를 알아보겠습니다. 앞서 말했듯이 RISC 프로세서의 명령어들은 CISC 프로세서의 명령어에 비해 훨씬 간단하며 이는 곧 클럭 주기가 짧아짐을 의미합니다. 복잡한 명령어들이 간단한 명령어들로 나누어지면 더 많은 명령어를 수행해야하기 때문에 비슷할거라고 생각할 수도 있으나 캐시에서 아주 빠른 속도로 명령어들이 수행되기 때문에 RAM 의 사용이 증가하게될 뿐입니다. 분기의 명령을 수행하는 데 하나 이상의 클럭 주기가 필요할 경우가 있습니다. 분기 명령을 수행하기 위해서는 메모리에 접근해야 하는데 이 때문에 지연이 발생하게 됩니다. RISC 프로세서는 분기 명령어 다음에 있는 명령어를 지연시킨 명령어 다음으로 실행시켜서 이런 문제를 해결합니다. 이 때문에 단위 시간동안 낮은 사이클 수를 가지게 되며 메모리 레지스터에 많은 트랜지스터가 존재하게 되는 것입니다.

이번에는 CISC 프로세서에 비해 RISC 프로세서가 가지는 큰 장점 중의 하나인 Pipeline 에 대해 그림으로 설명하겠습니다. 첫 번째 그림은 파이프라인이 적용되지 않은 그림입니다. 두 개의 작업이 CPU 에 입력된 순서대로 이루어집니다. 이렇게 되면 Job1 과 Job2 가 완료되는 시간이 많이 차이나게 됩니다.

두 번째 그림은 파이프라인을 적용한 그림입니다. 파이프라인의 적용 유무와 관계없이 작업이 완료되는 시간은 똑같습니다. 하지만 이 것의 특징은 Job1 이 끝나고 1cycle 시간 후에 바로 Job2 가 끝났다는 점입니다. 수많은 작업을 처리해야 하는 큰 프로그램의 경우 바로바로 작업이 완료되게 되어 효율성이 커지게 되는 것입니다.

이런 과정은 자동차 생산라인이나 세탁소에 많이 비유합니다. 자동차가 생산되기 시작되는 시간은 다소 걸리지만 한 번 생산이 되기 시작하면 짧은 주기로 계속해서 생산이 됩니다. 또한 세탁소로 비유하자면 CISC 세탁소는 하나의 기계로 세탁과 탈수를 모두 하기 때문에 시간이 오래 걸리지만 RISC 세탁소를 세탁과 탈수 기계가 따로따로 있어서 세탁시간이 줄어들게 되는 것입니다.

한 가지 유의할 점은 입력되는 데이터의 크기가 일정해야 파이프라인의 효과가 극대화된다는 점입니다. CISC 프로세서의 명령어들은 길이가 다양하고 복잡하여 이러한 파이프라인을 적용할 수 없는 것입니다. RISC 프로세서의 명령어들은 단순하고 길이가 일정해서 파이프라인을 적용하는 데 있어 최적이라고 볼 수 있습니다.

RISC 프로세서가 무조건 CISC 프로세서에 비해 좋다는 것은 아닙니다. 유저가 CPU 를 선택할 때에 자신이 원하는 용도에 맞춰서 CPU 를 선택하는 것이 제일 중요할 것입니다.

Posted by WebProgrammer2.0 멋진상현

====================

출처: http://park1020.tistory.com/396

댓글 없음: