VAMOSS
2024. 9. 30. 08:38
2024. 9. 30. 08:38
- 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 단계에서 계산된 분기 주소로 업데이트됩니다.