The majority of devices that we use today, will use a contemporary architecture which is a combination of both the Von Neumann and Harvards Architectures to run the Fetch Decode Execute Cycle alongside other more complex methods of dealing with instructions.
The Von Neumann Architecture is often referred to as the Stored Program Concept – what this means is that both the instructions and the data are stored in the same format… binary!
Each instruction is given a unique bit pattern that matches the instruction, so if the instruction ADD had a bit pattern of 1010, the full instruction 10100001 could be decoded into ADD (1010) 1 (0001).
Each processor type has its own set of these instructions called an instruction set and it if for this reason that once you have compiled a program to an executable file, it can only run on the platform that you compiled it for.
In the Von Neumann Architecture, a set of special memory locations are used to fetch, decode, and execute instructions. These are known as registers – each register has a specific purpose within the cycle.
The Von Neumann Architecture & Fetch Decode Execute Scribbl.it Notes provide a structured way for you to revise topic areas in a visual way.
Whilst both the Harvard and von Neumann architectures run the fetch decode execute cycle, there is a reason for using each in different scenarios. As part of the A Level content you will be expected to compare each of these architectures using their differences and similarities.
The main difference between the two architectures is that in the Von Neumann architecture both the instructions and the data are stored in the same memory locations, whereas they are physically divided in Harvard. This produces both positive and negative impact.
Imagine the storage of memory a little bit like a box – Von Neumann can make efficient use of the space as it only uses 1 box and therefore if the instructions take up less storage space but there is more data all of the space can be utilised within the available memory locations.
In Harvard, as the instructions and data would be stored in two separate boxes even if there was space left in the instruction box, when the data box becomes full there is no other space available.
Initially it may seem a sensible option to simply use the von Neumann architecture which makes efficient use of all the memory locations. However, the benefit of the Harvard system is that an instruction can never be mistaken for data or vice versa which is a possibility in the von Neumann architecture.
Other differences to consider is that in Harvard architecture, because the instructions and data are separate two control units are required, and as such to control buses are also required. This can make the architecture more expensive and more difficult to develop for.
The final difference between the two architectures is the type of system that they are implemented in. As a general rule (be aware that this is not always 100% the case, however for the purposes of the exam we assume that it is) general purpose systems, those that can be adjusted by adding more software such as desktops and laptops, will use the von Neumann architecture as they have operating systems that are able to deal with any missed communication when data or instructions are mixed up. In contrast, Harvard architectures are found in embedded systems which are systems developed for one particular purpose ranging from very simple systems like microwaves to more complex single purpose systems like Sat Navs.
In a similar way to parallel processing, pipelining allows The CPU to perform in a more efficient fashion. When a processor makes use of pipelining, instead of executing instructions in parallel it creates a system which allows the processor to be executing one instruction whilst another is being decoded comma and another is being fetched. This system is like a construction line with multiple stages all being run at once.
Pipelining allows the processor to be constantly looking ahead to the next instruction. This system works particularly well when a task requires a set of linear instructions to be performed. However, it does not work as well when the outcome of one instruction directly impacts upon what needs to be fetched in the next cycle, And much like with parallel processing is not appropriate for every task but does make the system quicker in overall.
Explain why the Von Neumann architecture may be used instead of the Harvard Arctitecture.
Explain why pipelining is not considered a form of parallel processing.
You don’t have to be an artist as it’s all been drawn out for you (or you can use this as inspiration to create your own!). Print the notes, then colour in areas of importance, add doodles and colour, then add more detail to the notes page being as creative as possible.