2014-07-01 8 views
1

4 장의 "컴퓨터 조직 및 디자인"책을 읽으면서 단일주기 MIPS 컴퓨터에 대해 설명합니다. 그러나, 나는 그것에 대해 몇 배가있다.단일주기 MIPS 시간 질의 질문

디자인의 데이터 메모리와 명령어 메모리가 SRAM 인 경우, 모든 명령어를 signle clock cycle에서 어떻게 완료 할 수 있습니까? 로드 명령을 예로 들면, 단일 사이클 MIPS 디자인은 여전히 ​​다음 단계를 거쳐야한다고 생각합니다. ID와 EXE 단계 만 병합됩니다.

| 1 | 2 | 3 | 4 | 
| WB |  |  |  | 
|  | IF |  |  |  
|  |  | ID\EXE |  | 
     |  |  | MEM | 

데이터 메모리는 클럭 negedge 갱신되면, ID가 EXE 및 MEM 단이 병합 될 수 있지만 남은 세 단계가 여전히 존재한다.

"단일주기"가 어떻게 작동하는지 설명 할 수 있습니까? 감사!

+0

unpipelined (단일주기) 프로세서에서 프로세서주기 시간은 메모리주기 시간보다 길 수 있습니다. –

+0

그러나 메모리와 레지스터 모두가 posedge 클럭에서만 업데이트하는 경우 프로세서주기 시간이 아무리 길어도 메모리를 읽고 레지스터를 쓰므로 LD 명령을 완료 할 수없는 것처럼 보입니다. – JIE

답변

2

4 장에서 읽은 단일 사이클 프로세서는 실제로 구현할 수있는 것보다 약간 단순화 된 것입니다. 그들은 까다로운 세부 사항 중 일부를 보여주지 않습니다. 예를 들어, 한 가지 타이밍 가정은 메모리 읽기가 조합적이고 mempory 쓰기가 완료하려면 1 개의 긍정적 인면을 취하는 것으로 가정하는 것입니다 (즉, 레지스터 파일과 유사). 따라서 클럭 에지가 도착하면 IF 스테이지에 명령이 채워집니다. 그런 다음 해당주기 동안 디코딩하고 명령을 실행하고 다음 클럭 에지에서 쓰기 되돌림이 발생합니다. 똑같은 데이터 저장소 인 경우 메모리는 다음 클럭 에지에 기록됩니다. 로드가 발생하면 조합 메모리를 읽는 것으로 가정하므로 데이터가 클럭 에지 이전에 도달하고 가장자리에 레지스터 파일에 기록됩니다.

이제는 이것을 구현하는 최선의 방법이 아니며 몇 가지 가정을해야합니다. 메모리 요청을 기다리는 경우 약간 더 현실적인 unpipelined 프로세서에서 다음 사이클로 롤오버 될 실속 신호를 가질 수 있습니다. 따라서 명령/데이터가 도착할 때까지이 사이클을 멈추라는 Stall_on_IF 신호와 Stall_on_LD 신호가 있다고 상상할 수 있습니다. 그들이 도착하면, 당신은 그들을 래치하고 다음 사이클을 계속 실행합니다.

+0

이 장을 읽었을 때이 문제에 의문을 제기했지만 이제는 내가 알고 싶은 모든 것을 설명했습니다. 고마워요! – JIE