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

Method and apparatus for performing cache snoop testing using DMA cycles in a computer system

Assignee: Dell USA LP
•
Filing: 1994-06-09
•
Granted: 1996-06-04
•
Expires: 2014-06-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for performing cache snoop testing on personal computers using software to initiate DMA cycles. The computer system includes an extended capabilities parallel port (ECP), which includes a 16 bit first-in first-out buffer (FIFO) that can be accessed in a test mode where software can manually write and read the FIFO. This FIFO in the ECP parallel port is used according to the present invention to implement cache snoop testing diagnostics on personal computers. In the preferred embodiment, various hardware subsystems such as system memory, the ECP port, and the DMA controller are tested first to ensure that, if a failure occurs during cache testing, the system can differentiate between cache snoop failures and other subsystem failures. Cache snoop testing according to the present invention uses the capability provided by the ECP parallel port to generate DMA cycles which transfer data from the ECP FIFO buffer into the system memory via software. Various algorithms can be used to perform cache snoop testing depending upon the cache architecture, i.e., write-through versus write-back and whether the cache system includes only first or both first and second level cache systems. Therefore, cache snoop testing can be performed reliably in software without the need for expensive custom test hardware.

Inventors

  • 👤 Rick Finch
  • 👤 Jeff Savage

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 14:17
CPC Classifications
G; G11; G11C; G11C29/00; G11C29/04; G11C29/08; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0831; G06F12/0835; G06F2212/00; G06F2212/10; G06F2212/1032

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 159 words
A method of performing cache snoop testing in a computer system, the computer system comprising a CPU, system memory coupled to the CPU, a cache system coupled between the CPU and the system memory, a direct memory access controller coupled to the system memory and to the CPU, and a buffer coupled to the direct memory access controller, the system memory and the CPU, the method comprising the steps of: loading cache lines of the cache system with data values corresponding to a system memory range; writing a data pattern to the buffer; transferring, under control of the direct memory access controller, said data pattern from the buffer to the system memory in said system memory range; and reading said system memory range to test whether a cache snoop occurred properly, said cache snoop occurring properly when the cache lines in the cache system corresponding to said system memory range to which the data pattern is transferred are invalidated.
Claim 2
Independent Claim 159 words
A method of performing cache snoop testing in a computer system, the computer system comprising a CPU, system memory coupled to the CPU, a cache system coupled between the CPU and the system memory, a direct memory access controller coupled to the system memory and to the CPU, and a buffer coupled to the direct memory access controller, the system memory and the CPU, the method comprising the steps of: loading cache lines of the cache system with data values corresponding to a system memory range; writing a data pattern to the buffer; transferring, under control of the direct memory access controller, said data pattern from the buffer to the system memory in said system memory range; and reading said system memory range to test whether a cache snoop occurred properly, said cache snoop occurring properly when the cache lines in the cache system corresponding to said system memory range to which the data pattern is transferred are invalidated.
Claim 3
Dependent Claim 54 words
The method of claim 1, further comprising the steps of: determining if said data pattern is received by the system memory in said step of reading said system memory range; and reporting an error if said data pattern is not received by the system memory in said step of reading said system memory range.
Claim 4
Dependent Claim 101 words
The method of claim 1, further comprising the step of: writing a plurality of values to said system memory range of said system memory prior to said step of loading said cache lines of the cache system with data values; and wherein said step of loading cache lines of the cache system with data values includes reading said system memory range in the system memory, wherein reading said system memory range in the system memory causes said data values to be loaded into the cache system from said system memory and also causes tags to be loaded into the cache system.
Claim 5
Dependent Claim 33 words
The method of claim 1, wherein the transferring step further includes the step of: configuring the direct memory access controller with said system memory range as a destination for transferring the data pattern.
Claim 6
Dependent Claim 48 words
The method of claim 1, wherein the computer system further comprises an extended capabilities parallel (ECP) port, and wherein the buffer is comprised in the ECP port, the method further comprising the step of: initiating the transferring step by writing one or more bits to the ECP port.
Claim 7
Dependent Claim 14 words
The method of claim 1, wherein said cache system is a write-through cache system.
Claim 8
Dependent Claim 14 words
The method of claim 1, wherein said cache system is a write-back cache system.
Claim 9
Dependent Claim 81 words
The method of claim 7, wherein cache lines may be valid modified cache lines; and further comprising the steps of: flushing the cache system after said step of transferring and prior to said step of reading said system memory range, wherein said flushing causes valid modified cache lines in the cache memory to be written back to the system memory; and disabling the cache system after said step of flushing and prior to said step of reading said system memory range.
Claim 10
Dependent Claim 54 words
The method of claim 8, further comprising the steps of: determining if said data pattern is received by the system memory in said step of reading said system memory range; and reporting an error if said data pattern is not received by the system memory in said step of reading said system memory range.
Claim 11
Independent Claim 174 words
A method of performing cache snoop testing in a computer system comprising a CPU, system memory coupled to the CPU, a cache system coupled between the CPU and the system memory, a direct memory access controller coupled to the system memory and to the CPU, and an extended capabilities parallel port coupled to the direct memory access controller, the system memory and the CPU, wherein the extended capabilities parallel port includes a buffer, the method comprising the steps of: loading cache lines of the cache system with data values corresponding to a system memory range; writing a data pattern to the buffer in the extended capabilities parallel port; transferring under control of the direct memory access controller said data pattern from the buffer to the system memory in the system memory range; and reading said system memory range to test whether a cache snoop occurred properly, said cache snoop occurring properly when the cache lines in the cache system corresponding to the system memory range to which the data pattern is transferred are invalidated.
Claim 12
Independent Claim 174 words
A method of performing cache snoop testing in a computer system comprising a CPU, system memory coupled to the CPU, a cache system coupled between the CPU and the system memory, a direct memory access controller coupled to the system memory and to the CPU, and an extended capabilities parallel port coupled to the direct memory access controller, the system memory and the CPU, wherein the extended capabilities parallel port includes a buffer, the method comprising the steps of: loading cache lines of the cache system with data values corresponding to a system memory range; writing a data pattern to the buffer in the extended capabilities parallel port; transferring under control of the direct memory access controller said data pattern from the buffer to the system memory in the system memory range; and reading said system memory range to test whether a cache snoop occurred properly, said cache snoop occurring properly when the cache lines in the cache system corresponding to the system memory range to which the data pattern is transferred are invalidated.
Claim 13
Dependent Claim 54 words
The method of claim 10, further comprising the steps of: determining if said data pattern is received by the system memory in said step of reading said system memory range; and reporting an error if said data pattern is not received by the system memory in said step of reading said system memory range.
Claim 14
Dependent Claim 101 words
The method of claim 10, further comprising the step of: writing a plurality of values to said system memory range of said system memory prior to said step of loading said cache lines of the cache system with data values; and wherein said step of loading cache lines of the cache system with data values includes reading said system memory range in the system memory, wherein reading said system memory range in the system memory causes said data values to be loaded into the cache system from said system memory and also causes tags to be loaded into the cache system.
Claim 15
Dependent Claim 33 words
The method of claim 10, wherein the transferring step further includes the step of: configuring the direct memory access controller with said system memory range as a destination for transferring the data pattern.
Claim 16
Dependent Claim 26 words
The method of claim 10, further comprising the step of: initiating the transferring step by writing one or more bits to the extended capabilities parallel port.
Claim 17
Dependent Claim 90 words
The method of claim 10, wherein said cache system is a write-back cache system and cache lines may be valid modified cache lines; and further comprising the steps of: flushing the cache system after said step of transferring and prior to said step of reading said system memory range, wherein said flushing causes valid modified cache lines in the cache memory to be written back to the system memory; and disabling the cache system after said step of flushing and prior to said step of reading said system memory range.
Claim 18
Dependent Claim 159 words
A computer system which performs cache snoop testing, comprising: a CPU; system memory coupled to the CPU; a direct memory access controller coupled to the system memory and the CPU; an ECP parallel port coupled to the direct memory access controller, the system memory, and the CPU, wherein the ECP parallel port includes a buffer; a cache system coupled between the CPU and the system memory, the cache system performing a snoop function on data transferred from the buffer to the system memory; means for writing a data pattern to the buffer; means for initiating operation of the direct memory access controller to transfer said data pattern from said buffer to a system memory range in said system memory, the cache system invalidating cache lines corresponding to the system memory range during said transfer if the cache snoop function is operating properly; and means for reading the system memory range to determine if the cache snoop function occurred properly.
Claim 19
Dependent Claim 159 words
A computer system which performs cache snoop testing, comprising: a CPU; system memory coupled to the CPU; a direct memory access controller coupled to the system memory and the CPU; an ECP parallel port coupled to the direct memory access controller, the system memory, and the CPU, wherein the ECP parallel port includes a buffer; a cache system coupled between the CPU and the system memory, the cache system performing a snoop function on data transferred from the buffer to the system memory; means for writing a data pattern to the buffer; means for initiating operation of the direct memory access controller to transfer said data pattern from said buffer to a system memory range in said system memory, the cache system invalidating cache lines corresponding to the system memory range during said transfer if the cache snoop function is operating properly; and means for reading the system memory range to determine if the cache snoop function occurred properly.
Claim 20
Dependent Claim 38 words
The computer system of claim 16, further comprising: means for determining if said data pattern is received by the system memory; and means for reporting an error if said data pattern is not received by the system memory.
Claim 21
Dependent Claim 50 words
The computer system of claim 17, further comprising: means for writing a plurality of values to said system memory range; means for enabling the cache system; and means for loading the cache system with data values and for loading tags into the cache system after said cache system is enabled.

References Cited (Backward Citations)

US4912632A Cited
US5185879A Cited
US5159671A Cited
US5155845A Cited
US5182752A Cited
US5228134A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-06-04 1999-12-04 2000-06-04 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-06-04 2003-12-04 2004-06-04 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-06-04 2007-12-04 2008-06-04 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag