WO1986000431A1 - Data processor having multiple bus cycle operand cycles - Google Patents

Data processor having multiple bus cycle operand cycles Download PDF

Info

Publication number
WO1986000431A1
WO1986000431A1 PCT/US1985/000655 US8500655W WO8600431A1 WO 1986000431 A1 WO1986000431 A1 WO 1986000431A1 US 8500655 W US8500655 W US 8500655W WO 8600431 A1 WO8600431 A1 WO 8600431A1
Authority
WO
WIPO (PCT)
Prior art keywords
bus
operand
cycle
address
data
Prior art date
Application number
PCT/US1985/000655
Other languages
French (fr)
Inventor
David S. Mothersole
Jay Alan Hartvigsen
Robert R. Thompson
Original Assignee
Motorola, Inc.
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
Application filed by Motorola, Inc. filed Critical Motorola, Inc.
Publication of WO1986000431A1 publication Critical patent/WO1986000431A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Definitions

  • the present invention relates generally to data processors and, more particularly, to a data processor which is capable of communicating operands using a plurality of consecutive bus cycles.
  • the data processor which is adapted to communicate an operand with a storage device using an operand cycle comprising a plurality of bus cycles.
  • the data processor includes a circuit which provides a signal to the storage device during at least a portion of the first bus cycle of each operand cycle to indicate the start of the operand cycle.
  • the present invention may be used in any bus master which is adapted to communicate an operand with a bus slave using an operand cycle comprising a plurality of bus cycles.
  • the bus master includes a circuit which provides an indication to the bus slave during at least a portion of the first bus cycle of each operand cycle to distinguish the start of the operand cycle.
  • Figure 1 is a block diagram of a data processor having a bus controller constructed in accordance with the present invention.
  • FIG. 2 is a block diagram of the address bus interface of the data processor of Figure 1.
  • Figure 3 is a block diagram of the A0 and A1 interfaces of the address bus interface of Figure 2.
  • Figure 4 is a detailed schematic of the address restore portion of the A0/A1 interface of Figure 3.
  • FIG 5 is a detailed schematic of the A0 interface of Figure 3, the A1 interface being identical.
  • Figure 6 is a block diagram of the A2 through A16 interfaces of the address bus interface of Figure 2.
  • Figure 7 is a block diagram of the A17 through A32 interfaces of the address bus interface of Figure 2.
  • Figure 8 is a detailed schematic of the A2 interface of Figure 6, the A4, A6, A8, A10, A12, A14, A16, A18, A20, A22, A24, A26, A28, A30 and A32 interfaces being identical.
  • Figure 9 is a detailed schematic of the A3 interface of Figure 6, the A5, A7, A9, A11, A13, A15, A17, A19, A21, A23, A25, A27, A29 and A31 interfaces being identical.
  • Figure 10 is a block diagram of the data bus interface of the data processor of Figure 1.
  • FIG 11 is a detailed schematic diagram of the internal data bus precharge portion of the data bus interface of Figure 10.
  • Figure 12 is a detailed schematic diagram of the input enable portion of the data bus interface of Figure 10.
  • Figure 13 is a block diagram of the D0 1hrough D7 interfaces of the data bus interface of Figure 10.
  • Figure 14 is a detailed schematic diagram of the control for the D0-D7 interfaces of Figure 13.
  • Figure 15 is a block diagram of the D8 through D15 interfaces of the data bus interface of Figure 10.
  • Figure 16 is a block diagram of the control for the D8-D23 interfaces of the data bus interface of Figure 15.
  • Figure 17 is a detailed schematic diagram of the control for the D8-D15 interfaces of the data bus interface of Figure 16.
  • Figure 18 is a detailed schematic diagram of the control for the D16-D23 interfaces of the data bus interface of Figure 16.
  • FIG 19 is block diagram of the D16 through D23 interfaces of the data bus interface of Figure 10.
  • Figure 20 is a block diagram of the D24 through D31 interfaces of the data bus interface of Figure 10.
  • Figure 21 is a detailed schematic diagram of the D31 interface of the data bus interface of Figure 20, all of the other interfaces D0 through D30 being identical.
  • Figure 22 is a detailed schematic diagram of the control of the D24-D31 interfaces of Figure 20.
  • Figure 23 is a block diagram of the bus controller of the data processor of Figure 1.
  • Figure 24 is a detailed schematic diagram of the size control circuit of the bus controller of Figure 23..
  • Figure 25 is a detailed schematic diagram of the byte latch control of the bus controller of Figure 23.
  • Figure 26 is a detailed schematic diagram of the next address control of the bus controller of Figure 23.
  • Figure 27 is a detailed schematic diagram of the data address buffers of the bus controller of Figure 23.
  • Figure 28 is a block diagram of the microsequencer of the bus controller of Figure 23.
  • Figure 29 is a. detailed schematic diagram of the data size input synchronizer of the microsequencer of Figure 28.
  • Figure 30 is a detailed schematic diagram of the termination control of the microsequencer of Figure 28.
  • Figure 31 is a detailed schematic diagram of the state control of the microsequencer of Figure 28.
  • Figure 32 is a detailed schematic diagram of the start bus cycle control of the microsequencer of Figure 28.
  • Figure 33 is a detailed schematic diagram of the operand cycle start buffer of the microsequencer of Figure 28.
  • a data processor 10 comprising a central processing unit (CPU) 12, a bus controller 14, an address bus interface 16, a data bus interface 18, and a storage device 20.
  • the CPU 12 executes a user specified sequence of instructions, each of which is comprised of one or more 16-bit words. Each of these instructions must be read from the storage device 20 in the appropriate sequence. In the course of executing each such instruction, the CPU 12 may be required to perform a specified operation upon an 8-bit byte, a 16-bit word or a 32-bit long word. Most of these data operands must be either read from or written to the storage device 20. In order to assure optimum performance on long word operations, the CPU 12 is provided with a 32-bit data port.
  • the storage device 20 may have a data port which is smaller than that of the CPU 12. Even when the port sizes are the same, the operand required by the CPU 12 may still reside at an address within the storage device 20 which does not align evenly with the data port of that particular storage device 20. It is the responsibility of the bus controller 14 to coordinate the activities of the address bus interface 16 and the data bus interface 18 in actually transfering the requested data or instruction operands between the CPU 12 and the storage device 20, regardless of operand misalignment or any mismatch between the port sizes of the CPU 12 and the storage device 20.
  • the CPU 12 requests an operand transfer by asserting an OPeration-PENDing signal (OPPEND) to the bus controller 14. Simultaneously, the CPU 12 will provide a Read/Write-ReQuest signal (RQRW) indicating the direction of operand transfer and a Requested-Size signal (*RQS[0:1]) indicating the size of the operand to be transferred.
  • RQRW Read/Write-ReQuest signal
  • RQS[0:1] Requested-Size signal
  • the CPU 12 also provides a 32-bit Address (A[0:31]) to or from which the operand is to be transferred on a 32-bit Internal Address Bus (*IAB[0:31]).
  • the bus controller 14 will briefly assert a Start-OPerand-CYcle signal (SOPCY) directing the address bus interface 16 to latch the operand address on the *IAB.
  • SOPCY Start-OPerand-CYcle signal
  • the bus controller 14 will also provide a buffered form of the SOPCY as a brief Operand-Cycle-Start signal (*OCS) to indicate to the storage device 20 that the bus cycle just starting is the first bus cycle of an operand cycle.
  • the bus controller 14 will negate a TRISTATE signal (*TRISTATE) to enable the address bus interface 16 to transfer the address to the storage device 20 on a 32-bit external ADDRESS BUS (ADDRESSBUS).
  • ADDRESSBUS Address-Strobe signal
  • AS Address-Strobe signal
  • the bus controller 14 will then assert a Data-Output- Buffer-to-Internal-Data-Bus signal (DOBIDB) directing the CPU 12 to provide the operand to the data bus interface 18 on a 32-bit Internal Data Bus (IDB[0:31]).
  • DOBIDB Data-Output- Buffer-to-Internal-Data-Bus signal
  • the bus controller 14 will also provide to the data bus interface 18: a CURrent-Size signal (*CURS[0:1]) indicating the size of the operand to be placed on the DATABUS; a DATA-ADDress signal (DATAADD[0:1]) corresponding to the two low order address bits A0 and A1 of the address on the ADDRESSBUS; and a CURrent-Read/Write signal (*CURRW;CURRW) corresponding to the current state of the RW signal.
  • a CURrent-Size signal (*CURS[0:1]) indicating the size of the operand to be placed on the DATABUS
  • DATA-ADDress signal DATAADD[0:1]
  • CURrent-Read/Write signal (*CURRW;CURRW) corresponding to the current state of the RW signal.
  • the IDB is partitioned into four bytes: I0 consisting of internal Data bits D31 through D24; I1 consisting or Data bits D23 through D16; I2 consisting of internal Data bits D15 through D8; and I3 consisting of internal Data bits D7 through D0.
  • these internal bytes must be selectively coupled to the external DATABUS which is also partitioned into four bytes: E0 consisting of external Data bits D31 through D24; E1 consisting of external Data bits D23 through D16; E2 consisting of external Data bits D15 through D8; and E3 consisting of external Data bits D7 through D0.
  • the data bus interface 18 will provide the available bytes on the IAB to the appropriate bytes on the DATABUS as follows: CURS DATAADD DATABUS
  • the storage device 20 Upon receiving the Address-Strobe (*AS), the storage device 20 will decode the address on the ADDRESSBUS. If the address is determined to be within the address range for that particular storage device 20, the storage device 20 will prepare to latch the operand. To best facilitate this, the storage device 20 has its data port connected to the DATABUS so that the high order byte (00) of the data port of the storage device 20 will be aligned with the high order byte (E0) of the DATABUS as follows:
  • the storage device 20 upon receiving the Data-Strobe (*DS), the storage device 20 will always be able to latch at least the high order portion of the operand during the first bus cycle of every operand cycle. After successfully capturing the respective portion of the operand, the storage device 20 will provide a Data-transfer-and-Size-ACKnowledge signal (*DSACK[0:1]) acknowledging the operand transfer.
  • the *DSACK signal also indicates the size of the data port of that particular storage device 20 as follows:
  • the bus controller 14 can determine the size of residual portion of the operand, if any, which has not yet been received, as follows:
  • the bus controller 14 will then assert a Tristate-Data-Bus signal (*TSDB) to force the data bus interface 18 to remove the operand from the DATABUS. Simultaneously, the bus controller 14 will assert an OPerand-CYcle-COMplete signal (OPCYCOM) to advise the CPU 12 that the requested operand write has been completed. Finally, the bus controller 14 will terminate the bus cycle by negating the Address and Data Strobes (*AS and *DS). In response, the storage device 20 will withdraw the *DSACK signal. At this time, the communication bus again becomes available for use by the CPU 12 or any other bus master (not shown) which may be present in the system.
  • TPDB Tristate-Data-Bus signal
  • OPCYCOM OPerand-CYcle-COMplete signal
  • the bus controller 14 will recompute the two low order bits A0 and A1 of the address of the residual operand as follows:
  • the bus controller 14 will then provide a NeXT-Address signal (NXTA[0:1]) to the address bus interface 16 indicating the new low order address bits A0 and A1. If the communication bus has been used by a different bus master (not shown) since the previous bus cycle of the current operand cycle, the bus controller 14 will assert an Address-Restore signal (ARESTORE) requesting the address bus interface 16 to restore the original higher order address bits (*IAD[2:31]), but use the two new low order address bits (NXTA[0:1]).
  • ARESTORE Address-Restore signal
  • the bus controller 14 will assert an INCrement- A2-through-A31 signal (INCA2A3) requesting the address bus interface 16 to increment the original higher order address bits (*IAD[2:31]), and use the incremented address together with the two new low order address bits (NXTA[0:1]).
  • the address bus interface 16 has already incremented the higher order address bits A2-A31.
  • the bus controller 14 can immediately assert a Start-NeXT-Bus-Cycle signal (SNXTBC) requesting the address bus interface 16 to start the next bus cycle using the new address.
  • the bus controller 14 cooperates with the address bus interface 16 and the data bus interface 18 as described above, except that the Operand-Cycle-Start signal (*OCS) will not be provided, thus distinguishing all such subsequent bus cycles from the first bus cycle of the operand cycle. If necessary, this sequence is repeated until all of the requested operand has been received and latched into the storage device 20.
  • OCS Operand-Cycle-Start signal
  • the write operand cycle can be summarized with respect to any bus master writing an operand to a bus slaae as follows: BU S MASTER :
  • the bus controller 14 will again briefly assert the Start-OPerand-CYcle signal (SOPCY) directing the address bus interface 16 to latch the operand Address on the *IAB.
  • SOPCY Start-OPerand-CYcle signal
  • the bus controller 14 will also briefly assert the Operand-Cycle-Start signal (*OCS) to indicate to the storage device 20 that the bus cycle just starting is the first bus cycle of an operand cycle.
  • the bus controller 14 will negate *TRISTATE (if then asserted) to enable the address bus interface 16 to transfer the Address to the storage device 20 on the ADDRESSBUS.
  • the bus controller 14 will also provide RW in the Read state.
  • the bus controller 14 will assert *AS to the storage device 20 indicating that a valid operand Address is on the ADDRESSBUS. Internally, the bus controller 14 will assert a Data-bus-Start-PreCHarGe signal (DSPCHG) directing the data bus interface 18 to start precharging the IDB. In addition, the bus controller 14 will pass the current operand size (*CURS[0:1]), the current low order address bits (DATAADD[0:1]), and the current direction of operand transfer (*CURRW;CURRW) to the data bus interface 18.
  • DSPCHG Data-bus-Start-PreCHarGe signal
  • the storage device 20 Upon receiving *AS, the storage device 20 will decode the address on the ADDRESSBUS. If the address is determined to be within the address range for that particular storage device 20, the storage device 20 will provide on the DATABUS as much of the requested operand as possible for the port size of that particular storage device 20. The storage device 20 will then provide *DSACK to indicate that the requested operand (or at least a portion thereof) is available on the DATABUS. As explained above, the *DSACK signal also indicates the size of the data port of that particular storage device 20.
  • the data bus interface 18 can determine which bytes (E[0:3]) of the DATABUS are valid, as follows:
  • the data bus interface 18 will couple the valid byte(s) on the DATABUS to the proper byte(s) of the IDB as described above.
  • the bus controller 14 can then provide a Data-Bus-INput:Latch-Byte signal (DBINLB[0:3]) indicating which bytes (I[0:3]) of the IDB are valid, as follows:
  • the bus controller 14 can determine how much of the requested operand remains to be provided by the storage device 20, in a similar manner to that described above in the write case.
  • the bus controller 14 will know that all of the operand has been received and that the operand cycle can be terminated. In this event, the bus controller 14 will terminate the bus cycle by negating *AS and *DS. Simultaneously, the bus controller 14 will assert *TSDB to force the data bus interface 18 to decouple from the DATABUS. The bus controller 14 will also remove DBINLB and then assert OPCYCOM to advise the CPU 12 that the requested operand read has been completed.
  • the bus controller 14 will assert *TRISTATE to force the address bus interface 16 to remove the address from the ADDRESSBUS.
  • the storage device 20 will withdraw the operand byte(s) from the DATABUS, and then terminate *DSACK.
  • the communication bus again becomes available for use by the CPU 12 or any other bus master (not shown) which may be present in the system.
  • the bus controller 14 will recompute the two low order bits A0 and A1 of the address of the residual operand as described above. The bus controller 14 will then provide the address bus interface 16 with the new low order address bits A0 and A1 (NXTA[0:1]). If the communication bus has been used by another bus master (not shown) since the previous bus cycle of the current operand cycle, the bus controller 14 will assert ARESTORE requesting the address bus interface to restore the original higher order address bits (*IAD[2:31]), but use the two new low order address bits (NXTA[0:1]).
  • the bus controller 14 will assert INCA2A31 requesting the address bus interface 16 to increment the original higher order address bits (*IAD[2:31]), and use the resultant address together with the two new low order address bits (NXTA[0:1]). As indicated before, the address bus interface 16 has already incremented the higher order address bits A2-A31 in anticipation of this request. Thus, the bus controller 14 can immediately assert (SNXTBC) requesting the address bus interface 16 to start the next bus cycle using the new address.
  • the bus controller 14 cooperates with the address bus interface 16 and the data bus interface 18 as described above, except that the Operand-Cycle-Start signal (*OCS) will not be provided, thus distinguishing all such subsequent bus cycles from the first bus cycle of the operand cycle. If necessary, this sequence is repeated until all of the requested operand has been received and latched into the CPU 12.
  • the read cycle can be summarized with respect to any bus master reading an operand from a bus slave as follows:
  • the preferred embodiment of the address bus interface 16 is comprised of an A0A1 interface 22, an A2A16 interface 24, and an A17A31 interface 26.
  • the A0A1 interface 22 is comprised of an ADDress RESTore 28, an A0 interface 30 and an A1 interface 32 which is identical to the A0 interface 30.
  • Detailed schematic diagrams of the ADDREST 28 and the A0 interface 30 are shonw in Figures 4 and 5, respectively.
  • the A2A16 interface 24 is comprised of A2 through A16 interfaces 34 through 62, respectively.
  • the A17A31 interface 26 is comprised of A17 through A31 interfaces 64 through 92, respectively.
  • FIG. 8 A detailed schematic diagram is shown in Figure 8 of the A2 interface 34, the A4, A6, A8, A10, A12, A14, A16, A18, A20, A22, A24, A26, A28, and A30 interfaces 38, 42, 46, 50, 54, 58, 62, 66, 70, 74, 78, 82, 86 and 90, respectively, being identical.
  • FIG. 9 a detailed schematic diagram is shown in Figure 9 of the A3 interface 36, the A5, A7, A9, A11, A13, A15, A17, A19, A21, A23, A25, A27 , A29, and A31 interfaces 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88 and 92, respectively, being identical.
  • the preferred embodiment of the data bus interface 18 is comprised of an Internal Data Bus PreCHarGe (IDBPCHG) 94, and INPUT ENable (INPUTEN) 96, a D0-D7 interface 98, a D8-D15 interface 100, a D16-D23 interface 102 and a D24-D31 interface 104.
  • IDBPCHG 94 A detailed schematic diagram of the IDBPCHG 94 is shown in Figure 11.
  • a detailed schematic diagram of the INPUTEN 96 is shown in Figure 12.
  • the D0-D7 interface 98 is comprised of a D0-D7 ConTroL (D07CTL) 106, and D0 through D7 interfaces 108 through 122, respectively.
  • FIG. 14 A detailed schematic diagram of the D07CTL 106 is shown in Figure 14.
  • the D8-D15 interface 100 is comprised of a D8-D23 ConTroL (D823CTL) 124, and D8 through D15 interfaces 126 through 140, respectively.
  • the D823CTL 124 is comprised of a D8-D15 ConTroL (D815CTL) 142 and a D16-D23 ConTroL (D1623CTL) 144.
  • D815CTL 142 A detailed schematic diagram of the D815CTL 142 is shown in Figure 17.
  • a detailed schematic diagram of the D1623CTL 144 is shown in Figure 18.
  • the D16-D23 interface 102 is comprised of D16 through D23 interfaces 146 through 160, respectively.
  • the D24-D31 interface 104 is comprised of a D24-D31 ConTroL (D2431CTL) 162, and D24 through D31 interfaces 164 through 178, respectively.
  • D2431CTL D24-D31 ConTroL
  • a detailed schematic diagram is shown in Figure 21 of the D31 interface 178, the D0 through D30 interfaces 108-122, 126-140, 146-160, and 164-176, respectively, being identical.
  • a detailed schematic diagram of the D2431CTL 162 is shown in Figure 22.
  • the bus controller 14 is comprised of a SIZE circuit (SIZE) 180, a Byte LATCH enable circuit (BLATCH) 182, a NeXT ADDress generator (NXT-ADD) 184, a DATA ADDress buffer (DATA_ADD) 186, and a MICRO SEQUencer (MICRO_ SEQU) 188.
  • SIZE circuit 180 is shown in Figure 24.
  • BLATCH 182 is shown in Figure 25.
  • a detailed schematic diagram of the NXT-ADD generator 184 is shown in Figure 26.
  • a detailed schematic diagram of the DATA-ADD buffer 186 is shown in Figure 27.
  • the MICRO-SEQUencer 188 is comprised of a Data Size Input SYNCHronizer (DSISYNCH) 190, a TERMination ConTrol 192, a STATe ConTroL 194, a STroBe Bus Cycle control (STBBC) 196, and an Operand-Cycle-Start BUFfer (OCS_BUF) 198.
  • DSISYNCH Data Size Input SYNCHronizer
  • STBBC STATe ConTroL 194
  • STBBC STroBe Bus Cycle control
  • OCS_BUF Operand-Cycle-Start BUFfer
  • a detailed schematic diagram of the DSISYNCH 190 is shown in Figure 29.
  • a detailed schematic diagram of the TERMCTL 192 is shown in Figure 30.
  • a detailed schematic diagram of the STATCTL 194 is shown in Figure 31.
  • a detailed schematic diagram of the STBBC 196 is shown in Figure 32.
  • the CPU 12 may take any of a number of well known forms.
  • the CPU 12 may be constructed along the lines of that described in US Patent Number 4,325,121.
  • the bus controller 14, address bus interface 16 and data bus interface 18 may be readily adapted to perform operand cycles for any of the other well known forms of bus master such as direct memory access controllers and the like.
  • the storage device 20 has been described as being a memory device, the present invention is as readily adaptable to any of the other well known forms of bus slave such as peripheral controllers aird the like.
  • the assertion of the *0CS signal by the bus master will indicate that that particular bus, cycle is the first bus cycle of a new operand cycle.
  • each operand transfer may be readily distinguished from the bus cycle(s) comprising that operand cycle.

Abstract

In a data processor adapted to perform operations upon operands of a given size, a bus controller (14) is provided to communicate the operands with a storage device (20) having a data port which may be a submultiple of the operand size. In response to a signal from the bus controller (14) requesting the transfer of an operand of a particular size, the storage device (20) provides a size signal indicating the size of the data port available to accommodate the requested transfer. Depending upon the size of the operand to be transferred and the size of the data port of the torage device (20), the bus controller (14) may break the operand transfer cycle into several bus cycles in order to completely transfer the operand. In the process, the bus controller (14) compensates for any address misalignment between the operand and the data port. In order to distinguish individual operand cycles from the several bus cycles which may comprise the operand cycle, the bus controller (14) provides an operand cycle start signal only at the start of the first bus cycle of each operand cycle.

Description

DATA PROCESSOR HAVING MULTIPLE BUS CYCLE OPERAND CYCLES
Cross Reference to Related Applications Related subject matter is disclosed in U.S. Patent Application Serial Number SC-04637A, entitled DATA PROCESSOR HAVING DYNAMIC BUS SIZING, inventors David S. Mothersole, Lester M. Crudele, James Tietjen and Robert R. Thompson, filed on xx June 1984, and assigned to the Assignee hereof
Field of the Invention The present invention relates generally to data processors and, more particularly, to a data processor which is capable of communicating operands using a plurality of consecutive bus cycles.
Background of the Invention In general, most data processors communicate operands with all of the different types of system resources using single bus cycles. However, data processors such as that described in copending US Patent Application Serial Number (SC-04637A) are capable of communicating with system resources having data port sizes which are a submultiple of the data port size of the data processor. Due to operand misalignment or port size incompatibility, operand cycles frequently extend over multiple bus cycles. Unfortunately, certain specialized types of system resources, such as emulators, bus state analyzers, and other debugging tools, need to be able to reassemble the bus cycles into the respective operand cycles. Heretofore, no known system provided such a capability.
Summary of the Invention Accordingly, it is an object of the present invention to provide a data processor which provides an output signal which distinguishes the first bus cycle of an operand cycle from subsequent bus cycles of the same operand cycle. More generally, it is an object of the present invention to provide the capability in any bus master to provide an indication which distinguishes the first bus cycle of an operand cycle from all subsequent bus cycles of that same operand cycle.
These and other objects are accomplished in a data processor which is adapted to communicate an operand with a storage device using an operand cycle comprising a plurality of bus cycles. In the preferred form, the data processor includes a circuit which provides a signal to the storage device during at least a portion of the first bus cycle of each operand cycle to indicate the start of the operand cycle.
In a more general sense, the present invention may be used in any bus master which is adapted to communicate an operand with a bus slave using an operand cycle comprising a plurality of bus cycles. In this generic case, the bus master includes a circuit which provides an indication to the bus slave during at least a portion of the first bus cycle of each operand cycle to distinguish the start of the operand cycle.
Brief Description of the Invention
Figure 1 is a block diagram of a data processor having a bus controller constructed in accordance with the present invention.
Figure 2 is a block diagram of the address bus interface of the data processor of Figure 1.
Figure 3 is a block diagram of the A0 and A1 interfaces of the address bus interface of Figure 2.
Figure 4 is a detailed schematic of the address restore portion of the A0/A1 interface of Figure 3.
Figure 5 is a detailed schematic of the A0 interface of Figure 3, the A1 interface being identical.
Figure 6 is a block diagram of the A2 through A16 interfaces of the address bus interface of Figure 2. Figure 7 is a block diagram of the A17 through A32 interfaces of the address bus interface of Figure 2.
Figure 8 is a detailed schematic of the A2 interface of Figure 6, the A4, A6, A8, A10, A12, A14, A16, A18, A20, A22, A24, A26, A28, A30 and A32 interfaces being identical.
Figure 9 is a detailed schematic of the A3 interface of Figure 6, the A5, A7, A9, A11, A13, A15, A17, A19, A21, A23, A25, A27, A29 and A31 interfaces being identical.
Figure 10 is a block diagram of the data bus interface of the data processor of Figure 1.
Figure 11 is a detailed schematic diagram of the internal data bus precharge portion of the data bus interface of Figure 10.
Figure 12 is a detailed schematic diagram of the input enable portion of the data bus interface of Figure 10.
Figure 13 is a block diagram of the D0 1hrough D7 interfaces of the data bus interface of Figure 10.
Figure 14 is a detailed schematic diagram of the control for the D0-D7 interfaces of Figure 13.
Figure 15 is a block diagram of the D8 through D15 interfaces of the data bus interface of Figure 10.
Figure 16 is a block diagram of the control for the D8-D23 interfaces of the data bus interface of Figure 15.
Figure 17 is a detailed schematic diagram of the control for the D8-D15 interfaces of the data bus interface of Figure 16.
Figure 18 is a detailed schematic diagram of the control for the D16-D23 interfaces of the data bus interface of Figure 16.
Figure 19 is block diagram of the D16 through D23 interfaces of the data bus interface of Figure 10.
Figure 20 is a block diagram of the D24 through D31 interfaces of the data bus interface of Figure 10.
Figure 21 is a detailed schematic diagram of the D31 interface of the data bus interface of Figure 20, all of the other interfaces D0 through D30 being identical. Figure 22 is a detailed schematic diagram of the control of the D24-D31 interfaces of Figure 20.
Figure 23 is a block diagram of the bus controller of the data processor of Figure 1.
Figure 24 is a detailed schematic diagram of the size control circuit of the bus controller of Figure 23..
Figure 25 is a detailed schematic diagram of the byte latch control of the bus controller of Figure 23.
Figure 26 is a detailed schematic diagram of the next address control of the bus controller of Figure 23.
Figure 27 is a detailed schematic diagram of the data address buffers of the bus controller of Figure 23.
Figure 28 is a block diagram of the microsequencer of the bus controller of Figure 23.
Figure 29 is a. detailed schematic diagram of the data size input synchronizer of the microsequencer of Figure 28.
Figure 30 is a detailed schematic diagram of the termination control of the microsequencer of Figure 28.
Figure 31 is a detailed schematic diagram of the state control of the microsequencer of Figure 28.
Figure 32 is a detailed schematic diagram of the start bus cycle control of the microsequencer of Figure 28.
Figure 33 is a detailed schematic diagram of the operand cycle start buffer of the microsequencer of Figure 28.
Description of the Invention
Shown in Figure 1 is a data processor 10 comprising a central processing unit (CPU) 12, a bus controller 14, an address bus interface 16, a data bus interface 18, and a storage device 20. In general, the CPU 12 executes a user specified sequence of instructions, each of which is comprised of one or more 16-bit words. Each of these instructions must be read from the storage device 20 in the appropriate sequence. In the course of executing each such instruction, the CPU 12 may be required to perform a specified operation upon an 8-bit byte, a 16-bit word or a 32-bit long word. Most of these data operands must be either read from or written to the storage device 20. In order to assure optimum performance on long word operations, the CPU 12 is provided with a 32-bit data port. On the other hand, it may be advantageous (or unavoidable) that the storage device 20 have a data port which is smaller than that of the CPU 12. Even when the port sizes are the same, the operand required by the CPU 12 may still reside at an address within the storage device 20 which does not align evenly with the data port of that particular storage device 20. It is the responsibility of the bus controller 14 to coordinate the activities of the address bus interface 16 and the data bus interface 18 in actually transfering the requested data or instruction operands between the CPU 12 and the storage device 20, regardless of operand misalignment or any mismatch between the port sizes of the CPU 12 and the storage device 20.
In general, the CPU 12 requests an operand transfer by asserting an OPeration-PENDing signal (OPPEND) to the bus controller 14. Simultaneously, the CPU 12 will provide a Read/Write-ReQuest signal (RQRW) indicating the direction of operand transfer and a Requested-Size signal (*RQS[0:1]) indicating the size of the operand to be transferred. The CPU 12 also provides a 32-bit Address (A[0:31]) to or from which the operand is to be transferred on a 32-bit Internal Address Bus (*IAB[0:31]).
Assuming for the moment that the CPU 12 has requested an operand write, the bus controller 14 will briefly assert a Start-OPerand-CYcle signal (SOPCY) directing the address bus interface 16 to latch the operand address on the *IAB. The bus controller 14 will also provide a buffered form of the SOPCY as a brief Operand-Cycle-Start signal (*OCS) to indicate to the storage device 20 that the bus cycle just starting is the first bus cycle of an operand cycle. Simultaneously, the bus controller 14 will negate a TRISTATE signal (*TRISTATE) to enable the address bus interface 16 to transfer the address to the storage device 20 on a 32-bit external ADDRESS BUS (ADDRESSBUS). A brief time later, the bus controller 14 will assert an Address-Strobe signal (*AS) to the storage device 20 indicating that a valid operand address is on the ADDRESSBUS.
The bus controller 14 will then assert a Data-Output- Buffer-to-Internal-Data-Bus signal (DOBIDB) directing the CPU 12 to provide the operand to the data bus interface 18 on a 32-bit Internal Data Bus (IDB[0:31]). The bus controller 14 will also provide to the data bus interface 18: a CURrent-Size signal (*CURS[0:1]) indicating the size of the operand to be placed on the DATABUS; a DATA-ADDress signal (DATAADD[0:1]) corresponding to the two low order address bits A0 and A1 of the address on the ADDRESSBUS; and a CURrent-Read/Write signal (*CURRW;CURRW) corresponding to the current state of the RW signal.
In the illustrated form, the IDB is partitioned into four bytes: I0 consisting of internal Data bits D31 through D24; I1 consisting or Data bits D23 through D16; I2 consisting of internal Data bits D15 through D8; and I3 consisting of internal Data bits D7 through D0. Depending upon the size of the operand being transferred, these internal bytes must be selectively coupled to the external DATABUS which is also partitioned into four bytes: E0 consisting of external Data bits D31 through D24; E1 consisting of external Data bits D23 through D16; E2 consisting of external Data bits D15 through D8; and E3 consisting of external Data bits D7 through D0.
Depending upon the current operand size (*CURS[0:1]) and the current operand address (DATAADD[0:1]), the data bus interface 18 will provide the available bytes on the IAB to the appropriate bytes on the DATABUS as follows: CURS DATAADD DATABUS
0 1 0 1 E0 E1 E2 E3
0 0 0 0 |I0|I1|I2|I3|
0 0 0 1 |I0|I0|I1|I2|
0 0 1 0 |I0|I1|I0|I1|
0 0 1 1 |I0|I0|I1|I0|
0 1 x x |I3|I3|I3|I3| 1 0 x 0 |I2|I3|I2|I3| 1 0 x 1 |I2|I2|I3|I2| 1 1 0 0 |I1|I2|I3|I0| 1 1 0 1 |I1|I1|I2|I3| 1 1 1 0 |I1|I2|I1|I2| 1 1 1 1 |I1|I1|I2|I1| where small nin indicates a connection for convenience rather than a required connection. After the data bus interface 18 has had sufficient time to establish the operand on the DATABUS, the bus controller 14 will assert a Data-Strobe signal (*DS) to advise the storage device 20 that the operand on the DATABUS is valid.
Upon receiving the Address-Strobe (*AS), the storage device 20 will decode the address on the ADDRESSBUS. If the address is determined to be within the address range for that particular storage device 20, the storage device 20 will prepare to latch the operand. To best facilitate this, the storage device 20 has its data port connected to the DATABUS so that the high order byte (00) of the data port of the storage device 20 will be aligned with the high order byte (E0) of the DATABUS as follows:
DATA PORT E0 E1 E2 E3
32-bits |00|01|02|03 |
16-bits |00|01|
8-bits |00|
Thus, upon receiving the Data-Strobe (*DS), the storage device 20 will always be able to latch at least the high order portion of the operand during the first bus cycle of every operand cycle. After successfully capturing the respective portion of the operand, the storage device 20 will provide a Data-transfer-and-Size-ACKnowledge signal (*DSACK[0:1]) acknowledging the operand transfer. In addition, however, the *DSACK signal also indicates the size of the data port of that particular storage device 20 as follows:
DSACK WIDTH OF
0 1 DATA PORT
0 0 (bus cycle incomplete)
0 1 8-bits
1 0 16-bits 1 1 32-bits
Using the known operand Size (S[0:1]) and CURrent-ADdress (*CURAD[0:1]), and the size of the port (*DSACK[0:1]), the bus controller 14 can determine the size of residual portion of the operand, if any, which has not yet been received, as follows:
Figure imgf000010_0001
Figure imgf000011_0001
Figure imgf000012_0001
where: x => don't care i => bus cycle incomplete y => operand cycle complete n => operand cycle incomplete Thus, for example, if the port size of the storage device 20 is the same as the size of the DATABUS or if the size of the operand is less than or equal to the port size of the storage device 20, the bus controller 14 will know that all of the operand has been received and that the operand cycle can be terminated. At this time, if another bus master (not shown) is awaiting use of the communication bus, the bus controller 14 will assert the *TRISTATE signal to force the address bus interface 16 to remove the address from the ADDRESSBUS. In any event, the bus controller 14 will then assert a Tristate-Data-Bus signal (*TSDB) to force the data bus interface 18 to remove the operand from the DATABUS. Simultaneously, the bus controller 14 will assert an OPerand-CYcle-COMplete signal (OPCYCOM) to advise the CPU 12 that the requested operand write has been completed. Finally, the bus controller 14 will terminate the bus cycle by negating the Address and Data Strobes (*AS and *DS). In response, the storage device 20 will withdraw the *DSACK signal. At this time, the communication bus again becomes available for use by the CPU 12 or any other bus master (not shown) which may be present in the system.
If additional bus cycles are required to complete the operand cycle, the bus controller 14 will recompute the two low order bits A0 and A1 of the address of the residual operand as follows:
Figure imgf000013_0001
where: x => don't care p => bus cycle incomplete n => no address rollover y => address rollover. The bus controller 14 will then provide a NeXT-Address signal (NXTA[0:1]) to the address bus interface 16 indicating the new low order address bits A0 and A1. If the communication bus has been used by a different bus master (not shown) since the previous bus cycle of the current operand cycle, the bus controller 14 will assert an Address-Restore signal (ARESTORE) requesting the address bus interface 16 to restore the original higher order address bits (*IAD[2:31]), but use the two new low order address bits (NXTA[0:1]). On the other hand, if the new address bits have rolled over, the bus controller 14 will assert an INCrement- A2-through-A31 signal (INCA2A3) requesting the address bus interface 16 to increment the original higher order address bits (*IAD[2:31]), and use the incremented address together with the two new low order address bits (NXTA[0:1]). In anticipation of this request, the address bus interface 16 has already incremented the higher order address bits A2-A31. Thus, the bus controller 14 can immediately assert a Start-NeXT-Bus-Cycle signal (SNXTBC) requesting the address bus interface 16 to start the next bus cycle using the new address. From this point on, the bus controller 14 cooperates with the address bus interface 16 and the data bus interface 18 as described above, except that the Operand-Cycle-Start signal (*OCS) will not be provided, thus distinguishing all such subsequent bus cycles from the first bus cycle of the operand cycle. If necessary, this sequence is repeated until all of the requested operand has been received and latched into the storage device 20.
In general, the write operand cycle can be summarized with respect to any bus master writing an operand to a bus slaae as follows: BU S MASTER :
1) Briefly assert Operand-Cycle-Start (*OCS)
2) Drive Address on ADDRESSBUS
3) Drive Size (S[0:1])
4) Set Read/Write (RW) to Write
5) Assert Address-Strobe (*AS)
6) Drive operand byte(s) on DATABUS
7) Assert Data-Strobe (*DS)
BUS SLAVE:
1) Decode Address on ADDRESSBUS
2) Latch operand byte(s) on DATABUS
3) Assert Data-transfer-and-Size-ACKnowledge (*DSACK[0:1])
BUS MASTER:
8) Negate Data-Strobe (*DS)
9) Negate Address-Strobe (*AS)
10) Remove operand byte(s) from DATABUS
BUS SLAVE
4) Negate Data-transfer-and-Size-ACKnowledge (*DSACK[0:1])
BUS MASTER:
11) If all operand byte(s) not received, recompute Address and Size and return to 2)
12) Otherwise, operand cycle complete
Assume now that the CPU 12 has requested an operand read. As in the write case, the bus controller 14 will again briefly assert the Start-OPerand-CYcle signal (SOPCY) directing the address bus interface 16 to latch the operand Address on the *IAB. The bus controller 14 will also briefly assert the Operand-Cycle-Start signal (*OCS) to indicate to the storage device 20 that the bus cycle just starting is the first bus cycle of an operand cycle. Simultaneously, the bus controller 14 will negate *TRISTATE (if then asserted) to enable the address bus interface 16 to transfer the Address to the storage device 20 on the ADDRESSBUS. The bus controller 14 will also provide RW in the Read state.
A brief time later, the bus controller 14 will assert *AS to the storage device 20 indicating that a valid operand Address is on the ADDRESSBUS. Internally, the bus controller 14 will assert a Data-bus-Start-PreCHarGe signal (DSPCHG) directing the data bus interface 18 to start precharging the IDB. In addition, the bus controller 14 will pass the current operand size (*CURS[0:1]), the current low order address bits (DATAADD[0:1]), and the current direction of operand transfer (*CURRW;CURRW) to the data bus interface 18.
Upon receiving *AS, the storage device 20 will decode the address on the ADDRESSBUS. If the address is determined to be within the address range for that particular storage device 20, the storage device 20 will provide on the DATABUS as much of the requested operand as possible for the port size of that particular storage device 20. The storage device 20 will then provide *DSACK to indicate that the requested operand (or at least a portion thereof) is available on the DATABUS. As explained above, the *DSACK signal also indicates the size of the data port of that particular storage device 20.
Depending upon the size of the port (*IDSACK[0:l]), the current operand size (*CURS[0:1]) and address (DATADDD[0:1]), the data bus interface 18 can determine which bytes (E[0:3]) of the DATABUS are valid, as follows:
Figure imgf000016_0001
Figure imgf000017_0001
where x => don't care. Depending upon the current operand size (*CURS[0:1]) and the current operand address (DATAADD[0:1]), the data bus interface 18 will couple the valid byte(s) on the DATABUS to the proper byte(s) of the IDB as described above. Using just the current operand size (S[0:1]), the bus controller 14 can then provide a Data-Bus-INput:Latch-Byte signal (DBINLB[0:3]) indicating which bytes (I[0:3]) of the IDB are valid, as follows:
Figure imgf000018_0001
In response to the DBINLB signal, the CPU 12 will latch the valid bytes provided by the data bus interface 18 on the IDB into the appropriate destination register (not shown). Using the current operand size (S[0:1]) and address (*CURAD[0:1]) and the size of the port (*DSACK[0:1]), the bus controller 14 can determine how much of the requested operand remains to be provided by the storage device 20, in a similar manner to that described above in the write case. Thus, for example, if the port size of the storage device 20 is the same as the size of the DATABUS or if the size of the operand is less than or equal to the port size of the storage device 20, the bus controller 14 will know that all of the operand has been received and that the operand cycle can be terminated. In this event, the bus controller 14 will terminate the bus cycle by negating *AS and *DS. Simultaneously, the bus controller 14 will assert *TSDB to force the data bus interface 18 to decouple from the DATABUS. The bus controller 14 will also remove DBINLB and then assert OPCYCOM to advise the CPU 12 that the requested operand read has been completed. A brief time later, if another bus master (not shown) has requested the use of the communciatlon bus, the bus controller 14 will assert *TRISTATE to force the address bus interface 16 to remove the address from the ADDRESSBUS. In response to the negation of *AS and *DS, the storage device 20 will withdraw the operand byte(s) from the DATABUS, and then terminate *DSACK. At this time, the communication bus again becomes available for use by the CPU 12 or any other bus master (not shown) which may be present in the system.
If additional bus cycles are required to complete the operand cycle, the bus controller 14 will recompute the two low order bits A0 and A1 of the address of the residual operand as described above. The bus controller 14 will then provide the address bus interface 16 with the new low order address bits A0 and A1 (NXTA[0:1]). If the communication bus has been used by another bus master (not shown) since the previous bus cycle of the current operand cycle, the bus controller 14 will assert ARESTORE requesting the address bus interface to restore the original higher order address bits (*IAD[2:31]), but use the two new low order address bits (NXTA[0:1]). On the other hand, if the new address bits have rolled over, the bus controller 14 will assert INCA2A31 requesting the address bus interface 16 to increment the original higher order address bits (*IAD[2:31]), and use the resultant address together with the two new low order address bits (NXTA[0:1]). As indicated before, the address bus interface 16 has already incremented the higher order address bits A2-A31 in anticipation of this request. Thus, the bus controller 14 can immediately assert (SNXTBC) requesting the address bus interface 16 to start the next bus cycle using the new address. From this point on, the bus controller 14 cooperates with the address bus interface 16 and the data bus interface 18 as described above, except that the Operand-Cycle-Start signal (*OCS) will not be provided, thus distinguishing all such subsequent bus cycles from the first bus cycle of the operand cycle. If necessary, this sequence is repeated until all of the requested operand has been received and latched into the CPU 12. In general, the read cycle can be summarized with respect to any bus master reading an operand from a bus slave as follows:
BUS MASTER:
1) Briefly assert Operand-Cycle-Start (*OCS)
2) Set Read/Write to Read
3) Drive address on ADDRESSBUS
4) Drive Size (SC0:13)
5) Assert Address-Strobe (*AS)
6) Assert Data-Strobe (*DS)
BUS SLAVE:
1) Decode address on ADDRESSBUS
2) Drive operand byte(s) on DATABUS
3) Assert Data-transfer-and-Size-ACKnowledge (*DSACK[0:1])
BUS MASTER:
7) Latch operand byte(s) into register
8) Negate Data-Strobe (*DS)
9) Negate Address-Strobe (*AS)
BUS SLAVE
4) Remove operand byte(s) from DATABUS
5) Negate Data-transfer-and-Size-ACKnowledge (*DSACK[0:1])
BUS MASTER:
10) If all operand byte(s) not received, recompute Address and Size and return to 2)
11) Otherwise, operand cycle complete
As shown in Figure 2, the preferred embodiment of the address bus interface 16 is comprised of an A0A1 interface 22, an A2A16 interface 24, and an A17A31 interface 26. As can be seen in Figure 3, the A0A1 interface 22 is comprised of an ADDress RESTore 28, an A0 interface 30 and an A1 interface 32 which is identical to the A0 interface 30. Detailed schematic diagrams of the ADDREST 28 and the A0 interface 30 are shonw in Figures 4 and 5, respectively. As shown in Figure 6, the A2A16 interface 24 is comprised of A2 through A16 interfaces 34 through 62, respectively. Similarly, the A17A31 interface 26 is comprised of A17 through A31 interfaces 64 through 92, respectively. A detailed schematic diagram is shown in Figure 8 of the A2 interface 34, the A4, A6, A8, A10, A12, A14, A16, A18, A20, A22, A24, A26, A28, and A30 interfaces 38, 42, 46, 50, 54, 58, 62, 66, 70, 74, 78, 82, 86 and 90, respectively, being identical. Similarly, a detailed schematic diagram is shown in Figure 9 of the A3 interface 36, the A5, A7, A9, A11, A13, A15, A17, A19, A21, A23, A25, A27 , A29, and A31 interfaces 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88 and 92, respectively, being identical.
As shown in Figure 10, the preferred embodiment of the data bus interface 18 is comprised of an Internal Data Bus PreCHarGe (IDBPCHG) 94, and INPUT ENable (INPUTEN) 96, a D0-D7 interface 98, a D8-D15 interface 100, a D16-D23 interface 102 and a D24-D31 interface 104. A detailed schematic diagram of the IDBPCHG 94 is shown in Figure 11. A detailed schematic diagram of the INPUTEN 96 is shown in Figure 12. As can be seen in Figure 13, the D0-D7 interface 98 is comprised of a D0-D7 ConTroL (D07CTL) 106, and D0 through D7 interfaces 108 through 122, respectively. A detailed schematic diagram of the D07CTL 106 is shown in Figure 14. As can be seen in Figure 15, the D8-D15 interface 100 is comprised of a D8-D23 ConTroL (D823CTL) 124, and D8 through D15 interfaces 126 through 140, respectively. As shown in Figure 16, the D823CTL 124 is comprised of a D8-D15 ConTroL (D815CTL) 142 and a D16-D23 ConTroL (D1623CTL) 144. A detailed schematic diagram of the D815CTL 142 is shown in Figure 17. A detailed schematic diagram of the D1623CTL 144 is shown in Figure 18. As can be seen in Figure 19, the D16-D23 interface 102 is comprised of D16 through D23 interfaces 146 through 160, respectively. As can be seen in Figure 20, the D24-D31 interface 104 is comprised of a D24-D31 ConTroL (D2431CTL) 162, and D24 through D31 interfaces 164 through 178, respectively. A detailed schematic diagram is shown in Figure 21 of the D31 interface 178, the D0 through D30 interfaces 108-122, 126-140, 146-160, and 164-176, respectively, being identical. A detailed schematic diagram of the D2431CTL 162 is shown in Figure 22.
As shown in Figure 23, the bus controller 14 is comprised of a SIZE circuit (SIZE) 180, a Byte LATCH enable circuit (BLATCH) 182, a NeXT ADDress generator (NXT-ADD) 184, a DATA ADDress buffer (DATA_ADD) 186, and a MICRO SEQUencer (MICRO_ SEQU) 188. A detailed schematic diagram of the SIZE circuit 180 is shown in Figure 24. A detailed schematic diagram of the BLATCH 182 is shown in Figure 25. A detailed schematic diagram of the NXT-ADD generator 184 is shown in Figure 26. A detailed schematic diagram of the DATA-ADD buffer 186 is shown in Figure 27. As can be seen in Figure 28, the MICRO-SEQUencer 188 is comprised of a Data Size Input SYNCHronizer (DSISYNCH) 190, a TERMination ConTrol 192, a STATe ConTroL 194, a STroBe Bus Cycle control (STBBC) 196, and an Operand-Cycle-Start BUFfer (OCS_BUF) 198. A detailed schematic diagram of the DSISYNCH 190 is shown in Figure 29. A detailed schematic diagram of the TERMCTL 192 is shown in Figure 30. A detailed schematic diagram of the STATCTL 194 is shown in Figure 31. A detailed schematic diagram of the STBBC 196 is shown in Figure 32. A detailed schematic diagram of the OCS-BUF 198 is shown in Figure 33.
As will be clear to those skilled in the art, the CPU 12 may take any of a number of well known forms. For example, the CPU 12 may be constructed along the lines of that described in US Patent Number 4,325,121. On the other hand, the bus controller 14, address bus interface 16 and data bus interface 18 may be readily adapted to perform operand cycles for any of the other well known forms of bus master such as direct memory access controllers and the like. Similarly, although the storage device 20 has been described as being a memory device, the present invention is as readily adaptable to any of the other well known forms of bus slave such as peripheral controllers aird the like. In any of these forms, the assertion of the *0CS signal by the bus master will indicate that that particular bus, cycle is the first bus cycle of a new operand cycle. Thus, each operand transfer may be readily distinguished from the bus cycle(s) comprising that operand cycle.

Claims

Claims
1. In a data processor adapted to communicate an operand with a storage device using an operand cycle comprising a plurality of bus cycles, the improvement comprising: means for providing a signal to said storage device during at least a portion of the first of said plurality of bus cycles to indicate the start of said operand cycle.
2. The data processor of claim 1 wherein said signal is provided substantially at the start of said first bus cycle.
3. The data processor of claim 2 wherein said signal is provided for only a predetermined portion of said first bus cycle.
4. The data processor of claim 1 wherein said signal is provided for only a predetermined portion of said first bus cycle.
5. In a bus master adapted to communicate an operand with a bus slave using an operand cycle comprising a plurality of bus cycles, the improvement comprising: means for providing a signal to said bus slave during at least a portion of the first of said plurality of bus cycles to indicate the start of said operand cycle.
6. The bus master of claim 5 wherein said signal is provided substantially at the start of said first bus cycle.
7. The bus master of claim 6 wherein said signal is provided for only a predetermined portion of said first bus cycle.
8. The bus master of claim 5 wherein said signal is provided for only a predetermined portion of said first bus cycle.
PCT/US1985/000655 1984-06-27 1985-04-12 Data processor having multiple bus cycle operand cycles WO1986000431A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62506884A 1984-06-27 1984-06-27
US625,068 1984-06-27

Publications (1)

Publication Number Publication Date
WO1986000431A1 true WO1986000431A1 (en) 1986-01-16

Family

ID=24504448

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1985/000655 WO1986000431A1 (en) 1984-06-27 1985-04-12 Data processor having multiple bus cycle operand cycles

Country Status (3)

Country Link
EP (1) EP0185681A1 (en)
CA (1) CA1233265A (en)
WO (1) WO1986000431A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0331487A2 (en) * 1988-03-04 1989-09-06 Fujitsu Limited Data transfer control system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4152764A (en) * 1977-03-16 1979-05-01 International Business Machines Corporation Floating-priority storage control for processors in a multi-processor system
US4180862A (en) * 1976-07-01 1979-12-25 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4200916A (en) * 1976-07-01 1980-04-29 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4408276A (en) * 1978-10-24 1983-10-04 Tokyo Shibaura Denki Kabushiki Kaisha Read-out control system for a control storage device
US4486830A (en) * 1982-03-30 1984-12-04 Cincinnati Milacron Inc. Programmable control apparatus and method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4180862A (en) * 1976-07-01 1979-12-25 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4200916A (en) * 1976-07-01 1980-04-29 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4152764A (en) * 1977-03-16 1979-05-01 International Business Machines Corporation Floating-priority storage control for processors in a multi-processor system
US4408276A (en) * 1978-10-24 1983-10-04 Tokyo Shibaura Denki Kabushiki Kaisha Read-out control system for a control storage device
US4486830A (en) * 1982-03-30 1984-12-04 Cincinnati Milacron Inc. Programmable control apparatus and method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Intel Corp., MCS 80/85 Family User's Manual pages 2-9, 2-10, A1-3, A1-21 Santa Clara, CA, 1983 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0331487A2 (en) * 1988-03-04 1989-09-06 Fujitsu Limited Data transfer control system
EP0331487A3 (en) * 1988-03-04 1990-10-31 Fujitsu Limited Data transfer control system
US5043935A (en) * 1988-03-04 1991-08-27 Fujitsu Limited Data transfer system for rearranging data units using intermediate temporary registers

Also Published As

Publication number Publication date
EP0185681A1 (en) 1986-07-02
CA1233265A (en) 1988-02-23

Similar Documents

Publication Publication Date Title
EP0185676B1 (en) Data processor having dynamic bus sizing
JP2573566B2 (en) Bus converter
US4860244A (en) Buffer system for input/output portion of digital data processing system
US6047120A (en) Dual mode bus bridge for interfacing a host bus and a personal computer interface bus
EP0080891B1 (en) Direct memory access logic system for a data transfer network
US4590551A (en) Memory control circuit for subsystem controller
EP0080890B1 (en) Interface circuit for subsystem controller
JPH0578863B2 (en)
US4456970A (en) Interrupt system for peripheral controller
US4751632A (en) Data processor having multiple cycle operand cycles
US6141741A (en) Computer system with a shared address bus and pipelined write operations
WO1986000431A1 (en) Data processor having multiple bus cycle operand cycles
US7103701B2 (en) Memory bus interface
EP0074300B1 (en) Memory control circuit for subsystem controller
EP0380105B1 (en) Computer interface
US5944808A (en) Partial parity correction logic
EP0278263B1 (en) Multiple bus DMA controller
JPS63228856A (en) Communication controller
USH1342H (en) Effectuating full duplex digital data transfer
JPS62232061A (en) Data transmission processor
JPS63187943A (en) Communication control equipment
JPH0195350A (en) System for controlling data transferring
JPS60195657A (en) Data processing system
JPS63187944A (en) Communication control equipment
JPH0342757A (en) Parallel interface circuit

Legal Events

Date Code Title Description
AK Designated states

Designated state(s): JP KR

AL Designated countries for regional patents

Designated state(s): DE FR GB IT NL