EC 6504 MICROPROCESSOR AND MICROCONTROLLER Electronicsand Communication Engineering Fifth Semester UNIT-1I Part A 1. Definemachinecycle. [N/D 16] Machine cycle is defined as the time required to complete the one operation of accessing memory, I/O or acknowledging an external request. This cycle may consist of three to six T-states. Four steps of Machine cycle 1. Fetch - Retrieve an instruction from the memory. 2. Decode - Translate the retrieved instruction into a series of computer commands. 3. Execute - Execute the computer commands. 4. Store - Send and write the results back in memory. 2. Under what conditions can bus contention occurs?how does a tri-state buffer help avoid this problem? [N/D 16] Bus contention occurs when two outputs attempting to control the same line. It can be avoided by tri-state buffer can be turned off 3. DifferentialExternalVerses InternalBus. [M/J-16] Internal Data Bus: As its name suggests the internal data bus only works inside a CPU that is internally. It is able to communicate with the internal cache memories of the CPU. Since they are internally placed they are relatively quick and are now affected by the rest of the computer. External Data bus: This type of bus is used to connect and interface the computer to its connected peripheral devices. Since they are external and do not lie within the circuitry of the CPU they are relatively slower. The 8088 processor in itself contains a 16-bit internal data bus coupled with a 20-bit address register. This allows the processor to address to a maximum of 1 MB memory. 4. Compareclosely coupledandloosely coupledconfigurations [M/J-16] Closely coupled Loosely coupled 1. Single CPU is used 1. Multiple CPU modules are used 2. It has local bus only 2. It has local as well system bus 3. No system memory or IO 3. It has system memory and IO, shared among CPU modules 4. No bus arbitration logic required 4. Bus arbitration logic required
5. What is the use of Instruction Queue in 8086 microprocessor? The queue operates on the principle of first in first out(fifo). So that the execution unit gets the instruction for execution in the order they fetched.feature of fetching the next instruction while the current instruction is executing is called pipelining which will reduce the execution time. 6. How many data lines and address lines are available in 8086? Address lines= 20 bit address bus Data lines= 16 bit data bus 7. What are the signals used in 8086 maximum mode operation? Qs1,Qs0, s0,s1, s2, LOCK, RQ/GT1, RQ/GT0 are the signals used in 8086 maximum mode operation. 8. List the advantages of using segment registers in 8086. It allows the memory addressing capacity to be 1MB even though the address associated with individual instruction is only 16-bit. It facilitates use of separate memory areas for program, data and stack. It allows the program to be relocated which is very useful in multiprogramming. 9.Explain the BHE and LOCK signals of 8086 BHE (Bus High Enable): Low on this pin during first part of the machine cycle indicates that at least one byte of the current transfer is to be made on higher byte AD15-AD8. LOCK: This signal indicates that an instruction with a LOCK prefix is being executed and the bus is not to be used by another processor. 10. Name any four flags of 8086. Auxiliary carry flag(af), Carry flag(cf), Direction flag(df), Interrupt flag(if), Overflow flag(of), Parity flag)pf), Sign flag(sf), Trap flag(tf), Zero flag(zf). Part B 1.Discussabout themultiprocessorconfigurations of8086. [16][N/D-16]
2. ExplainindetailabouttheMinimum mode and systembustimingof8086/8088 [16] [N/D-16] In a minimum mode 8086 system, the microprocessor 8086 is operated in minimum mode by strapping its MN/MX* pin to logic1. In this mode, all the control signals are given out by the microprocessor chip itself. There is a single microprocessor in the minimum mode system. The remaining components in the system are latches, transreceivers, clock generator, memory and I/O devices. Some type of chip selection logic may be required for selecting memory or I/O devices, depending upon the address map of the system. The latches are generally buffered output D-type flip-flops, like, 74LS373 or 8282. They are used for separating the valid address from the multiplexed address/data signals and are controlled by the ALE signal generated by 8086. Transreceivers are the bidirectional buffers and some times they are called as data amplifiers. They are requiredto separate the valid data from the time multiplexed address/data signal. They are controlled by two signals, namely, DEN* and DT/R*. The DEN* signal indicates that the valid data is available on the data bus, while DT/R indicates the direction of data, i.e. from or to the processor. The system contains memory for the monitor and users programstorage. Usually, EPROMS are used for monitor storage, while RAMs for users program storage. A system may contain I/O devices for communication with the processor as well as some special purpose I/O devices. The clock generator generates the clock from the crystal oscillator and then shapes it and divides to make it more precise so that it can be used as an accurate timing reference for the system. The clock generator also synchronizes some external signals with the system clock. The general system organization is shown in Fig. 1.1. Since it has 20 address lines and 16 data lines, the 8086 CPU requires three octal address latches and two octal data buffers for the complete address and data separation. The working of the minimum mode configuration system can be better described in terms of the timing diagrams rather than qualitatively describing the operations. The opcode fetch and read cycles are similar. Hence the timing diagram can be categorized in two parts, the first is the timing diagram for read cycle and the second is the timing diagram for write cycle. Fig 1.2 shows the read cycle timing diagram. The read cycle begins in T1 with the assertion of the address latch enable (ALE) signal and also M/IO* signal. During the negative going edge of this signal, the valid address is latched on the local bus. The BHE* and A0 signals address low, high or both bytes. From Tl to T4, the M/IO* signalindicates a memory or I/O operation. At T2 the address is removed from the local bus and is sent to the output. The bus is then tristated. The read (RD*) control signal is also activated in T2.The read (RD) signal causes the addressed device to enable its data bus drivers. After RD* goes low, the valid data is available on the data bus. The addresseddevice will drive the READY line high, when the processor returns the read signal to high level, the addressed device will again tristate its bus drivers.
Fig 1.3 shows the write cycle timing diagram. A write cycle also begins with the assertion of ALE and the emission of the address. The M/IO* signal is again asserted to indicate a memory or I/O operation. In T2 after sending the address in Tl the processor sends the data to be written to the addressed location. The data remains on the bus untilmiddle of T4 state. The WR* becomes active at the beginning oft2 (unlike RD* is somewhat delayed in T2 to provide time for floating).the BHE* and A0 signals are used to select the proper byte or bytes of memory or I/O word to be read or written. The M/IO*, RD* and WR* signals indicate the types of data transfer as specified in Table
HOLD Response Sequence The HOLD pin is checked at the end of the each bus cycle. If it is received active by the processor before T4 of the previous cycle or during T1 state of the current cycle, the CPU activities HLDA in the next clock cycle and for the succeeding bus cycles, the bus will be given to another requesting master The control control of the bus is not regained by the processor until the requesting master does not drop the HOLD pin low. When the request is dropped by the requesting master, the HLDA is dropped by the processor at the trailing edge of the next clock as shown in fig 1.4.
3. ExplainindetailabouttheMaximum mode and systembustimingof8086. [16] [M/J-16] In the maximum mode, the 8086 is operated by strapping the MN/MX* pin to ground. In this mode, the processor derives the status signals S2*, S1* and S0*. Another chip called bus controller derives the control signals using this status information. In the maximum mode, there may be more than one microprocessor in the system configuration. The other components in the system are the same as in the minimum mode system. The general system organization is as shown in the fig1.1 The basic functions of the bus controller chip IC8288, is to derive control signals like RD* and WR* (for memory and I/O devices), DEN*, DT/R*, ALE, etc. using the information made available by the processor on the status lines. The bus controller chip has input lines S2*, S1* and S0* and CLK. These inputs to 8288 are driven by the CPU. It derives the outputs ALE, DEN*, DT/R*, MWTC*, AMWC*, IORC*, IOWC* and AIOWC*. The AEN*, IOB and CEN pins are especially useful for multiprocessor systems. AEN* and IOB are generally grounded. CEN pin is usually tied to +5V. Fig 1.1 Maximum Mode 8086 System
The significance of the MCE/PDEN* output depends upon the status of the IOB pin. If IOB is grounded, it acts as master cascade enable to control cascaded 8259A; else it acts as peripheral data enable used in the multiple bus configurations. INTA* pin is used to issue two interrupt acknowledge pulses to the interrupt controller or to an interrupting device. IORC*, IOWC* are I/O read command and I/O write command signals respectively. These signals enable an IO interface to read or write the data from or to the addressed port. The MRDC*, MWTC* are memory read command and memory write command signals respectively and may be used as memory read and write signals. All these command signals instruct the memory to accept or send data from or to the bus. For both of these write command signals, the advanced signals namely AIOWC* and AMWTC* are available. They also serve the same purpose, but are activated one clock cycle earlier than the IOWC* and MWTC* signals, respectively. The maximum mode system is shown in fig. 1.1. The maximum mode system timing diagrams are also divided in two portions as read (input) and write (output) timing diagrams. The address/data and address/status timings are similar to the minimum mode. ALE is asserted in T1, just like minimum mode. The only difference lies in the status signals used and the available control and advanced command signals. The fig. 1.2 shows the maximum mode timings for the read operation while the fig. 1.3 shows the same for the write operation. Fig1.4. RQ*/GT* Timings in Maximum Mode Fig. 1.2 Memory Read Timing in Maximum Mode
Timings for RQ*/GT* Fig. 1.3 Memory Write Timing in Maximum Mode 4. Explainthefollowing: [M/J-16] (i) MultiprocessorSystem (4) Multiprocessor means a multiple set of processors that executes instructions simultaneously. There are three basic multiprocessor configurations. Coprocessor configuration Closely coupled configuration Loosely coupled configuration How is the coprocessor and the processor connected? The coprocessor and the processor is connected via TEST, RQ-/GT- and QS0& QS1 signals. The TEST signal is connected to BUSY pin of coprocessor and the remaining 3 pins are connected to the coprocessor s 3 pins of the same name. TEST signal takes care of the coprocessor s activity, i.e. the coprocessor is busy or idle. The RT-/GT-is used for bus arbitration. The coprocessor uses QS0& QS1 to track the status of the queue of the host processor. Closely Coupled Configuration Closely coupled configuration is similar to the coprocessor configuration, i.e. both share the same memory, I/O system bus, control logic, and control generator with the host processor. However, the coprocessor and the host processor fetches and executes their own instructions. The system bus is controlled by the coprocessor and the host processor independently.
Block Diagram of Closely Coupled Configuration How is the processor and the independent processor connected? Communication between the host and the independent processor is done through memory space. None of the instructions are used for communication, like WAIT, ESC, etc. The host processor manages the memory and wakes up the independent processor by sending commands to one of its ports. Then the independent processor accesses the memory to execute the task. After completion of the task, it sends an acknowledgement to the host processor by using the status signal or an interrupt request. Loosely Coupled Configuration Block Diagram of Loosely Coupled Configuration
Loosely coupled configuration consists of the number of modules of the microprocessor based systems, which are connected through a common system bus. Each module consists of their own clock generator, memory, I/O devices and are connected through a local bus. Advantages Having more than one processor results in increased efficiency. Each of the processors have their own local bus to access the local memory/i/o devices. This makes it easy to achieve parallel processing. The system structure is flexible, i.e. the failure of one module doesn t affect the whole system failure; faulty module can be replaced later. (ii) Coprocessor (4) A Coprocessor is a specially designed circuit on microprocessor chip which can perform the same task very quickly, which the microprocessor performs. It reduces the work load of the main processor. The coprocessor shares the same memory, IO system, bus, control logic and clock generator. The coprocessor handles specialized tasks like mathematical calculations, graphical display on screen, etc. The 8086 and 8088 can perform most of the operations but their instruction set is not able to perform complex mathematical operations, so in these cases the microprocessor requires the math coprocessor like Intel 8087 math coprocessor, which can easily perform these operations very quickly. Block Diagram of Coprocessor Configuration (iii) Multiprogramming (4) Multiprogramming is a rudimentary form of parallel processing in which several programs are run at the same time on a uniprocessor. Since there is only one processor, there can be no true simultaneous execution of different programs. Instead, the operating system executes
part of one program, then part of another, and so on. To the user it appears that all programs are executing at the same time. If the machine has the capability of causing an interrupt after a specified time interval, then the operating system will execute each program for a given length of time, regain control, and then execute another program for a given length of time, and so on. In the absence of this mechanism, the operating system has no choice but to begin to execute a program with the expectation, but not the certainty, that the program will eventually return control to the operating system. If the machine has the capability of protecting memory, then a bug in one program is less likely to interfere with the execution of other programs. In a system without memory protection, one program can change the contents of storage assigned to other programs or even the storage assigned to the operating system. The resulting system crashes are not only disruptive, they may be very difficult to debug since it may not be obvious which of several programs is at fault. (iv) Semaphore (4)