8086
FUNCTIONAL DESCRIPTION
General Operation
The internal functions of the 8086 processor are partitioned logically into two processing units. The first is the Bus Interface Unit (BIU) and the second is the Execution Unit (EU) as shown in the block dia- gram of Figure 1.
These units can interact directly but for the most part perform as separate asynchronous operational processors. The bus interface unit provides the func- tions related to instruction fetching and queuing, op- erand fetch and store, and address relocation. This unit also provides the basic bus control. The overlap of instruction
The instruction stream queuing mechanism allows the BIU to keep the memory utilized very efficiently. Whenever there is space for at least 2 bytes in the queue, the BIU will attempt a word fetch memory cycle. This greatly reduces ‘‘dead time’’ on the memory bus. The queue acts as a
The execution unit receives
MEMORY ORGANIZATION
The processor provides a
bytes, addressed as 00000(H) to FFFFF(H). The memory is logically divided into code, data, extra data, and stack segments of up to 64K bytes each, with each segment falling on
All memory references are made relative to base ad- dresses contained in high speed segment registers. The segment types were chosen based on the ad- dressing needs of programs. The segment register to be selected is automatically chosen according to the rules of the following table. All information in one segment type share the same logical attributes (e.g. code or data). By structuring memory into relocat- able areas of similar characteristics and by automati- cally selecting segment registers, programs are shorter, faster, and more structured.
Word
Physically, the memory is organized as a high bank
(D15 – D8) and a low bank (D7 – D0) of 512K
dress lines A19 – A1. Byte data with even addresses is transferred on the D7 – D0 bus lines while odd ad- dressed byte data (A0 HIGH) is transferred on the D15 – D8 bus lines. The processor provides two en- able signals, BHE and A0, to selectively allow read- ing from or writing into either an odd byte location, even byte location, or both. The instruction stream is fetched from memory as words and is addressed internally by the processor to the byte level as nec- essary.
Memory | Segment Register | Segment |
Reference Need | Used | Selection Rule |
|
|
|
Instructions | CODE (CS) | Automatic with all instruction prefetch. |
|
|
|
Stack | STACK (SS) | All stack pushes and pops. Memory references relative to BP |
|
| base register except data references. |
|
|
|
Local Data | DATA (DS) | Data references when: relative to stack, destination of string |
|
| operation, or explicitly overridden. |
|
|
|
External (Global) Data | EXTRA (ES) | Destination of string operations: explicitly selected using a |
|
| segment override. |
|
|
|
6