Week 4 > Embedded Programming¶
This week focus on embedded architectures, I am Suppose to demonstrate and compare toolchains and developmnet workflows for availbale architectures.
To accomplish this a assignment i had to go throug some terminloges: - Memory - Computer Bus
Memory Computer memory is an electronic storage space where a computer keeps the instructions and data it needs to access quickly. The computer’s operating system (OS), hardware, and software all rely on memory to function properly.
Computer Bus A computer bus is a communication system used to transfer data between components within a computer or between different computers.
- It consists of physical connections like wires, circuits, or cables.
- Components like the CPU, memory, and input/output (I/O) devices are connected through a bus.
- It simplifies data transfer and improves efficiency.
Types of Buses


## Harvad Vs Von Neumann Architercture
I reffred the images and most of the content from
Harvad Architecture¶
Harvard architecture is a type of computer architecture that separates its memory into two parts so data and instructions are stored separately. The architecture also has separate buses for data transfers and instruction fetches. This allows the CPU to fetch data and instructions at the same time.
The key features…..
- The two different memories can have different characteristics: for example, in embedded systems, instructions may be held in read-only memory while data may require read-write memory.
- In some systems, there is much more instruction memory than data memory, so a larger word size is used for instructions.
- The instruction address bus may be wider than the data bus.
Harvard architecture can be faster than Von Neumann architecture because data and instructions can be fetched in parallel instead of competing on the same bus.
NB: Harvard = Uses two separate buses for the transfer of data and instructions and two separate memories for storage of data and instructions. Harvard architecture is used primarily for small embedded computers and signal processing. Commonly used within CPUs to handle the cache.
## Von Neumann
A standard design of computer system (released 1945-51) in which there is a control unit, arithmetic logic unit (ALU), a memory unit (all within CPU) and input/output devices. These entities are connected over a series of busses.
There is only one data bus which is used for both instruction fetches and data transfer from the memory which also is used for storage of both instructions and data.
- Also called stored program concept.
- The memory is addressed linearly; that is, there is a single sequential numerical address for each memory location.
- Memory is split into small cells of equal sizes each with address numbers (i.e. same word size used for all memory).
- Program instructions are executed in the order in which they appear in the memory, the sequence of instructions can only be changed by unconditional/conditional jump instructions.
- All instructions/data is in binary form
NB: Von Neumann = Shares the same data bus and the same main memory for transfer storage of instructions and data of the programs
Von Neumann is better for desktop computers/high performance computers were cost to performance ratio is important.
For programming development boards such as Arduino and ESP devices, we use the Harvard Architecture rather than the Von Neumann Architecture. This is because Harvard architecture separates program memory and data memory, allowing instructions and data to be accessed simultaneously.