1. instruction을 구현하는 두 가지 방법
1) sequential implementation
sequential execution(한 instruction이 완전히 끝나야 다음 instruction이 시작하는것)을 그대로 구현한 것
- single cycle implementation : 한 instruction을 한 cycle에 실행하는 것
- multi cycle implementation : 한 instruction을 여러 cycle에 실행하는 것
2) overlapped implementation
instruction 실행이 서로 오버랩 되는 것
2. instruction 종류에 따른 dataflow
5) 특징
- single-cycle implementation에서는 instruction 32bit만으로 control signal들이 어떤 값을 가져야 하는지 알 수 있음. 단, PCSrc는 beq instruction에서 두 register의 값이 같은지 여부에 따라 결정된다.
- state change(register and/or memory)는 clock cycle이 끝나서 falling edge가 발생할 때 진행된다
3. multi-cycle implementation
1) 필요한 이유
- single-cycle implementation에서, instruction마다 필요한 시간이 다른데 한 cycle에 실행되도록 하려면 cycle을 가장 오래 걸리는 instruction에 맞춰야 하기 때문에 비효율적
따라서 cycle time을 작게 해서 각각의 instruction마다 서로 다른 cycle 수를 할당함
- 한 cycle에서 동시에 모든 작업을 하기 때문에 자원을 효율적으로 사용할 수가 없음. 예를 들어, single cycle implementation에서는 ALU와 ADDER가 동시에 존재함. 한 cycle에 두 가지 작업을 해야 하기 때문. multi-cycle에서는, cycle마다 ALU를 서로 다른 작업에 사용할 수가 있음.