[컴퓨터구조론] CISC , RISC 장단점 비교
CISC(Complex Instruction Set Computer)
모든 고급언어 문장들에 대해 각각 기계 명령어가 대응되도록 하는것
RISC(Reduced Instruction Set Computer)
CISC의 많은 명령어중 주로 쓰이는것만을 추려서 하드웨어로 구현하는 것
이것이 핵심 개념인데요..
구체적으로 장단점을 따져보겠습니다.
CISC의 단점이자 RISC의 장점은
CISC의 경우 하드웨어의 회로가 복잡해져서
RISC에 비해 가격이 비싸지고 발열이 많고 전력소모가 많게 됩니다.
CISC는 고급언어의 컴파일러의 번역과정을 간단하게 해줍니다.
여기까지는 명확한데요..
속도를 가지고 얘기를 하려면 복잡해 집니다.
X=(A+B)*(C+D)
이러한 기능을 수행하는 코드를 각 머신으로 작성한다고 했을때
(CISC) ADD R1,A,B R1<- M[A]+M[B] ADD R2,C,D R2<- M[C]+M[D] MUL X,R1,R2 M[X]<- R1 * R2 (RISC) LOAD R1,A R1<-M[A] LOAD R2,B R2<-M[B] LOAD R3,C R3<-M[C] LOAD R4,D R4<-M[D] ADD R1,R1,R2 R1<-R1+R2 ADD R3,R3,R4 R3<-R3+R4 MUL R1,R1,R3 R1<-R1*R3 STORE X,R1 M[X]<-R1
즉, CISC 각각의 명령어는 머신코드는 길지만 전체 프로그램 사이즈는 RISC보다 작습니다.
따라서 코드를 수행할 때 RISC가 메모리를 더 많이 참조해야 하므로....
[CISC가 RISC보다 빠른 요인이 됩니다.]
CISC는 복잡한 하드웨어를 가지게 되므로 보통 hard wired방식 보다는 microprogram 방식을 사용하게 됩니다.
RISC는 hard wired 방식을 사용할 수 있습니다.
[RISC가 CISC보다 빠른 요인이 됩니다.]
CISC는 레지스터의 양이 많을 필요가 없고 RISC는 레지스터의 양이 많아야 하므로....
(예>함수에 파라미터를 메모리에 저장하는 경우와 레지스터에 저장하는 경우의 차이)
CISC가 메모리의 access가 많아지게 됩니다.
[RISC가 CISC보다 빠른 요인이 됩니다.]
RISC머신이 파이프라인구현이 용이하다라고 합니다..
(이 부분은 명령어 길이가 동일하기 때문에.. 그런것인가요?
정확한 이유를 모르겠습니다. 설명부탁드립니다.)
[RISC가 CISC보다 빠른 요인이 됩니다.]
각 요소요소를 분석해봤을때 전체적으로 RISC머신의 속도가 빠르다고 봐야 하나요?
자료를 찾아보면.. 장단점을 부분부분 정리를 해놨는데요..
속도 측면에서보면.. CISC도 빠르다고 하고
RISC도 빠르다고 합니다.
상대적으로 따져서 어느 기반 CPU가 더 빠르다고 해야 하나요?
설명부탁드립니다.
여기 참고해 보세요...
http://cse.stanford.edu/class/sophomore-college/projects-00/risc/whatis/index.html
작년에 관심이 많아서 좀 봤는데요. 아마 답을 얻을 수 있을겁니다^
요즘은 다 RISC라고 보시면 됩니다.CISC인 CPU들(x86계열이
요즘은 다 RISC라고 보시면 됩니다.
CISC인 CPU들(x86계열이라던가)도 전부
내부적으로는 RISC 명령으로 전환 후
파이프라인에 넣습니다.
RISC가 아무래도 클럭 올리기가 쉬우니까요. :roll:
리스크의 경우, 한 명령당 실행 클럭이 짧고 거의 모든 명령의 길이가 동
리스크의 경우, 한 명령당 실행 클럭이 짧고 거의 모든 명령의 길이가 동일한 점이 중요하게 작용하지 않을까요?
* 1 명령 당 1클럭의 구현....실시간 시스템을 만들때, 각 머
* 1 명령 당 1클럭의 구현....
실시간 시스템을 만들때, 각 머신 명령의 사이클까지 계산해야하는 경우가 있는데, 특정 프로시져의 실행시간이 예측가능하다면 좋을 것입니다.
리스크가 유리하겠지요.
답변감사합니다.^^
......
RISC가 태어나는 발단은...일반적으로 사용되는 프로그램 코드의
RISC가 태어나는 발단은...
일반적으로 사용되는 프로그램 코드의 95%가 CISC Instruction Set의 2%만을 사용한다는데서 출발한것입니다. (이걸 논문으로 발표한 애들이 결국 ARM으로 상용화 하죠)
대개의 Compiler 제작사들이 CISC의 Instruction Set들을 잘 사용하지 않은 결과였죠. 결국 그들의 게으름(?)은 RISC를 만들었고, RISC는 Compiler 만들기의 어려움을 증가 시켜서 Compiler만드는 애들에게 벌(?)을 내리죠. ㅋㅋㅋ
처음 RISC가 만들어질 때의 결론은... ASM으로 작성한다면야, 둘 차이를 잘 못 느낄 수도 있겠지만, High Level 언어를 사용한다면 RISC가 훨씬 효율적이라는 것이었죠.
단순한 RISC 아키덱쳐에 기인한... 추후의 나머지의 어마어마한 장점들은 위에서 다른분들이 설명해 주셨네요.^^;
[quote="Anonymous"]* 1 명령 당 1클럭의 구현....
어짜피 파이프라이닝에 분기예측 들어가시면 정확한 예측은 ;)
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
댓글 달기