Nova Patents
EP0244540A2

Write request buffering apparatus.

Abstract

Apparatus (10) for buffering writes from a CPU (12) to main memory (22), in which sequential write requests to the same address are gathered and combined in a buffer into a single write request. The arrangement described does not permit gathering with the write request in the buffer which is next scheduled for action by the main memory bus controller (20), nor does it permit gathering with other than the immediately preceding write request. The technique 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.

EP0244540A2, drawing sheet 1
Sheet 1 of 4

Term

Term ended

Projected expiry passed 22 December 2006, 19.8 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

11 claims: 5 independent, 6 dependent

  1. 1
    Apparatus for buffering write requests to an output device, each write request having associated therewith data and an address, the apparatus (10) comprising:a first buffer rank (70a,80a);a second buffer rank (70b,80b) different from the first buffer rank (70a,80a);means (72a,82a) for writing a first one of the write requests into the first buffer rank (70a,80a);means (74,84) for emptying write requests from the buffer ranks (70a,80a,70b,80b);means (50a,62a,72a,82a) for writing a second one of the write requests into the first buffer rank (70a,80a) if the first buffer rank is empty;means (72b,82b,94) for writing the second one of the write requests into the second buffer rank (70b,80b) 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 (90,92,94,104) for gathering the second one of the write requests with the first one of the write requests in the first buffer rank (70a,80a) 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 (70a,80a) is non-empty.
  2. 3
    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, the apparatus (10) comprising:a plurality of buffer ranks, each buffer rank comprising a data register (70) for holding a data word, an address register (80) for holding the word address to which data from the data word is to be written, and a valid register (50) for pointing to the bits of the data register (70) which are to be written, the buffer rank being considered empty if the valid register (50) points to none of the bits of the data register (70) and non-empty if the valid register (50) points to at least one of the bits of the data register (70);means (82) for writing the word address of a first incoming write request into the address register (80) of a first input one of the buffer ranks;means (72) for writing into the data register (70) 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 (52) for altering the contents of the valid register (50) 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 (50) immediately before activation of the altering means (52).
  3. 7
    Apparatus for buffering write request to an output device, each write request comprising a data word and a destination address, the apparatus (10) comprising;a buffer (70,80) capable of storing at least two write requests;means (74,84) for removing write requests from the buffer (70,80);means (90,92,94,104) for gathering an incoming write request with a previous write request in the buffer (70,80), which previous write request has not been removed and the destination address of which previous write request matches the destination address of the incoming write request;and means (72,82) for storing the incoming write request in the buffer (70,80) 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 be removed.
  4. 10
    Apparatus for buffering write requests to an output device, each write request comprising a data word and a destination address, the apparatus (10) comprising:a buffer (70,80) capable of storing at least two write requests;means (74,84) for removing write requests from the buffer (70,80), including means (50) for pointing to the next write request to be removed from the buffer (70,80);means (90,92,94,104) for gathering an incoming write request with a previous write request in the buffer (70,80), which previous write request has not been removed, is not pointed to by the pointing means (50), and the destination address of which previous write request matches the destination address of the incoming write request;and means (72,82) for storing the incoming write request in the buffer (70,80) if the destination address of the incoming write request does not match the destination address of any write request in the buffer (70,80), which write request has not been removed.
  5. 11
    Apparatus for buffering write requests to an output device, each write request comprising a data word and a destination address, the apparatus (10) comprising:a buffer (70,80) capable of storing at least two write requests;means (74,84) for removing write requests from the buffer (70,80);means (90,92,94,104) for gathering an incoming write request with an immediately 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;and means (72,82) for storing the incoming write request in the buffer (70,80) 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.