Computer Science/Computer Architecture

[Computer Architecture] Datapath

LeeJaeJun 2024. 2. 29. 12:12
728x90
반응형

Datapath

  • 컴퓨터 아키텍처에서 처리 장치 내부에서 데이터가 이동하는 경로
  • 프로세서 내부의 구성요소들 사이에서 데이터가 이동하는 방식과 처리되는 방식을 포함
  • 레지스터, 산술 논리 장치(ALU), 제어 장치 등으로 구성

 

Sequential Elements

  • 데이터를 보관하는 용도로 사용
  • Register
    • 저장될 값을 업데이트하는 시점을 결정하기 위해 clock signal을 이용
    • Edge-triggered: Clk(clock 신호)이 0에서 1로 바뀌는 순간 내부의 값이 update
  • 입력값이 바뀔 때가 아니라, Clock 신호가 0에서 1로 바뀌는 시점의 입력값이 output에 반영됩니다.

clk는 clock을 입력으로 받음

  • 즉, Clock edge에서 입력값이 무엇인가에 따라서 sequential element 값이 변경되고, 그에 따라 output 값이 다르게 출력되는 구조
  • 하지만 이렇게하면 clock마다 레지스터의 값이 바뀔 수 있기 때문에 write control을 사용하여 write control이 1일 때만 register 값을 변경하도록 설계되어 있습니다.

Write control 포함

 

Storage Element - Register File

  • 32개의 레지스터로 구성
    • 2개의 32-bit output bus
    • 1개의 32-bit input bus
    • register 0은 항상 0으로 고정되어 있습니다.(hard-wired)
  • read register number 1, read register number 2, write register에 의해서 어떤 레지스터가 선택될 것인지 결정됩니다.

Register File

  • Register number는 몇 번 레지스터를 읽을 지를 입력으로 받습니다.
  • Read data1에서는 Read regsiter number1에 해당하는 레지스터의 값이 나오고, Read data2에서는 Read register number2에 해당하는 레지스터의 값이 나옵니다. (operand를 2개 필요로 하는 명령어들을 위해 2개까지 읽을 수 있도록 하는 것임)

Two Read Ports
Write Port

 

Storage Element: Idealized Memory

  • 이상적인 메모리 구조
    • 데이터가 들어오는 한 개의 Input Bus
    • 데이터가 나가는 한 개의 Output Bus
  • Address는 데이터가 써질 메모리 주소를 선택합니다.
  • Write Enable이 1일 때만 쓰기가 발생하도록 합니다. (이때만 address가 memory를 선택)
  • Memory에 써질 값은 Data In bus를 통해 들어와서 써집니다.
  • Clock Input(CLK)
    • 메모리도 일반적으로 clock을 공급받습니다.
    • Clock signal에 의해서 data의 read/write를 제어합니다.

Idealized Memory

 

Five-Stage Datapath

1. Instruction Fetch(IF)

Instruction memory인 IMEM을 이용해서 PC로부터 32-bit instruction을 읽어옵니다. 즉 명령어를 메모리에서 가져와 명령어 레지스터에 로드합니다.

 

2. Instruction Decode(ID)

32-bit instruction을 해석해서 어떤 명령어인지 알아내는 역할을 합니다. RegFile을 이용해서 register들로부터 데이터를 읽어옵니다. 가져온 명령어를 해석하여 어떤 연산을 수행할지 결정합니다.

 

3. Execute

해독한 명령어의 내용에 따라서 명령어를 실행합니다.

 

4. Memory

필요한 경우, 데이터를 메모리에서 가져오거나 메모리에 데이터를 저장합니다.

 

5. Register Write

연산 결과를 레지스터에 저장합니다.

728x90
반응형