VLIW는 컴파일러에 의에 모여진 여러개의 독립적 연산으로 구성된 명령어다
기존 특징들
1. 여러개의 functional units
2. 모든 명령어들은 lock 단계에서 실행된다.
3. 명령어들은 functional units으로 바로 입력되기 위해서 statically하게 모여있다
- 만약에 VLIW 명령어에서 어떠한 연산이 멈추게 되면 모든 명령어가 멈추게 된다.
- In a VLIW machine에서 컴파일러가 모든 종속성 관련 stall을 처리함, 하드웨어가 종속성 검사를 수행하지 않음
- 컴파일러가 ILP(Instrunction level parallelism)을 찾는데 힘든 작업을 한다.
- RISC와 유사한 철학을 갖고 있다. (high-level language code를 단순한 명령어로 변환하는데 힘든 작업을 수행하는 컴파일러를 위해 RISC가 탄생, HW는 translation/decoding을 거의 수행하지 않아서 매우 simple해짐)
- 여기서 Simple하다는 의미는 higher frequency, easy to desing
상업적으로 쓰이는 VLIW Machines
- EPIC(Explicitly Parallel Instruction Computing)
- Instruction format의 bits는 번들의 어떤 명령이 다른 명령에 종속되는지 명시적으로 지정합니다.
Advantages
1. no need for dynamic scheduling hardware -> simple hardware
2. VLIW 명령어 안에서 의존성 검사가 필요없음 -> renaming이 필요없음
3. 다른 functional units에 가져가고 나서 명령어 alignment이 필요없음
Disadvantages
1. 컴파일러는 사이클당 독립적인 연산 N을 찾아야 한다.
2. Recomilation은 execution width, instruction latencies, functional unit change를 요구한다.
3. Lockstep execution은 독립적인 연산을 멈추게 할 수 있다.
'Study Record > Computer Architecture' 카테고리의 다른 글
SIMD Processors (0) | 2022.06.28 |
---|---|
Bottleneck Acceleration (0) | 2022.06.26 |
Systolic Array (0) | 2022.06.26 |