801 컴퓨터
801 컴퓨터의 시작은 전자식 전화 교환기용 프로세서 설계에서 시작되었다. 전화선을 전자식으로 연결하는 일이므로 복잡한 수학 계산은 고려할 필요가 없었고 단위 시간당 최대한 많은 작업을 처리하는 것이 목표였다. 결국 프로세서의 사이클 시간을 최대한 줄이고 파이프라인의 깊이를 최대한 키울수록 유리했다.
1970년대에 마이크로프로세서가 막 시장에 등장하기는 했으나 고성능 컴퓨터용으로는 아직 부족했다. 고성능 컴퓨터에서 클럭의 최대 속도는 프로세서 회로의 복잡도에 좌우되었다. 입력 신호에 의해 출력 신호가 결정되는 회로가 여럿 있을 터인데 몇 개의 단품 소자를 거치는지가 중요했다. 신호의 경로에 있는 소자의 개수가 많아질수록 그만큼 지연시간이 늘어난다. 클럭clock을 사용하는 회로에서는 이 지연시간이 한 클럭의 길이를 결정한다. 따라서 이 지연시간이 길어질수록 클럭이 느려질 수밖에 없었다.
RISC
그래서 존 코크는 회로를 단순화하고 파이프라인을 단순화하기 위해서 메모리에 있는 데이터를 직접 사용하는 산술논리연산을 완전히 없애버렸다. 따라서 산술논리연산은 레지스터에서만 발생하며 메모리에 있는 데이터에 뭔가 산술논리연산을 하려면 무조건 해당 데이터를 프로세서의 레지스터로 가져오게 했다. 앞에서 예로 들었던 어셈블리어 코드
ADD @100 200 R1
는 801 컴퓨터에서 다음과 같이 수정되어야 한다.
LOAD @100 R1
ADD 200 R1
결과적으로 기계어 명령어의 구조가 간단해지면서 기계어 명령어(즉, 어셈블리어 명령어)의 종류가 확 줄어들었다. 존 코크는 이 방식에 특별한 이름을 붙이지 않았는데, 후에 캘리포니아 대학교 버클리의 연구팀이 RISC(Reduced Instruction Set Computing)라는 이름을 붙였다.
위의 예에서 전자의 경우는 CISC(Complex Instruction Set Computing)라고 부르기도 한다.
RISC는 기계어 명령어 구조가 간단하기 때문에 프로세서 구조를 최적화할 수 있는 반면에 프로그램을 구성하는 기계어 코드의 개수는 증가한다. RISC의 성능은 컴파일러에 크게 좌우된다.
답글 남기기