1. Instruction Fetch (IF):
    • 명령어 메모리에서 명령어를 가져옵니다. 프로그램 카운터(PC)를 사용하여 현재 실행할 명령어의 주소를 결정하고, 그 주소에서 명령어를 읽어 옵니다.
    • PC는 다음 명령어 주소로 증가합니다.
  2. Instruction Decode (ID):
    • 가져온 명령어를 해독하고, 필요한 레지스터를 읽습니다.
    • R-type 명령어의 경우, opcode를 확인하여 해당 명령어가 R-type임을 인식합니다.
    • 소스 레지스터(예: rs, rt)에서 값을 읽어옵니다.
    • 명령어의 목적 레지스터(rd)도 식별합니다.
  3. Execute (EX):
    • ALU(산술 논리 장치)를 사용하여 계산을 수행합니다.
    • 소스 레지스터에서 읽은 값들을 ALU에 입력하고, 명령어에 지정된 연산(예: 더하기, 빼기 등)을 수행합니다.
    • 결과는 ALU 결과 레지스터에 저장됩니다.
  4. Memory Access (MEM):
    • R-type 명령어는 메모리 접근이 필요하지 않기 때문에 이 단계는 생략되거나 NOP(No Operation)로 처리할 수 있습니다.
    • 만약 R-type 명령어에 메모리 접근이 필요하다면, 이 단계에서 데이터 메모리에 접근합니다.
  5. Write Back (WB):
    • ALU에서 계산된 결과를 목적 레지스터(rd)에 저장합니다.
    • 이 단계에서 레지스터 파일에 쓰기 작업이 이루어집니다.

이 과정을 통해 R-type 명령어가 실행되고, 결과는 지정된 레지스터에 저장됩니다. 각 단계는 별도의 사이클에서 실행되어 파이프라인이 효율적으로 작동합니다.

'CPU ARCHITECTURE1 > CPU' 카테고리의 다른 글

08. CPU DATA PATH - I - Type(Load Instruction)  (0) 2024.09.30
07. CPU DATA PATH - I - Type(Register Write)  (0) 2024.09.30
05-5. Write Back(WB)  (0) 2024.09.30
05-4. Memory Access(MEM)  (0) 2024.09.30
05-3. Execute(EX)  (0) 2024.09.30

+ Recent posts