Coa
Coa
4
Address Bus
► An address bus is a computer bus that is used
to specify a physical address.
► When a processor or DMA-enabled device
needs to read or write to a memory location, it
specifies that memory location on the address
bus
► The width of the address bus determines the
amount of memory a system can address. For
example, a system with a 32-bit address bus
can address 232 (4,294,967,296) memory
locations.
Control Bus
► The control bus carries commands from the
CPU and returns status signals from the
devices, for example if the data is being
read or written to the device the
appropriate line (read or write) will be active
► It determine the operation to be performed
Data Bus
► The data to be transferred will be placed on
Data bus
► The data lines of the bus carry information
between the source and the destination. This
information may consist of data, complex
commands, or Instructions.
► A data bus has many different defining
characteristics, but one of the most important
is its width. The width of a data bus refers to
the number of bits (electrical wires) that make
up the bus. Common data bus widths include
8, 16, 32, and 64-bit.
Hierarchical buses
► We could split the bus into different
segments.
► Since the CPU and memory need to
communicate so often, a shorter and faster
processor-memory bus can be dedicated to
them.
► A separate I/O bus would connect the
slower devices to each other, and eventually
to the processor.
Hierarchical buses
CPU Memory
Processor-memory bus
I/O bus
ReadReq 1
2
Data addr data
3
Ack 4 6
5 7
DataRdy
I/O device signals a request by raising ReadReq and putting the addr on
the data lines
1. Memory sees ReadReq, reads addr from data lines, and raises Ack
2. I/O device sees Ack and releases the ReadReq and data lines
3. Memory sees ReadReq go low and drops Ack
4. When memory has data ready, it places it on data lines and raises DataRdy
5. I/O device sees DataRdy, reads the data from data lines, and raises Ack
6. Memory sees Ack, releases the data lines, and drops DataRdy
7. I/O device sees DataRdy go low and drops Ack
Input Output
mechanism
Memory mapped I/O
► I/O devices and the memory share the
same address space, the arrangement is
called Memory-mapped I/O.
► In Memory-mapped I/O portions of address
space are assigned to I/O devices and reads
and writes to those addresses are
interpreted as commands to the I/O device.
► Memory-mapped I/O uses the same address
bus to address both memory and I/O devices - the
memory and registers of the I/O devices are
mapped to (associated with) address values. So
when an address is used by the CPU it may refer
to a portion of physical RAM, or it can instead refer
to memory of the I/O device