IT 프로그래밍/컴퓨터구조

[컴퓨터구조] Dapapath

기술1 2024. 12. 11. 20:01
반응형

데이터와 주소를 처리하는 요소가 Dapapath입니다.

 

MIPS의 datapath의 구성요소는 조합논리소자, 순차논리소자로 나뉩니다.

 

pc값이 Instruction memory에 연결이 되어있어서 주소값을 가지고 instruction을 읽습니다.

 

clock 상승에 맞춰서 PC+4가 됩니다.

 

R-Format Instructions 

R-Format 명령어는 MIPS(Microprocessor without Interlocked Pipeline Stages) 명령어 집합 구조(ISA)에서 사용하는 명령어 형식 중 하나입니다. MIPS에는 R-Format, I-Format, J-Format의 세 가지 주요 명령어 형식이 있으며, R-Format는 레지스터 간의 산술 또는 논리 연산을 수행하는 명령어에 사용됩니다.

R-Format 명령어는 총 6개의 필드로 구성됩니다:

  1. Opcode (6비트): 이 필드는 명령어의 동작을 지정합니다. R-Format 명령어에서는 보통 000000으로 설정됩니다.
  2. rs (5비트): 첫 번째 소스 레지스터의 번호입니다. 연산에 사용될 첫 번째 레지스터를 지정합니다.
  3. rt (5비트): 두 번째 소스 레지스터의 번호입니다. 연산에 사용될 두 번째 레지스터를 지정합니다.
  4. rd (5비트): 결과를 저장할 목적지 레지스터의 번호입니다. 연산 결과가 이 레지스터에 저장됩니다.
  5. shamt (5비트): 이동(shift) 연산에 사용되는 비트 수입니다. 이동 연산이 없으면 0으로 설정됩니다.
  6. funct (6비트): 명령어의 세부 동작을 지정하는 필드입니다. 예를 들어, 덧셈, 뺄셈, 논리곱 등의 연산을 구분합니다.

R-Format 명령어는 주로 레지스터 간 연산을 수행하는데 사용되며, 예를 들어 add, sub, and, or 등이 있습니다.

예시:

add $t0, $t1, $t2
 

위의 명령어는 $t1과 $t2 레지스터의 값을 더한 후 그 결과를 $t0 레지스터에 저장하는 명령입니다. 이 명령어는 R-Format 형식에 해당합니다.

 

Branch instructions

  1. 레지스터 operand x 2 읽기
  2. Operand 비교 : ALU 사용
  3. Target address 계산  -Sign extension, Shift left, PC+4에 더하기

 

단일 datapath 만들기

모든 명령어가 한 클럭 사이클에 실행되도록 설계

  • 어떤 자원도 명령어당 두 번 이상 사용될 수 없음 (instruction 메모리와 데이터 메모리의 분리 필요
  • 동일한 자원이 여러 명렁어 지원 (자원의 입력에 여러 개의 연결 허용 -> mux 활용)

단일 사이클 설계 - Control

ALU의 사용 : Y = F(I0, I1)

  • Load/Stor F = add (BASE+OFFSET)
  • Branch F = subtract
  • R-type : F는 funct field에 따라 달라짐

 

enable 신호

  • RegWrite : Register 쓰기
  • MemRead : 데이터 메모리 읽기
  • MemWrite : 데이터 메모리 쓰기

Mux 신호

  • RegDst : Write Register
  • ALUSrc : ALU의 두 번째 입력
  • PCSrc : 다음 pc 값
  • MemtoReg : Write data

 

 

 

반응형

'IT 프로그래밍 > 컴퓨터구조' 카테고리의 다른 글

[컴퓨터구조] Processor1  (0) 2024.12.17
[컴퓨터구조] processor1  (0) 2024.12.17
[컴퓨터구조] CPU 구조  (0) 2024.12.11
[단국대 강의] MIPS 컴퓨터 구조 instruction  (0) 2024.09.29
컴퓨터 응용 분야  (0) 2024.09.06