컴퓨터 시스템 구조 9장 연습문제
- 최초 등록일
- 2011.12.02
- 최종 저작일
- 2008.09
- 2페이지/ 한컴오피스
- 가격 1,000원
소개글
컴퓨터 시스템 구조
목차
없음
본문내용
9-9. 컴퓨터에 대하여 여섯 세그멘트 명령어 파이프라인을 수식으로 정의하고, 각 세그멘트에서 수행되는 동작을 명시하여라.
Segment 1 : 메모리에서 명령어를 fetch한다.
Segment 2 : 명령어를 디코딩한다.
Segment 3 : 유효 주소를 계산한다.
Segment 4 : 메모리에서 피연산자를 fetch한다.
Segment 5 : 명령어를 실행시킨다.
Segment 6 : 결과를 적당한 곳에 저장한다.
9-10. 명령어 파이프라인에서 분기로 인한 성능 저하를 최소화할 수 있는 네 가지 하드웨어적인 방법을 설명하여라.
1. 분기 목표 버퍼(branch target buffer, BTB)
- BTB는 fetch 세그멘트에 속해 있는 어소시어티브(associative) 메모리로서 각 메모리 항목은 이전에 실행된 분기 명령어와 그것의 분기 목표 명령어를 저장.
- 파이프라인에서 분기 명령어가 디코드되면 어소시어티브 메모리 BTB에서 그 명령어를 찾아보고, 존재한다면 새로운 경로로부터 명령어를 미리 읽어와 진행을 계속한다. 분기 명령어가 BTB에 저장된다.
2. 루프 버퍼(loop buffer)
- 파이프라인의 fetch세그멘트에서 유지되는 작고 빠른 레지스터들을 가리킨다. 프로그램에서 루프가 있는 경우에 분기를 포함한 모든 것을 루프 버퍼에 저장한다. 따라서 마지막 분기에 의하여 루프가 끝날 때까지 메모리를 참조하지 않고 프로그램 루프를 실행할 수 있다.
3. 분기 예측(branch prediction)
- 조건 분기 명령어가 실행되기 전에 조건의 결과를 추측할 수 있는 별도의 논리가 필요하다. 파이프라인은 예측된 경로를 따라 명령어를 미리 읽어오는데, 예측이 맞았을 경우 분기에 의한 시간의 낭비를 없앨 수 있다.
4. 지연된 분기(delayed branch)
- 대부분의 RISC프로세서에서 사용. 컴파일러가 분기 명령어를 찾아내고, 유효한 명령어를 삽입하여 기계어 코드의 순서를 재배치함으로써 파이프라인이 중단 없이 동작하도록 한다.
참고 자료
없음