티스토리 뷰

It

명령어 파이프라인

rkaclfakt 2023. 2. 10. 16:14

명령어 파이프라인(Pipeline)
명령어를 실행하는 하드웨어를 여러 단계로 나누고 각각 독립적인 파이프라인 모듈들로 분리
각 단계들에 동일한 클럭을 가하여 동작 시간을 일치

파이프라인 Stall
한 단계(stage)의 기능을 실행하기 위해 한 단계의 시간보다 더 많은 시간이 요구될 때 다른 단계는 수행되지 않고 대기 상태가 돼야 하는 것을 파이프라인 동작이 스톨됐다고 함
Pipeline Hazard
파이프라인 스톨 상태를 만드는 것
I2에서 캐시 미스  I2를 인출하는데 3T 추가 요구
해저드의 발생원인 : 명령어와 데이터 종속성

명령어 종속성
분기 명령어 수행에서 발생
조건 분기 명령어가 있을 경우, 다음 명령어는 조건 분기 명령어 수행이 완료되고 분기 목표를 알 때 까지 인출하지 않음

데이터 종속성
데이터 종속은 명령어 소스 오퍼랜드가 이전의 명령어 수행결과 값에 의존이 있을 때를 데이터 종속성
ADD R3,R1,R2 ; R3 = R1+R2
SL R3 ; R3 = SL(R3), 1 bit shift left
SUB R4,R5,R6 ; R4=R5-R6


read after write (RAW) 해저드 ; 명령어가 이전 것에 의해 만들어지는 데이터를 사용할 때 나타나는 흐름 종속성이다
명령어가 레지스터나 기억장소에 있는 데이터를 갱신하고 후속 명령어가 그 데이터가 갱신되기도 전에 액세스하는 것
A = B + C; D = A + E;
해결: 결과값을 쓰기를 할 때까지 기다려야 한다.
write after read (WAR) 해저드 ; 명령어가 이전 명령어에서 계속 필요한 값에 대해서 새로운 값을 덮어 쓰려고 할 때 나타나는 반-종속성이다
A = B + C; B = D + E;
명령어가 오퍼랜드를 읽기 전에 후속 명령어 가 같은 오퍼랜드를 쓰는 경우 발생
write after write (WAW) 해저드 ; 두 개의 병렬 명령어가 같은 레지스터에 쓰기를 하는데, 이슈된 순서대로 써야 할 경우에 생기는 출력 종속성이다
A = B + C; A = D + E;
오퍼랜드를 쓰기 전에 다음명령어가 같은 오퍼랜드를 쓰는 경우 발생

'It' 카테고리의 다른 글

물류관리론2  (0) 2023.02.12
물류관리론3  (0) 2023.02.11
PHP 쿠키와 세션 (PHP 쿠키 세션)  (0) 2023.01.29
Walkthrough (기술검토회)  (0) 2023.01.28
거래분석  (0) 2023.01.27
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함