Data transfer method/engine for pipelining shared memory bus accesses
First Claim
1. A method of transferring data using a shared memory bus, comprising the steps of:
- receiving and storing a first transfer parameter set in a primary parameter register;
receiving and storing a second transfer parameter set in a secondary parameter register; and
transferring data with said shared memory bus in response to said first parameter set and said second parameter set without relinquishing access to said shared memory bus between transferring of data in response to said first parameter set and transferring of data in response to said second parameter set.
1 Assignment
0 Petitions
Accused Products
Abstract
A data transfer engine, method and article of manufacture are provided for use in a functional unit of an integrated system for enhanced access and transfer of data over a shared data bus. The data transfer technique comprises pipelining data transfer requests onto the shared bus. The technique involves receiving and storing a first transfer parameter set in a primary parameter register within the data transfer structure, and receiving and storing a second transfer parameter set in a secondary parameter register within the transfer structure. Thereafter, data is transferred using the shared memory bus in response to the first transfer parameter set and the second transfer parameter set without relinquishing access to the shared memory bus between transferring of data in response to the different parameter sets. A situational wait decision is preferably implemented in practice to decide whether to pipeline consecutive data transfer requests based upon the characteristics of the first transfer parameter set and/or the second transfer parameter set, as well as the identities of the requesters providing the first transfer parameter set and the second transfer parameter set.
69 Citations
38 Claims
-
1. A method of transferring data using a shared memory bus, comprising the steps of:
-
receiving and storing a first transfer parameter set in a primary parameter register; receiving and storing a second transfer parameter set in a secondary parameter register; and transferring data with said shared memory bus in response to said first parameter set and said second parameter set without relinquishing access to said shared memory bus between transferring of data in response to said first parameter set and transferring of data in response to said second parameter set. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method of transferring data with a shared data bus, comprising the steps of:
-
accepting a first transfer parameter set from one of a plurality of data requesters, and storing said first transfer parameter set in a primary parameter register; subsequent to said storing of said first parameter set, dynamically determining whether to wait for a second transfer parameter set from one of said plurality of data requesters, and if waiting, thereafter receiving and storing said second transfer parameter set in a secondary parameter register; subsequent to storing of said second transfer parameter set, or if not waiting for said second transfer parameter set, requesting access to said shared data bus and transferring data with said data bus in response to said first transfer parameter set; and if said second transfer parameter set has been received, transferring data with said data bus in response to said second transfer parameter set, without relinquishing access to said data bus between said transferring of data in response to said first transfer parameter set and said transferring of data in response to said second transfer parameter set. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A data transfer engine for a bus access controller of a functional unit in an integrated system having a shared data bus coupling the functional unit to an external device, said data transfer engine comprising:
-
a primary parameter register for receiving and storing a first transfer parameter set; a secondary parameter register for receiving and storing a second transfer parameter set; and control logic for initiating and controlling transfer of data across said shared data bus in response to said first transfer parameter set and said second transfer parameter set without relinquishing access to said shared data bus between transferring of data in response to said first transfer parameter set and transferring of data in response to said second transfer parameter set. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A data transfer engine for a bus access controller of a functional unit in an integrated system having a shared data bus coupling the functional unit to an external device, said data transfer engine comprising:
-
means for accepting a first transfer parameter set from one of a plurality of data requesters within the functional unit, and for storing said first transfer parameter set in a primary parameter register; means for dynamically determining whether to wait for a second transfer parameter set from one of said plurality of data requesters, and if waiting, for receiving and storing said second transfer parameter set in a secondary parameter register; means for requesting access to said shared data bus and for transferring data with said data bus in response to said first transfer parameter, said transferring data occurring after storing said second transfer parameter set or if not waiting for said second transfer parameter set; and means for transferring data with said shared data bus in response to said second transfer parameter set if said second transfer parameter set has been received, without relinquishing access to said shared data bus between said transferring of data in response to said first parameter set and said transferring of data in response to said second parameter set. - View Dependent Claims (30, 31, 32, 33, 34)
-
-
35. An integrated system comprising:
-
at least one shared data bus; multiple functional units coupled to said at least one shared data bus for sending requests thereon to access at least one external device to be coupled to the integrated system; and a bus access controller for a functional unit of said multiple functional units in said integrated system, said bus access controller comprising a data transfer engine, said data transfer engine comprising; (i) a primary parameter register for receiving and storing a first transfer parameter set; (ii) a secondary parameter register for receiving and storing a second transfer parameter set; and (iii) control logic for initiating and controlling transfer of data across said at least one shared data bus in response to said first transfer parameter set and said second transfer parameter set without relinquishing access to said at least one shared data bus between transferring of data in response to said first transfer parameter set and transferring of data in response to said second transfer parameter set. - View Dependent Claims (36)
-
-
37. An article of manufacture, comprising:
at least one computer usable medium having computer readable program code means embodied therein for causing pipelined data transfer using a shared data bus, the computer readable program code means in the article of manufacture comprising; (i) computer readable program code means for causing a computer to receive and store a first transfer parameter set; (ii) computer readable program code means for causing a computer to receive and store a second transfer parameter set; and (iii) computer readable program code means for causing a computer to transfer data with said shared data bus in response to said first transfer parameter set and in response to said second transfer parameter set without relinquishing access to said shared data bus between transferring of data in response to said first parameter set and transferring of data in response to said second parameter set.
-
38. An article of manufacture, comprising:
at least one computer usable medium having computer readable program code means embodied therein for causing transferring of data with a shared data bus, the computer readable program code means in the article of manufacture comprising; (i) computer readable program code means for causing a computer to accept a first transfer parameter set from one of a plurality of data requesters, and for storing said first transfer parameter set in a primary parameter register; (ii) computer readable program code means for causing a computer to determine whether to wait for a second transfer parameter set from one of said plurality of data requesters, and if waiting, for receiving and storing said second transfer parameter set in a secondary parameter register; (iii) computer readable program code means for causing a computer to request access to said shared data bus and to transfer data with said data bus in response to said first transfer parameter set after storing said second transfer parameter set or if not waiting for said second transfer parameter set; and (iv) computer readable program code means for causing a computer to transfer data with said shared data bus in response to said second transfer parameter set if said second transfer parameter set has been received, said transfer being without relinquishing access to said data bus between said transferring of data in response to said first transfer parameter set and said transferring of data in response to said second transfer parameter set.
Specification