MEM/WB 질문 있습니다
안녕하세요! 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 사이클이 소모되며, 각 명령어에 따라 소모되는 사이클 수는 다를 수 있습니다.
강의 만료일 연장 신청
0
39
2
강의자료 pdf파일
0
90
2
수강기간변경
0
75
2
프로그램 종류
0
90
1
안녕하세요 강의 도중 궁금한 점 있어서 질문드립니다!
0
87
1
수강기간 변경관련
0
65
2
수강기간 만료
0
72
2
수강 연장 문의
0
72
2
I2C SCL_Synched, SDA_Synched 질문
0
84
1
no data path질문
0
104
3
SRAM 강의 modelsim 시뮬레이션에서 inner 메모리를 Objects 리스트에서 찾으려고 하는데 안보입니다.
0
89
2
DataMem 스펙 질문
0
54
1
Hamming Code 질문
0
67
1
W_CRC 값 질문하기
0
60
1
Precharge에 대한 질문
0
168
1
tpsram spec 질문
0
65
2
학습 관련 질문 있습니다!
0
88
2
[과제7] AXI 통신 프로토콜 설계하기 문의드립니다
0
94
2
SRAM 강의 TB 작성 후 waveform 확인시에 dout이 모두 don't care 처리 관련 질문드립니다.
0
106
5
SRAM Interface Behavior(Diagram) 질문
0
135
3
vivado와 quartus 프로그램의 systhesis 결과 차이에 대해 궁금한 점 있습니다
0
187
2
tool 질문
0
96
2
CDC 메타스태빌리티 질문
0
70
1
SRAM module RTL viewer 이상
0
100
2





