슈퍼스칼라
위키백과, 우리 모두의 백과사전.
|
|
이 문서는 위키백과의 편집 지침에 맞춰 다듬어야 합니다. 더 좋은 문서가 되도록 문서 수정을 도와주세요. 내용에 대한 의견이 있으시다면 토론 문서에서 나누어 주세요. |
슈퍼스칼라(superscalar)는 CPU 내에 파이프라인을 여러 개 두어 명령어를 동시에 실행하는 기술이다. ILP를 최대한 적용하여 실행하면 CPU 처리 속도가 빨라진다.
데이터 의존성, 자원 의존성, 프로시저 의존성이 존재하는 경우에는 동시에 실행되어서는 안 된다.
데이터 의존성 [편집]
- ADD R1, R2, R3 : R2와 R3를 더해서 R1에 저장한다.
- DIV R4, R1, R5 : R1을 R5로 나누어서 R4에 저장한다.
다음과 같은 값이 주어질 때
R1 = 8 R2 = 1 R3 = 3 R5 = 2
두 명령어를 순차적으로 실행하면 다음과 같으며
R1 = 4 R4 = 2
실행 순서를 바꿔 실행하면 다음과 같이
R1 = 4 R4 = 4
R4에 잘못된 결과가 저장된다.
첫 번째 명령어에 의해 값이 정해지는 데이터를 두 번째 명령어에서 읽게 되는 경우에는 두 명령어의 실행 순서가 변경되어서는 안 되며, 이것을 'READ AFTER WRITER 의존성'이라고 한다.
|
병렬 컴퓨팅 |
|
|---|---|
| 일반 | |
| 병렬화 수준 | |
| 스레드 | |
| 이론 | |
| 구성 요소 | |
| 조정 | |
| 프로그래밍 | |
| 하드웨어 | |
| API |
POSIX 스레드 · OpenMP · PVM · MPI · UPC · 인텔 스레딩 빌딩 블록 · Boost.Thread · 전역 배열 · Charm++ · Cilk · Co-array Fortran · OpenCL · CUDA
|
| 문제 |
처치 곤란 병렬 문제 · Grand Challenge · Software lockout · 확장성 · 경쟁 상태 · 교착 상태 · 라이브락 · 결정론적 알고리즘 · Parallel slowdown
|
| 이 글은 컴퓨터에 관한 토막글입니다. 서로의 지식을 모아 알차게 문서를 완성해 갑시다. |