컴퓨터구조 14차시
파이프라인 : 한 명령어가 완전히 끝나기 전에 다음 명령어를 실행. 동시에 여러개의 명령어 실행
5단계.
- fetch instruction
- opcode decoding 하면서 레지스터 prefetch하고
- 실행하던지 주소계산 하던지 하고
- memory reference instruction의 경우 데이터 메모리 access하고
- register에 결과값을 써넣는다.
파이프라인 클락 사이클 타임. 이 중에서 가장 긴 거에 맞춰야 한다.
Pipeline을 채우는데 걸리는 시간, 어떤 output도 없다. fillup time이 지난 다음에는 한 클락에 명령어 하나씩 실행이 끝난다. 엔개의 명령이 실행될 때 엔곱하기 티초 실행이 끝난다.
이론적으로 파이프라인 stage의 갯수만큼의 성능향상을 얻을 수 있다. 실제로는 그렇지 않다 조금 떨어짐.
Pipeline Hazards
그렇지 못하는 상황. 다음 명령어를 못 가져온다. 이런 상황을 통틀어서 hazards라고 한다.
크게 세가지
- structual hazards 파이프라인 구조가 잘못
- data hazards 앞의 명령어의 계산결과를 뒤에 명령어가 사용해야 할 때
- control hazards
5 stages of instruction pipeline
- IF : Instruction fetch
- ID : Instruction decode and register file read
- EX : Execution and address calculation
- MEM : Data memory access
- WB : Write back
2 exceptions to the left-to-right flow of instructions
컴퓨터 구조론 14차시 강의
참고자료
컴퓨터 구조 및 설계 지음 DAVID A.PATTERSON, JOHN L>HENNESSY