Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
First Claim
1. A method of fetching data from a memory, comprising the steps of:
- receiving a first read command specifying a first address of said memory to be read;
receiving a subsequent write command specifying an address of said memory to be written;
receiving a second read command, subsequent to said write command, specifying a second address of said memory to be read, said second address sequentially following said first address; and
in response to said second read command, if said first address to be read and said address to be written are different addresses, fetching data from said memory at an address that follows said second address specified in said second read command, and otherwise refraining from said fetching.
2 Assignments
0 Petitions
Accused Products
Abstract
A read buffering system employs FIFOs to hold sequential read data for a number of data streams being fetched by a computer. When the system sees a read command from the CPU, it stores an incremented value of the address of the read command in a history buffer and marks the entry as valid. The system detects a stream when a subsequent read command specifies an address that matches the address value stored in the history buffer. Upon detecting a stream, the system fetches data from DRAMs at addresses that follow the address of the subsequent read command, and stores it in a FIFO. However, to reduce unnecessary prefetching, the system looks for a read X, write X, read X+1 (where X and X+1 designate addresses) succession of commands so as to prevent them from creating a stream. This succession occurs often and qualifies as a stream, but is seldom followed by other reads that maintain the stream. The system checks for this succession by comparing an incremented value of the address of the write command with each valid address value stored in the history buffer. A match causes the system to invalidate the history buffer entry containing the matched address value. This effectively disables the use of this address value for detecting a stream upon subsequent read commands and, consequently, for prefetching data from memory.
92 Citations
3 Claims
-
1. A method of fetching data from a memory, comprising the steps of:
-
receiving a first read command specifying a first address of said memory to be read; receiving a subsequent write command specifying an address of said memory to be written; receiving a second read command, subsequent to said write command, specifying a second address of said memory to be read, said second address sequentially following said first address; and in response to said second read command, if said first address to be read and said address to be written are different addresses, fetching data from said memory at an address that follows said second address specified in said second read command, and otherwise refraining from said fetching. - View Dependent Claims (2, 3)
-
Specification