I/O INTERFACE

General Theory

As in any computer based system, the 8080 CPU must be able to communicate with devices or structures that exist outside its normal memory array. Devices like keyboards, paper tape, floppy disks, printers, displays and other control structures are used to 'input information into the 8080 CPU and display or store the results of the computational activity.

Probably the most important and strongest feature of the 8080 Microcomputer System is the flexibility and power of its I/O structure and the components that support it. There are many ways to structure the I/O array so that it will "fit" the total system environment to maximize efficiency and minimize component count.

The basic operation of the I/O structure can best be viewed as an array of single byte memory locations that can be Read from or Written into. The 8080 CPU has special in- structions devoted to managing such transfers (IN, OUT). These instructions generally isolate memory and I/O arrays so that memory address space is not effected by the I/O structure and the general concept is that of a simple transfer to or from the Accumulator with an addressed "PORT". An- other method of I/O architecture is to treat the I/O structure as part of the Memory array. This is generally referred to as "Memory Mapped I/O" and provides the designer with a powerful new "instruction set" devoted to I/O manipulation.

ISOLATED I/O

~--------------------

I

1

ME;;RY

T!

o

~6

:

c:=J

iI

r ---------------------

j

! I MEMORY T I/O

T!

I

MEMORY MAPPED I/O

JI

Figure 3-8. Memory/I/O Mapping.

Isolated I/O

In Figure 3-9 the system control signals, previously de- tailed in this chapter, are shown. Thi~ type of I/O architecture separates the memory address space from the I/O address space and uses a conceptually simple transfer to or from Ac- cumulator technique. Such an architecture is easy to under- stand because I/O communicates only with the Accumulator using the IN or OUT instructions. Also because of the isola- tion of memory and I/O, the full address space (65K) is un- effected by I/O addressing.

 

MEMR }

TO MEMORY

 

__

DEVICES

 

~----MEMW

 

SYSTEM

 

 

CONTROL

I/OR }

 

(8228)

TO I/O DEVICES

 

 

~----I/OW

 

Figure 3-9. Isolated I/O.

Memory Mapped I/O

By assigning an area of memory address space as I/O a powerful architecture can be developed that can manipulate I/O using the same instructions that are used to manipulate memory locations. Thus, a "new" instruction set is created that is devoted to I/O handling.

As shown in Figure 3-10, new control signals are gene- rated by gating the MEMR and MEMW signals with A15, the most significant address bit. The new I/O control signals con- nect in exactly the same manner as Isolated I/O, thus the system bus characteristics are unchanged.

By assigning A15 as the I/O "flag", a simple method of I/O discipline is maintained:

If A 15 is a "zero" then Memory is active.

If A 15 is a "one" then I/O is active.

Other address bits can also be used for this function. A 15 was chosen because it is the most significant address bit so it is easier to control with software and because it still allows memory addressing of 32K.

I/O devices are still considered addressed II po rts" but instead of the Accumulator as the only transfer medium any of the internal registers can be used. All instructions that could be used to operate on memory locations can be used in I/O.

Examples:

 

MOVr, M

(I nput Port to any Register)

MOV M, r

(Output any Register to Port)

MVI M

(Output immediate data to Port)

LOA

(I nput to ACC)

STA

(Output from ACC to Port)

LHLO

(1 ~ Bit Input)

SHLO

(16 Bit Output)

ADD M

(Add Port to ACC)

ANAM

("AND" Port with ACC)

It is easy to see that from the list of possible "new" instructions that this type of I/O architecture could have a drastic effect on increased system throughput. It is concep- tually more difficult to understand than Isolated I/O and it does limit memory address space, but Memory Mapped I/O can mean a significant increase in overall speed and at the same time reducing re~uired program memory area.

3-8

Page 42
Image 42
Intel 8080 manual Interface, General Theory, Isolated I/O, Memory Mapped I/O

8080 specifications

The Intel 8085 and 8080 microprocessors were groundbreaking innovations in the world of computing, paving the way for future microprocessor development and personal computing.

The Intel 8080, introduced in 1974, was an 8-bit microprocessor that played a fundamental role in the early days of personal computing. With a 16-bit address bus, it had the capability to address 64 KB of memory. Running at clock speeds of 2 MHz, the 8080 was notable for its instruction set, which included 78 instructions and 246 opcodes. It supported a range of addressing modes including direct, indirect, and register addressing. The 8080 was compatible with a variety of peripherals and played a crucial role in the development of many early computers.

The microprocessor's architecture was based on a simple and efficient design, making it accessible for hobbyists and engineers alike. It included an 8-bit accumulator, which allowed for data manipulation and storage during processing. Additionally, the 8080 featured registers like the program counter and stack pointer, which facilitated program flow control and data management. Its ability to handle interrupts also made it suitable for multitasking applications.

The Intel 8085, introduced in 1976, was an enhancement of the 8080 microprocessor. It maintained a similar architecture but included several key improvements. Notably, the 8085 had a built-in clock oscillator, simplifying system design by eliminating the need for external clock circuitry. It also featured a 5-bit control signal for status line management, which allowed for more flexible interfacing with peripheral devices. The 8085 was capable of running at speeds of up to 3 MHz and had an extended instruction set with 74 instructions.

One of the standout features of the 8085 was its support for 5 extra instructions for stack manipulation and I/O operations, which optimized the programming process. Additionally, it supported serial communication, making it suitable for interfacing with external devices. Its 16-bit address bus retained the 64 KB memory addressing capability of its predecessor.

Both the 8080 and 8085 microprocessors laid the groundwork for more advanced microprocessors in the years that followed. They demonstrated the potential of integrated circuits in computing and influenced the design and architecture of subsequent Intel microprocessors. Their legacy endures in the way they revolutionized computing, making technology accessible to a broader audience, and their influence is still felt in the design and architecture of modern microprocessors today.