빠른 CPU를 만들어보자!(2) : 명령어 병렬 처리 기법

hongxeob·2022년 12월 23일
0

컴퓨터 구조

목록 보기
7/14
post-thumbnail

시간을 알뜰하게 쓰며 CPU의 명령어들을 처리할 수 있는 방법이 있을까?

명령어 파이프 라인

  • 명령어가 처리되는 과정을 비슷한 시간 간격으로 나누면?
    - 1. 명령어 인출
    - 2. 명령어 해석
    - 3. 명령어 실행
    - 4. 결과 저장
    - 같은 단계가 겹치지만 않는다면 CPU는 각 단계를 동시에 실행할 수 있다.

⚠️ 파이프라인 위험

  • 데이터 위험
    - 명령어 간의 의존성에 의해 생기는 문제
  • 제어 위험
    - 프로그램 카운터의 갑작스러운 변화
  • 구조적 위험
    - 서로 다른 명령어가 같은 CPU부품(ALU,레지스터)를 쓰려고 할 때

슈퍼스칼라

  • CPU내부에 여러개의 명령어 파이프라인을 포함한 구조(오늘날의 멀티 멀티스레드 프로세서)
  • 이론적으로는 파이프라인 개수에 비례하여 처리 속도가 올라가지만 파이프라인 위험도의 증가로 인해, 파이프라인 개수에 비례하여 처리 속도가 증가하진 않음

비순차적 명령어 처리

  • 파이프라인의 중단을 방지하기 위해 명령어를 순차적으로 처리하지 않는 명령어 병렬 처리 기법
  • 합법적인 새치기
  • 의존성이 없는 명령어의 순서를 바꾼다.
profile
걍 하자 저스트 뚜잇

0개의 댓글