Phantom buffer for interfacing between buses of differing speeds
First Claim
Patent Images
1. An interface circuit that interfaces between two buses operating at different speeds, comprising:
- a first input port that receives information from a first data bus at a first speed;
a first output port that transmits information to a second data bus at a second speed, wherein the second speed is slower than the first speed; and
a data storage device, operatively associated with the first input port and the first output port, that stores information received from the first bus by the first input port, wherein the data storage device provides an apparent size to the first data bus of greater than a physical size of the data storage device wherein data from a block of data of the apparent size transferred to the data storage device on the first data bus overwrites data from the block which has been provided to the first output port of the interface circuit.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, systems or apparatus and computer program products are provided that interface between two data buses operating at different speeds. Such interfaces utilize a buffer which has an apparent size larger than the physical size of the buffer to receive blocks of data which are larger than the size of the buffer. The apparent size of the buffer is created by simultaneously writing data to and reading data from the buffer such that the same storage locations may be used more than once to hold the data. The present invention may be utilized for receiving data from either the high speed or the lower speed bus.
40 Citations
29 Claims
-
1. An interface circuit that interfaces between two buses operating at different speeds, comprising:
-
a first input port that receives information from a first data bus at a first speed;
a first output port that transmits information to a second data bus at a second speed, wherein the second speed is slower than the first speed; and
a data storage device, operatively associated with the first input port and the first output port, that stores information received from the first bus by the first input port, wherein the data storage device provides an apparent size to the first data bus of greater than a physical size of the data storage device wherein data from a block of data of the apparent size transferred to the data storage device on the first data bus overwrites data from the block which has been provided to the first output port of the interface circuit. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9)
a second input port that receives information from the second data bus at the second speed; and
a second output port that transmits information to the first data bus at the first speed.
-
-
4. An interface circuit according to claim 3, wherein the first input port and the second output port comprise a first input/output port that receives information from and transmits information to the first data bus at the first speed, and wherein the second input port and the first output port comprise a second input/output port that receives information from and transmits information to the second data bus at the second speed.
-
5. The interface circuit according to claim 4, further comprising a state machine and arbitrator that coordinates access to the first data bus and the second data bus.
-
6. The interface according to claim 5, further comprising a random access memory buffer electrically connected to the second input/output port.
-
7. The interface according to claim 5, wherein the state machine and arbitrator causes the data storage device to be filled with data from the second data bus prior to initiating a data transfer from the first input/output port to the first data bus and then continues to allow data to be provided to the second input/output port while the transfer of data from the first input/output port to the first data bus progresses.
-
8. The interface according to claim 5, wherein the state machine and arbitrator allows data to be stored in the data storage device only when data can be transmitted from the data storage device through the second input/output port to the second data bus.
-
9. The interface according to claim 5, wherein the first data bus comprises a PCI data bus and wherein the second data bus comprises an internal data bus of an ethernet adapter.
-
2. An interface circuit that interfaces between two buses operating at different speeds, comprising:
-
a first input port that receives information from a first data bus at a first speed;
a first output port that transmits information to a second data bus at a second speed, wherein the second speed is slower than the first speed; and
a data storage device, operatively associated with the first input port and the first output port, that stores information received from the first bus by the first input port, wherein the data storage device provides an apparent size to the first data bus of greater than a physical size of the data storage device; and
wherein the size of the data storage device is less than a size of a block of data received from the first input port and greater than or equal to the size of the block multiplied by a ratio of the difference between the first speed and the second speed to the first speed.
-
-
10. A method of interfacing between two data buses operating at different speeds, the method comprising the steps of:
-
receiving a block of data at a first port of a dual port buffer from a first data bus at a first speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer;
transmitting a first portion of the data from the block of data from a second port of the dual port buffer to the second data bus at a second speed, slower than the first speed, while a remaining portion of the data from the block of data is received by the dual port buffer; and
wherein an amount of data in the block of data is less than or equal to an amount of data which can be simultaneously stored in the dual port buffer multiplied by a ratio of a rate at which data can be received by the dual port buffer from the first data bus to the difference between the rate at which data can be received by the dual port buffer from the first data bus and a rate at which data can be transmitted on the second data bus by the dual port buffer.
-
-
11. A method of interfacing between two data buses operating at different speeds, the method comprising the steps of:
-
receiving a block of data at a first port of a dual port buffer from a first data bus at a first speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer;
transmitting a first portion of the data from the block of data from a second port of the dual port buffer to the second data bus at a second speed, slower than the first speed, while a remaining portion of the data from the block of data is received by the dual port buffer; and
wherein said step of receiving a block of data comprises the steps of;
storing initial data from the block of data in the dual port buffer, wherein the amount of data from the block of data corresponds to the amount of data which can be simultaneously stored in the dual port buffer in the dual port buffer; and
thenstoring additional data from the block of data in the dual port buffer wherein the additional data is data from the block of data other than the initial data and is stored so as to overwrite at least a portion of the initial data. - View Dependent Claims (12)
-
-
13. A method of interfacing between two data buses operating at different speeds, the method comprising the steps of:
-
receiving a first portion of a block of data at a second port of a dual port buffer from a second data bus operating at a second speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer and wherein the first portion of the block of data comprises an amount less than or equal to the amount of data which can be simultaneously stored in the dual port buffer; and
thentransmitting the first portion of the data from the block of data from a first port of the dual port buffer to a first data bus at a first speed, wherein the first speed is higher than the second speed, while a remaining portion of the data from the block of data is received by the second port of the dual port buffer; and
wherein the size of the block of data is less than or equal to the amount of data which can be simultaneously stored in the dual port buffer multiplied by a ratio of a rate at which data can be transmitted by the dual port buffer to the first data bus to the difference between the rate at which data can be transmitted by the dual port buffer to the first data bus and a rate at which data can be received from the second data bus by the dual port buffer. - View Dependent Claims (14)
-
-
15. A method of interfacing between two data buses operating at different speeds, the method comprising the steps of:
-
receiving a first portion of a block of data at a second port of a dual port buffer from a second data bus operating at a second speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer and wherein the first portion of the block of data comprises an amount less than or equal to the amount of data which can be simultaneously stored in the dual port buffer; and
thentransmitting the first portion of the data from the block of data from a first port of the dual port buffer to a first data bus at a first speed, wherein the first speed is higher than the second speed, while a remaining portion of the data from the block of data is received by the second port of the dual port buffer;
wherein said step of receiving a first portion of a block of data includes the step of storing the first portion of the block of data in the dual port buffer, wherein the amount of data in the first portion of the block of data corresponds to the amount of data which can be simultaneously stored in the dual port buffer; and
wherein said step of transmitting the first portion of the block of data includes the step of storing remaining portions of the block of data received at the second port of the dual port buffer in the dual port buffer wherein the [additional amount of data remaining portions of the block of data is data other that the first portion of the block of data and is stored so as to overwrite at least a portion of the first portion of the block of data.
-
-
16. A method of interfacing between two data buses operating at different speeds, the method comprising the steps of:
-
receiving a first portion of a block of data at a second port of a dual port buffer from a second data bus operating at a second speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer and wherein the first portion of the block of data comprises an amount less than or equal to the amount of data which can be simultaneously stored in the dual port buffer; and
thentransmitting the first portion of the data from the block of data from a first port of the dual port buffer to a first data bus at a first speed, wherein the first speed is higher than the second speed, while a remaining portion of the data from the block of data is received by the second port of the dual port buffer;
wherein said step of receiving a first portion of a block of data includes the step of storing the first portion of the block of data in the dual port buffer, wherein the amount of data in the first portion of the block of data corresponds to the amount of data which can be simultaneously stored in the dual port buffer; and
wherein said step of storing remaining portions of the block of data comprises the step of storing additional data from the block of data in the dual port buffer wherein the additional data is data other than data from the first portion of the block of data and is stored in a same sequence of storage locations of the dual port buffer beginning with the first storage location of the first portion of the block of data so as to overwrite at least a portion of the first portion of the block of data.
-
-
17. An apparatus that interfaces between two data buses operating at different speeds, comprising:
-
a dual port buffer;
means for receiving a block of data at a first port of the dual port buffer from a first data bus at a first speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer;
means for transmitting a first portion of the data from the block of data from a second port of the dual port buffer to the second data bus at a second speed, slower than the first speed, while a remaining portion of the data from the block of data is received by the dual port buffer; and
wherein said means for receiving a block of data comprises;
means for storing initial data from the block of data in the dual port buffer, wherein the amount of data from the block of data corresponds to the amount of data which can be simultaneously stored in the dual port buffer in the dual port buffer; and
means for storing additional data from the block of data in the dual port buffer wherein the additional data is data other than the initial data and is stored so as to overwrite at least a portion of the initial data. - View Dependent Claims (19)
-
-
18. An apparatus that interfaces between two data buses operating at different speeds, comprising:
-
a dual port buffer;
means for receiving a block of data at a first port of the dual port buffer from a first data bus at a first speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer;
means for transmitting a first portion of the data from the block of data from a second port of the dual port buffer to the second data bus at a second speed, slower than the first speed, while a remaining portion of the data from the block of data is received by the dual port buffer; and
wherein an amount of data in the block of data is less than or equal to an amount of data which can be simultaneously stored in the dual port buffer multiplied by a ratio of a rate at which data can be received by the dual port buffer from the first data bus to the difference between the rate at which data can be received by the dual port buffer from the first data bus and a rate at which data can be transmitted on the second data bus by the dual port buffer.
-
-
20. An apparatus that interfaces between two data buses operating at different speeds, comprising:
-
a dual port buffer;
means for receiving a first portion of a block of data at a second port of the dual port buffer from a second data bus operating at a second speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer and wherein the first portion of the block of data comprises an amount less than or equal to the amount of data which can be simultaneously stored in the dual port buffer;
means for transmitting the first portion of the data from the block of data from a first port of the dual port buffer to a first data bus at a first speed, wherein the first speed is higher than the second speed, while a remaining portion of the data from the block of data is received by the second port of the dual port buffer; and
wherein said means for transmitting the first portion of the block of data includes means for storing remaining portions of the block of data received at the second port of the dual port buffer in the dual port buffer wherein the remaining portions of the block of data is data other than data from the first portion of the block of data and is stored so as to overwrite at least a portion of the first portion of the block of data. - View Dependent Claims (22)
-
-
21. An apparatus that interfaces between two data buses operating at different speeds, comprising:
-
a dual port buffer;
means for receiving a first portion of a block of data at a second port of the dual port buffer from a second data bus operating at a second speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer and wherein the first portion of the block of data comprises an amount less than or equal to the amount of data which can be simultaneously stored in the dual port buffer;
means for transmitting the first portion of the data from the block of data from a first port of the dual port buffer to a first data bus at a first speed, wherein the first speed is higher than the second speed, while a remaining portion of the data from the block of data is received by the second port of the dual port buffer; and
wherein the size of the block of data is less than or equal to the amount of data which can be simultaneously stored in the dual port buffer multiplied by a ratio of a rate at which data can be transmitted by the dual port buffer to the first data bus to the difference between the rate at which data can be transmitted by the dual port buffer to the first data bus and a rate at which data can be received from the second data bus by the dual port buffer.
-
-
23. A computer program product for interfacing between two data buses operating at different speeds, the computer program product comprising:
-
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising;
computer-readable program code means for receiving a block of data at a first port of a dual port buffer from a first data bus at a first speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer;
computer-readable program code means for transmitting a first portion of the data from the block of data from a second port of the dual port buffer to the second data bus at a second speed, slower than the first speed, while a remaining portion of the data from the block of data is received by the dual port buffer; and
wherein said computer-readable program code means for receiving a block of data comprises;
computer-readable program code means for storing initial data from the block of data in the dual port buffer, wherein the amount of data from the block of data corresponds to the amount of data which can be simultaneously stored in the dual port buffer in the dual port buffer; and
computer-readable program code means for storing additional data from the block of data in the dual port buffer wherein the additional data is data other than the initial data and is stored so as to overwrite at least a portion of the initial data. - View Dependent Claims (25)
-
-
24. A computer program product for interfacing between two data buses operating at different speeds, the computer program product comprising:
-
a computer-readable storage medium having computer-readable program code means embodied in said medium, said computer-readable program code means comprising;
computer-readable program code means for receiving a block of data at a first port of a dual port buffer from a first data bus at a first speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer;
computer-readable program code means for transmitting a first portion of the data from the block of data from a second port of the dual port buffer to the second data bus at a second speed, slower than the first speed, while a remaining portion of the data from the block of data is received by the dual port buffer; and
wherein an amount of data in the block of data is less than or equal to an amount of data which can be simultaneously stored in the dual port buffer multiplied by a ratio of a rate at which data can be received by the dual port buffer from the first data bus to the difference between the rate at which data can be received by the dual port buffer from the first data bus and a rate at which data can be transmitted on the second data bus by the dual port buffer.
-
-
26. A computer program product for interfacing between two data buses operating at different speeds, the computer program product comprising:
-
computer-readable program code means for receiving a first portion of a block of data at a second port of a dual port buffer from a second data bus operating at a second speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer and wherein the first portion of the block of data comprises an amount less than or equal to the amount of data which can be simultaneously stored in the dual port buffer;
computer-readable program code means for transmitting the first portion of the data from the block of data from a first port of the dual port buffer to a first data bus at a first speed, wherein the first speed is higher than the second speed, while a remaining portion of the data from the block of data is received by the second port of the dual port buffer; and
wherein the size of the block of data is less than or equal to the amount of data which can be simultaneously stored in the dual port buffer multiplied by a ratio of a rate at which data can be transmitted by the dual port buffer to the first data bus to the difference between the rate at which data can be transmitted by the dual port buffer to the first data bus and a rate at which data can be received from the second data bus by the dual port buffer. - View Dependent Claims (27)
-
-
28. A computer program product for interfacing between two data buses operating at different speeds, the computer program product comprising:
-
computer-readable program code means for receiving a first portion of a block of data at a second port of a dual port buffer from a second data bus operating at a second speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer and wherein the first portion of the block of data comprises an amount less than or equal to the amount of data which can be simultaneously stored in the dual port buffer;
computer-readable program code means for transmitting the first portion of the data from the block of data from a first port of the dual port buffer to a first data bus at a first speed, wherein the first speed is higher than the second speed, while a remaining portion of the data from the block of data is received by the second port of the dual port buffer;
wherein said computer-readable program code means for receiving a first portion of a block of data includes computer-readable program code means for storing the first portion of the block of data in the dual port buffer, wherein the amount of data in the first portion of the block of data corresponds to the amount of data which can be simultaneously stored in the dual port buffer; and
wherein said computer-readable program code means for transmitting the first portion of the block of data includes computer-readable program code means for storing remaining portions of the block of data received at the second port of the dual port buffer in the dual port buffer wherein the remaining portions of the block of data is data other than the first portion of the block of data and is stored so as to overwrite at least a portion of the first portion of the block of data.
-
-
29. A computer program product for interfacing between two data buses operating at different speeds, the computer program product comprising:
-
computer-readable program code means for receiving a first portion of a block of data at a second port of a dual port buffer from a second data bus operating at a second speed, wherein an amount of data in the block of data is larger than an amount of data which can be simultaneously stored in the dual port buffer and wherein the first portion of the block of data comprises an amount less than or equal to the amount of data which can be simultaneously stored in the dual port buffer;
computer-readable program code means for transmitting the first portion of the data from the block of data from a first port of the dual port buffer to a first data bus at a first speed, wherein the first speed is higher than the second speed, while a remaining portion of the data from the block of data is received by the second port of the dual port buffer;
wherein said computer-readable program code means for receiving a first portion of a block of data includes computer-readable program code means for storing the first portion of the block of data in the dual port buffer, wherein the amount of data in the first portion of the block of data corresponds to the amount of data which can be simultaneously stored in the dual port buffer; and
wherein said computer-readable program code means for storing remaining portions of the block of data comprises computer-readable program code means for storing additional data from the block of data in the dual port buffer wherein the additional data is data other than data from the first portion of the block of data and is stored in a same sequence of storage locations of the dual port buffer beginning with the first storage location of the first portion of the block of data so as to overwrite at least a portion of the first portion of the block of data.
-
Specification