IP Library Granted Patent US 7,293,139
Granted Patent B2
US 7,293,139 · App. 10/959,982 · Granted Nov 6, 2007

Disk array system generating a data guarantee code on data transferring

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,293,139
App. No.
10/959,982
Granted
Nov 6, 2007
Kind
B2
Abstract

To correctly generate LAs even when out-of-order occurs. In a disk array system according to the present invention, a control unit includes: a host input/output unit that exchanges data and a control signal with a host connected to a disk array system; a disk input/output unit that exchanges data and a control signal with a disk; a cache memory that temporarily stores the data during transfer between the host input/output unit and the disk input/output unit in units of segments that are each formed by a plurality of blocks having a predetermined size; an MPU that controls an operation of the control unit by executing a control program; and a cache controller that controls input/output of the data into/from the cache memory, and the host input/output unit transfers, to the cache controller, transfer information containing the guarantee codes of the first blocks of the segments relating to the data transfer.

Claims (31)

1. A disk array system, comprising:

a plurality of disk drives on which data is read and written, and

a control unit that controls the read and written of the data on the plurality of disk drives based on a data input/output request from a host coupled to the disk array system, wherein

the control unit comprises:

a host input/output unit that exchanges the data and a control signal with the host,

a disk input/output unit that exchanges the data and a control signal with the plurality of disk drives,

a cache memory that temporarily stores the data during transfer between the host input/output unit and the disk input/output unit in units of segments that are each formed by a plurality of blocks having a predetermined size,

an MPU that controls an operation of the control unit by executing a control program, and

a cache controller that controls input/output of the data into/from the cache memory; and wherein

the MPU generates, as information concerning data transfer between the host input/output unit and the cache memory, a host-side internal bus transfer list including an guarantee code (LA_SEG) of a first block of a segment relating to the data transfer, an identifier of the host input/output unit received the data input/output request, an identifier of the data input/output request, and a cache memory address (ADR) relating to the input/output of the data; and

the control unit:

(i) calculates guarantee codes for the blocks from the cache memory address (ADR) relating to the input/output of the data, a first cache address (ADR_SEG) of a segment containing the cache memory address (ADR) relating to the input/output of the data, a size of the block (BLK_SIZE), and the guarantee code (LA_SEG) of the first block of the segment relating to the data transfer using the following equation:

LA =(( ADR—ADR — SEG )/ BLK _SIZE)+ LA — SEG,

(ii) stores the data added the calculated guarantee codes in the cache memory when the data input/output request from the host is a data input request, and

(iii) checks by comparing guarantee codes given to the data read from the cache memory with the calculated guarantee codes when the data input/output request from the host is a data output request.

2. A disk array system, comprising:

a plurality of disk drives on which data is read and written, and

a control unit that controls the read and written of the data on the plurality of disk drives based on a data input/output request from a host coupled to the disk array system, wherein

the control unit comprises:

a host input/output unit that exchanges the data and a control signal with the host,

a disk input/output unit that exchanges the data and a control signal with the plurality of disk drives,

a cache memory that temporarily stores the data during transfer between the host input/output unit and the disk input/output unit in units of segments that are each formed by a plurality of blocks having a predetermined size,

an MPU that controls an operation of the control unit by executing a control program, and

a cache controller that controls input/output of the data into/from the cache memory; wherein

the MPU generates, as information concerning data transfer between the host input/output unit and the cache memory, a host-side internal bus transfer list including serial numbers (SEG_NUM) expressing the order of the segments relating to the data transfer, an identifier of the host input/output unit received the data input/output request, an identifier of the data input/output request, and a cache memory address (ADR) relating to the input/output of the data; and wherein

the control unit:

(i) calculates guarantee codes for the blocks from the cache memory address (ADR) relating to the input/output of the data, a number of the blocks in the segments (SEG_SIZE), an guarantee code (LA_FIRST_SEG) of a first block of a first segment relating to the data transfer, the serial numbers (SEG_NUM) of the segments from the first segment relating to the data transfer, and a first cache address (ADR_SEG) of a block containing the cache memory address (ADR) relating to the input/output of the data using the following equations:

LA — SEG=LA _FIRST — SEG +( SEG _SIZE× SEG — NUM ), and

LA =(( ADR−ADR — SEG )/ SEG _SIZE)= LA — SEG,

(ii) stores the data added the calculated guarantee codes in the cache memory when the data input/output request from the host is a data input request, and

(iii) checks by comparing guarantee codes given to the data read from the cache memory with the calculated guarantee codes when the data input/output request from the host is a data output request.

Assignments (2)
COMPANY SPLIT Recorded Aug 20, 2024
From: HITACHI, LTD.
To: HITACHI VANTARA, LTD.
Reel/Frame 069518/0761 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2005
From: NISHIMOTO, AKIRA; MATSUNAMI, NAOTO; SATO, MASAHIKO; BABA, HIDEMI
To: HITACHI LTD.
Reel/Frame 016166/0195 →