CPU의 Write Back (WB) 단계는 명령어 실행의 마지막 단계로, 메모리나 ALU에서 생성된 결과를 레지스터 파일에 기록하는 과정입니다. 이 단계는 CPU의 상태를 업데이트하고, 다음 명령어의 실행에 필요한 데이터를 준비하는 데 중요한 역할을 합니다.
Write Back (WB) 단계의 주요 기능
- 결과 레지스터에 쓰기
- ALU 연산이나 메모리에서 읽어온 데이터를 지정된 레지스터에 기록합니다. 예를 들어, LW 명령어로 메모리에서 읽은 데이터는 해당 레지스터에 저장되며, ADD 같은 ALU 연산의 결과도 레지스터에 기록됩니다.
- 데이터 유효성 검사
- WB 단계에서는 데이터를 기록하기 전에, 해당 데이터가 유효한지 검증하는 과정이 포함될 수 있습니다. 이는 데이터 위험을 방지하는 데 도움이 됩니다.
- 레지스터 선택
- 어떤 레지스터에 데이터를 쓸 것인지를 결정합니다. 이 과정은 주로 명령어의 디코딩 단계에서 레지스터 주소를 추출하는 방법에 의해 결정됩니다.
- 파이프라인의 연속성 유지
- WB 단계는 CPU 파이프라인의 연속성을 유지하는 데 중요합니다. 이 단계가 원활하게 진행되면, 다음 명령어가 실행될 때 필요한 데이터가 이미 레지스터에 준비되어 있게 됩니다.
WB 단계의 흐름
- MEM 단계에서 읽은 데이터 또는 ALU 연산의 결과가 WB 단계로 전달됩니다.
- 지정된 레지스터에 결과를 기록합니다. 이 레지스터는 명령어에 의해 결정되며, rd 필드에 정의된 레지스터를 사용합니다.
- WB 단계가 완료되면, CPU는 다음 명령어를 준비하여 파이프라인을 계속 진행합니다.
관련 설계 고려 사항
- 데이터 위험 (Data Hazard): WB 단계에서의 데이터 위험은 주로 Load-Use 위험과 관련이 있습니다. WB 단계에서 데이터가 적절하게 기록되면, 이후 명령어에서 해당 데이터를 사용하는 데 문제가 발생하지 않도록 해야 합니다.
- 레지스터 파일 설계: WB 단계의 효율성은 레지스터 파일의 설계에 크게 의존합니다. 레지스터 파일의 접근 속도와 구조는 WB 단계의 성능을 결정짓는 중요한 요소입니다.
- 비동기적 기록: 일부 설계에서는 WB 단계를 비동기적으로 처리하여 CPU의 파이프라인 성능을 높이는 방법을 사용합니다.
'CPU ARCHITECTURE1 > CPU' 카테고리의 다른 글
| 07. CPU DATA PATH - I - Type(Register Write) (0) | 2024.09.30 |
|---|---|
| 06. CPU DATA PATH - R-Type (Register Write) (0) | 2024.09.30 |
| 05-4. Memory Access(MEM) (0) | 2024.09.30 |
| 05-3. Execute(EX) (0) | 2024.09.30 |
| 05-2. Instruction Decode (ID) (0) | 2024.09.30 |