ARM v8 instruction (from COD)
- 64비트로 이동하면서 ARM은 전면적인 정비를 했다.
- ARM v8은 MIPS와 닮아있다.
- v7과 다른점?:
- 조건부 실행 필드(conditional execution field)가 존재하지 않는다.
- Immediate field
- Dropped load/store multiple
- PC가 더 이상 GPR이 아니다.
- GPT set이 32로 확장되었다.
- Addressing mode가 모든 word size에서 동작한다.
- instruction을 나눈다(divide).
- Branch if equal/branch if not equal instruction
MIPS와 거의 유사함
Intel x86 Register
flag register
register 수가 MIPS에 비해서 현저히 적다.
Intel x86 Instructions
RISC에서는 fetch할 때 32bit만 가져오면 됐는데 CISC는 위와 같이 32bit로 고정되어 있지 않다.
그래서 CISC는 고정된 bit를 fetch하는 것이 아니라. instruction buffer라는 곳에 몽땅 다 넣어서 명령어가 몇 bit인지 decode한 후에 명령어를 가져온다(fetch).
MIPS and RISC-V
MIPS와 비교했을 때, RISC-V는 opcode가 뒤쪽으로 가 있다는 점이 다르다.
RISC-V Register Set
Branching
- 순서에 맞지않게 instruction을 실행한다.
- brances 유형:
- Conditional
- branch if equal (beq)
- branch if not equal (bne)
- branch if less than (blt)
- branch if greater than or equal (bge)
- Unconditional
- jump(j)
- jump register(jr)
- jump and link(jal)
- jump and link register(jalr)
RISC-V Function Calling Conventions
- Call Function: jump and link (jal func)
- Return from function: jump register (jr ra)
- Arguments: a0 – a7
- Return value: a0
Preserved Registers
Machine Language
- instruction을 binary로 표현한다.
- 컴퓨터는 오직 1과 0만 이해할 수 있다.
- 32-bit instructions
- Simplicity favors regularity: 32-bit data & instructions
- 4 Types of Instruction Formats:
- R-Type
- I-Type
- S/B-Type
- U/J-Typ
U/J-Type
- Upper - immediate-Type
- Jump-Type
- Differ only in immediate encoding
Review: Instruction Formats
MIPS의 R,I, J와 거의 유사하다.
Compressed instructions
- 16-bit RISC-V instructions
- register 32-bit을 다 쓰지 않아 더 가볍지만 할 수 있는 명령이 제한되기 때문에 microprocessor나 embedded에 사용된다.
- 일반적인 integer 및 floating-point 명령을 16비트 버전으로 바꿉니다.
- 대부분의 RISC-V 컴파일러/프로세서는 32비트 명령어와 16비트 명령어를 혼합하여 사용할 수 있습니다.
- Uses prefix: c.
Compressed Machine Formats
RISC-V Floating-Point Extensions
- RISC-V offers three floating point extensions:
- RVF: single-precision (32-bit)
- 8 exponent bits, 23 fraction bits
- RVD: double-precision (64-bit)
- 11 exponent bits, 52 fraction bits
- RVQ: quad-precision (128-bit)
- 15 exponent bits, 112 fraction bits
Exceptions
MIPS와 마찬가지임 전 포스팅 참조.
[CS 지식/컴퓨터구조] - [컴퓨터구조] 7. MIPS assembly programming(Array etc.)
RISC-V Instructions
MIPS와 거의 같다.