오래 못 할 짓 하지 않기

[ 컴퓨터 구조 ] 5. Single Cycle 제어부 본문

2학년 2학기/컴퓨터 구조

[ 컴퓨터 구조 ] 5. Single Cycle 제어부

쫑알bot 2023. 7. 4. 13:35
728x90

Control 제어부

 

0:09 / 1:09

주황색으로 되어있는 신호들이 우리가 필요한 Control 신호들이다. 

 

- 이 기능들을 하나로 모아놓고, 들어온 Instruction 에 따라 필요한 기능들만 내보내도록 만든 회로가 그다음 사진이다.

  이 Control 은 Instrction의 가장 왼쪽 6 bit 즉, OP코드를 분석하여 필요한 제어 신호들을 내보낸다.

 

- 그 밑에 ALU Control이라는 4-bit 짜리 제어 장치도 따로 있는데, 이거에 대한 입력은 2bit이다.

   2bit라도, 경우의 수는 3개만 있다  →  Sw Lw / BEQ / 그 외 산술 연산

  • Sw Lw 일 때 → ALU는 주소 계산하는 역할 (덧셈 필요)
  • BEQ 일 때    → ALU는 브랜치 여부를 판단 ( 뺄셈 필요 > Rs - Rt )
  • 나머지 일 때는 → OP코드 외 그 뒤 Function Instruction (오른쪽 15bit) 를 보고 어떤 연산을 할지 정함.
    R format 

 

 

4:48

RegDst ( Register Destination ) - Write Register 를 위한 주소가 rt에서 오느냐 rd에서 오느냐 ( 0,1 로 나뉨)

RegWrite ( Register Write ) - 0일 땐 아무 일도 없고, 1일 때만 Write Register , data 를 가지고 수행한다. 

 

 


ALU Control

 

7:36

ALU Control에 대한 연산은 OP Field(=Code)보다 Function Field가 더 중요하다.

위 사진에 나와있듯이 OP Field는 모두 같은데 Function Field 에 따라서 연산이 달라지는 걸 볼 수 있다.

사실 그 Function Field에서는 뒤에 4개만 보면 된다.

 

 

 

11:25

  • ALU OP = 00 일 때 : Lw or SW 이므로 (Function field 상관 X) , ALU가 할 연산은 add = 0010
  • ALU OP = 01 일 때 : BEQ 이므로 (Function field 상관 X), ALU가 할 연산은 branch equal 판단
    = subtract = 0110
  • ALU OP = 10 일 때 : 그 외 연산을 하므로 Function field에 따라 작업을 한다. = R format
    (하나하나 적기 번거로우니 사진으로 보자)

ALU OP = ALU Control의 입력

Function Field = ALU Control 의 추가 입력

 

ALU operation = ALU Control의 출력 

 

 

 

13:03

add (R-Format) 를 한다고 가정해 보자

  • 연산의 결과는 Rd로 가기 때문에 RegDST = 1
  • ALU가 상수가 아니라 Register 값을 읽어야 하므로 ALUScr = 0
  • 연산 결과가 메모리를 통과하고 Register로 가야 하기 때문에 Memto-Reg = 0
  • Write 하기 때문에 RegWrite 1
  • Memory 에 대해서는 읽고 쓰는 게 없기 때문에 0
  • BEQ처럼 Branch 명령어가 아니기 때문에 Branch 0
  • R-Type 연산이기 때문에 10

이 진리표를 다루는 법은 다양함. 논설에서 배웠음.

 

++ ADD를 여러 개 쓰고 Memory 도 Instruction,Data 나누는 이유는??

→ 한 CLK ( Single Clock Cycle ) 에 다 끝내기 위해서 ( 각자 해야 하는 덧셈이 다 다르기 때문)

 

 

++CLK 주기는 The Longest Path에 맞춘다.
→ 이럴 경우에는 많이 복잡한 걸 만들면 효율성이 떨어져 낭비가 심해진다

     + 일찍 끝나는 애들은 노는 시간이 길어진다. = 긴 주기동안 일하지 않는 놈들이 많다. = 낭비

→ 해결법 : Multiple CLK Cycle

 

출처 : 한동대 SW중심대학