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

Disk array controller for performing exclusive or operations

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1995-10-13
•
Granted: 1998-04-07
•
Expires: 2015-10-13
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Circuitry for performing hardware assisted XOR operations to generate parity bits for a disk array system. The circuitry includes a controller that acts as an interface between a PCI bus and a DRAM that includes a write-posting cache portion and an XOR buffer portion. The DRAM has a maximum data storage capacity, and the controller is allocated an address space that is twice the maximum storage capacity of the DRAM. The address space is divided into two portions, a normal address range and an XOR address range. A write to the normal address range produces a normal write cycle to the DRAM, while a write to the XOR address range generates a read-modify-write XOR cycle to the DRAM. In the read-modify-write XOR cycles, the read data are XORed with the write data. Selected data are cumulatively XORed to generate new parity information.

Inventors

  • 👤 Ryan A. Callison
  • 👤 Gary F. Chard

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 11:27
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/08; G06F11/10; G06F11/1076; G06F2211/00; G06F2211/10; G06F2211/1002; G06F2211/1054

Claims Analysis

Total Claims: 36
Claim 1
Independent Claim 187 words
A memory controller for controlling operations of a memory device, wherein the memory controller is allocated an address space having a first address range and a second address range, and wherein write commands containing addresses and data are issued to the memory controller to perform write operations to the memory device, the memory controller comprising: receiving logic for receiving a write command; mapping logic responsive to the write command address of said received write command for mapping addresses in the first address range and addresses in the second address range to a physical region in the memory device; and read-modify-write logic coupled to said receiving logic and said mapping logic for generating a read-modify-write cycle to the memory device if the received write command address is in the second address range, wherein said read-modify-write cycle reads data from the memory device address associated with the received write command address, performs an exclusive OR operation of said read data with the received write command data to generate exclusive OR data, and writes said exclusive-OR data back to the memory device address associated with the received write command address.
Claim 2
Dependent Claim 187 words
A memory controller for controlling operations of a memory device, wherein the memory controller is allocated an address space having a first address range and a second address range, and wherein write commands containing addresses and data are issued to the memory controller to perform write operations to the memory device, the memory controller comprising: receiving logic for receiving a write command; mapping logic responsive to the write command address of said received write command for mapping addresses in the first address range and addresses in the second address range to a physical region in the memory device; and read-modify-write logic coupled to said receiving logic and said mapping logic for generating a read-modify-write cycle to the memory device if the received write command address is in the second address range, wherein said read-modify-write cycle reads data from the memory device address associated with the received write command address, performs an exclusive OR operation of said read data with the received write command data to generate exclusive OR data, and writes said exclusive-OR data back to the memory device address associated with the received write command address.
Claim 3
Dependent Claim 31 words
The memory controller of claim 1, wherein addresses in the first address range and addresses in the second address range are mapped to the same physical region in the memory device.
Claim 4
Dependent Claim 67 words
The memory controller of claim 2, wherein the memory controller address space is represented by a plurality of address bits, said address bits having a first number of bits representing the physical locations in the memory device, and wherein one of said address bits other than said first number of address bits determine if an address is in the first address range or the second address range.
Claim 5
Dependent Claim 30 words
The memory controller of claim 1, wherein addresses in the first address range and addresses in the second address range are mapped to different physical regions in the memory device.
Claim 6
Dependent Claim 56 words
The memory controller of claim 1, further comprising: write logic coupled to said receiving logic and said read-modify-write logic generating a normal write cycle if the received write command address is in the first address range, wherein the received write command data is written to the memory device address associated with the received write command address.
Claim 7
Dependent Claim 54 words
The memory controller of claim 1, wherein each write command further contains a transfer length value to specify the amount of write data to be transferred, and wherein said read-modify-write logic performs read-modify-write cycles starting at the write command address until the amount of data specified by said transfer length value has been transferred.
Claim 8
Dependent Claim 50 words
The memory controller of claim 1, the memory device being used for general write operations and parity operations, wherein the memory device includes an XOR buffer to which write operations in the second address range are directed, said XOR buffer having a storage capacity that is programmable to different values.
Claim 9
Dependent Claim 261 words
A disk controller board for controlling accesses to a hard disk drive subsystem from a host computer, comprising: a bus; a hard disk controller coupled between said bus and the hard disk drive subsystem for transferring data between said bus and the hard disk drive subsystem; a memory device; a memory controller coupled between said bus and said memory device, wherein said memory controller is allocated an address space having a first address range and a second address range; and a local processor coupled to said bus, wherein at least one of said hard disk controller or said local processor issues write commands having addresses and data to said memory controller to perform write operations, wherein said memory controller includes: receiving logic coupled to said bus and receiving a write command; read-modify-write logic coupled to said bus and responsive to said write command address of said received write command for mapping addresses in said first address range and addresses in said second address range to a physical region in said memory device; and read-modify-write logic coupled to said receiving means and said mapping means for generating a read-modify-write cycle to said memory device if the received write command address is in said second address range, wherein said read-modify-write cycle reads data from said memory device address associated with the received write command address, performs an exclusive OR operation of said read data with the received write command data to generate exclusive OR data, and writes said exclusive-OR data back to said memory device address associated with the received write command address.
Claim 10
Dependent Claim 261 words
A disk controller board for controlling accesses to a hard disk drive subsystem from a host computer, comprising: a bus; a hard disk controller coupled between said bus and the hard disk drive subsystem for transferring data between said bus and the hard disk drive subsystem; a memory device; a memory controller coupled between said bus and said memory device, wherein said memory controller is allocated an address space having a first address range and a second address range; and a local processor coupled to said bus, wherein at least one of said hard disk controller or said local processor issues write commands having addresses and data to said memory controller to perform write operations, wherein said memory controller includes: receiving logic coupled to said bus and receiving a write command; read-modify-write logic coupled to said bus and responsive to said write command address of said received write command for mapping addresses in said first address range and addresses in said second address range to a physical region in said memory device; and read-modify-write logic coupled to said receiving means and said mapping means for generating a read-modify-write cycle to said memory device if the received write command address is in said second address range, wherein said read-modify-write cycle reads data from said memory device address associated with the received write command address, performs an exclusive OR operation of said read data with the received write command data to generate exclusive OR data, and writes said exclusive-OR data back to said memory device address associated with the received write command address.
Claim 11
Dependent Claim 32 words
The disk controller board of claim 8, wherein addresses in said first address range and addresses in said second address range are mapped to the same physical range in said memory device.
Claim 12
Dependent Claim 68 words
The disk controller board of claim 9, wherein said memory controller address space is represented by a plurality of address bits, said address bits having a first number of bits representing the physical locations in said memory device, and wherein one of said address bits other than said first number of address bits determine if an address is in said first address range or said second address range.
Claim 13
Dependent Claim 31 words
The disk controller board of claim 8, wherein addresses in said first address range and addresses in said second address range are mapped to different physical ranges in said memory device.
Claim 14
Dependent Claim 62 words
The disk controller board of claim 8, wherein said memory controller further includes write logic coupled to said receiving logic and said mapping logic for generating a normal write cycle if the received write command address is in said first address range, wherein the received write command data is written to said memory device address associated with the received write command address.
Claim 15
Dependent Claim 63 words
The disk controller board of claim 8, wherein the hard disk drive subsystem implements a fault tolerant scheme which utilizes parity information to correct errors in related data stored in the hard disk drive subsystem, said related data being divided into at least two portions, wherein said parity information is the exclusive OR of said at least two portions of said related data.
Claim 16
Dependent Claim 71 words
The disk controller board of claim 13, wherein if a write having new data is directed to one portion of original related data, new parity information is generated by issuing a new write command with said new data and with an address in said second address range and sequentially writing the remaining at least one portion of said original related data to said memory controller at said new write command address.
Claim 17
Dependent Claim 73 words
The disk controller board of claim 13, wherein if a write having new data is directed to one portion of original related data, new parity information is generated by issuing a new write command with said new data and with an address in said second address range and sequentially writing said one portion of said original related data and corresponding original parity information to said memory controller at said new write command address.
Claim 18
Dependent Claim 52 words
The disk controller board of claim 13, wherein if writes having new data are directed to said at least two portions of related data, new parity information is generated by sequentially issuing new write commands with said new data and with an address in said second address range to said memory controller.
Claim 19
Dependent Claim 56 words
The disk controller board of claim 13, wherein if an error occurs in one portion of original related data, said erroneous portion can be regenerated by sequentially writing the remaining at least one portion of said original related data and corresponding original parity information to said memory controller at an address in said second address range.
Claim 20
Dependent Claim 47 words
The disk controller board of claims 14, 15, 16 or 17, wherein said local processor issues a zero-fill command to said memory controller to cause a region in said memory device to be filled with zeros before the writing operations in said second address range are performed.
Claim 21
Dependent Claim 59 words
The disk controller board of claim 8, wherein each write command issued to said memory controller further contains a transfer length value to specify the amount of data to be written, and wherein said read-modify-write logic performs read-modify-write cycles starting at the write command address until the amount of data specified by said transfer length value has been transferred.
Claim 22
Dependent Claim 48 words
The disk controller board of claim 8, the memory device being used for general write operations and parity operations, wherein said memory device includes an XOR buffer to which the write operations in said second address range are directed, said XOR buffer being programmable to various different sizes.
Claim 23
Dependent Claim 34 words
The disk controller board of claim 8, wherein said memory device further includes a write posting cache to post write data of write requests from the host computer to the hard disk drive subsystem.
Claim 24
Independent Claim 170 words
A method of performing read-modify-write operations in a memory controller, the memory controller for controlling operations to a memory device, the memory controller being allocated an address space having a first address range and a second address range, the method comprising the steps of: mapping addresses in the first address range and addresses in the second address range to a physical region in the memory device; writing data to the memory controller at a destination address; decoding said destination address to determine if it is in the first address range or second address range; and the memory controller generating a read-modify-write cycle in response to said data writing step if said destination address is in the second address range, wherein each read-modify-write cycle reads data from the memory device address associated with said destination address, performs an exclusive OR operation of said read data with said write data to generate exclusive OR data, and writes said exclusive OR data back to the memory device address associated with said destination address.
Claim 25
Independent Claim 170 words
A method of performing read-modify-write operations in a memory controller, the memory controller for controlling operations to a memory device, the memory controller being allocated an address space having a first address range and a second address range, the method comprising the steps of: mapping addresses in the first address range and addresses in the second address range to a physical region in the memory device; writing data to the memory controller at a destination address; decoding said destination address to determine if it is in the first address range or second address range; and the memory controller generating a read-modify-write cycle in response to said data writing step if said destination address is in the second address range, wherein each read-modify-write cycle reads data from the memory device address associated with said destination address, performs an exclusive OR operation of said read data with said write data to generate exclusive OR data, and writes said exclusive OR data back to the memory device address associated with said destination address.
Claim 26
Dependent Claim 30 words
The method of claim 22, wherein addresses in the first address range and addresses in the second address range are mapped to the same physical region in the memory device.
Claim 27
Dependent Claim 66 words
The method of claim 23, wherein the memory controller address space is represented by a plurality of address bits, said address bits having a first number of bits representing the physical locations in the memory device, and wherein one of said address bits other than said first number of address bits determine if an address is in the first address range or the second address range.
Claim 28
Dependent Claim 29 words
The method of claim 22, wherein addresses in the first address range and addresses in the second address range are mapped to different physical regions in the memory device.
Claim 29
Dependent Claim 84 words
The method of claim 22, wherein the memory controller and memory device are located in a disk controller board for controlling operations to a hard disk drive subsystem, wherein said hard disk drive subsystem implements a fault tolerant scheme which utilizes parity information to correct errors in related data stored in said hard disk drive subsystem, said related data being divided into at least two portions, wherein said parity information is the exclusive OR of said at least two portions of said related data.
Claim 30
Dependent Claim 73 words
The method of claim 26, wherein if a write having new data is directed to one portion of original related data, the method further comprising the steps of: generating new parity information by writing said new data to the memory controller at a write address in the second address range; and sequentially writing the remaining at least one portion of said original related data to the memory controller at said new write address.
Claim 31
Dependent Claim 75 words
The method of claim 26, wherein if a write having new data is directed to one portion of original related data, the method further comprising the steps of: generating new parity information by writing said new data to the memory controller at a write address in the second address range; and sequentially writing said one portion of said original related data and corresponding original parity information to the memory controller at said new write address.
Claim 32
Dependent Claim 52 words
The method of claim 26, wherein if writes having new data are directed to said at least two portions of related data, the method further comprising the step of: generating new parity information by sequentially writing said new data to the memory controller at a write address in the second address range.
Claim 33
Dependent Claim 59 words
The method of claim 26, wherein if an error occurs in one portion of original related data, the method further comprising the step of: regenerating said erroneous portion by sequentially writing the remaining at least one portion of said original related data and corresponding original parity information to the memory controller at an address in the second address range.
Claim 34
Independent Claim 34 words
The method of claims 27, 28, 29 or 30, further comprising the step of: filling zeros in a region in the memory device before the writing operations in the second address range are performed.
Claim 35
Dependent Claim 41 words
The method of claim 22, wherein a transfer length is specified with said writing step, said transfer length specifying the amount of data to be transferred, wherein said writing step transfers the specified amount of write data into the memory device.
Claim 36
Dependent Claim 52 words
The method of claim 22, further comprising the step of: the memory controller generating a normal write cycle in response to said writing step if said destination address is in the first address range, said normal write cycle writing said write data into the memory device address associated with said destination address.

References Cited (Backward Citations)

US5101492A Cited
US5206943A Cited
US5613059A Cited
US5522065A Cited
US5243699A Cited
US5473761A Cited
US5469566A Cited
US5408644A Cited
US5388108A Cited
US5522032A Cited
US5623595A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag