CPU를 기본 아키텍쳐로 분류할 경우 크게 CISC와 RISC로 나눌 수 있다. 이것은 구조적 측면의 차이로, 어떤 일정한 방법으로 명령어를 처리하느냐에 따라 구분된다. 예전에는 RISC를 단순히 CISC보다 명령어 갯수를 간소화 시킨것으로만 보는 시각도 있었지만 현재에 와서는 그런 개념을 뛰어넘고 있다.
우선 우리가 흔히 접할 수 있는 CISC에 대해서 알아보자. CISC란 Complex Instruction Set Computer의 약자로 확장 명령형 컴퓨터또는 복합 명령 집합 컴퓨터라는 의미로, 복합적인 명령어를 통해서 연산을 하다는 뜻이다. CISC에는 대표적으로 intel의 x86이 있다.
예를 들어 컴퓨터에서 BASIC, JAVA 또는 C 언어로 명령을 주면, CPU에서 그것을 여러 단계로 세분화되어 마이크로 코드(Microcode)라 하는 수행 절차를 걸쳐 처리하게 된다. 그런데, 이런 수행에 있어 좀 더 복잡한 연산에 대응하는 명령어 셋을 추가하는 것이 CISC로, 여러 개의 단순한 명령어 셋으로 명령을 처리하기 보다는 그것들을 포괄하는 연산 셋으로 한 개의 명령어로 처리해 효율을 도모한다는 것이 CISC다. 쉽게 말하자면 프로그램을 복잡하게하는 연산과 기능을 CPU쪽의 하드웨어로 준비해 놓고 간단한 명령으로만 실행시킨다는 것이다.
그러한 구조적인 이유로 CISC는 프로그램에 있어서 편리하다고 생각하는 기능을 차례차례 하드웨어로 실현시켜 왔다. 이것은 기계어를 보다 고급언어에 가깝게 하는 노력이라 볼 수 있다. 따라서, CISC를 대상으로 하는 고급언어의 컴파일러는 비교적 간단하게 실행되는 것이다.
하지만 이런것으로 인한 단점도 있다. 복잡한 기능의 하드웨어는 논리설계가 어려울뿐 아니라, Random Logic(같은 회로의 구조가 적은 회로)이 되기 때문에 LSI 실제의 장치에 있어서 집적화가 상당히 어렵다. 그 때문에 CISC는 소프트웨어에 쉽지만, 하드웨어에는 어려운 아키텍쳐라는 말을 듣는 것이다.
이제 RISC에 대해서 알아보자. RISC란 Reduced Instruction Set Computer의 약자로 축소 명령형 컴퓨터라는 의미로 명령(Instruction)의 종류를 적게 하고, 내부회로를 단순하게 만들어 그 하나하나의 명령을 고속으로 실행할 수 있도록 향상 시킨 아키텍쳐이다. 대표적인 CPU는 intel의 i860시리즈, 모토로라의 M88000시리즈, 선의 SPARC시리즈, NEC의 MIPS시리즈, 컴팩의 Alpha시리즈, HP의 PA-RISC시리즈 IBM의 Power PC 시리즈, ARM의 ARM시리즈, 히타치의 SH시리즈가 있다.
이것은 CISC와는 반대로 기본 명령어 셋을 추구하는 형태이다. 그러나 RISC라고 해서 단순히 명령어를 간소화 시킨 형태로 봐서는 안된다. RISC에서는 컴퓨터에서 주 수행되는 작업을 색출해, 그것에 맞춰 최적화 시켜 만든다. 그러니까 핵심이 되는 작업 항목에 특화시켜 전체적인 속도를 향상시키는 것이다.
한가지 예를 들어, 모든 컴퓨터 작업에 있어서 읽고,쓰는 작업은 항상 포함된다. 일단 데이터를 읽어 들이고 쓰는 과정은 로딩과 스왑으로 항상 생기기 때문이다. 그 과정에 최적화시키면 그 만큼 작업 속도,즉 전체적인 처리 효과를 얻게 되는 것이다. 그러기 위해서는 다른 명령어 셋과는 달리 다른 공정이 필요한데, 요즘에 와선 CISC도 이런 공정을 채용해 단일 사이클에 처리하는 명령어를 많이 갖게되었다.
이런 점을 통해서 RISC와 CISC의 차이를 구분할 수 없게 되었고, 대신 캐시에 따른 차이가 두각을 드러냈다. CISC는 복합적인 명령어를 많이 가지기 때문에, 트랜지스터 직접도가 과다하게 늘어나 캐시의 크기가 작아질수 밖에 없다. RISC에서는 이와는 달리 명령어 체계 단순화를 지향하고, 핵심명령 특화 체제에 있어, 트랜지스터 집적에 여분이 있기 때문에 L1 캐시를 증대시켜 성능을 더욱 증대 시키는 것이다
RISC도 마찬가지로 단점을 가지고 있다. CISC와 반대로 명령어가 적기 때문에 복잡한 명령을 단순한 명령으로 나타내야 하기때문에 프로그램의 크기가 커지고 고급언어의 컴파일도 복잡하게 된다. 그래서 RISC는 하드웨어는 쉬워도 소프트웨어는 어려운 아키텍쳐라고 부른다.
위와 같이 CISC 와 RISC는 반대적인 개념으로 서로의 장점이 단점이 될 수 있는 아키텍쳐이다. 뚜렷히 어느것이 좋다고 말할 수 없다. RISC는 CISC보다 높은 성능을 낼 수 있지만 CISC는 RISC를 클럭 속도로 따라잡고 있다. 이런한 아키텍쳐의 장단점으로 인해 어떤 환경이냐에 따라 사용 용도가 명백히 나눠진다.
CISC는 복합 명령을 가짐으로써 하위 호환성을 충분히 확보할 수 있고 RISC의 경우 효율적인 CPU 구조를 가지고 있다. 다만 CISC는 트랜지스터 집적에 있어서 효율성이 결여되어 있고, 그 결과 성능 향상에 난점을 겪고, RISC의 경우 하위 호환을 위해 에뮬레이션 방식을 채택해야 하고, 일정한 환경에서만 성능을 발할 수 있는 단점이 있는 것이다. 따라서 호환성이 절대적으로 필요한 PC 환경에서는 CISC가, 전문적인 일에 있어서는 RISC가 서로 독보적인 우위에 점하고 있는 것이다.
첫댓글 학교에서 8051을 배우고 있는데여 mcu하고 mpu가 있는데 mpu가 cisc와 risc두개다를 가리키는것인지 cisc만 가리키는것인지 궁금해지네여 ^^;; 제가 현재 알고있는 바로는 mcu가 메인보드에 붙어있는 칩을애기하는것으로(혼자 착각할 확률이 많이 높습니다.) 알고있는데 두개의 궁금증을 해소 시켜주세여 ^^;;
[자료실]->[작성한자료들]->4번자료"MPU와 MCU비교, 데스크탑 PC에 사용된 마이크로컨트롤러"를 참고하시기 바랍니다. 부족하시면 다시 리플주세요^^
참고로 MPU가 Memory Protection Unit으로 쓰일 때가 있지만 MicorProcessor Unit과는 완전히 다릅니다.
많은 도움이 됐습니다. 감사함니다. ^^;;
별말씀을요... 도움이 되셨다니 다행입니다^^