100세까지 코딩
[컴퓨터 구조] 명령어 병렬 처리 본문
혼공컴운 강의를 참고했습니다.
1. 명령어 파이프라인
- 동시에 여러 개의 명령어를 겹쳐 실행하는 기법.
- 명령어 처리 과정 : 인출 -> 해석 -> 실행 -> 저장
- 같은 단계가 겹쳐지지 않으면 '각 단계를 동시에 실행할 수 있다.'
2. 파이프라인 위험
- 명령어 파이프라인이 성능 향상에 실패하는 경우
◆ 데이터 위험
- 명령어 간의 의존성에 의해 발생 : 모든 명령어를 동시에 처리할 수 없다.
◆ 제어 위험
- 프로그램 카운터의 갑작스러운 변화로 인해 발생
- 분기 예측 : 프로그램 카운터가 어느 번지로 갈 것인지 미리 예측.
◆ 구조 위험
- 서로 다른 명령어가 같은 CPU 부품을 쓰려고 할 때 발생
3. 슈퍼스칼라
- CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조
- 이론적으로는 파이프라인 개수 ↑ = 처리 속도 ↑
But, 파이프라인 위험도의 증가로 인해 이론과는 다를 수도 있다.
4. 비순차적 명령어 처리
- 보통 순차적으로 명령어 처리하는 방식과 달리, 비순차적으로 명령어 처리하는 방식
↓
- 바꿀 수 있는 조건 : 서로 의존성이 없는 명령어만 가능.
ex) 1,3 순서 바꾸기 X : (3을 수행하려면 M(100) 필요)
3,6 순서 바꾸기 O : 서로 실행흐름에 영향이 없다.
'CS > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] 빠른 CPU 설계 (0) | 2024.02.21 |
---|---|
[컴퓨터 구조] 명령어 사이클과 인터럽트 (0) | 2024.02.19 |
[컴퓨터 구조] 레지스터 (0) | 2024.02.19 |
[컴퓨터 구조] ALU와 제어장치 (0) | 2024.02.19 |
[컴퓨터 구조] 명령어 구조와 주소 지정 방식 (0) | 2024.02.19 |