• IF (Instruction Fetch):
    • 프로그램 카운터(PC)가 현재 실행할 명령어의 주소를 가리킵니다.
    • 해당 주소에서 beq 명령어를 메모리에서 가져옵니다.
    • 가져온 명령어를 PC로부터 읽어 들인 후, PC는 다음 명령어의 주소로 업데이트됩니다.
  • ID (Instruction Decode):
    • 가져온 beq 명령어를 해독하여 두 소스 레지스터($t0, $t1)와 즉시값(Offset)을 추출합니다.
    • 소스 레지스터의 값을 읽어옵니다.
    • 두 레지스터의 값을 비교하여 같으면 분기할 주소를 계산합니다. 분기할 주소는 현재 PC 값에 Offset을 더한 것입니다.
    • 제어 신호가 생성되어 다음 단계로 전파됩니다.
  • EX (Execute):
    • ALU(산술 논리 장치)가 두 레지스터 값을 비교합니다.
    • 두 레지스터가 같으면 ALU 출력으로 true를 생성하고, 분기 주소를 계산하여 저장합니다.
  • MEM (Memory Access):
    • Branch instruction에서는 메모리 접근이 필요하지 않으므로 이 단계는 일반적으로 비워두거나 무시합니다.
  • WB (Write Back):
    • Branch instruction의 경우, WB 단계는 필요하지 않습니다. 대신, 분기가 발생하면 다음 명령어의 주소가 변경됩니다.
    • 만약 두 레지스터가 같다면, PC는 ID 단계에서 계산된 분기 주소로 업데이트됩니다.

 

 

+ Recent posts