[TIL] 2022.11.29. [Computer Architecture]

2022. 11. 29. 23:51

 

오늘의 컴구 공부.

 

opcode

-> 필드는 항상 6:0의 7비트에 있는데 opcode에 따라서는 funct3 (비트 14:12)필드와 funct7 필드(31:25)가 확장 opcode로 사용된다.

 

R-형식 분기 명령어와 분기명령어의 경우에는 첫 번째 레지스터 피연산자가 비트 19:15에 있는데, 적재/저장 명령어에서는 이 필드가 베이스 레지스터로 사용된다.

 

R-형식 명령어와 분기 명령어의 경우에는 두 번째 레지스터 피연산자가 비트 24:20에 있다. 저장 ㅁ여령어의 경우에는 이 필드가 메모리에 저장될 레지스터 피연산자를 나타낸다.

 

 

간단하기 위해서는 규칙적인 것이 좋다.

 

신호 이름 0 1
RegWrite 아무 일도 생기지 않는다. Write Register 입력이 지정하는 레지스터에 Write data 입력값을 쓴다.
ALUSrc 레지스터 파일의 두 번째 출력이 ALU의 두 번째 피연산자가 된다. 명령어의 12비트 변위가 부호확장되어 ALU의 두 번째 피연산자가 된다.
PCSrc PC + 4 가 새로운 PC값이 된다. 분기 목적지 주소가 새로운 PC 값이 된다.
MemRead 아무 일도 생기지 않는다. Address 입력이 지정하는 데이터 메모리 내용을 READ data 출력으로 내보낸다.
Memwrite 아무 일도 생기지 않는다. Address 입력이 지정하는 데이터 메모리 내용을 Write data 입력값으로 바꾼다.
MemToReg ALU 출력이 레지스터의 Write data 입력이 된다. 데이터 메모리 출력이 레지스터의 Write data 입력이 된다.

 

입력이 두 개인 멀티플렉서의 1비트 제어신호가 인가 되면 멀티플렉서는 1번 입력을 선택한다.

그렇지 않고 제어가 인가되지 않으면 멀티플렉서는 0번 입력을 선택한다.

상태 소자는 모두 클럭을 입력으로 가지고 있으며 클럭은 쓰기를 제어하는 데 사용된다는 것을 기억하라.

클럭을 상태소자 외부의 게이트에 연결하면 타이밍 문제를 일으킬 수 있다.

BELATED ARTICLES

more