USH1342H - Effectuating full duplex digital data transfer - Google Patents

Effectuating full duplex digital data transfer Download PDF

Info

Publication number
USH1342H
USH1342H US07/624,377 US62437790A USH1342H US H1342 H USH1342 H US H1342H US 62437790 A US62437790 A US 62437790A US H1342 H USH1342 H US H1342H
Authority
US
United States
Prior art keywords
data
address
processor
external device
lines
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US07/624,377
Inventor
Eric J. Whitesell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
US Department of Navy
Original Assignee
US Department of Navy
Filing date
Publication date
Application filed by US Department of Navy filed Critical US Department of Navy
Assigned to UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE SECRETARY OF THE NAVY reassignment UNITED STATES OF AMERICA, THE, AS REPRESENTED BY THE SECRETARY OF THE NAVY ASSIGNMENT OF ASSIGNORS INTEREST. Assignors: WHITESELL, ERIC J.
Application granted granted Critical
Publication of USH1342H publication Critical patent/USH1342H/en
Abandoned legal-status Critical Current

Links

Images

Definitions

  • the present invention relates to the field of data transfer, and more particularly, to a method for providing continuous bidirectional transfer of data with external data acknowledge.
  • External data acknowledge is a control line from the receiving device to the sending device used to prevent data from being presented faster than the receiving device can accept it.
  • Digital computers and peripherals built to VME standards offer a wide selection of modules that can be assembled into systems which are capable of performing many design functions.
  • An example of a medium priced, VME single board computer is the FORCE Computers Model CPU-33XB which offers three ways to export parallel data.
  • the first way is an industry standard data transfer circuit called the 68230 Parallel Input-output/Timer (PI/T).
  • PI/T offers two eight bit ports that can be combined to output 16 lines of data with external acknowledge. Because of internal limitations, however, the continuous rate of data transfer of this device is less than 200,000 bytes per second.
  • the second way is referred to as "Direct Memory Access" (DMA). This method offers a high data transfer rate with external acknowledge, but is limited to transferring only one block of data at a time.
  • DMA Direct Memory Access
  • the DMA registers must be reloaded after each block, creating timing gaps that severely reduce the continuous data transfer rate.
  • the third method uses a local I/O port which allows access to the address bus and the data bus of the CPU. This method offers a high continuous data transfer rate (eight bits per transfer), but there is no provision for external data acknowledge to prevent data overrun.
  • a method for exporting output data at a very high rate from a host digital data processor through address lines to an external device includes the steps of: loading the output data into a data register of the processor; loading an address reference of an external device into an address register of the processor; forming a composite address consisting of the sum of the address register and data register; and exporting the output data through the address lines from the processor to the external device while simultaneously reading status data into the processor from the external device through the processor data lines.
  • the invention accomplishes such rapid data transfer by advantageously transferring data over what would normally be address lines between the processor and the external device. This method is suitable for applications where data is to be transferred from a processor operably coupled to only one external device.
  • FIG. 1 is a block diagram of one means of implementing the method of the present invention for continuously transferring data in synchronization with an external data acknowledge signal.
  • FIG. 2 is a flow chart of a series of instructions which are executed by the processor.
  • the present invention provides a method for transferring data at continuous high rates synchronized to an external data acknowledge signal, where for example, continuous data transfer rates of 4,000,000 bytes per second have been achieved.
  • system 10 for implementing the method of the present invention generally consisting of host digital data processor 12, a latch 26 to hold output data, a latch 38 to hold input data, and an external device 32, all configured as described below.
  • Host digital data processor 12 has local I/O port 13 which includes address output bus 14, address valid output 16, data bus input 18, and data bus enable output 20. Implementation of the present invention requires that local I/O port 13 have 16 address lines and 8 data lines.
  • One example of a processor suitable for implementing the present invention is a FORCE model CPU-33, although the scope of the present invention includes the use of other suitable processors having the essential features described above.
  • Address output bus 14 is operably coupled to input 22 of latch 26 by 16-bit bus 15.
  • Address valid output 16 is operably coupled to input 24 of latch 26, which presents the instantaneous contents of address output bus 14 to latch output 28.
  • Latch 26 may, for example, be a 16-bit latch.
  • Output 28 is operably coupled to data input 30 of external device 32 by 16-bit bus 29.
  • External device 32 also includes status output 34 operably coupled to status input 26 of latch 38, which may be an 8-bit latch.
  • External device 32 preferably has at least 16 data lines and be able to output some form of status or other data, for example, of 8-bits, as is typical with peripheral devices.
  • the status output signal includes the data acknowledge signal from external device 32.
  • the present invention solves the problem of enhancing the data output rate of a digital processor by outputting the data 16 bits at a time over the 16 address lines of processor 12 instead of eight bits at a time over the eight data lines. This doubles the effective data transfer rate of processor 12.
  • the 16 address lines are normally used to select one of many possible I/O devices, but if the entire I/O port is dedicated to only one device, which is done in the implementation of the present invention, then I/O port 13 may be used exclusively for data transfer.
  • the data bus 18 is available to be used as a device status indicator which includes a data acknowledge signal that indicates to processor 12 that the current data has been accepted by external device 32.
  • FIG. 2 A flowchart of these instructions is presented in FIG. 2, and is described as follows: Starting at step 50 the data to be output is loaded into data register D1, as shown in step 52. This data register is used as an offset to address register A1 containing the address of I/O port 13.
  • the first instruction is a move that reads a byte of data from the offset address into data register D0 at sept 54. This instruction causes the I/O port 13 to be selected, the offset to be passed on to the 16 address lines of I/O port 13, and the 8 data lines containing the data acknowledge and other device status or data to be read into data register D0, while external device 32 is presented with the data on the 16 address lines of I/O port 13 via latch 26.
  • step 56 the data acknowledge bit from external device 32 that was read into the sign bit of data register D0 is examined. If data acknowledge was not received, the program returns to the read instruction at step 54. If the data acknowledge was received, the program returns to the data transfer cycle at step 52. In this way, data is presented to external device 32 at a rate at which external device 32 is able to accept the data.
  • the method of the present invention includes using time multiplexed or separate address and data lines because the address valid signal distinguishes address from data in either case. Furthermore, this method may be used to transfer data synchronously (at a fixed frequency) or asynchronously (as fast as the external can accept data) in accordance with techniques well known by those skilled in this field of technology. Asynchronous data transfer would be accomplished by using the address valid signal in conjunction with the data acknowledge signal. Synchronous data transfer would be accomplished by using a fixed frequency clock in conjunction with the data acknowledge signal.

Abstract

A method for the simultaneous bidirectional transfer of digital data at a ry high rate between a host digital data processor and an external device includes the steps of: loading the output data into a data register of the processor; loading an address reference of an external device into an address register of the processor; forming a composite address consisting of the sum of the data register and an address register; and exporting the output data through the address lines from the processor to the external device while simultaneously reading data into the processor from the external device. The method accomplishes rapid data transfer by advantageously transferring data over what would normally be address lines between the processor and the external device. This method is suitable for applications where data is to be transferred from a processor operably coupled to only one external device.

Description

STATEMENT OF GOVERNMENT INTEREST
The invention described herein may be manufactured and used by or for the Government of the United States of America for governmental purposes without the payment of any royalties thereon or therefor.
BACKGROUND OF THE INVENTION
The present invention relates to the field of data transfer, and more particularly, to a method for providing continuous bidirectional transfer of data with external data acknowledge. External data acknowledge is a control line from the receiving device to the sending device used to prevent data from being presented faster than the receiving device can accept it.
Digital computers and peripherals built to VME standards offer a wide selection of modules that can be assembled into systems which are capable of performing many design functions. An example of a medium priced, VME single board computer is the FORCE Computers Model CPU-33XB which offers three ways to export parallel data. The first way is an industry standard data transfer circuit called the 68230 Parallel Input-output/Timer (PI/T). The PI/T offers two eight bit ports that can be combined to output 16 lines of data with external acknowledge. Because of internal limitations, however, the continuous rate of data transfer of this device is less than 200,000 bytes per second. The second way is referred to as "Direct Memory Access" (DMA). This method offers a high data transfer rate with external acknowledge, but is limited to transferring only one block of data at a time. The DMA registers must be reloaded after each block, creating timing gaps that severely reduce the continuous data transfer rate. The third method uses a local I/O port which allows access to the address bus and the data bus of the CPU. This method offers a high continuous data transfer rate (eight bits per transfer), but there is no provision for external data acknowledge to prevent data overrun.
None of these methods offers data transfer rates in the range of 4 megabits per second with external data acknowledge, severely limiting the capability of exporting data from a VME system to an external device. Therefore, there is a need for a method that is capable of utilizing the local I/O port of a processor in a manner which provides a continuous data transfer rate of at least 4,000,000 bytes per second and incorporates an external data acknowledge function.
SUMMARY OF THE INVENTION
A method is disclosed for exporting output data at a very high rate from a host digital data processor through address lines to an external device. This method includes the steps of: loading the output data into a data register of the processor; loading an address reference of an external device into an address register of the processor; forming a composite address consisting of the sum of the address register and data register; and exporting the output data through the address lines from the processor to the external device while simultaneously reading status data into the processor from the external device through the processor data lines. The invention accomplishes such rapid data transfer by advantageously transferring data over what would normally be address lines between the processor and the external device. This method is suitable for applications where data is to be transferred from a processor operably coupled to only one external device.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of one means of implementing the method of the present invention for continuously transferring data in synchronization with an external data acknowledge signal.
FIG. 2 is a flow chart of a series of instructions which are executed by the processor.
DESCRIPTION OF THE PREFERRED EMBODIMENT
The present invention provides a method for transferring data at continuous high rates synchronized to an external data acknowledge signal, where for example, continuous data transfer rates of 4,000,000 bytes per second have been achieved. Referring to FIG. 1, there is illustrated system 10 for implementing the method of the present invention generally consisting of host digital data processor 12, a latch 26 to hold output data, a latch 38 to hold input data, and an external device 32, all configured as described below.
Host digital data processor 12 has local I/O port 13 which includes address output bus 14, address valid output 16, data bus input 18, and data bus enable output 20. Implementation of the present invention requires that local I/O port 13 have 16 address lines and 8 data lines. One example of a processor suitable for implementing the present invention is a FORCE model CPU-33, although the scope of the present invention includes the use of other suitable processors having the essential features described above. Address output bus 14 is operably coupled to input 22 of latch 26 by 16-bit bus 15. Address valid output 16 is operably coupled to input 24 of latch 26, which presents the instantaneous contents of address output bus 14 to latch output 28. Latch 26 may, for example, be a 16-bit latch. Output 28 is operably coupled to data input 30 of external device 32 by 16-bit bus 29. External device 32 also includes status output 34 operably coupled to status input 26 of latch 38, which may be an 8-bit latch. External device 32 preferably has at least 16 data lines and be able to output some form of status or other data, for example, of 8-bits, as is typical with peripheral devices. When local I/O port 13 provides data bus enable output 20 to latch 38, then the instantaneous contents of status output 34 is presented to data bus 18 through latch 38. The status output signal includes the data acknowledge signal from external device 32.
The present invention solves the problem of enhancing the data output rate of a digital processor by outputting the data 16 bits at a time over the 16 address lines of processor 12 instead of eight bits at a time over the eight data lines. This doubles the effective data transfer rate of processor 12. The 16 address lines are normally used to select one of many possible I/O devices, but if the entire I/O port is dedicated to only one device, which is done in the implementation of the present invention, then I/O port 13 may be used exclusively for data transfer. The data bus 18 is available to be used as a device status indicator which includes a data acknowledge signal that indicates to processor 12 that the current data has been accepted by external device 32.
Data transfer is effected by a programmed sequence of instructions executed by processor 12, described further herein, which may be implemented as the following Motorola 68000 assembly language instructions: ##STR1##
A flowchart of these instructions is presented in FIG. 2, and is described as follows: Starting at step 50 the data to be output is loaded into data register D1, as shown in step 52. This data register is used as an offset to address register A1 containing the address of I/O port 13. The first instruction is a move that reads a byte of data from the offset address into data register D0 at sept 54. This instruction causes the I/O port 13 to be selected, the offset to be passed on to the 16 address lines of I/O port 13, and the 8 data lines containing the data acknowledge and other device status or data to be read into data register D0, while external device 32 is presented with the data on the 16 address lines of I/O port 13 via latch 26. At step 56, the data acknowledge bit from external device 32 that was read into the sign bit of data register D0 is examined. If data acknowledge was not received, the program returns to the read instruction at step 54. If the data acknowledge was received, the program returns to the data transfer cycle at step 52. In this way, data is presented to external device 32 at a rate at which external device 32 is able to accept the data.
The method of the present invention includes using time multiplexed or separate address and data lines because the address valid signal distinguishes address from data in either case. Furthermore, this method may be used to transfer data synchronously (at a fixed frequency) or asynchronously (as fast as the external can accept data) in accordance with techniques well known by those skilled in this field of technology. Asynchronous data transfer would be accomplished by using the address valid signal in conjunction with the data acknowledge signal. Synchronous data transfer would be accomplished by using a fixed frequency clock in conjunction with the data acknowledge signal.
Obviously, many modifications of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practiced otherwise than as specifically described.

Claims (3)

I claim:
1. A method for transferring digital data between devices, comprising the steps of:
executing a first instruction in a digital processor, having address and data lines which fetches m-bit output data from a memory into a data register, where "m" is a positive integer;
executing a second instruction in said digital processor which fetches an address reference of an external device from said memory into an address register of said digital processor, said external device having n-bit external data on external data lines, where "n" is a positive integer; and
executing a third instruction in said digital processor which places said output data and said address reference onto said address lines, and causes said output data from said address lines of said digital processor and said external data from said external data lines to be sampled by a plurality of data latches, and causes transference of said output data to said external device and transference of said external data to said digital processor from said plurality of data latches substantially simultaneously.
2. The method of claim 1 wherein said address lines and said output data lines of said digital processor are separate.
3. The method of claim 1 wherein said address and data lines of said digital processor are time multiplexed.
US07/624,377 1990-12-07 Effectuating full duplex digital data transfer Abandoned USH1342H (en)

Publications (1)

Publication Number Publication Date
USH1342H true USH1342H (en) 1994-08-02

Family

ID=

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913075A (en) * 1997-03-25 1999-06-15 International Business Machines Corporation High speed communication between high cycle rate electronic devices using a low cycle rate bus
US6101561A (en) * 1998-02-06 2000-08-08 International Business Machines Corporation System for providing an increase in digital data transmission rate over a parallel bus by converting binary format voltages to encoded analog format currents

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913075A (en) * 1997-03-25 1999-06-15 International Business Machines Corporation High speed communication between high cycle rate electronic devices using a low cycle rate bus
US6101561A (en) * 1998-02-06 2000-08-08 International Business Machines Corporation System for providing an increase in digital data transmission rate over a parallel bus by converting binary format voltages to encoded analog format currents

Similar Documents

Publication Publication Date Title
US5961640A (en) Virtual contiguous FIFO having the provision of packet-driven automatic endian conversion
US5568619A (en) Method and apparatus for configuring a bus-to-bus bridge
US3842405A (en) Communications control unit
US4860244A (en) Buffer system for input/output portion of digital data processing system
US4590551A (en) Memory control circuit for subsystem controller
EP0080891A2 (en) Direct memory access logic system for a data transfer network
WO1986000436A1 (en) Data processor having dynamic bus sizing
US5070443A (en) Apparatus for write handshake in high-speed asynchronous bus interface
EP0080890A2 (en) Interface circuit for subsystem controller
US5941960A (en) Host initiated PCI burst writes utilizing posted write buffers
JPS62214464A (en) Coprocessor coupling system
US5537582A (en) Bus interface circuitry for synchronizing central processors running at multiple clock frequencies to other computer system circuitry
US4897779A (en) Method and apparatus for optimizing inter-processor instruction transfers
US5079696A (en) Apparatus for read handshake in high-speed asynchronous bus interface
US6366973B1 (en) Slave interface circuit for providing communication between a peripheral component interconnect (PCI) domain and an advanced system bus (ASB)
US4493053A (en) Multi-device apparatus synchronized to the slowest device
USH1342H (en) Effectuating full duplex digital data transfer
US6141741A (en) Computer system with a shared address bus and pipelined write operations
US4751632A (en) Data processor having multiple cycle operand cycles
US7103701B2 (en) Memory bus interface
EP0176976A2 (en) Disk controller with shared address register
US6016521A (en) Communication control device
US4943941A (en) Floating point processor employing counter controlled shifting
EP0074300A2 (en) Memory control circuit for subsystem controller
Fawcett The Z8000 peripheral family