Patent US5918073A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5918073A Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for equalizing data buffer storage and fetch rates of peripheral devices

Assignee: Hanger Solutions LLC
•
Filing: 1997-06-27
•
Granted: 1999-06-29
•
Expires: 2017-06-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method are presented for equalizing data buffer storage and fetch rates of peripheral devices. A computer system of the present invention includes a central processing unit (CPU), first and second peripheral devices, and a data buffer. The first peripheral device stores data within the data buffer, and the second peripheral device fetches data from the data buffer. A fraction of the data buffer contains unread data (i.e. data stored within the data buffer by the first peripheral device and not yet fetched by the second peripheral device). The first peripheral device includes a reload register, the contents of which determines the rate at which the first peripheral device stores data within the data buffer. The CPU produces a reload value, which is stored within the reload register, such that the rate at which the first peripheral device stores the data within the data buffer is made substantially equal to the rate at which the second peripheral device fetches the data from the data buffer. The data buffer is preferably operated a first-in-first-out manner, and includes a write pointer and a read pointer. The CPU preferably produces the reload value such that approximately half the memory locations within the data buffer contain unread data at any given time.

Inventors

  • 👤 Larry D. Hewitt

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 10:26
CPC Classifications
G; G06; G06F; G06F5/00; G06F5/06; G06F5/10; G06F3/00; G06F3/06; G06F3/0601; G06F3/0602; G06F3/061; G06F3/0628; G06F3/0655; G06F3/0656; G06F3/0668; G06F3/0671; G06F3/0673; G06F3/0674; G06F3/16

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 267 words
A computer system, comprising: a data buffer configured to store data, wherein a fraction of the data buffer contains unread data; a central processing unit (CPU) operably coupled to the data buffer and configured to determine the fraction of the data buffer containing unread data and to produce a reload value in response to the fraction; a first peripheral device operably coupled to the data buffer and to the CPU, wherein the first peripheral device is configured to produce a plurality of data prior to storing the plurality of data within the data buffer, and wherein the first peripheral device comprises a reload register, and wherein the rate at which the first peripheral device stores the data within the data buffer is dependent upon the contents of the reload register, and wherein the first peripheral device is configured to receive the reload value and to store the reload value within the reload register; a second peripheral device operably coupled to the data buffer, wherein the second peripheral device is configured to fetch the data from the data buffer; wherein the data buffer includes a read and write pointers, and wherein the write pointer is the address of the next available memory location within the data buffer for storing data, and wherein the read pointer is the address of the next memory location containing unread data within the data buffer; and wherein the CPU modifies the write pointer to account for a portion of the plurality of data produced by the first peripheral device and not yet stored within the data buffer, thereby producing an adjusted write pointer.
Claim 2
Dependent Claim 267 words
A computer system, comprising: a data buffer configured to store data, wherein a fraction of the data buffer contains unread data; a central processing unit (CPU) operably coupled to the data buffer and configured to determine the fraction of the data buffer containing unread data and to produce a reload value in response to the fraction; a first peripheral device operably coupled to the data buffer and to the CPU, wherein the first peripheral device is configured to produce a plurality of data prior to storing the plurality of data within the data buffer, and wherein the first peripheral device comprises a reload register, and wherein the rate at which the first peripheral device stores the data within the data buffer is dependent upon the contents of the reload register, and wherein the first peripheral device is configured to receive the reload value and to store the reload value within the reload register; a second peripheral device operably coupled to the data buffer, wherein the second peripheral device is configured to fetch the data from the data buffer; wherein the data buffer includes a read and write pointers, and wherein the write pointer is the address of the next available memory location within the data buffer for storing data, and wherein the read pointer is the address of the next memory location containing unread data within the data buffer; and wherein the CPU modifies the write pointer to account for a portion of the plurality of data produced by the first peripheral device and not yet stored within the data buffer, thereby producing an adjusted write pointer.
Claim 3
Dependent Claim 51 words
The computer system as recited in claim 1, wherein the CPU produces the reload value such that the rate at which the first peripheral device stores the data within the data buffer is substantially equal to the rate at which the second peripheral device fetches the data from the data buffer.
Claim 4
Dependent Claim 33 words
The computer system as recited in claim 1, wherein the fraction of the data buffer containing unread data is the number of memory locations between the adjusted write pointer and the read pointer.
Claim 5
Dependent Claim 24 words
The computer system as recited in claim 1, wherein the data buffer comprises a portion of a system memory operably coupled to the CPU.
Claim 6
Dependent Claim 33 words
The computer system as recited in claim 1, wherein the first peripheral device is an audio signal processor, and wherein the second peripheral device is an audio device configured to drive a speaker.
Claim 7
Dependent Claim 289 words
A computer system, comprising: a system memory configured to store data and comprising a data buffer, wherein a fraction of the data buffer contains unread data; an expansion bus adapted for coupling to one or more peripheral devices; a bus bridge coupled between the system memory and the expansion bus; a central processing unit (CPU) coupled to the bus bridge and configured to determine the fraction of the data buffer containing unread data and to produce a reload value in response to the fraction; a first peripheral device coupled to the expansion bus, wherein the first peripheral device is configured to produce a plurality of data prior to storing the plurality of data within the data buffer, and wherein the first peripheral device comprises a reload register, and wherein the rate at which the first peripheral device stores the data within the data buffer is dependent upon the contents of the reload register, and wherein the first peripheral device is configured to receive the reload value and to store the reload value within the reload register; a second peripheral device coupled to the bus bridge, wherein the second peripheral device is configured to fetch the data from the data buffer; wherein the data buffer includes a read and write pointers, and wherein the write pointer is the address of the next available memory location within the data buffer for storing data, and wherein the read pointer is the address of the next memory location containing unread data within the data buffer; and wherein the CPU modifies the write pointer to account for a portion of the plurality of data produced by the first peripheral device and not yet stored within the data buffer, thereby producing an adjusted write pointer.
Claim 8
Dependent Claim 289 words
A computer system, comprising: a system memory configured to store data and comprising a data buffer, wherein a fraction of the data buffer contains unread data; an expansion bus adapted for coupling to one or more peripheral devices; a bus bridge coupled between the system memory and the expansion bus; a central processing unit (CPU) coupled to the bus bridge and configured to determine the fraction of the data buffer containing unread data and to produce a reload value in response to the fraction; a first peripheral device coupled to the expansion bus, wherein the first peripheral device is configured to produce a plurality of data prior to storing the plurality of data within the data buffer, and wherein the first peripheral device comprises a reload register, and wherein the rate at which the first peripheral device stores the data within the data buffer is dependent upon the contents of the reload register, and wherein the first peripheral device is configured to receive the reload value and to store the reload value within the reload register; a second peripheral device coupled to the bus bridge, wherein the second peripheral device is configured to fetch the data from the data buffer; wherein the data buffer includes a read and write pointers, and wherein the write pointer is the address of the next available memory location within the data buffer for storing data, and wherein the read pointer is the address of the next memory location containing unread data within the data buffer; and wherein the CPU modifies the write pointer to account for a portion of the plurality of data produced by the first peripheral device and not yet stored within the data buffer, thereby producing an adjusted write pointer.
Claim 9
Dependent Claim 51 words
The computer system as recited in claim 6, wherein the CPU produces the reload value such that the rate at which the first peripheral device stores the data within the data buffer is substantially equal to the rate at which the second peripheral device fetches the data from the data buffer.
Claim 10
Dependent Claim 33 words
The computer system as recited in claim 6, wherein the fraction of the data buffer containing unread data is the number of memory locations between the adjusted write pointer and the read pointer.
Claim 11
Dependent Claim 93 words
The computer system as recited in claim 6, wherein the data comprises audio data, and wherein the first peripheral device comprises: a divider circuit comprising the reload register, wherein the divider circuit is configured to produce a frame batch clock signal having a period dependent upon the contents of the reload register; and a signal processor coupled to receive the frame batch clock signal and configured to produce the audio data, wherein the signal processor initiates processing of a predetermined number of audio signal samples in response to the frame batch clock signal.
Claim 12
Dependent Claim 33 words
The computer system as recited in claim 6, wherein the first peripheral device is an audio signal processor, and wherein the second peripheral device is an audio device configured to drive a speaker.
Claim 13
Dependent Claim 341 words
A computer system, comprising: a system memory configured to store data and comprising a data buffer, wherein a fraction of the data buffer contains unread data; an expansion bus adapted for coupling to one or more peripheral devices; a bus bridge coupled between the system memory and the expansion bus; a central processing unit (CPU) coupled to the bus bridge and configured to determine the fraction of the data buffer containing unread data and to produce a reload value in response to the fraction; a first peripheral device coupled to the expansion bus, wherein the first peripheral device is configured to produce a plurality of audio data prior to storing the plurality of audio data within the data buffer, and wherein the first peripheral device comprises: a divider circuit comprising: a reload register; and a counter coupled to the reload register and coupled to receive a master clock signal having a predetermined period, wherein the divider circuit is configured to produce a frame batch clock signal in response to the master clock signal and having a period dependent upon the contents of the reload register; and a signal processor coupled to receive the frame batch clock signal and configured to produce the plurality of audio data, wherein the signal processor initiates processing of a predetermined number of audio signal samples in response to the frame batch clock signal; a second peripheral device coupled to the bus bridge, wherein the second peripheral device is configured to fetch the data from the data buffer; wherein the data buffer includes a read and write pointers, and wherein the write pointer is the address of the next available memory location within the data buffer for storing data, and wherein the read pointer is the address of the next memory location containing unread data within the data buffer; and wherein the CPU modifies the write pointer to account for a portion of the plurality of data produced by the first peripheral device and not yet stored within the data buffer, thereby producing an adjusted write pointer.
Claim 14
Dependent Claim 341 words
A computer system, comprising: a system memory configured to store data and comprising a data buffer, wherein a fraction of the data buffer contains unread data; an expansion bus adapted for coupling to one or more peripheral devices; a bus bridge coupled between the system memory and the expansion bus; a central processing unit (CPU) coupled to the bus bridge and configured to determine the fraction of the data buffer containing unread data and to produce a reload value in response to the fraction; a first peripheral device coupled to the expansion bus, wherein the first peripheral device is configured to produce a plurality of audio data prior to storing the plurality of audio data within the data buffer, and wherein the first peripheral device comprises: a divider circuit comprising: a reload register; and a counter coupled to the reload register and coupled to receive a master clock signal having a predetermined period, wherein the divider circuit is configured to produce a frame batch clock signal in response to the master clock signal and having a period dependent upon the contents of the reload register; and a signal processor coupled to receive the frame batch clock signal and configured to produce the plurality of audio data, wherein the signal processor initiates processing of a predetermined number of audio signal samples in response to the frame batch clock signal; a second peripheral device coupled to the bus bridge, wherein the second peripheral device is configured to fetch the data from the data buffer; wherein the data buffer includes a read and write pointers, and wherein the write pointer is the address of the next available memory location within the data buffer for storing data, and wherein the read pointer is the address of the next memory location containing unread data within the data buffer; and wherein the CPU modifies the write pointer to account for a portion of the plurality of data produced by the first peripheral device and not yet stored within the data buffer, thereby producing an adjusted write pointer.
Claim 15
Dependent Claim 30 words
The computer system as recited in claim 11, wherein the first peripheral device is configured to receive the reload value and to store the reload value within the reload register.
Claim 16
Dependent Claim 64 words
The computer system as recited in claim 11, wherein the counter produces a plurality of binary output signals representing a binary value, and wherein the binary value is decremented during each cycle of the master clock signal, and wherein when the binary values of all counter output signals are 0, the counter outputs are set to the corresponding values stored within the reload register.
Claim 17
Dependent Claim 28 words
The computer system as recited in claim 13, wherein the frame batch clock signal is the value of the most significant binary output signal produced by the counter.
Claim 18
Dependent Claim 33 words
The computer system as recited in claim 11, wherein the fraction of the data buffer containing unread data is the number of memory locations between the adjusted write pointer and the read pointer.
Claim 19
Independent Claim 178 words
A method for equalizing the rate at which a first peripheral device stores data within a data buffer and the rate at which a second peripheral device fetches the data from the data buffer, wherein the first peripheral device produces a plurality of data prior to storing the plurality of data within the data buffer, and wherein the data buffer comprises read and write pointers, the method comprising: obtaining the values of the read and write pointers; computing an adjusted write pointer, wherein the adjusted write pointer value accounts for a portion of the plurality of data produced by the first peripheral device and not yet stored within the data buffer; determining the number of memory locations between the adjusted write pointer and the read pointer; using the number of memory locations between the adjusted write pointer and the read pointer to compute a reload value delta; adding the reload value delta to a current reload value to compute a new reload value; and storing the new reload value within a reload register of the first peripheral device.
Claim 20
Independent Claim 178 words
A method for equalizing the rate at which a first peripheral device stores data within a data buffer and the rate at which a second peripheral device fetches the data from the data buffer, wherein the first peripheral device produces a plurality of data prior to storing the plurality of data within the data buffer, and wherein the data buffer comprises read and write pointers, the method comprising: obtaining the values of the read and write pointers; computing an adjusted write pointer, wherein the adjusted write pointer value accounts for a portion of the plurality of data produced by the first peripheral device and not yet stored within the data buffer; determining the number of memory locations between the adjusted write pointer and the read pointer; using the number of memory locations between the adjusted write pointer and the read pointer to compute a reload value delta; adding the reload value delta to a current reload value to compute a new reload value; and storing the new reload value within a reload register of the first peripheral device.
Claim 21
Dependent Claim 47 words
The method as recited in claim 16, wherein the write pointer is the address of the next available memory location within the data buffer for storing data, and wherein the read pointer is the address of the next memory location containing unread data within the data buffer.
Claim 22
Dependent Claim 32 words
The method as recited in claim 16, wherein the rate at which the first peripheral device stores the data within the data buffer is dependent upon the contents of the reload register.
Claim 23
Dependent Claim 45 words
The method as recited in claim 16, wherein the reload value delta is 0 when the number of memory locations between the adjusted write pointer and the read pointer is approximately equal to half of the total number of memory locations within the data buffer.
Claim 24
Dependent Claim 45 words
The method as recited in claim 16, wherein the reload value delta is positive when the number of memory locations between the adjusted write pointer and the read pointer is substantially greater than half of the total number of memory locations within the data buffer.
Claim 25
Dependent Claim 45 words
The method as recited in claim 16, wherein the reload value delta is negative when the number of memory locations between the adjusted write pointer and the read pointer is substantially less than half of the total number of memory locations within the data buffer.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-06-28 2002-12-28 2003-06-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-06-28 2006-12-28 2007-06-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-06-28 2010-12-28 2011-06-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag