[컴퓨터 구조] 명령어 병령 처리 기법

2024. 11. 20. 23:19·CS/컴퓨터 구조

 


 

1. 명령어 파이프라인

파이프라인은 공장에서의 작업 공정과 유사하다. 공장에서 여러 작업 단계를 나누어 동시에 진행하면 전체 작업 효율이 크게 증가하는 것처럼 CPU에서도 이와 비슷하게 명령어를 처리할 때 다음과 같은 단계를 병렬로 실행한다.

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

명령어 파이프라인 예시

같은 단계가 겹치지만 않는다면 CPU는 위 그림처럼 각 단계를 동시에 실행할 수 있다. 동시에 여러 명령어를 겹쳐서 처리할 수 있다.

 

파이프라인 위험

명령어 파이프라인이 성능 향상에 실패하는 경우를 말한다. 아래 3가지 종류가 있다.

데이터 위험(Data Hazard)

  • 명령어 간의 의존성에 의해 야기
  • 이전 명령어를 끝까지 실행해야 실행할 수 있는 명령어의 경우 병렬로 처리할 수 없다.

제어 위험(Control Hazard)

  • 프로그램 카운터의 갑작스러운 변화, 조건문(분기문) 또는 함수 호출과 같은 제어 흐름 변경으로 인해 다음 실행할 명령어를 잘못 예측하거나 실행할 수 없는 상황일 때 발생한다.
  • 이를 방지 하기 위해 분기 예측(CPU가 분기 결과를 미리 예측하여 명령어를 실행)을 사용한다.

구조 위험(Structual Hazard)

  • 파이프라인 단계에서 하드웨어 자원(예: 메모리, ALU 등)을 여러 명령어가 동시에 사용하려고 할 때 발생한다.

 

2. 슈퍼스칼라

  • CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조이다.
  • 이론적으로 파이프라인 개수에 비례하여 처리 속도가 증가 하지만 현실에서는 파이프라인 위험도 증가로 인해 반드시 파이프라인 개수에 속도와 성능이 비례하여 증가하지는 않는다.

 

3. 비순차적 명령어 처리(Out-of-Order Execution)

  • CPU가 명령어를 프로그램에 작성된 순서대로 실행하지 않고, 실행 가능한 명령어를 우선적으로 처리하여 성능을 최적화하는 기술
  • 전체 프로그램 실행 흐름에 영향이 없는(의존성이 없는) 명령어만 순서를 바꿔 처리한다.
  • 합법적 새치기같은 방법!

 

 

아래 강의를 수강하고 작성한 포스팅입니다.

혼자 공부 하는 컴퓨터 구조 + 운영체제

저작자표시 비영리 변경금지 (새창열림)

'CS > 컴퓨터 구조' 카테고리의 다른 글

[컴퓨터 구조] 메모리의 주소 공간  (0) 2024.11.22
[컴퓨터 구조] 명령어 집합 구조  (0) 2024.11.21
[컴퓨터 구조] 빠른 CPU를 위한 설계 기법  (0) 2024.11.19
[컴퓨터 구조] 하드웨어 인터럽트  (0) 2024.11.18
[컴퓨터 구조] 메모리의 종류  (0) 2024.11.17
'CS/컴퓨터 구조' 카테고리의 다른 글
  • [컴퓨터 구조] 메모리의 주소 공간
  • [컴퓨터 구조] 명령어 집합 구조
  • [컴퓨터 구조] 빠른 CPU를 위한 설계 기법
  • [컴퓨터 구조] 하드웨어 인터럽트
초오오이
초오오이
  • 초오오이
    초이
    초오오이
  • 전체
    오늘
    어제
    • 분류 전체보기 (101)
      • PHP (4)
      • Laravel (7)
      • Vue.js (5)
      • CS (73)
        • WEB (1)
        • 컴퓨터 구조 (12)
        • 운영체제 (24)
        • 네트워크 (24)
        • 자료구조 & 알고리즘 (12)
      • etc (6)
        • 자격증 (3)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
초오오이
[컴퓨터 구조] 명령어 병령 처리 기법
상단으로

티스토리툴바