Electronic – single cycle vs multicycle datapath execution times

computer-architecturemicroprocessor

I have a question where I need to calculate the execution time for a program for single cycle and multicycle datapath. I think I may be doing it incorrectly since the multicycle execution time is longer than the single cycle.

So for single cycle the cycle time is 3.7ns with the longest step being 1.1ns.

So if I just have three instructions lw, and, or. For single cycle each instruction will be 3.7 x 3 = 11.1ns.

For the multicycle datapath lw = 5 steps, and = 4 steps and or = 4 steps therefore 5+4+4 = 13, 13 x 1.1 = 14.3ns. Which is slower than the single cycle. Am I doing something wrong or is this just something that happens ?

Best Answer

Each step of a multicycle machine should be shorter than the step in a singlecycle machine. Still you may get a longer total execution time adding all cycles of a multicycle machine. The only performance advantage of the non-pipelined multicycle machine is that execution times for instructions don't have to be equal (in a singlecycle machine execution time of all instructions equal the execution time of the worst case instruction) but some instuctions can be executed in shorter time than others. On the average, however, you don't win much.

So you may wonder why bother about multicycle machines?

The answer is: In teaching (and learning) computer architecture multicycle machines are introduced as a preparation for pipelined multicycle machines which will bring the performance improvement you expect.

Those non-pipelined mutlicycles machines are rather an instrument of teaching. Nobody would build them an try to sell them as they are more complex and in most cases not much more performant than singlecycle machines. They help, however, understanding pipelined machines.