가변길이 명령어: 명령어의 종류나 명령어에 포함된 구선요소에 따라 다양한 길이의 명령어 사용
-> 장점: 명령어의 길이 최적화로 프로그램의 크기가 감소, 컴퓨터/연산 특성을 사용하는 명령어 사용 가능
-> 단점: 프로세서 하드웨어 디자인이 어려움. CPU가 힘듦. 어떤 놈은 길고, 어떤 놈은 짧기 때문에 CPU입장에서는 골때림
[비유] 동일한 택배상자들 vs 내용물에 딱 맞는 크기의 택배상자들
-> 공간 측면에서 동일한 택배상자가 비효율적이지만, 모양이 일정하기 때문에
연산 코드 필드 길이: 연산의 개수를 결정
-> 필드가 길면, 여러가지 연산을 할 수 있으니 좋긴 하다. 4bit -> 2^4가지의 연산 정의 가능하다.
-> 만약 연산코드 필드를 4bit에서 5bit으로 늘리면 32개의 연산 정의가 가능하나, 다른 필드의 길이가 감소한다.
오퍼랜드 필드 길이: 오퍼랜드의 범위 결정
-> 오퍼랜드의 종류에 따라 범위가 달라짐
-> 데이터: 표현 가능한 수의 범위 결정
-> 기억장치 주소: 메모리 entry 개수 결정
-> 레지스터 번호: 레지스터의 개수 결정
-> 위 3개를 따질 수 있어야함. 그래야 가장 최적화를 잘 할 수 있음.
[예] 연산부호bit는 8 bit(1B), 메모리주소 bit는 16 bit(2B), 데이터 bit는 32bit(4B)라면?
-> 정의 가능한 연산 갯수는?
-> 표현 가능한 수의 갯수는?
-> 명령어 길이는?
-> 메모리 용량은?