[컴퓨터구조] CPU 성능 : 명령어 병렬 처리 ILP

Local Gaji·2023년 6월 17일
0

컴퓨터구조

목록 보기
7/9

대표적인 명령어 병렬 처리기법으로
명령어 파이프라이닝, 슈퍼스칼라, 비순차적 명령어처리 가 있다

🎈 명령어 파이프라인

하나의 명령어를 처리하는 과정을 클럭 단위로 나누면

1. 명령어 인출
2. 명령어 해석
3. 명령어 실행
4. 결과 저장

같은 단계가 겹치지만 않는다면 CPU는 각 단계를 동시에 실행할 수 있다.

하지만 특정 상황에서 성능 향상에 실패하는 경우도 있다.

  1. 데이터 위험 : 명령어 간 데이터 의존성
  2. 제어 위험 : 실행 단계에서 프로그램 카운터의 갑작스러운 변화가 필요할때 (분기)
    • 다음 명령어를 미리 인출할 필요가 없어짐
    • 분기 예측 : 프로그램이 어디로 분기할지 미리 예측한 후 그 주소를 인출하는 기술
  3. 구조적 위험 : 서로 다른 명령어가 CPU 부품을 동시에 사용할 때

🎈 슈퍼 스칼라

CPU 내부에 여러개의 명령어 파이프라인이 포함된 구조
매 쿨럭 주기마다 동시에 여러 명령을 인출/실행할 수 있다. (멀티스레드 프로세서 등)


🎈 비순차적 명령어 처리

프로그램은 위에서 아래로 차례대로 실행되지만, 어떤 명령어는 곧바로 처리되지 않을수도 있다.
이때 그 명령어가 모두 처리될때까지 기다려야 하므로 속도가 느려진다.
-> 바로 처리할 수 있는 명령어를 먼저 실행하여 속도 개선

0개의 댓글