<aside>
💡 선 요약
RISV-V ISA 구조
인스트럭션 포맷 (R-Type, I-Type, …)
콜러 콜리
</aside>
Components of ISA
- Data Types
- Memory Model
- Programmer Visible State
- General Registers
- Memory Space
- Program Counter
- Processor Statu
- Instruction Set
- Instructions and formats
- Addressing Modes
- Data Structures
- System Model
- States
- Privilege
- Interrupts
- IO
- External Interfaces
General Instruction Classes
- Arithmetic, Logical Operations
- add, sub, and, or
- int와 float으로 구분
- fetch operands from specified locations
- compute a result as a function of the operands
- store result to spacified loc
- update PC(Program counter) to next inst
- Data Movement Operations
- move, load, store
- fetch operands from specified locations
- store operand values to specified loc
- update PC to next inst
- Control Flow Operations
- branch, jump
- fetch operands from specified locations
- compute branch condition and target address
- if true PC←target address
else PC←next inst
Atomicity of Instruction
모든 instruction은 완벽히 실행되거나 완전히 실행되지 않아야 한다.
부분적인 상태가 programmer visible state에 나타나면 안된다!
Ex. Early ISA: EDSAC

누산기 하나와 ALU, 메모리로 이루어져 있다.
주소가 instruction에 하드코드 되어 있다
→ 반복 접근, 루프 등에서 다른 위치 접근이 안된다

그렇다면 하드코드된 주소의 값을 바꾸자! → 레지스터
E R로 써놓고, R을 n1, n2, 이렇게 바꾸면 해결
RISC and CISC