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

Pointer based DMA controller

Assignee: Industrial Technology Research Institute
•
Filing: 1989-10-30
•
Granted: 1991-10-08
•
Expires: 2009-10-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An apparatus and method for controlling direct memory access to the buffer memory located between the host system and the disk drive is disclosed. The direct memory access controller comprises a plurality of pointing means indicating buffer memory addresses accessed by the host and the disk. Based on these pointers, a port state solver and a transfer control device of the direct memory access controller can transfer byte data between the host and the buffer memory and sector data between the buffer memory and the disk device in accordance with a scheme of changing contents of the pointing means and reversing the host and the disk access activation signals with reference to relationship between associated pointers, and the size of error correction processed data. The direct memory access controller thus can efficiently transfer data without the intervention from the host with minimum hardware requirement.

Inventors

  • 👤 Po C. Huang

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-26 14:50
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/20; G06F13/28

Claims Analysis

Total Claims: 13
Claim 1
Independent Claim 409 words
A direct memory access controller for controlling access of a host and a disk device to a buffer memory, wherein data transfer through said buffer memory between said host and disk device is controlled by first and second signals, respectively, during separate disk read and write cycles, whenever data are transferred between the host and the disk device and processed by an error correction device, said first and second signals each being in a respective one of at least two states, said direct memory access controller comprising: (A) pointer means for providing: (1) an access address HP of the host to the buffer memory, said access address HP defining an address in said buffer memory at which a data transfer with said host is made, (2) an access address DP of the disk device to the buffer memory, said access address DP defining an address in said buffer memory at which a data transfer with said disk device is made, (3) an address CP offset by a predetermined amount from said address HP, said address CP being an address in said buffer memory which differs from said access address HP by said predetermined amount, (4) an address GP in said buffer memory of a data block of a predetermined size processed by said error correction device, said address GP defining an address in said buffer memory at which said data block processed by said error correction device is stored; (B) comparing means coupled to said pointer means for comparing HP with GP and for comparing DP with CP; (C) port state solver means responsive to said comparing means for changing the states of said first and second signals whenever HP and GP are equal and whenever DP and CP are equal, respectively; and (D) cycle and direction control means for: (1) incrementing by said predetermined amount said address GP in said pointer means whenever said error correction device processes one data block of said predetermined size, (2) incrementing said addresses HP and DP in said pointer means by a size corresponding to one data unit whenever a data unit is transferred between said buffer memory and one of said host and disk device, respectively, and (3) starting data transfer if currently stopped or stopping data transfer if currently on-going between said buffer memory and one of said host and disk device in response to a change in the state of a respective one of said first and second signals.
Claim 2
Dependent Claim 409 words
A direct memory access controller for controlling access of a host and a disk device to a buffer memory, wherein data transfer through said buffer memory between said host and disk device is controlled by first and second signals, respectively, during separate disk read and write cycles, whenever data are transferred between the host and the disk device and processed by an error correction device, said first and second signals each being in a respective one of at least two states, said direct memory access controller comprising: (A) pointer means for providing: (1) an access address HP of the host to the buffer memory, said access address HP defining an address in said buffer memory at which a data transfer with said host is made, (2) an access address DP of the disk device to the buffer memory, said access address DP defining an address in said buffer memory at which a data transfer with said disk device is made, (3) an address CP offset by a predetermined amount from said address HP, said address CP being an address in said buffer memory which differs from said access address HP by said predetermined amount, (4) an address GP in said buffer memory of a data block of a predetermined size processed by said error correction device, said address GP defining an address in said buffer memory at which said data block processed by said error correction device is stored; (B) comparing means coupled to said pointer means for comparing HP with GP and for comparing DP with CP; (C) port state solver means responsive to said comparing means for changing the states of said first and second signals whenever HP and GP are equal and whenever DP and CP are equal, respectively; and (D) cycle and direction control means for: (1) incrementing by said predetermined amount said address GP in said pointer means whenever said error correction device processes one data block of said predetermined size, (2) incrementing said addresses HP and DP in said pointer means by a size corresponding to one data unit whenever a data unit is transferred between said buffer memory and one of said host and disk device, respectively, and (3) starting data transfer if currently stopped or stopping data transfer if currently on-going between said buffer memory and one of said host and disk device in response to a change in the state of a respective one of said first and second signals.
Claim 3
Dependent Claim 48 words
A direct memory controller as set forth in claim 1, wherein said disk service is characterized by plural sectors of data and said size of said data block equals the size of one sector, and the address CP is 1 disk sector size less than the address HP.
Claim 4
Dependent Claim 32 words
A direct memory controller as set forth in claim 1, wherein said error correction device processes said data block during said read and write cycles by correcting errors in said data block.
Claim 5
Dependent Claim 52 words
A direct memory controller as set forth in claim 3, wherein said local processor initializes by setting HP=GP=DP, setting CP=HP-sector size+1, setting said first and second signals to inactive and active states, respectively, during the host read disk cycle, and to active and inactive states, respectively, during the host write disk cycle.
Claim 6
Dependent Claim 29 words
A direct memory controller as set forth in claim 1, further comprising a local processor for initializing the pointer means and the states of said first and second signals.
Claim 7
Dependent Claim 58 words
A direct memory controller as set forth in claim 4, wherein the inactive state of said first signal enables the host to transfer 1 byte of data to or from the buffer memory and wherein the active state of said second signal enables the buffer memory to transfer 1 sector of data to or from the disk device.
Claim 8
Dependent Claim 30 words
A direct memory access controller set forth in claim 1, wherein the size of buffer memory is equal to the size of a plurality of sectors of the disk device.
Claim 9
Independent Claim 369 words
A method of controlling the access of a host and disk device to a buffer memory, wherein data transfer through said buffer memory between said host and disk device is controlled by first and second signals, respectively, during separate disk read and write cycles, whenever data are transferred between the host and the disk device and processed by an error correction device, said first and second signals each being in a respective one of at least two states, said method comprising: (A) providing in individual pointer registers: (1) an access address HP of the host to the buffer memory, said access address HP defining an address in said buffer memory at which a data transfer with said host is made, (2) an access address DP of the disk device to the buffer memory, said access address DP defining an address in said buffer memory at which a data transfer with said disk device is made, (3) an address CP offset by a predetermined amount from said address HP, said address CP being an address in said buffer memory which differs from said access address HP by said predetermined amount, (4) an address GP in said buffer memory of a data block of a predetermined size processed by said error correction device, said address GP defining an address in said buffer memory at which said data block processed by said error correction device is stored; (B) comparing HP with GP and comparing DP with CP; (C) changing the states of said first and second signals whenever HP and GP are equal and whenever DP and CP are equal, respectively, as determined in said comparing step; (D) incrementing by said predetermined amount said address GP whenever said error correction device processes one data block of said predetermined size; (E) incrementing said addresses HP and DP by a size corresponding to one data unit whenever a data unit is transferred between said buffer memory and one of said host and disk device, respectively; and (F) starting data transfer if currently stopped or stopping data transfer if currently on-going between said buffer memory and one of said host and disk device whenever a respective one of said first and second signals changes state.
Claim 10
Independent Claim 369 words
A method of controlling the access of a host and disk device to a buffer memory, wherein data transfer through said buffer memory between said host and disk device is controlled by first and second signals, respectively, during separate disk read and write cycles, whenever data are transferred between the host and the disk device and processed by an error correction device, said first and second signals each being in a respective one of at least two states, said method comprising: (A) providing in individual pointer registers: (1) an access address HP of the host to the buffer memory, said access address HP defining an address in said buffer memory at which a data transfer with said host is made, (2) an access address DP of the disk device to the buffer memory, said access address DP defining an address in said buffer memory at which a data transfer with said disk device is made, (3) an address CP offset by a predetermined amount from said address HP, said address CP being an address in said buffer memory which differs from said access address HP by said predetermined amount, (4) an address GP in said buffer memory of a data block of a predetermined size processed by said error correction device, said address GP defining an address in said buffer memory at which said data block processed by said error correction device is stored; (B) comparing HP with GP and comparing DP with CP; (C) changing the states of said first and second signals whenever HP and GP are equal and whenever DP and CP are equal, respectively, as determined in said comparing step; (D) incrementing by said predetermined amount said address GP whenever said error correction device processes one data block of said predetermined size; (E) incrementing said addresses HP and DP by a size corresponding to one data unit whenever a data unit is transferred between said buffer memory and one of said host and disk device, respectively; and (F) starting data transfer if currently stopped or stopping data transfer if currently on-going between said buffer memory and one of said host and disk device whenever a respective one of said first and second signals changes state.
Claim 11
Dependent Claim 70 words
A method for controlling a direct memory access set forth in claim 8, further comprising an initial step of: (A) setting said first and second signals to an active state, setting HP=GP=DP and setting CP=HP-disk sector size+1 prior to a host read disk cycle; and (B) setting said first and second signals to an inactive state, setting HP=GP=DP, and setting CP=HP-disk sector size+1 prior to a host write disk cycle.
Claim 12
Dependent Claim 76 words
A method for controlling a direct memory access set forth in claim 8, wherein the step of transferring data between the host and the buffer memory comprises: (A) incrementing HP by 1 after one data byte transfer; (B) setting said first signal to an active state when HP is equal to the GP; (C) setting said second signal to an active state when CP is equal to DP; and (D) incrementing CP by 1 data byte.
Claim 13
Dependent Claim 86 words
A method for controlling a direct memory access set forth in claim 8, wherein the step of transferring sector data between the buffer memory and the disk device comprises: (A) incrementing DP by 1 after one data byte has been transferred to or from said buffer memory; (B) setting said second signal to an inactive state when CP is equal to DP; and (C) setting GP equal to DP when one block of data in the buffer memory has been processed by said error correction device.

References Cited (Backward Citations)

US4258418A Cited
US4240142A Cited
US4371932A Cited
US4423482A Cited
US4543627A Cited
US4797851A Cited
US4612636A Cited
US4949301A Cited
US4792898A Cited
US4864543A Cited
JPH01161950A Cited
JPH01288947A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1994-10-07 1995-04-08 1995-10-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1998-10-07 1999-04-08 1999-10-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2002-10-07 2003-04-08 2003-10-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag