Patent ID: 7543100
Filing Date: 2009-06-02
Classification: G06F

Abstract:
1. A node controller for a node in a data storage system having at least two nodes, the node comprising a computer-memory complex, the node controller distinct and separate from the computer-memory complex, and an input/output bus, the computer-memory complex comprising a central processing unit (CPU), a system memory, and a controller coupling the CPU and the system memory to the input/output bus, the node controller providing control for data transfer through the node, the node controller being operable to be programmed by the computer-memory complex, the node controller comprising: a memory controller operable to interface the node controller with (1) a cluster memory that stores data being transferred through the node, and (2) a link coupled to another node controller in another node of the data storage system; an input/output bus interface operable to interface the node controller with the input/output bus, at least one host device, and at least one storage device; a logic engine coupled to (1) the memory controller, (2) the link, and (3) the input/output bus interface; wherein in a first type of data transfer, the logic engine performs a logic operation to a plurality of data from one of a plurality of data sources in the data storage system and writes the result of the logic operation to one of a plurality of data destinations in the data storage system, the data sources comprising the cluster memory and the input/output bus interface, the data destinations comprising the cluster memory, the link, and the input/output bus interface, the logic operation being used to calculate a parity data for writing a full or a partial RAID stripe or to reconstruct a lost data using the parity data.