8086 lecture notes 12

7
1 HARDWARE OF THE ORIGINAL IBM PC MICROCOMPUTER 國立台灣大學 生物機電系 林達德 611 37100 微處理機原理與應用 Lecture 12-2 HARDWARE OF THE ORIGINAL IBM PC MICROCOMPUTER 12.1 Architecture of the Original IBM PC System Processor Board 12.2 System Processor Circuitry 12.3 Wait-State Logic and NMI Circuitry 12.4 Input/Output and Memory Chip-Select Circuitry 12.5 Memory Circuitry 12.6 Direct Memory Access Circuitry 國立台灣大學 生物機電系 林達德 611 37100 微處理機原理與應用 Lecture 12-3 HARDWARE OF THE ORIGINAL IBM PC MICROCOMPUTER 12.7 Timer Circuitry 12.8 Input/Output Circuitry 12.9 Input/Output Channel Interface 國立台灣大學 生物機電系 林達德 611 37100 微處理機原理與應用 Lecture 12-4 12.1 Architecture of the Original IBM PC System Processor Board Major functional elements of the PC: MPU PIC DMA PIT PPI ROM RAM 國立台灣大學 生物機電系 林達德 611 37100 微處理機原理與應用 Lecture 12-5 12.1 Architecture of the Original IBM PC System Processor Board PC memory map 國立台灣大學 生物機電系 林達德 611 37100 微處理機原理與應用 Lecture 12-6 12.1 Architecture of the Original IBM PC System Processor Board PC system peripheral addresses

Upload: sai420

Post on 13-Sep-2015

225 views

Category:

Documents


2 download

DESCRIPTION

8086 lect12

TRANSCRIPT

  • 1HARDWARE OF THE ORIGINAL IBM PC MICROCOMPUTER

    611 37100 Lecture 12-2

    HARDWARE OF THE ORIGINAL IBM PC MICROCOMPUTER

    12.1 Architecture of the Original IBM PC System Processor Board

    12.2 System Processor Circuitry12.3 Wait-State Logic and NMI Circuitry12.4 Input/Output and Memory Chip-Select

    Circuitry12.5 Memory Circuitry12.6 Direct Memory Access Circuitry

    611 37100 Lecture 12-3

    HARDWARE OF THE ORIGINAL IBM PC MICROCOMPUTER

    12.7 Timer Circuitry12.8 Input/Output Circuitry12.9 Input/Output Channel Interface

    611 37100 Lecture 12-4

    12.1 Architecture of the Original IBM PC System Processor Board

    Major functional elements of the PC:MPU PIC DMA PIT PPI ROM RAM

    611 37100 Lecture 12-5

    12.1 Architecture of the Original IBM PC System Processor Board

    PC memory map

    611 37100 Lecture 12-6

    12.1 Architecture of the Original IBM PC System Processor Board

    PC system peripheral addresses

  • 2

    611 37100 Lecture 12-7

    12.1 Architecture of the Original IBM PC System Processor Board

    8255A I/O map

    611 37100 Lecture 12-8

    12.1 Architecture of the Original IBM PC System Processor Board

    8255A I/O map

    611 37100 Lecture 12-9

    12.1 Architecture of the Original IBM PC System Processor Board

    Interrupt request priority assignment for peripheral devices

    Printer7Diskette6Fixed disk5

    Asynchronous Communication (Primary)SDLC CommunicationsBSC (Primary)

    4

    Asynchronous Communication (Secondary)SDLC CommunicationsBSC (Secondary)

    3Reserved2Keyboard1Timer0ParityNMI

    UsageNumber

    611 37100 Lecture 12-10

    12.2 System Processor Circuitry8284A Clock Generator

    8288 Bus Controller

    8259A PIC

    611 37100 Lecture 12-11

    12.2 System Processor Circuitry

    Clock generator circuitry Clock generator circuitry serves three functions:

    Clock signal generation Reset signal generation (Power on reset) Ready signal generation (Bus synchronization)

    Three clock output signals of the 8284A: The oscillator clock (OSC) at 14.31818 MHz The TTL peripheral clock (PCLK) at 2.385 MHz The 8088 microprocessor clock (CLK88) at 4.77 MHz

    Clock generator circuitry provides synchronization of the 8088s bus operations with its memory and I/O peripherals. For slow memory or peripherals, synchronization is achieved by inserting wait states into the bus cycle to extend its duration.

    611 37100 Lecture 12-12

    12.2 System Processor Circuitry

    Microprocessor, system data bus, and bus controllerIn general, memory and I/O peripherals are

    attached to the 8088 microprocessor at the system bus. However, both the 8259A interrupt controller and 8087 numeric coprocessor are attached directly to the local bus.The 8288 bus controller monitors the codes output

    on the 8088s status lines and produces appropriate system bus control signals.The 8288 also produces I/O and memory read and

    write control signals.

  • 3

    611 37100 Lecture 12-13

    12.2 System Processor Circuitry

    Interrupt controllerExternal hardware interrupt interface is

    implemented for the IBM PC with the 8259A programmable interrupt controller.The 8259A monitors the state of interrupt request

    lines IRQ0 through IRQ7 to determine if any external device is requesting service.The operating configuration of the 8259A needs to

    be initialized at power-on of the system. This initialization is achieved by writing to the 8259As internal registers over the local bus.

    611 37100 Lecture 12-14

    12.3 Wait-State Logic and NMI Circuitry

    Wait-state logic and NMI circuitry

    611 37100 Lecture 12-15

    12.3 Wait-State Logic and NMI Circuitry

    Wait-state logic circuitryThe wait-state circuitry is used to insert one wait state into I/O channel, I/O, and DMA bus cycles

    Hold/hold acknowledge circuitryThe hold/hold acknowledge circuitry is used to grant the 8237A DMA controller access to the system bus.

    Nonmaskable interrupt circuitryThere are three sources for applying a nonmaskable interrupt to the 8088 microprocessor:The 8087 numeric coprocessor (N P NPI)The memory parity check (MPI)The I/O channel check (PCK)

    611 37100 Lecture 12-16

    12.4 Input/Output and Memory Chip-Select Circuitry

    Peripheral/memory chip-select circuitry

    I/O Chip Selects

    Memory ChipSelects

    611 37100 Lecture 12-17

    12.4 Input/Output and Memory Chip-Select Circuitry

    I/O chip selectsThe I/O chip select circuitry decodes the I/O address

    corresponding to the LSI peripheral devices, such as the DMA controller, interrupt controller, programmable interval timer, and programmable peripheral interface controller.

    To access a register within one of the peripheral devices, an I/O instruction must be executed to read from or write to the register. The address output on address line A0 through A9 during the I/O bus cycle is used to both chip-select the peripheral device and select the appropriate register.

    611 37100 Lecture 12-18

    12.4 Input/Output and Memory Chip-Select Circuitry

    I/O chip selectsTo produce an I/O chip-select signal, address bits XA0

    to XA4 are not used and, therefore, the individual I/O chip select signals produced actually correspond to a range of addresses.

    Non DMA bus cycle, XIOW activeNMI control registerWRT NMI REGA0-BF

    Non DMA bus cycle, XIOW activeDMA page registerWRT DMA PG REG80-9F

    Non DMA bus cycleParallel Peripheral interfacePPI CS60-7F

    Non DMA bus cycleInterval timerT/C CS40-5F

    Non DMA bus cycleInterrupt controllerINTR CS20-3F

    Non DMA bus cycleDMA controllerDMA CS0-1F

    ConditionsFunctionSignalAddress range

    Peripheral address decoding

  • 4

    611 37100 Lecture 12-19

    12.4 Input/Output and Memory Chip-Select Circuitry

    Memory chip selectsThe output signals produced for ROM in the circuit are

    ROM address select (ROM ADDR SEL) and chip selects CS0 through CS7. The ROM ADDR SEL signal has two functions: to enable the ROM chip select decoder and to control the direction of data transfer through the ROM data bus transceiver.

    CS7FE000-FFFFF

    CS6FC000-FDFFF

    CS5FA000-FBFFF

    CS4F8000-F9FFF

    CS3F6000-F7FFF

    CS2F4000-F5FFF

    CS1F2000-F3FFF

    CS0F0000-F1FFF

    Chip selectAddress range

    ROM address decoding

    611 37100 Lecture 12-20

    12.4 Input/Output and Memory Chip-Select Circuitry

    Memory chip selectsThe chip-select outputs used to control the operation

    of RAM are RAM ADDR SEL and ADDR SEL.The RAS0, RAS1, RAS2, RAS3 signals are used to

    refresh the DRAM devices in the RAM array.

    RAS3 , CAS3

    RAS2 , CAS2

    RAS1 , CAS1

    RAS0 , CAS0

    RAM ADDR SELActive signal

    Active XMEMR or XMEMW30000-3FFFFActive XMEMR or XMEMW20000-2FFFFActive XMEMR or XMEMW10000-1FFFFActive XMEMR or XMEMW00000-0FFFFInactive DACK 0 BRD00000-3FFFF

    ConditionAddress range

    RAM address decoding

    611 37100 Lecture 12-21

    12.5 Memory Circuitry

    ROM array circuitryThe system processor board of the PC is equipped

    with 48Kbytes of ROM and either 64K or 256Kbytes of RAM.

    Each of the EPROMs is enabled by one of the ROM chip-select signals, CS2 through CS7, which are generated by the ROM address decoder.

    The address outputs on the lower 13 address lines of the system address bus, A0 through A12, are used to select the specific byte of data within an EPROM.

    The direction of data transfer through the data bus transceiver is set by the logic level at its data direction (DIR) input.

    611 37100 Lecture 12-22

    12.5 Memory Circuitry

    ROM array circuitry

    Data bustransceivers

    Octal buffers

    EPROMs

    611 37100 Lecture 12-23

    12.5 Memory Circuitry

    RAM array circuitry In each RAM bank, eight 64K x 1-bit dynamic RAMs

    (DRAMs) are used for data storage, and ninth DRAM is included to hold parity bits for each of the 64K storage locations.

    The 74LS158 data selectors are used to multiplexed the 16-bit memory address into a byte-wide row address and byte-wide column address.

    Each DRAM device outputs a bit of data held in the storage location corresponding the selected row and column address. The byte of data is passed over data lines MD0 through MD7 to the 74LS245 bus transceiver.

    The parity generator/check circuitry is used to improve the reliability of data storage in the RAM array.

    611 37100 Lecture 12-24

    12.5 Memory Circuitry

    RAM array circuitryBus transceiver

    Parity generator/checker

    RAM bank 0

    Dataselectors

  • 5

    611 37100 Lecture 12-25

    12.5 Memory Circuitry

    RAM array circuitry

    RAM banks 2 and 3

    611 37100 Lecture 12-26

    12.6 Direct Memory Access Circuitry

    DMA circuitryDMA Controller

    Hardware Requests

    Address Latch

    DMA Page Registers

    611 37100 Lecture 12-27

    12.6 Direct Memory Access Circuitry

    DMA circuitryThe DMA capability permits high-speed data transfers

    to take place between two sections of memory or an I/O device and memory.

    There are 16 registers within the 8237A DMA controller that determine how and when the four DMA channels work. The 8088 communicates with these registers by executing I/O instructions.

    DMA channel 0 is dedicated to RAM refresh and that channel 2 is used by the floppy disk subsystem.

    Use of a DMA channel is initiated by a request from hardware (DRQ0 through DRQ3).

    611 37100 Lecture 12-28

    12.7 Timer CircuitryProgrammable Interval Timer, PIT

    Amplifier CircuitFor Cassette Data Input

    611 37100 Lecture 12-29

    12.7 Timer Circuitry

    Microprocessor interface and clock inputs The timer circuitry controls four basic system functions:

    Time-of-day clock. DRAM refresh Speaker Cassette

    The programmable interval timer, 8253, provides three independent, programmable, 16-bit counters for use in the microcomputer system.

    The control registers of the 8253 are located in the range 004016 through 004316 of the PCs I/O address space. 004016 -- Counter 0 004116 -- Counter 1 004216 -- Counter 2 004316 -- Mode Control Register

    611 37100 Lecture 12-30

    12.7 Timer CircuitryOutputs of the PIT The 8253 output OUT0 is produced by timer 0 and is set at a

    regular time interval equal to 54.936 ms. This output is applied to the timer interrupt request input (IRQ0) of the 8259A interrupt controller, where it represents the time-of-day interrupt.

    Timer output OUT1 is generated by timer 1 and also occurs at a regular interval of 15.12 s. It is used to send request for service to the 8237A DMA controller and asks it to perform a refresh operation for the dynamic RAM subsystem.

    The output OUT2 is generated by time 2 and is used three ways in the PC: It is sent as the signal T/C2 OUT to port C of the 8255A PIC. It is used as an enable signal for speaker data. It is used to supply the record tone for the cassette interface.

  • 6

    611 37100 Lecture 12-31

    12.8 Input/Output Circuitry

    8255A PIC

    Inputting SystemConfiguration DIP Switch

    Keyboard Interface Circuitry

    Serial-in Parallel-out Shift Register

    I/O Channel RAM Switch

    611 37100 Lecture 12-32

    12.8 Input/Output Circuitry

    Three basic types of functions are performed through input/output circuitry:For 8088 to input data from the keyboard and output

    data to the cassette and speaker.The 8088 use this interface to read the setting of DIP

    switches to determine system configuration information.Certain I/O ports are used for special functions, such

    as clearing the parity check flip-flop and reading the state of the parity check flip-flop through software.

    The I/O circuitry of the PC system processor board is designed using the 8255-A programmable peripheral interface (PPI) IC.

    611 37100 Lecture 12-33

    12.8 Input/Output Circuitry

    8255A programmable peripheral interfaceThe 8255A PPI has three 8-bit ports for implementing

    inputs or outputs. In the PC, ports PA and PC are configured to operate as inputs, and the port PB is set up to work as outputs.

    The ports PA, PB,and PC reside at the I/O addresses 006016,, 006116, and 006216, respectively.

    The operation of the 8255A ports are configurable under software control. Writing a configuration byte to the command/mode control register does this. The command/mode control register is located at address 006316.

    611 37100 Lecture 12-34

    12.8 Input/Output Circuitry

    8255A programmable peripheral interfaceThe input port PA is used to both read the

    configuration switches of SW1 and communicate with the keyboard.

    Output port PB controls the cassette and speaker. It also supplies enable signals for RAM parity check, I/O channel check, and reading of the configuration switches or keyboard

    The input port PC is used to read the I/O channel RAM switches (SW2), parity check signal, I/O channel check signal, terminal count status from timer 2, and cassette data.

    611 37100 Lecture 12-35

    12.8 Input/Output Circuitry Inputting system configuration DIP switch settings

    EXAMPLEThe system configuration byte read from input port PA is 7D16.

    Describe the PC configuration for these switch setting.Solution:

    Use the IN AL, 60H instruction to obtain the data from port PA.Expressing the switch setting byte in binary form, we get

    PA7PA6PA5PA4PA3PA2PA1PA0 = 7D16 = 011111012We find that

    PA0 = 1 indicates that the system has floppy-disk drive(s)PA1 = 0 indicates that an 8087 is not installedPA3PA2 = 11 indicates that the memory is 256KPA5PA4 = 11 indicates a monochrome monitorPA7PA6 = 01 indicates that the system has two floppy drives.

    611 37100 Lecture 12-36

    12.8 Input/Output Circuitry

    Scanning the keyboardThe keyboard of the PC is interfaced to the 8088

    through port PA of the 8255A.The keyboard of the PC generates a keyscan code

    whenever one of its keys is depressed. Bits of the keyscan code are input to the system processor board in serial form at the KBD DATA pin of the keyboard connector synchronously with pulses at KBD CLK. The serial data is applied to the 74LS322 serial-in, parallel-out shift register.

    In response to the IRQ1 interrupt request, the 8088 initiates a keyscan-code service routine. This routine reads the keyscan code by inputting the contents of the shift register.

  • 7

    611 37100 Lecture 12-37

    12.8 Input/Output Circuitry

    Port C input and output functionsThe five connected I/O channel RAM switches are

    used to identify the amount of read/write memory provided through the I/O channel. The settings of these switches are read through the 8255A PPI.

    The four least significant bit lines of port PC indicate the status of the I/O channel RAM switches. The four most significant bit lines are supplied by signals generated else where on the system processor board. PC5 through PC7 allow the 8088 to read the state of the following signals through software: RAM parity check (PCK) I/O channel check (I/O CH CK) Time terminal count (T/C2 OUT) Cassette interface input (CASS DATA IN)

    611 37100 Lecture 12-38

    12.9 Input/Output Channel Interface

    The input/output channel is the system expansion bus of the IBM personal computer.

    The chassis of the PC has five 62-pin I/O channel card slots. Using these slots, special function adapter cards can be added to the system to expand its configuration.

    62 signals are provided in each I/O channel slot: 8-bit data bus 20-bit address bus Six interrupts Memory and I/O read/write controls Clock and timing signals A channel check signal Power and ground pins

    611 37100 Lecture 12-39

    12.9 Input/Output Channel Interface

    I/O channel interface

    611 37100 Lecture 12-40

    12.9 Input/Output Channel Interface I/O channel interface

    OTerminal countT/C

    OResetRESET DRV

    OOscillatorOSC

    OMemory write commandMEMW

    OMemory read commandMEMR

    IInterrupt request 2 7 IRQ2 IRQ7

    OI/O write commandIOW

    OI/O read commandIOR

    II/O channel readyI/O CH RDY

    II/O channel check I/O CH CK

    IDMA request 1 3 DRQ1 DRQ3

    ODMA acknowledge 0 3DACK0 DACK7

    Data lines 0 7

    Clock

    Address latch enable

    Address enable

    Address lines 0-19

    Name

    OD0 D7

    OCLK

    OALE

    OAEN

    OA0 - A19

    FunctionMnemonic

    /ColorImageDict > /JPEG2000ColorACSImageDict > /JPEG2000ColorImageDict > /AntiAliasGrayImages false /CropGrayImages true /GrayImageMinResolution 300 /GrayImageMinResolutionPolicy /OK /DownsampleGrayImages true /GrayImageDownsampleType /Bicubic /GrayImageResolution 300 /GrayImageDepth -1 /GrayImageMinDownsampleDepth 2 /GrayImageDownsampleThreshold 1.50000 /EncodeGrayImages true /GrayImageFilter /DCTEncode /AutoFilterGrayImages true /GrayImageAutoFilterStrategy /JPEG /GrayACSImageDict > /GrayImageDict > /JPEG2000GrayACSImageDict > /JPEG2000GrayImageDict > /AntiAliasMonoImages false /CropMonoImages true /MonoImageMinResolution 1200 /MonoImageMinResolutionPolicy /OK /DownsampleMonoImages true /MonoImageDownsampleType /Bicubic /MonoImageResolution 1200 /MonoImageDepth -1 /MonoImageDownsampleThreshold 1.50000 /EncodeMonoImages true /MonoImageFilter /CCITTFaxEncode /MonoImageDict > /AllowPSXObjects false /CheckCompliance [ /None ] /PDFX1aCheck false /PDFX3Check false /PDFXCompliantPDFOnly false /PDFXNoTrimBoxError true /PDFXTrimBoxToMediaBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXSetBleedBoxToMediaBox true /PDFXBleedBoxToTrimBoxOffset [ 0.00000 0.00000 0.00000 0.00000 ] /PDFXOutputIntentProfile () /PDFXOutputConditionIdentifier () /PDFXOutputCondition () /PDFXRegistryName () /PDFXTrapped /False

    /CreateJDFFile false /Description > /Namespace [ (Adobe) (Common) (1.0) ] /OtherNamespaces [ > /FormElements false /GenerateStructure false /IncludeBookmarks false /IncludeHyperlinks false /IncludeInteractive false /IncludeLayers false /IncludeProfiles false /MultimediaHandling /UseObjectSettings /Namespace [ (Adobe) (CreativeSuite) (2.0) ] /PDFXOutputIntentProfileSelector /DocumentCMYK /PreserveEditing true /UntaggedCMYKHandling /LeaveUntagged /UntaggedRGBHandling /UseDocumentProfile /UseDocumentBleed false >> ]>> setdistillerparams> setpagedevice