CA2247341C

Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure

Abstract

An asynchronous data pipe (ADP) automatically generates transactions necessary to complete asynchronous data transfer operations for an application over a bus structure. The ADP includes a register file which is programmed and initiated by the application. The register file includes the bus speed, transaction label, transaction code, destination node identifier, destination offset address, length of each data packet, packet counter, packet counter bump field, control field, and a status field. During a data transfer operation, the ADP generates the transactions necessary to complete the operation over the appropriate range of addresses, using the information in the registerfile as a template. The ADP increments the value in the destination offset address field for each transaction according to the length of each data packet, unless the incrementing feature has been disabled and the transactions are to take place at a fixed address. The packet counter represents the number of transactions remaining to be generated. The packet counter value is decremented after each packet of data is transferred. The application can increment the packet counter value by writing to the packet counter bump field. A multiplexer is included within a system having multiple ADPs for multiplexing the information from the ADPs onto the bus structure. A demultiplexer is included within a system having multiple ADPs for routing information from the bus structure to the appropriate ADP.

CA2247341C, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Expired 19 February 2017, 9.6 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

59 claims: 10 independent, 49 dependent

  1. 1
    CA 02247341 2007-10-24 What is claimed is:1. An asynchronous data pipe (20) configured for coupling between an application (12) and a bus structure (58) for automatically controlling asynchronous data transfer operations to and from the application (12) over the bus structure (58) comprising: a. means for receiving parameters regarding a data transfer operation, the parameters including an address in an address space of the bus structure, a data packet length and a transfer direction;and b. means for generating transactions necessary to complete the data transfer operation between the application (12) and a node coupled to the bus structure (58) without direct processor control or intervention by the application.
  2. 11
    A method of managing a write data transfer operation between an application (12) and a node coupled to a bus structure (58), independent of direct processor control and intervention by the application comprising the steps of:a. receiving parameters from the application (12) regarding a write data transfer operation, the parameters including a packet counter value;b. obtaining a packet of data from the application;c. generating a header for the data transfer operation wherein the header is generated without direct processor control or supervision by the application;d. adding the header to the packet of data, wherein the header includes a destination address for the packet of data;and e. transferring the packet of data, including the header, onto the bus structure (58).
  3. 17
    A method of managing a read data transfer operation from a node coupled to a bus structure (58) to an application comprising the steps of:a. receiving parameters regarding a read data transfer operation from the application (12) including an address at the node from where the data is to be sent from, a data packet length and a packet counter value;b. generating a transaction necessary, independent of direct processor control and intervention by the application, in order to request that a packet of data from the node be placed on the bus structure (58) wherein the transaction is generated without direct processor control or supervision by the application (58);c. transferring the transaction onto the bus structure (58);d. obtaining the packet of data from the bus structure (58);e. stripping header information from the packet of data;and f. providing the packet of data without the header information to the application (12). CA 02247341 2007-10-24
  4. 23
    An apparatus for managing asynchronous data transfer operations between one or more applications (12 and 14) and abus structure (58) comprising:a. a plurality of asynchronous data pipes (20, 22, and 24) configured for coupling between the one or more applications (12 and 14) and the bus structure (58), each including: i. means for receiving parameters from the one or more applications (12 and 14) regarding a data transfer operation;and ii. means for automatically generating transactions necessary to complete the data transfer operation without direct processor control;CA 02247341 2007-10-24 b. a physical bus interface (44) configured for coupling to the bus structure (58) for placing data on the bus structure (58) and obtaining data from the bus structure (58);c. a multiplexing circuit (40) coupled between each asynchronous data pipe (20,22 and 24) and the physical bus interface (44) for transmitting data packets from the asynchronous data pipes (20,22 and 24) to the bus structure (58);and d. a demultiplexing circuit (42) coupled between each asynchronous data pipe (20, 22 and 24) and the physical bus interface (44) for routing data packets obtained from the bus structure (58) to an appropriate one of the asynchronous data pipes (20,22 and 24).
  5. 35
    An asynchronous data pipe (20) configured for coupling between an application (12) and an IEEE 1394 standard bus structure for managing asynchronous data transfer operations to and from the application over the bus structure (58) comprising:a. a register file (26) including an address, a data packet length and a transfer direction;CA 02247341 2007-10-24 b. a programming circuit coupled to the register file (26) and configured for coupling to the application (12) for receiving parameters from the application regarding a data transfer operation from the application (12) and storing the parameters in the register file (26);and c. an automatic transaction generating circuit coupled to the register file (26) for automatically generating transactions necessary to complete the data transfer operation without direct processor control or supervision by the application (12).
  6. 41
    An asynchronous data pipe (20) configured to couple between an application (12) and a bus structure (58) comprising:CA 02247341 2007-10-24 a. an interface circuit configured to receive parameters regarding a data transfer operation, the parameters including an address in an address space of the bus structure (58), a data packet length and a transfer direction;and b. a transaction generating circuit configured to generate, without direct processor control, transactions necessary to complete the data transfer operation between the application (12) and a node coupled to the bus structure (58), wherein the transactions are generated to an increasing range of addresses, by incrementing the address by the data packet length.
  7. 52
    An asynchronous data pipe (20) for coupling to a bus structure (58) comprising:a. a processor configured to provide a set of parameters for a data transfer operation over a bus, and configured to initiate the data transfer operation, the parameters including a data packet length and an address within a node coupled to the bus;and b. a circuit configured to generate, without intervention from the processor subsequent to the initiation, a series of transactions on the bus for the data transfer operation, the series having addresses formed by incrementing the address within the node by the packet length.
  8. 54
    An asynchronous data pipe (20) for coupling to a bus structure (58), comprising:a. means for receiving a set of parameters for a data transfer operation, the parameters including a data packet length and an address within a node coupled to a bus structure (58);b. means for storing the parameters and for forming a template for a transaction within the data transfer operation;c. means for initializing a current address to the address within the node, for incrementing the current address by the packet length and for generating a series CA 02247341 2007-10-24 of the transactions using each value of the current address and using the template;and d. means for sending the transactions via the bus structure (58).
  9. 56
    An apparatus for managing asynchronous transfers between a processor and a bus structure (58), comprising:a. a plurality of means for coupling between a processor and a bus structure (58), each including means for receiving from the processor a request for an asynchronous transfer and for generating in response thereto a series of transactions on the bus structure (58);b. means for transmitting data packets of the transactions from any of the coupling means to the bus structure;and c. means for routing data packets of the transactions from the bus structure to a corresponding one of the coupling means, the correspondence being based on a label value of the transaction.
  10. 58
    An apparatus for managing asynchronous transfers between a processor and a bus structure (58), comprising:a. a plurality of circuits each coupled between a processor and a bus structure (58), each being configured to receive from the processor a request for an asynchronous transfer and to generate in response thereto a series of transactions on the bus structure (58);b. a multiplexor configured to transmit data packets of the transactions from any of the circuits to the bus structure (58);and CA 02247341 2007-10-24 c. a demultiplexor configured to route data packets of the transactions from the bus structure to a corresponding one of the circuits, the correspondence being based on a label value of the transaction.