본문 바로가기

CS/컴퓨터 구조

파이프 라이닝

파이프 라이닝

- 명령어의 데이터 경로를 세분화, 각기 다른 세부 단계를 동시에 수행 -> 여러 명령어 중첩 수행 가능

 

해저드(결과가 틀림)

-구조적 해저드(하드웨어 동시요구 -> 충돌)

 

-데이터 해저드(다음단계에 필요한 데이터 준비 X)

    -RAR(Read After Read): 문제 없음

    -RAW(Read After Write): 선행명령어가 쓰기전에 읽는 문제

    -WAR(Write After Read), WAW(Write After Write): 선행명령어가 읽거나 쓰기전에 갱신하는 문제 

-명령어 해저드(주로 분기 명령어)

 

해저드 해결방법

-구조적 해저드

    -명령어/데이터 메모리(캐쉬)를 분리하드웨어 추가/분할, 예약표, 입출력포트의 다중화

-데이터 헤저드

    -포워딩(forwarding): ALU 출력이 다시 입력으로 들어가는 Feedback 데이터 경로 생성, MUX로 선택가능

    -컴파일러에서 독립적인 명령어 재배치

-명령어 해저드

    -분기를 예측(골키퍼 알고리즘)

 

공격적 파이프 라이닝

-슈퍼파이프라이닝

    -각 단계의 클럭 주기를 줄여 깊이를 깊게함

-수퍼스칼라(Superscalar): 현대 컴퓨터

    -파이프 라인 여러개 -> 병렬적으로 여러 명령어 동시 수행(하드웨어 지원)

-VLIW(Very Long Instruction Word): GPU

    -여러개의 ALU를 통해 실행단계에서 별도의 실행 장치 -> 병렬성 높임

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

메모리  (1) 2023.02.19
데이터 경로(2)  (0) 2023.02.11
데이터 경로(1)  (0) 2023.02.10
데이터 표현과 연산  (0) 2023.02.08
주소 지정 방식  (0) 2023.02.06