← Back to Patent Explorer
US5829042A Expired / Lapsed US ⏱️ 0.0 years remaining

Prefetch operation for network peripheral device having shared memory

Assignee: HP Inc
•
Filing: 1996-02-15
•
Granted: 1998-10-27
•
Expires: 2016-02-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A prefetch operation greatly reduces the amount of delay between the transmission of a peripheral device request and the receipt of an I/O card acknowledge for peripheral read data, for example in a network printer environment where the amount of time required to transfer print data from an I/O card to a printer is reduced which, in turn, reduces the amount of time required for the printer to process a print job. The communication protocol between a peripheral device and an I/O card is typically based on a packet data structure, which consists of a header that contains the starting address of the buffer, the data length, and maximum data length of the packet buffer fields which are used for the information transfer between the I/O card and peripheral device; and a buffer for transferring data or messages between the peripheral device and the I/O card. The prefetch operation reduces the possibility of shared memory contention by prefetching the next requested data. The next data request is predictable because the packet resides sequentially in the shared memory. The prefetch operation also reduces memory access time for a peripheral device read request when the data are available from a prefetch buffer, such that the access time for a peripheral device read request from the prefetch buffer is relatively short compared to a read request from the shared memory.

Inventors

  • 👤 Samuel C. Leung

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 22:15
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/38; G06F13/42; G06F13/4204; G06F13/4221; G06F13/4226

Claims Analysis

Total Claims: 47
Claim 1
Independent Claim 133 words
An apparatus for reducing shared memory contention at an interface between a peripheral device and a computer network, the interface implementing a data transfer protocol such that packet data is linearly transmitted via said interface to said shared memory, and the control mechanism for said packet resides in a predefined location in a shared memory, the apparatus comprising: a shared memory; a shared memory arbitrator; and a prefetch module located between said peripheral device and said shared memory arbitrator, said prefetch module prefetching the next requested data in a read operation on said packet data, said prefetch module further comprising: an access state machine for processing peripheral device shared memory requests; at least one prefetch address register; at least one prefetch buffer with at least one valid flag; and a prefetch fence register.
Claim 2
Independent Claim 133 words
An apparatus for reducing shared memory contention at an interface between a peripheral device and a computer network, the interface implementing a data transfer protocol such that packet data is linearly transmitted via said interface to said shared memory, and the control mechanism for said packet resides in a predefined location in a shared memory, the apparatus comprising: a shared memory; a shared memory arbitrator; and a prefetch module located between said peripheral device and said shared memory arbitrator, said prefetch module prefetching the next requested data in a read operation on said packet data, said prefetch module further comprising: an access state machine for processing peripheral device shared memory requests; at least one prefetch address register; at least one prefetch buffer with at least one valid flag; and a prefetch fence register.
Claim 3
Dependent Claim 19 words
The apparatus of claim 1, said shared memory further comprising: a page mode dynamic random access memory (DRAM) array.
Claim 4
Dependent Claim 29 words
The apparatus of claim 1, wherein said access state machine may use any of a byte write, byte read, and long word read mode to access said shared memory.
Claim 5
Dependent Claim 40 words
The apparatus of claim 1, wherein said access state machine requests a single byte write to said shared memory from shared memory arbitrator, and said access state machine asserts an acknowledge if said shared memory request is a write request.
Claim 6
Dependent Claim 42 words
The apparatus of claim 1, wherein said access state machine requests a single byte read from said shared memory arbitrator if said shared memory request is a read operation, and a requested shared memory address is below a prefetch address fence register.
Claim 7
Dependent Claim 57 words
The apparatus of claim 1, wherein said access state machine requests a single long word read from said shared memory arbitrator if the requested shared memory address is above a prefetch address fence register and said memory address, word aligned, does not match either a prefetch address register 0 (PAR0) or a prefetch address register 1 (PAR1).
Claim 8
Dependent Claim 36 words
The apparatus of claim 6, wherein each byte of data is stored in a bank 0 or bank 1 prefetch buffer as it is read from said shared memory during a single long word read request.
Claim 9
Dependent Claim 63 words
The apparatus of claim 7, wherein said access state machine requests a single long word read from said shared memory arbitrator if a peripheral device read request is read from a third byte of either bank 0 or bank 1 of said prefetch buffer, wherein said access state machine invalidates a bank of said prefetch buffers that does not contain peripheral request data.
Claim 10
Dependent Claim 39 words
The apparatus of claim 8, wherein said access state machine generates a starting address equal to a current peripheral address plus a next word aligned peripheral address for a single long word read request to said shared memory arbitrator.
Claim 11
Dependent Claim 25 words
The apparatus of claim 9, wherein said access state machine validates said prefetch buffer as each byte of data is read from said shared memory.
Claim 12
Dependent Claim 43 words
The apparatus of claim 6, wherein data is written directly to said shared memory, and a bank of said prefetch buffer is invalidated if a peripheral address, word aligned, matches either prefetch address register PAR0 or PAR1 during a peripheral device write request.
Claim 13
Dependent Claim 49 words
The apparatus of claim 6, wherein said prefetch address register consists of prefetch address registers PAR0 and PAR1; and wherein said access state machine writes to prefetch address registers PAR0 or PAR1 with the most significant bits of a single long word read request address during a prefetch operation.
Claim 14
Dependent Claim 30 words
The apparatus of claim 1, wherein said access state machine validates said prefetch buffer as each byte of data read from said shared memory is stored in said prefetch buffer.
Claim 15
Dependent Claim 24 words
The apparatus of claim 1, wherein said access state machine asserts an acknowledge when peripheral request data is available from a valid prefetch buffer.
Claim 16
Dependent Claim 26 words
The apparatus of claim 1, wherein a peripheral device is protected from reading stale data from an I/O mailbox by use of said prefetch fence register.
Claim 17
Dependent Claim 45 words
The apparatus of claim 1, wherein said access state machine invalidates both banks of said prefetch buffer when a peripheral device reads a least significant byte of a peripheral device mailbox packet pointer, wherein said peripheral device is protected from reading incorrect packet header data.
Claim 18
Dependent Claim 25 words
The apparatus of claim 16, wherein said peripheral device must read a peripheral device mailbox packet pointer to get a starting address of said packet.
Claim 19
Dependent Claim 25 words
The apparatus of claim 1, wherein said prefetch buffer consists of two banks of buffers that are designated as bank 0 and bank 1, respectively.
Claim 20
Dependent Claim 22 words
The apparatus of claim 18, wherein each byte of a buffer contains a flag that indicates if a data byte is valid.
Claim 21
Dependent Claim 73 words
The apparatus of claim 18, wherein a first byte of bank 0 contains data for a word aligned peripheral address (PAR0+0), a second byte of bank 0 contains data for the word aligned peripheral address plus one (PAR0+1), a third byte of bank 0 contains data for the word aligned peripheral address plus two (PAR0+2), and a fourth byte of bank 0 contains data for the word aligned peripheral address plus three (PAR0+3).
Claim 22
Dependent Claim 74 words
The apparatus of claim 18, wherein a first byte of bank 1 contains data for a a word aligned peripheral address (PAR1+0), a second byte of bank 1 contains data for the word aligned peripheral address plus one (PAR1+1), a third byte of bank 1 contains data for the word aligned peripheral address plus two (PAR1+2), and a fourth byte of bank 1 contains data for the word aligned peripheral address plus three (PAR1+3).
Claim 23
Dependent Claim 54 words
The apparatus of claim 1, said prefetch address fence register further comprising a programmable register that represents a shared memory address plus a predetermined number N at which a prefetch operation begins, whereby any peripheral device read request having a shared memory address greater than that of said prefetch address fence register is prefetched.
Claim 24
Dependent Claim 23 words
The apparatus of claim 1, wherein said prefetch address fence register is used by said access state machine to disable a prefetch operation.
Claim 25
Dependent Claim 14 words
The apparatus of claim 1, wherein said data transfer protocol is an MIO protocol.
Claim 26
Independent Claim 145 words
The method for reducing shared memory contention at an interface between a peripheral device and a computer network, wherein the interface implements a data transfer protocol such that packet data is linearly transmitted via said interface to said shared memory, and the control mechanism for said packet resides in a predefined location in a shared memory, comprising the steps of: storing data in a shared memory; and prefetching next requested data in said shared memory, wherein said prefetch operation reduces the possibility of shared memory contention and reduces memory access time for a peripheral device read operation on said shared memory, wherein said prefetching step is performed with a prefetch module comprising: an access state machine for processing peripheral device shared memory requests; at least one prefetch address register; at least one prefetch buffer with at least one valid flag; and a prefetch fence register.
Claim 27
Independent Claim 145 words
The method for reducing shared memory contention at an interface between a peripheral device and a computer network, wherein the interface implements a data transfer protocol such that packet data is linearly transmitted via said interface to said shared memory, and the control mechanism for said packet resides in a predefined location in a shared memory, comprising the steps of: storing data in a shared memory; and prefetching next requested data in said shared memory, wherein said prefetch operation reduces the possibility of shared memory contention and reduces memory access time for a peripheral device read operation on said shared memory, wherein said prefetching step is performed with a prefetch module comprising: an access state machine for processing peripheral device shared memory requests; at least one prefetch address register; at least one prefetch buffer with at least one valid flag; and a prefetch fence register.
Claim 28
Dependent Claim 26 words
The method of claim 25, further comprising the step of: accessing shared memory in any of a byte write, byte read, and long word read mode.
Claim 29
Dependent Claim 46 words
The method of claim 25, further comprising the steps of: requesting a single byte write to said shared memory from shared memory arbitrator with said access state machine; and asserting an acknowledge with said access state machine if said shared memory request is a write request.
Claim 30
Dependent Claim 47 words
The method of claim 25, further comprising the step of: requesting a single byte read from said shared memory arbitrator with said access state machine if said shared memory request is a read operation, and a requested shared memory address is below a prefetch address fence register.
Claim 31
Dependent Claim 62 words
The method of claim 25, further comprising the step of: requesting a single long word read from said shared memory arbitrator with said access state machine if the requested shared memory address is above a prefetch address fence register and said memory address, word aligned, does not match either a prefetch address register 0 (PAR0) or a prefetch address register 1 (PAR1).
Claim 32
Dependent Claim 39 words
The method of claim 25, further comprising the step of: storing each byte of data in a bank 0 or bank 1 prefetch buffer as it is read from said shared memory during a single long word read request.
Claim 33
Dependent Claim 35 words
The method of claim 25, further comprising the step of: validating said prefetch buffer with said access state machine as each byte of data read from said shared memory is stored in said prefetch buffer.
Claim 34
Dependent Claim 29 words
The method of claim 25, further comprising the step of: asserting an acknowledge with said access state machine when peripheral request data is available from a valid prefetch buffer.
Claim 35
Dependent Claim 68 words
The method of claim 25, further comprising the step of: requesting a single long word read from said shared memory arbitrator with said access state machine if a peripheral device read request is read from a third byte of either bank 0 or bank 1 of said prefetch buffer, wherein said access state machine invalidates a bank of said prefetch buffers that does not contain peripheral request data.
Claim 36
Dependent Claim 44 words
The method of claim 25, further comprising the step of: generating a starting address with said access state machine equal to a current peripheral address plus a next word aligned peripheral address for a single long word read request to said shared memory arbitrator.
Claim 37
Dependent Claim 25 words
The method of claim 25, further comprising the step of: validating said prefetch buffer as each byte of data is read from said shared memory.
Claim 38
Dependent Claim 29 words
The method of claim 25, further comprising the step of: protecting a peripheral device from reading stale data from an I/O mailbox by use of said prefetch fence register.
Claim 39
Dependent Claim 45 words
The method of claim 25, further comprising the steps of: writing data directly to said shared memory; and invalidating a bank of said prefetch buffer if a word aligned peripheral address matches either prefetch address register PAR0 or PAR1 during a peripheral device write request.
Claim 40
Dependent Claim 45 words
The method of claim 25, further comprising the step of: invalidating both banks of said prefetch buffer when a peripheral device reads a least significant byte of a peripheral device mailbox packet pointer, wherein said peripheral device is protected from reading incorrect packet header data.
Claim 41
Dependent Claim 25 words
The method of claim 25, further comprising the step of: reading a peripheral device mailbox packet pointer to get a starting address of said packet.
Claim 42
Dependent Claim 44 words
The method of claim 25, wherein said prefetch address register consists of prefetch address registers PAR0 and PAR1; and wherein said access state machine writes to said prefetch address registers PAR0 or PAR1 with a truncated word read request address during a prefetch operation.
Claim 43
Dependent Claim 25 words
The method of claim 25, wherein said prefetch buffer consists of two banks of buffers that are designated as bank 0 and blank 1, respectively.
Claim 44
Dependent Claim 55 words
The method of claim 25, wherein said prefetch address fence register further comprises a programmable register that represents a shared memory address plus a predetermined number N at which a prefetch operation begins, whereby any peripheral device read request having a shared memory address greater than that of said prefetch address fence register is prefetched.
Claim 45
Dependent Claim 23 words
The method of claim 25, wherein said prefetch address fence register is used by said access state machine to disable a prefetch operation.
Claim 46
Independent Claim 127 words
A method for reducing shared memory contention at an interface implementing a MIO data transfer protocol between a peripheral device and an I/O card device, comprising the steps of: storing data linearly in a shared memory; storing a shared memory address plus a predetermined number N at which a prefetch operation begins in a programmable register; and prefetching next requested data in said shared memory for any peripheral device read request having a shared memory address greater than that of said programmable register, wherein said prefetching step is performed with a prefetch module comprising: an access state machine for processing peripheral device shared memory requests; at least one prefetch address register; at least one prefetch buffer with at least one valid flag; and a prefetch fence register.
Claim 47
Independent Claim 127 words
A method for reducing shared memory contention at an interface implementing a MIO data transfer protocol between a peripheral device and an I/O card device, comprising the steps of: storing data linearly in a shared memory; storing a shared memory address plus a predetermined number N at which a prefetch operation begins in a programmable register; and prefetching next requested data in said shared memory for any peripheral device read request having a shared memory address greater than that of said programmable register, wherein said prefetching step is performed with a prefetch module comprising: an access state machine for processing peripheral device shared memory requests; at least one prefetch address register; at least one prefetch buffer with at least one valid flag; and a prefetch fence register.

References Cited (Backward Citations)

US4583163A Cited
US4535404A Cited
US5301279A Cited
US5101477A Cited
US5507005A Cited
US5392412A Cited
US5485584A Cited
US5412782A Cited
US5434872A Cited
US5307459A Cited
US5299313A Cited
US5546543A Cited
US5574939A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-10-26 2002-04-27 2002-10-27 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-26 2006-04-27 2006-10-27 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-26 2010-04-27 2010-10-27 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag