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

10.명령어 병렬 처리기법

공부를하자 2023. 7. 1. 15:12

1.명령어 병렬 처리기법(ILP: Instruction-Level Parallelism)

 1)정의:  명령어을 동시에 실행시켜 CPU 성능 향상을 시키는 방법.

    대표적으로 명령어 파이프라이닝,슈퍼스칼라,비순차적 명령어 처리

 

2.명령어 파이프라이닝

  1)정의: 명령어 파이프라인에 명령어를 넣고 동시에 처리하는 기법

 

 

 2)명령어 파이프라인 : 효율적인 명령어를 처리하기 위한 구조.

   *파이프 라인: 연속으로 주어지는 어떤 작업을 처리함에 있어 처리율을 높이는 알고리즘 혹은 구조

   -명령어의 처리과정을 나눈다면  아래와 같이 나타낼 있다.

 

   -CPU 실행단계가 겹치지 않으면 아래와 같이 다른 명령어들을 실행할 있다.

  3)파이프 라인 위험(pipeline hazard)

   -명령어 파이프라이닝 기법으로 성능 향상에 실패하고 오류가 발생하는 .

   -종류로 크게 3가지가 있다.

    -데이터 위험(data hazard)

      :데이터의 의존성에 의해 발생하는 위험. 이전 명령어에 완벽히 수행되야

다음 명령어가 올바르게 실행될수 있기 때문에 발생하는 오류.

     

    -제어 위험(control hazard)

      :프로그램 카운터가 갑작스럽게 변화되어 나는 위험.

      이전 명령어때문에 프로그램카운터가 바뀌어 실행준비중이던 명령어들이 필요치 않을 오류

      이것을 해결하기 위해 사용하는 기술 분기예측이 있다.

 

       -구조적 위험(structural harard)

     :명령어들을 겹쳐 실행되는 과정에서 서로 다른 명령어가 동시에 ALU,레지스터 같은 CPU 부품을

      사용하려고 발생. 자원 위험이라고도 부른다.

3.슈퍼스칼라(superscalar)

 1)정의: 여러 개의 명령어 파이프라인을 갖는 구조.

 

 

   - 여러 개의 파이프 라인 구조를 갖음으로써 성능도 높아지지만 위험도 높아진다.

4.비순차적 명령어 처리

  (OoOE:Out-of-Order execution)

  1)정의:의존성 없는 명령어들(순서가 바뀌어도 문제가 없는) 간의 순서를 바뀜으로써

    명령어 실행 효율을 높이는 .

 

    -첫번쨰 그림에서 3번의 명령어은 1번과 2번의 명령어가 끝나야 처리가 가능하다.

     -두번째 그림에서 3번을 아래에 순서를 재배치 함으로써 실행효율을 높인다.