설계 원칙 1 : 간단하기 위해서는 규칙적인 것이 좋다.
덧셈 등의 연산의 피연산자(Operand)는 더해질 숫자 두 개와 결과를 기억할 하나, 즉 세 개의 레지스터를 가지고 있는 것이 자연스럽다.이렇게 모든 명령어가 피연산자를 반드시 세 개씩 가지도록 제한하면 하드웨어가 단순해진다.피연산자의 개수가 가변적이라면 하드웨어가 복잡해진다.
설계 원칙 2 : 작은 것이 더 빠르다
MIPS 에서 레지스터의 크기는 32비트 이다.보통 MIPS 에서는 32비트가 한 덩어리로 처리되는데 이 단위를 워드(Word) 라고 한다.MIPS 에는 총 32개의 레지스터가 있다.레지스터가 많아지면 전기 신호가 더 멀리까지 전달되어야 하므로 클럭 사이클 시간이 길어진다.그러므로 기본적으로는 레지스터를 작게 설계하는 것 만이 전부는 아니다.예를 들어 레지스터를 31개로 한다고 해서 32개보다 빨라지지는 않는다.컴퓨터를 설계하는 엔지니어는 더 많은 레지스터를 원하는 프로그래머와 클럭 사이클을 빠르게하고 싶은 자신의 바램 사이에서 적절한 타협점을 찾아야 할 것이다.
설계 원칙 3 : 자주 생기는 일을 빠르게 하라.
상수나 배열 같은 경우, MIPS 는 메모리에서 읽어와야 한다.특히 상수 피연산자는 자주 사용하므로 상수 필드를 가지는 산술 명령어를 사용하면 매번 메모리에저장된 상수를 가져오는 것보다 프로그램이 훨씬 빨라지게 된다.자주 사용되지 않는 혹은 한참 후에 사용할 변수를 메모리에 넣는 일을 스필링(Spilling) 이라고하는데 이 경우 데이터가 레지스터에 있으면 더 빨리 접근이 가능하다.메모리의 경우 레지스터 보다 접근 속도가 느리기 때문에 레지스터에 저장된 데이터를 사용하면시간이 절약되고 사용이 간편하다.
설계 원칙 4 : 좋은 설계에는 적당한 절충이 필요하다.
무한정 메모리나 레지스터가 주어진다면야 그 보다 좋은 것은 없겠지만 실상은 그렇지 못하다.또한 명령어의 경우에도 빈번하게 실행되어야 하는데 만약 모든 명령어의 길이가 제각각이라면설계원칙의 1에 어긋나기 때문에 MIPS 설계자들은 모든 명령어의 길이와 형식을 같게 하는 절충안을 택하게 되었다.R-Type 명령어 형식을 만들고 이것으로 불충분하기 때문에 I-Type 명령어 형식을 만들었다.하드웨어 설계자는 자신에게 주어진 한정된 자원을 가지고 최적의 성능을 내기 위하여 항상 이상과현실 사이에서 적당한 절충을 통한 설계를 진행하여야 한다.
댓글
댓글 쓰기