미국의 최신 컴퓨터 동향은 RISC로

미국의 최신 컴퓨터 동향은 RISC로
미국의 최신 컴퓨터 동향은 RISC로

컴퓨터의 세계 중에 우리가 잘 알지 못하는 것도 참 많습니다. 그중에 대중적으로 잘 알려진 것 중 하나가 바로 딥 웹과 같은 것입니다. 우리가 사용하는 인터넷은 일반적으로 사용 가능하게 만든 브라우저에서 지원하는 것만 볼 수 있는데 딥 웹이라고 불리는 곳은 우리가 보는 곳의 99퍼센트가 넘는다고 합니다.

RISC란

Reduced lnstruction Set Computer라는 이름에서도 느낄 수 있듯이 RISC는 명령어를 줄인 것 이상의 의미를 가지고 있다. 원래 RISC 구조는 소프트웨어와 하드웨어의 기능을 최대한 살리기 위한 기술로 업계에서는 비상한 관심을 가지고 있는 새로운 설계방식이다. 사실 RISC 구조의 완벽한 정의를 아직까지도 내리자 못하고 있지만 현재 제품화된 RISC 칩의 다양함을 볼 때 하드웨어의 설계자들은 칩 내에 여러 가지 기능들을 필히 집적시켜 넣어야 된다는 생각은 갖고 있지 않다. 한 예로 신 마이크로 시스템 사의 SPARC는 최소한의 필요한 회로만 집적시기고 기준의 프로세서에 집적시킨 부동소수점 연산회로나 메모리 관리 회로를 제외시키고 있어 시스템 설계자가 재량껏 변경시킬 수 있도록 고려하고 있다. SPARC란 Scalable Processor Architecture의 줄인 말이다. 더욱이 나누기나 곱하기 연산 회로를 제외시킨 소프트웨어 상의 헬퍼를 이용하도록 설계되어 있어 최대한 단순화하도록 노력하고 있다. 이와는 대조적으로 모토로라 사의 88000은 투 칩 RISC 개념을 사용하고 있는데 여기에는 부동소수점 연산과 캐시 메모리를 가진 별도의 페이지 메모리 관리 회로를 내장하고 있다. IBM사의 새로운 RISC구조를 채택한 POWER(performance Optimization With RISC)도 부동소수점 연산회로와 페이지 메모리 관리 회로를 내장하고 있는 복잡한 구조를 가지고 있다. 또 MIPS사의 R3000은 단일 칩에 여러 가지의 기능을 집적시키고 있다. 그러나 부동소수점 연산과 같은 복잡한 기능들은 외부의 보조 프로세서로 사용하도록 하고 있다. 이러한 차이점들이 나타남에도 불구하고 대부분의 RISC 칩은 공통적인 시장 영역을 분할하고 있다. RISC 구조에서 가장 중요한 요소는 CISC(Complex Instruction Set Computer) 구조의 인텔 80486에서와는 달리 마이크로 코드를 이용하고 있다는 것이다. 대부분의 CISC 칩은 내장된 마이크로 코드라 불리는 로우 레벨 펌웨어에 의해 어셈블리 언어로 작성된 명령어 코드를 번역한다. 이러한 마이크로 코드는 명령을 실행시킬 로우 레벨 하드웨어를 제어하게 되는데 이와는 달리 RISC 칩은 직접 하드웨어에서 각 명령들을 직접 실행시키게 된다.

마이크로 코드

비록 마이크로 코드는 명령어 세트를 만들기 위해 CISC 설계에 유연성을 요구하지만 어셈블리어 명령을 번역하기 위해 마이크로 코드의 실행과정은 하드웨어 상에서 직접 실행되는 것보다 속도가 매우 느리게 된다. RISC와 CISC 칩의 또 다른 차이점은 시스템의 메인 메모리를 액세스하는 방법에 있다. 사실 메모리 상에서 처리하는 방법은 데이터를 외부로부터 받아와 처리하는 방법보다 훨씬 빠르다. 이들 두 시스템의 설계자들은 성능 향상을 위한 기술로 CPU와 메인 메모리 간에 고속 캐시 메모리를 설치하는 방법을 공통적으로 이용하고 있다. 캐시 메모리는 시스템의 성능향상에 중요한 역할을 하는 것은 사실이지만 아주 간단한 프로그램에서만 효과적일 뿐이다. 더욱이 캐시는 아직도 램상에서 실행되는 온 칩 레지스터보다는 느리다. 한편 고속의 메모리 액세스를 위해 캐시 메모리에 완전히 의존하는 방법 대신 RISC 구조는 가능한 메모리 액세스를 피하는 방법을 이용하고 있다. RISC는 초고속의 메모리 액세스를 위해서는 메모리 액세스를 하지 않는 것이다라는 개발 철학을 가지고 있다.

RISC의 개발 철학

또 RISC 하드웨어 및 소프트웨어는 이러한 철학을 바탕으로 개발되어지고 있다. 그러므로 RISC 칩에는 CISC 칩보다 훨씬 많은 소프트웨어 레지스터를 내장하고 있다. 한 예로 인텔의 80486 계열의 칩은 6개의 범용 레지스터를 가지고 있지만 RISC 구조를 기초로 한 모토로라 사의 88000 칩은 24개의 범용 레지스터를 가지고 있고 선 마이크로 시스템 사의 SPARC 칩에는 32개를 가지고 있다 이와 같은 CPU 내의 레지스터는 마치 고속의 캐시와 같은 역할을 하는데 이는 각 애플리케이션에 따라 처리 속도가 달라지게 된다. RISC 칩의 명령어 세트는 약간의 메모리 액세스 명령을 가지고 있는데 종종 메모리로부터 데이터를 로드하거나 레지스터의 내용을 메모리로 저장시킬 때 각각 한 개의 명령어를 가지고 있다. 또 나머지의 명령어는 레지스터 내에서 또는 명령이 자체로 실행된다. RISC나 CISC 중 어떠한 컴퓨터라도 기계의 성능을 높이기 위해서는 좋은 컴파일러가 필요하다. 그러므로 명령어가 적고 편리한 명령어 세트를 제공함으로써 RISC를 기초로 한 컴퓨터의 컴파일러는 CISC에서 메모리를 사용하던 방법과는 달리 많은 중간 결과 값을 레지스터에 넣음으로 인해 많은 이득을 얻고 있다. 또 RISC 구조에서 채택된 또 다른 기술은 선 마이크로 시스템 사의 SPARC 칩에서 채택한 메모리 액세스를 피하는 방법으로 레지스터 윈도를 삽입하였다. SPARC 칩은 대규모의 레지스터 영역을 칩 상에 집적시켜 윈도 상에 24개의 레지스터가 나타나며 이들은 애플리케이션 소프트웨어에 의해 액세스가 가능하다.

또 프로시듀어는 레지스터 윈도를 레지스터 뱅크에 겹쳐 써넣는 방법을 사용하고 있다. RISC 칩은 시스템을 단순화시키거나 성능을 향상사기는 기술로 사용되고 있다. 워드 단위의 데이터와 명령어들은 여러 가지 일들을 동시에 처리하기 위한 독립적인 실행 단위들과 명령어를 더욱 효율적으로 실행시키기 위해 수행과정을 지연시킬 수 있으며 이러한 기능 중 많은 부분은 컴파일러에 의해 기능이 개선된다. 이와 같이 RISC칩의 최종적인 기능은 완벽한 하드웨어와 좋은 컴파일러의 지원에 의하여 이루어질 것이며 이것이 RISC 컴퓨터를 최상의 성능을 발휘할 수 있도록 하는 최선의 방법이다.

우리가 알고 있는 컴퓨터의 세계와는 다른 차원의 기사였던 것 같습니다. 이처럼 컴퓨터가 명령을 어떤 방식으로 실행할 것이냐는 지금의 시대에서는 이미 표준화가 이루어진 영역이지만 컴퓨터가 개발되고 보급되던 시기에 얼마나 컴퓨터의 소프트웨어와 하드웨어들이 명령을 실행할 수 있는 효율적인 능력을 갖출 수 있을까 고민하던 시기에는 여러 방법이 연구되었던 것 같습니다.

Leave a Comment