VAMOSS
2024. 9. 30. 08:29
2024. 9. 30. 08:29
- IF (Instruction Fetch):
- 프로그램 카운터(PC)가 현재 실행할 명령어의 주소를 가리킵니다.
- 해당 주소에서 명령어를 메모리에서 가져옵니다.
- 가져온 명령어를 PC로부터 읽어 들인 후, PC는 다음 명령어의 주소로 업데이트됩니다.
- ID (Instruction Decode):
- 가져온 명령어를 해독하여 연산 종류를 결정합니다.
- 소스 레지스터의 주소를 읽어 해당 레지스터의 값을 가져옵니다.
- 즉시값(Immediate value)도 해독하여 준비합니다.
- 제어 신호가 생성되어 다음 단계로 전파됩니다.
- EX (Execute):
- ALU(산술 논리 장치)가 소스 레지스터의 값과 즉시값을 사용하여 연산을 수행합니다. 예를 들어, A + immediate 형태의 계산이 이루어집니다.
- 연산 결과가 ALU의 출력으로 생성됩니다.
- MEM (Memory Access):
- I-type 명령어는 일반적으로 메모리에 접근하지 않으므로 이 단계는 무시될 수 있습니다.
- 하지만 예를 들어, lw(load word) 같은 I-type 명령어의 경우, 이 단계에서 메모리로부터 데이터를 읽어올 수 있습니다.
- WB (Write Back):
- ALU에서 생성된 결과 또는 메모리에서 읽은 데이터가 대상 레지스터에 쓰여집니다.
- 해당 레지스터의 주소는 ID 단계에서 결정된 레지스터 주소를 사용합니다.
요약
- I-type 명령어는 주로 즉시값을 활용하여 레지스터에 데이터를 쓰는 구조로 되어 있습니다.
- 파이프라인의 각 단계에서 명령어가 어떻게 처리되는지 이해하는 것이 중요합니다.
- 결과적으로, I-type 명령어는 레지스터에 데이터를 저장하기 위해 IF, ID, EX, MEM(선택적으로), WB 단계를 거칩니다.