12.07.2015 Views

EE4455: Tutorial 3 1. Survey the differences between fixed-function ...

EE4455: Tutorial 3 1. Survey the differences between fixed-function ...

EE4455: Tutorial 3 1. Survey the differences between fixed-function ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

The vector instruction generally operates on longer sets of inputs. It canalso operate on longer operands. The vector unit may require specializedregisters and may require more time to fill and empty <strong>the</strong> pipeline.3. Identify possible instructions in matrix multiplication.Answer:Matrix multiplication is of <strong>the</strong> form:for (i=0; i


4. What are <strong>the</strong> <strong>differences</strong> <strong>between</strong> VLIW and Superscalar?Answer:Both VLIW and Superscalar architectures can improve <strong>the</strong> speed ofexecution in a processor.In a superscalar processor, it exploits what is called Instruction Levelparallelism (ILP). It takes a bunch of instructions and loads <strong>the</strong>m all atonce. These instructions are taken out of a window of instructions,typically a window of about 16 instructions (issue window, reservationstations). Having a larger window means we have a larger scope fromwhich <strong>the</strong> processor will try to find independent instructions, andexecute <strong>the</strong>m as soon as possible. Now however, <strong>the</strong> register file getsmuch bigger (since we now need more registers to be able to do morethings in parallel).In VLIW processor, we do not try to do all <strong>the</strong> figuring out on <strong>the</strong> fly inhardware. The processor is now a lot simpler, and <strong>the</strong> complexity ismoved to <strong>the</strong> compiler. Now instead of having 4 separate instructionswith dependences, <strong>the</strong> compiler arranges <strong>the</strong> program so that <strong>the</strong>


instructions sent to <strong>the</strong> processor are bundles (single instructions)containing, say 4 independent operations, which are fetched at <strong>the</strong> sametime, and executed at <strong>the</strong> same time etc. The compiler now determineswhat has to be done in parallel.5. What are <strong>the</strong> <strong>differences</strong> among <strong>the</strong>se terms: multitasking andmultithread and multiprocessing?Answer:Multitasking is running multiple "heavyweight" processes (tasks) by asingle OS. In computing, multitasking is a method by which multipletasks, also known as processes, share common processing resources suchas a CPU. With a multitasking OS, such as Windows XP, you cansimultaneously run multiple applications. Multitasking refers to <strong>the</strong>ability of <strong>the</strong> OS to quickly switch <strong>between</strong> each computing task to give<strong>the</strong> impression <strong>the</strong> different applications are executing multiple actionssimultaneously.Multithreading is running multiple "lightweight" processes (threads ofexecution) in a single process / task / program. Multithreading extends


<strong>the</strong> idea of multitasking into applications, so you can subdivide specificoperations within a single application into individual threads. Each of<strong>the</strong> threads can run in parallel. The OS divides processing time not onlyamong different applications, but also among each thread within anapplication.Multiprogramming is essentially a synonym for multitasking (thoughmultitasking connotes sharing more resources than just <strong>the</strong> CPU, and is<strong>the</strong> more popular term).Multiprocessing involves using multiple CPUs, ei<strong>the</strong>r in <strong>the</strong> same(SMP) or different (MPP) host boxes, to run a program. When runningon a multicore system, multitasking OSs can truly execute multiple tasksconcurrently. The multiple computing engines work independently ondifferent tasks.


6. Differences <strong>between</strong> von-Neumann, Harvard, and modifiedHarvard architecture. Give some examples.Answer:A von Neumann architecture defines a single memory space to storeinstructions and data. An Harvard architecture defines separate memoryspaces for instructions and data; separate data and instruction busesallow simultaneous fetches and transfers to occur. Real-world examplesof Harvard-based processor designs include ARM’s ARM9/ARM10,MPC860, 8031, and DSPs, whereas ARM’s ARM7 and x86 are vonNeumann-based designs.A modified Harvard architecture machine is very much like a Harvardarchitecture machine, but it relaxes <strong>the</strong> strict separation <strong>between</strong>


instruction and data, while still letting <strong>the</strong> CPU concurrently access two(or more) memory buses. One type of modified Harvard modificationprovides a pathway <strong>between</strong> <strong>the</strong> instruction memory (such as ROM orflash) and <strong>the</strong> CPU to allow words from <strong>the</strong> instruction memory to betreated as read-only data.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!