학교에서 들은 컴퓨터 구조 강의 내용을 복습하면서 작성한 글입니다.
April 3, 2024 8:04 PM
Instruction Encoding Example
- assembly instructions: addi $t0, $t1, 0x123
- machine code
0010 00 01 001 0 1000 0000 0001 0010 0011 opcode
(명령어 종류)reg 9 reg 8 immediate addi $t1 $t0 0x0123 - 명령어들은 machine code라고 불리는 binary로 encoded 된다
- MIPS instructions: 32bit
- Register number
- $t0 - $t7: 8-15
- $t8 - $t9: 24-25
- $s0 - $s7: 16-23
MIPS R-format Instructions: Register
Bit 31
op | rs | rt | rd | shamt | funct |
6 bits | 5 bits | 5bits | 5bits | 5bits | 6bits |
op 와 funct 을 조합해서 명령해서 명령어 구분!!!
ex) add $t0, $s1, $s2 (rd, rs, rt)
opcode | $s1 (rs) | $s2 (rt) | $t0 (rd) | 0 | add |
0 | 17 | 18 | 8 | 0 | 32 |
000000 | 10001 | 10010 | 01000 | 00000 | 100000 |
000000100011001001000000001000002 = 0x02324020
MIPS I-format Instructions: Immediate
bit 31
op | rs | rt | constant or address |
6 bits | 5 bits | 5 bits | 16bits |
- rs: lw에서는 source, sw에서는 destination
- rt: lw에서는 destination, sw에서는 source
- constant: $-2^{15}$ to $+2^{15}-1$
- address: offset added to base address in rs
- bit extension
- 레지스터에 대한 offset 차이는 ALU를 통해서 이루어진다. 그런데 ALU는 32bit이므로 32bit끼리의 연산만 가능하다.
그러나 offset은 immediate 부분에 저장되므로 16bit이다.
따라서 연산을 위해서는 16bit을 32bit으로 늘려야 한다.
Program Counter
- 현 시점에서 실행되고 있는 명령어의 주소를 저장하는 register
- PC=PC+4 (4씩 증가)
'CS > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] Logical Operations (1) | 2024.06.15 |
---|---|
[컴퓨터 구조] Instructions (0) | 2024.06.15 |
[컴퓨터 구조] SPEC Benchmark & Amdahl’s law (0) | 2024.06.15 |
[컴퓨터 구조] IC 제조 & Performance (0) | 2024.04.27 |
[컴퓨터 구조] 컴퓨터 추상화와 구조 (0) | 2024.04.27 |