<aside> 💡 선 요약 싱글사이클과 멀티사이클 방식의 차이 ALU 합치기 Register Sequencing Micro-code controller: control 을 구현하는 방법
</aside>
싱글 사이클은 하나의 inst마다 하나의 cycle을 배정받아 single-cycle이다.
싱글 사이클에서 각 연산에 대한 실행 시간은 다음과 같다.

그렇다면 single-cycle에서는 최소 600ps에 한 cycle을 돌려야 하므로
모든 동작이 600ps마다 실행될 것이다 → 느리다!

그렇다면 각 동작을 수 사이클로 쪼개면 어떨까? 즉 type마다 시간이 다 똑같이 걸리는 것이 아닌 type마다 시간이 다르게 흘러 빨리 실행될 것은 빨리 끝내버리는 식이다.
또한 Programmer-visible state 업데이트(PC 바꾸기, reg 바꾸기, mem 바꾸기)는 모든 연산이 끝난 후에 PVSWriteEn 시그널을 1로 켜서 바꾼다.


FSM으로 나타내면 다음과 같다.

IF: Instruction Fetch (인스트럭션 읽기); 4 cycle
ID: Instruction Decode (인스트럭션 값 레지스터에 넣기); 1 cycle
EX: ALU 실행하기; 2 cycle