CPU의 Execute (EX) 과정은 명령어를 실제로 처리하고 결과를 생성하는 단계입니다. 이 단계는 CPU 파이프라인에서 중요한 역할을 하며, 연산 유닛(ALU), 멀티플라이어(Multiplier), 분기 유닛 등이 동작하는 곳입니다. Execute 단계의 주요 역할은 연산, 논리 연산, 메모리 액세스, 분기 처리 등을 수행하는 것입니다.

Execute (EX) 단계의 주요 기능

  1. ALU 연산 (산술 및 논리 연산)
    • ALU는 산술 연산(덧셈, 뺄셈, 곱셈, 나눗셈)과 논리 연산(AND, OR, XOR 등)을 처리합니다. 명령어가 연산 명령일 경우, 이 연산은 EX 단계에서 수행됩니다.
  2. 주소 계산
    • 메모리 액세스 명령어(LW, SW 등)에서 주소 계산을 수행합니다. 예를 들어, LW 명령어에서는 베이스 레지스터에 오프셋을 더해 실제 메모리 주소를 결정합니다.
  3. 분기 처리
    • 조건부 및 무조건 분기 명령어가 EX 단계에서 처리됩니다. 이 과정에서 분기가 일어나는지를 판단하고, 분기가 발생할 경우 다음에 실행할 명령어의 주소를 계산합니다.
  4. 포워딩 (Data Forwarding)
    • 이전 명령어에서 계산된 값을 이후 명령어가 필요로 할 때, **데이터 위험(Data Hazard)**을 해결하기 위해 포워딩을 사용합니다. 포워딩은 EX 단계에서 필요로 하는 데이터를 바로 전달하여, 명령어 파이프라인에서 대기 상태가 발생하는 것을 최소화합니다.
  5. 연산 결과 생성
    • EX 단계에서 발생한 연산 결과는 다음 단계인 메모리 액세스(Memory) 단계나 레지스터에 쓰기(WB) 단계로 전달됩니다.

EX 단계의 흐름

  1. **명령어 디코딩 단계(ID)**에서 받은 입력 신호와 레지스터 값이 ALU나 다른 연산 유닛으로 전달됩니다.
  2. ALU는 해당 연산을 처리하고, 결과를 계산합니다.
  3. 연산 결과는 다음 단계인 메모리 액세스 단계나 최종적으로 레지스터에 쓰이게 됩니다.
  4. 포워딩과 데이터 위험 해결이 필요할 경우, EX 단계에서 적절한 조정이 이루어집니다.

관련 설계 고려 사항

  • 파이프라인 위험(Hazard): EX 단계에서는 데이터 및 제어 위험이 발생할 수 있습니다. 이를 해결하기 위해 포워딩, 스톨(Stalling), 브랜치 예측 등이 적용됩니다.
  • 레지스터 파일 및 ALU와의 상호작용: 연산 유닛과 레지스터 파일 간의 데이터 흐름을 최적화하는 것이 EX 단계의 성능을 결정짓는 중요한 요소입니다.

 

* https://cs.middlesexcc.edu/~schatz/csc264/handouts/mips.datapath.html

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

05-5. Write Back(WB)  (0) 2024.09.30
05-4. Memory Access(MEM)  (0) 2024.09.30
05-2. Instruction Decode (ID)  (0) 2024.09.30
05-1. Instruction Fetch(IF)  (0) 2024.09.30
05. CPU 5-Stage Pipeline  (0) 2024.09.30

+ Recent posts