WO1989001662A1 - Computer system providing address modification for use also with dma and interrupts - Google Patents

Computer system providing address modification for use also with dma and interrupts Download PDF

Info

Publication number
WO1989001662A1
WO1989001662A1 PCT/US1988/000613 US8800613W WO8901662A1 WO 1989001662 A1 WO1989001662 A1 WO 1989001662A1 US 8800613 W US8800613 W US 8800613W WO 8901662 A1 WO8901662 A1 WO 8901662A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
store
signal
computer
channel
Prior art date
Application number
PCT/US1988/000613
Other languages
French (fr)
Inventor
Bruce Allan Fairman
Allen John Larsen
William Gerard Swinton
Robert Gramps Taylor, Jr.
Original Assignee
Tandon Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US07/084,318 external-priority patent/US4849875A/en
Application filed by Tandon Corporation filed Critical Tandon Corporation
Priority to KR1019890700612A priority Critical patent/KR960005392B1/en
Publication of WO1989001662A1 publication Critical patent/WO1989001662A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]

Definitions

  • a designer of a data processing system or computer has typically had to accept a design compromise when selecting the maximum physical address space for the system. If a large address space is selected, the cost of the system is increased. Not only must the number of physical wires, drivers, connectors and related components be increased, but the address data size and storage requirements increase as well. For example, a 32 bit address requires twice the storage space of a 16 bit address. However, if the address space of a system is too limited, system performance will be degraded for complex operations which require quick access to a large amount of memory.
  • mapping memory or paging memory stores the most significant address bits for an expanded address space. For example, a system having a 20 bit address bus that can address 1 megabyte of memory might be used with a mapping memory that provides an additional 4 bits of addressing to accommodate a 16 megabyte address space.
  • mapping memory Certain locations in the original memory or I/O address space of the computer are reserved for accessing the mapping memory so that the stored most signi icant 4 address bits can be selectively changed. Once these bits are selected and written into the mapping memory, the computer can use its original address lines to address any location within a page or subset of the expanded memory that is defined by the most significant address bits stored in the mapping memory.
  • mapping memory can also store less significant address bits that overlap the original computer address bits.
  • the overlapping mapper and computer address bits are added together to obtain the final extended memory space address.
  • the popular INTEL 8088 and 8086 microprocessors essentially use this technique.
  • Each 20 bit output address is a sum of a 16 bit offset address and a 16 bit segment address that is shifted left 4 bit positions relative to the offset address. This enables most instructions to refer to one of 64K memory locations within a segment using a 16 bit offset address.
  • the segment boundaries can be changed by providing an additional 16 bit segment address to increase the total address space to one megabyte anytime it becomes necessary.
  • a more recent INTEL 80286 microprocessor is operable in a real mode which emulates the INTEL 8086 microprocessor or a protected mode which extends the address space from 1 megabyte to 16 megabytes. While price decreases for memory chips and increasing software complexity make it desirable to use the increased memory capacity, the protected mode in which the increased capacity is available is not compatible with the prior microprocessors. Software manufacturers have thus largely written software for the real mode to attain compatibility with the prior machines and maximize the available market size for their products.
  • the extended memory capacity is generally used only for specialized applications such as a RAM disk which uses memory to simulate a disk drive.
  • the address modification system of the present invention provides memory access conversion functions which provide a window to an expanded memory space while operating in a real mode or a mode that is compatible therewith.
  • the system provides a full function availability of the extended memory space, not only for memory word accesses, but for direct memory access (DMA) operations while retaining full compatibility with hardware interrupt processing.
  • DMA direct memory access
  • a computer system in accordance with the invention includes a CPU, a bus controller, an I/O controller, a computer address modification system and I/O devices such as DMA controllers and interrupt controllers.
  • An adaptive bus network connects the modification system within the computer system.
  • the modification system includes a mapper RAM,, a page register and a control register which selectively enables the modification system and various modes of operation for the system.
  • a 41 register page register provides selective page addressing for each possible 16K block of each DMA transfer channel.
  • FIG. 1 is a block diagram representation of a computer system in accordance with the invention having a computer address modification system
  • Fig. 2 is a block diagram of a computer address modification system used in the computer system shown in Fig. 1;
  • Fig. 3 is a block diagram showing in greater detail an output portion of the computer address modification system shown in Fig. 2;
  • Fig. 4 is a block diagram representation of a mapper ram used in the computer address modification system shown in Fig. 2;
  • Fig. 5 is a block diagram representation of the logic within the computer address conditioning system shown" in Fig. 2 for generating certain output address signals;
  • Figs. 6-20 are block diagrams of a specific implementation of the computer address modification system.
  • a computer system 10 in accordance with the invention is designed to provide compatibility with a popular PC AT computer system manufactured by International Business Machines, Incorporated.
  • the computer system 10 includes an 80286 central processing unit 12, an 80287 math coprocessor 14 made by INTEL, a clock generator and ous controller 16, and an- I/O controller 18.
  • Clock generator and bus controller 16 provides a nominal 8 MHz clock signal as well as numerous gating signals for enabling bus transfers within system 10.
  • the detailed timing and control implementations of the system 10 are conventional. Thus, to facilitate understanding, only the significant data and address signal paths are shown in Fig. 1. However, the required control and gating signals should be implemented in a conventional manner to provide proper system operation. Similarly the detailed circuitry and associated control and gating signals of I/O controller 18 have not been shown. These can be implemented in a conventional manner to provide proper input/output data transfers.
  • I/O controller 18 incorporates the conventional IBM PC AT page registers.
  • the INTEL 80286 CPU 12 is operable in either a real mode or a protected mode.
  • real mode CPU 12 emulates an INTEL 80286 CPU and has an address space of 1 megabyte with the space above 640 kilobytes being reserved for ROM BIOS, video buffers and other system functions.
  • the system 10 therefore includes a computer address modification system 20 which receives system addresses in the 1 ' megabyte address space and selectively translates these addresses in 16 kilobyte blocks to a 16 megabyte address space.
  • the translation is transparent to operating programs and therefore maintains compatibility with programs written for the older CPU's.
  • Modification system 20 provides for selective translation of DMA (direct memory address) operations in 16K blocks and selectively inhibits memory mapping upon processing a response routine for a nonmaskable interrupt (NMD or a maskable interrupt.
  • NMD nonmaskable interrupt
  • system 20 operates in a clone mode in which a conventional real mode for the 80286 CPU 12 is implemented.
  • the modification system 20 can be operated in a mapping mode in which both CPU 20 memory accesses and DMA accesses are selectively transferred in 16K clocks from an address in 1 megabyte memory space to an address in 16 megabyte memory space on a 16K boundary. Looking first at the system 10 data paths, the
  • 16 bit CPU data bus 26 couples through a gate 28 to two upper and lower 8 bit system data buses, SD8-SD15 30 and SDO-SD7 32.
  • a gate 34 allows data to be selectively transferred between the upper and lower data buses 30, 32.
  • a gate 38 couples the system data buses 30, 32 to corresponding memory data buses MD8-15 40 and MDO-7 42.
  • Memory data buses 40, 42 in turn couple to a data store 44 which includes in a conventional manner, random access memory in the 0-640K memory space, BIOS ROM, and extended RAM in the extended 1M to 16M memory space.
  • System data bus 32 also couples through a gate 46 to a local I/O bus XD0-XD7 48 which connects to system 10 I/O devices including DMA controllers 50.
  • Other devices connected to local I/O bus 48 may include parallel and serial ports 52, interrupt controllers 54 providing
  • a CPU address bus A0-A23 couples to modification system 20 while the signal lines for lower order bits A0-A13 further couple to a gate 62. These lower bits define an address within a 16K block. Since address translation occurs in 16K blocks, these bits are not required to accomplish address modification and they can be coupled directly to gate 62.
  • Modification system 20 produces translated address portions in a translation address bus TA14-TA23 64 which couples to gate 62 as well as a gate 66.
  • Gate 66 provides communication with a local address bus LA17-LA23 68 which provides communication with optional I/O system expansion boards.
  • Gate 62 provides communication with a system address bus SA0-SA19 74 which also couples to the I/O boards and through a gate 70 to a DMA address bus XA0-XA16 72.
  • Signal SAO is communicated from CPU bus 60 signal AO through bus controller 16 so that it can be adjusted to accommodate swapping of a data byte between the upper and lower portions of the system data buses 30, 32.
  • DMA channels 0, 1, 2 and 3 are byte channels that can access 64K bytes of data. Address bits 14 and 15 thus define 1 of 4 16K blocks within this space. DMA channels 4, 5 and 6 are word (2 bytes) channels and can access 128K bytes of data. Address bits 14, 15 and 16 then define one of 8 16K blocks within the available address space.
  • a latch 76 receives data from local I/O data bus
  • Latch 76 couples to local I/O address bus 72.
  • Latch 76 also couples data bus 48 to a DMA extension bus DX14-DX16 80 which communicates DMA address data bits DX14-DX16 to modification system 20.
  • a gate 82 selectively transfers address bits DX14-DX16 to CPU address lines A14-A16 for input to modification system 20.
  • a gate 84 then transfers translated address signals TA14-TA15 back down to signal paths XA14-XA15 to be used as a DMA address on bus 86.
  • modification system 20 In clone mode all addresses are passed through modification system 20 without change and the system operates as a conventional 80286 processing system. However, once modification system 20 is switched to a mapping mode memory addresses are selectively translated in 16K blocks to any selected location in 16 megabyte memory space. Each different 16K block within the first megabyte may be individually translated to a different location. If the CPU operates in protected mode and asserts a CPU address above 1 megabyte, translation is automatically disabled.
  • the modification system may be controlled to selectively disable mapping while the CPU processes an interrupt response routine. Separate paging is provided for each 16K block for each different DMA channel. Individual paging for each 16K block may be selectively enabled or disabled for each DMA channel.
  • CPU address bus 60 When the CPU accesses memory in clone (no translation) mode CPU address bus 60 carries bits A0-A13 through gate 62 to system address bus 74 and then to data store 44. The upper address bits A14-A24 pass through modification system 20 unchanged. They are output on translated address bus 64 for communication through gate 62 and system address bus 74 to data store 44. If mapper mode is enabled the address data path is essentially the same except that modification system 20 selectively changes address bus signals A14-A24.
  • I/O controller 18 When system control is granted to a DMA controller 50 I/O controller 18 generates signal -XACK and couples the DMA address from local I/O bus XA0-XA16 72 through gate 70 to system address bus 74. Bits DX14-DX16 are input directly to modification system 20 through bus 80 while bits AX1-AX13 are coupled through gate 70 to system address bus 74. The selectively modified address bits 14-16 are output on bus XA14-XA16 86 which connects to corresponding signals XA14-XA16 on bus 72. Address data is then coupled through gate 70 and system address bus 74 to data store 44.
  • an interrupt controller 54 Upon the occurrence of an interrupt an interrupt controller 54 places a vector type which defines an interrupt response vector address, onto the DMA data bus XD0-XD7. This vector type is then communicated to modification system 20 where it is stored. It is also made available to the CPU 12 through gate 46, system data bus 32 and CPU data bus 26. When CPU 12 responds to the 5 interrupt request it places the vector type shifted left 2 bit positions as an address on the CPU address bus 60. When this bus input matches the vector type previously stored by modification system 20, translation of the interrupt vector type address is inhibited if this has
  • address modification system 20 receives and outputs data through an input data bus 102 and an output data bus 104 which have a tri-state connection to signals XD0-XD7 on data bus 48. It will be appreciated that only the significant signal paths are shown in Fig. 2.
  • a read-write control register 108 is coupled between the input and output data buses 102, 104 and stores data providing master control over modification circuit 20.
  • Control register 108 is located at port 410H in I/O space. Bit 5 is always read as a zero, writing a
  • bit 5 has the effect of resetting the function of detecting an interrupt vector operation during response to an interrupt request. Bits 6 and 7 are not used.
  • Bit 0 selectively enables or disables address .translation by the modification system 20.
  • a zero disables translation while a one enables translation.
  • Bit 1 is a write protect bit for a mapper RAM 112.
  • a zero write protects the RAM while a one enables writing.
  • a zero at bit position two disables interrupt revectoring (enabling translation) while a one enables interrupt revectoring so that interrupt addresses are not translated in the same manner as other addresses.
  • a zero at bit 3 activates or addresses a lower set of 64 storage locations in mapper RAM 112 while a one activates an upper group of 64 addresses in mapper RAM 112.
  • Bit position 4 enables read-write accesses to data store 44 at addresses above 1 megabyte when set to zero. If set to one the system memory read and write signals are blocked from data store 44 and from the I/O boards if address signals A20-A23 on bus 60 are not zero. A hardware reset sets the control register to 00H.
  • the CPU 12 responds to an interrupt request from interrupt controllers 54 by generating two pulses on signal line interrupt acknowledge, INTA.
  • INTA signal line interrupt acknowledge
  • the CPU 12 reads in the vector type and transfers it to address lines 2-9 to read a 4 byte vector beginning at the indicated vector type memory location.
  • a vector type latch enable flip-flop within sequence and control logic is set at each occurrence of the signal pulse INTA.
  • An 8 bit interrupt vector type latch 110 also latches the contents of input data bus 102. At the second occurrence of signal INTA the proper vector type data is placed on data bus XD0-XD7 and is stored in interrupt vector type latch 110.
  • sequence and control logic 106 compares the address to the latched vector type value.
  • a signal VEC__COMP is generated to indicate that CPU 12 is accessing an interrupt vector any time CPU 12 produces an address which matches the latched vector type value while the vector type latch enable flip-flop is set or any time the input signal NMI (nonmaskable interrupt) is asserted while the CPU address indicates the standard NMI vector memory location 8-BH.
  • a signal INT_MAP_DIS is then generated to disable mapping when signal VEC_COMP is true and an address location within the first IK bytes of memory is being accessed and bit position 2 of the control register 108 is set to one and input signal M/IO indicates that a memory access cycle is in progress.
  • a signal NO_MAP is then generated to command a multiplexer 116 to pass data from the input address bus 60 rather than from mapper
  • RAM 112 whenever signal INT_MAP_DIS is asserted or one of the address lines A20-A23 is active to indicate an address above 1 meg. or a signal DISABLE_MAP is active.
  • Signal DISABLE_MAP is generated whenever bit 0 of the control register 108 is set to zero or signal M/IO indicates that an input output operation is in progress.
  • a two part procedure is thus used to detect the processing of an interrupt vector by the CPU 12.
  • an interrupt enable condition must be established by either the assertion of two pulses on signal INTA or by assertion of the nonmaskable interrupt signal NMI.
  • the CPU 12 must access an address location corresponding to the latched vector type data for a maskable interrupt or else one of the locations 8-BH for a nonmaskable interrupt.
  • the interrupt enable condition is terminated normally by an interrupt response routine, by writing a one into bit 5 of the control register 108 to reset the interrupt enable flip-flop or by a system reset signal.
  • Nonmaskable interrupt detection is disabled when signal NMI is no longer asserted.
  • a DMA mode register 114 is an 8 bit read write register located at address 420H in I/O space.
  • Bit positions 0-6 correspond respectively to DMA channels 0-3 and 5-7.
  • a zero in a given bit position causes the corresponding DMA channel to be operated in clone mode (no translation) while a one indicates extended mode (translation enabled) in which a DMA page register 118 provides the 10 most significant address bits XA14-XA16 and TA17-TA23 to access a 16K block of data in extended memory space.
  • Mode register 114 is reset to 00H in response to a hardware system reset signal.
  • the DMA page register 118 is made operable to generate DMA addresses by generating within sequence and control logic 106 a signal ACK which controls a page multiplexer 120.
  • Signal ACK is generated as an inversion of input signal -XACK which is generated by bus controller 16 anytime a DMA transfer is in operation and signal -EN_ ; _PG_REG from keyboard controller 56 is active low.
  • a last instruction address register 124 stores the 8 most significant bits A16-A23 of each instruction fetch memory access in response to an instruction fetch input signal INSF.
  • Register 124 is not used in the present application, but its contents can be read at I/O port 450H.
  • the DMA page register is actually implemented as a 64 x 10 addressable RAM but only 41 registers are actually used. Sixteen registers are used to provide four page registers for each of the 4 byte wide DMA channels 0-3 and 24 registers are used to provide 8 page registers for each of the three DMA word channels 5-7. Refresh is constrained to clone mode so it uses only a single channel.
  • a writeable DMA page address latch 130 appears at address port 430H in I/O space and communicates a latched address to sequence and control logic 106.
  • a multiplexer selectively connects the 6 bit address input for the page RAM to the DMA page register address latcn 130 or to the DMA address selection signals.
  • the 41 registers of page register 118 are thus read or written by first writing the I/O space address of the desired register into the DMA page address latch 130 at port 430H to select the desired register.
  • the selected register is then read or written at port 431H for address bits A16-A23 and at port 432H for address bits A14 and A15 (LSB first).
  • the port addresses are assigned to match the standard address assignments used by IBM in its PC AT systems. They are 87H, 83H, 81H, 82H for byte channels 0 to 3, 8BH, 89H, 8AH for word channels 5-7 and 8FH for REFRESH.
  • For extended mode channel 0 has four page registers at ports 07H, 17H, 27H and 37H.
  • Channel 1 has four registers at 03H, 13H, 23H and 33H.
  • Channel 2 has four registers at 01H, 11H, 21H and 31H.
  • Channel 3 has four registers at 02H, 12H, 22H and 32H.
  • Channel 5 has eight registers at 0BH, 1BH, 2BH, 3BH, 4BH, 5BH, 6BH and 7BH.
  • Channel 6 has eight registers at 09H, 19H, 29H, 39H, 49H, 59H, 69H, and 79H.
  • Channel 7 has eight registers at 0AH, 1AH, 2AH, 3 H, 4AH, 5AH, 6AH and 7AH.
  • For extended mode Refresh is addressable at register OFH. The extended mode addresses are still written into the DMA address latch 130 at port address 43OH.
  • a DMA transfer I/O controller 18 outputs signals DAK4, EDI and ED2 to select one of the DMA channels or Refresh.
  • the selection codes are assigned as 000 for channel 3, 001 for channel 0, 010 for channel 1, 011 for channel 2, 100 for channel 7, 101 for REFRESH, 110 for channel 5 and 111 for channel 6.
  • a spare readable and writeable register location in the keyboard controller has bit 0 designated as an external page register bit and generates an output signal -EN_PG_REG. Other storage locations could be used as well but this one happened to be available as a spare.
  • Signal -EN_PG_REG goes inactive high to command a mapped clone mode (or clone mode if mapping is not enabled) in which DMA addresses are conventionally generated by readable and writeable page registers within I/O controller 18 and the modification system 20 is masked from the DMA transfer mode. It thus operates as if a normal CPU memory access were in progress and translates the address as described below.
  • the normal ACK, IOW and IOR signals are modified by I/O controller 18 to produce signals XACK, XIOW and XIOR when -EN_PG_REG is high.
  • In mapped clone mode gate 82 couples address signal DX14-DX16 to A14-A16 and gate 84 operates on the output signals to couple TA14-TA16 to XA14-XA16.
  • Signal -XACK -(REFRESH + EN_PG_REG-ACK) (1) This allows refresh to pass through to the modification system but blocks the ACK signal which indicates a DMA transfer is in progress unless signal -EN_PG_REG is active low.
  • the port and write signals are blocked by the ACK signal to prevent an I/O space port access to modification system 20 while a DMA transfer is in progress.
  • the relationships are,
  • the DMA page register modes can be summarized according to the state of signal EN_PG_REG. If signal EN_PG_REG is Inactive the I/O controller 18 operates conventionally to generate the upper address bits for each DMA address. If mapping is enabled by control register 108 a mapped clone mode is established and the DMA addresses are mapped along with other addresses. If mapping is not enabled a clone mode of operation emulates an IBM PC-AT computer.
  • DMA page register 118 If signal EN_PG_REG is active then generation of the upper address bits by I/O controller 18 is inhibited, the upper address bits are generated by DMA page register 118 and all mapping of DMA addresses is inhibited. -If an active DMA channel is enabled by a corresponding bit in DMA mode register 114 then DMA operation occurs with the 8 DMA page registers for each channel (4 for byte DMA channels) providing paging in 16K blocks. If a given channel is not enabled by the DMA mode register then operation proceeds in a special clone mode. Special clone mode is functionally the same as clone mode except the upper address bits are generated by a subset of the DMA page registers 118 having one register per DMA channel. This subset of registers is assigned the same conventional I/O port addresses as the conventional page registers in I/O controller 18 and thus stores the same data so that functionally system operation is the same as in clone mode.
  • DMA addresses are generated as in the IBM PC-AT computer.
  • the conventional page registers within the I/O controller 18 supply address bits A16-A23 (A17-A23 for word transfers) on bus 60 to the computer address modification system 20.
  • Address signals A14-A1-5 (A14-A16 for word transfers) are transferred by the active DMA controller over local I/O bus 48 to latch 76. From latch 76 they are transferred through bus 80, gate 82 and bus 60 to computer address modification system 20.
  • Address signals A0-A7 (A1-A8 for word transfers) are supplied by the active DMA controller 50 to XA bus 72.
  • Address signals A8-A13 (A9-A13 for word transfers) are supplied by the active DMA controller 50 over bus 48 to latch 76 and then to bus 72.
  • the computer address modification system 18 then translates the supplied DMA address as if it were a CPU supplied address.
  • Upper address signals TA14-TA23 are output to bus 64 and made available to gates 84 and bus 86 to positions XA14-XA16 on XA bus 72. They are thus made available at gate 70 along with signals A0-A13 on lines XA0-XA13.
  • the DMA mode register determines separately for each channel whether operation occurs in a special clone mode or an extended mode.
  • the channel selection signals DAK4, EDI and ED2 are coupled as selection inputs to an 8:1 multiplexer which receives the outputs from the DMA mode register 114.
  • the selected multiplexer output signal determines whether special clone mode or extended mode is in effect for the currently selected channel. For refresh, clone mode is always input to the multiplexer.
  • the computer address modification system 20 responds to a DMA access by supplying upper level address signals obtained from DMA page register 118. The generated DMA address signals are not further mapped.
  • Signals XA0-XA13 are placed on XA bus 72 by the DMA controller 50 and are not changed by computer address modification system 20.
  • upper address signals TA16-TA23 are provided by a selected DMA page register
  • the middle bits are handled differently for clone mode and extended mode.
  • clone mode signals DX14-DX15 (DX14-DX16 for word transfers) are passed through to outputs XA14-XA15 (XA14-XA16 for word transfers) on XA bus sections 86 and 72.
  • extended mode address signals DX14-DX15 (DX14-DX16 for word transfers) are used to select one of four (one of 8 for word transfers) DMA page registers 118 which corresponds to an indicated 16K page for the currently active DMA channel.
  • Gates 82 and 84 block transfer of the middle bits during both modes of operation.
  • the channel selection signals DAK4, EDI and ED2 provide 3 of the required 6 address bits and received address bits DX14-DX16 provide the other three bits (DX14-DX15 for a byte DMA).
  • Signals DX14-DX16 are gated by signal EXP_REG_EN (see Fig. 5) to outputs XA14-XA16 only in special clone mode with page register signals PA14-PA16 being gated out for extended mode.
  • Signal DX16 is further gated by signal DAK4 to be effective only for a word transfer.
  • I/O controller 18 When I/O controller 18 generates signal XACK to acknowledge a DMA request, if signal EN_PG_REG is inactive it also asserts address signals A17-A23 (A16-A23 for byte transfers) which are communicated through multiplexer 116 to TA17-TA23 (TA16-TA17 for byte transfers).
  • the DMA controller 50 places on local address bus 72 signals XA0-XA7 for a byte transfer and XA1-XA8 for a word transfer (bit 0 is an implied 0).
  • Signals A8-A15 (A9-A16 for a word transfer) are placed on the XD daca bus 48 and held by latch 76 for presentation to buses 72 and 80.
  • Latch 76 places on the XA Bus 72 signals XA8-XA13 for a byte DMA and XA9-XA13 for a word DMA.
  • the latch 76 also communicates signals 14, 15 (and 16 for a word DMA) over DX bus 80 to modification system 20.
  • DX14 and DX15 In clone mode and special clone mode bits DX14 and DX15
  • Signals A17-A23 are output from the selected DMA page register as signals TA17-TA23 and coupled through gate 66 to LA bus 68.
  • the modification system uses address inputs XA14, XA15 (plus XA16 if a word transfer) to select one of che four registers associated with each channel (8 for word channels) to read the 10 most significant bits from the selected page register. These are output as XA14-XA16 and TA17-TA23.
  • An address latch 132 latches each successive input address signal A0 to A15 to hold the signal for decoding or logic processing. It does not contribute to control of significant data flow.
  • the mapper RAM 112 is shown in greater detail in Fig. 4 and includes two memory sections 140, 142.
  • Memory section 140 is 128 x 8 and section 142 is 128 x 4 to provide a total capacity of 128 x 12.
  • the address inputs are provided by a multiplexer 144 having A inputs connected to the output of an address latch 146 and B inputs connected to a signal MAP_PG_SEL and input address signals A14-A19.
  • Signal MAP_PG_SEL is driven by bit 3 of the control register 108. This enables environment swapping between the upper and lower bank of 64 registers merely by changing one bit in the control register 108.
  • the 6 least significant B inputs receive input address signals A14-A19.
  • the desired address 0-127 is first written into address latch 146 by making an I/O space write at port address 440H. Sequence and control logic decodes the port address and responds to the I/O signal and XIOW signal to generate latching signal -WR_MAP_SEL when all required conditions are met. This loads data from input data bus 102 into address latch 146. Next the RAM 112 itself is addressed at port 441H for low module 140 and address 442H for high mod-ie 142. If one of these ports is properly decoded signal -MAP_CS is generated to pass the contents of address latch 146 to the address inputs of RAM modules 140, 142. If writing, the write map signal WMLO or WMHI is generated to load the input data bus 102 signals into the selected address location. If reading, the output of the selected location is gated onto the output data bus 104 through gating circuits that are not explicitly shown.
  • multiplexer 144 passes signal MAP_PG_SEL and address signals SA14-SA19 to the address inputs of RAM modules 140, 142.
  • the mapped translated addresses MTA 14 to MTA 23 are coupled to bus multiplexer 116 (Fig. 3). Signals MTA14-MTA16 are communicated to sequence and control logic 106 for use in generating signals XA14-XA16.
  • the write protect signal WR_PROT is also communicated to sequence and control logic 106 to inhibit generation of the output write signal XGMW when signal WR PROT is active high.
  • the not present memory output is ANDed with a signal enable write protect EN_WRP that is generated when the modification system 20 is active.
  • the resulting NP signal is provided as an Output but is not used in the present configuration.
  • the generation of signals XA14-XA16 is complicated by the DMA transfers and is therefore shown in greater detail in Fig. 5.
  • a translate output buffer 152 gates the signals out when ACK is high to indicate that a DMA transfer is in progress and signal -XMST is inactive high to indicate that an extended bus (not used in this implementation) is not in control.
  • PA16 automatically sources signal XA16. If address input AENl from DMA channel 1 is low page register 118 data output PA16 automatically sources signal XA16. If high, XA16 is driven along with XA14 and XA15 by the output of a multiplexer 154.
  • MUX 154 receives input data signals DX14-DX16 as A inputs and page register 118 data signals PA14-PA16 as B inputs.
  • the select input to MUX 154 is driven by a signal EXP_REG_EN which is taken from an 8:1 MUX 156 to indicate whether or not extended mode is fully enabled for the active DMA channel. It receives 7 EP inputs from the DMA mode register 114.
  • the three selector inputs PA4-PA2 are determined in response to decoding of the acknowledge signal ACK, DMA channel address signals DAK4, EDI and EDO and page memory address signals PA0-PA3.
  • Signals PMA0-PMA3 are generated by a MUX 160 which receives as A inputs signals LA00-LA03 from address latch 132 and as B inputs signals PG0-PG3 from the DMA address latch 130.
  • MUX 160 A input is selected by signal 8OH which goes active when ACK is low while address latch 132 signal LA7 is high and LA5, LA6, LAS, LA9, and LA10 are low.
  • Signal 8OH thus indicates that one of the standard page register port addresses between 8OH and 9FH is being accessed.
  • the specific implementation of the address modification system 20 is shown in greater detail in Figs. 6-20 to which reference is now made.
  • the mapper ram 112 and its associated control circuits are shown in Fig. 6.
  • GT1MG IA20A • IA21 • IA22 • IA23 (5)
  • NO_MAP (DISABLE_MAP + INT_MAPDIS + GT1MG) (6)
  • EN_WRP -NO_MAP (7 )
  • An address multiplexer 144 drives the address inputs to the mapper ram 112 modules 140, 142.
  • multiplexer 144 receives the system input address signals IA19-IA14 at inputs B1-B6 and the page select signal, MAP_PG_SEL, from bit 3 of control register 108 at input B7. These signals are communicated as address inputs MCA6-MCA0 to the mapper RAM modules 140, 142.
  • a RAM address latch 146 receives from the system data bus a desired address which is latched when signal -WR_MAP_SEL is generated upon decoding the proper I/O space address (440h). Upon subsequently decoding the address for one of the mapper ram sections 140, 142 signal -MAP_CS is generated to cause multiplexer 606 to pass the data stored by latch 604 as address signals to the ram section 140, 142. Latches 608, 610 latch the data outputs from ram sections 140, 142 when decoding of the proper I/O space addresses produces signals -DATA_EN and -RD_MAP_LO or -RD_MAP_HI.
  • Gates 612, 614 (which may be implemented as simple NAND gates that gate each latch output signal when enabled by the gate signal) then pass the appropriate signal group XD7A-XD0A or XD3B-XD0B for placement in the output data bus 104.
  • the DMA register 118 control logic is shown in Fig. 7 to which specific reference is now made.
  • Address logic 702 generates the page register address signals A5-A0 in accordance with the following logic equations:
  • PA3 -PMA2
  • PA2 PMAl PMA2 + PMA0 • -PMAl -PMA2) (11)
  • PA1 EXP_REG_EN
  • I/O address space decoder logic is shown in Fig. 8 and includes a decoder 806 receiving as inputs, latched address signals LA06-LA04 from address latch 132.
  • Logic circuit 804 generates signal
  • AND gate 814 combines this signal with signal -LA431W so that the section of the page register 118 which drives address lines TA23-TA17 is write enabled in response to a direct I/O space address for that section or when the CPU addresses one of the conventional system page registers in clone made or one of the matching registers in special clone mode.
  • WR_PG_LO becomes active when extended mode is not active for the specific channel, when IXIOW (an active low signal) indicates an I/O write is in progress, and when signal 80H (active low) indicates an address of 80H-8FH and one of the I/O locations 0, 8, 4-, C, 5, D, 6, E is not being addresses within this range.
  • the signal -WR_PG_LO thus enables writing to the first page register for each channel when nor in extended mode so that the register can emulate the corresponding system register in special clone mode.
  • a logic circuit 820 receives signals IM_IO (memory IO active), IXIOR (IO Read is active), GTlMG
  • Signal DISABLE_MAP is used as a disable control for signal IXP (Fig. 3) and for gating of data from the mapping ram.
  • Signals XEEN and XFEN are used to gate the contents of the DMA mode register 114 and control register 108 onto the output data bus 104.
  • Signal DMWR (disable map write) is used in generating output memory read and write gate signals.
  • Fig. 9 shows circuitry for generating the gated memory read and write output signals OXGMW and OXGMR.
  • Signal OXGMW is generated by an OR gate 904 as the logical OR of the input write gate signal IMWIN and the output of a flip-flop 906.
  • Flip-flop 906 has its data input driven by
  • PMWG WR_DR0T - EN_WRP + DMWR (21) and its reset input connected to signal -EN_MAP.
  • the gate input is connected to the input address latch enable signal IALE.
  • an OR gate 908 receives input memory to read signal IMRIN and OR's this signal with the Q output of a flip-flop 910 to generate the output read gate signal OXGMR.
  • Flip-flop 910 receives signal DMWR at its data input and the address latch enable signal IALE at its gate input. Its reset input is connected to signal -EN_MAP.
  • Logic 902 also generates the following signals which are used by the address modification system 20.
  • Signal INT_MAP_DIS goes true when signal IXACK indicates that an interrupt is being acknowledged while the nonextended address signals above IA09 are all zero, thus indicating that a memory location in the range 0-1023 is being addressed.
  • This is the hardware defined interrupt vector storage range for the Intel 8088-80386 family of microprocessors.
  • a timing generator circuit 1000 is shown in
  • Fig. 10 as including four cascaded flip-flops 1002, 1004, 1006 and 1008.
  • Flip-flop 1002 is set when clocked by the occurrence of an I/O read or write pulse or when signal output enable x bus, OGNXB, goes true. This causes a logic one to be synchronously and sequentially passed through the- three remaining flip-flops 104-108 as they are clocked by the input clock signal ICLK and its complement.
  • the logic 1 signal reaches flip-flop 1006 its QN output goes active low to generate signal -MAP_CS, which controls multiplexer 606 to select the address inputs to mapping ram 112.
  • a half clock cycle later flip.-flop 1008 becomes set to force its output QN active low to generate signal -DATA_EN which enables writing of mapping ram 112.
  • Fig. 11 shows the interrupt flip-flop 1102 which indicates that an interrupt has been acknowledged.
  • Flip-flop 1102 is set when clocked by the input interrupt acknowledge signal to gene .'ate signal INTA_F_F. It is reset when control register 108 is written with data bit 5 set or in response to -the system reset signal IXRES.
  • Fig. 12 shows the implementation of the memory address latch 132 which receives input addresses IA15-IA00 and outputs latched addresses LA15-LA00 respectively.
  • Latch 132 is clocked by input address latch enable signal, IALE.
  • An interrupt vector type latch 110 receives from the input data signals ID7-ID0 and latches the interrupt vector type generated by interrupt controllers 54 in response to the input interrupt acknowledge signal, IINTA.
  • Signal VEC_COMP may thus be used to inhibit modification of- an interrupt vector address.
  • the page memory I/O address multiplexer circuit 1402 is shown in Fig. 14. It includes the DMA address 130 latch which received and latches input data signals
  • a multiplexer 160 receives the four low bit latched address signals DMALA0-DMALA3 at its B input and latched address signals LA00-LA03 at its A inputs.
  • signal 8OH remains inactive high and signals PMA0-PMA6 reflect the contents of the DMA address register 130.
  • This enables the CPU to read or write a selected one of the 41 registers within the DMA page register 118 by first writing the selected address into DMA address register 130 using I/O address space port 430H and then reading or writing the selected high or low page register section at port 431H or 432H respectively.
  • Each of the conventional clone mode AT page registers lies within the 110 address space 80-8FH.
  • signal 80H goes active low to disable AND gates 1404, 1406 and 1408 and cause multiplexer 160 to conduct latched address signals LA00-LA03 to output signals PMA0-PMA4.
  • These four signals are sufficient to distinguish among the 8 clone mode DMA registers and permit a selected register to be written at the conventional AT I/O space port addresses. This facilitates the dual clone mode/extended mode addressing for these eight registers so that they can track the eight conventional counterparts contained within I/O controller 18.
  • address logic 1702 operates as a multiplexer to convey to the address terminals of page register 118 either the PMA0-PMA6 I/O address signals or the DMA page register selection signals IEDl, IED0, IDAK4 and IDX16-IDX14.
  • Fig. 14 shows in detail the last instruction address register 124. It receives input address signals IA16-IA23 as inputs when clocked by the input CIOCK signal ICLK while the input instruction fetch signal, IINSF, is active low.
  • a gate 1502 makes the output of latch 124 available to the output data bus 104 when signal -IPORT (450H) indicates that the instruction fetch register 124 I/O address has been decoded while I/O read signal IXIOR is active low. This gate signal is then inverted to produce an output enable signal, XGEN. Miscellaneous logic circuits which primarily provide input and output buffering and gating complete the description of the computer address modification system 20. As shown in Fig. 16, signals DPA14 and DPA15 are gated by signal -RD_PG_HI to produce signals XDOC and XDlC for gating to the output data bus when the high section of the page register is read.
  • Fig. 17 shows a gate 1702 for gating the low byte of the DMA page register 118 to output data bus 104 when it is read in the I/O address space.
  • Fig. 18 shows a gate 1802 for gating the outputs of the DMA mode control register 114 to the output as signals of the MDA mode control reigster 114 to the output as signals XD6E-XD0E .
  • Fig. 19 shows a gate 1902 for output gating of the control register data as signals XD0F-XD4F and
  • bit 5 is the interrupt reset bit. and it cannot be read.
  • Fig. 20 The bidirectional connection to the data bus is shown in Fig. 20.
  • the XD0 terms having an A suffix relate to the mapping ram 112 low bits
  • B is for the high bits
  • C is for the page register 118 low bits
  • D is for for high bits
  • E is for the mode
  • control register 114
  • F is for control register 108
  • the G suffix designates the last instruction address register 124.
  • Signal INSF is buffered as it is received and redesignated IINSF.
  • the input address signals A00-A23 are buffered and redesignated IA00-IA23 as they are received.
  • the X bus input address signals DX14-DX16 are each buffered and redesignated IDX14-IDX16.
  • address signals OXA14-OXA16 are ouffered and gated to the XA bus 86 as signals XA14-XA16.
  • the gated memory read and write signals OXGMR and OXGMW are buffered and gated to their respective outputs as signals XGMR and XGMU. They are gated by
  • the translation output address signals OTA17-OTA23 are buffered and gated by signal TRIXMST before being output to the TA address bus as signals TA17-TA23.
  • Input signals EBO , EB1, DAK4 and XIOR are buffered and redesignated IEBO , IEBl, IDAK4 and IXIOR respectively.
  • Input signals XIOW, XRES, A20G, CLK and A ⁇ N1 are buffered and redesignated IXIOW, IXRES, IA20G, ICLK and IAENl repsectively.
  • the interrupt related input signals XACK, XNS , NMI, INTA, .and MNIO are buffered and redesignated IXACK, IXNST, INMI, IINTA and IM_IO respectively.
  • the memory access input signals MWIN, MRIN and ALE are buffered and redesignated IMWIN, IMRIN and IALE.
  • Output signals ONP, OEWXB and OTA14-OTA16 are buffered and connected without further gating to their- output terminals as signals NP, EMXB and TA14-TA16 respectively. While there has been shown and described above a particular arrangement of a computer system including an addres ' s modification system in accordance with the invention, it will be appreciated that the invention is not limited thereto. Accordingly, any modifications, variations or equivalent arrangements within the scope of the attached claims should be considered to be within the scope of the invention.

Abstract

A computer system (10) includes a computer address modification system (20) that is advantageously coupled in a bus network to selectively translate memory address data in 16K blocks and provide DMA page addresses which may match the 16K memory address blocks. The modification system (20) includes a mapping RAM (112) selectively providing translated addresses to enable addresses in a 16 megabyte extended address space. The modification system (20) also includes a DMA page register (118) storing for each addressable 16K block of data for each DMA channel a page address within the extended address space. An interrupt vector type latch (110) is provided for inhibiting mapping when received system addresses equal the value in the latch (110). The control register (108) stores a translation enable signal and a write enable signal for the mapping RAM (112). The DMA mode register (114) stores translation enable signals for each DMA channel.

Description

COMPUTER SYSTEM PROVIDING ADDRESS MODIFICATION FOR USE ALSO WITH DMA AND INTERRUPTS
Cross Reference to Related Application
This application is a continuation-in-part of
U.S. Serial No. 020,964, filed March 3, 1987.
Background of the Invention A designer of a data processing system or computer has typically had to accept a design compromise when selecting the maximum physical address space for the system. If a large address space is selected, the cost of the system is increased. Not only must the number of physical wires, drivers, connectors and related components be increased, but the address data size and storage requirements increase as well. For example, a 32 bit address requires twice the storage space of a 16 bit address. However, if the address space of a system is too limited, system performance will be degraded for complex operations which require quick access to a large amount of memory.
One solution to this problem has been to implement memory mapping or paging. In such an arrangement, a mapping memory or paging memory stores the most significant address bits for an expanded address space. For example, a system having a 20 bit address bus that can address 1 megabyte of memory might be used with a mapping memory that provides an additional 4 bits of addressing to accommodate a 16 megabyte address space.
Certain locations in the original memory or I/O address space of the computer are reserved for accessing the mapping memory so that the stored most signi icant 4 address bits can be selectively changed. Once these bits are selected and written into the mapping memory, the computer can use its original address lines to address any location within a page or subset of the expanded memory that is defined by the most significant address bits stored in the mapping memory.
To increase the resolution of the page definitions the mapping memory can also store less significant address bits that overlap the original computer address bits. Typically, the overlapping mapper and computer address bits are added together to obtain the final extended memory space address. The popular INTEL 8088 and 8086 microprocessors essentially use this technique. Each 20 bit output address is a sum of a 16 bit offset address and a 16 bit segment address that is shifted left 4 bit positions relative to the offset address. This enables most instructions to refer to one of 64K memory locations within a segment using a 16 bit offset address. At the same time, the segment boundaries can be changed by providing an additional 16 bit segment address to increase the total address space to one megabyte anytime it becomes necessary.
A more recent INTEL 80286 microprocessor is operable in a real mode which emulates the INTEL 8086 microprocessor or a protected mode which extends the address space from 1 megabyte to 16 megabytes. While price decreases for memory chips and increasing software complexity make it desirable to use the increased memory capacity, the protected mode in which the increased capacity is available is not compatible with the prior microprocessors. Software manufacturers have thus largely written software for the real mode to attain compatibility with the prior machines and maximize the available market size for their products. The extended memory capacity is generally used only for specialized applications such as a RAM disk which uses memory to simulate a disk drive.
The address modification system of the present invention provides memory access conversion functions which provide a window to an expanded memory space while operating in a real mode or a mode that is compatible therewith. The system provides a full function availability of the extended memory space, not only for memory word accesses, but for direct memory access (DMA) operations while retaining full compatibility with hardware interrupt processing. Summary of the Invention
A computer system in accordance with the invention includes a CPU, a bus controller, an I/O controller, a computer address modification system and I/O devices such as DMA controllers and interrupt controllers. An adaptive bus network connects the modification system within the computer system.
The modification system includes a mapper RAM,, a page register and a control register which selectively enables the modification system and various modes of operation for the system. A 41 register page register provides selective page addressing for each possible 16K block of each DMA transfer channel.
Brief Description of the Drawings A better understanding of the invention may be had from a consideration of the following Detailed
Description, taken in conjunction with the accompanying drawings in which:
Fig. 1 is a block diagram representation of a computer system in accordance with the invention having a computer address modification system; Fig. 2 is a block diagram of a computer address modification system used in the computer system shown in Fig. 1;
Fig. 3 is a block diagram showing in greater detail an output portion of the computer address modification system shown in Fig. 2;
Fig. 4 is a block diagram representation of a mapper ram used in the computer address modification system shown in Fig. 2; Fig. 5 is a block diagram representation of the logic within the computer address conditioning system shown" in Fig. 2 for generating certain output address signals; and
Figs. 6-20 are block diagrams of a specific implementation of the computer address modification system.
Detailed Description Referring now to Fig. 1, a computer system 10 in accordance with the invention. is designed to provide compatibility with a popular PC AT computer system manufactured by International Business Machines, Incorporated. The computer system 10 includes an 80286 central processing unit 12, an 80287 math coprocessor 14 made by INTEL, a clock generator and ous controller 16, and an- I/O controller 18.
Clock generator and bus controller 16 provides a nominal 8 MHz clock signal as well as numerous gating signals for enabling bus transfers within system 10. The detailed timing and control implementations of the system 10 are conventional. Thus, to facilitate understanding, only the significant data and address signal paths are shown in Fig. 1. However, the required control and gating signals should be implemented in a conventional manner to provide proper system operation. Similarly the detailed circuitry and associated control and gating signals of I/O controller 18 have not been shown. These can be implemented in a conventional manner to provide proper input/output data transfers. I/O controller 18 incorporates the conventional IBM PC AT page registers.
The INTEL 80286 CPU 12 is operable in either a real mode or a protected mode. In real mode CPU 12 emulates an INTEL 80286 CPU and has an address space of 1 megabyte with the space above 640 kilobytes being reserved for ROM BIOS, video buffers and other system functions.
In protected mode the address space is increased to 16 megabytes but CPU 12 can no longer execute most software written for for the 8086 and similar CPU's. To date it has thus been difficult to utilize the extended memory space except for a few specialized applications such as RAM disks which simulate actual disk drives while providing the speed of RAM.
The system 10 therefore includes a computer address modification system 20 which receives system addresses in the 1'megabyte address space and selectively translates these addresses in 16 kilobyte blocks to a 16 megabyte address space. The translation is transparent to operating programs and therefore maintains compatibility with programs written for the older CPU's. Modification system 20 provides for selective translation of DMA (direct memory address) operations in 16K blocks and selectively inhibits memory mapping upon processing a response routine for a nonmaskable interrupt (NMD or a maskable interrupt. At turn on, system 20 operates in a clone mode in which a conventional real mode for the 80286 CPU 12 is implemented. However, by using conventional CPU I/O operations to write data into predetermined port locations, the modification system 20 can be operated in a mapping mode in which both CPU 20 memory accesses and DMA accesses are selectively transferred in 16K clocks from an address in 1 megabyte memory space to an address in 16 megabyte memory space on a 16K boundary. Looking first at the system 10 data paths, the
16 bit CPU data bus 26 couples through a gate 28 to two upper and lower 8 bit system data buses, SD8-SD15 30 and SDO-SD7 32. A gate 34 allows data to be selectively transferred between the upper and lower data buses 30, 32. A gate 38 couples the system data buses 30, 32 to corresponding memory data buses MD8-15 40 and MDO-7 42. Memory data buses 40, 42 in turn couple to a data store 44 which includes in a conventional manner, random access memory in the 0-640K memory space, BIOS ROM, and extended RAM in the extended 1M to 16M memory space.
System data bus 32 also couples through a gate 46 to a local I/O bus XD0-XD7 48 which connects to system 10 I/O devices including DMA controllers 50. Other devices connected to local I/O bus 48 may include parallel and serial ports 52, interrupt controllers 54 providing
7 levels of interrupt plus a nonmaskable interrupt, and a keyboard controller 56. Other devices such as a timer, or a real time clock may also be connected to the local I/O bus 48. A CPU address bus A0-A23 couples to modification system 20 while the signal lines for lower order bits A0-A13 further couple to a gate 62. These lower bits define an address within a 16K block. Since address translation occurs in 16K blocks, these bits are not required to accomplish address modification and they can be coupled directly to gate 62.
Modification system 20 produces translated address portions in a translation address bus TA14-TA23 64 which couples to gate 62 as well as a gate 66. Gate 66 provides communication with a local address bus LA17-LA23 68 which provides communication with optional I/O system expansion boards.
Gate 62 provides communication with a system address bus SA0-SA19 74 which also couples to the I/O boards and through a gate 70 to a DMA address bus XA0-XA16 72. Signal SAO is communicated from CPU bus 60 signal AO through bus controller 16 so that it can be adjusted to accommodate swapping of a data byte between the upper and lower portions of the system data buses 30, 32.
Address positions XA14-XA16 must be handled specially because there are two types of DMA transfer operations. DMA channels 0, 1, 2 and 3 are byte channels that can access 64K bytes of data. Address bits 14 and 15 thus define 1 of 4 16K blocks within this space. DMA channels 4, 5 and 6 are word (2 bytes) channels and can access 128K bytes of data. Address bits 14, 15 and 16 then define one of 8 16K blocks within the available address space. A latch 76 receives data from local I/O data bus
48 and couples to local I/O address bus 72. Latch 76 also couples data bus 48 to a DMA extension bus DX14-DX16 80 which communicates DMA address data bits DX14-DX16 to modification system 20. A gate 82 selectively transfers address bits DX14-DX16 to CPU address lines A14-A16 for input to modification system 20. A gate 84 then transfers translated address signals TA14-TA15 back down to signal paths XA14-XA15 to be used as a DMA address on bus 86.
In clone mode all addresses are passed through modification system 20 without change and the system operates as a conventional 80286 processing system. However, once modification system 20 is switched to a mapping mode memory addresses are selectively translated in 16K blocks to any selected location in 16 megabyte memory space. Each different 16K block within the first megabyte may be individually translated to a different location. If the CPU operates in protected mode and asserts a CPU address above 1 megabyte, translation is automatically disabled. The modification system may be controlled to selectively disable mapping while the CPU processes an interrupt response routine. Separate paging is provided for each 16K block for each different DMA channel. Individual paging for each 16K block may be selectively enabled or disabled for each DMA channel.
When the CPU accesses memory in clone (no translation) mode CPU address bus 60 carries bits A0-A13 through gate 62 to system address bus 74 and then to data store 44. The upper address bits A14-A24 pass through modification system 20 unchanged. They are output on translated address bus 64 for communication through gate 62 and system address bus 74 to data store 44. If mapper mode is enabled the address data path is essentially the same except that modification system 20 selectively changes address bus signals A14-A24.
When system control is granted to a DMA controller 50 I/O controller 18 generates signal -XACK and couples the DMA address from local I/O bus XA0-XA16 72 through gate 70 to system address bus 74. Bits DX14-DX16 are input directly to modification system 20 through bus 80 while bits AX1-AX13 are coupled through gate 70 to system address bus 74. The selectively modified address bits 14-16 are output on bus XA14-XA16 86 which connects to corresponding signals XA14-XA16 on bus 72. Address data is then coupled through gate 70 and system address bus 74 to data store 44.
Upon the occurrence of an interrupt an interrupt controller 54 places a vector type which defines an interrupt response vector address, onto the DMA data bus XD0-XD7. This vector type is then communicated to modification system 20 where it is stored. It is also made available to the CPU 12 through gate 46, system data bus 32 and CPU data bus 26. When CPU 12 responds to the 5 interrupt request it places the vector type shifted left 2 bit positions as an address on the CPU address bus 60. When this bus input matches the vector type previously stored by modification system 20, translation of the interrupt vector type address is inhibited if this has
10 been previously commanded. This enables interrupt vectors to be limited to the traditional location in the first kilobyte of physical memory space even if address translation has been enabled.
Referring now to Figs. 2 and 3 , the computer
15 address modification system 20 receives and outputs data through an input data bus 102 and an output data bus 104 which have a tri-state connection to signals XD0-XD7 on data bus 48. It will be appreciated that only the significant signal paths are shown in Fig. 2.
20 Conventional encoding, decoding and gating for data transfers and loading of registers, flip-flops and memory cells are handled through signals generated by conventional circuits within sequence and control logic 106.
2.5 A read-write control register 108 is coupled between the input and output data buses 102, 104 and stores data providing master control over modification circuit 20. Control register 108 is located at port 410H in I/O space. Bit 5 is always read as a zero, writing a
30 one to bit 5 has the effect of resetting the function of detecting an interrupt vector operation during response to an interrupt request. Bits 6 and 7 are not used.
Bit 0 selectively enables or disables address .translation by the modification system 20. A zero disables translation while a one enables translation. Bit 1 is a write protect bit for a mapper RAM 112. A zero write protects the RAM while a one enables writing. A zero at bit position two disables interrupt revectoring (enabling translation) while a one enables interrupt revectoring so that interrupt addresses are not translated in the same manner as other addresses. A zero at bit 3 activates or addresses a lower set of 64 storage locations in mapper RAM 112 while a one activates an upper group of 64 addresses in mapper RAM 112.
Bit position 4 enables read-write accesses to data store 44 at addresses above 1 megabyte when set to zero. If set to one the system memory read and write signals are blocked from data store 44 and from the I/O boards if address signals A20-A23 on bus 60 are not zero. A hardware reset sets the control register to 00H.
The CPU 12 responds to an interrupt request from interrupt controllers 54 by generating two pulses on signal line interrupt acknowledge, INTA. Upon the occurrence of the second pulse interrupt controllers 54 place on the local I/O data bus XD0-XD7 48 a vector type which identifies the starting location in data store 44 at which a vector pointing to the interrupt response routine is stored. The CPU 12 reads in the vector type and transfers it to address lines 2-9 to read a 4 byte vector beginning at the indicated vector type memory location.
A vector type latch enable flip-flop within sequence and control logic is set at each occurrence of the signal pulse INTA. An 8 bit interrupt vector type latch 110 also latches the contents of input data bus 102. At the second occurrence of signal INTA the proper vector type data is placed on data bus XD0-XD7 and is stored in interrupt vector type latch 110.
Thereafter, whenever CPU 12 asserts an address, sequence and control logic 106 compares the address to the latched vector type value. A signal VEC__COMP is generated to indicate that CPU 12 is accessing an interrupt vector any time CPU 12 produces an address which matches the latched vector type value while the vector type latch enable flip-flop is set or any time the input signal NMI (nonmaskable interrupt) is asserted while the CPU address indicates the standard NMI vector memory location 8-BH.
A signal INT_MAP_DIS is then generated to disable mapping when signal VEC_COMP is true and an address location within the first IK bytes of memory is being accessed and bit position 2 of the control register 108 is set to one and input signal M/IO indicates that a memory access cycle is in progress. A signal NO_MAP is then generated to command a multiplexer 116 to pass data from the input address bus 60 rather than from mapper
RAM 112 whenever signal INT_MAP_DIS is asserted or one of the address lines A20-A23 is active to indicate an address above 1 meg. or a signal DISABLE_MAP is active. Signal DISABLE_MAP is generated whenever bit 0 of the control register 108 is set to zero or signal M/IO indicates that an input output operation is in progress.
A two part procedure is thus used to detect the processing of an interrupt vector by the CPU 12. First an interrupt enable condition must be established by either the assertion of two pulses on signal INTA or by assertion of the nonmaskable interrupt signal NMI. Next, the CPU 12 must access an address location corresponding to the latched vector type data for a maskable interrupt or else one of the locations 8-BH for a nonmaskable interrupt. The interrupt enable condition is terminated normally by an interrupt response routine, by writing a one into bit 5 of the control register 108 to reset the interrupt enable flip-flop or by a system reset signal. Nonmaskable interrupt detection is disabled when signal NMI is no longer asserted. A DMA mode register 114 is an 8 bit read write register located at address 420H in I/O space. Bit positions 0-6 correspond respectively to DMA channels 0-3 and 5-7. A zero in a given bit position causes the corresponding DMA channel to be operated in clone mode (no translation) while a one indicates extended mode (translation enabled) in which a DMA page register 118 provides the 10 most significant address bits XA14-XA16 and TA17-TA23 to access a 16K block of data in extended memory space. Mode register 114 is reset to 00H in response to a hardware system reset signal.
The DMA page register 118 is made operable to generate DMA addresses by generating within sequence and control logic 106 a signal ACK which controls a page multiplexer 120. Signal ACK is generated as an inversion of input signal -XACK which is generated by bus controller 16 anytime a DMA transfer is in operation and signal -EN_;_PG_REG from keyboard controller 56 is active low.
A last instruction address register 124 stores the 8 most significant bits A16-A23 of each instruction fetch memory access in response to an instruction fetch input signal INSF. Register 124 is not used in the present application, but its contents can be read at I/O port 450H. The DMA page register is actually implemented as a 64 x 10 addressable RAM but only 41 registers are actually used. Sixteen registers are used to provide four page registers for each of the 4 byte wide DMA channels 0-3 and 24 registers are used to provide 8 page registers for each of the three DMA word channels 5-7. Refresh is constrained to clone mode so it uses only a single channel.
A writeable DMA page address latch 130 appears at address port 430H in I/O space and communicates a latched address to sequence and control logic 106. A multiplexer selectively connects the 6 bit address input for the page RAM to the DMA page register address latcn 130 or to the DMA address selection signals. The 41 registers of page register 118 are thus read or written by first writing the I/O space address of the desired register into the DMA page address latch 130 at port 430H to select the desired register. The selected register is then read or written at port 431H for address bits A16-A23 and at port 432H for address bits A14 and A15 (LSB first). In clone mode the port addresses are assigned to match the standard address assignments used by IBM in its PC AT systems. They are 87H, 83H, 81H, 82H for byte channels 0 to 3, 8BH, 89H, 8AH for word channels 5-7 and 8FH for REFRESH.
It should be understood that the same address location within the page register 64 x 10 memory 118 is used for both the clone mode, and the first register (first 16K block) for extended mode. However, a second DMA page register address is assigned to the register for extended mode so that the same memory location can be accessed by system I/O operations in two different ways. These register addresses are written into latch 130 to select the proper memory location within page register 118.
For extended mode channel 0 has four page registers at ports 07H, 17H, 27H and 37H. Channel 1 has four registers at 03H, 13H, 23H and 33H. Channel 2 has four registers at 01H, 11H, 21H and 31H. Channel 3 has four registers at 02H, 12H, 22H and 32H. Channel 5 has eight registers at 0BH, 1BH, 2BH, 3BH, 4BH, 5BH, 6BH and 7BH. Channel 6 has eight registers at 09H, 19H, 29H, 39H, 49H, 59H, 69H, and 79H. Channel 7 has eight registers at 0AH, 1AH, 2AH, 3 H, 4AH, 5AH, 6AH and 7AH. For extended mode Refresh is addressable at register OFH. The extended mode addresses are still written into the DMA address latch 130 at port address 43OH.
During a DMA transfer I/O controller 18 outputs signals DAK4, EDI and ED2 to select one of the DMA channels or Refresh. The selection codes are assigned as 000 for channel 3, 001 for channel 0, 010 for channel 1, 011 for channel 2, 100 for channel 7, 101 for REFRESH, 110 for channel 5 and 111 for channel 6. Referring to Fig. 1 as well as Fig. 2, a spare readable and writeable register location in the keyboard controller has bit 0 designated as an external page register bit and generates an output signal -EN_PG_REG. Other storage locations could be used as well but this one happened to be available as a spare. Signal -EN_PG_REG goes inactive high to command a mapped clone mode (or clone mode if mapping is not enabled) in which DMA addresses are conventionally generated by readable and writeable page registers within I/O controller 18 and the modification system 20 is masked from the DMA transfer mode. It thus operates as if a normal CPU memory access were in progress and translates the address as described below. To accomplish the masking, the normal ACK, IOW and IOR signals are modified by I/O controller 18 to produce signals XACK, XIOW and XIOR when -EN_PG_REG is high. In mapped clone mode gate 82 couples address signal DX14-DX16 to A14-A16 and gate 84 operates on the output signals to couple TA14-TA16 to XA14-XA16.
Signal -XACK = -(REFRESH + EN_PG_REG-ACK) (1) This allows refresh to pass through to the modification system but blocks the ACK signal which indicates a DMA transfer is in progress unless signal -EN_PG_REG is active low.
The port and write signals are blocked by the ACK signal to prevent an I/O space port access to modification system 20 while a DMA transfer is in progress. The relationships are,
-XIOR = -(IOR • -ACK) (2)
-XIOW = -(IOW • -ACK) (3) The DMA page register modes can be summarized according to the state of signal EN_PG_REG. If signal EN_PG_REG is Inactive the I/O controller 18 operates conventionally to generate the upper address bits for each DMA address. If mapping is enabled by control register 108 a mapped clone mode is established and the DMA addresses are mapped along with other addresses. If mapping is not enabled a clone mode of operation emulates an IBM PC-AT computer.
If signal EN_PG_REG is active then generation of the upper address bits by I/O controller 18 is inhibited, the upper address bits are generated by DMA page register 118 and all mapping of DMA addresses is inhibited. -If an active DMA channel is enabled by a corresponding bit in DMA mode register 114 then DMA operation occurs with the 8 DMA page registers for each channel (4 for byte DMA channels) providing paging in 16K blocks. If a given channel is not enabled by the DMA mode register then operation proceeds in a special clone mode. Special clone mode is functionally the same as clone mode except the upper address bits are generated by a subset of the DMA page registers 118 having one register per DMA channel. This subset of registers is assigned the same conventional I/O port addresses as the conventional page registers in I/O controller 18 and thus stores the same data so that functionally system operation is the same as in clone mode.
In the mapped clone' mode DMA addresses are generated as in the IBM PC-AT computer. The conventional page registers within the I/O controller 18 supply address bits A16-A23 (A17-A23 for word transfers) on bus 60 to the computer address modification system 20. Address signals A14-A1-5 (A14-A16 for word transfers) are transferred by the active DMA controller over local I/O bus 48 to latch 76. From latch 76 they are transferred through bus 80, gate 82 and bus 60 to computer address modification system 20. Address signals A0-A7 (A1-A8 for word transfers) are supplied by the active DMA controller 50 to XA bus 72. Address signals A8-A13 (A9-A13 for word transfers) are supplied by the active DMA controller 50 over bus 48 to latch 76 and then to bus 72.
The computer address modification system 18 then translates the supplied DMA address as if it were a CPU supplied address. Upper address signals TA14-TA23 are output to bus 64 and made available to gates 84 and bus 86 to positions XA14-XA16 on XA bus 72. They are thus made available at gate 70 along with signals A0-A13 on lines XA0-XA13.
When internal paging is activated by assertion of signal -EN_PG_REG active low the DMA mode register determines separately for each channel whether operation occurs in a special clone mode or an extended mode. The channel selection signals DAK4, EDI and ED2 are coupled as selection inputs to an 8:1 multiplexer which receives the outputs from the DMA mode register 114. The selected multiplexer output signal determines whether special clone mode or extended mode is in effect for the currently selected channel. For refresh, clone mode is always input to the multiplexer. In both special clone mode and extended mode the computer address modification system 20 responds to a DMA access by supplying upper level address signals obtained from DMA page register 118. The generated DMA address signals are not further mapped. Signals XA0-XA13 (XA1-XA13 for word transfers) are placed on XA bus 72 by the DMA controller 50 and are not changed by computer address modification system 20. In special clone mode upper address signals TA16-TA23 (TA17-TA23 for word transfers) are provided by a selected DMA page register
118. In extended mode upper address signals XA14-XA16 and TA17-TA23 are provided by the DMA page register 118.
The middle bits are handled differently for clone mode and extended mode. In clone mode signals DX14-DX15 (DX14-DX16 for word transfers) are passed through to outputs XA14-XA15 (XA14-XA16 for word transfers) on XA bus sections 86 and 72. In extended mode address signals DX14-DX15 (DX14-DX16 for word transfers) are used to select one of four (one of 8 for word transfers) DMA page registers 118 which corresponds to an indicated 16K page for the currently active DMA channel. Gates 82 and 84 block transfer of the middle bits during both modes of operation.
To address the 64 x 10 RAM within DMA page register 118 during DMA operation the channel selection signals DAK4, EDI and ED2 provide 3 of the required 6 address bits and received address bits DX14-DX16 provide the other three bits (DX14-DX15 for a byte DMA). Signals DX14-DX16 are gated by signal EXP_REG_EN (see Fig. 5) to outputs XA14-XA16 only in special clone mode with page register signals PA14-PA16 being gated out for extended mode. Signal DX16 is further gated by signal DAK4 to be effective only for a word transfer.
When I/O controller 18 generates signal XACK to acknowledge a DMA request, if signal EN_PG_REG is inactive it also asserts address signals A17-A23 (A16-A23 for byte transfers) which are communicated through multiplexer 116 to TA17-TA23 (TA16-TA17 for byte transfers). The DMA controller 50 places on local address bus 72 signals XA0-XA7 for a byte transfer and XA1-XA8 for a word transfer (bit 0 is an implied 0). Signals A8-A15 (A9-A16 for a word transfer) are placed on the XD daca bus 48 and held by latch 76 for presentation to buses 72 and 80.
Latch 76 places on the XA Bus 72 signals XA8-XA13 for a byte DMA and XA9-XA13 for a word DMA. The latch 76 also communicates signals 14, 15 (and 16 for a word DMA) over DX bus 80 to modification system 20. In clone mode and special clone mode bits DX14 and DX15
(DX14-DX16 for word transfers) are passed through to XA14 and XA15 (XA14-XA16 for word transfers). Bit zero of the first page register of the selected channel drives output XA16 for byte transfers. These signals are coupled through gate 70 to system bus 74 along with signals
XA0-XA13. Signals A17-A23 are output from the selected DMA page register as signals TA17-TA23 and coupled through gate 66 to LA bus 68. In extended mode, the modification system uses address inputs XA14, XA15 (plus XA16 if a word transfer) to select one of che four registers associated with each channel (8 for word channels) to read the 10 most significant bits from the selected page register. These are output as XA14-XA16 and TA17-TA23.
An address latch 132 latches each successive input address signal A0 to A15 to hold the signal for decoding or logic processing. It does not contribute to control of significant data flow.
The mapper RAM 112 is shown in greater detail in Fig. 4 and includes two memory sections 140, 142. Memory section 140 is 128 x 8 and section 142 is 128 x 4 to provide a total capacity of 128 x 12. The address inputs are provided by a multiplexer 144 having A inputs connected to the output of an address latch 146 and B inputs connected to a signal MAP_PG_SEL and input address signals A14-A19. Signal MAP_PG_SEL is driven by bit 3 of the control register 108. This enables environment swapping between the upper and lower bank of 64 registers merely by changing one bit in the control register 108. The 6 least significant B inputs receive input address signals A14-A19.
To read or write mapper RAM 140, 142 the desired address 0-127 is first written into address latch 146 by making an I/O space write at port address 440H. Sequence and control logic decodes the port address and responds to the I/O signal and XIOW signal to generate latching signal -WR_MAP_SEL when all required conditions are met. This loads data from input data bus 102 into address latch 146. Next the RAM 112 itself is addressed at port 441H for low module 140 and address 442H for high mod-ie 142. If one of these ports is properly decoded signal -MAP_CS is generated to pass the contents of address latch 146 to the address inputs of RAM modules 140, 142. If writing, the write map signal WMLO or WMHI is generated to load the input data bus 102 signals into the selected address location. If reading, the output of the selected location is gated onto the output data bus 104 through gating circuits that are not explicitly shown.
During normal memory access operation, multiplexer 144 passes signal MAP_PG_SEL and address signals SA14-SA19 to the address inputs of RAM modules 140, 142. The mapped translated addresses MTA 14 to MTA 23 are coupled to bus multiplexer 116 (Fig. 3). Signals MTA14-MTA16 are communicated to sequence and control logic 106 for use in generating signals XA14-XA16.
The write protect signal WR_PROT is also communicated to sequence and control logic 106 to inhibit generation of the output write signal XGMW when signal WR PROT is active high. The not present memory output is ANDed with a signal enable write protect EN_WRP that is generated when the modification system 20 is active. The resulting NP signal is provided as an Output but is not used in the present configuration. The generation of signals XA14-XA16 is complicated by the DMA transfers and is therefore shown in greater detail in Fig. 5. A translate output buffer 152 gates the signals out when ACK is high to indicate that a DMA transfer is in progress and signal -XMST is inactive high to indicate that an extended bus (not used in this implementation) is not in control.
If address input AENl from DMA channel 1 is low page register 118 data output PA16 automatically sources signal XA16. If high, XA16 is driven along with XA14 and XA15 by the output of a multiplexer 154. MUX 154 receives input data signals DX14-DX16 as A inputs and page register 118 data signals PA14-PA16 as B inputs. The select input to MUX 154 is driven by a signal EXP_REG_EN which is taken from an 8:1 MUX 156 to indicate whether or not extended mode is fully enabled for the active DMA channel. It receives 7 EP inputs from the DMA mode register 114.
The three selector inputs PA4-PA2 are determined in response to decoding of the acknowledge signal ACK, DMA channel address signals DAK4, EDI and EDO and page memory address signals PA0-PA3.
Signals PMA0-PMA3 are generated by a MUX 160 which receives as A inputs signals LA00-LA03 from address latch 132 and as B inputs signals PG0-PG3 from the DMA address latch 130. MUX 160 A input is selected by signal 8OH which goes active when ACK is low while address latch 132 signal LA7 is high and LA5, LA6, LAS, LA9, and LA10 are low. Signal 8OH thus indicates that one of the standard page register port addresses between 8OH and 9FH is being accessed. The specific implementation of the address modification system 20 is shown in greater detail in Figs. 6-20 to which reference is now made. The mapper ram 112 and its associated control circuits are shown in Fig. 6. A logic block 602 receives system address input signals IA23-IA20 from address bus A00-A23 along with the signal DISABLE_MAP and the interrupt revectoring signal INT_MAP_DIS. Logic 602 generates the following output signals: IA20A = IA20 • IA20G (4)
GT1MG = IA20A • IA21 • IA22 • IA23 (5)
NO_MAP = (DISABLE_MAP + INT_MAPDIS + GT1MG) (6) EN_WRP = -NO_MAP (7 )
An address multiplexer 144 drives the address inputs to the mapper ram 112 modules 140, 142. During normal operation multiplexer 144 receives the system input address signals IA19-IA14 at inputs B1-B6 and the page select signal, MAP_PG_SEL, from bit 3 of control register 108 at input B7. These signals are communicated as address inputs MCA6-MCA0 to the mapper RAM modules 140, 142.
Alternatively, a RAM address latch 146 receives from the system data bus a desired address which is latched when signal -WR_MAP_SEL is generated upon decoding the proper I/O space address (440h). Upon subsequently decoding the address for one of the mapper ram sections 140, 142 signal -MAP_CS is generated to cause multiplexer 606 to pass the data stored by latch 604 as address signals to the ram section 140, 142. Latches 608, 610 latch the data outputs from ram sections 140, 142 when decoding of the proper I/O space addresses produces signals -DATA_EN and -RD_MAP_LO or -RD_MAP_HI. Gates 612, 614 (which may be implemented as simple NAND gates that gate each latch output signal when enabled by the gate signal) then pass the appropriate signal group XD7A-XD0A or XD3B-XD0B for placement in the output data bus 104.
The DMA register 118 control logic is shown in Fig. 7 to which specific reference is now made. Address logic 702 generates the page register address signals A5-A0 in accordance with the following logic equations:
PA5 =
EXP REG EN • IDX16) ( 8 )
PA4 =
( 9 )
PA3 = -PMA2 )
(10)
PA2 = PMAl PMA2 + PMA0 -PMAl -PMA2) (11)
PA1 = EXP_REG_EN)
EXP_REG_EN) (12) PA0 = EXP_REG_EN)
Figure imgf000024_0001
EXP_REG_EN) (13) It will be noted that when iCK is active the address inputs are driven by the DMA channel identification signals IED0, IDEl and IDAK4 to select a set of registers from up to 8 sets which relate to 8 different channels and by middle input address signals IDX14-IDX16 which select one register within the selected set of registers. Signal IDAK4 identifies a two byte channel and blocks IDX16 for address A5 when a single byte channel is active.
When a DMA access is not in progress signal ACK is inactive and the address inputs to page register 118 are driven by signals PMA0 to PMA6 in response to I/O space addresses.
I/O address space decoder logic is shown in Fig. 8 and includes a decoder 806 receiving as inputs, latched address signals LA06-LA04 from address latch 132. Gate input Gl is driven by signal LAlO while the inverting gate inputs are driven by signals -DIG2A and -D2G2B from logic circuit 802 having the functions: -DIG1A = -I (-ACK) • (LA15) • (-LA14)- (-LA13) ' (-LAl2)-(-LAll)] (14)
-D2G2B = -[ (-LA09)-(-LA08)-(-LA07)] (15)
Decoder 806 thus operates to decode signals LA06-LA04 when LAlO = 0 (400H ex) and LA15-LA11 and LA09-LA07 are all zero. Logic circuit 804 generates signal
-EN_PGLOW = -(-EXP_REG_EN • -IXIOW • -80H
• (-LA00 • LA02 + LA01 • LA02 + -LA00 • -LA01)) (16) AND gate 814 combines this signal with signal -LA431W so that the section of the page register 118 which drives address lines TA23-TA17 is write enabled in response to a direct I/O space address for that section or when the CPU addresses one of the conventional system page registers in clone made or one of the matching registers in special clone mode. More specifically, WR_PG_LO becomes active when extended mode is not active for the specific channel, when IXIOW (an active low signal) indicates an I/O write is in progress, and when signal 80H (active low) indicates an address of 80H-8FH and one of the I/O locations 0, 8, 4-, C, 5, D, 6, E is not being addresses within this range. The signal -WR_PG_LO thus enables writing to the first page register for each channel when nor in extended mode so that the register can emulate the corresponding system register in special clone mode.
A logic circuit 820 receives signals IM_IO (memory IO active), IXIOR (IO Read is active), GTlMG
(greater than one megabyte), -LA20H (address 20H-2FH) and responds by generating the following signals.
DISABLE_MAP = - (IM_IO . EN_MAP) (17)
XEEN = - (LA20H • -IXIOR) (18) XFEN = - (LA10H - -IXIOR) ( 19 )
DMWR = GT1MG • DWlM (20)
Signal DISABLE_MAP is used as a disable control for signal IXP (Fig. 3) and for gating of data from the mapping ram. Signals XEEN and XFEN are used to gate the contents of the DMA mode register 114 and control register 108 onto the output data bus 104. Signal DMWR (disable map write) is used in generating output memory read and write gate signals. Fig. 9 shows circuitry for generating the gated memory read and write output signals OXGMW and OXGMR. Signal OXGMW is generated by an OR gate 904 as the logical OR of the input write gate signal IMWIN and the output of a flip-flop 906. Flip-flop 906 has its data input driven by
PMWG = WR_DR0T - EN_WRP + DMWR (21) and its reset input connected to signal -EN_MAP. The gate input is connected to the input address latch enable signal IALE. Similarly, an OR gate 908 receives input memory to read signal IMRIN and OR's this signal with the Q output of a flip-flop 910 to generate the output read gate signal OXGMR. Flip-flop 910 receives signal DMWR at its data input and the address latch enable signal IALE at its gate input. Its reset input is connected to signal -EN_MAP.
Logic 902 also generates the following signals which are used by the address modification system 20.
ACK = -IXACK (22) TRIACK = -AC (23)
INT_MAP_DIS = IXACK • (IA19 - IA10 = 0) (24) Signal INT_MAP_DIS goes true when signal IXACK indicates that an interrupt is being acknowledged while the nonextended address signals above IA09 are all zero, thus indicating that a memory location in the range 0-1023 is being addressed. This is the hardware defined interrupt vector storage range for the Intel 8088-80386 family of microprocessors. A timing generator circuit 1000 is shown in
Fig. 10 as including four cascaded flip-flops 1002, 1004, 1006 and 1008. Flip-flop 1002 is set when clocked by the occurrence of an I/O read or write pulse or when signal output enable x bus, OGNXB, goes true. This causes a logic one to be synchronously and sequentially passed through the- three remaining flip-flops 104-108 as they are clocked by the input clock signal ICLK and its complement. As soon as the logic 1 signal reaches flip-flop 1006 its QN output goes active low to generate signal -MAP_CS, which controls multiplexer 606 to select the address inputs to mapping ram 112. A half clock cycle later flip.-flop 1008 becomes set to force its output QN active low to generate signal -DATA_EN which enables writing of mapping ram 112.
Fig. 11 shows the interrupt flip-flop 1102 which indicates that an interrupt has been acknowledged. Flip-flop 1102 is set when clocked by the input interrupt acknowledge signal to gene .'ate signal INTA_F_F. It is reset when control register 108 is written with data bit 5 set or in response to -the system reset signal IXRES.
Fig. 12 shows the implementation of the memory address latch 132 which receives input addresses IA15-IA00 and outputs latched addresses LA15-LA00 respectively. Latch 132 is clocked by input address latch enable signal, IALE.
The circuitry for generating the interrupt response detection signal is shown in Fig. 13. An interrupt vector type latch 110 receives from the input data signals ID7-ID0 and latches the interrupt vector type generated by interrupt controllers 54 in response to the input interrupt acknowledge signal, IINTA. The logic circuit 1302 generates the vector compare signal VEC_COMP, VEC_COMP = INTA_F_F VEC_MATCH + TNMI (25) when the interrupt acknowledge flip-flop 1102 has been set and the current address signals IA09-IA02 match the interrupt vector type SL7-SL0 stored in interrupt vector type latch 110. Signal TNMI is generated according to the function TNMI = INMI • (-IA02) • IA03 • (-IA04) - (-IA05) (-IA06)- (-IA07) - (-IA08) (-IA09) (26) which indicates that the input nonmaskable interrupt signal, INMI, is active while one of the hardware defined nonmaskable interrupt vector storage location 0000:0008H 0000:000BH is being addressed. Signal VEC_COMP may thus be used to inhibit modification of- an interrupt vector address.
The page memory I/O address multiplexer circuit 1402 is shown in Fig. 14. It includes the DMA address 130 latch which received and latches input data signals
ID0-ID6 in response to signal -WR_PG_SEL which is decoded from the I/O address inputs. A multiplexer 160 receives the four low bit latched address signals DMALA0-DMALA3 at its B input and latched address signals LA00-LA03 at its A inputs.
Except when one of the clone mode page registers is being addressed, signal 8OH remains inactive high and signals PMA0-PMA6 reflect the contents of the DMA address register 130. This enables the CPU to read or write a selected one of the 41 registers within the DMA page register 118 by first writing the selected address into DMA address register 130 using I/O address space port 430H and then reading or writing the selected high or low page register section at port 431H or 432H respectively. Each of the conventional clone mode AT page registers lies within the 110 address space 80-8FH. When one of these I/O space addresses is asserted, signal 80H goes active low to disable AND gates 1404, 1406 and 1408 and cause multiplexer 160 to conduct latched address signals LA00-LA03 to output signals PMA0-PMA4. These four signals are sufficient to distinguish among the 8 clone mode DMA registers and permit a selected register to be written at the conventional AT I/O space port addresses. This facilitates the dual clone mode/extended mode addressing for these eight registers so that they can track the eight conventional counterparts contained within I/O controller 18.
It will be recalled form the discussion of Fig. 7 that address logic 1702 operates as a multiplexer to convey to the address terminals of page register 118 either the PMA0-PMA6 I/O address signals or the DMA page register selection signals IEDl, IED0, IDAK4 and IDX16-IDX14. Fig. 14 shows in detail the last instruction address register 124. It receives input address signals IA16-IA23 as inputs when clocked by the input CIOCK signal ICLK while the input instruction fetch signal, IINSF, is active low. A gate 1502 makes the output of latch 124 available to the output data bus 104 when signal -IPORT (450H) indicates that the instruction fetch register 124 I/O address has been decoded while I/O read signal IXIOR is active low. This gate signal is then inverted to produce an output enable signal, XGEN. Miscellaneous logic circuits which primarily provide input and output buffering and gating complete the description of the computer address modification system 20. As shown in Fig. 16, signals DPA14 and DPA15 are gated by signal -RD_PG_HI to produce signals XDOC and XDlC for gating to the output data bus when the high section of the page register is read.
Fig. 17 shows a gate 1702 for gating the low byte of the DMA page register 118 to output data bus 104 when it is read in the I/O address space. Fig. 18 shows a gate 1802 for gating the outputs of the DMA mode control register 114 to the output as signals of the MDA mode control reigster 114 to the output as signals XD6E-XD0E . Similarly, Fig. 19 shows a gate 1902 for output gating of the control register data as signals XD0F-XD4F and
XD6F-XD7F. Note that bit 5 is the interrupt reset bit. and it cannot be read.
The bidirectional connection to the data bus is shown in Fig. 20. By way of reference, the XD0 terms having an A suffix relate to the mapping ram 112 low bits, B is for the high bits, C is for the page register 118 low bits, D is for for high bits, E is for the mode, control register 114, F is for control register 108 and the G suffix designates the last instruction address register 124.
Signal INSF is buffered as it is received and redesignated IINSF. Similarly, the input address signals A00-A23 are buffered and redesignated IA00-IA23 as they are received. The X bus input address signals DX14-DX16 are each buffered and redesignated IDX14-IDX16.
For the outputs address signals OXA14-OXA16 are ouffered and gated to the XA bus 86 as signals XA14-XA16.
The gated memory read and write signals OXGMR and OXGMW are buffered and gated to their respective outputs as signals XGMR and XGMU. They are gated by
XG_GATE = TRI CK • IXMST " (27)
The translation output address signals OTA17-OTA23 are buffered and gated by signal TRIXMST before being output to the TA address bus as signals TA17-TA23. Input signals EBO , EB1, DAK4 and XIOR are buffered and redesignated IEBO , IEBl, IDAK4 and IXIOR respectively. Input signals XIOW, XRES, A20G, CLK and AΞN1 are buffered and redesignated IXIOW, IXRES, IA20G, ICLK and IAENl repsectively.
The interrupt related input signals XACK, XNS , NMI, INTA, .and MNIO are buffered and redesignated IXACK, IXNST, INMI, IINTA and IM_IO respectively. The memory access input signals MWIN, MRIN and ALE are buffered and redesignated IMWIN, IMRIN and IALE.
Output signals ONP, OEWXB and OTA14-OTA16 are buffered and connected without further gating to their- output terminals as signals NP, EMXB and TA14-TA16 respectively. While there has been shown and described above a particular arrangement of a computer system including an addres's modification system in accordance with the invention, it will be appreciated that the invention is not limited thereto. Accordingly, any modifications, variations or equivalent arrangements within the scope of the attached claims should be considered to be within the scope of the invention.

Claims

WHAT IS CLAIMED:
1. A computer address modification system comprising: a writeable mapping store coupled to receive at least a portion of an address signal, and to generate in response thereto and in response to data stored in the mapping store a modified address signal; a writeable page store having at least one storage location for each of a plurality of direct memory access channels and coupled to receive a direct memory access channel indication and a direct memory access memory address signal and generating in response to data stored in a storage location corresponding to the indicated direct memory access channel a modified direct memory access memory address signal.
2. A computer address modification system according to claim 1 wherein the writeable page store has a plurality of storage locations for each direct memory access channel and wherein the modified direct memory access memory address signal is generated in response to data stored in a data storage location indicated by the direct memory access memory address signal that is within a plurality of data storage locations corresponding to the indicated direct memory access channel.
3. A computer address modification system according to claim 1 further comprising a hardware interrupt detector circuit receiving a nonmaskable interrupt indication signal and selectively disabling modification of memory addresses in response thereto.
4. A computer address modification system according to claim 1 further comprising a hardware interrupt detector circuit coupled to selectively disable modification of memory addresses upon detecting an occurrence of an interrupt response.
5. A computer address modification system according to claim 1, further comprising an interrupt detector circuit including a vector type latch coupled to receive and latch a vector type signal generated by an interrupt controller and to disable modification of memory addresses received by the system upon receipt of an address matching a latched vector type signal.
6. A computer address modification system according to claim 1, wherein the interrupt detector circuit includes a reset circuit coupled to reset the disabling function of the detector circuit in response to receipt of data at a predetermined I/O address port.
7. A computer address modification system comprising: a mapping store having a plurality of addressable storage locations, each storing at least a portion of a computer system address; a mapping store address circuit receiving a system address and addressing one of the mapping store addressable location in response thereto; a translation address generating circuit providing a translated computer system address as an output for substitution for at least a portion of the computer system address in response to one of a plurality of address inputs, the address inputs including the computer system address, and the at least a portion of a computer system address stored at a location addressed by the mapping store address circuit; and an interrupt detection circuit coupled to detect the occurrence of an interrupt response and to command the translation address generating circuit to provide as an output the computer system address.
8. A computer address modification system having distinguishable I/O and memory address spaces and comprising: a multiple part mapping memory, each part storing a plurality of partial extended addresses which define a portion of an address for an addressable location in the memory address space", the mapper memory responding to receipt of at least a portion of a limited address defining an address location within a limited portion of the memory address space by outputting from a storage location corresponding to the received limited address portion of a selected one of the two parts indicated by a selection signal a partial extended address for use in forming an address in the memory address space; , a control store generating the selection signal in response to selection data stored therein, the selection data being changeable in response to a data transfer in the I/O address space to permit a change in the correspondence between extended addresses and limited addresses by changing the stored selection data.
9. A computer address modification system according to claim 8 wherein the control store further stores translation enable data that is changeable in response to a data transfer in the I/O address space and further comprising a multiplexer circuit that is responsible to the translation enable data stored by the control store, to the data output of the selected part of the mapping memory and to the received limited address portion, the multiplexing circuit responding to receipt by the modification system of a partial limited address by outputting the partial limited address when the translation enable data indicates that translation is not enabled and by outputting the partial extended address when the translation enable data indicates that address translation is enabled.
10. A computer address modification system according to claim 9 wherein the control store is a single register having a single I/O address space address location and storing the selection data and the translation enable data each at a different single bit position therein.
11. A computer address modification system according to claim 8 wherein the control store further stores mapping memory write enable data and further comprising write control circuitry disabling a write access to the mapping memory when the mapping memory write enable data has a state indicating that writing in not enabled.
12. A computer' address modification system according to claim 11 further comprising a blocking circuit responsive to a received limited address portion and to the stored translation enable data and blocking the generation of an output address when a received limited address portion defines a location beyond the limited address space while the stored translation enable data indicates that address translation is enabled.
13. A computer address modification system according to claim 8 wherein the control store further stores interrupt revectoring enable data that is changeable in response to a data transfer in the I/O address space and further comprising an interrupt revectoring circuit including an interrupt detection circuit detecting and indicating processing of an interrupt routine, the interrupt revectoring circuit disabling translation of received limited addresses when the stored revectoring enable data indicates that revectoring of interrupt process addresses is enabled while an interrupt routine is Deing processed.
14. A computer address modification system according to claim 13 having an interrupt acknowledge signal input for receiving an interrupt acknowledge signal generated by a data processing system to acknowledge an interrupt request, a data input for receiving data defining an interrupt vector type that is generated by a data processing system in response to the interrupt acknowledge signal and wherein the interrupt detection circuit includes an interrupt detection flip-flop coupled to be set upon receipt of an interrupt acknowledge signal at the interrupt acknowledge signal input, an interrupt vector type latch coupled to latch upon receipt of an interrupt acknowledge signal an interrupt vector type received at the data input, and a comparator coupled to compare a received memory space address with a latched vector type and to generate a vector compare signal for inhibiting mapping of the received address when the received address matches the latched vector type and the interrupt detection flip-flop is set.
15. A computer address modification system according to claim 14 further comprising a nonmaskable interrupt signal input for receiving from a data processing system a signal requesting a nonmaskable interrupt and wherein the comparator further generates the vector compare signal when a nonmaskable interrupt signal is present while a received memory space address represents a predetermined address storing a nonmaskable interrupt vector.
16. A computer address modification system according to claim 15 wherein the interrupt detection flip-flop is coupled to be reset upon receipt of a data transfer in the I/O address space to an address of the control store with a predetermined portion of the transferred data having a predetermined data store.
17. A computer address modification system according to claim 8, further comprising: a direct memory access controller; an I/O controller generating address signals defining a portion of a memory space address which corresponds to an active direct memory access channel, the generated portion being combined into a limited address, the limited address being coupled to the mapping memory as any other limited address.
18. A computer address modification system according to claim 17, further comprising: a page store having a plurality of registers, each corresponding to a direct memory access channel and storing a portion of an address in the memory address space, the page store being operative when a direct memory access channel is active to output a stored address portion from a register corresponding to the active direct memory access channel; a bus system operative in response to a direct memory access operation to combine the address portion generated by a page store register during a direct memory access into a memory space address.
19. A computer address modification system according to claim 18, further comprising: an address storage location having an address in the I/O address space and storing a page store enable 5." signal for selectively enabling the page store, the I/O controller receiving the page store enable signal and inhibiting the generation of the portion of the memory space address that is otherwise generated thereby when a direct memory access is active, and the mapping memory 0 receiving the page store enable signal and inhibiting the outputting of a partial extended address when the page store enable signal is active.
20. A computer address modification system for modification of computer addresses comprising: a mapper store having a plurality of addressable storage locations, each of which corresponds to a block of addresses, stores address information representing at least a portion of a translated address for the corresponding block of addresses, and outputs the stored address information in response to a received address identifying the corresponding block of addresses; a page store having a plurality of addressable storage locations, each of which corresponds to a direct memory access channel, stores address information representing at least a portion of an address for the corresponding direct memory access channel, and. outputs the stored address information in response to an occurrence of a direct memory access on the corresponding channel; a control circuit receiving portions of computer addresses sufficient to identify a block of addresses, receiving signals indicating an occurrence of a direct memory access and the channel on which a direct memory access occurs, receiving a page store enable signal, and receiving stored address information output from the page store; the control circuit being operative to output system address data representing at least a portion of a computer address, the system address data being, when a direct memory access channel is active and the page store enable signal has an active state, the output from the page store storage location corresponding to the active channel, and when the direct memory access channel is inactive the output from a mapper store location corresponding to a block of addresses indicated by a received computer address portion.
21. A computer address modification system according to claim 20, further comprising a control circuit providing storage for at least one control state, one of the control states being a translation enable state, and wherein the control circuit blocks substitution of a translated address portion stored in the mapper store for a received address portion unless the stored translation enable state indicates that translation is enabled.
22. A computer address modification system according to claim 20 further comprising a DMA mode register having storage for an enable signal corresponding to each direct memory access channel, the control circuit being responsive to the DMA mode reg- ter to enable substitution of an address portion stored in the page store for a DMA address portion only when the stored enable signal for an active channel indicates that the substitution is enabled.
23. A computer address modification system for use in a computer system having a plurality of direct memory access channels and including an addressable system page register for each channel storing a portion of an address that is asserted when the corresponding channel is active and a page register enable signal is in an inactive state and including an addressable storage location storing a selected state of the page register enable signal, the address modification system comprising: a DMA mode register having a channel enable signal storage location corresponding to each different DMA channel; a page store including a plurality of DMA page registers for each channel, one of the DMA page registers for each channel being a first page register and being addressable in the same manner as the system page register for the given channel so as to receive and store any data written to the system page register; and a control circuit responsive to the page register enable signal, to 'a portion of a computer system address, to direct memory access channel indication signals and to the DMA mode register to disable operation of the page store when the page register enable signal is inactive, to address the page store to provide the contents of a first register as a portion of a system address when a direct memory access channel is active while the page register enable signal is active and the channel enable signal stored by the page store for the active channel is in an inactive state and to address the page store when a direct memory access channel is active while the page register enable signal is active and the channel enable signal stored by the page store for the active channel is in an active state to provide as a portion of a system address the contents of a DMA page register corresponding to the active channel which is selected by a portion of a system address provided by the computer system.
24. A computer address modification system comprising: a page store having a plurality of addressable storage locations corresponding to each of a plurality of different direct memory access channels with one of the storage locations corresponding to each channel being a first storage location; a DMA mode register storing a channel enable signal for each channel; and a control circuit responsive to a received page register enable signal, to received computer address signals and to the DMA mode register to control selective modification of received addresses, the control circuit commanding operation i-n an extended mode when the page register enable signal is active and a direct memory access channel is active while the corresponding channel enable signal stored by the DMA mode register has an active state by providing as a portion of the computer address signals, data stored in one of the addressable storage locations which corresponds to the active channel with the one addressable storage location being selected in response at least a portion of the received computer address signals.
25. A computer address modification system according to claim 24, wherein the provided data is substituted for at least the portion of the computer address signal which the control circuit responds to in _ selecting the one addressable storage location.
26. A computer address modification system according to claim 24 wherein the control circuit is responsive to an active state of the page register enable signal and an inactive state of a stored channel enable signal for an active channel by commanding operation in a special clone mode by providing as a portion of the computer address signals, data stored in the first of the plurality of addressable page storage locations which corresponds to the active channel.
27. A computer address modification system according to claim 24 further comprising: a mapping store storing a plurality of computer address portions for substitution in place of at least a portion of a computer address; a control store storing a mapping store enable signal; and the control circuit responding to an inactive state of the page register enable signal and an active state of the mapping store enable signal by commanding operation in a mapped clone mode by providing as a portion of the computer address signals one of the computer address portions stored in the mapping store with the one portion being selected in response to a portion of the received computer address signals.
28. A computer address modification system according to claim 27 wherein the control circuit responds to an inactive state of the page register enable signal by disabling any substitution of data stored in the page store for any portion of a computer address.
29. A computer address modification system according to claim 27 wherein the control circuit responds to an inactive state of the stored mapping store enable signal by disabling any substitution of data stored in the mapping store for any portion of a computer address.
30. A computer address modification system comprising: a page store having a plurality of addressable storage locations storing at least a portion of a computer address corresponding to each of a plurality of different direct memory access channels with one of the storage 'locations corresponding to each channel being a first storage location; a DMA mode register storing i channel enable signal selectively enabling paging for each DMA channel; a mapping store storing a plurality of computer address portions for substitution in place of at least a portion of a computer address; a control store storing a mapping store enable signal; and a control circuit responsive to the states of the channel enable signals, the mapping store enable signal and a page store enable signal received from a computer system to command operation in a selected one of a plurality of modes including (1) when the page store enable signal is active and a DMA channel activity signal indicates operation of a given DMA channel while the corresponding stored channel enable signal has an active state, an extended mode in which a computer address portion stored in the page store at one of the storage locations is provided as an output for use in forming at least a portion of a computer address, the storage location being selected from among the storage locations corresponding to the active channel in response to a received computer address; (2) when the page store enable signal is active and a DMA channel activity signal indicates operation of a given DMA channel while the corresponding stored channel enable signal has an inactive state, a special clone mode in which a computer address portion stored in the page store at a first storage location corresponding to the active DMA channel is provided as an output for use in forming at least a portion of a computer address, (3) when the page store enable signal is inactive and the stored mapping store enable signal has an active state, a mapped clone mode in which a computer address portion selected in response to a received computer address is provided for use in forming at least a portion of a computer address, and (4) when the page store enable signal is inactive and the stored mapping store enable signal has an inactive state, a clone mode in which a received computer address portion is output unchanged for use in forming at least a portion of a computer address.
31. A computer address modification system according to claim 30 wherein the control circuit includes an interrupt processing detection circuit generating an interrupt detected signal in response to the processing of an interrupt request and the mapping store stores an interrupt redirection signal and wherein the control circuit operates in the mapped clone mode and extended mode when the interrupt detected signal is active while the stored interrupt redirection signal has an active state to inhibit providing an address portion stored in the mapping store as the output for αse in forming at least a portion of a computer address.
32. A computer address modification system according to claim 31 wherein the control store has an address in a second address space that is distinguishable from the computer addresses and wherein the interrupt processing detection circuit responds to writing of a selected state to a predetermined location within the control store using an address in the second address space by resetting the interrupt redirection signal to an inactive state.
33. A computer modification system for use with a computer system having first and second address spaces, the first address space having low, medium, high and extended address signal portions in respective order of significance, having DMA signals indicating DMA channel activity in the first address space and a page store enable signal selectively defining active and inactive states thereof, comprising: a mapping store having a plurality of storage locations, each storage location storing a translation address having medium, high and extended address portions for a contiguous block of first address space addresses; a control store that is writeable in the second address space and includes at least one storage location including a mapping store enable location storing data defining a mapping store enable signal having selectable enable and disable states; a page store having a plurality of storage locations, each storage location storing a paging address having medium, high and extended address portions for a contiguous block of first address space addresses, the page store having a plurality of storage locations for corresponding to each DMA channel among a plurality of DMA channels with one of each plurality of storage locations ^ being a first storage location; a DMA mode store that is writeable in the second address space and stores data defining a DMA paging enable state for each of a plurality of direct memory access channels; and a control circuit controlling system operation in one of a plurality of modes including a clone mode and an extended mode,
(1) the control circuit operating in clone mode when the page store enable signal defines an inactive state and the stored mapping store enable signal has a disable state to provide as an output medium, high and extended address signal portions that are the same as received medium, high and extended address signal portions, (2) the control store operating in mapped clone mode when the page store enable signal defines an inactive state and the mapping store enable signal has an enable state to provide as an output medium, high and extended address signal portions stored at a mapping store storage location determined in response to medium and high portions of a received address signal,
(3) the control store operating in special clone mode when the page store enable signal defines an active state, when the received DMA signals indicate that a DMA channel is active and the stored channel enable signal for the active channel has a state disabling paging to provide as an output medium, high and extended address signal portions stored at the first storage location among the plurality of storage locations corresponding to the active channel, and
(4) the control store operating in extended mode when the page store enable signal defines an active state when the received DMA signals indicate that a DMA channel is active and zhe stored channel enable signal for the active channel has a state enabling paging to provide an an output medium, high and extended address signal portions stored at a storage location among the plurality of storage locations corresponding to the active channel that is selected in response to the medium portion of a received address signal.
34. A computer address modification system according to claim 33 wherein the control circuit fails to provide as an output any address signal portion when the mapping store enable signal has an enable state and an extended portion of a received address signal -is a state other than a predetermined state.
35. A computer address modification system according to claim 33 wherein the lower address portion of a received address defines a location within a 16K block of address where K equals 1024.
36. A computer address modification system according to claim 33 wherein the control store stores an interrupt redirection signal and the control circuit includes means for detecting an interrupt response and providing as an output medium, high and extended portions of received addresses after an interrupt is detected when the interrupt redirection signal has an active state.
37. A computer address modification system according to claim 33 wherein the control store stores a write enable signal selectively enabling writing of the mapping store and wherein the control store enables write accesses to the mapping store storage locations only when the write enable signal has a write enable state .
38. A computer address modification system according to claim 33 wherein the control store stores an extended address disable signal and the control circuit responds to an active state of the extended address
0 disable signal by not providing any address portion as an output in response to a received address signal having an extended portion having other than a given predetermined state.
39. A computer address modification system according to claim 38 wherein the given predetermined state of the extended portion of a received address is all zeros.
40. A computer address modification system according to claim 33 wherein the mapping store includes multiple sets of the plurality of storage locations with only one set being operative to provide translation address data at any given time, and wherein the control store stores data defining which set is active at any given time.
PCT/US1988/000613 1987-08-10 1988-02-29 Computer system providing address modification for use also with dma and interrupts WO1989001662A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019890700612A KR960005392B1 (en) 1987-08-10 1988-02-29 Computer system for providing address modification for use also with dma and interrupt

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US084,318 1987-08-10
US07/084,318 US4849875A (en) 1987-03-03 1987-08-10 Computer address modification system with optional DMA paging

Publications (1)

Publication Number Publication Date
WO1989001662A1 true WO1989001662A1 (en) 1989-02-23

Family

ID=22184198

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1988/000613 WO1989001662A1 (en) 1987-08-10 1988-02-29 Computer system providing address modification for use also with dma and interrupts

Country Status (3)

Country Link
JP (1) JPH02500224A (en)
KR (1) KR960005392B1 (en)
WO (1) WO1989001662A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994008313A1 (en) * 1992-10-02 1994-04-14 Compaq Computer Corporation Arrangement of dma, interrupt and timer functions to implement symmetrical processing in a multiprocessor computer system

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4158227A (en) * 1977-10-12 1979-06-12 Bunker Ramo Corporation Paged memory mapping with elimination of recurrent decoding
US4164786A (en) * 1978-04-11 1979-08-14 The Bendix Corporation Apparatus for expanding memory size and direct memory addressing capabilities of digital computer means
JPS5544613A (en) * 1978-09-25 1980-03-29 Toshiba Corp Memory device
US4340932A (en) * 1978-05-17 1982-07-20 Harris Corporation Dual mapping memory expansion unit
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
US4419727A (en) * 1979-01-02 1983-12-06 Honeywell Information Systems Inc. Hardware for extending microprocessor addressing capability
US4449181A (en) * 1977-10-21 1984-05-15 The Marconi Company Limited Data processing systems with expanded addressing capability
US4550368A (en) * 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4669064A (en) * 1984-02-27 1987-05-26 Nec Corporation Semiconductor memory device with improved data write function
US4675850A (en) * 1984-08-30 1987-06-23 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
US4688166A (en) * 1984-08-03 1987-08-18 Motorola Computer Systems, Inc. Direct memory access controller supporting multiple input/output controllers and memory units
US4697106A (en) * 1982-09-17 1987-09-29 Nec Corporation Programmable memory circuit
US4740922A (en) * 1984-10-23 1988-04-26 Fujitsu Limited Semiconductor memory device having a read-modify-write configuration

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4158227A (en) * 1977-10-12 1979-06-12 Bunker Ramo Corporation Paged memory mapping with elimination of recurrent decoding
US4449181A (en) * 1977-10-21 1984-05-15 The Marconi Company Limited Data processing systems with expanded addressing capability
US4164786A (en) * 1978-04-11 1979-08-14 The Bendix Corporation Apparatus for expanding memory size and direct memory addressing capabilities of digital computer means
US4340932A (en) * 1978-05-17 1982-07-20 Harris Corporation Dual mapping memory expansion unit
JPS5544613A (en) * 1978-09-25 1980-03-29 Toshiba Corp Memory device
US4419727A (en) * 1979-01-02 1983-12-06 Honeywell Information Systems Inc. Hardware for extending microprocessor addressing capability
US4403283A (en) * 1980-07-28 1983-09-06 Ncr Corporation Extended memory system and method
US4550368A (en) * 1982-07-02 1985-10-29 Sun Microsystems, Inc. High-speed memory and memory management system
US4697106A (en) * 1982-09-17 1987-09-29 Nec Corporation Programmable memory circuit
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller
US4669064A (en) * 1984-02-27 1987-05-26 Nec Corporation Semiconductor memory device with improved data write function
US4688166A (en) * 1984-08-03 1987-08-18 Motorola Computer Systems, Inc. Direct memory access controller supporting multiple input/output controllers and memory units
US4675850A (en) * 1984-08-30 1987-06-23 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
US4740922A (en) * 1984-10-23 1988-04-26 Fujitsu Limited Semiconductor memory device having a read-modify-write configuration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, Vol. 25, No. 7B, issued Dec. 1982, ARMONK N.Y., M.H. SKELTON, "Program controlled Paging Scheme for Memory Expansion", page 3865. *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994008313A1 (en) * 1992-10-02 1994-04-14 Compaq Computer Corporation Arrangement of dma, interrupt and timer functions to implement symmetrical processing in a multiprocessor computer system
US5437042A (en) * 1992-10-02 1995-07-25 Compaq Computer Corporation Arrangement of DMA, interrupt and timer functions to implement symmetrical processing in a multiprocessor computer system

Also Published As

Publication number Publication date
KR890702128A (en) 1989-12-22
KR960005392B1 (en) 1996-04-24
JPH02500224A (en) 1990-01-25
JPH0585052B2 (en) 1993-12-06

Similar Documents

Publication Publication Date Title
US4849875A (en) Computer address modification system with optional DMA paging
US4891752A (en) Multimode expanded memory space addressing system using independently generated DMA channel selection and DMA page address signals
US5101339A (en) Computer address modification system using writable mapping and page stores
US4688166A (en) Direct memory access controller supporting multiple input/output controllers and memory units
JP2633458B2 (en) DMA channel device and DMA channel conversion device
US5696924A (en) Memory access circuit with address translation performing auto increment of translated address on writes and return to translated address on reads
US5740404A (en) Digital signal processor with on-chip select decoder and wait state generator
US5737604A (en) Method and apparatus for independently resetting processors and cache controllers in multiple processor systems
KR920010950B1 (en) Device and method of accessing information
US6463529B1 (en) Processor based system with system wide reset and partial system reset capabilities
US5542053A (en) Bridge interface between two buses of a computer system with a direct memory access controller programmed by a scatter/gather programmer
US4818932A (en) Concurrent memory access system
US5909696A (en) Method and apparatus for caching system management mode information with other information
CA2119401C (en) Computer system which overrides write protection status during execution in system management mode
US5341494A (en) Memory accessing system with an interface and memory selection unit utilizing write protect and strobe signals
US5008816A (en) Data processing system with multi-access memory
JPH0713908A (en) Method and apparatus for provision of back- to-back data transfer in information- processing system with multiplex bus
US5386579A (en) Minimum pin-count multiplexed address/data bus with byte enable and burst address counter support microprocessor transmitting byte enable signals on multiplexed address/data bus having burst address counter for supporting signal datum and burst transfer
EP0175620B1 (en) Access verification arrangement for digital data processing system which has demand-paged memory
US5509139A (en) Circuit for disabling an address masking control signal using OR gate when a microprocessor is in a system management mode
JPS5821308B2 (en) Look-ahead control device
CN101052952B (en) Memory management unit and method for memory management
US4764896A (en) Microprocessor assisted memory to memory move apparatus
KR960005392B1 (en) Computer system for providing address modification for use also with dma and interrupt
US6938118B1 (en) Controlling access to a primary memory

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR