Patent US4805098A successfully refreshed from Google Patents.
US4805098A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Write buffer
Assignee: MIPS Tech LLC
•
Filing: 1986-05-05
•
Granted: 1989-02-14
•
Expires: 2006-05-05
Abstract
Abstract Apparatus is disclosed for buffering writes from a CPU to main memory, in which sequential write requests to the same address are gathered and combined into a single write request. The embodiment described does not permit gathering with the write request in the buffer which is next scheduled for action by the main memory bus controller, nor does it permit gathering with other than the immediately preceding write request. The invention is implemented using a plurality of buffer ranks, each comprising a data rank, an address rank, and a valid rank for indicating which bits or bytes of the data rank contain data to be written to memory.
Inventors
- 👤 Marvin A. Mills, Jr.
- 👤 Lester M. Crudele
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-31 15:48
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/16; G06F13/1605; G06F13/161; G06F13/1626; G06F13/1631
Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
230 words
Apparatus for buffering write requests to an output device, each write request having associated therewith data and an address, comprising: a first buffer rank; a second buffer rank different from the first buffer rank; means for writing a first one of the write requests into the first buffer rank; means for writing a second one of the write requests into the first buffer rank if the first buffer rank is empty; means for writing the second one of the write requests into the second buffer rank if the first buffer rank is non-empty and the address associated with the first one of the write requests does not match the address associated with the second one of the write requests; and means for gathering the second one of the write requests with the first one of the write requests in the first buffer rank if the address associated with the second one of the write requests matches the address associated with the first one of the write requests and the first buffer rank is non-empty, wherein the means for gathering the second one of the write requests with the first one of the write requests in the first buffer rank comprises means for writing into the first buffer rank only those bits of the data associated with the second write request which are intended to be written to the output device.
Claim 2
Dependent Claim
230 words
Apparatus for buffering write requests to an output device, each write request having associated therewith data and an address, comprising: a first buffer rank; a second buffer rank different from the first buffer rank; means for writing a first one of the write requests into the first buffer rank; means for writing a second one of the write requests into the first buffer rank if the first buffer rank is empty; means for writing the second one of the write requests into the second buffer rank if the first buffer rank is non-empty and the address associated with the first one of the write requests does not match the address associated with the second one of the write requests; and means for gathering the second one of the write requests with the first one of the write requests in the first buffer rank if the address associated with the second one of the write requests matches the address associated with the first one of the write requests and the first buffer rank is non-empty, wherein the means for gathering the second one of the write requests with the first one of the write requests in the first buffer rank comprises means for writing into the first buffer rank only those bits of the data associated with the second write request which are intended to be written to the output device.
Claim 3
Dependent Claim
261 words
Apparatus for buffering write requests to an output device, each write request having associated therewith a data word, a word address, and a valid signal for pointing to those bits of the data word which are to be written to the output device, comprising: a plurality of buffer ranks, each buffer rank comprising a data register for holding a data word, an address register for holding the word address to which data from the data word is to be written, and a valid register for pointing to the bits of the data register which are to be written, the buffer rank being considered empty if the valid register points to none of the bits of the data register and non-empty if the valid register points to at least one of the bits of the data register; means for writing the word address of a first incoming write request into the address register of a first input one of the buffer ranks; means for writing into the data register of the first input one of the buffer ranks only those bits of the data word of the first incoming write request which are pointed to by the valid signal of the first incoming write request; and means for altering the contents of the valid register of the first input one of the buffer ranks so as to point to the bits pointed to by the valid signal of the first incoming write request as well as the bits pointed to by the valid register immediately before activation of the means for altering.
Claim 4
Dependent Claim
261 words
Apparatus for buffering write requests to an output device, each write request having associated therewith a data word, a word address, and a valid signal for pointing to those bits of the data word which are to be written to the output device, comprising: a plurality of buffer ranks, each buffer rank comprising a data register for holding a data word, an address register for holding the word address to which data from the data word is to be written, and a valid register for pointing to the bits of the data register which are to be written, the buffer rank being considered empty if the valid register points to none of the bits of the data register and non-empty if the valid register points to at least one of the bits of the data register; means for writing the word address of a first incoming write request into the address register of a first input one of the buffer ranks; means for writing into the data register of the first input one of the buffer ranks only those bits of the data word of the first incoming write request which are pointed to by the valid signal of the first incoming write request; and means for altering the contents of the valid register of the first input one of the buffer ranks so as to point to the bits pointed to by the valid signal of the first incoming write request as well as the bits pointed to by the valid register immediately before activation of the means for altering.
Claim 5
Dependent Claim
119 words
Apparatus according to claim 2, further comprising: means for emptying an output one of the buffer ranks and altering the valid register of the output one of the buffer ranks so as to point to none of the bits of the data register of the output one of the buffer ranks; wherein the first input one of the buffer ranks is chosen to be a non-empty buffer rank the address register of which holds a word address which matches the word address of the first incoming write request, or, if the address register of none of the non-empty buffer ranks holds a word address which matches the word address of the first incoming write request, an empty buffer rank.
Claim 6
Dependent Claim
137 words
Apparatus according to claim 2, further comprising: means for emptying an output one of the buffer ranks and altering the valid register of the output one of the buffer ranks so as to point to none of the bits of the data register of the output one of the buffer ranks; wherein the first input one of the buffer ranks is chosen to be a non-empty buffer rank different from the output one of the buffer ranks, the address register of which holds a word address which matches the word address of the first incoming write request, or, if the address register of none of the non-empty buffer ranks different from the output one of the buffer ranks holds a word address which matches the word address of the first incoming write request, an empty buffer rank.
Claim 7
Dependent Claim
292 words
Apparatus according to claim 2 further comprising: means for emptying an output one of the buffer ranks and altering the valid register of the output one of the buffer ranks so as to point to none of the bits of the data register of the output one of the buffer ranks; means for writing the word address of a second incoming write request into the address register of a second input one of the buffer ranks, the second incoming write request following the first incoming write request without any intervening write requests; means for writing into the data register of the second input one of the buffer ranks only those bits of the data word of the second incoming write request which are pointed to by the valid signal of the second incoming write request; and means for altering the contents of the valid register of the second input one of the buffer ranks so as to point to the bits pointed to by the valid signal of the second incoming write request as well as the bits pointed to by the valid register of the second input one of the buffer ranks immediately before activation of the means for altering; wherein the second input one of the buffer ranks is chosen to be the first input one of the buffer ranks if the word address of the second incoming write request matches the word address of the first incoming write request and the first input one of the buffer ranks is non-empty, or, if the word address of the second incoming write request does not match the word address of the first incoming write request, or if the first input one of the buffer ranks is empty, an empty buffer rank.
Claim 8
Dependent Claim
318 words
Apparatus for buffering write requests to an output device, each write request comprising a data word, a destination address and a valid signal indicating which bits of the destination address of such write request are to receive data form the data word of such write request, comprising: a buffer capable of storing at least two write requests; means for removing write requests from the buffer; means for gathering an incoming write request with a previous write request in the buffer, which previous write request has not been removed and the destination address for which previous write request matches the destination address of the incoming write request, wherein the means for gathering an incoming write request with a previous write request in the buffer, which write request has not been removed, comprises means for generating a resulting write request in which: (a) those bits of the destination address of the resulting write request which, according to the valid signal of the incoming write request, are to received data from the data word of the incoming write request, are indicated by the resulting write request to received data from the data word of the incoming write request; and (b) those bits of the destination address of the resulting write request which, according to the valid signal of the previous write request, are to receive data from the data word of the previous write request, and which, according to the valid signal of the incoming write request, are not also to receive data from the data word of the incoming write request, are indicated by the resulting write request to receive data from the data word of the previous write request; and means for storing the incoming write request in the buffer if the destination address of the incoming write request does not match the destination address of any write request in the buffer, which write request has not been removed.
Claim 9
Dependent Claim
318 words
Apparatus for buffering write requests to an output device, each write request comprising a data word, a destination address and a valid signal indicating which bits of the destination address of such write request are to receive data form the data word of such write request, comprising: a buffer capable of storing at least two write requests; means for removing write requests from the buffer; means for gathering an incoming write request with a previous write request in the buffer, which previous write request has not been removed and the destination address for which previous write request matches the destination address of the incoming write request, wherein the means for gathering an incoming write request with a previous write request in the buffer, which write request has not been removed, comprises means for generating a resulting write request in which: (a) those bits of the destination address of the resulting write request which, according to the valid signal of the incoming write request, are to received data from the data word of the incoming write request, are indicated by the resulting write request to received data from the data word of the incoming write request; and (b) those bits of the destination address of the resulting write request which, according to the valid signal of the previous write request, are to receive data from the data word of the previous write request, and which, according to the valid signal of the incoming write request, are not also to receive data from the data word of the incoming write request, are indicated by the resulting write request to receive data from the data word of the previous write request; and means for storing the incoming write request in the buffer if the destination address of the incoming write request does not match the destination address of any write request in the buffer, which write request has not been removed.
Claim 10
Dependent Claim
24 words
Apparatus according to claim 6, wherein the means for gathering further comprises means for overwriting the previous write request with the resulting write request.
Claim 11
Dependent Claim
163 words
Apparatus for buffering write requests to an output device, each write request comprising a data word including several data bytes and a destination address, comprising: a buffer capable of storing at least two write requests; means for removing write requests from the buffer, including means for pointing to the next write request to be removed from the buffer; means for gathering a incoming write request with a previous write request in the buffer, which previous write request has not been removed, is not pointed to by the means for pointing, and the destination address of which previous write request matches the destination address of the incoming write request by overlapping bytes of the incoming write request with bytes of the previous write request; and means for storing the incoming write request in the buffer if the destination address of the incoming write request does not match the destination address of any write request in the buffer, which write request has not been removed.
Claim 12
Dependent Claim
163 words
Apparatus for buffering write requests to an output device, each write request comprising a data word including several data bytes and a destination address, comprising: a buffer capable of storing at least two write requests; means for removing write requests from the buffer, including means for pointing to the next write request to be removed from the buffer; means for gathering a incoming write request with a previous write request in the buffer, which previous write request has not been removed, is not pointed to by the means for pointing, and the destination address of which previous write request matches the destination address of the incoming write request by overlapping bytes of the incoming write request with bytes of the previous write request; and means for storing the incoming write request in the buffer if the destination address of the incoming write request does not match the destination address of any write request in the buffer, which write request has not been removed.
Claim 13
Dependent Claim
140 words
Apparatus for buffering write requests to an output device, each write request comprising a data word including several bytes and a destination address, comprising: a buffer capable of storing at least two write requests; means for removing write requests from the buffer; means for gathering an incoming write request with a preceding write request if such immediately preceding write request has not been removed and the destination address of such immediately preceding write request matches the destination address of the incoming write request by overwriting bytes of the preceding write request with bytes of the incoming write request; and means for storing the incoming write request in the buffer if the destination address of the incoming write request does not match the destination address of the immediately preceding write request or if such immediately preceding write request has been removed.
Claim 14
Dependent Claim
140 words
Apparatus for buffering write requests to an output device, each write request comprising a data word including several bytes and a destination address, comprising: a buffer capable of storing at least two write requests; means for removing write requests from the buffer; means for gathering an incoming write request with a preceding write request if such immediately preceding write request has not been removed and the destination address of such immediately preceding write request matches the destination address of the incoming write request by overwriting bytes of the preceding write request with bytes of the incoming write request; and means for storing the incoming write request in the buffer if the destination address of the incoming write request does not match the destination address of the immediately preceding write request or if such immediately preceding write request has been removed.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1992-02-14 | 1992-08-15 | 1993-02-14 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 1996-02-14 | 1996-08-15 | 1997-02-14 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2000-02-14 | 2000-08-15 | 2001-02-14 | $7700.00 | Window Closed / Lapsed |