LEGv8에서 Data Path 는 레지스터 파일, ALU(Arithmetic Logic Unit), 메모리 및 제어 장치가 결합된 구조로, 각 명령어 실행에 필요한 데이터를 읽고 쓰는 역할을 수행.
- 명령어 인출
- PC(Program Counter): 다음에 실행할 명령어의 주소를 저장하고, 프로그램 실행 중에 순차적으로 증가.
- 명령어 메모리(Instruction Memory): PC로부터 주소를 읽어와서 명령어를 인출.
- 명령어 해독 및 레지스터 읽기 (Instruction Decode & Register Read)
- 명령어 해독: 인출한 명령어의 비트 필드를 해석하여 필요한 작업을 결정. (예: 명령 유형, 레지스터 주소 등)
- 레지스터 파일: 명령어에 정의된 레지스터의 값을 읽어 ALU에 전달. 주로 두 개의 소스 레지스터 값을 읽는다.
- 실행 또는 주소 계산 (Execution or Address Calculation)
- ALU(Arithmetic Logic Unit): 명령어에 따라 산술 연산(덧셈, 뺄셈 등) 또는 논리 연산을 수행. ALU는 R-type 연산의 계산뿐만 아니라, 메모리 접근을 위한 주소 계산에도 사용.
- 메모리 접근 (Memory Access)
- 데이터 메모리(Data Memory): 메모리 명령어(load/store)의 경우, 계산된 주소를 사용하여 데이터에 접근.
- 쓰기 단계 (Write Back)
레지스터 파일 갱신: ALU나 메모리에서 연산 결과가 나오면, 이 값을 목적 레지스터에 저장하여 연산 결과를 유지.

- 파란 부분은 Control Unit이 담당하는 신호이다.