Computer Science/CS 컴퓨터구조
[컴퓨터구조]Instruction Set Architeture (MIPS) - 2
LKBaekjoon
2024. 6. 24. 21:26
반응형
Design Principle 4) 좋은 디자인이 좋은 compromise를 만든다
- 다른 포맷들이 디코딩을 복잡하게 만들 수는 있지만, 32비트 instruction은 균등하다.
- 가능한 한 포맷을 유지해야 한다.
반응형
R-format instruction
각 역할은 아래 포스팅에서 자세히 다루고 있으니 따로 기술하지 않겠다.
R-format 명령어의 경우 add, addi와 같은 ALU 연산 명령어들이 속한다.
I-format instruction
- load / store 명령어들이 이에 속한다.
- rt는 목적지 레지스터의 주소 (rd) 혹은 소스 레지스터의 주소로 사용된다.
- constant : -2^15 에서 2^15+1의 값을 가진다 (16비트기 때문)
- address : rs 레지스터 주소에 더해지는 offset 값이다.
Shift Operations
- shamt : 얼마나 쉬프팅할지에 관한 비트 값
- sll
- 왼쪽으로 i비트 밀고 0으로 채운다
- 값에 2^i 만큼 곱하는 결과와 동치이다.
- 왼쪽으로 i비트 밀고 0으로 채운다
- srl
- 오른쪽으로 i비트 밀고 0으로 채운다.
- 값을 2^i만큼 나누는 결과와 동치이다.
- 오른쪽으로 i비트 밀고 0으로 채운다.
AND Operations
- 한 word data 내에서 비트마스킹에 유용하다.
- 예를 들어 몇개의 비트만 선택하고, 나머지는 0으로 마킹할 수 있다
- 0000 0111에서 마지막 비트만 살리고 싶으면, 0000 0001 과 AND 연산을 진행하면
- 0000 0001만 남는다.
- 0000 0111에서 마지막 비트만 살리고 싶으면, 0000 0001 과 AND 연산을 진행하면
OR Operations
- word내에서 특정 비트를 포함시키기에 유용하다.
- 몇 비트를 1로 넣고, 나머지 비트는 unchanged 상태로 유지할 수 있다.
NOT Operations
- word내에서 특정 비트를 뒤집는 데 유용하다.
- MIPS에선 NOR 연산이 제공된다.
- a NOR b == NOT (a OR b)가 성립.
Conditional Operations
- 만약 어떤 특정 조건이 참이라면, labeled instruction으로 분기화 되는 것을 의미한다.
- beq rs, rt ,L1
- 만약 rs와 rt가 같다면, L1이라는 instruction으로 분기하는 것.
- bne rs, rt, L1
- 만약 rs와 rt가 같지 않다면, L1이라는 instruction으로 분기하는 것
- j L1
- 조건 없이 일단 L1이라는 instruction으로 분기하는 것
Branch Instruction Design
- 그렇다면 왜 blt, bgt와 같은 instruction은 없을까?
- blt = branch less than 이라 가정
- bgt = branch greater than 이라 가정
- => 여러 개의 instruction을 합쳐 하나로 만들면 되지 않나? 라는 근본적인 물음
- greater than와 less than과 같이 크기를 비교하는 하드웨어의 속도가 같은지 다른지를 비교하는 하드웨어의 속도보다 느리기 때문이다 !
- 특정 한 instruction을 무겁게 만들어버리면, clock cycle에도 영향을 미친다.
반응형