Lecture 3
Lecture 3
Lecture 3
Bussed Architecture
The basic components of a microcomputer, as discussed
earlier, are:
1) CPU
2) Program memory
3) Data memory
4) Output ports
5) Input ports
6) Clock generator.
The clock generator generates the appropriate clock pulses for the
synchronized operation of different components of microcomputer.
The clock generator is on-chip in Intel 8085A microprocessor. Now,
the question comes, how the microprocessor is connected to other
components - memory and I/O ports. One possibility is that all the
memory chips and ports are connected separately to CPU as shown
in fig.1.2.
Program Data Data
Memory Memory Memory
Clock Output
Generator
CPU Device
2 3 N
1 ....
If the above conditions can be ensured, the same signal line can be
shared by all N devices to transfer data between any two of the
devices. The signal lines that are shared by a number of devices are
referred to as the bus.
Normal gates are not suited for driving the bus in a bussed
architecture. This is because such a gate will always be outputting
either logic ‘1’ or logic ‘0’ it will not be possible to satisfy condition ‘b’.
Therefore, tri-state buffers are used for driving a bus.
Data Bus:
A set of data lines (8 in 8085A processor)) referred to as the
data bus is shared by number of devices to transfer data between
microprocessor and peripherals. Care must be taken that at a time
only one device should output data on the data bus, the other devices
which can output data meet be in high-Z condition. The data can flow
in both directions, i.e., to or from the microprocessor. Therefore, this
is called bidirectional data bus (BDB). In some microprocessors, the
data pins are also used to send other information such as address
bits in addition to data. This means that the data pins are time shared
or multiplexed. In Intel 8085A microprocessor lower 8-bits of the
address (A7-A0) are time-multiplexed with the 8-bit data (D7-D0) and,
therefore, this bus is called AD bus (AD7-AD0).
Control Bus:
The control bus is comprised of various single lines that carry
control signals. These signals are used to synchronize the operation
of the individual microcomputer elements. The microprocessor uses
these signals for every operation it performs, like reading or writing a
memory location or I/O device. These signals are also used to identify
̅̅̅̅̅, WR
a memory location or an I/O device, e.g., RD ̅̅̅̅̅, IO/M
̅ . Some of the
signals of the control bus are issued by the processor and some of
the signals are received by the processor. Therefore, the control bus
is called bidirectional control bus (BCB). The difference between BDB
and BCB is that in BDB all data lines are either in input mode or in
output mode whereas in BCB the direction of signal flow on a line is
fixed.
Computer Language:
Each machine has its own set of instructions based on the
design of its microprocessor. To communicate with the computer one
must give instruction in binary language or machine language the
form in which it is stored in memory, i.e, as patterns of 1s & 0s. Since
it is difficult for most users to write programs in machine language,
computers manufactured have developed English like words to
represent the binary instructions of a microprocessor. e.g. ADD, SUB
or JMP etc. Users can write programs, called assembly language
programs (ALP), using these words called mnemonics. However,
since the microprocessor can only executes the bit patterns of
machine language instructions, the assembly language program must
be converted to machine codes. This conversion can be carried out
by hand, but this procedure is also time consumes and error prone.
Special programs are available for each type of microprocessor that
converts their assembly language programs to the equivalent
machine codes. These programs are called assemblers and are run
either on a microcomputer or minicomputer.
Because an assembly language is specific to a given machine,
programs written in assembly language are not transferable from one
machine to another. To circumvent this limitation, such general
purpose languages as BASIC, FORTRAN, PASCAL, PL/M, C, have
been devised, a program written in these languages are called high
level languages (HLL). The programmes written in HLL are converted
to machine language by another program called compiler or
interpreter.
High–level languages do have same limitations in processor
applications. The machine codes produced by compiler may be less
efficient than that of the optimum equivalent ALP, increased memory
requirement may not be important in view of cheap memory chips but
increased executions time may be unacceptable in time critical
applications. It is then desirable to write time critical parts of the
program in assembly language. Further many peripheral device
dependent operations may have to be programmed in ALP as such
operation is often not supported by high level language.