ADVERTISEMENT

쉽게 배우는 마이크로프로세서 구조 [5]

중앙일보

입력

업데이트

이 강좌의 내용은 RISC 아키텍쳐에 초점을 맞추고 있다. 그 이유는 RISC 아키텍쳐가 현재 마이크로 프로세서 설계의 주류이기 때문이다. 그렇다면 우선 RISC가 대체 무얼 뜻하는 말인지는 알고 넘어가야 할 것 같다.

IBM 360이라는 유명한 컴퓨터 이래로 80년대 후반까지 대부분의 프로세서들은 CISC 방식의 아키텍쳐를 채택해왔다. CISC는 Complex Instruction Set Computer의 약자로 내부에 마이크로코드라는 것을 사용하여 인스트럭션을 기초적인 기능들의 모음으로 해석하는 방식을 뜻한다. 마이크로코드는 일종의 펌웨어(Firmware)로 프로세서의 버그를 수정하거나 새로운 명령어를 추가할 때 마이크로코드의 해석부만 수정하면 되었기 때문에 프로세서 설계자와 프로그래머들에게 오랜 세월 사랑 받아왔다.

그러나 1974년 뉴욕 요크타운 소재 IBM 연구소에 재직하던 존 콕(John Cocke)이라는 사람에 의해 대부분의 소프트웨어에서는 전체 인스트럭션 셋에 있는 인스트럭션 중 단지 20%의 명령어가 80% 이상의 일을 처리한한다는 사실을 밝혀냄으로써 불필요한 명령어를 없애고, 대신 모든 명령어를 회로(Hard Wired Logic)로 구현하자는 RISC, 즉 Reduced Instruction Set Computer의 설계 이념이 대두된다. 결국 RISC는 복잡한 제어 로직을 삭제함으로써 설계를 단순화시키고, 이로 인한 실리콘의 여유 공간을 캐쉬나 파이프라인의 제어에 할당하여 CISC에 비해 성능 향상을 도모하게 되었다.

결론적으로 RISC는 파이프라인을 위해 태어난 아키텍쳐라고 할만큼 파이프라인에 적합한 아키텍쳐인 셈이다. 그럼 이제 어떤 면에서 RISC가 파이프라인에 적합한 아키텍쳐인지 알아보기로 하자.

RISC에서는 인스트럭션 셋이 단순하기 때문에 각각의 인스트럭션 실행 과정에 대응하여 1 클럭 사이클에 수행되는 서브 유닛들로 파이프라인을 구성하기 쉽다. 반면 CISC 프로세서에서는 마이크로코드를 사용하기 때문에 인스트럭션의 실행을 1 클럭 사이클에 끝낼 수 없다.

RISC에서는 고정된 길이의 인스트럭션 포맷을 사용하기 때문에 인스트럭션 디코딩과 레지스터 펫치를 동시에 수행할 수 있다. 그러나 CISC에서는 다양한 길이의 인스트럭션 포맷을 사용하기 때문에 인스트럭션 디코딩 과정에서 인스트럭션 디코딩 과정에서 레지스터 펫치를 동시에 수행하는 것이 불가능하다.

RISC에서는 연산을 위한 인스트럭션의 피연산자가 레지스터에 있으므로 유효한 주소를 계산하거나 메모리로부터 피연산자를 읽어올 필요가 없다. 그러나 CISC에서는 연산에서 피연산자가 메모리에 존재하는 경우도 있기 때문에 메모리로부터 피연산자를 읽어오는 과정이 추가되기도 한다.

첫번째 강좌를 접으며…

첫번째 강좌부터 조금 어려운 내용으로 시작한 것 같다. 필자로서도 독자들이 컴퓨터 아키텍쳐에 대한 지식이 거의 없다는 전제 하에 글을 쓰느라 상당히 힘이 들었고, 때문에 내용에 미진한 부분이 많으리라 생각된다. 궁금한 점이나 부족한 점에 대해서는 Q/A 게시판을 통해 문의할 것을 다시 한 번 부탁드리며 첫번째 강의는 이만 접도록 하겠다.

이성희
자료제공:pcBee(http://www.pcbee.co.kr)

ADVERTISEMENT
ADVERTISEMENT