Claims
- 1. An integrated circuit coupled between system memory of a computer system and an input/output channel, comprising:an input/output request circuit coupled to receive a read request for data in system memory from an input/output device over the input/output channel; and a read ahead buffer coupled to the input/output request circuit, storing data from a previous read access to system memory, the input/output request circuit coupled to selectively provide data from one of the system memory and the read ahead buffer in response to the read request; and wherein the read ahead buffer is maintained as non coherent memory with respect to system memory.
- 2. The integrated circuit as recited in claim 1 wherein accesses of system memory by other than read accesses over the input/output channel occur without snooping the read ahead buffer and read accesses to the read ahead buffer occur without snooping of system memory.
- 3. The integrated circuit as recited in claim 1 wherein the integrated circuit further comprises:an input/output channel control circuit coupled between the input/output request circuit and the input/output channel; and a memory control circuit coupled between the input/output request circuit and the main memory.
- 4. The integrated circuit as recited in claim 1 wherein the integrated circuit includes a central processing unit (CPU).
- 5. The integrated circuit as recited in claim 1 wherein the read ahead buffer includes at least one buffer of a predetermined size, the high order address bits of the read request identifying memory locations in the system memory corresponding to the at least one buffer.
- 6. The integrated circuit as recited in claim 1 wherein the read ahead buffer includes a plurality of buffers, each of the buffers respectively corresponding to an associated input/output device.
- 7. The integrated circuit as recited in claim 1 wherein the read ahead buffer includes a plurality of buffers, each of the buffers being identified by a separate address tag, each tag indicating a location in main memory associated with the buffer.
- 8. The integrated circuit as recited in claim 7 wherein the plurality of buffers are associated with one input/output device, thereby allowing multiple blocks of data to be cached for the input/output device.
- 9. The integrated circuit as recited in claim 5 wherein the read ahead buffer has an associated buffer valid indication, thereby indicating the validity of the buffer contents.
- 10. The integrated circuit as recited in claim 9 wherein the buffer valid indication is determined to be invalid at the end of a read access of a sequential block of data by an input/output device.
- 11. The integrated circuit as recited in claim 9 wherein the buffer valid indication is determined to be invalid at the end of a predetermined period of time after the buffer valid indication was determined to be valid.
- 12. The integrated circuit as recited in claim 5 wherein the read ahead buffer has an associated buffer valid indication, the buffer valid indication being set as valid when data is entered into the read ahead buffer, responsive to the read request by the input/output device.
- 13. The integrated circuit as recited in claim 12, wherein the buffer valid indication is determined to be invalid upon a subsequent access by the input/output device to an address outside of the read ahead buffer.
- 14. The integrated circuit as recited in claim 9 wherein the buffer valid indication is determined to be invalid upon access to the addresses stored in the read ahead buffer by a different input/output device.
- 15. The integrated circuit as recited in claim 9 wherein the butter valid indication is determined to be invalid according to at least one of an end of a sequential access by an input/output device, an end of a predetermined period of time after the buffer valid indication was marked as valid, access by the input/output device to an address outside of currently stored data in the read ahead buffer, and an access to the read ahead buffer by a different input/output device.
- 16. The integrated circuit as recited in claim 9 wherein the buffer valid indication is determined to be invalid at the end of a direct memory access (DMA) transfer.
- 17. The integrated circuit as recited in claim 1 further comprising a control register associated with at least one input/output device, the control register specifying whether block read ahead is active for the one input/output device.
- 18. A computer system comprising:a central processing unit; system memory including a main memory and cache memory; an input/output device coupled to an input/output bus; and a first integrated circuit including, a memory control circuit coupled to the main memory; an input/output control circuit coupled to the input output device through the input/output bus; an input/output request circuit; a read ahead buffer coupled to the input/output request circuit, wherein the read ahead buffer stores data associated with a read access by the input/output device, to system memory; and wherein the read ahead buffer is not maintained as a coherent memory with respect to the system memory.
- 19. The computer system as recited in claim 18 wherein the central processing unit is disposed on the first integrated circuit.
- 20. The computer system as recited in claim 18, wherein coherency is maintained in the system memory between the cache memory and the main memory and a read access to the read ahead buffer does not cause snooping of the cache memory or the main memory.
- 21. The computer system as recited in claim 20, wherein a memory access, other than an input/output read access, is performed without snooping the read ahead buffer.
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a continuation of co-pending application Ser. No. 09/238,829, filed Jan. 28, 1999, naming Geoffrey S. S. Strongin, David W. Smith, and Norman Hack as inventors, which application is incorporated herein by reference.
US Referenced Citations (18)
Continuations (1)
|
Number |
Date |
Country |
| Parent |
09/238829 |
Jan 1999 |
US |
| Child |
10/082766 |
|
US |