Vonneumann and Harvard Architecture
Vonneumann and Harvard Architecture
Intel‘s 8051 employs Harvard architecture. A microcontroller has some embedded peripherals and
Input/Output (I/O) devices. The data transfer to these devices takes place through I/O registers.
In a microprocessor, input /output (I/O) devices are externally interfaced and are mapped either to memory
address (memory mapped I/O) or a separate I/O address space (I/O mapped I/O). There are two possible
architectures one is Princeton (Von Neumann) and another is Harvard .I/O Registers space in Princeton
architecture have only one memory interface for program memory (ROM) and data memory (RAM). One
option is to map the I/O Register as a part of data memory or variable RAM area ( memory mapped I/O).
Alternatively a separate I/O register space can be assigned (I/O Mapped I/O) . Both the arrangements are
shown in Fig.4.
As shown in Fig 4. Program memory and Data memory are together in both the arrangements. The
Princeton or Von neumann architecture one bus is used to carry the address and data with an appropriate
multiplexing technique ,which in turn reduces the cost. But Harvard architecture which 8051 employs has
separate Data memory and separate Code or Program memory . The Fig. 5 and Fig .6 show the need for
separate address and data bus for each Program and Data memory in Harvard architecture. Since there are
separate bus for access the operation of fetching the code and data can happen simultaneously which
increases the speed of operation of execution inside CPU.
P
Fig. 5.Organization of I/O registers in Harvard Architecture
In Fig. 5, the first option is difficult to implement as there is no means to write to program ROM area. It is
also complicated to have a separate I/O space as shown in (3). Hence the second option where I/O registers
are placed in the register space is widely used in Harvard architecture.
Data
Data
Memory
C Addres
P s
U Data
Program
Memory
Addres
s
Computer Software: A set of instructions written in a specific sequence for computer to solve a specific
task is called a program, and software is collection of programs. The program stored in the computer
memory in the form of 0s and 1sand it is called as machine level instructions. Since it would be difficult to
remember machine codes in the form of binary numbers an intermediate level of language for programming,
between higher and machine level was developed and is known as assembly level language . Assembly
language programs are written using assembly instructions known as mnemonics.
For example in CLR A, instruction CLR means clear and A means accumulator. The program mnemonics
are converted to machine codes in the form of binary by a software called Assembler.
The Assembly language programming requires a detailed knowledge of the architecture with which the
program is executed. In order to overcome the drawback of assembly language programming Higher level
language like C,C++ are introduced where an interpreter or a compiler takes care of translating a higher
level source code into machine codes.
.
Development/Classification of microcontrollers : Microcontrollers have gone through a silent
evolution (invisible). The evolution can be rightly termed as silent as the impact or application of a
microcontroller is not well known to a common user, although microcontroller technology has undergone
significant change since early 1970's. Development of some popular microcontrollers is given as follows.
Source : http://elearningatria.files.wordpress.com/2013/10/ece-iv-microcontrollers-10es42-notes.pdf