관리 메뉴

100세까지 코딩

[컴퓨터 구조] 명령어 병렬 처리 본문

CS/컴퓨터 구조

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

100세까지 코딩 2024. 2. 21. 11:26
혼공컴운 강의를 참고했습니다.

1. 명령어 파이프라인

  -  동시에 여러 개의 명령어를 겹쳐 실행하는 기법.

 

  • 명령어 처리 과정 : 인출 -> 해석 -> 실행 -> 저장
  • 같은 단계가 겹쳐지지 않으면 '각 단계를 동시에 실행할 수 있다.'

2. 파이프라인 위험

  -  명령어 파이프라인이 성능 향상에 실패하는 경우

 

 ◆  데이터 위험

       - 명령어 간의 의존성에 의해 발생 : 모든 명령어를 동시에 처리할 수 없다.

 

 ◆  제어 위험

       - 프로그램 카운터의 갑작스러운 변화로 인해 발생

 

  • 분기 예측 : 프로그램 카운터가 어느 번지로 갈 것인지 미리 예측.

◆  구조 위험

       - 서로 다른 명령어가 같은 CPU 부품을 쓰려고 할 때 발생

3. 슈퍼스칼라

  -  CPU 내부에 여러 개의 명령어 파이프라인을 포함한 구조

 

 

  • 이론적으로는 파이프라인 개수 ↑ = 처리 속도 ↑
    But, 파이프라인 위험도의 증가로 인해 이론과는 다를 수도 있다.

4. 비순차적 명령어 처리

  -  보통 순차적으로 명령어 처리하는 방식과 달리, 비순차적으로 명령어 처리하는 방식


     

  • 바꿀 수 있는 조건 : 서로 의존성이 없는 명령어만 가능.
    ex) 1,3 순서 바꾸기 X : (3을 수행하려면 M(100) 필요)
           3,6 순서 바꾸기 O : 서로 실행흐름에 영향이 없다.