에피소드
VI: 선형 실행 흐름, reg <- reg OP reg ALU 명령어

RAM에 저장된 reg <- reg OP reg 명령어의 선형 스트림만
실행할 수 있는 아주 간단한 프로세서부터 시작해 봅시다. 설계의 왼쪽
부분에서 NextPC는 항상 PC에 4를 더해서
얻습니다. 가운데 부분에서는 명령어를 RAM에서 가져와 Instr에
저장합니다. 디코더가 두 소스 레지스터와 목적지 레지스터를 추출하여
레지스터 파일로 보냅니다. 레지스터 파일에서 읽은 두 값은 ALU에 입력되며,
ALU는 역시 디코더가 추출한 연산을 계산합니다. 마지막으로 이 값은
레지스터 파일에 다시 기록됩니다.
이를 제어하는 유한 상태 기계는 세 개의 상태로 이루어진 매우 간단한
구조입니다. Instr Fetch가 시작될 때 프로그램 카운터
PC에는 유효한 주소가 들어 있습니다. 다음 상태인
Register Fetch가 시작될 때 명령어가 Instr에
준비되어 있습니다. 두 소스 레지스터와 목적지 레지스터도 준비되어 있는데,
이들은 Instr의 고정된 위치에서 추출한 5비트 워드에 불과하기
때문입니다. Write Back이 시작될 때 두 소스 레지스터와
계산된 값이 준비되어 있습니다(순수한 조합 논리 ALU를 사용하기 때문이며,
더 복잡한 ALU였다면 값이 준비될 때까지 기다려야 했을 것입니다). 그런
다음 결과가 레지스터 파일에 기록되고, PC는
NextPC로 교체됩니다.
(TODO: 테스트벤치와 예제 설계 추가)