컴퓨터 구조 - 지연 제어 프로그래밍 TIP

지연 전송 제어란 뭐냐??

Berkeley RISC는 애초부터 pipelining으로 설계되었습니다.

특히나 명령어 fetch의 overlapping과 함께 실행되면서,
조건부 점프, 무조건 점프, 프로시저 호출과 같은 반환되는 형태의 전송 제어 명령어로 방해를 합니다.

파이프라인에서 flushing(취소) 대신에 하나의 사이클을 낭비하는데 비해,
RISC는 delayed-branch 구조를 사용한다는 특징이 있지요.

중요한 특징은 바로 이것인데,
컴파일러를 통해 충돌 문제를 해결하는 것으로 데이터 충돌(data hazard)을 감지하고,
의미 없는 NO-Operation(0 + 0과 같은 의미 없는 연산) 명령을 사용하여
충돌된 데이터의 참조가 지연되도록 명령어를 재배치하는 것입니다.

이로서 컴파일러는 분기 명령 전후의 명령어를 분석하여 지연된 부분에
유용한 명령어가 삽입 되도록 프로그램 순서를 재배치합니다.


이런 지연 제어를 위한 명령어는 load와 store와 같은 주소 모드로 사용하며,
PC의 값을 레지스터에 저장해 놓습니다.


※ 데이터 해저드 발생 이유
1. 컨트롤 해저드 -> 이때 분기
2. 데이터 해저드
3. 리소스 해저드




공유하기 버튼

 

트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://minamjun11.egloos.com/tb/75985 [도움말]

덧글

댓글 입력 영역



통계 위젯 (화이트)

105777
3066
158110