반응형
ALU는 3가지 중 하나의 기능을 한다.
- lw/sw 명령어는 메모리 주소를 계산하기 위해 add 연산을 함
- branch 명령어는 두 레지스터 값을 비교하기 위해 subtract 연산을 함.
- R-type 명령어는 6bit funct 필드의 값에 따라 actions을 정함.
우리는 datapath 에서 ALU가 수행할 기능을 결정하는 control unit이 필요하다.
- input(2bits): 이 명령어는 lw/sw , branch-equal, R-type 중 무엇인가?
- input(6bits): R-type인 경우, funct 필드의 값은 무엇인가?
- output(4bits): ALU가 수행하는 기능은 무엇인가?
ALU Control Unit에 2bit의 ALUOp, 6bit의 Funct field를 입력하면 ALU control input이 출력된다.
화살표가 가리키는 곳에서, 실행할 instruction를 얻는다.
signal 정리
신호이름 | Effect when deasserted |
Effect when asserted | ||
RegDst | Write register에 대한 목적 레지스터 번호를 rt필드 (20:16)에서 가져온다. | Write register에 대한 목적 레지스터 번호를 rd필드(bits 15:11)에서 가져온다. | ||
RegWrite | 없음. | Write register 입력의 register에 write data 입력의 값이 기록된다. | ||
ALUSrc | 두 번째 ALU 피연산자를 Read data2에서 가져온다. | 두 번째 ALU 피연산자를 명령어의 sign-extended, 하위 16bits에서 가져온다. | ||
PCSrc | PC = PC+4 | PC = PC + 4 + offset_value * 4 | ||
MemRead | 없음. | 주소 입력으로 지정된 데이터 메모리의 내용이 read data 출력이 된다. | ||
MemWrite | 없음. | 주소 입력으로 지정된 데이터 메모리의 내용이 write data 입력의 값으로 대체된다. | ||
MemtoReg | write data 입력에 공급되는 값은 ALU에서 나온 값이다. | write data 입력에 공급되는 값은 data memory에서 나온 값이다. | ||
반응형
'학교강의필기장 > 컴퓨터구조' 카테고리의 다른 글
컴퓨터구조[14]: Pipelining (0) | 2023.06.22 |
---|---|
컴퓨터구조[13]: Control Unit, Jump (0) | 2023.04.16 |
컴퓨터구조[11]: Execution of Branch Instruction on the DataPath (0) | 2023.04.10 |
컴퓨터구조[10]: Datapath, Datapath Elements (0) | 2023.04.09 |
컴퓨터구조[9]: MIPS 구조 요약 (0) | 2023.04.09 |