GB2076191A - Improvements In or Relating to Terminal Systems for Data Processors - Google Patents
Improvements In or Relating to Terminal Systems for Data Processors Download PDFInfo
- Publication number
- GB2076191A GB2076191A GB8120783A GB8120783A GB2076191A GB 2076191 A GB2076191 A GB 2076191A GB 8120783 A GB8120783 A GB 8120783A GB 8120783 A GB8120783 A GB 8120783A GB 2076191 A GB2076191 A GB 2076191A
- Authority
- GB
- United Kingdom
- Prior art keywords
- signal
- interrupt
- address
- bus
- subsystem
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/001—Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/287—Multiplexed DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
- Digital Computer Display Output (AREA)
Abstract
A terminal system, for incorporating a cathode ray tube display, comprising a system bus, a memory subsystem coupled to said system bus, a central processor subsystem coupled to said system bus including a microprocessor for generating a plurality of predetermined address signals in response to a microprocessor interrupt request signal, and a plurality of peripheral device subsystems coupled to said system bus. Apparatus in a peripheral device system requiring access to the system activates a common interrupt signal line which is also connected to the central processor and the latter generates a predetermined memory address. The presence of the address signals on the bus results in the generation of an acknowledge interrupt-signal which is serially applied to all the peripheral device subsystems starting with the one having the highest priority. The highest priority peripheral device subsystem requiring service places signals on the bus for modifying the address signals whereby a routine stored in the memory is referenced for making the interrupting device operative within the system in preference to systems of lower priority. <IMAGE>
Description
1 GB 2 076 191 A 1
SPECIFICATION Improvements in or Relating to Terminal Systems for Data Processors
This invention relates generally to terminal systems for data processors and especially to 70 terminal systems comprising cathode ray displays.
A known cathode ray display system is made up of a number of subsystems, including a central 10. processor subsystem, all coupled to a common bus. When a subsystem requests attention by the central processor, it sends an interrupt signal on the bus to the CPU. In this prior art system in response to the interrupt signal the central processor subsystem would poll the subsystems 80 to determine which subsystem interrupted, the central processor subsystem would then process the interrupt and generate the appropriate interrupt vector address on the bus. This required the central processor to utilize hardware and firmware to poll all the devices in the subsystem, prioritize those devices with active interrupts and generate the unique firmware address to enter into the firmware interrupt service routine.
There are various other types of interrupt processing systems in the prior art which are coupled to provide interrupt service in response to an interrupt signal received from any one of a number of sources such as peripherals connected to an input/output bus. Typically the procedure followed for servicing interrupts from such peripherals first requires identifying the interrupting peripherals, next requesting the status of the peripheral and then updating the status. This procedure is relatively slow and in certain types of systems where interrupt routines are executed frequently, the acknowledge routine time may pose serious speed restraints on the total system. In one such interrupt system, as indicated in U.S. Patent No. 3,881,174, the interrupt processing apparatus includes a computer which allows a peripheral, upon receiving an acknowledgement from a computer of an interrupt request which the peripheral previously generated, to simultaneously provide the computer with its address and status thereby shortening the time required for the interrupt routine.
U.S. Patent Number 4,030,075 describes a data processing system having a distributed priority network. This priority network is coupled with each of the units for indicating the one of the units which is the highest priority unit requesting to transfer information over the bus. The priority network includes a priority bus with the units coupled closest to one end of the bus having a highest priority and units coupled at the other end of the bus having a lowest priority. All of the above systems have the disadvantage of having considerable hardware and time consuming cycles to perform the connection to the bus.
The Honeywell 7760 display system was a central processor subsystem which controls a fixed number of peripheral subsystems. A peripheral subsystem communicates with the central processor subsystem by sending a request for interrupt signal to the central processor subsystem. However, the throughput of display system has increased by designing higher speed microprocessors into the system. This enables the development of systems applications requiring more peripheral subsystems than were in prior art display systems.
Cathode ray tube displays originally were designed having a keyboard and a video display. New applications required additional devices to be added to the system. Communciations subsystems, printers and diskettes were included in the system.
These devices were connected to a logic unit in a radial fashion. The logic unit selected devices on a predetermined priority basis.
Continued expansion of applications requirements resulted in many more devices being added to the system. The case of the microprocessor improved the throughput to make such systems feasible. However, the techniques of the Honeywell 7760 interrupt method were no longer able to provide the desired throughput. If such a system were designed to connect to a large number of devices, systems with a few devices would have considerable extra overhead logic not required for the system.
An article written by Joseph Nissam entitled -DIVIA Controller Capitalizes on Clock Cycles to Bypass CPU" appears on pages 117-124 of the January, 1978 issue of Computer Design. The article summarizes the prior art relating to bus cycle timing by describing several DIVIA transfer methods including the halt method, the multiplex DMA/CPU method and the "cycle steal" method. In the halt method, the CPU is shut down while DMA transfer occurs. Its disadvantage is the relatively long time it takes to switch the CPU on and off the bus. The multiplex DMA/CPU method splits each memory cycle into two time slots, one for the CPU and the other for the DMA. This method, however, requires high speed memories for high performance. The "cycle steal" method is best for the applications considered in the above article. This has the disadvantage, however, of slowing CPU operation when DMA devices hog the memory.
It is an object of the present invention to provide an improved terminal system for data processors. According to the invention there is provided a terminal system comprising: a system bus; 120 a memory subsystem coupled to said system bus and storing service routines in a read only memory; a central processor subsystem coupled to said system bus including a microprocessor for generating a plurality of predetermined address signals in response to a microprocessor interrupt request signal; a plurality of peripheral device subsystems coupled to said system bus, said system bus 2 GB 2 076 191 A 2 including an external request interrupt signal line coupled in common to each of said plurality of peripheral device subsystems and said central processor subsystem, said system bus further including a plurality of external acknowledge interrupt signal lines coupled serially to each of said plurality of peripheral devices and said central processor subsystem, one of said plurality of peripheral device subsystems forcing said external request interrupt signal line to a first level, said one of said plurality of peripheral device subsystems being responsive to one of said plurality of external acknowledge interrupt signal lines at a first level for sending a plurality of address signals over said system bus to modify said predetermined address signals, said modified address signals being applied to said memory for reading a first location in said memory storing a first word of said service routines, said first word and subsequent words of said service routine being applied to said central processor unit for activating said one of said plurality of peripheral device subsystems; said central processor subsystem further including interrupt and priority means responsive to an external request interrupt signal for generating a signal on a first of said plurality of external acknowledge interrupt signal lines.
In a preferred embodiment of the invention, a cathode ray tube display system comprises a central processor subsystem including a microprocessor, a read only memory, and a plurality of optional peripheral devices. An optional peripheral device gains access to the system by modifying a predetermined address initiated by the microprocessor. The modified predetermined address is the location in read only memory of the service routine which makes an optional device operation with the system.
The priority of the device is established by its position in an option device acknowledge 105 interrupt signal chain. A device subsystem directly responsive to the acknowledge signal from the central processor subsystem has highest priority, the next device subsystem responsive to the acknowledge signal from the device subsystem with the highest priority has the next highest priority. The device subsystem at the end of the acknowledge signal chain has lowest priority.
In more particular terms, with reference to the preferred embodiment, each option device subsystem connects to a common option external request interrupt signal line. An option device subsystem requests an interrupt by setting an interrupt request flop. This in turn sets a synchronization flop if there is no option external 120 acknowledge interrupt signal. The synchronization signal activates the option external request interrupt signal line. The external request signal line when honored by the central processor subsystem results in the microprocessor generating a first predetermined address. Logic, responsive to this predetermined address generates the option device acknowledge interrupt signal which is applied in turn to each option device coupled to the option external request interrupt signal line, highest priority option device subsystem first. The highest priority option device receiving the option device acknowledge interrupt signal responds to its address signal which modifies the first predetermined address, and also prevents lower priority option device subsystems from responding to the option device acknowledge interrupt signal.
During the next CPU cycle the microprocessor generates a second predetermined address. These address signals are applied to the acknowledged device for setting a grant flop which resets the interrupt request flop and conditions the synchronization flop to reset at the end of this second CPU cycle.
During both CPU cycles the option device subsystem places its identification address signals on the bus which modifies the first and second predetermined address to create the unique read only memory address pointing to its interrupt service routine.
The central processor subsystem and a plurality of peripheral subsystems are all connected in common to a system bus. Apparatus in the central processor subsystem receives interrupt signals from the other subsystems and on a predetermined priority basis selects an interrupting subsystem by generating an address on the system bus identifying the peripheral whose interrupt is accepted. In the preferred embodiment, this address is used to identify a firmware routine, not a part of the invention, in Read Only Memory, to process the interrupt.
The interrupt signal from a subsystem is applied to an encoder 4-40 as are other interrupt signals from other subsystems. The encoder 4-40 signals the CPU 4-2 of an interrupt request and generates a 3-bit address code. The CPU 4-2 generates a predetermined address, in the preferred embodiment, hexadecimal FFF8, and sends the address out on the system bus. The address is received by the interrupt apparatus which generates an 1RQACK acknowledge signal which is applied to enable a decoder 4-42. If the interrupt was generated by the keyboard, cathode ray tube display or communication subsystemas determined by the decoder 4-42 output, then the above three address bits are sent out on the address bus as hexadecimal WX, an even address.
If the interrupt was generated by the external communications option device 24 or a peripheral option 14 a-f, then an acknowledge signal is received by the option requesting the interrupt. The option sends the low order bits out on the address bus where they are combined with the high order address bits, hexadecimal FF, to generate the hexadecimal address F17XX, an even address.
On the next CPU cycle, the CPU 4-2 generates the address hexadecimal FF9. In this case the interrupting subsystem generates FFY or FFYY 3 GB 2 076 191 A 3 which is an odd address, i.e., the even address _above, incremented by one.
In a CRT display system many memory cycles are required to refresh the display. For a 24 line by 30 character per line and a 60 hertz refresh rate, a minimum of 115, 200 bus cycles per second are required. With higher density displays and additional character reads for visual attributes this rate may be significantly higher. Other peripherals operating in a DMA mode such as disk controllers also add to the system bus throughput requirements. Apparatus divides the system bus timing into alternate CPU cycles and Direct Memory Adess (DMA) cycles. In the preferred embodiment the duration of each CPU cycle and each DMA cycle is typically 508.5 nanoseconds.
DMA cycles are used by peripheral subsystems to communicate with memory.
The system bus timing is further split into an address phase and a data phase which are offset from each other typically 305 nanoseconds. That is, the address phase is divided into alternate CPU and DMA cycles of tpyically 508.5 nanoseconds each and the data phase is divided into alternate CPU and DMA cycles lagging the address phase by the above 305 nanoseconds. An oscillator operating at a frequency of 19.66 megahertz provides the basic timing for the system bus logic by controlling a number of shift registers wired in series to provide timing pulses which set and 95 reset a number of timing flops in a timed sequence. The CPUADR flop when set defines the CPU address phase and when reset defines the DMA address phase of the system bus cycle. The CPUDAT flop when set defines the CPU data 100 phase and when reset defines the DMA data phase of the system bus cycle.
Other timing flops define a number of other signals on the system bus and are described in the detailed specification.
Arrangements according to the invention will now be described by way of example and with reference to the accompanying drawings, in which:- Figure 1 shows the system bus cycle timings of 110 the preferred embodiment.
Figure 2 is an overall block diagram of the system.
Figure 3 is a block diagram of the system showing the address bus and data bus signal 115 lines.
- Figure 4 is a logic diagram of the timing and control unit.
Figure 5 is a timing diagram of the system bus signals.
Figure 6 is a logic diagram of the central processor unit interrupt system.
Figure 7 is a logic diagram of the option interrupt system.
Figure 8 is a timing diagram of the option interrupt system.
Features of the apparatus described herein with reference to the above-mentioned drawings and separately claimed in copending patent applications 7,942,983 and In the preferred embodiment shown in Figure 1 the system bus timing is divided into an address phase 1 and a data phase 3 with the data phase 3 lagging the address phase 1 by typically 305 nanoseconds. Both the DMA and CPU cycles are typically 508.5 nanoseconds long. Successive CPU cycles are 1.0 17 microseconds apart.
A central processor 4 of Figure 2 is operative during CPU cycles. Peripheral subsystems 14 a- f are preassigned to be operative during DMA cycles. The cathode ray tube subsystem 12 is exclusively preassigned to be operative during DMA 1 cycles since the CRT display requires continuous updating from memory subsystem 10.
Figure 2 shows the overall system comprising a timing and control subsystem 2, the central processor unit (CPU) subsystem 4, a keyboard and switch subsystem 8, the memory subsystem 10, the CRT controller and direct memory access (DMA) link 12, an external communications device option 25 and a number of optional peripheral devices typically 14 a-f connected to a bidirectional data bus 16, an address bus 18 and a control bus 20.
The timing and control system 2 generates the cycle timing for the address bus 18 and the data bus 16 as shown in Figure 1 for address phase 1 and data phase 3, and for the control bus 20.
The memory subsystem 10 comprises 8,192 word locations of random access memory (RAM) and 20,480 word locations of read only memory (ROM). The ROM stores microprogram subroutines that control overall system operation.
Sections of RAM are set aside as registers, buffers and word areas. The memory subsystem 10 is operative during both CPU and DMA bus cycles.
Memory address locations identified by signals BUSA00-1 5+00 are received over address bus 18 and during a memory read cycle a data word CPUDO-7+00 is sent out over data bus 16.
During a memory write cycle the data word CPUDO-7+00 is received over data bus 16.
The signal lines BUSA00-1 5 identifies each of the 16 address lines of address bus 18.
BUSA00-1 5+ indicates that a signal line is at a binary ONE when the signal on the line is high.
BUSA00-1 5+00 identifies the address signals BUSA00-1 5+ as being on the 00 bus.
The CPU subsystem 4 is operative with data bus 16 and address bus 18 during CPU cycle time to read from or write to the memory subsystem or a peripheral device 14 a-f. The CPU subsystem 4 controls overall system operation by means of the microprogram subroutines stored in the memory subsystem 10 ROM. The CPU subsystem 4 receives microwords over signal lines CPUDO-7+00 on data bus 16 in response to address signal BUSA00-1 5+00 sent out on address bus 18 by CPU subsystem 4. The CPU subsystem 4 may also read or update RAM areas of memory subsystem 10 at the address location identified by the BUSA00-1 5+00 signal sent from the CPU subsystem 4 over address bus 18.
The microprogram subroutines are not a part of the invention. They will be described only as 4 GB 2 076 191 A 4 necessary to understand the operation of the overall system.
The keyboard and switch subsystem 8 inputs information in the form of data words or control codes onto the data bus 16 during CPU cycle time. This information was initiated as a result of manual operation of a keyboard or the manual operation of switches or investigative routines of the CPU subsystem 4 and is processed by microgram control by the CPU subsystem 4.
The communications subsystem 6 is operative during CPU cycle time. It operates in synchronous 75 or asynchronous mode and can transmit or receive information. Host systems may be connected to the communications subsystems 6.
Therefore, all information on data bus 16 during CPU cycle time passes through the communications subsystem 6 under microprogram control in the event the information is to be transmitted to the host system.
The CRT controller and direct memory access (DMA) link 12 is operative during DMA1 cycles, Figure 1. Successive memory address locations identified by signals BUSA00-1 5+00 are sent to memory 10 over the address bus 18 from the CRT controller and DMA link 12 for each displayed line. Control information and data characters for display are se nt from memory over data bus 16 to the CRT controller and DMA link 12.
A number of options such as buffered printers, diskettes, extended memory, HDLC communications are connected to the system as options 14 a-f. The options 14 a-f are operative to communicate with memory subsystem 10 during DMA 2-4 cycle time. Each 95 option 14 a-f is internally wired to a particular DMA 2, 3 or 4 cycle time.
Certain BUSA00-1 5+00 signals address areas in RAM of memory subsystem 10. These areas are set aside as registers. These addresses are decoded as signal lines and are sent to individual subsystems over address bus 18 to indicate to the subsystem that a particular register in memory 10 is being accessed. These signals are not pertinent in the understanding of the invention but are described in detail where necessary to understand the operation.
The timing and control subsystem generates and receives control signals over a control bus 20.
Those signals are described below.
CPUADR-00 CPU Address Control This signal defines the DMA and the CPU bus cycle timing of address bus 18. When the signal is low the CPU address lines are gated to the address bus 18 and when high, the DMA address lines are gated to the address bus 18.
CPUDAT-00 CPU Data Control This signal defines the DMA and the CPU bus cycle timings. When the signal is low the CPU controls the direction and purpose of the data bus 18. When the signal is high, the DMA devices control the data bus 18.
BUSIRWC+00 Bus Read Write Control 65 This signal defines the type of data transfer on the data bus 16. It is valid during the CPUADR time for that phase of the bus cycle. During the CPU phase, the signal at a logical ONE indicates that data is to be read from a device such as communications subsystem 6 or memory subsystem 10 to the CPU subsystem 4 over data bus 16. The signal at a logical ZERO indicates that data is to be written from the CPU subsystem 4 to the device or memory subsystern over data bus 16.
During the DMA phase, the signal at logical ONE indicates that data is to be read from memory subsystem 10 and sent to a DMA option device 14 a-f over data bus 16. The signal at logical ZERO indicates that data is to be sent to the memory subsystem 10 over data bus 16 from the DMA device 14 a-f.
MEMSTR-00 Memory Strobe This signal provides internal timing pulses for memory subsystems during CPU and DMA bus cycles.
DEVSTR-00 Device Start This signal is used by the optional devices 14 a-f as a clock pulse.
BUS01 0-00 Bus Strobe 1 This signal is used by the optional devices 14 a-f as a clock pulse.
BUS030+ Bus Strobe 3 This signal enables the memory subsystem 10 output during a read operation when at a logical ONE during CPU and DMA bus cycles. The signal is also available to options 14 a-f for timing.
BUS030- Bus Strobe 3 This signal when at logical ZERO during DMA bus cycles activates the CRT controller and DMA link 12 write operation.
DIVIAREQ DMA Request There are 4 DMA request signal lines. DMAREQ+O 1 is assigned to the CRT controller and DMA link 12. Signal lines DMAREQ-02, DMAREQ-03 and DMAREQ-04 are available to specific options 14 a-f. As shown in Figure 1, there are 4 DMA bus cycle time slots DMA1, DMA2, DMA3 and DMA4. A subsystem requests its assigned DMA bus cycle by forcing its DMAREQ signal to logical ZERO.
DIVIAKX0- DMA Acknowledge Four DMA acknowledge signals DMAK 10-, DMAK20-, DMAK30- and DMAK40- define their respective time slots on the control bus by being forced to a logical ZERO.
EXTIRG-00 External Interrupt Request This signal when at a logical ZERO idicates that an option 14 a-f is interrupting and is requesting service of the CPU subsystem 4.
GB 2 076 191 A 5 PRIACK-05 External Interrupt Acknowledge This signal when at logical ZERO 65 acknowledges the External Interrupt Request.
BRESET-00 Bus Reset This signal is used by the CPU subsystem 4 to clear registers and reset flops throughout the 70 system. It is operative when at logical ZERO.
BUSREF+00 Bus Refresh Line This signal when at logical ONE initiates a memory refresh cycle. It is active for 1 DMA1 75 cycle every 16 microseconds.
Figure 3 is a detailed block diagram of the system and is organized as Figures 3a-3e. The subsystems of Figure 2 are shown separately on Figures 3a-3E. Referring to Figure 3a, the timing 80 and control subsystem 2 comprises an oscillator 2-4 and timing and control logic 2-2. The oscillator provides a square wave signal to the timing and control logic 2-2 which in the preferred embodiment is 19.66 megahertz. The 85 timing and control logic 2-2 provides the logic signals which control the address bus 18, the data bus 16 and the control bus 20 signal timings.
Timing and control logic 2-2 generates 2 90 timing signals CPUPH 1 and CPUPH2 which control the timing of a microprocessor (CPU) 4-2.
CPU 4-2 is a Motorola MC68AOO microprossor described in "Specification DS9471 - dated
1978, published by Motorola Semiconductors, 3501 Ed Bluestein Blvd., Austin, Texas, 7872 1.
The CPU subsystem 4 comprises the microprocessor 4-2 which generates address signals CPUA00-1 5+00 and generates and receives data signals CPUDO-7+OA. The address signals CPUA1-4+00 are applied to a driver 4-4 which is enabled by an output signal of a NAND gate 4-12. The address signals CPUA58+00 are applied to a driver 4-6 which is enabled by an output signal of an AND gate 4-14. The address signals CPUAOO,9-1 5+00 input a driver 4-10 which is enabled by control bus 20 signal CPUADR+ which is generated in timing and control logic 2-2. Address signals CPUAO 15+00 input interrupt and priority logic 4-24 if 110 the CPU 4-2 address is in the hexadecimal form FFF8 or FFF9. These addresss locations are modified in interrupt 4-24 to identify the subsystem requesting an interrupt of the CPU 50, subsystem requesting an interrupt of the CPU subsystem 4. Address signals CPUA00-1 5+00 115 if in the hexadecimal form of memory locations EOXX are applied to decoder 4-8. Address EOXX defines a register in the memory subsystem 10.
Logic signal CPUADR+ is applied to AND gates 4-12 and 4-14. Logic signal IRQACK-, another input to AND 4-12 is low when the CPU 4-2 responds to an interrupt by sending address FFF8 or FFF9 to interrupt and priority logic 4-24. This supresses the output of driver 4-4 signals BUSA1-4+0B and enables the interrupt 4-24 output signals BUSA1-4+0C onto the address bus 18. Logic signal PRIACK-05, another input to AND 4-14 is low during an external device interrupt, that is when the control bus 20 signal EXTIRQ-00 is low. This supresses the output of drivers 4-4 and 4-6, address signals BUSAl8+013 from appearing on address bus 18. The external device option 14 a-f, Figure 3c, inputs signals BUSA1-8+00 from the address bus 18. The output of driver 4-10 signals BUSAOO,91 5+Ob appears on address bus 18 when logic signal CPUADR+ is high. Signal CPUADR+ provides the timing for the address output signals of CPU 4-2 onto address bus 18.
Data signals CPUDO-7-OA connect between CPU 4-2 and junction 16-1 on data bus 16 which connects to the B input of a transceiver 4-18. Logic signal CPURWC+ connects between the CPU 4-2 and the direction (DIR) input of the transceiver 4-18. When signal CPURWC+ is high, data is applied to the CPU 4-2. When signal CPURWC+ is low then data is received from the CPU 4-2. Logic signals CPUDAT+ and INBDATinput a NAND gate 4-16 whose output, logic signal ENBDAT- inputs the enable terminal of transceiver 4-18. Logic signal INBDAT- is an output of decoder 4-8 and enables the transceiver 4-18 when the CPU 4-2 is addressing a register in memory 10 associated with the CRT controller and DMA link 12.
The memory subsystem 10, Figure 3b, comprises 20K words of read only memory (ROM) 10-2 and 8K words of random access memory (RAM) 10-4. ROM 10-2 is made up of ten 2716 circuits described in the Intel Data Catalog, 1977, published by Intel Corporation, 3065 Bowers Ave. , Santa Clara, CA 95051. Each ROM 10-2 circuit stores 8 bits in each of 2048 address locations. RAM 10-4 is made up of sixteen 2104A circuits described in the above Intel Data Catalog. Each RAM 10-4 circuit stores 1 bit in each of 4096 address locations.
Address bus 18 signals BUSA00-11 5+00 input a register 10-6 whose output signals BINA00-11 5+ input a register 10-8. The output signals B] NA00-11 0+ input the ROM 10-2 address terminals and BINA1 1-15+ input a ROM select logic 10-12. ROM select logic 10-12 selects 1 of 10 ROM 10-2 memory chips. Signal BINAOO-1 0+ selects 1 of 2048 address locations in the selected ROM 10-2 memory chip.
The register 10-8 output signals MEMO7+OA are applied to RAM select logic 10-20 on a first cycle and output signals MEMA0-7+013 are applied to RAM select logic 10-20 on a second cycle. The RAM select logic 10-20 output signals MEMO-5- are applied to RAM 10-4 to select 1 of 4096 address locations. The first and second cycle selection logic is not shown since it is not pertinent to the understanding of the invention. Registers 10-6 and 10-8 are enabled by the following logic circuit. Control bus 20, signal MEMSTR-, inputs a NOR 10-16 whose output is delayed 40 nanoseconds by a delay line 10-14, inverted by an inverter 10- 18 and inputs and enable terminal of register 10-6 and 10-8.
6 GB 2 076 191 A 6 The output of ROM 10-2 and RAM 10-4, data signals ROMDO-7+ and RAMDO-7+OA are applied through a junction 16-2 to a register 1010, which is enabled for the time the bus enable signal BUS30+ is high. The output of register 1010, data signal BUSDO-7 +013 is applied through a junction 16-3, Figure 3d, to the B terminal of a transciever 12-14 and the A terminal of a transceiver 4-18, Figure 3a. Transceiver 4-18 connects the memory 10 data output to data bus 16 for connection to CPU 4- 2. Transceiver 12-4 connects the data output of memory 10, data signals BUSDO-7+013 to CRT controller and DMA link 12. The keyboard and switch subsystem 8, Figure 3a, comprises a keyboard 8-2,
a plurality of switches 8-4, a multiplexer 8-6 and a multiplexer 8-8. The keyboard 8-2 and switches 8-4 connect to inputs of MUX 8-6 and 8-8. The output of the MUX's data signals CPUDO-7+OD and CPUDO-7+OE connect to junction 16-1 of data bus 16. The MUX 8-6 is enabled by a decoded addres signal PlAl EN- which is generated by decoder 4-8. MUX 8-8 is enabled by the output of NAND 8-10 whose inputs are signals PIA2ENgenerated by decoder 4-8 and CPURDD-, an output of CPU 4-2. Under control of CPU 4-2 an address signal CPUA00-1 5+00 in the form of hexadecimal address EO 10 received by decoder 4-8 results in logic signal PlAl EN- being forced low to enable MUX 8-6. In a similar manner hexadecimal address E020 causes logic signal PIA2EN- to be forced low in the decoder 4-8 thereby enabling MUX 8-8, when a logic signal CPURDD-, the read data signal, is forced low. Logic signal CPURDD- is generated by a NAND gate 8-12 from the input signals CPUVMA+ indicating a valid address on the address bus 18, the CPURWC+ indicating a write into CPU 4-2 operation and the CPUPH2 timing signal. Address line CPUAOO+ inputs a SELECT terminal 1 of MUX 8-6 and address line CPUA01 + inputs a SELECT terminal 2 of MUX B-6 and a SELECT terminal of MUX 8-8. These address signals select the keyboard and/or switch outputs for connection to junction 16-1 of data bus 16.
The communications subsystem 6, Figure 3e, comprises a universal synchronous, asynchronous receiver transmitter (USART) 6-2, a baud rate generator 6-4 and an external device such as modem 6-6. The USART 6-2 is an 8251 communication interface described in the above Intel Data Catalog. The baud rate generator 6-4 provides the receive clock timing signal RCVCLK and the transmit clock timing signal XMTCLK for the USART 6-2. The baud rates are loaded into the baud rate generator 6-4 under CPU 4-2 control. CPU 4-2 sends out a hexadecimal address E030 on address bks 18 which is decoded in decoder 4-8, as the LDBRG 1 signal. CPU2 then sends encoded baud rate signals on the data bus 16 to the baud rate generator 6-4. These signals are used to clock data transmitters from the USART 6-2 to the modem 6-6 over signal line XMITDA or to clock data received from the modem 6-6 over signal line RCVDAT to the USART 6-2.
USART 6-2 is connected to the data bus 16 by signals CPUDO-7+00. When addressing USART 6-2, CPU 4-2 address signal CPLIA01 + is high, control information is on the data bus 16. The address signal CPLIA01 + low indicates that data information is on the data bus 16. The USART 6-2 reads information from the data bus 16 when logic signal CPURDD, the output of NAND 9-12, is 102. The USART 6-2 writes information on the data bus 16 when logic signal 825 1 WT, the output of a NAND gate 6-8 is low, the inputs to NAND 6-8 are signals CPLIRWC- from an inverter 6-10 and SFIBIT9+, a timing pulse from timing and control logic 2-2. The MEMSTR+ timing strobe, output of timing and control logic 2-2, Figure 3a, gates the data signals CPUDO-7+OC into the USART 6-2.
1 n Figure 3d, the CRT controller and DMA link 12 comprises a CRT controller 12-2, a character generator and video display 12-10, an address counter 12-14, a register 12-12, a driver 12-16 and a transceiver 12-4. The counter 12-14 is loaded by the CPU 4-2 which sends out hexadecimal addresses E031 and E032 on address bus 18. This forces logic signal I-DADDH+, the output of decoder 4-8, high enabling register 12-12. Address location E031 of ROM 10-2, Figure 3b, stores the 8 high order bits of the starting RAM 10-4 address for the video display character. These high order bits are read out of ROM 10-2, through register 10-10, transceiver 12-4, Figure 3d, and are stored in register 12-12 as signals CRTDO-7+1 0. The C13TDO+ 10 signal indicates to the timing and control logic 2-2 to initiate a system reset operation when the decoder 4-8 generates a TCRSI-signal. This logic is shown in Figure 4b.
On the next CPU bus cycle, CPU 4-2 sends out address location E032 of ROM 10-2, and the 8 low order bits are read from ROM 10-2 through register 1010, transceiver 12-4 into counter 1214. The output of register 12-12 signals DMA08-1 5 are also stored in counter 12-14, since the enable signal LDADDL is high. The character generator and video display 12-10 are activated each DMA1 cycle. The output of counter 12-14, memory address BDMAO-1 5+00 appears on address bus 18 through a driver 1216, junction 18-1, Figure 3b, register 10-6, register 10-8, RAM 10-4. Data output signals RAMDO-7+OA input register 1010, junction 16-3, Figure 3d, transceiver 12-4, junction 16-4 to CRT controller 12-2 as data signal CF1TDO7+OA and to the character generator and video display 12-10 as signals CG131TO-6. Signal BUSAK1 -, the output of a NAND gate 12-18 advances the counter 12-14 to indicate the next RAM 10-4 address location. The timing signals SR13IT4- and SR13IT2+ from timing and control logic 2-2, Figure 3a, input NAND 12-18 as does the bus acknowledge signal BUSAK1 which outputs and AND gate 12- 20. The interrupt and priority logic 4-24 outputs a video request signal 7 GB 2 076 191 A 7 VDMARQ- and a DMAK 10 signal which assigns the DMA1 bus cycle timing of Figure 1. These signals input a NAND gate 12-24 whose output VIDACK+ inputs the AND gate 12-20. The other input to AND 12-20 is a CPUADR- signal which is the output of an inverter 12-22 whose input is the control bus 20 timing signal CPUADR+.
Counter 12-14 counts on the rising edge of signal BUSAK 1 -. Timing signal CPUADR- goes high to start a DMA cycle. Logic signal DMAK10goes low for the duration of DMA1 cycle. If the CRT controller and DMA link 12 request a DMA cycle, request signal DVIMARQ- goes low forcing the signal VibACK+ output of NAND gate 12- 24 high. This forces the signal BUSACK 1 + output of AND gate 12-20 high since timing signal CPUADR- is high. The BUSACK l + signal output of AND 12-20 gates the output of driver 12-16, address signals BUSAOO-1 5+OA to be timed to the DMA l address bus cycle since the CPUADRtiming signal defines the DMA address bus 18 timing.
Logic signal BUSAK1 -, the output of NAND gate 12-18 is normally high. It is forced low at the beginning of the DMA1 address bus 18 cycle when timing signals SIRBIT2+ and SFIBIT4-, Figure 4, are high. Logic signal BUSAK1- is forced high when timing signal SIRBIT4- goes low thereby incrementing the address stored in counter 12-14.
Up to six options 14 a-f may connect to the data bus 16, address bus 18 and control bus 20.
Each option may contain an option priority and interrupt logic 14-2, a DMA register and devices 14-4 and a memory 14-6. Option priority and interrupt logic 14-2 connects to signal lines BUSA01-08+00 of address bus 18 and to signal lines PRIACK-05, DMAREQ2 through DMAREQ4 and EXIRO, of control bus 20. Options are wired to signal lines DMAK20-, DMAK30-, 105 or DMAK40- to be operative on DMA2, DMA3 or DMA4 bus cycles respectively.
DMA registers and devices 14-4, Figure 3c, connect to address bus 18 through a register 14 18 and to data bus 16 through a driver 14-10 and a register 14-8. Control signal BUSIRWC connects to the control bus 20 through driver 14-20 to indicate to memory 10 if the peripheral of options 14 a-f will read from or write into memory 10.
DMA registers and devices 14-4 also connect directly to control bus 20. Memory 14-6 connects - to the address bus 18 through register 14-18, connects to the data bus through a register 14-12 and a register 14-14 and connects directly to control bus 20.
Driver 14-10 and register 14-14 are enabled during DMA cycles by control signal CPLIDAT-.
Drivers 14-16 and 14-20 are enabled during DMA cycles by control signals CPLIADR-. The appropriate DMA registers and devices 14-4 and 125 memory 14-6 of their respective options 14 a-f are conne6ted to the data bus 16, address bus 18 and control bus 20 under control of their respective option priority and interrupt logic 14-2 operating in conjunction with interrupt and 130 priority logic 4-24. The relationship between the peripheral options 14 a-f, the data bus 16 and the address bus 18 are disclosed in the related application.
Specific options are wired to be operable on a specific one of the available DIVIA2-DIVIA4 cycles, Figure 1. The options interrupt the CPU by forcing control bus 20 signal EXT1RQ- low thereby signalling interrupt and priority logic 4-24 that an option 14 a-f request service from the CPU 4-2. The options 14 a- f forces the DMAREQ 2-4 request signal assigned to the particular option low to indicate to other options wired to be operative on a particular DMA cycle that the option requested the bus.
The options are not described in detail since a complete understanding of their operation is not necessary for the understanding of the invention but are described only as necessary for someone skilled in the art to understand the complete environment in which the invention operates. A description of the control signals was described previously.
Figure 4 shows the detailed logic of the timing and control logic 2 which generates the address bus 18, data bus 16 and control bus 20 timings. Figure 5 is a timing diagram of the pertinent signals.
The oscillator 2-4 output signal is shown in Figure 5. Each oscillator cycle of the preferred embodiment is 50.85 nanoseconds. This value is chosen to be compatible with the baud rate generator 6-4, Figure 3. The invention described herein, however, is not limited to this value of oscillator cycle timing.
Twenty oscillator output cycles of 1.0 17 microseconds define 1 CPU and 1 DMA cycle and are identified in Figure 5 as time slots 0 through 19.
In Figure 4, the oscillator 2-4, 19.66 megahertz output is applied to the clock terminal of a shifter register 2-6. The shifter register 2-6 output, timing signals SIRBITO+ through SIRBIT3+, are shown in Figure 5.
Signal CPUPH l + and CPUPH2+ are used as clock timing signals for the CPU 2-4. An AND gate 2-8 output signal CPUPH 1 + is high when timing signal SIRBITO+ is high and signal CPUPH2- is high. When timing signal SIRBITO+ goes low during time slot 10 of Figure 5, the output of AND 2-8, signal CPUPH 1 + goes low. An inverter 2-10 output signal CPUPH 1 - goes high as does an inverter 2-16 output signal SIRBITO-. Since both inputs to an AND gate 2-12 are high, the output signal CPUPH2 goes high. When a signal SIRBITO- goes low, the output signal CPUPH2 of AND 2-12 goes low forcing the output of an inverter 2-14 high again forcing the output signal of AND 2-8, CPUPH 'I high. CPU 2-4 timing signals CPUPH 1 and CPUPH2 continue to cycle as shown in Figure 5.
Timing signals CPUADR+ and CPUADR-, the output of a flop 2-18 generate the address bus 18 timing through control of drivers 4-4, 4-6, 4-10, Figure 3a, 12-16, Figure 3d, 14-16 and 14-20, of 8 GB 2 076 191 A 8 Figure 3c. The oscillator 2-4 output signal is connected to the CLOCK input of flop 2-18 and the SR13IT4+ timing signal is connected to the CD input. The flop 2-18 sets on the next rise of the oscillator 2-4 output signal following the rise of the SR13IT4+ timing signal. Flop 2-18 resets on the next rise of the oscillator 2-4 output signal following the fall of the SR13IT4+ timing signal.
Figure 5 shows the address output signals CPUAOO-1 5+ of the CPU 2-4 which were generated using the CPUPH 'I + and CPUPH2+ timing signals, the CPUADR- signal which gates the CPLIA00-1 5+00 address signals and the address bus 18 signals BUSAOO-1 7 which shows the valid CPU address.
Figure 5 also shows the valid DMA address BUSAOO-1 7 when the CPUADRtiming signal is high. This valid DMA address is the gated output of driver 12-16, Figure 3d, and also the gated output drivers 14-16 and 14-20 of options 14 a-f, Figure 3e.
A flop 2-20 generates the data bus 16 timing signals CPUDAT- and CPUDAT+. Flop 2-20 sets on the rise of the oscillator 2-4 clock following the clock cycle in which timing signal SR131TO+ goes 90 high and resets on the rise of the oscillator 2-4 clock following the clock cycle in which timing signal SR131TO+ goes low. Figure 5 shows the CPUDAT- signal defining the DMA data cycle when high and the CPU data cycle when low. The 95 transceiver 4-18, Figure 3a, controls the data bus 16 timing during the CPU cycle through control of the ENABLE terminal by the EN13DAT+ output of NAND 4-16 which is conditioned by the timing signal CPUDAT+. The CPUDATsignal provides 100 the DMA cycle timing for the data bus 16 by controlling the outputs of register 14-14, Figure 3c, and driver 14-10 by signal CPUDAT- and by controlling the WRITE input to CRT controller 12- 2, Figure 3d. The BUSAK1-02 output signal of a 105 NAND 12-28 is low during the DMA1 cycle, Figure 5. The output of a NAND 12-30 signal VIOWRT- is low when logic signal BUS030- is low thereby defining the DMA data bus 16 cycle time for the DMA 'I video display cycle from cycle 110 6 time through cycle 11 time, Figure 5.
Timing signals SR13IT2+ and SR13IT4+ input and AND gate 12-26, Figure 3a, whose output signal T05T1 2+ inputs NAND 12-28 thereby generating the BUSAK 1 -02 output signal.
The memory strobe signal MEMSTR- is generated by a flop 2-22. Timing signals SR13IT6+ and SR13IT9+ input an EXCLUSIVE OR gate 2-32, FIGURE ((A, WHOSE OUTPUT SIGNAL TX7TX9 is connected to the CD terminal of flop 222, Figure 4b. The flop sets on the rise of the oscillator 2-4 clock following the cycle in which the TX7TX9 timing signal goes high and resets on the rise of the oscillator 2-4 clock following the cycle in which TX7TX9 timing signal goes low. 125 Signal MEMSTR- in Figure 5 shows the timing of the flop 2-22. The MEMSTR- signal connects to the output control terminal of register 10-10, Figure 3b and controls the timing of the data signals BUSDO-7+013. In Figure 5, the BUSDO-130 7+ DMA DATA READ and CPU DATA READ signals shows this 'Liming. DMA DATA READ is responsive to a VALID DMA ADDRESS and CPU DATA READ is responsive to a VALID CPU ADDRESS. The MEMSTR+ output signal of flop 2-22, Figure 4b, is a timing signal for USART 6-2, Figure 3e.
A flop 2-28, Figure 4b, generates the BUS030 timing signals. Timing signals SRBITO- and SRBIT4+ input an EXCLUSIVE OR 2-38 whose output signal TX1TX4 is connected to the CD terminal of flop 2-28. Flop 2-28 is set at cycle time 5, the cycle after signal SR4+ goes high, BUSM@3-@'. TIMING, Figure 5, and reset at cyrIe 4 time 11, the cycle after signal SRBITO+ goes low. As described above, signal BUS030- defines the DMA1 data bus 16 cycle during a CRT controller 12-2 write cycle. Signal BUS030+ also controls the memory system 10 output data duration on the data bus 16 during a memory read operation by controlling the output of register 10-10, Figure 3b. Signal BUS030+ performs similar timing functions in memory 14-6 and DMA registers and devices 14-4 of options 14 a-f, Figure 3c.
A flop 2-26 generates the device strobe signal DEVSTR- for use in options 14 a-f. It is set and reset with the same timings as the MEMSTR flop 2-22 and times the options 14 a-f to the address bus 16 and the data bus 18.
A flop 2-24 establishes the timing for refreshing memory 10 and memory 146 in options 14 a-f through the BUSREF+ signal.
A flop 2-30, Figure 4a, generates the BUS01 0- timing signal for options 14 a-f. SRBIT2- and SRBIT7+ input EXCLUSIVE OR 234 whose output signal TX3TX7 connects to the CD terminal of flop 2-30. Flop 2-30 resets on the cycle after the rise of the SRBIT2+ signal and sets on the cycle after the next rise of the SRBIT7+ signal. The timing signal SRBIT2- is generated by an inverter 2-52 inverting the SRBIT2+ signal.
The bus write control signal BUSRWC+ output of a NOR 2-46 is generated from the CPURWC+ and signal from CPU 4-2. Signal CPURWC+ is inverted by an inverter 2-50 whose output signal CPURWC- inputs NOR 2-46. Signal CPUADR+ inputs the other terminal of NOR 2-46. During a CPU bus cycle, signal CPUADR+ is high, therefore the output signal BUSRWC is controlled by the CPURWC- signal which is low when information is read from memory 10 to the CPU 4-2 thereby forcing the control bus 20 BUSRWC+ signal high. When the CPUADR+ signal is low indicating a DMA cycle then the output of NOR 2- 46 is high. In this case the options 14 a-f generate the BUSRWC+ signal on control bus 20 which is forced low when data is to be written into memory 10 from an option 14 a-f device. A 330 ohm resistor 2-52 holds the BUSRWC+ signal line high when an option 14 a-f device has an inactive DMA cycle.
A system reset 2-54, Figure 4a, generates a RESET- signal for resetting all flops in timing and control subsystem 2. In additon, the CPU 4-2 can clear all registers in the options 14 a-f devices 9 GB 2 076 191 A 9.
by sending an address to the decoder 4-8 which generates a TCRSI-- signal to enable a register 2 56 which stores the data bus 16 signal CRT1300+ 10 and outputs it as signal BRESET-OA which inputs a driver 2-48. The driver 2-48 sends 70 the aforementioned control signals out on control bus 20.
The interrupt and priority logic 4-24 receives interrupt request from the various subsystems coupled to the bus. A fixed priority is established by the interrupt and priority logic 4-24.
Referring to Figure 6, the highest priority subsystem, a communication option, signal EXTCOM- is applied to an input of a register 438. An output signal INTPR1 -00 is applied to input terminal 5 of an encoder 4- 40.
The receive data operation of the communications 6 subsystem has the next highest priority and the transmit data operation has the third highest priority. For the receive operation a signal RMNIF- is applied to an input of register 4-38. An output signal INTPR1 -01 is applied to input terminal 4 of encoder 4-40. For the transmit operation a signal XIVITINF- is applied to an input of register 4-38. An output signal INTPR1-02 is applied to input terminal 3 of encoder 4-40.
The keyboard 8 subsystem has the fourth highest priority. A signal KY131NF- is applied to an input of register 4-38. A signal INTPR1 -03 is applied to input terminal 2 of encoder 4-40.
The CRT 12 subsystem has the fifth highest priority. A signal SPINTFsignal is applied to an input of register 4-38. An output signal INTPR 1 -04 is applied to input terminal 1 of 100 encoder 4-40.
The peripheral options 14 a-f have the lowest priority. A signal EXT1RQis applied to an input of register 4-38. An output signal INTPR1 -05 is applied to input terminal 0 of encoder 4-40. 105 The encoder 4-40 is a 74148 8-line to 3-line priority encoder. The encoded output signals are operative for the highest priority input signal to the encoder 4-40.
A CPU 1 RQ- output signal from encoder 4-40 is 110 applied to the input terminal of CPU 4-2, Figure 3a. This signal, at logical ZERO, allows the CPU 4 2 to complete the current instruction and if properly conditioned, the CPU 4-2 goes into an interrupt mode. The CPU 4-2 forces the CPU address bus 19 signals CPUAOO- 1 5+00 to hexadecimal FIFF8 on the first CPU cycle and hexadecimal FIFF9 on the second CPU cycle.
The CPUM+ to CPUl 5+ signals input to a NAND gate 4-44 are at logical ONE when hexadecimal F17XX is on the address bus 18.
Similarly, when hexadecimal signals XXF8 or MF9 are on the address bus 18, and a CPU 4-2 signal CPUVIVIA+ is at logical ONE indicating a valid address, the inputs to a NAND gate 4-46 are 125 at logical ONE. The CPUAO1 + and CPU02+ signals at logical ZERO are applied to the input of a NAND gate 4-78. The output signal CPU 102 applied to AND gate 4-46 is at logical ONE. Both inputs to a NAND gate 448 at logical ZERO 130 forces the output signal 1RQACK+ to logical ONE thereby indicating that CPU 4-2 has acknowledged the interrupt.
The output signals ADDA01 -, ADDA02- and ADDA03- which are coded to indicate the subsystem requesting the interrupt are applied to the inputs of a decoder 4-42 and through inverters 4-54, 4-56 and 4-58 to the inputs of a driver 4-64 as signals ADDA01 +, ADDA02+ and ADDA03+.
Signal 1RQACK+ is applied to an enable AND input of decoder 4-42, and to an input of a NAND gate 4-66. Signal ACKENA, the output of a timing NOR gate 4-50, is at logical ZERO when timing signals SRI3IT4+ and SRBIT9+ are at logical ONE. Signal CPUADR+OA is applied to an input of NAND gate 4-66 and indicates a CPU bus cycle when at logical ONE.
If the subsystem requesting an interrupt is from an internal subsystem then the output signals COMACK- and PRIACK- which are at logical ONE are applied to the inputs of an OR gate 4-68. The output signal PRIACK-05 at logical ONE is applied to another input of NAND gate 4-66. The output signal MYVECT- at logical ZERO enables a driver 4-64 and puts out on the address bus 18 signals BUSA01 +OC through BUSA04+0C, which indicates to the system the subsystem which is interrupting. As described supra, hexadecimal FF1FX on the address bus 18 is the starting address of an interrupt service routine which the microprocessor will execute. D flops 430, 4-32, 4-34 and 4-36 are set by interrupt request signals INTROO+, KY1NT1 +, MTIN+ and IRCVRIN+ respectively from the CRT 12 subsystem, the keyboard 8 subsystem and the communications 6 subsystem.
The flops 4-30 through 4-36 are masked out or prevented from setting under control of CPU 42 which generates signals CRTD02-05+1 0 over the data bus 16 which are applied to a register 480. The CPU 4-2 also puts an address out on the address bus which is decoded in decoder 4-8, Figure 3a, as signal TCR2SL which enables register 4-80. The output signals VIDINT, KYSINT, XIVITINT and RCVINT are applied to inputs of OR gates 4-76, 4-74, 4-72 and 4-70 respectively. When these signals are at logical ZERO, the outputs of OR gates 4-70 through 4-76 are at logical ZERO, preventing flops 4-30 through 4-36 from being set since the reset input terminals are at logical ZERO.
The flops are normally reset when one of the output signals, PRIACK-01 through PRIACK-04, of decoder 4-42 is forced to logical ZERO, thereby forcing the respective output of OR gate 4-70 through 4-76 to logical ZERO thereby resetting the respective flop 4-30 through 4-36.
When the CPU 4-2 acknowledges an interrupt, a D flop 4-60 is set at SRBIT7+ time. When the output signal INTACK is at logical ONE the output of a NAND gate 4-62 is forced to logical ZERO thereby preventing other subsystems from interrupting until the completion of the interrupt being processed.
GB 2 076 191 A 10 When the interrupt is from the peripheral option 14 a-f, the signal PRIACK-50 output of decoder 4-42 is forced to logical ZERO. This forces signal PRIACK-05, the output of OR gate 4-68 to logical ZERO. Now referring to Figure 3a, the signal PRIACK-05 input to AND gate 4-14 at logical ZERO disables driver 4-6. Also, driver 4-4 is disabled by the logical signal 1RQACK- at logical ZERO input to AND gate 4-12. Referring to Figure 6, the logic signal PRIACK-05 input to NAND gate 4-66 disables driver 4-64. The bus address signals BUSA01 -08 are supplied by the interrupting option as described supra.
The signal COMACK-00 operates with the external communications options device 25 in a manner similar to the way PRIACK-50 operates with the peripheral options 14 a-f.
Referring to Figure 6, on the CPU cycle following the cycle on which the CPU 4-2 placed hexadecimal address FFF9 on the address bus 18, 85 another address applied to the inputs of NAND gate 4-44 and 4-46 will force signal IF1i2ACK+ to logical ZERO conditioning flop 4-60 to reset at SFIBIT7+ time, thereby enabling register 4-38 at SR131T1 + time to receive other interrupt signals.
Referring to Figure 7, when the option device 14-88 requests an access to the bus the interrupt request signal line is forced to logical ONE thereby setting a D flop 14-30. Output signal MY1ROS at logical ONE is applied to the input of an AND gate 95 14-36. Since signal PRIACK-05 is at logical one when no option 14 a-f is interrupting, the other input of AND gate 14-36 is at logical ONE through inverters 14-32 and 14-34. The output signal of AND gate 14-36 is applied to the J terminal of a JK flop 14-38 which sets during the 100 rise of the signal CPUADR- which is applied to the CLK terminal of flop 1438 through a NAND gate 14-44 and an inverter 14-46.
The output signal MY1RQF is applied to the inputs of a NAND gate 14-54 and an inverter 14- 105 90. The output of inverter 14-90 at logical ZERO forces signal EXT1RQ to logical ZERO thereby requesting an interrupt of the central processor 4 2 as described supra. The CPU 4-2 can prevent the option device 14-88 from interrupting by forcing the interrupt mask signal line to logical ZERO preventing flop 14-38 from setting. This is done by sending a predetermined address signal, hexadecimal EXXX, decoded from the address bus signals BUSAO-1 5+00 in option address selection logic 14-91 to enable a register 14-40 and applying a prewired signal BUSDXX over data bus 16 to register 14-40.
The signal EXTIRO, at logical ZERO is applied to the input of register 4-38 (Figure 6). Output signal 120 INTPR1-05 at logical ZERO is applied to the terminal 0 of encoder 4-40. Output signal CPLI1RQ- at logical ZERO is applied to the CPU 4- 2. The CPU 4-2, when it completes its operation, sends out the hexadecimal address FFF8 on CPU 125 address bus 19. These signals are applied to the inputs of NAND gates 4-44 and 4-46 and generate an acknowledge signal 1RQACK+ which enables decoder 4-42. Address signals ADDAO 1 -, ADDA02- and ADDA03- are all at logical ZERO forcing the output signal PRIACK-50 to logical ZERO. This forces the OR gate 4-68 output signal PRIACK-05 to logical ZERO.
Referring to Figure 7, the inputs to one AND gate 14-56 are at logical ONE. Signal PRIACK-05 is applied through inverter 14-32 to one input, signal CPUADR- is applied through inverters 14-48 and 14-50 to another input, and signal MY1ROF is applied to the other input of z AND gate 14-56. The output signal MY1RQA at logical ONE is applied to the input on an OR gate 14-62 whose output enables drivers 14-66 and 14-68. A switch bank 14-76 is preset to provide a unique 8 address bits to identify the option device 14-88. These signals are applied to the input terminal 0 of MUXs 14-64 and 14-72. Control signal CPUADR- is applied to the select terminal of MUXs 14-64 and 14-72. Input terminal 0 is selected for the CPU cycle and input terminal 1 is selected for the DMA cycle.
Control signal DEVSTR- is applied to the input of a NAND gate 14-60. The output signal DEVSTR+ is applied to the clock terminal of flop 14-52, setting the flop on the rise of the DEVSTR+ signal. Output signal MY1RQG at logical ZERO is applied to the K terminal of flop 14-38, conditions the flop for resetting at the next rise of control signal CPUADR- thereby forcing the EXTIRO. signal high.
During the DMA cycle when the option is operative with the bus, a memory address generator 14-82 provides the memory 10 address, signals BDIVIA0-1 5+00. The operation of the-generator 14-82 is similar to that of the counter 12-14, register 12-12 and driver 12-16 of Figure 3d.
Signal BDIVIA0-1 5+00 is applied to input terminal 1 of MUXs 14-64 and 1472. The output signals of MUXs 14-64 and 14-72 are applied to the input of drivers 14-66 and 14-68. Signals BDIVIA0,9-1 5+00 are applied to the inputs of driver 14-70 and 14-78. An OR gate output is applied to the enable terminals of drivers 14-66, 14-68, 14-70 and 14-78. Drivers 14-66 and 1468 are enabled during the CPU cycle when signal MY1RQA is at logical ONE when the option senqs BUSA1 -8+00 signals to memory 10 which represent the lower order hexadecimal digits of the ROM 10-2 address of the firmware routine. which process the interrupt.
Drivers 14-66, 14-68, 14-70 and 14-78 are enabled during the DMA cycle by signal MYDIV1AA at logical ONE when the option sends address signals BUSAO-1 5+00 to memory 10 during the transfer of data over data bus 16.
During the second CPU cycle that CPU 4-2 sends out hexadecimal address FFF9 on CPU address bus 19, signal BUSAO+ at logical ONE is applied to the input of an AND gate 14-58. Signal MY1RQA, at logical ONE, is applied to the other input of AND gate 14-58, the J terminal of a JK flop 14-52. 11 GB 2 076 191 A 11 Signal EXTIR12 is applied to each of the priority and
interrupt logic 14- 2 of each of the options 14 a-f in the system. Any option requesting an interrupt pulls the signal EXTIF1Q to logical zero by setting its respective flop 14-38. The interrupt and priority logic 4-24, Figure 6, responds by forcing signal PRIACK-05 to logical ZERO. Signal PRIACK-05 is wired through NAND gate 14-54, Figure 7, of each option priority and interrupt logic 14-2 of options 14 a-f in a -daisy chain" fashion. The priority of the options is established by the position of the option in the -daisy chain---.
Since signal PRIACK-05 is wired in series - through the options, the first option to which signal PRIACK-05 is wired has top priority, the 5th option has fifth priority and so forth. Note that 80 if PRIACK-05 at logical ZERO is applied to NAND gate 1454 and flop 14-38 is set then the output of NAND gate 14-54 is at logical ONE, preventing options further down the daisy chain from responding to their respective interrupt acknowledge.
Referring to Figure 8 which is a timing diagram of an option request for an interrupt signal MY1RQ5 is set to logical ONE. This causes signal MY1ROF to be set at the rise of signal CPUADR-.
Signal EXTIR12 is forced to logical ZERO when signal MY1R12F is at logical ONE. Signal EXTIF1Q at logical ZERO forces signal CPUM- to logical ZERO causing CPU 4-2 to place hexadecimal address FFF8 on the address bus (CPUAM) during a CPU cycle by means of signal CPUADR.
Hexadecimal address FFF8 is sensed by the logic and signal IROACK is generated which forces option acknowledge signal PRIACK-05 to logical ZERO. This forces signal MY1RIDA to logical ONE 100 at the fall of signal CPUADR- which gates option bus address signal BUSA 1 -8 out on the address bus 18. Also signal INTACK is forced to logical ONE to prevent other subsystems with higher priority from interrupting. 105 Hexadecimal address FFF9 is generated by the CPU 4-2 and placed on the address bus during the next CPU cycle. This conditions signal MY1ROF+ to logical ZERO on the fall of signal DEVSTR, Also address signal BUSA 1 -8 is again 110 placed on the external address bus. On the previous CPU cycle address signal BUSA 1 -8 indicated an even address. During this CPU cycle address signal BUS 1 -8 indicates the next consecutive address. This address is incremented 115 by placing a logical ONE in the BUSAOO+00 position. MY1ROA at logical ZERO forces signal MY1RQS to logical ZERO and conditions MY1RI0F+ to logical ZERO (EXTIRQto logical ONE) or the rise of signal CPUADR-. Signal MY1RiDG+ is forced to logical ONE on the fall of 120 signal DEVSTR-. Signal IRIDACK remains at logical ZERO on the third CPU cycle which conditions INTACK to logical ZERO at SRBIT7 time.
Claims (7)
1. A terminal system comprising:
a system bus; a memory subsystem coupled to said system bus and storing service routines in a read only memory; a central processor subsystem coupled to said system bus including a microprocessor for generating a plurality of predetermined address signals in response to a microprocessor interrupt request signal; a plurality of peripheral device subsystems coupled to said system bus, said system bus including an external request interrupt signal line coupled in common to each of said plurality of peripheral device subsystems and said central processor subsystem, said system bus further including a plurality of external acknowledge interrupt signal lines coupled serially to each of said plurality of peripheral devices and said central processor subsystem, one of said plurality of peripheral device subsystems forcing said external request interrupt signal line to a first level, said one of said plurality of peripheral device subsystems being responsive to one of said plurality of external acknowledge interrupt signal lines at a first level for sending a plurality of address signals over said system bus to modfy said predetermined address signals, said modified address signals being applied to said memory for reading a first location in said memory storing a first word of said service routines, said first word and subsequent words of said service routine being applied to said central processor unit for activating said one of said plurality of peripheral device subsystems; said central processor subsystem further including interrupt and priority means responsive to an external request interrupt signal for generating a signal on a first of said plurality of external acknowledge interrupt signal lines.
2. A system according to Claim 1 wherein said plurality of subsystems comprises: a peripheral device generating an interrupt request signal when requesting access to said memory; interrupt means responsive to said interrupt request signal for forcing said external request interrupt signal line to said first level, said interrupt means being responsive to selected ones of said plurality of external acknowledge signal lines at said first level for generating a request interrupt address signal; address generating means responsive to said request interrupt address signal for sending said plurality of address signals over said system bus for modifying said predetermined address signals.
3. A system according to Claim 2 wherein said interrupt means comprises: interrupt start means for storing said interrupt request signal; interrupt synchronization means coupled to said start means for storing at the start of a CPU cycle said interrupt request signal when said selected ones of said plurality of external acknowledge interrupt signal lines are at a second level and generating a synchronization signal, said 12 GB 2 076 191 A 12 synchronization signal forcing said external request interrupt signal line to said first level; ANDing means responsive to said synchronization signal, said selected ones of said plurality of external acknowledge interrupt signal lines at said first level for generating said request interrupt address signal at the start of said CPU cycle.
4. A system according to Claim 2 or Claim 3 wherein said address generating means comprise:
first means for generating said plurality of address signals; driver means coupled to said first means and 45 responsive to said request interrupt address signal for sending said plurality of address signals over said system bus for modifying said predetermined address signals.
5. A system according to any preceding claim wherein said plurality of peripheral device subsystems comprises:
a first peripheral device subsystem having a first priority coupled to said central processor subsystem and responsive to said first of said plurality of external acknowledge interrupt signals generated by said central processor unit for generating a first plurality of address signals; a second peripheral device subsystem having a second priority coupled to said first peripheral device subsystem and responsive to a second of said plurality of external acknowledge interrupt signal lines generated by said first peripheral device subsystems for generating a second plurality of address signals; and an nth peripheral device subsystem having an nth priority coupled to an n-1 st peripheral device subsystem and responsive to an nth of said plurality of external acknowledge interrupt signal lines generated by said n-1 at peripheral device subsystem for generating an nth plurality of address signals.
6. A system according to Claim 5 wherein each of said plurality of peripheral device subsystems includes priority means responsive to said synchronization signal for forcing said selected ones of said plurality of external acknowledge interrupt signal lines to said first level thereby preventing said plurality of subsystems having lower priority from being responsive to said selected ones of said plurality of external acknowledge interrupt signal lines at a second level.
7. A system according to any preceding claim wherein said interrupt and priority means comprises:
register means for storing said external request interrupt signal line at said first level; encoder means coupled to said register means and responsive to said external request interrupt signal line at said first level for generating a plurality of encoder signals; decoder means coupled to said encoder means and responsive to said plurality of encoder signals for generating said first of said plurality of external acknowledge interrupt signal lines.
Printed for Her Majesty's Stationery Office by the Courier Press, Leamington Spa, 1981. Published by the Patent Office, 25 Southampton Buildings, London, WC2A l AY, from which copies maybe obtained.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US05/973,364 US4225942A (en) | 1978-12-26 | 1978-12-26 | Daisy chaining of device interrupts in a cathode ray tube device |
| US05/973,290 US4263648A (en) | 1978-12-26 | 1978-12-26 | Split system bus cycle for direct memory access of peripherals in a cathode ray tube display system |
| US05/973,462 US4240140A (en) | 1978-12-26 | 1978-12-26 | CRT display terminal priority interrupt apparatus for generating vectored addresses |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| GB2076191A true GB2076191A (en) | 1981-11-25 |
| GB2076191B GB2076191B (en) | 1983-06-02 |
Family
ID=27420767
Family Applications (3)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| GB8120784A Expired GB2076192B (en) | 1978-12-26 | 1979-12-13 | Improvements in or relating to terminal systems for data processors |
| GB7942983A Expired GB2038517B (en) | 1978-12-26 | 1979-12-13 | Interrupt system |
| GB8120783A Expired GB2076191B (en) | 1978-12-26 | 1979-12-13 | Improvements in or relating to terminal systems for data processors |
Family Applications Before (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| GB8120784A Expired GB2076192B (en) | 1978-12-26 | 1979-12-13 | Improvements in or relating to terminal systems for data processors |
| GB7942983A Expired GB2038517B (en) | 1978-12-26 | 1979-12-13 | Interrupt system |
Country Status (3)
| Country | Link |
|---|---|
| DE (1) | DE2952326A1 (en) |
| FR (1) | FR2445558B1 (en) |
| GB (3) | GB2076192B (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2147719A (en) * | 1980-10-20 | 1985-05-15 | Digital Equipment Corp | Improved system for interrupt arbitration |
| GB2216368A (en) * | 1988-02-24 | 1989-10-04 | Ardent Computer Corp | Bus arbitration method and apparatus |
| GB2225882A (en) * | 1988-12-06 | 1990-06-13 | Flare Technology Limited | Computer bus structure for multiple processors |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2157033B (en) * | 1984-09-22 | 1986-04-16 | Tippey Keith Edward | Control device for computer |
| DE10032359C1 (en) * | 2000-07-04 | 2001-11-08 | Fraunhofer Ges Forschung | Tree uprooting method uses high pressure water jet directed into ground at required angle for separating root ball from surrounding earth |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3800287A (en) * | 1972-06-27 | 1974-03-26 | Honeywell Inf Systems | Data processing system having automatic interrupt identification technique |
| US3881174A (en) * | 1974-01-18 | 1975-04-29 | Process Computer Systems Inc | Peripheral interrupt apparatus for digital computer system |
| US4041469A (en) * | 1974-12-13 | 1977-08-09 | Pertec Corporation | CRT key station which is responsive to centralized control |
| US4030075A (en) * | 1975-06-30 | 1977-06-14 | Honeywell Information Systems, Inc. | Data processing system having distributed priority network |
| FR2316660A1 (en) * | 1975-06-30 | 1977-01-28 | Honeywell Inf Systems | COMPUTER DEVICE CONTAINING A COMMON INPUT / OUTPUT LINE |
| US4090238A (en) * | 1976-10-04 | 1978-05-16 | Rca Corporation | Priority vectored interrupt using direct memory access |
-
1979
- 1979-12-13 GB GB8120784A patent/GB2076192B/en not_active Expired
- 1979-12-13 GB GB7942983A patent/GB2038517B/en not_active Expired
- 1979-12-13 GB GB8120783A patent/GB2076191B/en not_active Expired
- 1979-12-21 FR FR7931451A patent/FR2445558B1/en not_active Expired
- 1979-12-24 DE DE19792952326 patent/DE2952326A1/en not_active Withdrawn
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2147719A (en) * | 1980-10-20 | 1985-05-15 | Digital Equipment Corp | Improved system for interrupt arbitration |
| GB2216368A (en) * | 1988-02-24 | 1989-10-04 | Ardent Computer Corp | Bus arbitration method and apparatus |
| GB2216368B (en) * | 1988-02-24 | 1992-04-08 | Ardent Computer Corp | Bus arbitration method and apparatus |
| GB2225882A (en) * | 1988-12-06 | 1990-06-13 | Flare Technology Limited | Computer bus structure for multiple processors |
Also Published As
| Publication number | Publication date |
|---|---|
| GB2038517A (en) | 1980-07-23 |
| GB2076191B (en) | 1983-06-02 |
| DE2952326A1 (en) | 1980-07-10 |
| GB2076192B (en) | 1983-06-02 |
| GB2038517B (en) | 1983-05-11 |
| GB2076192A (en) | 1981-11-25 |
| FR2445558B1 (en) | 1988-01-15 |
| FR2445558A1 (en) | 1980-07-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4240140A (en) | CRT display terminal priority interrupt apparatus for generating vectored addresses | |
| US6622188B1 (en) | 12C bus expansion apparatus and method therefor | |
| EP0023568B1 (en) | Data interface mechanism for interfacing bit-parallel data buses of different bit width | |
| JPS6161408B2 (en) | ||
| US4204206A (en) | Video display system | |
| KR940002088B1 (en) | Method and apparatus for transferring data items | |
| EP0009678B1 (en) | Computer input/output apparatus | |
| US4558412A (en) | Direct memory access revolving priority apparatus | |
| US4261034A (en) | Remote distributed interrupt control for computer peripherals | |
| US4797809A (en) | Direct memory access device for multidimensional data transfers | |
| US3921148A (en) | Business machine communication system and data display | |
| US4462028A (en) | Access control logic for video terminal display memory | |
| US4418343A (en) | CRT Refresh memory system | |
| JPH0713908A (en) | Method and apparatus for provision of back- to-back data transfer in information- processing system with multiplex bus | |
| US4156277A (en) | Access request mechanism for a serial data input/output system | |
| EP0786756A1 (en) | Data transfer arbitration for display controller | |
| US6397279B1 (en) | Smart retry system that reduces wasted bus transactions associated with master retries | |
| US4665482A (en) | Data multiplex control facility | |
| US4181933A (en) | Memory access and sharing control system | |
| US4263648A (en) | Split system bus cycle for direct memory access of peripherals in a cathode ray tube display system | |
| US4225942A (en) | Daisy chaining of device interrupts in a cathode ray tube device | |
| JPH0217818B2 (en) | ||
| US5689660A (en) | Enhanced peripheral component interconnect bus protocol | |
| GB2076191A (en) | Improvements In or Relating to Terminal Systems for Data Processors | |
| JPS58502027A (en) | Peripherals adapted to monitor low data rate serial input/output interfaces |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PCNP | Patent ceased through non-payment of renewal fee |