Claims
- 1. A read-ahead algorithm for creating multiple memory bursts for a single PCI burst, comprising:a) initially requesting two memory bursts of a memory controller; b) writing single memory bursts per burst request to a buffer memory; c) limiting the maximum amount of read-ahead to less than the maximum possible data contained in said buffer memory, by adaptively controlling the number of memory burst requests; and d) discarding remaining data from said buffer memory and pending data requests from the memory controller upon completion of a PCI burst.
- 2. A method for adaptively fulfilling a bus read request, the method comprising:initiating a first memory burst read request and a second memory burst read request in response to the bus read request; writing data resulting from the first and second memory burst read requests to a buffer; and initiating an additional memory burst read request each time a bus read has removed one memory burst of data from the buffer, wherein each of a first, second, and third memory burst lengths associated with the first, second, and additional memory bursts, respectively, is smaller than a length associated with the bus read request and is determined in accordance with the length associated with the bus read request.
- 3. The method of claim 2, wherein initiating an additional memory burst read request includes initiating two or more additional memory burst read requests when the bus read is in progress and the buffer is less than full.
- 4. The method of claim 2, further comprising:canceling unfulfilled memory burst read requests; and clearing the buffer when the bus read request has been fulfilled.
- 5. The method of claim 2, further comprising optimizing a data width and a data burst depth of a memory from which the bus read request is fulfilled, wherein the data width and data burst depth are based on (a) timing parameters of the memory, (b) a data width of a system including the memory, a first bus included in the system, or a second bus included in the system, (c) a data burst depth of the system, the first bus, or the second bus, and an efficiency of the system or usage of the first and second buses, and (d) a fall-through time of first and second sets of buffers included in the system.
- 6. A system for writing and reading data using burst transfers between a memory and each of a first device and a second device, comprising:a first bus; a second bus; a first set of buffers coupled between the first bus and the memory; and a second set of buffers coupled between the second bus and the memory, the first device coupled to the first bus, the second device coupled to the second bus, and a data width and a data burst depth associated with the memory optimized as a function of (a) timing parameters of the memory, (b) a data width of the system, the first bus, or the second bus, (c) a data burst depth of the system, the first bus, or the second bus, and an efficiency of the system or usage of the first and second buses, and (d) a fall-through time of the first and second sets of buffers.
- 7. The system of claim 6, wherein the data width and data burst depth associated with the memory are associated with an expected bus bandwidth of the first and second buses based on a weighted average of a probable system or activity overlap of the first and second buses.
CROSS-REFERENCE TO RELATED APPLICATION(S)
The present application is a continuation of U.S. application Ser. No. 09/542,585 filed Apr. 4, 2000 now U.S. Pat. No. 6,434,674.
US Referenced Citations (11)
Foreign Referenced Citations (3)
Number |
Date |
Country |
4007814 |
Sep 1991 |
DE |
410232826 |
Sep 1998 |
JP |
10289588 |
Oct 1998 |
JP |
Continuations (1)
|
Number |
Date |
Country |
Parent |
09/542585 |
Apr 2000 |
US |
Child |
10/172405 |
|
US |