Previous | Next --- Slide 10 of 79
Back to Lecture Thumbnails
msfernan

Just to add a little detail.

The processor has to complete a fetch, a decode and an execute for a particular assembly instruction in order to complete the execution of the assembly instruction.

The fetch, decode and execute instructions for all the assembly instructions on a processor are pipelined.

Thus, after 3 clock cycles at any given point of time, there is one fetch, one decode and one execute instruction executing on the processor even if the fetch, the decode and the execute instruction currently executing may not be the fetch, decode and execute of the assembly instruction currently executing.

Or in other words after 3 clocks cycles, when the execute of an assembly instruction i is executing, the processor running the decode of the next assembly instruction (i+1) and the fetch of the next to next assembly instruction (i+2)

The diagram below is a good visualization

http://image.slidesharecdn.com/unitiiarm7introl-150323003420-conversion-gate01/95/unit-ii-arm-7-introduction-10-638.jpg?cb=1427071051

huehue

What's the difference between a processor and a core?

bpr

@huehue, Processor and core are terms that have become conflated over the years. Before multicore, there was 1 core per package and 1 logical processor per core. We used the terms interchangeably. And for simple designs, this still holds true.

With multicore systems there are many more terms. A processor may mean a physical package, something that you buy and place in a socket. A processor could mean the smallest schedulable unit, such as seeing "processor utilization" from the operating system. A core is often a single unit that contains all of fetch, execute, etc. One set of pictures and definitions can be found here: http://blogs.technet.com/b/winserverperformance/archive/2008/09/13/getting-system-topology-information-on-windows.aspx