2012-11-13 3 views
1

컴퓨터 구성 및 디자인 : 데이터 전달의 하드웨어/소프트웨어 인터페이스에서 4.7 절을 읽습니다. 이 책에 제공된 예에서 레지스터 파일 전달이 있습니다 (이는 책 example과 정확히 일치합니다)레지스터 파일 전달 MIPS

왜 등록 파일 전달이 필요합니까? 레지스터의 데이터는 시계의 첫 번째 절반에 쓰여지고 두 번째 절반에 읽혀 지므로 전달하지 않고 안전해야합니다.

왼쪽 위의 음영은 Reg으로 쓰여지고 오른쪽에서 읽음을 의미합니다.

감사합니다.

답변

1

Figure 4.53 of Computer Organization and Design, (c)2009 Elsevier

당신은 포장 마차를 방지하기 위해 파일 전송을 등록해야합니다.

당신은 밀접하게 (and $12, $2, $5가) $2를 등록 사용하는 데 필요한 두 번째 명령을 보면,하지만이 아니었다면 이전 명령 (sub $2, $1, $3)에서 계산 된 값은 따라서 클럭 사이클 5에 레지스터 파일에 다시 기록 얻을 것이다 레지스터 파일 전달 때문에 두 번째 명령어는 레지스터 $2이 쓰여질 때까지 실속해야합니다. 포워딩은 명령어 1의 ALU 연산 결과와 명령어 2의 ALU 연산에 대한 첫 번째 인수 사이에 하늘색 선으로 표시됩니다.

마찬가지로 세 번째 명령 (or $13, $6, $2)도 마찬가지로 $ 2를 사용해야합니다 실제로 첫 번째 명령에 의해 레지스터 파일에 다시 기록됩니다. 따라서 다시 말하면, 스톨 (stall)을 방지하기 위해 레지스터 전달은 세 번째 명령어의 인수로 첫 번째 명령어의 결과를 사용하는 데 사용됩니다.

한편, 네 번째 명령어 (add $14, $2, $2)는 파이프 라인 레지스터 전달을 사용할 필요가 없습니다. 첫 번째 명령어의 결과가 사이클 5의 첫 번째 절반에서 다시 쓰여지고 따라서 내용이 이미 업데이트되어 있으므로 네 번째 명령에서 필요합니다.