어떻게 시간을 알뜰살뜰하게 쓰면서 명령어들을 빠르게 처리할 수 있을까?
명령어 파이프라인
: 순차적으로 명령어를 처리함.
명령어 인출 >> 명령어 해석 >> 명령어 실행 >> 결과 저장
-같은 단계가 겹치지만 않으면 CPU는 각 단계를 동시에 실행할수 있다. >> 동시에 여러 개의 명령어를 겹쳐서 실행
ex>>
명령어 1 인출 >> 해석 >> 실행 >> 저장
명령어 2 인출 >> 해석 >> 실행 >> 저장
명령어 3 인출 >> 해석 >> 실행 >> 저장
명령어 파이프라인이 성능향상에 실패하는 경우, 제대로 병렬처리가 되지 않는 경우 >> 파이프라인 위험이라 함.
파이프라인 위험에는 데이터 위험, 제어 위험, 구조적 위험이 있다.
- 슈퍼 스칼라: CPU내부에 여러개의 명령어 파이프라인을 포함한 구조 (오늘날의 멀티스레드 프로세서)
데이터 위험 명령어 간의 의존성으로 인해 아직 수행되지 않은 명령어의 결과값을 참조함으로써 발생하는 위험.
모든 명령어를 동시에 처리할 수는 없다.
(이전 명령어를 끝까지 실행해야만 비로소 실행 할 수 있는 경우)제어 위험 프로그램 카운터의 갑작스로운 변화로 발생하는 위험. 구조적 위험 서로 다른 명령어가 같은 자원(ALU, 레지스터 등)에 접근함으로써 발생하는 위험
: 이론적으로는 파이프라인 개수에 비례하여 처리 속도가 증가해야 하는데, 현실적으로는 관리해야 하는 파이프라인도 증가를 하고, 파이프라이 위험도의 증가도 있어서 파이프라인 개수에 비례하여 처리 속도가 증가하진 않음.
비순차적 명령어 처리( Out-of-Order Execution, OoOE)
:파이프라인의 중단을 방지하기 위해 명령어를 순차적으로 처리하지 않는 명령어 병렬 처리 기법.
BUT, 아무 명령어가 순서를 바꿀 수는 없다. 전체 프로그램 실행 흐름에 영향이 없어야 함.
728x90
반응형
'컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 ) 메모리와 캐시 메모리 - Ram의 특징과 종류, 메모리의 주소 공간, 캐시 메모리에 대해 알아보자. (0) | 2024.02.08 |
---|---|
컴퓨터 구조 ) 명령어 집합 구조, CISC와 RISC에 대해 알아보자. (1) | 2024.02.08 |
컴퓨터 구조 ) 코어 & 멀티 코어, 스레드 & 멀티 스레드란 무엇인가? (0) | 2024.02.07 |
컴퓨터 구조 ) 레지스터, 명령어 사이클, 인터럽트에 대해 알아보자. (0) | 2024.02.07 |
컴퓨터 구조 ) CPU를 구성하는 구성품 중 ALU와 제어장치에 대해 알아보자. (0) | 2024.02.06 |