IA(Intel Architecture)의 특징
IA는 CISC의 특징과 RISC의 특징을 모두 갖고 있다.
CISC의 특징
- 명령어 길이가 가변적이고, operand의 수 또한 가변적이다.
- 다양한 operand addressing mode가 있다.
- 함수 호출을 stack을 기반으로 한다.
- SIMD를 지원한다.
RISC의 특징
- Micro-operations(하나의 명령어를 다시 세부(마이크로) 명령어로 나누어 pipeline으로 연산한다.)
- Load - Store Architecture
- Independent Multi-units
- Out-of-order execution
- 레지스터를 기반으로한 함수 호출
- Register renaming
Operand Addressing Mode
예제 Base plus Scaled index plus offset addressing
Base Register + Index x Scaled Factor + Displacement(offset)
LOOP:
cmpl $9, %ecx
jg LOOP_OUT
addl 0(%ebx, %ecx, 4), %eax
addl $1, %ecx
jmp LOOP
배열과 같은 연속적인 값 접근에 유리하다.
Multitasking
Time sharing system
task를 번갈아 가며 수행한다(Context switch). 그에 따라 각 task를 어디서 다시 시작해야 하는지 알 필요가 있다.
context switch의 발생 시점은 sleep(wait), blocking I/O, timeout의 경우이다.
- Context save : 수행하던 task의 CPU register 정보를 task structure(memory)에 저장한다.
- Context restore : task structure의 내용을 CPU register에 불러온다.
Hyper threading 물리적인 하나의 core에 두개의 logical processor를 할당한다. cotext switch가 운영체제에 의해 관리되지 않고 CPU 내부에서 관리하는 방식이다.
Memory Alignment
값을 저장할 때 4byte word 단위로 저장하게 된다. 메모리 공간을 다소 낭비하더라도 메모리 접근을 효율적으로 하기 위한 작업이다.
'Domain > 시스템 프로그래밍' 카테고리의 다른 글
4. Process Structure (0) | 2020.03.14 |
---|---|
5. Task Programming (0) | 2020.03.14 |
6. IA Assembly Programming (0) | 2020.03.14 |
8. Optimization (0) | 2020.03.14 |
9. Assembler (0) | 2020.03.14 |