인프런 커뮤니티 질문&답변

wwa9981님의 프로필 이미지
wwa9981

작성한 질문수

디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기

32bit CPU 설계와 Through-put 개선을 위한 Pipelining 설계 (Timing 이슈 해결을 위해 어떠한 테크닉을 사용하지는 알아봅시다.)

MEM/WB 질문 있습니다

해결된 질문

작성

·

65

0

안녕하세요! MEM/WB 레지스터에 대해, data memory에서 나온 값과 ALU에서 나온 값의 타이밍에 대해 궁금한 점 있어서 질문 드립니다.

 

EX/MEM 레지스터에서 나온 ALU 연산 결과는 다음 사이클에 바로 MEM/WB 레지스터로 이동하는 것은 이해했습니다.

하지만, Data memory에서 값을 가져오는 경우, EX/MEM에서 Address를 받고 다음 사이클에서 값이 나오고, 그 다음 사이클에 해당 값이 MEM/WB로 이동하여 두 사이클이 걸린다고 생각했습니다.

이러면 data load를 하는 경우는 5 cycle이 아닌 6 cycle이 소모된다고 생각했는데, 이렇게 생각하는 것이 맞는지 궁금합니다. 맞다면, Instruction 별로 소모되는 사이클이 차이가 생길 수도 있는지 궁금합니다.

질문 읽어주셔서 감사합니다!

답변 1

0

안녕하세요! 답변 남겨드립니다!

ALU 연산 결과와 Data Memory 접근 타이밍

1. ALU 연산 결과: EX/MEM 레지스터에서 ALU의 결과는 다음 사이클에 MEM/WB 레지스터로 이동합니다. 이 부분은 맞습니다.

2. Data Memory 접근: Data Memory에서 값을 가져오는 경우, EX/MEM 레지스터에서 주소를 받고, 다음 사이클에 Data Memory에서 값을 읽어옵니다. 이 값은 그 다음 사이클에 MEM/WB 레지스터로 이동합니다. 따라서, Data Memory에서 값을 읽는 경우는 다음과 같은 사이클이 소모됩니다:

- 1 사이클: EX/MEM에서 주소를 Data Memory에 전달

- 2 사이클: Data Memory에서 값이 출력

- 3 사이클: 출력된 값이 MEM/WB 레지스터로 이동

이 경우, Data Load를 수행할 때는 총 3 사이클이 소모됩니다. 따라서, ALU 연산 결과와 Data Memory 접근을 합치면, Data Load 명령은 총 5 사이클이 소모됩니다 (ALU 연산 1 사이클 + Data Memory 접근 3 사이클 + MEM/WB로의 이동 1 사이클).

 

사이클 소모의 차이

- Instruction 별 사이클 소모 차이: 맞습니다. 각 명령어의 특성에 따라 소모되는 사이클 수가 다를 수 있습니다. 예를 들어, ALU 연산은 5 사이클이 소모되지만, Data Load는 5 사이클이 소모되며, Store 명령은 Data Memory에 값을 쓰는 과정이 포함되므로 추가적인 사이클이 필요할 수 있습니다.

결론적으로, Data Load 명령은 5 사이클이 소모되며, 각 명령어에 따라 소모되는 사이클 수는 다를 수 있습니다.

 

wwa9981님의 프로필 이미지
wwa9981
질문자

답변 감사합니다!

wwa9981님의 프로필 이미지
wwa9981

작성한 질문수

질문하기