파이프 라인
단일 사이클 : 클럭 사이클이 모든 명령어에 대해 같은 길이를 갖는다. 클럭 사이클이 너무 길어서 비효율적.
병렬 처리 : 컴퓨터 시스템 계산 속도 향상을 위해 동시 데이터 처리 기능을 제공.
병렬처리의 방법 - 파이프 라인
다단계 데이터 처리법 : 한 클럭(CPU등의 순차 회로 연산 장치에 가해지는 진동)에 다양한 명령어 수행. 동시 다중 데이터 처리
각 명령어의 실행시간을 개선하지는 못하지만 처리량 개선 가능
세탁, 탈수, 옷 개기, 옷장 넣기를 세탁의 한 사이클로 표현한다.
단일 사이클의 경우 : 한 사이클이 끝나야 다음 세탁물을 세탁 할 수 있다.
파이프 라인의 경우 : 세탁이 끝난 세탁기에 다음 세탁물을 바로 집어 넣게 함으로써 여러 행동을 중첩해서 실행하도록 한다.
파이프라이닝으로 명령어 실행하는데 걸리는 전체 시간
T(시간), k(첫 번째 명령어 실행에 걸리는 주기), 나머지 (N-1)개의 명령어들은 각각 한 주기씩만 소요됨.
T = k+(N-1)
명령어 5개, 명령어 4단계, 한 명령어 처리 시간이 1이라 할 때
일반적 방법 : 1*4*5=20시간 (T = k*n)
파이프라이닝 : 4+1+1+1+1=8시간
20/8 = 2.5배 개선
가장 효율적인 파이프라인의 조건 : 각 단계별 처리 시간이 일정해야한다.
처리 시간이 일정하지 않고 처리 단계가 균등하지 않아서 발생하는 파이프 라인의 지연, 중지 현상을 해저드(Hazard)라고 한다.
해저드
1 : 구조적 해저드
다른 단계에 있는 명령어들이 동시에 같은 프로세서의 자원을 사용하는 상황
해결법
1. 하드웨어/리소스 추가. 하드웨어적 제한을 하드웨어를 늘려 병렬 구성함으로써 해결.
2. 하버드 아키텍처 사용
데이터와 명령어를 각각의 메모리에 분리
3. 메모리 인터리빙
메모리 모듈별로 병렬 접근 수행
4. 지연
nop명령어를 추가하여 파이프 라인 수행을 일시 정지.
2 : 데이터 해저드
해결법
1. 전방 전달 이전 instruction(명령어)에 의해 해당 레지스터의 결과값이 영향을 받는게 문제이므로 수행(EX) 단계에서 계산된 결과를 바로 다음 instruction의 수행 단계로 전달한다.
h/w의 추가가 필요하다.
2. 지연 Nop 명령어 삽입 컴파일러에서 Nop명령어 삽입으로 지 연시킨다.
3 : 제어 해저드
해결법
1. 분기예측
분기를 예측하여 명령어 수행
2. 지연
손실되는 클럭 동안 프로그램에 영향이 없는 다른 명령을 수행 또는 분기 방향이 결정될 때까지 지연
3. 프로그래밍으로 개선
조건분기를 최소화하여 해저드 최소화
'CS 공부 > 컴퓨터 구조' 카테고리의 다른 글
컴퓨터 구조 12 : 캐시 메모리, 가상 메모리, 메모리 관리 하드웨어 (0) | 2022.01.29 |
---|---|
컴퓨터 구조 11 : 메모리 계층 구조 (0) | 2022.01.28 |
컴퓨터 구조 09 : 인터럽트 (0) | 2022.01.22 |
컴퓨터 구조 08 : 명령어 집합, 주소 지정 모드 (0) | 2022.01.22 |
컴퓨터 구조 07 : CPU 디자인, 마이크로 연산과 ALU (0) | 2022.01.21 |