본문 바로가기
백수/컴퓨터구조

컴퓨터 기초 9

728x90
반응형

CPU 성능을 높이기 위해 멀티코어, 멀티 스레드를 지원하는 CPU를 만드는 것도 중요하지만

CPU가 놀지 않게 작동하게 만드는 것이 중요합니다.

 

명령어를 동시에 처리하여 CPU를 부지런히 작동시키는 기법으로 명령어 병렬 처리 기법 이 있습니다.

 

명령어 병령처리 기법에는 '명령어 파이프 라이닝, 슈퍼스칼라, 비순차적 명령어' 처리가 있습니다.

 

명령어 파이프 라이닝

- CPU의 프로그램 처리 속도를 높이기 위하여 CPU 내부 하드웨어를 여러 단계로 나누어 동시에

  처리하는 기술 입니다.

 

명령어 파이프라인

 - 하나의 명령어가 처리되는 전체 과정을 비슷한 시간 간격으로 나누는 것입니다.

 - 중요 점으로 같은 단계가 겹치지 않는 경우 CPU는 '각 단계를 동시에 실행할 수 있다'는 것입니다.

 

단계

1. 명령어 인출

2. 명령어 해석

3. 명령어 실행

4. 결과 저장

- 단계를 간단하게 그린 그림입니다.

- t1에는 명령어 1,2 동시 처리가 가능하고 t2에는 명령어 1,2,3을 동시 처리가 가능합니다.

 - 명령어를 겹쳐 수행하는 경우 명령어를 단일로 실행하는 것보다 효율적으로 처리가 가능합니다.

 

명령어 파이프라이닝

- 공장 생산 라인과 같은 명령어들을 명령어 파이프라인에 넣고 동시에 처리하는 기법입니다.

단점

 - 특정 상화에서는 성능 향상에 실패하는 경우도 있고 이러한 상황을 '파이프라인 위험'이라 합니다.

 - 파이프라인 위험에는 크게 '데이터 위험, 제어 위험, 구조적 위험'이 있습니다.

 

데이터 위험

 - '데이터 의존성'에 의해 발생됩니다.

 - 모든 명령어들 동시에 처리할 수는 없습니다.

 -  데이터 의존적인 두 명령어를 무작정 동시에 실행하는 겨우 파이프라인이 제대로 작동하지 않는 것입니다.

 

제어 위험

 - 주로 분기 등으로 인한 '프로그램 카운터의 갑작스러운 변화'에 의해 발생합니다.

 - 기본적으로 프로그램 카운터는 '현재 실행 중인 명령어의 다음 주소'로 갱신됩니다.

 - 실행 흐름이 변경된 경우 명령어가 실행되면서 프로그램 카운터 값에 급작스러운 변화가 생긴 경우

    미리 가지고 있던 파이프 라인 명령어를 쓸모가 없어지고 이를 '제어 위험'이라 합니다.

-  이렇게 사용하는 기술 중 하나가 '분기 예측'입니다.

※ 분기 예측 : 프로그램이 어디로 분기할지 미리 예측한 후 그 주소를 인출하는 기술입니다.

 

구조적 위험

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

    부품을 사용하려고  발생되는 경우입니다.

 

 

슈퍼스칼라

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

 - 공장 생산 라인을 여러 개 두는 것과 동일합니다.

- 슈퍼스칼라 구조로 처리 가능한 CPU를 슈퍼스칼라 프로세서, 슈퍼스칼라 CPU라 합니다.

 

비순차적 명령어 처리

 - 명령어 들을 순차적으로 실행되지 않는 기법으로 '합법적인 새치기'라 말할 수 있습니다.

728x90
반응형

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

컴퓨터 기초 12  (0) 2022.12.27
컴퓨터 기초 10  (0) 2022.12.19
컴퓨터 기초 8  (0) 2022.12.10
컴퓨터 기초 7(명령어 사이클과 인터럽트)  (0) 2022.12.07
컴퓨터 기초 6(레지스터)  (0) 2022.12.06