WO1996018141A1 - Systeme informatique - Google Patents

Systeme informatique Download PDF

Info

Publication number
WO1996018141A1
WO1996018141A1 PCT/JP1995/002518 JP9502518W WO9618141A1 WO 1996018141 A1 WO1996018141 A1 WO 1996018141A1 JP 9502518 W JP9502518 W JP 9502518W WO 9618141 A1 WO9618141 A1 WO 9618141A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
parity
disk
old
transfer
Prior art date
Application number
PCT/JP1995/002518
Other languages
English (en)
French (fr)
Inventor
Ikuya Yagisawa
Naoto Matsunami
Takashi Oeda
Yasunori Kaneda
Hiroshi Arakawa
Masahiro Takano
Original Assignee
Hitachi, Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi, Ltd. filed Critical Hitachi, Ltd.
Priority to US08/849,236 priority Critical patent/US5996046A/en
Priority to EP95939400A priority patent/EP0797141A1/en
Publication of WO1996018141A1 publication Critical patent/WO1996018141A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Definitions

  • the present invention relates to a control method for an array type disk system in which a plurality of disk devices used as a storage system of a computer system are arranged in an array, and more particularly to a computer system for reducing a CPU load. Get up.
  • a disk array system has a configuration in which a plurality of disk devices are arranged in an array.
  • the disk array system processes read requests (data read requests) and write requests (data write requests) at high speed by parallel operation of the disks.
  • (Redundant) An external storage device with improved reliability by adding data.
  • Disk array systems are called Redundant Arrays of Inexpensive Disks (RAIDs) and are classified into five levels according to the type and configuration of parity data.
  • RA ID 5 parity is distributed and stored on each disk, and processing is concentrated on one parity disk when updating parity. This can prevent performance degradation during write processing. Therefore, it is expected that performance will be improved for random access in which a large amount of small-sized read / writes occur (Nikkei Electronics 1993/4/26 No.579, pp.77-91, “Special Feature Disk Array Devices”).
  • FIG. 21 1 is a host system
  • 4 is a disk interface control means
  • 3 is a disk device group.
  • the host system 1 includes a host CPU 101, a cache 102 that can be read / written at high speed, a bridge 103 between a local bus and a system bus, and a main memory 1 that stores data and programs. It consists of 04 and bus interface 107.
  • the oral bus 105 connects the host CPU 101, the cache 102, and the bridge 103 between the local bus and the system bus.
  • the system bus 106 connects the bridge 103 between the local bus and the system bus to the bus interface face 107.
  • the disk array control program area 109 is arranged in the main memory 104 and stores a disk array control program necessary for controlling the disk array system.
  • the disk interface control means 4 is connected to the bus interface 107 of the host system 1.
  • the disk device group 3 is composed of five disk devices 301 to 305 in the conventional example.
  • the disk devices 301 to 305 are connected to the disk interface control means 4 by daisy chain connection.
  • the reliability is improved by striping multiple disks and adding parity data to each stripe.
  • parity is generated by exclusive OR operation of data for each stripe of each disk device.
  • the host CPU 101 executes the disk array control program stored in the disk array control program area 109. It performs address conversion and parity generation for striping.
  • disk array read processing and disk array write processing a disk that reads and writes data
  • a disk that reads and writes parity is called a parity disk.
  • Equation 1 Parity is obtained by Equation 1 during the disk array write processing of the conventional RAID 5.
  • X0R is the exclusive OR operator.
  • New parity New data X0R Old data X0R Old parity (Equation 1)
  • new data is data to be newly written in the disk array write process
  • old data is data just before new data is written. In other words, the data that new data will hurt.
  • the new parity is the parity data corresponding to the new data
  • the old parity is the parity data corresponding to the old data.
  • the old data is read from the data disk and the old parity is read from the parity disk, and a new parity is generated according to Equation 1, then the new data is transferred to the data disk and the new parity is transferred to the parity disk. Write each one.
  • the process of reading old data from the data disk is called the old data read process
  • the process of writing new data to the data disk is called the new data write process
  • the process of reading the old parity from the parity disk is called the old parity read process
  • the process of writing the new parity to the parity disk is called the new parity write process.
  • the conventional disk array has a problem that write processing performance is reduced.
  • the CPU performs address conversion unique to the disk array and exclusive-OR operation for parity generation, and the CPU load required to control the disk array processing program. Is big. Therefore, when a large amount of disk array write processing is performed, there is a problem that the performance of the ab- plication is degraded due to an increase in the CPU load required for controlling the disk array processing program.
  • a first object of the present invention is to provide a computer system which speeds up disk array write processing by reducing the number of disk accesses other than writing of new data.
  • a second object of the present invention is to provide a computer system in which the load on the CPU required for controlling the disk array processing program is reduced.
  • a third object of the present invention is to provide a computer system having expandability in which a simple subsystem can be added to an existing host device in addition to the first and second objects.
  • a fourth object of the present invention is to generate a new parity by storing data for generating a parity in a main memory of the host device in addition to the first and second objects. It is an object of the present invention to provide a computer system that has a simple configuration that does not require a memory for holding data for the data and a control circuit for controlling the memory and that realizes low cost.
  • a fifth object of the present invention in addition to the first and second objects, is a bus for connecting a system bus of a host device and a disk device control circuit for controlling a plurality of disk devices, respectively, or the system bus or the system bus.
  • An object of the present invention is to provide a computer system that reduces main memory traffic and speeds up processing.
  • a sixth object of the present invention is to provide a main memory in addition to the first and second objects. It is an object of the present invention to provide a computer system that retains data necessary for parity generation without reducing memory capacity, reduces traffic of a main memory access of a host device, and speeds up CPU processing. .
  • a seventh object of the present invention is to provide, in addition to the first and second objects, a function of transferring data to a main memory of a host device provided in a disk control circuit for controlling a plurality of disk devices, respectively.
  • a computer system capable of transferring data for parity generation on a main memory to a parity generation memory with a configuration.
  • An eighth object of the present invention is to provide, in addition to the first and second objects, a simple function of utilizing a data transfer function to a main memory of a host device provided in a disk control circuit for controlling a plurality of disk devices, respectively. It is an object of the present invention to provide a computer system capable of transferring data for generating parity on a main memory to an area for storing data required for generating parity on the main memory.
  • a ninth object of the present invention is to provide a computer system which can speed up data transfer for parity generation.
  • a computer system comprising: a plurality of disk devices; and a host device including a CPU, a main memory, and a disk control circuit for controlling the plurality of disk devices.
  • the CPU manages the plurality of disk devices as a single logical disk array device with parity, and delays the process of writing the new data to the disk device.
  • the generation of the new data and the writing of data to the disk device are performed asynchronously, and the computer system has a parity generation memory for holding updated data, old parity, and old data. Is provided.
  • a new parity or a new parity is calculated from data held in the parity generation memory and new data to be written to the disk control circuit held in the main memory.
  • a parity generation circuit for generating the update data; and data to be read when reading from the disk array device, from the disk control circuit.
  • the new data is transferred to the main memory when writing to the disk array device.
  • a first data transfer circuit for transferring the data to the disk drive circuit.
  • a read data area on the main memory for storing data to be read on the main memory.
  • a second data transfer circuit for transferring from the new data area on the main memory to the parity generation area on the main memory and the disk control circuit at the time of writing to the disk array device. is there.
  • the parity generation memory, the parity generation circuit, and data to be read when reading from the disk array device are transferred to a read data area on the main memory.
  • the disk control circuit for transferring the new data from the new data area on the main memory to the disk control circuit when the disk array device is harmed; and the read operation when reading from the disk array device.
  • a third data transfer circuit for transferring data to the parity generation memory, and transferring the new data to the parity generation memory from a new data area on the main memory when writing to the disk array device. It is provided.
  • a parity generation area on the main memory, the parity generation circuit, and data to be read when reading from the disk array device are read data on the main memory.
  • the disk control circuit for transferring new data from the new data area on the main memory to the disk control circuit when writing to the disk device; and reading the data from the new memory area on the main memory when reading from the disk device.
  • Read on read data area The extracted data is stored in the parity generation area on the main memory, and when writing to the disk array device, the new data from the new data storage area on the main memory is stored in the parity generation area on the main memory.
  • a fourth data transfer circuit for transferring is provided.
  • a high-speed parity generation memory for temporarily holding the data for parity generation between the parity generation memory and the first or third data transfer circuit is provided. It is provided with a cache memory.
  • the parity generation memory, the parity generation circuit, and one of the first to fourth data transfer circuits are mounted on one board. provide. Alternatively, the parity generation circuit and one of the first to fourth data transfer circuits are provided mounted on a single board. Further, the parity generation memory, the parity generation circuit, the high-speed cache, and one of the first to fourth data transfer circuits are mounted on one board and provided.
  • the parity generation circuit and one of the first to fourth data transfer circuits are formed on a single chip, and the system bus or the disk control device is provided. And one of the buses connecting the system bus.
  • the CPU of the host device manages and controls the plurality of disk devices as a logical single disk array device with parity that adds reliability to the plurality of disk devices according to a program on the main memory of the host device.
  • the disk control circuit performs disk control such as issuing requests to a plurality of disk devices, transferring data, and completing requests.
  • the CPU Upon receiving the data write request to the disk array device, the CPU converts the request into a data write request to at least one of the plurality of disk devices according to the program. Prior to writing data, the CPU updates the parity corresponding to the new data to be written on the main memory to the new parity, which is the new parity. Read the old data, which is the data immediately before the data is written, and The exclusive OR of the new data and the old data is calculated, the result is stored in the parity generation memory as an update data, and the new data is used for the next access to the disk array device at the same address. Save as old data at the time. After this processing, the new data is written to the disk array device, and the data damage request ends.
  • the CPU asynchronously delays the new data write processing, reads the old parity, which is the parity corresponding to the old data, from the disk array device, and updates the parity data with the updated data stored in the parity generation memory.
  • the exclusive OR with the old parity is calculated, the result is stored in the disk array device as a new parity, and the old parity is stored in the parity generation memory at the next access to the disk array device having the same address.
  • the CPU upon receiving a data read request to the disk array device, the CPU reads data from the disk array device according to the above-described program, transfers the data to main memory, and stores the data in the parity generation memory next time. The same address is saved as old data when accessing the disk array device.
  • the parity generation memory is capable of temporarily storing the old data, the update data, and the old parity, and the update data and the old data, which are data necessary for generating the new parity. If any one of the old parity exists, the CPU can read these data not from the disk array device but from the parity generation memory and use it for the new parity generation process. Therefore, there is no need to read data from the disk array device, and the number of accesses to the disk array device can be reduced.
  • the first memory can be reduced without squeezing the main memory capacity and reducing the traffic of the main memory access.
  • the sixth objective can be achieved.
  • the parity generation circuit is configured to generate the new parity or the update data from the update data, the old data, the old parity held in the parity generation memory, and the new data in accordance with a command from the CPU. It can be implemented without the CPU during generation.
  • the first data transfer circuit includes the disk drive. When data is read from the array device, data to be read is transferred from the disk control circuit to both the parity generation memory and the read data area on the main memory, and when data is written to the disk array device, a new data area on the main memory is transferred. The transfer of the new data from the memory to the memory for generating quality and the disk control circuit can be performed during the data transfer without the intervention of the CPU in accordance with a command from the CPU.
  • the parity generation circuit and the first data transfer circuit can perform a parity generation process as a disk array control process and a data transfer process to a parity generation memory without the intervention of the CPU.
  • the parity generation area on the main memory holds the update data, the old parity, and the old data stored in the parity generation memory on the main memory.
  • the new parity or update data is generated from the parity generation data held in the parity generation area and the new data held in the new data area on the main memory, and a second data transfer circuit is Based on a command from the CPU, during the data transfer, no intervention of the CPU is required, and at the time of reading from the disk array device, data to be read is used by the disk control circuit for parity generation on the main memory. Area and the read data area on the main memory, and write to the disk array device.
  • new data can be transferred from the new data area on the main memory to both the parity generation area on the main memory and the disk control circuit, so that the first and second objects can be achieved in the same manner as described above. Since the memory for parity generation and the control circuit for the parity can be eliminated, the fourth object of realizing low cost with a simple configuration can be achieved.
  • the disk control circuit transfers the read data to the read data area on the main memory at the time of reading from the disk array device during the data transfer without the intervention of the CPU according to a command from the CPU, At the time of writing to the disk array device, the new data can be transferred from the new data area on the main memory to the disk control circuit, and the third data transfer circuit can execute data transfer by a command from the CPU.
  • the disk array without the CPU At the time of reading from the storage device, the disk control circuit transfers the read data transferred to the read data area on the main memory to the parity generation memory, and at the time of writing to the disk array device, the read data is stored in the main memory.
  • the first and second objects can be achieved in the same manner as described above, and the data can be transferred to the main memory in a disk control circuit that controls a plurality of disk devices, respectively.
  • the seventh object of being able to transfer data for parity generation on the main memory to the parity generation memory with a simple configuration can be achieved.
  • the parity generation area on the main memory, the parity generation circuit, and the disk control circuit operate in the same manner as described above, and the fourth data transfer circuit operates according to a command from the CPU during data transfer.
  • the disk control circuit transfers the read data transferred to the read data area on the main memory to a parity generation area on the main memory, and At the time of writing to the array device, the new data can be transferred from the new data area on the main memory to the parity generation area on the main memory. Therefore, the first and second objects can be achieved similarly to the above. Further, by utilizing a data transfer function of the disk control circuit to the main memory, the data necessary for parity generation can be transferred to the parity generation area on the main memory with a simple configuration.
  • the eighth object of the invention can be achieved.
  • the high-speed cache memory for parity generation is located between the parity generation memory and the first or third data transfer circuit, and the disk control circuit or the main memory and the parity generation memory
  • the data to be transferred can be temporarily stored, and when the corresponding data exists in the high-speed cache memory for generating the data, the data is transferred from the high-speed cache memory. can do. Therefore, the ninth object of speeding up data transfer for parity generation can be achieved.
  • the parity generation memory, the parity generation circuit, and the first or third data transfer circuit are mounted on a single board, they can be made independent from the host device as a simple subsystem. Can be easily added to existing host equipment. Thus, the third object of providing expandability to which a subsystem can be added can be achieved.
  • parity generation memory and the second or fourth data transfer circuit are mounted on one board, they can be made independent of the host device as a simple subsystem, so that they can be easily implemented on existing host devices.
  • Another third object of the present invention is to provide an extensibility capable of adding various subsystems.
  • the fifth object of reducing traffic of a bus connecting the disk drive control circuit and the disk device control circuit or the system bus or the main memory, thereby increasing a processing speed can be achieved.
  • FIG. 1A and 1B are block diagrams of a computer system according to the first embodiment.
  • C FIG. 2 is a block diagram of a disk array control program area according to the first embodiment.
  • FIG. 3 is a block diagram of the MPU control program area in the first embodiment.
  • C FIG. 4 is a block diagram of a disk array data transfer unit in the first embodiment.
  • FIG. 5 is a block diagram of the exclusive OR generation means in the first embodiment.
  • FIG. 6 is a diagram illustrating a disk array read processing operation according to the first embodiment.
  • FIG. 7 is a data write processing operation diagram in the first embodiment.
  • FIG. 8 is an operation diagram of the delayed parity processing in the first embodiment.
  • FIG. 9 is a block diagram of the disk array data transfer means in the second embodiment.
  • FIGS. 10A and 10B are block diagrams of a computer system according to the third embodiment.
  • FIG. 11 is a block diagram of a disk array control program area in the third embodiment.
  • FIG. 12 is a block diagram of the disk array data transfer generation means in the third embodiment.
  • FIG. 13 is an operation diagram of the disk array read processing in the third embodiment.
  • FIG. 14 is a diagram illustrating a data write processing operation according to the third embodiment.
  • FIG. 15 is an operation diagram of the delayed parity processing in the third embodiment.
  • FIGS. 16A and 16B are block diagrams of a computer system according to the fifth embodiment.
  • FIG. 17 is a block diagram of a disk array control program area in the fifth embodiment.
  • FIGS. 18A and 18B are block diagrams of a computer system according to the seventh embodiment.
  • FIG. 19 is a block diagram of the MPU control program area in the seventh embodiment.
  • FIGS. 20A and 20B are block diagrams of a computer system according to the ninth embodiment.
  • FIG. 21 is a block diagram of a computer system in a conventional example.
  • the host system 1 includes a host CPU (central processing unit) 101, a cache 102, a bridge 103 between a local bus and a system bus, a main memory 104, and a bus interface 107. Make up.
  • the host CPU 101, the cache 102, and the bridge 103 between the local bus and the system bus are connected by the local bus 105.
  • the oral-system bus-system bus bridge 103 and the printer interface 107 are connected to the system bus 106.
  • the main memory 104 stores the user area 108 and the data. It has a disk array control program area 109, an old data address holding unit 110, and a parity address holding unit 111.
  • the disk array control program area 109 includes a request receiving section 120 for receiving a request from an application or the like, a request management section 121 for determining the next processing, and a disk array. Performs system-specific address conversion (including data distribution / aggregation processing) and searches for an address conversion unit 122 that calculates data disk addresses and parity disk addresses, and whether old data exists in the temporary storage means.
  • the array control auxiliary means 2 includes a bus interface 201, an MPU (micro processing unit) 210, an MPU memory 211, and five disk control circuits (hereinafter referred to as disk interfaces).
  • Control means 205 to 209 copy between memories, between disk and each memory, parity generation circuit (hereinafter, exclusive-OR generation means) Data transfer between 203 and each memory Data transfer circuit (disk array data transfer means) 202, exclusive OR generation means 203, and a parity generation memory (hereinafter, memory 212) for storing data for parity generation. It is composed of an unrecorded parity address holding means 250 for recording a parity address not subjected to the delayed parity processing, and these are connected by an MPU bus 21.
  • the unrecorded parity address holding means 250 backs up the battery.
  • the array control auxiliary means 2 is provided as a part of the host system, or the memory 2 12 included in the array control auxiliary means 2, the disk array data transfer means 202, and the exclusive OR generation means 2 0 3 on a single board, and the system bus 106 of the host system 1 and the system bus 106 and the disk interface 205 to 2 It is conceivable to connect the array control auxiliary means to the internal bus 204 for connection to the array control auxiliary means. When configured on a single board, it can be added to existing systems as a simple subsystem, improving scalability.
  • a bus interface 201; five disk interface control means 205 to 209; a disk array data transfer means 202; an exclusive OR generating means 203; 1 2 is connected by an array control auxiliary means internal bus 204.
  • the bus interface 201 is connected to the bus interface 107 of the host system 1. It is assumed that the memory 211 is mapped to a memory address space managed by the host CPU 101 and has a configuration that can be directly referred to, and the bus interface 201 performs control.
  • the MPU memory 211 has an MPU control program area 214 and an MPU command storage area 215 for queuing a large number of MPU commands sent. As shown in FIG.
  • the MPU control program area 214 includes a request receiving section 220 that receives a request from the MPU control section 128, a request management section 222 that determines the next processing, and a disk array.
  • a disk array data transfer means control unit 222 that issues a command to the data transfer means 202, and a disk interface control means control unit 222 that issues a command to the disk interface control means 205 to 209
  • an exclusive-OR generating means control section 224 for issuing a command to the exclusive-OR generating means 203, and a request ending section 22 for issuing an interrupt signal for ending the request to the host CPU 101. It consists of five.
  • the memory 2 12 includes the old data holding means 2 16 for holding the old data and the parity generation work for temporarily holding the data used for the parity generation work. It has an area 2 17, old update data or old parity, a parity holding means 2 18 for holding old parity, and a memory control means 2 19 for managing the address of the memory 2 12.
  • the disk array data transfer means 202 shown in FIG. 4 is composed of a data input / output means 260, a data buffer 261, and a two-way data transfer control means 2622. ing.
  • the two-way data transfer control means 2662 is used as a transfer length register 263 that specifies the length of data to be transferred in bytes, and as a register that stores the 10 address of the data transfer source or a memory address.
  • Yuan 1 It has an address register 2 64, a transfer source 2 address register 2 65, and a transfer source 3 address register 2 66, and as a register for storing the I0 address or memory address of the data transfer destination, the transfer destination An exclusive-OR generating means address register 2 6 9 having a 1-address register 2 6 7 and a transfer-destination 2 address register 2 6 8, and further storing an exclusive-OR generating means 2 0 3 IO address.
  • Each transfer source and each transfer destination select I0 or memory, respectively, and receive a mode selection register 270 that specifies whether to perform data transfer related to exclusive OR generation, and a transfer start command. Take command register 2 7 1 has.
  • the disk array data transfer means 202 transfers the transfer length byte from the transfer source 1 to the transfer destination 1 or from the transfer source 1 to two transfer destinations of the transfer destination 1 and the transfer destination 2 at the same time. Performs a number of DMA (Direct Memory Access) transfers.
  • DMA Direct Memory Access
  • the DMA transfer refers to a transfer method in which, when activated by the CPU or MPU, data transfer is performed thereafter without intervention of the CPU or MPU. Simultaneous DMA transfer to two transfer destinations is called batch DMA transfer.
  • the exclusive OR generating means 203 shown in FIG. 5 includes a data input / output means 240, a data buffer 241, and an exclusive OR operation for performing an exclusive OR operation. It comprises means 2 42 and data input / output management means 2 43 for managing data input / output and initializing the data buffer 24 1.
  • the data input / output management means 243 has an input data counter register 244 for storing the number of input data, and a data buffer initialization register 245 for initializing the data buffer 241.
  • the old data holding unit 2 16 of the memory 2 12 and the old data address holding unit 1 10 of the main memory 104 hold the same number of data, for example, p is a natural number. It is assumed that the data of the P-th holding means correspond to each other.
  • the old data holding means 2 16 is a collection of! Memory areas whose size of one block is equal to the logical block length of the magnetic disk drive. Also, the old data address holding unit 110 stores the memory address of the old data held in the old data holding means 211, the disk device number in which the corresponding data is stored, and the data address. It is an array of a structure including a data disk address, which is a logical block address in the disk device, and a time stamp, and the number of arrays matches the number of blocks P of the old data holding means 2 16.
  • the parity holding means 2 18 of the memory 2 1 2 and the parity address holding unit 1 1 1 of the main memory 104 each hold the same number of data.For example, when q is a natural number, each Q-th holding So that the data of the means correspond to each other
  • the parity holding means 218 is a collection of Q memory areas each having a block size equal to the logical block length of the magnetic disk drive.
  • the number Q of blocks in the parity holding unit 218 determines the number of parity data that can be used for the delayed parity processing.
  • the parity address holding unit 111 stores the old parity stored in the parity holding unit 218 or the disk device storing the memory address of the old update data and the corresponding parity.
  • Number, parity disk address which is the logical block address in the disk unit, time stamp, and whether the retained data is old update data or old parity, or written on the disk if old parity
  • This is an array of structures including a flag indicating whether they are the same as the ones, and the number of arrays matches the number q of blocks in the parity holding unit 218.
  • the unrecorded parity address holding means 250 is a collection of r memory areas for storing parity disk addresses whose parity with the data disk is not consistent. r is a natural number.
  • the disk device group 3 is composed of five disk devices 301 to 300 in this embodiment. Each of the disk devices 301 to 305 is connected to each of the five disk interface control means 205 to 209 of the array control auxiliary means 2 by cables.
  • the disk array write processing of this embodiment is described below.
  • conventional RAID 5 when performing disk array write processing, old data read processing and new data write processing for data disks, and old parity read processing and new parity write processing for parity disks are required.
  • the number of occupied disks is 2, a total of 4 disks An access occurs, and the disk array write performance drops significantly.
  • the new parity is obtained by equation (1).
  • the new parity is the exclusive OR of the new update data and the old parity. This is shown in the following equation.
  • New update data New data X0R Old data (Equation 2)
  • New parity New update data X0R Old parity (Equation 3)
  • New update data is generated as shown in Equation 2 during new data write processing, and held in the temporary holding means. deep.
  • the old data holding means 2 16, the parity generation work area 2 17 and the parity holding means 2 18 are collectively referred to as temporary holding means.
  • a new parity is generated as shown in Equation 3 using the stored new update data and asynchronously with the new data write processing, and the new parity write processing is performed.
  • the conventional disk array write process can be divided into two independent processes, and the number of occupied disks can be reduced to one for each process.
  • the new update data in Expressions 2 and 3 are the same, but in the delayed parity processing (P 1) described later, the new update data in the stage of Expression 3 is referred to as old update data.
  • the old update data is the new update data stored in the temporary holding means in the previous disk array write processing.
  • the new parity in Equation 3 is referred to as an old parity in the delayed parity processing (P 2) described later.
  • the processing related to the new data write processing is called data write processing.
  • C The processing related to the new parity write processing, which is performed asynchronously with the data write processing, is called delayed parity processing.
  • the disk array write processing of this embodiment includes data write processing and delayed parity processing.
  • the data write process depends on what the temporary storage means stores. Can be classified into The transfer is performed by the disk array data transfer means 202.
  • New update data is generated from the data and new data, and the data is transferred to the temporary storage unit. Equation 2 is used to generate new update data.
  • Equation 2 is used to generate new updated data.
  • Equation 4 is used to generate new update data.
  • New update data New data X0R Old data X0R Old update data (Equation 4)
  • Equation 4 is derived.
  • the new data to be written is called new new data
  • the new update data to be generated is called new new update data
  • the new parity corresponding to the new data is called new new parity.
  • the new data before rewriting is the old data when viewed from the new data
  • the new parity corresponding to the new data is the old parity when the data is viewed.
  • the temporary holding means includes the new / new data and the new / new updated data.
  • Equation 5 is derived from Equation 5
  • Equation 6 is derived from Equation 3 and Equation 5.
  • New new parity New new data X0R New data X0R New parity (Equation 5)
  • New new parity New new data X0R New data X0R New updated data
  • New new update data New new data X0R New data X0R New update data
  • Equation 4 is derived from Equation 7.
  • Equation 4 is used to generate new update data.
  • Equation 1 is used to generate a new parity.
  • the new data stored in the temporary storage means becomes the old data in the next data write process (W2) (W4) (W6).
  • W2 next data write process
  • W4 data write process
  • W6 data write processing
  • the old data read processing is not performed, so that one disk access can be reduced.
  • the new parity stored in the temporary holding means becomes the old parity in the next data write processing (W5) (W6) and the delayed parity processing (P2) described later. .
  • the old parity read processing is not performed, so disk access can be reduced by one.
  • the new parity is stored in the temporary storage unit and the new parity write processing is not performed, so that disk access can be reduced by one.
  • the reading of the old parity and the writing of the new parity use the temporary holding means, so that the data write processing can be performed continuously without accessing the parity disk.
  • the delayed parity processing can be classified into the following two types depending on what the temporary holding means stores. However, if the old parity already written to the disk is stored in the temporary storage means, the delayed parity processing is not performed. Also, when nothing is stored in the temporary storage means, or when only old data is stored, the delayed parity processing is not performed. The transfer is performed by the disk array data transfer means 202.
  • Equation 3 is used to generate a new parity.
  • the old update data in (P 1) corresponds to the new update data in Equation 3.
  • the new parity stored in the temporary holding means becomes the old parity in the next data write processing (W5) (W6).
  • the above is the disk array write processing of the present embodiment.
  • the use of the temporary holding means for data read and parity read / write can reduce the number of disk accesses and increase the processing speed.
  • this copy is called a memory-to-memory copy.
  • the present embodiment provides a method for reducing the load on the CPU by performing inter-memory copy and exclusive OR operation using the array control auxiliary means 2.
  • Disk array read processing can be classified into the following two types depending on what the temporary storage means stores.
  • the transfer is performed by the disk array data transfer means 202.
  • the old data as the target data is read from the disk and transferred to the temporary holding means and the user area 108.
  • the old data as the target data is transferred from the temporary holding means to the user area 108.
  • a disk array read processing operation and a disk array write processing operation in the disk array system having the configuration of FIG. 1 will be described.
  • the disk array system of the present embodiment in order to avoid performance degradation due to disk access, At the time of write processing, the write processing of new data and new parity is performed asynchronously. Therefore, the disk array write processing will be described separately for data write processing and delayed parity processing that is performed with a delay from the data write processing.
  • FIG. 1 when a disk array read request is issued from an application on the host system 1 or the like, the host CPU 101 uses the programs in the disk array control program area 109 to The following processing is performed.
  • the request in Figure 2 Receiving unit 120 Receives the read request.
  • the request management section 122 passes the read request to the address conversion section 122, and the address conversion section 122 calculates the data disk address of the target data.
  • the old data search unit 123 checks whether or not the old data address holding unit 110 of the main memory 104 has the data disk address of the target data. A search is made for data storage means 2 16 and the type of disk array read processing (Rl) (R2) is determined.
  • the disk array read processing (R1) is performed, and the memory of the size necessary to hold the target data is held in the old data holding unit.
  • the memory address is calculated, and the memory address and the data disk address are collectively stored in the old data address storage unit 110 as a structure of the same array.
  • the disk array read processing (R 2) is performed, and the memory of the old data storage means 2 16 in which the target data exists is stored. Calculate the address.
  • the array control auxiliary means control command generator 125 generates the following command.
  • the read command of the data disk storing the data disk address of the target data and the target data are stored in the disk interface control means 205 and the old data holding means 210.
  • the disk array data transfer means control command includes the transfer length, the I 0 address of the disk interface control means 205 as the transfer source 1, and the old data holding means 2 16 as the transfer destination 1.
  • disk array data transfer for DMA transfer of the target data to the old data holding means 2 16 and user area 108
  • a transmission means control command is generated, and the command is set as an MPU control command.
  • the disk array data transfer means control command includes the transfer length, the memory address of the old data holding means 2 16 which is the transfer source 1, the memory address of the user area 1 108 which is the transfer destination 1, and the transfer source 1 It has a mode selection command to specify that it is a memory, and a transfer start command.
  • the MPU control unit 128 issues the MPU control command to the MPU 210 via the bus interface 107 in FIG.
  • the MPU 210 receiving the MPU control command performs the following processing using each program in the MPU control program area 214.
  • the request receiving unit 220 receives the MPU control command shown in FIG.
  • the disk interface control means control section 223 sends a read command of the target data of the MPU control commands to the disk interface control means 205. Issue Next, the disk interface control means 205 issues the received read command to the disk device 301 in which the target data capacity is stored. The disk device 301 receives the read command and transfers the data to the disk interface control means 205. The disk interface control means 205 issues an interrupt signal to the MPU 210.
  • the disk array data transfer means control section 222 issues a disk array data transfer means control command of the MPU control commands to the disk array data transfer means 202.
  • the disk array data transfer means 202 receives the command, and collectively DMA transfers the target data from the disk interface control means 205 to the user area 108 and the old data holding means 216 (4 0 1).
  • the disk array data transfer means 202 issues an interrupt signal to the MPU 210.c
  • the disk array data transfer means 202 performs a batch DMA transfer in the disk array read processing (R1). The operation of will be described with reference to FIG.
  • the disk array data transfer means 202 receives the transfer length register 263 of the two-way data transfer control means 262, the transfer source 1 address register 264, and the transfer destination 1 address by the disk array data transfer means control command. Register 2 6 7 and transfer When the address register 268 and the mode selection register 270 are set and the transfer start command is set in the command register 271, the transfer starts.
  • source 1 is 10
  • destination 1 and destination 2 are memories.
  • the transfer length is m bytes
  • the source 1 address is X
  • the destination 1 is y
  • the destination 2 is z
  • X is 10 addresses
  • y and z are memory addresses
  • n bytes are transferred from address X to the data buffer 261, via the data input / output means 260, and then from the data buffer 261, via the data input / output means 260. Then, n bytes of data are transferred to address y, and then n bytes of data are transferred to address z in the same manner, thus completing the transfer of one transfer unit.
  • n is subtracted from the transfer length register 266 and n is added to the transfer destination 1 address register 267 and the transfer destination 2 address register 268. Since the source 1 is I0, the value of the source 1 address register 264 is not changed. Then, in the same manner as above, n bytes are transferred from address X to address (y + n), and n bytes are transferred from address X to address (z + n). By continuing this operation until the transfer length register 263 becomes 0, batch DMA transfer of m bytes from address X to addresses y and z is performed. When the DMA transfer is completed, the two-way data transfer control means 262 issues an interrupt signal.
  • the disk array data transfer means control section 222 of FIG. 3 sends the disk array data transfer section 202 of the MPU control command to the disk array data transfer means 202. Issues a means control command.
  • the disk array data transfer means 202 receives the command, and transfers the target data to the old data holding means 2 16, etc., in the DMA to the user area 108 (400 2).
  • the disk array data transfer means 202 issues an interrupt signal to the MPU 210.
  • the disk array data transfer means 202 shows the operation during DMA transfer in the disk array read processing (R2) in FIG. It will be described using FIG.
  • Disk array data transfer means 202 controls disk array data transfer means
  • the transfer length register 2 63 of the two-way data transfer control means 26 2, the transfer source 1 address register 2 64, the transfer destination 1 address register 2 67 and the mode selection register 2 70 are set by the command.
  • the transfer start command is set in the command register 271, transfer starts.
  • source 1 and destination 1 are memories. If the capacity of the data buffer 26 1 is n bytes, the transfer unit is n bytes. The transfer length is m bytes, one source address is X address, one destination address is y address, addresses X and y are memory addresses, and it is a DMA transfer from memory to memory. First, n bytes are transferred from address X to the data buffer 261, via the data input / output means 260, and then from the data buffer 261, the data input / output means 260 Transfer of n bytes to address y is performed via, and the transfer of one transfer unit is completed.
  • n is subtracted from the transfer length register 2 63 and n is added to the transfer source 1 address register 2 64 and the transfer destination 1 address register 2 67. Then, in the same way as above, n bytes are transferred from address (x + n) to address (y + n). By integrating this operation until the transfer length register 2 63 becomes 0, m-byte DMA transfer from address X to address y is performed.
  • the two-way data transfer control means 262 issues an interrupt signal.
  • the same processing is performed regardless of the disk array read processing (R 1) (R 2).
  • Step 3 shifts the processing to the request ending unit 225, and the request ending unit 225 interrupts the host CPU 101 in FIG. Give a signal.
  • the host CPU 101 which has received the interrupt signal, transfers the processing to the request termination unit 126 using the request management unit 121 in the disk control program area 109 of FIG. Step 26 ends the entire read process.
  • the data write processing operation will be described with reference to FIGS. 1, 2, 3, and 7, taking the data write processing (W 3) as an example.
  • (501) to (506) correspond to the numbers in FIG.
  • the new data is written to DO of the disk device 301 in FIG.
  • the host CPU 101 performs the following processing using each program in the disk array control program area 109.
  • the request receiving unit 120 shown in FIG. 2 receives the write request.
  • the request management unit 122 sends the write request to the address conversion unit 122, and the address conversion unit 122 stores the data disk address for writing the new data and the parity disk address corresponding to the new data. calculate.
  • the old data search unit 123 checks whether the calculated data disk address exists in the old data address holding unit 110 of the main memory 104, and determines whether the old data holding unit in the memory 212 is in use. 2. Search for old data in 16 and classify data write processing.
  • the data disk address does not exist in the old data address holding unit 110, so the memory having the size necessary to hold the new data is stored in the old data holding unit 2 16.
  • the memory address and the data disk address are collectively stored in the old data address storage unit 110 as a structure having the same arrangement.
  • the parity search unit 124 checks whether the calculated parity disk address is present in the parity address storage unit 111 of the main memory 104, and thereby determines the parity storage unit 2 in the memory 211. 18 Searches for old update data or old parity data in 8 and classifies data write processing.
  • the old disk is updated based on the flag added to the parity disk address. Check whether it is new data or old parity. In the data write process (W 3), the memory address of the parity holding unit 218 where the old update data exists is calculated.
  • the array control auxiliary means control command generation unit 125 generates the following commands, and collectively generates these commands as MPU control commands.
  • Read command of the data disk storing the data disk address of the old data, disk interface control means 205, and parity generation disk array for transferring DMA to the work area 2 17 Generate a data transfer means control command.
  • a data buffer initialization command and a command having 3 as the number of input data as a value to be set in the input data counter register 244 are generated. It also generates a write command for the data disk that stores the data disk address for writing the new data.
  • a disk array data overnight transfer means control command for batch DMA transfer of new data to the user area 108 and the disk interface control means 205 and the old data holding means 216 is generated. I do. Also, the new data is transferred from the old data holding means 2 16 to the exclusive OR generating means 203, the old data is transferred from the parity generation work area 2 17 to the exclusive OR generating means 203, and the old updated data is transferred. The DMA is transferred from the parity holding means 2 18 to the exclusive OR generating means 203 and the newly generated new data from the exclusive OR generating means 203 to the parity holding means 218 respectively. To generate a disk array data transfer means control command in exclusive-OR generation mode.
  • the array control auxiliary means control command generation unit 125 generates the above-described commands, and collectively generates these commands as MPU control commands.
  • the MPU control unit 128 is transmitted via the bus interface 107 in FIG. Then, the MPU 210 issues the MPU control command.
  • the MPU 210 receiving the MPU control command performs the following processing using each program in the MPU control program area 214.
  • the request receiving unit 220 shown in FIG. 3 receives the MPU control command, and passes it to the request managing unit 221.
  • the disk interface control means control unit 2 2 3 A read command of the old data among the MPU control commands is issued to the data control means 205. Next, the disk interface control means 205 issues the received read command to the disk device 301 in which the old data is stored. The disk device 301 receives the read command and transfers the data to the disk interface control means 205. The disk interface control means 205 issues an interrupt signal to the MPU 210.
  • the disk array data transfer means control section 222 issues a disk array data transfer means control command of the MPU control commands to the disk array data transfer means 202.
  • the disk array data transfer means 202 receives the command, and transfers the old data to the disk interface control means 205, etc., to the parity generation work area 2117 (501).
  • the transfer source 1 address is the I 0 address of the disk interface control means 205
  • the transfer destination 1 address is the memory address of the parity generation work area 2 17.
  • the MPU 210 sets these addresses in the two-way data transfer control means 262 of the disk array data transfer means 202 using the disk array data transfer means control command, and transfers the addresses from 10 to the memory 1.
  • the transfer as described above is performed by setting the mode selection register 270 so that the transfer is performed and issuing an execution command to the command register 271.
  • the disk array data transfer means 202 issues an interrupt signal to the MPU 210.
  • the exclusive-OR generating means control unit 224 issues a command to the exclusive-OR generating means 203.
  • the configuration of the exclusive-OR generating means control command for making the exclusive-OR generating means 203 operable is shown below.
  • the command includes the number of data input to calculate the exclusive OR and a command for initializing the data buffer 24 1.
  • the number of data to be input is three because the setting is made so that exclusive OR operation is performed for three input data.
  • the exclusive-OR generating means 203 in FIG. 5 stores the data in the input data counter register 244 of the data input / output managing means 243 by the exclusive-OR generating means control command. Is set, the data input / output means 240 enters the input mode, When the data buffer initialization register 245 is set, the data in the data buffer 241 is initialized to 0, and the data can be accepted. All data input / output is performed by the disk array data transfer means 202. Next, the disk interface control means control section 222 issues a new data write command to the disk interface control means 205. Next, the disk interface control means 205 issues the received write command to the disk device 301 storing the new data. The disk device 301 receives the write command and waits for data.
  • the disk array data transfer means controller 222 issues a disk array data transfer means control command to the disk array data transfer means 202.
  • the disk array data transfer means 202 receives the command and transfers the new data to the user area 108 and the disk interface control means 205 and the old data holding means 216 collectively. MA transfer (502). At this time, the new data is written to the data disk.
  • the transfer source 1 address is the memory address of the user area 108
  • the transfer destination 1 address is the I 0 address of the disk interface control means 205
  • the transfer destination 2 address is the old data. This is the memory address of the holding means 2 16.
  • the MPU 210 sets these addresses in the two-way data transfer control means 262 of the disk array data transfer means 202 by using the disk array data transfer means control command, and sets The transfer as described above is performed by setting the mode selection register 270 so that the transfer is performed to the host and issuing an execution command to the command register 271.
  • the disk array data transfer means 202 issues an interrupt signal to the MPU 210.
  • each register is set in the same way as in the example of the disk array read processing (R 1). From the memory address at address X, through the data buffer 261, to the 10 address at y and the memory address at z The data is transferred n bytes at a time, and the transfer of one transfer unit is completed. Before transfer of the next transfer unit, n is subtracted from the transfer length register 2 63 and n is added to the transfer source 1 address register 2 64 and the transfer destination 2 address register 2 68. Since the transfer destination 1 is I 0, the value of the transfer destination 1 end address register 267 is not changed.
  • n bytes are transferred from address (x + n) to address y, and n bytes are transferred from address (x + n) to address (z + n).
  • a transfer is performed.
  • batch DMA transfer of m bytes from address X to addresses y and z is performed.
  • the two-way data transfer control means 262 issues an interrupt signal.
  • the disk array data transfer unit control unit 222 issues a disk array data transfer unit control command in the exclusive OR generation mode to the disk array data transfer unit 202.
  • the disk array data transfer means 202 receives the command, transfers the new data from the old data holding means 216 to the exclusive OR generation means 203 (503), and transfers the old data to the parity generation work area 2 From (17) to exclusive OR generating means (203), the old update data is transferred from parity holding means (218) to exclusive OR generating means (203) (505).
  • the new update data newly generated by the exclusive OR generating means 203 is transferred from the exclusive OR generating means 203 to the parity holding means 218 (506). Each data transfer is performed in accordance with the operation procedure of the disk array data transfer means 202.
  • This mode is a combination of several DMA transfers.
  • the DMA transfer from the transfer source 1, the transfer source 2, and the transfer source 3 to the exclusive-OR generating means 203, and the exclusive-OR generating means 2 It consists of a DMA transfer from 03 to transfer destination 1.
  • the disk array data transfer means 202 receives the transfer length register 263 of the two-way data transfer control means 262, the transfer source 1 address register 264, and the transfer source 2 by the disk data transfer means control command.
  • Address register 26 5, transfer source 3 address register 26 6, transfer destination 1 address register 2 67, transfer destination 2 address register 26 8, and exclusive-OR generating means address register 26 9 and the mode selection register 270 are set, and the transfer starts when the transfer start command is set in the command register 271.
  • the feature of this mode is that the exclusive-OR generation means can be used without interrupting each DMA transfer. An interrupt signal may be issued when DMA transfer from 203 to transfer destination 1 is completed. The fact that there are three transfer sources is set in the mode selection register 270.
  • the exclusive-OR generating means 203 transfers the data input from the data input / output means 240 and the data in the data buffer 241 to the exclusive-OR calculating means 242. After calculating the exclusive OR of the two data, it operates to put the result in the data buffer 24 1.
  • an exclusive OR is performed on the data in the data buffer 241 initialized with 0 and the data 1 input first, and the result is stored in the data buffer 241.
  • data 1 is stored in the data buffer 24 1.
  • the exclusive OR is performed on the second input data 2 and the data 1 of the data buffer 241, and the result is put into the data buffer 241.
  • the data buffer 2 41 has the exclusive OR of data 1 and data 2.
  • an exclusive OR is performed on the data 3 and the data of the data buffer 2 4 1 in the evening, and the result is put into the data buffer 2 4 1.
  • the data buffer 241 has an exclusive OR of data 1, data 2, and data 3.
  • the input data counter register 244 is incremented, and when the input data counter register 244 becomes 0, the data input / output means 240 enters the output mode, and the disk array data transfer means 2 By means of 02, the operation result is output from the data buffer 24 1.
  • the request management unit 222 shown in FIG. 3 receives the interrupt signal from the disk interface control unit 205 when the writing of the new data has been completed and the disk array data transfer unit 202.
  • the processing shifts to the request ending section 225, and the request ending section 225 issues an interrupt signal to the host CPU 101.
  • the host CPU 101 Upon receiving the interrupt signal, the host CPU 101 shifts the processing to the request termination unit 126 by using the request management unit 121 in the disk array control program area 109 of FIG. 2, and terminates the request.
  • the unit 126 ends the entire data write process.
  • data write processing (W3) The differences between data write processing (W3) and other data write processing are shown below.
  • the old update data of the data write processing (W3) is replaced with the old parity, and the newly generated new data is replaced with the new parity.
  • the old parity is transferred at (505), and the new parity is transferred at (506).
  • the parity search unit 124 in the disk array control program area 109 stores the flag added to the parity disk address stored in the parity address holding unit 111 in the parity disk. To indicate that the old parity is different from the old parity.
  • the data write process (W1) is a process for generating new update data without using the old update data in the data write process (W3).
  • the operation related to the new parity generation is performed in the data write process (W1). Different from 3). Also, a process of recording the parity disk address of the parity that is not consistent with the data is performed.
  • the parity search section 124 checks whether the calculated parity disk address is strong and exists in the parity address holding section 111 of the main memory 104. Thus, the parity holding means 2 18 in the memory 2 12 searches for old update data or old parity. In the case of the data write processing (W 1), since the parity disk address does not exist in the parity address holding unit 111, a memory having a size necessary to hold the new update data is stored in the parity holding unit 218. In addition, the memory address, the parity disk address, and the flag indicating that the data to be stored in the parity holding means 218 after the data write processing are new update data are collected into the same structure. , 'Rity address holding unit 1 1 1 Further, the parity disk address is held in the unrecorded parity address holding means 250.
  • the number of input data of the exclusive OR generation means control command is 2.
  • the disk array data transfer means control command sets the exclusive source generation mode in the mode selection register 270 to indicate that there are two transfer sources. The transfer of (505) in FIG. 7 is not performed.
  • the data write processes (W 2), (W 4), and (W 6) do not perform the processes related to the old data read from the data write processes (W l), (W 3), and (W 5), respectively. It is like that. Also, since the old data is in the old data holding means 2 16, First, the new data is transferred to the parity generation work area 217, and when the exclusive OR generation is completed, the new data is stored in the old data storage unit 216.
  • the old data search unit 123 checks whether the calculated data disk address strength exists in the old data address holding unit 110 of the main memory 104. Then, the old data is stored in the old data storage means 2 16 in the memory 2 12. In the data write processing (W 2), (W 4), and (W 6), since the data disk address exists in the old data address holding unit 110, the old data capacity ⁇ the existing old data holding means Calculate the memory address of 2 16. In addition, a memory of a size necessary to hold the new data is secured in the parity generation work area 214, and the memory address is calculated.
  • the memory address of the parity generation work area 217 in which the new data is stored and the data disk address are combined into a structure of the same array, and the old data address holding unit is stored. It is kept at 1 1 0.
  • the new data held in the retention generation work area 211 can be stored in the old data holding means 211. become. That is, the transfer of (501) in FIG. 7 is not performed, and the old data holding means 2 16 and the parity generation work area 2 17 are switched.
  • the parity disk address written to the unrecorded parity address holding means 250 records which parity of which logical block of which disk device needs to be changed. Also, the new data held in the old data holding means 2 16 becomes old data in the next data write processing, and the exclusive-OR generating means 203 generates new update data and the new parity data. Can be sped up. Further, in the read-modify-write processing, the data read at the time of the read processing is held in the old data holding means 2 16, so that when performing the data write processing of the changed data, the old data is read again. There is no need for it, and the processing for the disk device can be reduced once.
  • parity data In a disk array system, parity data must be generated to improve reliability.
  • the data write processing Sometimes, new parity write processing is not performed, so delayed parity processing is required.
  • the delayed parity processing is processing that is performed asynchronously with a data write processing instruction issued from an application or the like.
  • the delayed parity processing will be described with reference to FIGS. 1, 2, 3, and 8.
  • the host CPU 101 performs the following processing by using each program in the disk array control program area 109. First, if it is determined that the delayed parity processing determining unit 1 27 in FIG. 2 should perform the delayed parity processing, the processing is passed to the request managing unit 122 1.
  • the timing at which the delayed parity processing starts may be, for example, when the frequency of access to the drive is low, or when the parity holding unit 218 is full of old update data.
  • the request management unit 122 passes the processing to the parity search unit 124, and the parity search unit 124 checks whether the parity disk address exists in the parity address holding unit 111 of the main memory 104. Search and if present, check the added flag o
  • parity address holding unit 1 1 1 If there is nothing in the parity address holding unit 1 1 1 or only the parity disk address that is the same as the parity in the parity disk is available, if there is, pass the processing to the request management unit 1 2 1 and request termination unit 1 2 6 ends the delayed parity processing. If there is a parity disk address of the old update data or a parity disk address of the old parity different from the one written on the parity disk, the corresponding parity holding means 2 The memory address of 18 is calculated, and the flag is rewritten so as to indicate that the old parity stored in the parity holding means 218 after the delayed parity processing is the same as that stored in the parity disk.
  • the array control assisting means control command generation unit 125 generates the following commands, and collectively uses them as MPU control commands.
  • the disk array data transfer means control command and the exclusive OR generation means control command have the above-described configuration.
  • the parity disk read command storing the parity disk address of the old parity and the old parity are sent to the disk interface control means 209 and the parity generation work area 217 D Generates a disk array data transfer means control command for MA transfer.
  • the exclusive-OR generating means control command the data buffer initialization command and the number of input data 2 are set as the value to be set in the input data counter register 244.
  • the old updated data is newly generated from the parity holding unit 2 18 to the exclusive OR generation unit 203, and the old parity is newly generated from the parity generation work area 2 17 to the exclusive OR generation unit 203.
  • An exclusive OR generation mode disk data transfer means control command for DMA transfer of the new parity from the exclusive OR generating means 203 to the parity holding means 218 is generated.
  • a parity disk write command storing the parity disk address of the new parity is generated.
  • a disk array data transfer unit control command for DMA transfer of the new parity from the parity holding unit 218 to the disk interface control unit 209 is generated.
  • a write command for the parity disk that stores the parity disk address of the new parity is generated.
  • a disk array data transfer means control command for transferring the new parity from the parity holding means 218 to the disk interface control means 209 is generated.
  • the array control auxiliary means control command generation unit 125 generates the above-described commands and collectively generates these commands as MPU control commands.
  • the MPU control unit 128 generates the bus interface 107 shown in FIG. Then, the MPU 210 issues the MPU control command to the MPU 210.
  • the MPU 210 receiving the MPU control command performs the following processing using each program in the MPU control program area 214.
  • the request receiving unit 220 receives the MPU control command shown in FIG. 3 and passes it to the request managing unit 222.
  • the disk interface control means control section 223 issues a read command of the old parity among the MPU control commands to the disk interface control means 209.
  • the interface control means 209 issues the received read command to the disk device 305 storing the old parity.
  • the disk device 305 receives the read command and transfers the old parity to the disk interface control means 209.
  • the disk interface control means 209 issues an interrupt signal to the MPU 210.
  • the disk array data transfer means control section 222 issues a disk array data transfer means control command of the MPU control commands to the disk array data transfer means 202.
  • the disk array data transfer means 202 receives the command, and transfers the old parity from the disk interface control means 209 to the parity generation work area 217 (601).
  • the disk array data transfer means 202 issues an interrupt signal to the MPU 210.
  • the exclusive-OR generating means control unit 224 issues a command to the exclusive-OR generating means 203, and the exclusive-OR generating means 203 which has received the command outputs the data.
  • Buffer 2411 is initialized and configured to accept the specified number of data. In this case, it is set so that the exclusive OR operation of the two input data is performed.
  • the disk interface control means controller 223 issues a new parity write command to the disk interface control means 209.
  • the disk interface control means 209 issues the received write command to the disk device 305 storing the new parity.
  • the disk device 305 receives the write command and enters a state of waiting for data.
  • the disk array data transfer unit control unit 222 issues a disk array data transfer unit control command in the exclusive OR generation mode to the disk array data transfer unit 202.
  • the disk array data transfer means 202 receives the command, transfers the old parity from the parity generation work area 211 to the exclusive OR generation means 203 (620), and stores the old updated data in the parity holding means. From 2 18 to exclusive OR generating means 203 (6 0 3), the new parity newly generated by exclusive OR generating means 203 is held in parity by exclusive OR generating means 203 Transfer to means 218 (604). In addition, new parity is The data is transferred to the screen control means 209 (605). At this time, the new parity is written to the parity disk. Each data transfer is performed according to the operation procedure of the disk array data transfer means 202.
  • the disk interface control means control section 223 issues a new parity write command to the disk interface use control means 209.
  • the disk interface control means 209 issues the received write command to the disk device 305 storing the new parity.
  • the disk device 305 receives the write command and enters a state of waiting for data.
  • the disk array data transfer means controller 222 issues a disk array data transfer means control command to the disk array data transfer means 202.
  • the disk array data transfer means 202 receives the command, and transfers the new parity from the parity holding means 218 to the disk interface control means 209 (605). At this time, the new parity is no. Is written to the disc.
  • the request management unit 222 of FIG. 3 receives the write power of the new parity, the completed disk interface control unit 209, and the disk array data transfer unit 202, and receives an interrupt signal. After erasing the parity disk address that has been subjected to the delayed parity processing in the unrecorded parity address holding means 250, the processing is shifted to the request ending section 225, and the request ending section 2 25 0 Send an interrupt signal to 1.
  • the host CPU 101 Upon receiving the interrupt signal, the host CPU 101 shifts the processing to the request termination unit 126 by using the request management unit 121 in the disk array control program area 109 of FIG. 2, and terminates the request.
  • the unit 126 completes the entire delayed parity processing.
  • parity data In a disk array system, parity data must be generated and retained to maintain reliability.
  • the new parity In the disk array system of this embodiment, when writing new data, the new parity is not written to the parity disk, and then the delayed parity processing is performed asynchronously. If a power failure occurs before delay parity processing is performed, data and parity consistency cannot be maintained. There By registering the unprocessed parity disk address in the unrecorded parity address holding unit 250, the old update data or the parity is lost from the parity holding unit 218 due to a power failure, etc. At startup, it knows which logical address and which parity to generate parity for. Parity can be generated by performing an exclusive OR operation on the data recorded on the disk device.
  • disk array write processing is divided into data write processing and delayed parity processing, and the number of disk accesses required when writing new data is reduced.
  • a means to temporarily store new data, new updated data, and new parity will be provided to reduce the number of disk accesses to read old data and old parity.
  • the number of disk accesses for the conventional software RAID is one for disk array read processing and four for disk array write processing. Therefore, when the read rate is 50 (%), five disk accesses are required to perform disk array read / write processing once, and each processing per second is 48 (IOPS). The processing performance will be 96 (IOPS).
  • the read rate 50 (%) indicates that the rate of disk array read / write processing is 50 (%) per unit time, and I OPS is the number of I0 processing per second. Is a unit that represents
  • the hit rate of the old data holding means at the time of data write processing is 85 (%)
  • the number of disk accesses is one at the time of disk array read processing and one at the time of data write processing.
  • the lead rate 5 At 0 (%), performing disk array read processing and data write processing once each requires 2.15 disk accesses, and each processing per second is 1 1 2 (I OPS) for a total of 2 2 4 (I OPS).
  • the speed of moving data in and out of the memory is 4 (KByte), and if it takes 10 clocks at 33 (MHz) for 8 burst transfers, it becomes 107 (MByte / sec) Assuming that the data rate is about twice, the speed of moving data in and out of memory is 50 (MB yte / sec).
  • the load on the CPU is RA ID. Since only the management of the The required processing time is 1 000 (Sec) for both disk array read / write processing. Therefore, the ratio of CPU processing per 1 (10) is 0.100 (%).
  • the present embodiment increases the CPU load factor by about 8.2 (%) compared to the conventional software RA ID, and the performance is 2.2. Twice as high and high performance with low CPU load factor.
  • Example 2 of the present invention will be described.
  • the system configuration is the same as that of FIG. 1, and the difference from the first embodiment is the difference in the configuration and operation of the disk array data transfer means 202 and the configuration and operation of the disk interface control means 205 to 209. There is a difference.
  • FIG. 9 shows the configuration of the disk array data transfer means 202 according to the second embodiment.
  • the disk array data transfer means 202 includes a data input / output means 274, a data buffer 275, and a one-way data transfer control means 276.
  • the one-way data transfer control means 276 includes a transfer length register 277 for specifying the data length to be transferred in bytes, a transfer source address register 278 for storing the I0 address of the data transfer source or a memory address, and A transfer destination address register 279 that stores the I0 address or memory address of the data transfer destination, a mode selection register 280 that specifies whether the transfer source and the transfer destination are 10 or memory, respectively, and a transfer It has a command register 281 for receiving a start command.
  • the disk interface control means 205 to 209 have a DMA transfer function, and are transmitted to the c disk interface control means 205 to 209 which perform DMA transfer between the disk interface control means and each memory.
  • Read command and write command include the data transfer length for DMA transfer, the data transfer source, Alternatively, the memory address of the transfer destination is also stored.
  • the disk array data transfer means 202 of the second embodiment has only one register for storing the transfer destination address, and the number of transfer destinations in one DMA transfer is one. is there. Therefore, the two DMA transfers that were performed simultaneously in the batch DMA transfer of the first embodiment are performed by the disk interface control means 205 to 209 and the disk array data transfer means 202. The DMA transfer between the disk interface control means 205 to 209 and the user area 108 is performed by the disk interface control means 205 to 209.
  • the disk array data transfer means 202 performs a DMA transfer of a transfer length byte number from one transfer source to one transfer destination.
  • the command includes a transfer length, a transfer source address, a transfer destination address, a mode selection command for specifying whether the transfer source and the transfer destination are I0 or a memory, and a transfer start command.
  • the disk array data transfer means 202 receives the transfer length register 277 of the one-way data transfer control means 276 by the disk array data transfer means control command, the transfer source address register 278, and the transfer destination address.
  • the register 279 and the mode selection register 280 are set and the transfer start command is set in the command register 281, the transfer starts.
  • I 0 is the exclusive OR generating means 203. If the capacity of the data buffer 275 is n bytes, the transfer unit is n bytes.
  • the transfer length is m bytes
  • the source address is X
  • the destination address is y
  • the X address is the I0 address
  • the y address is the memory address
  • the DMA transfer from I0 to the memory is performed.
  • n bytes are transferred from address X to the data buffer 275 via the data input / output means 274, and then from the data buffer 275 via the data input / output means 274.
  • n bytes of data are transferred to address y, and transfer of one transfer unit is completed.
  • n bytes are transferred from address X to address (y + n).
  • the transfer source is memory and the transfer destination is I0
  • the same DMA transfer as described above is possible.
  • the transfer source is a memory address
  • These operations are controlled by the one-way data transfer control means 276 by setting the address stored in each register in the mode selection register 280, whether it is a 10-address address or a memory address. .
  • the type of disk array read processing of the second embodiment is the same as that of the first embodiment, but the operation is different.
  • the changes from the first embodiment are shown below.
  • the disk array read processing (R 1) the old data as the target data is read from the disk and transferred to the user area 108, and the old data is further transferred from the user area 108 to the temporary holding means. Perform processing. The process of transferring the old data from the disk to the user area 108 is performed by the disk interface control means.
  • the disk array read processing (R 2) is the same as in the first embodiment.
  • the type of the data write process of the second embodiment is the same as that of the first embodiment, but the operation is different.
  • the changes from the first embodiment are shown below.
  • the process of transferring new data from the user area 108 to the data disk and the temporary holding means the process of transferring new data from the user area 108 to the data disk, and the process of transferring new data Data from the user area 108 to the temporary storage means.
  • the process of transferring the new data from the user area 108 to the data disk is performed by the disk interface control means.
  • the process of transferring the old data to the temporary holding unit is performed by the disk interface control unit.
  • the disk array data transfer means 202 of the second embodiment does not have an exclusive OR generation mode, the data transfer between the temporary holding means and the exclusive OR generation means 203 is performed every time. Perform separately.
  • the type of the delayed parity processing of the second embodiment is the same as that of the first embodiment, but the operation is different.
  • the changes from the first embodiment are shown below.
  • the process of transferring the old parity to the temporary holding unit and the process of transferring the new parity to the parity disk are performed by the disk interface control unit.
  • the disk array data transfer means 202 of the second embodiment does not have an exclusive OR generation mode, the data transfer between the temporary holding means and the exclusive OR generation means 203 is performed every time. Perform separately.
  • the structure of the disk array data transfer means 202 can be simplified, the cost can be reduced, and the disk interface control means 205 to 200 can be achieved.
  • the efficiency of the DMA transfer can be increased by performing the DMA transfer relating to 9 by the disk interface control means and performing the DMA transfer relating to the copy between memories by the disk array data transfer means 202.
  • FIG. 10 1 is a host system
  • 2 is an array control auxiliary means
  • 3 is a group of disk devices.
  • the host system 1 includes a host CPU 101, a cache 102, a bridge 103 between a local bus and a system bus, a main memory 104, and a bus interface 107.
  • the host CPU 101, the cache 102, and the bridge 103 between the local bus and the system bus are connected by the local bus 105.
  • Local bus '' Bridge between system buses 103 and bus interface 107 connects to the system bus 106.
  • the main memory 104 includes a user area 108, a disk array control program area 109, an old data address holding unit 110, a parity address holding unit 111, and an old data holding unit 111. , A parity generation work area 113, a parity holding means 114, and a command storage area 115 for queuing a large number of transmitted commands.
  • the disk array control program area 109 includes a request receiving section 120, a request managing section 121, an address converting section 122, and an old data searching section 123. , A parity search unit 124, an array control auxiliary unit control command generation unit 125, a disk array data transfer generation unit 254 that issues commands to the disk array data transfer generation unit 254, and a disk
  • the interface control means comprises a control section 131, a request end section 126, and a delayed parity processing determination section 127.
  • the array control auxiliary means 2 includes a bus interface 210, a disk array data transfer generating means 25 4 4 for performing data transfer and exclusive OR generation, and a DMA. It comprises five disk interface control means 205 to 209 having a transfer function, and a battery-backed unrecorded parity address holding means 250, each of which is an array control auxiliary means internal bus. Connect with 204.
  • the bus interface 201 is connected to the bus interface 107 of the host system 1. If the disk array data transfer generation means 254 of the array control auxiliary means 2 is configured as one chip, the main processing is performed when the same data is handled between the processing of generating update data and new parity and the data transfer processing.
  • the disk device group 3 which can reduce traffic and speed up the processing is composed of five disk devices 301 to 305 in the present embodiment. Each of the disk devices 301 to 305 is connected to the five disk interface control means 205 to 209 of the array control auxiliary means 2 by cables.
  • Unrecorded parity address holding means 250 old data holding means 1 in main memory 104, old data address holding section 110, parity holding means 114, parity address holding section 111
  • a configuration example of the disk array data transfer generation means 254 of the array control auxiliary means 2 will be described with reference to FIGS.
  • the disk array data transfer generation means 254 is exclusive of the data input / output means 283, the data buffer 284, the data 2 buffer 285, and the data transfer generation management means 286. It comprises exclusive OR operation means 287 which performs OR operation.
  • the data transfer generation and management means 286 includes a transfer length register 288 that specifies the length of data to be transferred in bytes, and a transfer source 1 address register 288 as a register that stores a memory address of a data transfer source.
  • a transfer source 2 address register 290 and a transfer source 3 address register 291 and as a register for storing a memory address of a data transfer destination, a transfer destination 1 address register 292 and a transfer destination A mode selection register 294 for specifying what data transfer and exclusive OR generation are to be performed, and a command register 209 for receiving a transfer start command.
  • I / O mode register 2 96 that specifies the I / O mode of data I / O means 2 8 3 and data buffer that initializes data 1 buffer 2 84 and data 2 buffer 2 85 Having initialized register 2 9 7.
  • the disk array data transfer generation means 254 operates in one of the disk array read processing mode, data write processing mode, and delayed parity processing mode.
  • the main differences between the first embodiment and FIG. 1 are that temporary storage means required for parity generation is located in the main memory 104, and disk array data transfer generation that performs two operations, data transfer and parity generation.
  • the means 2 54 is placed in the array control auxiliary means 2, and the control of the array control auxiliary means 2 is performed by the host CPU 101 instead of the MPU 210.
  • the old data holding means 112, the parity generation work area 113 and the parity holding means 114 are collectively referred to as temporary holding means.
  • the DMA transfer between the disk interface control means 205 to 209 and the main memory 104 is performed by the disk interface control means 205 to 209, and the other DMA transfer is a disk array data transfer.
  • the disk array write process according to the third embodiment includes a data write process and a delayed parity process as in the first embodiment.
  • Data write processing can be classified into the following six types depending on what the temporary storage means stores.
  • Equation 2 is used to generate new updated data.
  • a process of transferring the new update data in the disk array data transfer generation unit 254 to the temporary storage unit and a process of transferring the new data from the user area 108 to the data disk are performed. Equation 4 is used to generate new update data.
  • Equation 4 is used to generate new update data.
  • Equation 1 is used to generate a new parity.
  • the new data stored in the temporary holding means becomes the old data in the next data write process (W2) (W4) (W6).
  • W2 next data write process
  • W4 data write process
  • W6 the old data read process is not performed, so disk access can be reduced by one.
  • the new parity stored in the temporary holding means is used in the next data write processing (W5) CW6) and the delay parity described later.
  • the old parity read processing is not performed, so that disk access can be reduced once.
  • the new parity is stored in the temporary storage unit, and the new parity write process is not performed, so disk access can be reduced by one.
  • the delayed parity processing can be classified into the following two types depending on what the temporary holding means stores. However, if the old parity already written to the disk is stored in the temporary storage means, the delayed parity processing is not performed. Also, when nothing is stored in the temporary storage means, or when only old data is stored, the delayed parity processing is not performed.
  • the processing for transferring the new parity in the means 254 to the temporary holding means and the processing for transferring the new parity from the temporary holding means to the parity disk are performed. Equation 3 is used to generate a new parity.
  • the new parity stored in the temporary holding means becomes the old parity in the next data write processing (W5) (W6).
  • the disk array read processing according to the third embodiment is described below.
  • Disk array read processing can be classified into the following two types depending on what the temporary storage means stores.
  • the old data that is the target data is read from the disk and transferred to the user area 108 To transfer the old data from the user area 108 to the disk array data transfer generation means 254, and to transfer the old data from the disk array data transfer generation means 254 to the temporary holding means. Do.
  • (701) to (705) correspond to the numbers in FIG.
  • the target data is D0 in the disk device 301 of FIG.
  • the host CPU 101 performs the following processing using each program in the disk array control program area 109.
  • the request receiving unit 120 shown in FIG. 11 receives the read request.
  • the request management section 122 passes the read request to the address conversion section 122, and the address conversion section 122 calculates the data disk address of the target data.
  • the old data search unit 123 checks whether the target data data disk address exists in the old data address holding unit 110 of the main memory 104, and stores the target data in the main memory 104. It searches whether it is in the old data holding means 1 1 and 2 and classifies the type of disk array read processing (Rl) (R2).
  • a disk array read process (R1) is performed, and a memory of a size necessary to hold the target data is stored in the old data holding means.
  • the memory address and data disk address are calculated, and the memory address and the data disk address are collectively stored in the old data address storage unit 110 as a structure having the same arrangement.
  • the disk array read processing (R 2) is performed, and the memory address of the old data overnight holding unit 1 12 in which the target data exists is calculated. I do.
  • the array control auxiliary means control command generator 125 generates the following command.
  • the disk array data of the disk array read processing mode for DMA transfer of the target data to the old data holding means 112 to the user area 108 A transfer generation unit control command is generated, and the command is used as an array control auxiliary unit control command.
  • the disk array data transfer generation means control command includes the transfer length, the memory address of the old data holding means 112 as the transfer source 1, the memory address of the user area 108 as the transfer destination 1, and the operation It has a mode selection command to specify the mode and a transfer start command.
  • disk array read processing (R 1), a data disk read command that stores the data disk address of the target data and the memory address of the user area 108 that transfers the read target data, and the target data From the user area 108 to the old data holding means 1 1 2 to generate disk array data transfer generation means control commands for the disk array read processing mode, and control each command to the array control holding means. Put together as a command.
  • the disk array data transfer generation means control command includes a transfer length, a memory address of the user area 108 as the transfer source 1, a memory address of the old data holding means 112 as the transfer destination 1, and an operation mode. And a transfer start command.
  • the array control auxiliary means control command generation unit 125 passes the processing to the request management unit 121.
  • the disk array data transfer generation means control unit 133 sends the disk array data transfer generation means 25 54 to the disk array data Issue the data transfer generation means control command.
  • the disk array data transfer generation means 254 receives the command and DMA transfers the target data from the old data holding means 112 to the user area 108.
  • the transfer source address 1 is the memory address of the old data holding unit 1 1 2
  • the transfer destination 1 address is the memory address of the user area 108.
  • the c host CPU 101 uses the disk array data transfer generation means control command to transfer these addresses to the disk array data transfer generation means.
  • the transfer length register 288 stores the transfer length m bytes
  • the transfer source 1 address register 289 stores the target data stored in the old data holding means 112.
  • the evening memory address X is stored
  • the transfer destination 1 address register 292 stores the memory address y of the user area 108 to which the target data is transferred. If the capacity of the data 1 buffer 284 and the data 2 buffer 285 is n bytes, the transfer unit is n bytes.
  • the target data is transferred from the address X via the data input / output means 283 to the data 1 buffer 284 for n bytes (704), and then the target data is transferred to the data 1 buffer 284, Then, n bytes are transferred to the address y via the data input / output means 283 (705), and the transfer of one transfer unit is completed.
  • n is subtracted from the transfer length register 288, and n is added to the source 1 address register 289 and the destination 1 address register 292. Then, in the same way as above, n bytes are transferred from address (x + n) to address (y + n). By continuing this operation until the transfer length register 288 becomes 0, the DMA transfer from the address X to the address y is performed.
  • the data transfer generation management means 286 issues an interrupt signal and ends the processing.
  • the data input / output means 283 repeats the input mode and the output mode.
  • the disk array data transfer generation means 25 54 in FIG. 12 stores the address of the data transfer destination in the data transfer generation management means 286.
  • Transfer destination to be stored. Has two address registers. Even when the transfer source or the transfer destination is 10, the same DMA transfer as described above is possible. In this case, after performing transfer of one transfer unit of n bytes and further transferring n bytes, since the transfer source is I0, n is stored in each address register storing the I0 address. Use the same value without adding. Whether the transfer source or the transfer destination is I0 is the data transfer generation management means
  • the request management section 121 of FIG. 11 shifts the processing to the request end section 126, and the request end section 126 executes the entire read processing. Terminate.
  • the disk interface control means control section 131 sends a command to the disk interface control means 205 to the target data of the array control auxiliary means control command. Issue a read command.
  • the disk interface control means 205 issues the received read command to the disk device 301 in which the target data is stored.
  • the disk device 301 receives the read command and transfers the target data to the disk interface control means 205.
  • the disk interface control means 205 transfers the target data to the user area 108 by DMA (701), and issues an interrupt signal to the host CPU 101.
  • the disk array data transfer generating means 254 receives the command and transfers the target data from the user area 108 to the old data holding means 112 by DMA transfer (702) (703). When the DMA transfer is completed, the disk array data transfer generating means 254 issues an interrupt signal to the host CPU 101.
  • the request management section 121 shifts the processing to the request end section 126, and the request end section 126 ends the entire read processing.
  • the data write processing operation will be described with reference to FIG. 10, FIG. 11, and FIG. 14, taking the data write processing (W 3) as an example.
  • (800) to (807) correspond to the numbers in FIG.
  • the new data is written to D0 of the disk device 301 of FIG.
  • the host CPU 101 performs the following processing using each program in the disk array control program area 109.
  • the request receiving section 120 shown in FIG. 11 receives the write request.
  • the request management unit 122 passes the write request to the address conversion unit 122, and the address conversion unit 122 stores the data disk address for writing the new data and the parity disk address corresponding to the new data. calculate.
  • the old data search section 123 checks the calculated data disk address strength ⁇ in the old data address storage section 110 of the main memory 104 to determine whether the old data address means exists in the main memory 104. Search for old data in 1 1 and 2 and classify data write processing.
  • the memory having a size necessary to hold the new data is stored in the old data holding unit 112.
  • the memory address and the data disk address are held together in the old data address holding unit 110 as a structure having the same array.
  • the parity search unit 124 checks whether the calculated parity disk address exists in the parity address storage unit 111 of the main memory 104, and determines whether the parity storage unit 111 in the main memory 104 is present. 4. Search for old update data or old parity in 4, and classify data write processing.
  • parity disk address exists in the parity address holding unit 111, it is checked whether the old data has been updated or the old parity is based on the flag added to the parity disk address.
  • data write processing W3
  • the memory address of the parity holding means 114 in which the old update data exists is calculated.
  • the array control auxiliary means control command generator 125 generates the data write processing.
  • the following commands are generated, and these are collectively referred to as array control auxiliary means control commands.
  • a new parity is generated from the new data of the user area 108, the old data of the old data holding means 112, and the old updated data of the parity holding means 114. Further, a command in a data write processing mode is generated to transfer the new data to the old data holding means 112 and to transfer the generated new updated data to the parity holding means 114. In addition, a write command for the data disk storing the memory address of the user area 108 where the new data exists and the data disk address for writing the new data is generated.
  • the disk array data transfer generation means control command in the data write processing mode is shown below.
  • the command includes the transfer length, the memory address of the user area 108 of the transfer source 1, the memory address of the old data holding means 112 of the transfer source 2, and The memory address of the parity holding means 1 1 4 of the transfer source 3, the memory address of the old data holding means 1 1 2 of the transfer destination 1, the memory address of the parity holding means 1 1 4 of the transfer destination 2, and the operation mode
  • the array control auxiliary means control command generation section 125 generates the above-described commands, collectively generates these commands as array control auxiliary means control commands, and passes the processing to the request management section 122.
  • the disk interface control means controller 131 issues a read command of the old data of the array control auxiliary means control command to the disk interface control means 205.
  • the disk interface control means 205 receives the data received from the disk device 301 storing the old data. Issue a command.
  • the disk device 301 receives the read command and transfers the old data to the disk interface control means 205.
  • the disk interface control means 205 transfers the old data to the old data holding means 112 by DMA (810), and issues an interrupt signal to the host CPU 101.
  • the disk array data transfer generation means control unit 133 issues a disk array data transfer generation means control command of the array control auxiliary means control command to the disk array data transfer generation means 254.
  • the disk array data transfer generation means 254 receives the command and receives the new data in the user area 108, the old data in the old data holding means 112, and the old updated data in the parity holding means 111.
  • a new data update mode is generated, and the new data is transferred to the old data holding unit 112, and the generated new updated data is transferred to the parity holding unit 114. Do.
  • transfer source 1 is the memory address of the user area 108
  • transfer source 2 is the old data holding means 1 1 2 memory address
  • transfer source 3 is the parity holding means 1 1 4 memory address
  • transfer destination 1 is the old
  • the memory address of the data holding unit 112 is the memory address of the parity holding unit 114
  • the transfer destination 2 is the memory address of the parity holding unit 114.
  • the host CPU 101 sets these addresses in the data transfer generation management means 286 of the disk array data transfer generation means 254 using the disk array data transfer generation means control command, and executes the mode selection command.
  • the DMA transfer is performed as described above by issuing an execution command to the command register 2995.
  • the disk array data transfer generation means 254 issues an interrupt signal to the host CPU 101.
  • the transfer length register 288 stores the transfer length m bytes
  • the transfer source 1 address register 289 stores the new data in the user area 108.
  • Memory address X address is stored, and old data is retained in transfer source 2 address register 290.
  • the memory address y of the old data in the means 1 1 and 2 is stored, and the memory address z of the old update data in the parity holding means 1 14 is stored in the transfer source 3 address register 291, and the transfer destination 1
  • the address register 2 92 stores the memory address i of the old data holding means 1 1 2 to which the new data is transferred, and the transfer destination 2
  • the address register 2 93 transfers the new updated data. It is assumed that the memory address j of the parity holding unit 114 is stored.
  • the data input / output means 283 becomes the input mode.
  • the input / output mode switches accordingly.
  • the data buffer initialization register 297 is set, the data in the data 1 buffer 284 and the data in the data 2 buffer 285 are initialized to 0, and the exclusive OR operation means 287 Is ready to accept data.
  • the transfer unit is n bytes.
  • n bytes of new data are transferred from address X to the data 1 buffer 284 via the data input / output means 283 (802).
  • the old data is transferred by n bytes from the address y to the exclusive-OR operation means 287 via the data input / output means 283, and the exclusive data with the new data in the data1 buffer 284 is transferred.
  • the logical sum is calculated, and the result is put into the data 2 buffer 285 (803).
  • the data 2 buffer 2885 has the exclusive OR of the new data and the old data.
  • the new data in the data 1 buffer 284 is transferred by n bytes to the address i via the data input / output means 283 (804).
  • the old update data is transferred by n bytes from the address z to the exclusive OR operation means 287 via the data input / output means 283, and the exclusive update with the data in the data 2 buffer 285 is performed.
  • the logical OR is calculated, and the result is put into the data 1 buffer 284 (805).
  • there is new update data which is the exclusive OR of the new data, the old data, and the old update data in the buffer 284.
  • the new update data in the data 1 buffer 284 is transferred n bytes to the address j (806).
  • n bytes are transferred from address (x + n), address (y + n), address (z + n), address (i + n), address (j + n). + n) Transfers n bytes to the address.
  • the disk interface control means controller 131 issues a new data write command to the disk interface control means 205.
  • the disk interface control means 205 issues the received write command to the disk device storing the new data.
  • the disk device 301 receives the write command and enters a state of waiting for data.
  • Disk interface control unit 2 05 the new data is DMA-transferred from the user area 1 08 to the disk interface monounsaturated We Ichisu controller 2 05 (807), c new this time to issue an interrupt signal to the host CPU 1 0 1
  • the data is written to a disk overnight.
  • the request management unit 121 of FIG. 11 when the request management unit 121 of FIG. 11 receives an interrupt signal from the disk interface control unit 205 where the writing of the new data has been completed, it shifts the processing to the request termination unit 126 and the request termination unit 126 The step 126 ends the entire data write process.
  • the data write process (W5) replaces the old update data of the data write process (W3) with the old parity, and replaces the newly generated new data with the new parity.
  • the old parity is transferred at (805), and the new parity is transferred at (806).
  • the parity search unit 124 in the disk array control program area 109 writes the flag added to the parity disk address stored in the parity address holding unit 111 into the parity disk. To indicate that the old parity is different.
  • the data write process (W1) is a process that generates new update data without using the old update data in the data write process (W3).
  • the operation related to parity generation is the same as the data write process (W3). different.
  • data is not consistent
  • a process for recording a parity disk address of a new parity is performed.
  • the parity search section 124 checks whether or not the calculated parity disk address power exists in the parity address holding section 111 of the main memory 104. Then, the parity holding means 114 in the main memory 104 is searched for old updated data or old parity. In the case of data write processing (W 1), since the parity disk address does not exist in the parity address holding unit 111, a memory having a size necessary to hold the new update data is stored in the parity holding unit 111. The memory address, the parity disk address, and the flag indicating that the new data is to be stored in the parity holding means 114 after the data write processing are collected into the same structure. Holder 1 1 Holds in 1.
  • the parity disk address is held in the unrecorded parity address holding means 250.
  • the data processing (W 1) mode is set in the I / O mode register 296 by the disk array data transfer generation means control command in the data write processing mode.
  • the transfer of (805) is not performed, and the newly updated data in the data 2 buffer 285 is transferred to the parity holding means 114 instead of the transfer of (806).
  • the data write processing (W 2), (W 4), and (W 6) correspond to the data write processing (W l), (W 3), (W 5) power, and the processing related to the old data read, respectively. It was not done.
  • the old data search section 123 has the calculated data disk address and exists in the old data address holding section 110 of the main memory 104. Is searched for old data in the old data holding means 112 in the main memory 104.
  • Means 1 1 2 Calculate the memory address.
  • a memory having a size necessary to hold the new data is secured in the old data holding unit 112, and the memory address is calculated.
  • the parity disk address written in the unrecorded parity address holding means 250 determines which disk device Whether the parity of the logical block needs to be changed is recorded. Also, the new data held in the old data holding means 112 becomes old data in the next data write processing, and the disk array data transfer generation means 254 generates new updated data and the new parity data. The generation process can be sped up. Furthermore, in the read-modify-write processing, the data read at the time of the read processing is held in the old data holding means 112, so the old data must be read again when performing the data write processing of the changed data. And the processing for the disk device can be reduced once.
  • the host CPU 101 performs the following processing by using each program in the disk array control program area 109.
  • the process is passed to the request management unit 122.
  • the timing at which the delayed parity processing starts can be considered, for example, when the frequency of access to the drive is low, or when the parity holding unit 114 is full of old update data.
  • the request management unit 122 passes the processing to the parity search unit 124, and the parity search unit 124 checks whether the parity disk address exists in the parity address holding unit 111 of the main memory 104. Search and check the added flag if it exists.
  • parity address holding unit 111 has a parity disk address of old update data or a parity disk address of old parity different from that written on the parity disk, the corresponding parity holding unit 1 1
  • the array control auxiliary means control command generation unit 125 generates the following commands, and collectively sets these as array control auxiliary means control commands.
  • a parity disk read command storing the parity disk address of the old parity and the memory address of the parity generation work area 113 for transferring the read old parity is generated.
  • a new parity is generated from the old parity of the parity generation work area 113 and the old updated data of the parity holding means 114, and the generated new parity is stored in the parity.
  • a command in the delayed parity processing mode to be transferred to the means 111 is generated.
  • a parity disk write command that stores the memory address of the parity holding unit 114 having the new parity and the parity disk address for writing the new parity is generated.
  • the disk array data transfer generation means control commands include the transfer length, the memory address of the parity generation work area 113 as the transfer source 1, and the parity holding means 111 as the transfer source 2. 4 memory address, memory address of parity holding means 1 1 4 as transfer destination 1, mode selection command, data 1 buffer 2 8 4 and data 2 buffer 2 8 5 initialization command, and transfer start command Has a command.
  • the array control auxiliary means control command generation section 125 generates the above-described commands, collectively generates these commands as array control auxiliary means control commands, and passes the processing to the request management section 122.
  • the disk interface control means controller 131 issues a new parity write command to the disk interface control means 209.
  • the disk interface control means 209 issues the received write command to the disk device 305 storing the new parity.
  • the disk unit 305 receives the write command and waits for data. State.
  • the disk interface control means 209 transfers the new parity from the parity holding means 114 to the disk interface control means 209 by DMA (905), and sends an interrupt signal to the host CPU 101. Issue. At this time, the new parity is written to the parity disk.
  • the request management section 121 Upon receiving the interrupt signal from the disk interface control means 209 where the writing of the new parity has been completed, the request management section 121 executes the delayed parity processing in the unrecorded parity address holding means 250. After erasing the parity disk address, the processing shifts to the request termination section 126, and the request termination section 126 terminates the entire delay parity processing.
  • the disk interface control means control section 1331 issues a read command of the old parity among the array control auxiliary means control commands to the disk interface control means 209.
  • the disk interface control means 209 issues the received read command to the disk device 305 storing the old data.
  • the disk device 305 receives the read command and transfers the old parity to the disk interface control means 209.
  • the disk interface control means 209 transfers the old parity to the parity generation work area 113 by DMA (910), and issues an interrupt signal to the host CPU 101.
  • the disk array data transfer generation means control unit 13 3 issues a disk array data transfer generation means control command of the array control assisting means control command to the disk array data transfer generation means 254. I do.
  • the disk array data transfer generation means 25 54 receives the command, generates a new parity from the old parity of the parity generation work area 113 and the old update data of the parity holding means 114, and generates the new parity. The new parity is transferred to the parity holding means 1 1 4 in the delayed parity processing mode.
  • the transfer source 1 is the memory address of the parity generation work area 113
  • the transfer source 2 is the memory address of the parity holding unit 114
  • the transfer destination 1 is the memory address of the parity holding unit 114.
  • the host CPU 101 uses the disk array data transfer generation means control command to transfer these addresses to the disk array data transfer.
  • the disk array data transfer generating means 254 issues an interrupt signal to the host CPU 101. The operation of the disk array data transfer generation means 254 in the delayed parity processing mode is described below.
  • the transfer length register 288 stores the transfer length m bytes
  • the transfer source 1 address register 289 stores the old parity in the parity work area 1 13
  • the memory address X is stored.
  • the source 2 address register 290 stores the memory address y of the old update data in the parity holding means 114
  • the transfer destination 1 address register 292 stores. Assume that the memory address i of the parity holding unit 114 to which the new parity is transferred is stored.
  • the data buffer initialization register 297 is set by the disk array data transfer generation means control command
  • the data in the data 1 buffer 284 and the data 2 buffer 285 are initialized to 0 and exclusive.
  • the logical OR operation means 287 becomes a state in which data can be accepted.
  • the input / output mode switches according to the delayed parity processing (P 1).
  • the transfer unit is n bytes.
  • the old parity is transferred by n bytes from the address X to the data 1 buffer 284 via the data input / output means 283 (902).
  • the old update data is transferred by n bytes from the address y to the exclusive OR operation means 287 via the data input / output means 283 and exclusive with the new data in the data 1 buffer 284
  • the logical OR is calculated, and the result is put into the data 2 buffer 285 (9 03).
  • the buffer 2 285 has a new parity.
  • the new parity in the data 2 buffer 285 is transferred n bytes to the address i via the data input / output means 283 (904)
  • the above is the operation of one transfer unit in the delayed parity processing mode. Before transferring the next transfer unit, subtract n from transfer length register 288 and add n to each address register. Then, next, in the same way as above, address (x + n), Transfer of n bytes is performed from address (y + n), and transfer of n bytes is performed to address (i + n). By continuing this operation until the transfer length register 288 becomes 0, DMA transfer in the delayed parity processing mode is performed. When the DMA transfer ends, the data transfer generation management means 286 issues an interrupt signal and ends the processing.
  • the disk array data transfer generation means 254 since the disk array data transfer generation means 254 performs data transfer and exclusive OR operation simultaneously when generating new updated data and new parity, it generates new updated data and new parity. Overhead generated when transferring data to be transferred can be reduced. Further, since the temporary holding means is arranged in the main memory 104, the memory can be effectively used and the manufacturing cost can be reduced.
  • the system configuration of the fourth embodiment is the same as that of FIG.
  • the difference from the third embodiment lies in the difference in the configuration and operation of the disk array data transfer generation means 255 and the disk interface control means 205 to 209.
  • the configuration of the disk array data transfer generation means 254 of the fourth embodiment is the same as that of the third embodiment except that the data transfer generation management means 286 of FIG. It is a register added.
  • the disk array data transfer generation means 254 of the fourth embodiment is similar to the disk array data transfer means 202 of the first embodiment in addition to the operation of the disk array data transfer generation means 254 of the third embodiment. It has a function to perform batch DMA transfer from transfer destination 1 to transfer destination 2 and transfer destination 3. Since the disk interface control means 205 to 209 do not have a DMA transfer function, data transfer between the disk interface control means 205 to 209 and the main memory 104 is performed by disk array data transfer.
  • the type of the disk array read process and the type of the disk array write process in the disk array system of the fourth embodiment are the same as those of the third embodiment except for the power operation.
  • the changes from the third embodiment are shown below.
  • the old data that is the target data is Performs a process of reading from the disk and performing batch DMA transfer to the user area 108 and temporary storage means.
  • the disk array read processing (R 2) is the same as in the third embodiment.
  • the process of transferring new data from the user area 108 to the data disk and the process of transferring new data from the user area 108 to the temporary storage unit are performed by transferring the new data to the user area 1.
  • 08 Perform a batch DMA transfer to the data disk and the temporary holding means.
  • the process of transferring the old parity to the temporary holding unit and the process of transferring the new parity to the parity disk are performed by the disk array data transfer generating unit.
  • the fourth embodiment described above has the same effects as the third embodiment.
  • FIG. 16 shows the system configuration of the fifth embodiment.
  • FIG. 16 shows the disk array data transfer generation means 25 4 in FIG. 10 of the third embodiment, and the exclusive logic shown in FIG. 5 of the first embodiment and the disk array data transfer means 202 shown in FIG. The sum generation means is replaced by 203. If the disk array data transfer means 202 of the array control auxiliary means 2 and the exclusive OR generation means 203 are provided as one chip, it is clear that the effects described in the third embodiment can be obtained. It is obvious that mounting these components on one board can improve the expandability of the system as described in the first embodiment.
  • the disk array control program area 109 of the main memory 104 includes a request receiving section 120, a request management section 121, and an address conversion section 122. , Old data search unit 123, parity search unit 124, array control auxiliary unit control command generation unit 125, disk array data transfer unit control unit 130, and disk interface control unit control It comprises a unit 131, an exclusive-OR generating means control unit 1332, a request ending unit 126, and a delayed parity processing determination unit 127.
  • the configuration of the holding means 250 is the same as the old data holding means 2 16 in FIG. 1 of the first embodiment, the old data address holding unit 110, the parity holding means 2 18 and the parity address holding unit 1 1 1 are unrecorded. This is the same as the parity address holding means 250.
  • the operations of the disk array data transfer means 202 and the exclusive OR generation means 203 are the same as those of the first embodiment, and the disk array data transfer means 202 can perform batch DMA transfer.
  • the control of the array control assisting means 2 is performed by the host CPU 101, not by the MPU 210 as shown in FIG.
  • the means is arranged in the main memory 104 of the host system 1.
  • the unit 128 issues the control command to the MPU 210 of FIG.
  • the MPU 210 that has received the control command performs the following processing using the MPU control program area 214 shown in FIG.
  • the request receiving unit 220 passes the processing to the request managing unit 221.
  • the request management unit 222 transfers the processing to the disk array data transfer unit control unit 222, the disk interface control unit control unit 222, and the exclusive OR generation unit control unit 222.
  • the exclusive data OR control means 222 is used for the disk array data transfer means 202
  • the disk interface control means control section 230 is used for the disk interface control means 205 to 209.
  • the means control section 224 issues respective control commands to the exclusive OR generation means 203.
  • the request management unit 221 receives interrupt signals from the disk array data transfer unit 202, the disk interface control units 205 to 209, and the exclusive OR generation unit 203, and When all the processes are completed, the process is passed to the request ending unit 225.
  • the request ending section 2 25 sends an interrupt signal to the host CPU 101.
  • the host CPU 101 Upon receiving the interrupt signal, the host CPU 101 shifts the processing to the request termination unit 126 using the request management unit 121 in the disk array control program area 109 shown in FIG. 1 2 6 ends the entire processing.
  • the request management unit 122 Processing shifts.
  • the request management unit 121 transfers the processing to the disk array data transfer unit control unit 130, the disk interface control unit control unit 131, and the exclusive OR generation unit control unit 132, and the disk array data transfer unit
  • the control unit 130 has exclusive logic for the disk array data transfer means 202 and the disk interface control means control unit 131 has exclusive logic for the disk interface control means 205 to 209.
  • the sum generation unit control unit 132 issues each control command to the exclusive OR generation unit 203.
  • the request management unit 121 receives an interrupt signal from the disk array data transfer means 202 and the disk interface control means 205 to 209, and when all processing is completed, the request ending unit 1 26 Pass the processing to.
  • the request ending section 1 26 ends the entire processing.
  • the temporary holding means is arranged in the main memory 104, so that the memory can be used effectively and the manufacturing cost can be reduced as compared with the first embodiment.
  • the system configuration of the sixth embodiment is the same as that of FIG.
  • the difference from the fifth embodiment lies in the difference in the configuration and operation of the disk array data transfer means 202 and the difference in the configuration and operation of the disk interface control means 205 to 209.
  • the configuration and operation of the disk array data transfer means 202 of the sixth embodiment are the same as those of the disk array data transfer means 202 shown in FIG. 9 of the second embodiment. There is only one destination.
  • the configuration and operation of the disk interface control means 205 to 209 are the same as those of the second embodiment.
  • the disk interface control means 205 to 209 and the main memory 10 4 DMA transfer is performed.
  • the array control / assistance means 2 is controlled not by the MPU 210 but by the host CPU 101, and uses only the main memory 104 of the host system 1 as the memory.
  • the difference between the disk array read / write processing operations of the sixth embodiment and the second embodiment is the same as the difference between the fifth embodiment and the first embodiment described in the fifth embodiment. Further, the type classified according to the type stored in the temporary holding means is the same in the second embodiment and the sixth embodiment. The sixth embodiment has the same effect as the fifth embodiment.
  • FIG. 18 shows the system configuration of the seventh embodiment.
  • FIG. 18 shows the disk array data transfer means 202 and the exclusive OR generation means 203 in FIG. 1 of the first embodiment, and the disk array data transfer generation means 25 shown in FIG. 12 of the third embodiment. Replaced with 4. If the disk array data transfer generation means 2 54 of the array control auxiliary means 2 is provided as one chip, it is clear that the effects described in the third embodiment can be obtained, and the disk array data transfer generation means 25 can be obtained. It is obvious that mounting the memory 4 and the memory 2 12 on one board can improve the expandability of the system as described in the first embodiment.
  • the MPU control program area 2 14 of the MPU memory 2 11 includes a request receiving section 220, a request management section 221, and a disk array data transfer generation means control section. 2 2 6, a disk interface X-source control means control section 2 2 3, and a request end section 2 2 5.
  • the configuration of the disk array control program area 109 of FIG. 18 is the same as that of FIG. 2 of the first embodiment.
  • the operation of the disk array data transfer generation means 254 is the same as that of the third embodiment, and the disk array data transfer generation means 254 can perform DMA transfer and parity generation.
  • the control of the array control auxiliary means 2 is performed not by the host CPU 101 but by the MPU 210 and the temporary holding means is controlled by the array. It is arranged in the memory 2 1 2 in the control auxiliary means 2. The differences between the disk array read / write processing operations of the seventh embodiment and the third embodiment are described below.
  • the types classified according to the types stored in the temporary holding means are the same in the third embodiment and the seventh embodiment.
  • the request management section 122 processes the request. Moves.
  • the request management section 121 transfers the processing to the disk array data transfer generation means control section 133 and the disk interface control means control section 131, and the disk array data transfer generation means control section 133 transfers the disk array data.
  • the disk interface control means control section 1331 issues a control command to the transfer generation means 254 and the disk interface control means 205 to 209, respectively.
  • the request management unit 121 receives an interrupt signal from the disk array data transfer generation unit 255 and the disk interface control unit 205 to 209, and ends the request when all processes are completed. Pass the process to Part 1 26.
  • the request ending section 1 26 ends the entire processing.
  • the control unit 128 issues the control command to the MPU 210 of FIG.
  • the MPU 210 that has received the control command performs the following processing using the MPU control program area 214 shown in FIG.
  • the request receiving unit 220 passes the processing to the request managing unit 221.
  • the request management section 222 transfers the processing to the disk array data transfer generation means control section 222 and the disk interface control means control section 222, and the disk array data transfer generation means control section 222 forms the disk array data transfer generation means control section 222.
  • the disk interface control means control section 223 issues respective control commands to the array data transfer generation means 254 and the disk interface control means 205 to 209, respectively.
  • the request management unit 221 receives an interrupt signal from the disk array data transfer generation unit 254 and the disk interface control unit 205 to 209, and terminates the request when all processes are completed. Pass the processing to the part 2 25.
  • the request ending section 2 25 issues an interrupt signal to the host CPU 101.
  • the host CPU 101 Upon receiving the interrupt signal, the host CPU 101 shifts the processing to the request termination unit 126 using the request management unit 121 in the disk array control program area 109 shown in FIG. 1 2 6 ends the entire processing.
  • the disk array data transfer generating means 254 simultaneously performs data transfer and exclusive OR operation when generating new updated data and new parity. Overhead generated when transferring data for generating the quality can be reduced.
  • the system configuration of the eighth embodiment is the same as that of FIG.
  • the difference from the seventh embodiment lies in the difference in the configuration and operation of the disk array data transfer generation means 254 and the difference in the configuration and operation of the disk interface control means 205 to 209.
  • the configuration and operation of the disk array data transfer generation means 254 of the eighth embodiment are the same as those of the disk array data transfer generation means 254 of the fourth embodiment, and can perform batch DMA transfer and parity generation.
  • the configuration and operation of the disk interface control means 205 to 209 are the same as those in the fourth embodiment, and perform the DMA transfer between the disk interface control means 205 to 209 and the main memory 104. .
  • the array control auxiliary means 2 is controlled by the MPU 210 instead of the host CPU 101, and the temporary holding means is controlled by the array control. It is arranged in the memory 2 1 2 in the auxiliary means 2.
  • the difference between the disk array read / write processing operations of the eighth embodiment and the fourth embodiment is the same as the difference between the seventh embodiment and the third embodiment described in the seventh embodiment.
  • the types classified according to the types stored in the temporary holding means are the same in the fourth embodiment and the eighth embodiment.
  • the eighth embodiment has the same effect as the seventh embodiment.
  • FIG. 20 shows a system configuration of the ninth embodiment.
  • the difference from the first embodiment is that a cache 2 51 capable of high-speed read / write is installed in the memory 2 12 of the auxiliary ray control auxiliary means 2.
  • the cache 25 1 includes a cache management means 25 2 for managing the address of the cache and a cache memory 25 3.
  • the target data read during the disk array read process is stored in the cache memory 25 3 and the old data holding unit 2 16 as old data.
  • the old data is read during the subsequent data write processing, the old data is read from the cache memory 253, so that the processing speed can be increased as compared with the read from the old data holding means 216.
  • the new data is transferred from the old data holding means 2 16 to the exclusive OR generation means 203 by DMA transfer.
  • the cache is hit when the old data is transferred or when the old data is DMA-transferred from the parity generation work area 2 17 to the exclusive OR generation means 203.
  • new data is transferred from the parity generation work area 217 to the exclusive OR generation unit 203 by DMA.
  • the cache hits when it is done.
  • the old parity is transferred from the parity generation work area 217 to the exclusive OR generation means 203 by DMA transfer.
  • the cache is hit.
  • the provision of the cache 251 in the memory 221 enables high-speed data reading, and speeds up disk array read / write processing. It should be noted that the provision of the cache 251 capable of high-speed read / write in the memory 211 of the array control auxiliary means 2 is applicable to the second, seventh, and eighth embodiments. As is clear from the above description, according to the computer system of the present invention, the disk array write processing can be sped up by reducing the number of disk accesses other than the writing of new data.
  • the present invention it is possible to improve expandability in which a simple subsystem can be added to an existing host device.
  • the computer system of the present invention by storing data for generating parity in the main memory of the host device, a memory for holding data for newly generating parity and this memory Since a control circuit for controlling the control is not required, the configuration is simple, and low cost can be realized.
  • the bus connecting the system bus of the host device and the disk device control circuit for controlling each of the plurality of disk devices or the traffic of the system bus or the main memory is reduced. Can be accelerated.
  • data necessary for parity generation is retained without squeezing the memory capacity of the main memory, the traffic of the main memory access of the host device is reduced, and the processing speed of the CPU is increased. Can be planned.
  • the data transfer function to the main memory of the host device included in the disk control circuit for controlling each of the plurality of disk devices is utilized to generate the parity on the main memory with a simple configuration. Data can be transferred to the parity generation memory.
  • the data transfer function to the main memory of the host device included in the disk control circuit for controlling each of the plurality of disk devices is utilized to generate the parity on the main memory with a simple configuration.
  • Data can be transferred to the main memory in an area that stores data required for parity generation.
  • data transfer for parity generation can be speeded up.

Description

明 細 書 計算機システム 技術分野
本発明は、 コンピュータシステムの記憶システムとして用いられている複数の ディスク装置をアレイ状に配置したアレイ型ディスクシステムのための制御方式 に係わり、 特に、 CPU負荷の削減を目的とした計算機システムに関するもので のる。
背景技術
ディスクアレイシステムとは、 複数のディスク装置をァレイ状に配置した構成 をとり、 リード要求 (データの読み出し要求) およびライト要求 (データの書き 込み要求) をディスクの並列動作によって高速に処理し、 パリティ (冗長) デー タを付加することにより信頼性を向上させた外部記憶装置である。 ディスクァレ ィシステムは、 RA I D (Redundant Arrays of Inexpensive Disks ) と呼ばれ、 パリティデータの種類と構成により 5つのレベルに分類されている (論文:
A Case for Redundant Arrays of Inexpensive Disks (RAID)", David A.
Patterson, Garth Gibson, and Randy H. Katz, Computer Science Division Department of Electrical Engineering and Computer Sciences, University of California Berkeley) 0
上記分類法のレベル 5 (以下、 RA I D 5と呼ぶことにする) においては、 パ リティが各ディスクに分散されて記憶されており、 パリティ更新時に 1台のパリ ティディスクに処理が集中することを防ぎ、 ライト処理時の性能低下を抑えるこ とができる。 したがって、 小さなサイズの読み書きが多量に発生するランダムァ クセスに対し性能向上が見込まれる (日経エレク トロニクス 1993/4/26 No.579 P.77〜91 「特集ディスクアレイ装置」 ) 。
ディスクアレイシステムでは、 ディスクを並列に動作させるためと、 パリティ データを付加するために、 特殊なアドレス変換を行う必要があり、 従来は専用の ハードウヱァによってそのァドレス変換を行ってきた。 該システムに関する公知 例としては、 特開平 2— 2 3 6 7 1 4号公報を挙げることができる。 し力、し、 ホ ストシステムの C P U (Central Process ing Uni t ) 性能が向上してきたことか ら、 ディスクアレイ特有のァドレス変換をソフトウエアプログラムで行うディス クアレイシステムも存在している。 本明細書では、 このディスクアレイシステム を、 ソフトゥヱァ R A I Dと呼ぶことにする。 ディスクの並列動作のためのアド レス変換をソフトウヱァプログラムで行うディスクアレイシステムに関する公知 例としては、 特開平 5— 2 5 0 0 9 9号公報を挙げることができる。
ここで、 従来例として、 R A I D 5のソフトウエア R A I Dを図 2 1のシステ ム構成を用いて説明する。 図 2 1において、 1はホストシステム、 4はディスク インターフヱ一ス制御手段、 3はディスク装置群である。
ホストシステム 1は、 ホスト C P U 1 0 1と、 高速リード ·ライ ト可能なメモ リであるキヤッシュ 1 0 2と、 ローカルバス · システムバス間ブリッジ 1 0 3と、 データやプログラムを格納するメインメモリ 1 0 4と、 バスインターフェース 1 0 7で構成している。 口一カルバス 1 0 5は、 ホスト C P U 1 0 1と、 キヤッシ ュ 1 0 2と、 ローカルバス · システムバス間プリッジ 1 0 3を接続する。 システ ムバス 1 0 6は、 ローカルバス · システムバス間ブリッジ 1 0 3と、 バスィンタ 一フェース 1 0 7を接続する。 ディスクアレイ制御プログラム領域 1 0 9は、 メ インメモリ 1 0 4内に配置し、 ディスクアレイシステムを制御するのに必要なデ イスクアレイ制御プログラムを格納する。
ディスクインターフェース制御手段 4は、 ホストシステム 1のバスインターフ エース 1 0 7と接続する。
ディスク装置群 3は、 本従来例においては 5台のディスク装置 3 0 1〜3 0 5 により構成している。 ディスク装置 3 0 1〜3 0 5は、 ディジーチェーン接続に より、 ディスクインターフヱ一ス制御手段 4と接続する。
ディスクアレイシステムでは、 複数のディスクをストライビングし、 そのスト ライプごとに、 パリティデータを付加することにより、 信頼性を上げている。 デ イスクアレイライ ト時には、 各ディスク装置のストライプごとのデータの排他的 論理和演算によってパリティを生成する。 ホスト C P U 1 0 1は、 ディスクァレ ィ制御プログラム領域 1 0 9に格納されているディスクアレイ制御プログラムを 用いて、 ストライビングのためのァドレス変換とパリティ生成を行う。
ここで、 ディスクの並列動作とパリティデータの付加を含めたディスクアレイ システム全体として行うリード処理とライ ト処理を、 それぞれ、 ディスクアレイ リード処理およびディスクアレイライ 卜処理と呼ぶこととする。 また、 ディスク アレイリード処理およびディスクアレイライ ト処理において、 データを読み書き するディスクをデータディスク、 パリティを読み書きするディスクをパリティデ イスクと呼ぶこととする。
従来技術の R A I D 5のディスクアレイライ ト処理時において、 パリティは式 1により求められる。 なお、 X0R は、 排他的論理和演算子のことである。
新パリティ = 新データ X0R 旧データ X0R 旧パリティ (式 1 ) 式 1において、 新データとは、 ディスクアレイライ 卜処理において新しく書き 込むデータであり、 旧データとは、 新データが書き込まれる直前のデータ、 つま り、 新データが上害きするデータのことである。 新パリティとは、 新データに対 応するパリティデータであり、 旧パリティとは、 旧データに対応するパリティデ 一夕である。
ディスクアレイライ ト処理においては、 旧データをデータディスクから、 旧パ リティをパリティディスクからそれぞれ読み出し、 式 1によって新パリティを生 成した後、 新データをデータディスクに、 新パリティをパリティディスクにそれ ぞれ書き込む。
以下、 データディスクからの旧データのリード処理を旧データリード処理、 デ —夕ディスクへの新データのライ ト処理を新データライ ト処理と呼ぶこととする。 同様に、 パリティディスクからの旧パリティのリード処理を旧パリティリ一ド処 理、 パリティディスクへの新パリティのライ ト処理を新パリティライ 卜処理と呼 ぶこととする。
従来技術のディスクアレイでは、 ディスクアレイライ ト処理において、 データ と、 該データに対応するパリティを略同時に更新することで、 ディスク障害に対 する信頼性を確保している。 し力、し、 ディスクアレイライ ト処理を 1回行う場合 に、 データディスクと、 パリティディスクに対して、 リードとライ トを各 1回ず つ行い、 合計 4回のディスクアクセスを必要とする。 また、 2台のディスク装置を占有するため、 各ディスク装置による並列処理の 多重度が下がることになる。
以上のように、 従来のディスクアレイにおいては、 ライト処理性能が低下する という問題がある。
さらに、 ソフトウェア制御による冗長性付きのディスクアレイにおいては、 デ イスクアレイ特有のァドレス変換と、 パリティ生成のための排他的論理和演算を C P Uによって行っており、 ディスクアレイ処理プログラムの制御に要する C P Uの負荷は大きい。 したがって、 多量のディスクアレイライト処理を行う場合は、 ディスクアレイ処理プログラムの制御に要する C P U負荷の増加によって、 アブ リケーシヨンの性能低下を招くという問題がある。
発明の開示
本発明の第 1の目的は、 新データの書き込み以外のディスクアクセス回数を削 減することでディスクアレイライ ト処理を高速化した計算機システムを提供する C あ
また、 本発明の第 2の目的は、 ディスクアレイ処理プログラムの制御に要する C P Uの負荷を低減した計算機システムを提供することにある。
また、 本発明の第 3の目的は、 前記第 1、 第 2の目的に加え、 既存のホスト装 置に簡単なサブシステムを付加できる拡張性を有する計算機システムを提供する ことにめる。
また、 本発明の第 4の目的は、 前記第 1、 第 2の目的に加え、 パリティを生成 するためのデータをホスト装置側のメインメモリ上に格納することで、 新たにパ リティを生成するためのデータを保持するためのメモリやこのメモリを制御する ための制御回路を不要とした簡単な構成であり、 かつ低コストを実現した計算機 システムを提供することにある。
また、 本発明の第 5の目的は、 前記第 1、 第 2の目的に加え、 ホスト装置のシ ステムバスと複数のディスク装置をそれぞれ制御するディスク装置制御回路とを 接続するバスもしくは前記システムバスもしくはメインメモリのトラフィックを 低減し、 処理の高速化を図る計算機システムを提供することにある。
また、 本発明の第 6の目的は、 前記第 1、 第 2の目的に加え、 メインメモリの メモリ容量を圧迫せずにパリティ生成に必要なデ タを保持し、 ホス卜装置のメ インメモリアクセスの卜ラフィックを低減し、 C P Uの処理の高速化を図る計算 機システムを提供することにある。
また、 本発明の第 7の目的は、 前記第 1、 第 2の目的に加え、 複数のディスク 装置をそれぞれ制御するディスク制御回路が有するホスト装置のメインメモリへ のデータ転送機能を活かし、 簡単な構成でメインメモリ上のパリティ生成のため のデータをパリティ生成用メモリに転送することができる計算機システムを提供 する とにめる。
また、 本発明の第 8の目的は、 前記第 1、 第 2の目的に加え、 複数のディスク 装置をそれぞれ制御するディスク制御回路が有するホスト装置のメインメモリへ のデータ転送機能を活かし、 簡単な構成でメインメモリ上のパリティ生成のため のデータをメインメモリ上のパリティ生成のために必要となるデータを格納して おく領域に転送することができる計算機システムを提供することにある。
また、 本発明の第 9の目的は、 パリティ生成のためのデータ転送を高速化でき る計算機システムを提供することにある。
前記第 1、 第 6の目的を達成するために、 複数のディスク装置と、 C P Uとメ インメモリと前記複数のディスク装置を制御するディスク制御回路とを備えたホ スト装置とを有する計算機システムであり、 前記 C P Uは、 前記メインメモリ上 のプログラムに従って、 前記複数のディスク装置をパリティ付きの論理的な一台 のディスクアレイ装置として管理し、 前記新データを前記ディスク装置に書き込 む処理に遅延させて非同期に前記新ノ、'リティの生成と前記ディスク装置への書き 込み処理を行うよう制御するものであり、 この計算機システムに、 更新データ、 旧パリティ、 旧データを保持するパリティ生成用メモリを設けたものである。 前記第 2の目的を達成するために、 前記パリティ生成用メモリに保持されてい るデータと前記メインメモリ上に保持されている前記ディスク制御回路に書き込 むべき新デ一タとから新パリティ又は前記更新データを生成するパリティ生成回 路と、 前記ディスクアレイ装置からの読み出し時には読み出すべきデータを前記 ディスク制御回路から前記ノ、。リティ生成用メモリと前記メインメモリへ転送し、 前記ディスクアレイ装置への書き込み時には前記新データを前記メインメモリ力、 ら前記ノ、'リティ生成用メモリと前記ディスク制御回路へ転送する第 1のデータ転 送回路を設けたものである。
前記第 4の目的を達成するために、 パリティ生成のためのデータである前記更 新データ、 旧パリティ、 旧データを前記メインメモリ上に保持するためのメイン メモリ上のパリティ生成用領域と、 前記メインメモリ上のパリティ生成領域に保 持した前記パリティ生成のためのデータと前記メインメモリ上の前記ディスク制 御回路に書き込むべき新データを保持しているメインメモリ上の新データ領域に 保持する前記新デ一タとから前記新ノ Jティ又は更新デー夕を生成するパリティ 生成回路と、 前記ディスクアレイ装置からの読み出し時には読み出すべきデータ を、 前記ディスク制御回路から前記メインメモリ上のパリティ生成用領域と前記 メインメモリ上の読みだすべきデータを格納するメインメモリ上の読みだしデ一 タ領域の両方へ転送し、 前記ディスクアレイ装置への書き込み時には前記メィン メモリ上の新データ領域から、 前記メインメモリ上のパリティ生成用領域と前記 ディスク制御回路へ転送する第 2のデータ転送回路を設けたものである。
前記第 7の目的を達成するために、 前記パリティ生成用メモリと、 前記パリテ ィ生成回路と、 前記ディスクアレイ装置からの読み出し時には読み出すべきデー タを前記メインメモリ上の読みだしデータ領域へ転送し、 前記デイスクアレイ装 置への害き込み時には前記メインメモリ上の新データ領域から前記新データを前 記ディスク制御回路へ転送する前記ディスク制御回路と、 ディスクアレイ装置か らの読み出し時には前記読み出すべきデータを前記パリティ生成用メモリに転送 し、 前記ディスクアレイ装置への書き込み時には前記メインメモリ上の新デ一夕 領域から前記新データを前記パリティ生成用メモリに転送する第 3のデータ転送 回路とを設けたものである。
前記第 8の目的を実現するために、 前記メインメモリ上のパリティ生成用領域 と、 前記パリティ生成回路と、 前記ディスクアレイ装置からの読み出し時には読 み出すべきデータを前記メインメモリ上の読みだしデータ領域へ転送し、 前記デ イスクァレイ装置への書き込み時には前記メインメモリ上の新データ領域から新 データを前記ディスク制御回路へ転送する前記ディスク制御回路と、 ディスクァ レイ装置からの読み出し時には前記メインメモリ上の読みだしデータ領域上の読 み出されたデータを前記メインメモリ上のパリティ生成用領域に、 前記ディスク ァレイ装置への書き込み時には前記メインメモリ上の新データ格納領域から新デ 一夕を前記メインメモリ上のパリティ生成用領域に転送する第 4のデータ転送回 路とを設けたものである。
前記第 9の目的を達成するために、 前記パリティ生成用メモリと前記第 1、 第 3いずれかのデータ転送回路との間に前記パリティ生成のためのデータを一時的 に保持するパリティ生成用高速キャッシュメモリを設けたものである。
前記第 3の目的を達成するために、 前記パリティ生成用メモリと、 前記パリテ ィ生成回路と、 前記第 1から第 4のデータ転送回路のうちの 1つとを 1つのボー ド上に搭載して提供する。 もしくは、 前記パリティ生成回路と、 前記第 1から第 4のデータ転送回路のうちの 1つとを 1つのボード上に搭載して提供する。 また、 前記パリティ生成用メモリと、 前記パリティ生成回路と、 高速キャッシュと、 前 記第 1から第 4のデータ転送回路のうちの 1つとを 1つのボード上に搭載して提 供する。
前記第 5の目的を達成するために、 前記パリティ生成回路と、 前記第 1から第 4のデータ転送回路のうちの 1つとを 1チップに上に形成し、 前記システムバス、 もしくは前記ディスク制御装置と前記システムバスを接続するバスのどちらかに 接続するよう構成したものである。
ホスト装置の C P Uは、 ホスト装置のメィンメモリ上のプログラムに従って、 複数のディスク装置に信頼性を付加するパリティ付きの論理的な 1台のディスク アレイ装置として前記複数のディスク装置を管理、 制御する。 ディスク制御回路 は、 複数のディスク装置への要求の発行、 データ転送、 要求の終了等のディスク 制御を行う。
前記 C P Uは前記ディスクァレイ装置へのデータ書き込み要求を受信すると、 前記プログラムに従い、 前記複数のディスク装置のうちの少なくとも 1台のディ スク装置へのデータ書き込み要求に変換する。 C P Uは、 データの書き込みに先 立ち、 前記メインメモリ上の書き込むべきデータである新データに対応するパリ ティも新規のパリティである新パリティに更新するため、 新パリティの生成に必 要な前記新データの書き込まれる直前のデータである旧データを読みだし、 前記 新データと前記旧データとの排他的論理和を計算し、 この結果を更新デ一夕とし てパリティ生成用メモリに保存すると共に前記新データを次回の同一ァドレスの 前記ディスクアレイ装置へのアクセスの際の旧データとして保存する。 この処理 の後、 前記新データは前記ディスクアレイ装置に書き込まれ、 前記データ害き込 み要求は終了する。 C P Uは、 この新データ書き込み処理に非同期に遅延させて、 前記旧データに対応するパリティである旧パリティを前記デイスクアレイ装置か ら読みだし、 前記パリティ生成用メモリに保存してある前記更新データと前記旧 パリティとの排他的論理和を計算し、 この結果を新パリティとして前記ディスク ァレイ装置に保存すると共に前記パリティ生成用メモリに次回の同一ァドレスの 前記ディスクアレイ装置へのアクセスの際の旧パリティとして保存する。 同様に、 前記 C P Uは前記デイスクアレイ装置へのデータ読みだし要求を受信すると、 前 記プログラムに従い、 前記ディスクアレイ装置からデータを読みだし、 メインメ モリ上に転送すると共に、 前記パリティ生成用メモリに次回の同一ァドレスの前 記ディスクアレイ装置へのアクセスの際の旧データとして保存する。
前記パリティ生成用メモリは、 前記旧データと、 前記更新データと、 前記旧パ リティとを一時保持することができ、 前記新パリティを生成する際に必要なデー タである前記更新データ、 旧データ、 旧パリティのいずれか一つでも存在してい る場合には、 C P Uは前記ディスクアレイ装置からではなく、 前記パリティ生成 用メモリからこれらのデータを読みだし新パリティの生成処理に使用することが できるので、 前記ディスクアレイ装置からデータをリードしてくる必要がなくデ イスクアレイ装置へのアクセス回数が減らすことができる。
また、 前記パリティ生成用メモリに前記パリティ生成に必要なデ一タを格納し ておくので、 前記メインメモリ容量を圧迫することなく、 また、 前記メインメモ リアクセスのトラフィックを低減できるという前記第 1、 第 6の目的を達成する ことができる。
さらに、 パリティ生成回路は、 前記パリティ生成用メモリに保持されている前 記更新データ、 旧データ、 旧パリティと、 前記新データとから前記新パリティ又 は前記更新データの生成を前記 C P Uの指令に従い、 生成の間、 前記 C P Uの介 在なく実施することができる。 また、 第 1のデータ転送回路は、 前記ディスクァ レイ装置からのデータ読み出し時には読み出すべきデータを前記ディスク制御回 路から前記パリティ生成用メモリとメインメモリ上の読みだしデータ領域の両方 へ転送し、 前記ディスクアレイ装置への書き込み時にはメィンメモリ上新データ 領域から前記新データを前記 、°リティ生成用メモリと前記ディスク制御回路へ転 送することを、 C P Uの指令に従い、 データ転送の間 C P Uの介在なく実施する ことができる。 また、 前記パリティ生成回路および前記第 1のデータ転送回路は、 ディスクアレイ制御処理であるパリティ生成処理並びにパリティ生成用メモリへ のデータ転送処理を、 前記 C P Uの介在なく実施できるので、 前記 C P Uの負荷 を低減するという前記第 2の目的を達成することができる。
さらに、 メインメモリ上のパリティ生成用領域は、 前記パリティ生成用メモリ に格納していた前記更新データ、 旧パリティ、 旧データを前記メインメモリ上に 保持し、 パリティ生成回路は、 前記メインメモリ上のパリティ生成領域に保持し た前記パリティ生成用デー夕と前記メインメモリ上の新データ領域に保持する前 記新データとから前記新パリティ又は更新データを生成し、 第 2のデータ転送回 路は、 前記 C P Uからの指令に基づき、 データ転送中は前記 C P Uの介在を一切 必要とせずに、 前記ディスクアレイ装置からの読み出し時には読み出すべきデ一 タを前記デイスク制御回路から前記メインメモリ上のパリティ生成用領域と前記 メインメモリ上の読みだしデータ領域の両方へ転送し、 前記ディスクアレイ装置 への書き込み時には前記メインメモリ上の新データ領域から新データを前記メイ ンメモリ上のパリティ生成用領域と前記ディスク制御回路の両方へ転送できるの で、 前記第 1、 第 2の目的を前記同様達成でき、 さらに、 前記パリティ生成用メ モリと、 その制御回路を不要にすることができるので簡単な構成で、 かつ低コス トを実現するという第 4の目的を達成できる。
ディスク制御回路は、 前記 C P Uからの指令により、 データ転送の間、 前記 C P Uの介在なく、 前記ディスクアレイ装置からの読み出し時には前記読み出しデ ―夕を前記メインメモリ上の読みだしデータ領域へ転送し、 前記ディスクアレイ 装置への書き込み時には前記メインメモリ上の新データ領域から前記新デー夕を 前記ディスク制御回路へ転送することができ、 第 3のデータ転送回路は、 前記 C P Uの指令により、 データ転送の間、 前記 C P Uの介在なく、 前記ディスクァレ ィ装置からの読み出し時には前記ディスク制御回路が前記メインメモリ上の読み だしデータ領域に転送した前記読み出しデータを前記パリティ生成用メモリに転 送し、 前記ディスクァレイ装置への書き込み時には前記メインメモリ上の新デー タ領¾±の新デー夕を前記 、。リティ生成用メモリに転送することができるので、 前記第 1、 第 2の目的を前記同様達成でき、 さらに、 複数のディスク装置をそれ ぞれ制御するディスク制御回路が有する前記メインメモリへのデータ転送機能を 活かし、 簡単な構成でメインメモリ上のパリティ生成のためのデー夕をパリティ 生成用メモリに転送することができるという第 7の目的を達成できる。
さらに、 前記メインメモリ上パリティ生成用領域と、 前記パリティ生成回路と、 前記ディスク制御回路は前記同様動作し、 第 4のデータ転送回路は、 前記 C P U の指令により、 データ転送の間、 前記 C P Uの介在なく、 前記ディスクアレイ装 置からの読み出し時には前記ディスク制御回路が前記メインメモリ上読みだしデ ―タ領域に転送した前記読みだしデータを前記メインメモリ上パリティ生成用領 域に転送し、 前記ディスクアレイ装置への書き込み時には前記メインメモリ上新 データ領域から前記新データを前記メインメモリ上パリティ生成用領域に転送す ることができる。 したがって、 前記第 1、 第 2の目的を前記同様達成できる。 さ らに、 前記ディスク制御回路が有する前記メインメモリへのデータ転送機能を活 力、し、 簡単な構成でパリティ生成のために必要なデータを前記メインメモリ上パ リティ生成用領域に転送することができるという前記第 8の目的を達成できる。 さらに、 、'リティ生成用高速キャッシュメモリは、 前記パリティ生成用メモリ と、 前記第 1または第 3のデータ転送回路との間にあり、 前記ディスク制御回路 もしくは前記メインメモリと前記パリティ生成用メモリ間のデータ転送されるデ 一タを一時保存でき、 前記 、'リティ生成処理の際に該当するデータが前記 'リテ ィ生成用高速キャッシュメモリ内に存在するときは前記高速キャッシュメモリか らデータを転送することができる。 したがって、 パリティ生成のためのデータ転 送を高速化できるという前記第 9の目的を達成できる。
さらに、 前記パリティ生成用メモリと、 前記パリティ生成回路と、 前記第 1ま たは第 3のデータ転送回路を 1つのボ一ド上に搭載すると簡単なサブシステムと してホスト装置から独立させることができるので、 既存のホスト装置に簡単なサ ブシステムを付加できる拡張性を提供できるという前記第 3の目的を達成するこ とができる。
また、 前記パリティ生成用メモリと、 前記第 2または第 4のデータ転送回路を 1つのボード上に搭載すると簡単なサブシステムとしてホスト装置から独立させ ることができるので、 既存のホス卜装置に簡単なサブシステムを付加できる拡張 性を提供できるというもう一つの前記第 3の目的を達成することができる。
さらに、 前記 、'リティ生成回路と前記第 1から第 4のデータ転送回路のうちの 1つとを 1チップ上に集積することで、 前記更新データ及び前記新パリティの生 成処理と、 前記データ転送処理の間に同一データを扱う際には前記 "?リティ生成 メモリまたは前記メインメモリ上パリティ生成用領域から二度にわたり同じデ一 タを転送する必要をなくすことができるので、 ホスト装置のシステムバスと前記 ディスク装置制御回路とを接続するバスもしくは前記システムバスもしくは前記 メインメモリのトラフィックを低減し、 処理の高速化を図ることができるという 前記第 5の目的を達成することができる。
図面の簡単な説明
図 1 A、 図 I Bは、 第 1の実施例における計算機システムのブロック図である c 図 2は、 第 1の実施例におけるディスクアレイ制御プログラム領域のプロック 図である。
図 3は、 第 1の実施例における M P U制御プログラム領域のプロック図である c 図 4は、 第 1の実施例におけるディスクアレイデータ転送手段のブロック図で め 。
図 5は、 第 1の実施例における排他的論理和生成手段のプロック図である。 図 6は、 第 1の実施例におけるディスクアレイリード処理動作図である。
図 7は、 第 1の実施例におけるデータライト処理動作図である。
図 8は、 第 1の実施例における遅延パリティ処理動作図である。
図 9は、 第 2の実施例におけるディスクアレイデータ転送手段のプロック図で のる。
図 1 0 A、 図 1 0 Bは、 第 3の実施例における計算機システムのブロック図で のる。 図 1 1は、 第 3の実施例におけるディスクアレイ制御プログラム領域のブロッ ク図である。
図 1 2は、 第 3の実施例におけるディスクアレイデータ転送生成手段のブロッ ク図である。
図 1 3は、 第 3の実施例におけるディスクアレイリード処理動作図である。 図 1 4は、 第 3の実施例におけるデータライト処理動作図である。
図 1 5は、 第 3の実施例における遅延パリティ処理動作図である。
図 1 6 A、 図 1 6 Bは、 第 5の実施例における計算機システムのブロック図で あ o。
図 1 7は、 第 5の実施例におけるディスクアレイ制御プログラム領域のブロッ ク図である。
図 1 8 A、 図 1 8 Bは、 第 7の実施例における計算機システムのブロック図で ある。
図 1 9は、 第 7の実施例における M P U制御プログラム領域のブロック図であ る。
図 2 0 A、 図 2 0 Bは、 第 9の実施例における計算機システムのブロック図で あな。
図 2 1は、 従来例における計算機システムのブロック図である。
発明を実施するための最良の形態
以下、 本発明の実施例を図を用いて説明する。
本発明の第 1の実施例を図 1のシステム構成を用いて説明する。 図 1において、 1はホストシステム、 2はアレイ制御補助手段、 3はディスク装置群である。 ホストシステム 1は、 ホスト C P U (中央処理演算機) 1 0 1 と、 キャッシュ 1 0 2と、 ローカルバス · システムバス間ブリッジ 1 0 3と、 メインメモリ 1 0 4 と、 バスィンタ一フェース 1 0 7で構成している。 ホスト C P U 1 0 1 と、 キ ャッシュ 1 0 2と、 口一カルバス · システムバス間ブリッジ 1 0 3はローカルバ ス 1 0 5により接続する。 口一カルバス · システムバス間プリッジ 1 0 3と、 ノく スィンタ一フェース 1 0 7は、 システムバス 1 0 6に接続する。
ホストシステム 1において、 メインメモリ 1 0 4は、 ユーザ領域 1 0 8 と、 デ イスクアレイ制御プログラム領域 1 0 9と、 旧データァドレス保持部 1 1 0と、 パリティア ドレス保持部 1 1 1を有する。
ディスクアレイ制御プログラム領域 1 0 9は、 図 2に示すように、 アプリケ一 シヨンなどから要求を受け取る要求受信部 1 2 0と、 次の処理を決定する要求管 理部 1 2 1と、 ディスクアレイシステム特有のアドレス変換 (データ分散/集合 処理を含む) を行い、 データディスクアドレスとパリティディスクアドレスを算 出するァドレス変換部 1 2 2と、 旧データが該一時保持手段に存在するかどうか を検索する旧データ検索部 1 2 3と、 後述する旧更新データ、 または、 新パリテ イカ、'該一時保持手段に存在するかどうかを検索するパリティ検索部 1 2 4 と、 デ イスクコマンドとディスクアレイデータ転送手段制御コマンドと排他的論理和生 成手段制御コマンドを生成するアレイ制御補助手段制御コマンド生成部 1 2 5 と、 アレイ制御補助手段制御コマンドを M P U 2 1 0に発行する M P U制御部 1 2 8 と、 アプリケーションなどに要求の終了を知らせる要求終了部 1 2 6と、 遅延パ リティ処理を行うべきかどうかを判定する遅延パリティ処理判定部 1 2 7で構成 している。
図 1に戻り、 アレイ制御補助手段 2は、 バスインターフェース 2 0 1と、 M P U ( マイクロ処理部) 2 1 0と、 M P Uメモリ 2 1 1と、 5つのディスク制御回 路 (以下、 ディスクインターフヱース制御手段) 2 0 5〜2 0 9と、 メモリ間コ ピ一、 および、 ディスクと各メモリ間、 パリティ生成回路 (以下、 排他的論理和 生成手段) 2 0 3と各メモリ間のデータ転送を行うデータ転送回路 (ディスクァ レイデータ転送手段) 2 0 2と、 排他的論理和生成手段 2 0 3と、 パリティ生成 のためのデータを格納するパリティ生成用メモリ (以下、 メモリ 2 1 2 ) と、 遅 延パリティ処理を行っていないパリティアドレスを記録する未記録パリティアド レス保持手段 2 5 0で構成し、 それぞれを M P Uバス 2 1 3で接続する。 該未記 録パリティアドレス保持手段 2 5 0は、 バッテリ一バックアップしておく。 ァレ ィ制御補助手段 2はホストシステムの一部として提供するか、 アレイ制御補助手 段 2に含まれるメモリ 2 1 2と、 ディスクアレイデータ転送手段 2 0 2と、 排他 的論理和生成手段 2 0 3とを 1つのボード上に構成し、 ホストシステム 1のシス テムバス 1 0 6や、 システムバス 1 0 6とディスクインタ一フェース 2 0 5〜2 0 9とを接続するアレイ制御補助手段内部バス 2 0 4に接続して構成することが 考えられる。 1ボードに構成した場合、 既存システムに簡単なサブシステムとし て付加でき、 拡張性を向上させることができる。 また、 バスインターフヱ一ス 2 0 1 と、 5つのディスクインターフェース制御手段 2 0 5〜 2 0 9と、 ディスク アレイデータ転送手段 2 0 2と、 排他的論理和生成手段 2 0 3と、 メモリ 2 1 2 をアレイ制御補助手段内部バス 2 0 4で接続する。 バスインターフヱ一ス 2 0 1 はホストシステム 1のバスインターフェース 1 0 7と接続する。 メモリ 2 1 2は、 ホスト C P U 1 0 1が管理するメモリアドレス空間にマツビングしているとし、 直接参照可能な構成であるとし、 バスインターフヱイス 2 0 1が制御を行う。 アレイ制御補助手段 2において、 M P Uメモリ 2 1 1は、 M P U制御プログラ ム領域 2 1 4と、 多数送られてくる M P Uコマンドをキューィングしておく M P Uコマンド格納領域 2 1 5を有する。 M P U制御プログラム領域 2 1 4は、 図 3 に示すように、 M P U制御部 1 2 8から要求を受け取る要求受信部 2 2 0と、 次 の処理を決定する要求管理部 2 2 1と、 ディスクアレイデータ転送手段 2 0 2に コマンドを発行するディスクアレイデータ転送手段制御部 2 2 2と、 ディスクィ ンターフヱース制御手段 2 0 5〜2 0 9にコマンドを発行するディスクインター フェース制御手段制御部 2 2 3と、 排他的論理和生成手段 2 0 3にコマンドを発 行する排他的論理和生成手段制御部 2 2 4と、 ホスト C P U 1 0 1に要求の終了 の割り込み信号を発行する要求終了部 2 2 5で構成している。
再び図 1に戻り、 アレイ制御補助手段 2において、 メモリ 2 1 2は、 旧データ を保持する旧データ保持手段 2 1 6と、 パリティ生成作業に用いるデータを一時 的に保持しておくパリティ生成作業領域 2 1 7と、 旧更新データ、 または、 旧パ リティを保持するパリティ保持手段 2 1 8と、 メモリ 2 1 2のァドレス管理を行 うメモリ制御手段 2 1 9を有する。
アレイ制御保持手段 2において、 図 4に示すディスクアレイデータ転送手段 2 0 2は、 データ入出力手段 2 6 0と、 データバッファ 2 6 1と、 2方向データ転 送制御手段 2 6 2で構成している。 2方向データ転送制御手段 2 6 2は、 転送す るデータ長をバイト単位で指定する転送長レジスタ 2 6 3と、 データの転送元の 1 0アドレス、 または、 メモリアドレスを格納するレジスタとして、 転送元 1ァ ドレスレジスタ 2 6 4と、 転送元 2ァドレスレジスタ 2 6 5と、 転送元 3ァドレ スレジスタ 2 6 6を有し、 データの転送先の I 0アドレス、 または、 メモリアド レスを格納するレジスタとして、 転送先 1ァドレスレジスタ 2 6 7と、 転送先 2 アドレスレジスタ 2 6 8を有し、 さらに、 排他的論理和生成手段 2 0 3の I Oァ ドレスを格納する排他的論理和生成手段ァドレスレジスタ 2 6 9と、 各転送元と 各転送先は、 それぞれ I 0かメモリかを選択し、 排他的論理和生成に係わるデ一 タ転送かどうかを指定するモード選択レジスタ 2 7 0と、 転送開始コマンドを受 け取るコマンドレジスタ 2 7 1を有する。
実施例 1において、 ディスクアレイデータ転送手段 2 0 2は、 転送元 1から転 送先 1 へ、 または、 転送元 1から転送先 1、 転送先 2の同時に 2 ケ所の転送先へ、 転送長バイト数の D M A (Di rect Memory Access)転送を行う。 ここで D M A転送 とは、 C P Uや M P Uに起動されると、 その後は C P Uや M P Uの介在なくデー タ転送を行う転送方法のことである。 同時に 2 ケ所の転送先へ D M A転送するこ とを一括 D MA転送と呼ぶこととする。
ァレイ制御補助手段 2において、 図 5に示す排他的論理和生成手段 2 0 3は、 データ入出力手段 2 4 0と、 データバッファ 2 4 1と、 排他的論理和演算を行う 排他的論理和演算手段 2 4 2と、 データの入出力の管理とデータバッファ 2 4 1 の初期化を行うデータ入出力管理手段 2 4 3で構成している。 データ入出力管理 手段 2 4 3は、 入力してくるデータ数を格納する入力データカウンタレジスタ 2 4 4と、 データバッファ 2 4 1の初期化を行うデータバッファ初期化レジスタ 2 4 5を有する。
図 1に戻り、 メモリ 2 1 2の旧データ保持手段 2 1 6と、 メインメモリ 1 0 4 の旧データアドレス保持部 1 1 0は、 それぞれ同数のデータを保持するようにし、 例えば、 pを自然数として、 P番目の各保持手段のデータが、 互いに対応するよ うにしておく。
旧データ保持手段 2 1 6は、 1ブロックの大きさが磁気ディスク装置の論理ブ ロック長に等しいメモリ領域を!)個集めたものである。 また、 旧データア ドレス 保持部 1 1 0は、 旧データ保持手段 2 1 6に保持されている旧データのメモリア ドレスと、 それに対応したデータが格納されているディスク装置番号と、 そのデ ィスク装置内の論理プロックァドレスであるデータディスクマドレスと、 タイム スタンプを含む構造体の配列であり、 配列の個数は旧データ保持手段 2 1 6の有 するブロック数 Pに一致する。
メモリ 2 1 2のパリティ保持手段 2 1 8と、 メインメモリ 1 0 4のパリティア ドレス保持部 1 1 1は、 それぞれ同数のデータを保持するようにし、 例えば、 q を自然数として、 Q番目の各保持手段のデータが、 互いに対応するようにしてお
< o
パリティ保持手段 2 1 8は、 1ブロックの大きさが磁気ディスク装置の論理ブ 口ック長に等しいメモリ領域を Q個集めたものである。 このパリティ保持手段 2 1 8の有するブロックの個数 Qは、 遅延パリティ処理に用いることのできるパリ ティデータの個数を決定することになる。 また、 ノ、'リティアドレス保持部 1 1 1 は、 パリティ保持手段 2 1 8に保持されている旧パリティ、 または、 旧更新デー 夕のメモリアドレスと、 それに対応したパリティが格納されているディスク装置 番号と、 そのディスク装置内の論理プロックァドレスであるパリティディスクァ ドレスと、 タイムスタンプと、 保持しているものが旧更新データなのか旧パリテ ィなのか、 旧パリティならばデイスクに書かれているものと同じかどうかを示す フラグを含む構造体の配列であり、 配列の個数はパリティ保持手段 2 1 8の有す るブロック数 qに一致する。
また、 未記録パリティアドレス保持手段 2 5 0は、 データディスクとのパリテ ィの整合性がとれていないパリティディスクァドレスを格納するメモリ領域を r 個集めたものである。 rは、 自然数とする。
ディスク装置群 3は、 本実施例においては 5台のディスク装置 3 0 1〜3 0 5 により構成している。 各ディスク装置 3 0 1〜3 0 5はアレイ制御補助手段 2の 5つのディスクインターフヱ一ス制御手段 2 0 5〜2 0 9とそれぞれケーブルに より接続する。
本実施例のディスクアレイライ ト処理を以下に示す。 従来例の R A I D 5では、 ディスクアレイライ ト処理時に、 データディスクへの旧データリ一ド処理と新デ —タライ ト処理、 および、 パリティディスクへの旧パリティ リード処理と新パリ ティライ ト処理が必要となり、 占有ディスク台数は 2台で、 合計 4回のディスク アクセスが発生し、 ディスクアレイライト性能は著しく低下する。
R A I D 5のディスクアレイライト処理において、 新パリティは式 1で求めら れる。 ここで、 新データと旧データの排他的論理和を新更新データとして定義す ると、 新パリティは、 新更新データと旧パリティの排他的論理和となる。 このこ とを、 以下の式に示す。
新更新データ = 新データ X0R 旧データ (式 2 ) 新パリティ = 新更新データ X0R 旧パリティ (式 3 ) 新データライト処理時に式 2のように新更新データを生成し、 一時保持手段に 保持しておく。 ここで、 旧データ保持手段 2 1 6とパリティ生成作業領域 2 1 7 とパリティ保持手段 2 1 8をまとめて一時保持手段と呼ぶこととする。 その後、 保持しておいた新更新データを用いて、 新データライト処理とは非同期に、 式 3 のように新パリティを生成し、 新パリティライ卜処理を行う。 これにより、 従来 のディスクアレイライト処理を、 独立な 2つの処理に分割でき、 占有ディスク台 数を各処理ごとに 1台ずつにできる。 なお、 式 2および式 3の新更新データは、 同一のものであるが、 後述する遅延パリティ処理 ( P 1 ) においては式 3の段階 の新更新データを旧更新データと呼ぶこととする。 ここで、 旧更新データとは、 前回のディスクアレイライト処理において一時保持手段に格納された新更新デー タのことである。 また、 式 3の新パリティは、 後述する遅延パリティ処理 (P 2 ) においては旧パリティと呼ぶこととする。
また、 新データ、 新パリティ等のデータを一時保持手段に保持しておき、 再度 これらのデータがアクセスされた際には、 ディスクからではなく、 一時保持手段 から読み出す。 これにより、 旧データリード処理、 旧パリティリード処理等のデ イスクアクセス数を削減できる。 以上の方法により、 ディスクアレイライト処理 性能を向上させる。
上記の新データライ卜処理に係わる処理をデータライ 卜処理と呼ぶこととする c また、 データライト処理と非同期に行われる、 新パリティライト処理に係わる処 理を遅延パリティ処理と呼ぶこととする。 本実施例のディスクアレイライト処理 は、 データライト処理と遅延パリティ処理から成る。
データライト処理は、 一時保持手段が何を格納しているかにより、 以下の 6つ のタイプに分類できる。 転送は、 ディスクアレイデータ転送手段 2 0 2によって 行う。
(W 1 ) 一時保持手段に、 何もない場合。
旧データをデータディスクからリ一ドして一時保持手段に転送する処理と、 新 データをユーザ領域 1 0 8力、ら、 データディスクと一時保持手段に転送する処理 と、 一時保持手段にある旧データと新データから新更新データを生成し、 一時保 持手段に転送する処理を行う。 新更新データの生成には、 式 2を用いる。
(W 2 ) 一時保持手段に、 旧データがある場合。
(W 1 ) の場合とほぼ同様であるが、 旧データをデータディスクからリードし て一時保持手段に転送する処理は必要ない。 新更新データの生成には、 式 2を用 いる。
(W 3 ) 一時保持手段に、 旧更新データがある場合。
旧データをデータディスクからリードして一時保持手段に転送する処理と、 新 データをユーザ領域 1 0 8からデータディスクと一時保持手段に転送する処理と、 一時保持手段にある旧デー夕と新データと旧更新データから新更新データを生成 し、 一時保持手段に転送する処理を行う。 新更新データの生成には、 式 4を用い る。
新更新データ =新データ X0R 旧データ X0R 旧更新データ (式 4 ) ここで、 式 4を導く。 まず、 (W 1 ) 、 または、 (W 2 ) のデータライ ト処理 が行われ、 そのときの新データと新更新データが一時保持手段にあるとする。 さ らに新データを書き換えるときに、 新しくライ トするデータを新新データ、 生成 する新しい更新データを新新更新データ、 新新データに対応する新しいパリティ を新新パリティと呼ぶこととする。 つまり、 書き換える前の新データは、 新新デ 一夕から見ると旧デ一夕となり、 新データに対応する新パリティは、 新新パリテ イカ、ら見ると、 旧パリティとなる。 新新データのデータライ ト処理が終了し、 か つ、 新新データに対応した遅延パリティ処理が行われていないとすると、 一時保 持手段には、 新新データと、 新新更新データがある。 ここで、 式 1より式 5力^ 式 3と式 5より式 6が導かれる。
新新パリティ =新新データ X0R 新データ X0R 新パリティ (式 5 ) 新新パリティ =新新データ X0R 新データ X0R 新更新データ
X0R 旧パリティ (式 6)
新新更新データ =新新データ X0R 新データ X0R 新更新データ
(式 7) 新新パリティ =新新更新データ X0R 旧パリティ (式 8) 式 7のように新新更新データを、 新新データと、 新データと、 新更新データの 排他的論理和とすると、 新新パリティは、 式 8のように新新更新データと、 旧パ リティの排他的論理和となる。 したがって、 新新パリティの生成の際には、 旧パ リティがあればよく、 新パリティは必要ないので、 遅延パリティ処理が行われな くてもデータライト処理を続けて行うことができる。 このように、 旧パリティを 用 、て新新デ一タに対応した遅延 、'リティ処理を行うことができるので、 更新デ —タは、 遅延 、'リティ処理が行われなくても何回でも再更新することができる。 したがって、 式 7より式 4が導かれる。
(W4) —時保持手段に、 旧更新データと旧データがある場合。
(W3) の場合とほぼ同様であるが、 旧データをディスクからリードして一時 保持手段に転送する処理は必要ない。 新更新データの生成には、 式 4を用いる。
(W5) 一時保持手段に、 旧パリティ力、'ある場合。
旧データをディスクからリードして一時保持手段に転送する処理と、 新データ をユーザ領域 1 0 8からディスクと一時保持手段に転送する処理と、 一時保持手 段にある旧データと新データと旧パリティから新パリティを生成し、 一時保持手 段に転送する処理を行う。 新パリティの生成には、 式 1を用いる。
(W6) —時保持手段に、 旧パリティと旧データがある場合。
(W5) の場合とほぼ同様であるが、 旧データをディスクからリードして一時 保持手段に転送する処理は必要ない。 新パリティの生成には、 式 1を用いる。 データライ 卜処理において、 一時保持手段に格納した新データは、 次回、 デー タライ ト処理 (W2) (W4) (W6) における旧データとなる。 データライト 処理 (W2) (W4 ) (W6 ) においては、 旧データリード処理を行わないので、 ディスクアクセスを 1回削減できる。
データライト処理 (Wl) (W2) (W3) (W 4) において、 一時保持手段 に格納した新更新データは、 次回、 データライ ト処理 (W3) (W4) および後 述する遅延パリティ処理 (P 1) における旧更新データとなる。
データライ ト処理 (W5) (W6) において、 一時保持手段に格納した新パリ ティは、 次回、 データライ ト処理 (W5) (W6) および後述する遅延パリティ 処理 (P 2) における旧パリティとなる。 データライ ト処理 (W5) (W6) に おいては、 旧パリティリード処理を行わないので、 ディスクアクセスを 1回削減 できる。 また、 新パリティは一時保持手段に格納し、 新パリティライ ト処理を行 わないので、 ディスクアクセスを 1回削減できる。 このように、 旧パリティの読 み出しと新パリティの書き込みは、 一時保持手段を用いるので、 パリティデイス クにアクセスすることなくデータライ ト処理を連続して行うことができる。
次に、 遅延パリティ処理は、 一時保持手段が何を格納しているかにより、 以下 の 2つのタイプに分類できる。 ただし、 一時保持手段に既にディスクに書き込ん だ旧パリティが格納されている場合は、 遅延パリティ処理は行わない。 また、 一 時保持手段に何も格納されていない場合、 もしくは、 旧データだけが格納されて いる場合も、 遅延パリティ処理は行わない。 転送は、 ディスクアレイデータ転送 手段 202によって行う。
(P 1) 一時保持手段に、 旧更新データがある場合。
旧パリティをディスクからリードして一時保持手段に転送する処理と、 一時保 持手段にある旧パリティと旧更新デ一タから新ノ、'リティを生成し、 一時保持手段 に転送する処理と、 新パリティを一時保持手段からディスクへ転送する処理から 成る。 新パリティの生成には、 式 3を用いる。 なお、 (P 1) における旧更新デ 一夕は、 式 3の新更新データに相当する。 一時保持手段に格納した新パリティは、 次回、 データライ ト処理 (W5) (W6) における旧パリティとなる。
(P 2) 一時保持手段に、 ディスクに書き込んでいない旧パリティがある場合。 旧パリティを一時保持手段からディスクへ転送する。 なお、 (P 2) における 旧パリティは、 式 3の新パリティに相当する。
以上が、 本実施例のディスクアレイライ 卜処理である。 上記のように、 データ のリードと、 パリティのリード · ライ 卜に一時保持手段を用いることによりディ スクァクセス回数を削減でき、 処理の高速化を図ることができる。 しかし、 メインメモリ内のユーザ領域 1 0 8中の新データを一時保持手段があ るメモリ領域にコピーして、 保持しておく必要がある。 以下、 このコピーをメモ リ間コピーと呼ぶ。 また、 新更新データおよび新パリティの生成のために、 排他 的論理和演算を行う必要がある。 本実施例は、 アレイ制御補助手段 2を用いて、 メモリ間コピーと、 排他的論理和演算を行い、 C P Uの負荷を軽減させる方法を 提供するものである。
また、 本実施例のディスクアレイリード処理を以下に示す。 ディスクアレイリ ード処理は、 一時保持手段が何を格納しているかにより、 以下の 2つのタイプに 分類できる。 転送は、 ディスクアレイデータ転送手段 2 0 2によって行う。
( R 1 ) —時保持手段に、 旧データがない場合。
目的データである旧データをディスクからリードして一時保持手段とユーザ領 域 1 0 8に転送する処理を行う。
( R 2 ) —時保持手段に、 旧データがある場合。
目的データである旧データを一時保持手段からユーザ領域 1 0 8に転送する。 ここで、 図 1の構成をとるディスクアレイシステムでのディスクアレイリード 処理動作と、 ディスクアレイライト処理動作について説明する。 ディスクアレイ システムでは、 信頼性を向上させるために、 パリティデータを生成する必要があ るが、 本実施例のディスクアレイシステムでは、 ディスクアクセスによる性能低 下を避けるために、 上記の通り、 ディスクアレイライト処理時には新データと新 パリティの書き込み処理を非同期に行う。 そこで、 ディスクアレイライト処理に ついては、 データライト処理と、 データライト処理から遅延して行われる遅延パ リティ処理に分けて説明する。
[ディスクアレイリード処理]
はじめに、 ディスクアレイリード処理動作を図 1、 図 2、 図 3、 図 6を用いて 説明する。 動作説明の中で、 (4 0 1 ) 、 (4 0 2 ) は、 図 6の番号に対応する c ここで、 目的データは、 図 1のディスク装置 3 0 1にある D 0であるとする。 図 2において、 ホストシステム 1上のアプリケ一ションなどからディスクアレイリ —ド要求が発行されると、 ホスト C P U 1 0 1は、 ディスクアレイ制御プログラ ム領域 1 0 9内の各プログラムを用いて、 以下の処理を行う。 まず、 図 2の要求 受信部 1 2 0力 該リード要求を受け取る。 要求管理部 1 2 1は、 該リード要求 をアドレス変換部 1 2 2に渡し、 ア ドレス変換部 1 2 2は、 目的データのデータ ディスクァドレスを算出する。
旧データ検索部 1 2 3は、 メインメモリ 1 0 4の旧データァドレス保持部 1 1 0に、 目的データのデータディスクアドレスが存在するかを調べることにより、 目的データがメモリ 2 1 2内の旧データ保持手段 2 1 6にあるか検索し、 デイス クアレイリード処理 (R l ) ( R 2 ) のタイプ分けを行う。
該データディスクア ドレス力く、 旧データアドレス保持部 1 1 0に存在しないと きは、 ディスクアレイリード処理 (R 1 ) となり、 目的データを保持するのに必 要なサイズのメモリを旧データ保持手段 2 1 6に確保し、 そのメモリアドレスを 算出すると共に、 該メモリアドレスとデータディスクァドレスをまとめて同じ配 列の構造体として、 旧データアドレス保持部 1 1 0に保持する。
該データディスクアドレス力、'、 旧データアドレス保持部 1 1 0に存在している ときは、 ディスクアレイリード処理 (R 2 ) となり、 目的データが存在する旧デ 一夕保持手段 2 1 6のメモリアドレスを算出する。
次に、 アレイ制御補助手段制御コマンド生成部 1 2 5は、 以下のようなコマン ドを生成する。
ディスクアレイリード処理 (R 1 ) の場合は、 目的データのデータディスクァ ドレスを格納したデータディスクのリードコマンドと、 目的データをディスクイ ンターフヱース制御手段 2 0 5力、ら、 旧データ保持手段 2 1 6とユーザ領域 1 0 8へ一括 D MA転送するためのディスクアレイデータ転送手段制御コマンドを生 成し、 各コマンドを M P U制御コマンドとしてまとめる。 該ディスクアレイデ一 タ転送手段制御コマンドは、 転送長と、 転送元 1であるディスクインタ一フエ一 ス制御手段 2 0 5の I 0ァドレスと、 転送先 1である旧データ保持手段 2 1 6の メモリアドレスと、 転送先 2であるユーザ領域 1 0 8のメモリアドレスと、 転送 元 1と転送先 1と転送先 2が、 それぞれ I 0かメモリかを指定するモード選択コ マンドと、 転送開始コマンドを有する。
ディスクアレイリード処理 (R 2 ) の場合は、 目的データを旧データ保持手段 2 1 6力、ら、 ユーザ領域 1 0 8へ D M A転送するためのディスクアレイデータ転 送手段制御コマンドを生成し、 該コマンドを MPU制御コマンドとする。 該ディ スクアレイデータ転送手段制御コマンドは、 転送長と、 転送元 1である旧データ 保持手段 2 1 6のメモリアドレスと、 転送先 1であるユーザ領域 1 0 8のメモリ アドレスと、 転送元 1と転送先 1力 それぞれメモリであることを指定するモー ド選択コマンドと、 転送開始コマンドを有する。
MPU制御部 1 2 8は、 図 1のバスィンターフェース 1 0 7を介して、 MPU 2 1 0に対し該 MPU制御コマンドを発行する。 該 MPU制御コマンドを受け取 つた MPU2 1 0は、 MPU制御プログラム領域 2 1 4内の各プログラムを用い て、 以下の処理を行う。 まず、 図 3の要求受信部 2 2 0カ^ MPU制御コマンド を受け取り、 要求管理部 22 1に渡す。
ディスクアレイリード処理 (R 1 ) の場合、 ディスクインタ一フヱース制御手 段制御部 2 2 3は、 ディスクインターフヱ一ス制御手段 2 0 5に対し、 MPU制 御コマンドのうちの目的データのリードコマンドを発行する。 次に、 ディスクィ ンターフヱ一ス制御手段 2 0 5は、 目的データ力、'格納されているディスク装置 3 0 1に対して受信した該リードコマンドを発行する。 ディスク装置 3 0 1は、 該 リードコマンドを受け取り、 データをディスクインターフェース制御手段 2 0 5 に転送する。 ディスクインターフヱース制御手段 2 0 5は、 MPU2 1 0に割り 込み信号を発行する。
次に、 ディスクアレイデータ転送手段制御部 2 2 2は、 ディスクアレイデータ 転送手段 2 0 2に対し MP U制御コマンドのうちのディスクアレイデータ転送手 段制御コマンドを発行する。 ディスクアレイデータ転送手段 2 0 2は、 該コマン ドを受け取り、 目的データをディスクインターフェース制御手段 2 0 5から、 ュ 一ザ領域 1 0 8と旧データ保持手段 2 1 6に一括 DMA転送する (4 0 1 ) 。 デ イスクアレイデータ転送手段 2 0 2は、 MPU2 1 0に割り込み信号を発行する c ここで、 ディスクアレイデータ転送手段 2 0 2力く、 ディスクアレイリード処理 (R 1 ) において、 一括 DMA転送するときの動作を図 4を用いて説明する。 ディスクアレイデータ転送手段 2 0 2は、 ディスクアレイデータ転送手段制御 コマンドによって 2方向データ転送制御手段 2 6 2の転送長レジスタ 2 6 3と、 転送元 1ァドレスレジスタ 2 6 4と、 転送先 1ァドレスレジスタ 2 6 7と、 転送 先 2ァドレスレジスタ 2 6 8と、 モード選択レジスタ 2 7 0がセッ卜され、 コマ ンドレジスタ 2 7 1に転送開始コマンドが設定されると、 転送を開始する。 この場合、 転送元 1が 1 0、 転送先 1と転送先 2がメモリである。 データバッ ファ 2 6 1の容量が nバイトだとすると、 転送単位は nバイトとなる。 転送長を mバイト、 転送元 1アドレスを X番地、 転送先 1アドレスを y番地、 転送先 2ァ ドレスを z番地とし、 X番地は 1 0アドレス、 y番地と z番地はメモリアドレス とし、 I 0から 2ケ所のメモリへの一括 D MA転送とする。 まず、 X番地から、 データ入出力手段 2 6 0を介して、 データバッファ 2 6 1へ nバイ 卜の転送が行 われ、 次にデータバッファ 2 6 1から、 データ入出力手段 2 6 0を介して、 y番 地へ nバイトの転送が行われ、 つづいて同じ様に z番地へ nバイ卜の転送が行わ れ、 1つの転送単位の転送が終了する。
次の転送単位の転送の前に、 転送長レジスタ 2 6 3から nを引き、 転送先 1ァ ドレスレジスタ 2 6 7と、 転送先 2ァドレスレジスタ 2 6 8に nを加える。 転送 元 1は、 I 0であるので、 転送元 1ァドレスレジスタ 2 6 4の値は変更しない。 すると、 次は上記と同様な方法で、 X番地から (y + n ) 番地へ nバイ卜の転送 が行われ、 X番地から (z + n ) 番地へ nバイ卜の転送が行われる。 この動作を 転送長レジスタ 2 6 3が 0になるまで続けることにより、 X番地から、 y番地と z番地への mバイトの一括 D M A転送が行われる。 D MA転送が終了すると、 2 方向データ転送制御手段 2 6 2は割り込み信号を発行する。
また、 ディスクアレイリード処理 (R 2 ) の場合、 図 3のディスクアレイデ一 タ転送手段制御部 2 2 2は、 ディスクアレイデータ転送手段 2 0 2に対し M P U 制御コマンドのうちのディスクアレイデータ転送手段制御コマンドを発行する。 ディスクアレイデータ転送手段 2 0 2は、 該コマンドを受け取り、 目的データを 旧データ保持手段 2 1 6力、ら、 ユーザ領域 1 0 8に D M A転送する (4 0 2 ) 。 ディスクアレイデータ転送手段 2 0 2は、 M P U 2 1 0に割り込み信号を発行す ディスクアレイデータ転送手段 2 0 2力 \ ディスクアレイリード処理 (R 2 ) において、 DMA転送するときの動作を図 4を用いて説明する。
ディスクアレイデータ転送手段 2 0 2は、 ディスクアレイデータ転送手段制御 コマンドによって 2方向データ転送制御手段 2 6 2の転送長レジスタ 2 6 3と、 転送元 1ァドレスレジスタ 2 6 4と、 転送先 1アドレスレジスタ 2 6 7と、 モー ド選択レジスタ 2 7 0がセッ 卜され、 コマンドレジスタ 2 7 1に転送開始コマン ドが設定されると転送を開始する。
この場合、 転送元 1と転送先 1はメモリである。 データバッファ 2 6 1の容量 が nバイトだとすると、 転送単位は nバイトとなる。 転送長を mバイト、 転送元 1アドレスを X番地、 転送先 1アドレスを y番地とし、 X番地と y番地はメモリ アドレスとし、 メモリからメモリへの D MA転送とする。 まず、 X番地から、 デ 一夕入出力手段 2 6 0を介して、 データバッファ 2 6 1へ nバイ卜の転送が行わ れ、 次にデータバッファ 2 6 1から、 データ入出力手段 2 6 0を介して、 y番地 へ nバイ卜の転送が行われ、 1つの転送単位の転送が終了する。
次の転送単位の転送の前に、 転送長レジスタ 2 6 3から nを引き、 転送元 1ァ ドレスレジスタ 2 6 4と、 転送先 1ァドレスレジスタ 2 6 7に nを加える。 する と、 次は上記と同様な方法で、 (x + n ) 番地から (y + n ) 番地へ nバイ卜の 転送が行われる。 この動作を転送長レジスタ 2 6 3が 0になるまで統けることに より、 X番地から、 y番地への mバイトの D MA転送が行われる。 D MA転送が 終了すると、 2方向データ転送制御手段 2 6 2は割り込み信号を発行する。 以下、 ディスクアレイリード処理 (R 1 ) (R 2 ) にかかわらず、 同じ処理と なる。 目的データの転送が終了すると、 図 3の要求管理部 2 2 1は、 要求終了部 2 2 5に処理を移し、 要求終了部 2 2 5は、 図 1のホスト C P U 1 0 1に割り込 み信号を出す。 割り込み信号を受けたホスト C P U 1 0 1は、 図 2のディスクァ レイ制御プログラム領域 1 0 9内の要求管理部 1 2 1を用いて、 要求終了部 1 2 6に処理を移し、 要求終了部 1 2 6は、 全体のリード処理を終了させる。
一般に、 アプリケーションは、 ファイルのデータを更新する際、 データを読み 出し、 修正した後、 書き戻すリードモディファイライトを行うことが多い。 した がって、 ディスクアレイリード処理時には、 読み出したデータを旧データ保持手 段 2 1 6に保持するので、 次回のリード処理の高速化が図れると同時に、 リード モディファイライト時のデータライト処理における更新データ生成処理の高速化 を図ることができる。 [ディスクアレイライ 卜処理]
次に、 ディスクアレイライ ト処理におけるデータライ 卜処理と遅延パリティ処 理について説明する。
[データライ ト処理]
データライ ト処理 (W 3 ) を例として、 データライト処理動作を図 1、 図 2、 図 3、 図 7を用いて説明する。 動作説明の中で、 (5 0 1 ) から (5 0 6 ) は、 図 7の番号に対応する。 ここで、 新データは、 図 1のディスク装置 3 0 1の D O に書き込まれるとする。 ホストシステム 1上のアプリケーションなどからデイス クアレイライ ト要求が発行されると、 ホスト C P U 1 0 1は、 ディスクアレイ制 御プログラム領域 1 0 9内の各プログラムを用いて、 以下の処理を行う。
まず、 図 2の要求受信部 1 2 0力 該ライ ト要求を受け取る。 要求管理部 1 2 1は該ライ ト要求をァドレス変換部 1 2 2に渡し、 ァドレス変換部 1 2 2は新デ 一夕をライ 卜するデータディスクァドレスと、 新データに対応したパリティディ スクァドレスを算出する。
旧データ検索部 1 2 3は、 算出したデータディスクアドレスが、 メインメモリ 1 0 4の旧データァドレス保持部 1 1 0に存在するかを調べることにより、 メモ リ 2 1 2内の旧データ保持手段 2 1 6に旧データがあるか検索し、 データライ 卜 処理のタイプ分けを行う。
データライ ト処理 (W 3 ) では、 該データディスクァドレスが旧データァドレ ス保持部 1 1 0に存在しないので、 新データを保持するのに必要なサイズのメモ リを旧データ保持手段 2 1 6に確保すると共に、 そのメモリアドレスとデータデ イスクァドレスをまとめて同じ配列の構造体として、 旧データァドレス保持部 1 1 0に保持する。
パリティ検索部 1 2 4は、 算出したパリティディスクァドレス力く、 メインメモ リ 1 0 4のパリティアドレス保持部 1 1 1に存在するかを調べることにより、 メ モリ 2 1 2内のパリティ保持手段 2 1 8に旧更新データ、 または、 旧パリティ力く あるか検索し、 データライ ト処理のタイプ分けを行う。
もし、 該パリティディスクァドレス力くパリティアドレス保持部 1 1 1に存在し ているときは、 パリティディスクアドレスに付加されているフラグを元に、 旧更 新データか、 旧パリティかを調べる。 データライト処理 (W 3 ) では、 旧更新デ 一夕が存在するパリティ保持手段 2 1 8のメモリアドレスを算出する。
次に、 アレイ制御補助手段制御コマンド生成部 1 2 5は、 データライ卜処理 (W 3 ) では、 以下のようなコマンドを生成し、 これらをまとめて M P U制御コ マンドとする。
旧データのデータディスクァドレスを格納したデータディスクのリ一ドコマン ドと、 旧データをディスクインターフヱース制御手段 2 0 5力、ら、 パリティ生成 作業領域 2 1 7へ DMA転送するためのディスクアレイデータ転送手段制御コマ ンドを生成する。 排他的論理和生成手段制御コマンドとしては、 データバッファ 初期化コマンドと、 入力データカウンタレジスタ 2 4 4に設定する値として入力 データ数の 3を有するものを生成する。 また、 新データを書き込むデ一タディス クァドレスを格納したデータディスクのライトコマンドを生成する。
また、 新データをユーザ領域 1 0 8力、ら、 ディスクインターフヱース制御手段 2 0 5と旧データ保持手段 2 1 6へ一括 DMA転送するためのディスクアレイデ 一夕転送手段制御コマンドを生成する。 また、 新データを旧データ保持手段 2 1 6から排他的論理和生成手段 2 0 3へ、 旧データをパリティ生成作業領域 2 1 7 から排他的論理和生成手段 2 0 3へ、 旧更新データをパリティ保持手段 2 1 8か ら排他的論理和生成手段 2 0 3へ、 新しく生成された新更新データを排他的論理 和生成手段 2 0 3からパリティ保持手段 2 1 8へ、 それぞれ D MA転送するため の排他的論理和生成モードのディスクアレイデータ転送手段制御コマンドを生成 する。
アレイ制御補助手段制御コマンド生成部 1 2 5は、 以上のようなコマンドを生 成し、 これらをまとめて M P U制御コマンドとし、 M P U制御部1 2 8は、 図 1 のバスインターフェース 1 0 7を介して、 M P U 2 1 0に対し該 M P U制御コマ ンドを発行する。
該 M P U制御コマンドを受け取った M P U 2 1 0は、 M P U制御プログラム領 域 2 1 4内の各プログラムを用いて、 以下の処理を行う。 まず、 図 3の要求受信 部 2 2 0力 <、 M P U制御コマンドを受け取り、 要求管理部 2 2 1に渡す。
ディスクインターフェース制御手段制御部 2 2 3は、 ディスクインターフエ一 ス制御手段 2 0 5に対し、 M P U制御コマンドのうちの旧データのリードコマン ドを発行する。 次に、 ディスクインターフヱース制御手段 2 0 5は、 旧データが 格納されているディスク装置 3 0 1に対して受信した該リードコマンドを発行す る。 ディスク装置 3 0 1は、 該リードコマンドを受け取り、 データをディスクィ ンターフヱース制御手段 2 0 5に転送する。 ディスクインターフヱース制御手段 2 0 5は、 M P U 2 1 0に割り込み信号を発行する。
次に、 ディスクアレイデータ転送手段制御部 2 2 2は、 ディスクアレイデータ 転送手段 2 0 2に対し M P U制御コマンドのうちのディスクアレイデータ転送手 段制御コマンドを発行する。 ディスクアレイデータ転送手段 2 0 2は、 該コマン ドを受け取り、 旧データをディスクインターフェース制御手段 2 0 5力、ら、 パリ ティ生成作業領域 2 1 7に転送する (5 0 1 ) 。 この場合、 転送元 1アドレスは、 ディスクインタ一フェース制御手段 2 0 5の I 0ァドレスであり、 転送先 1ァド レスは、 パリティ生成作業領域 2 1 7のメモリア ドレスである。 M P U 2 1 0は、 ディスクアレイデータ転送手段制御コマンドを用いて、 これらのァドレスをディ スクアレイデータ転送手段 2 0 2の 2方向データ転送制御手段 2 6 2に設定し、 1 0からメモリ 1に転送が行われるようにモード選択レジスタ 2 7 0を設定し、 コマンドレジスタ 2 7 1に実行コマンドを発行することで、 上記の通りの転送を 実施する。 ディスクアレイデータ転送手段 2 0 2は、 M P U 2 1 0に割り込み信 号を発行する。
次に、 排他的論理和生成手段制御部 2 2 4は、 排他的論理和生成手段 2 0 3に 対して、 コマンドを発行する。 排他的論理和生成手段 2 0 3を演算可能な状態に する排他的論理和生成手段制御コマンドの構成を以下に示す。 該コマンドは、 排 他的論理和を計算するために入力してくるデータの数と、 データバッファ 2 4 1 の初期化コマンドを有する。 データライ ト処理 (W 3 ) の場合は、 3個の入力デ 一夕の排他的論理和演算を行うように設定するため、 入力してくるデータ数は、 3個である。
図 5の排他的論理和生成手段 2 0 3は、 排他的論理和生成手段制御コマンドに よって、 データ入出力管理手段 2 4 3の入力データカウンタレジス夕 2 4 4にデ 一夕数である 3が設定されると、 データ入出力手段 2 4 0が入力モードとなり、 データバッファ初期化レジスタ 2 4 5が設定されると、 データバッファ 2 4 1に あるデータが 0で初期化され、 データの受け入れが可能な状態になる。 すべての データの入出力は、 ディスクアレイデータ転送手段 2 0 2によって行われる。 次に、 ディスクインターフェース制御手段制御部 2 2 3は、 ディスクインター フヱース制御手段 2 0 5に対し新データのライ トコマンドを発行する。 次に、 デ イスクインターフヱース制御手段 2 0 5は、 新データを格納するディスク装置 3 0 1に対して受信した該ライ トコマンドを発行する。 ディスク装置 3 0 1は、 該 ライ トコマンドを受け取り、 データを待つ状態となる。
次に、 ディスクアレイデータ転送手段制御部 2 2 2は、 ディスクアレイデータ 転送手段 2 0 2に対しディスクアレイデータ転送手段制御コマンドを発行する。 ディスクアレイデータ転送手段 2 0 2は、 該コマンドを受け取り、 新データをュ —ザ領域 1 0 8力、ら、 ディスクインターフヱース制御手段 2 0 5と旧データ保持 手段 2 1 6に一括 D MA転送する ( 5 0 2 ) 。 このとき、 新データは、 データデ イスクにライ 卜される。
この場合、 転送元 1アドレスは、 ユーザ領域 1 0 8のメモリアドレスであり、 転送先 1ァドレスは、 ディスクインタ一フヱース制御手段 2 0 5の I 0ァドレス であり、 転送先 2ァドレスは、 旧データ保持手段 2 1 6のメモリアドレスである。
M P U 2 1 0は、 ディスクアレイデータ転送手段制御コマンドを用いて、 これら のァドレスをディスクアレイデータ転送手段 2 0 2の 2方向データ転送制御手段 2 6 2に設定し、 メモリか 、 I 0とメモリに転送が行われるようにモード選択 レジスタ 2 7 0を設定し、 コマンドレジスタ 2 7 1 に実行コマンドを発行するこ とで、 上記の通りの転送を実施する。 ディスクアレイデータ転送手段 2 0 2は、 M P U 2 1 0に割り込み信号を発行する。
ここで、 ディスクアレイデータ転送手段 2 0 2力く、 データライ ト処理 (W 3 ) において一括 D M A転送するときの動作を図 4を用いて説明する。
まず、 ディスクアレイリード処理 (R 1 ) の例と同様に各レジスタが設定され、 X番地のメモリアドレスから、 データバッファ 2 6 1を経て、 y番地の 1 0アド レスと z番地のメモリアドレスに nバイ トずつ転送され、 1つの転送単位の転送 が終了する。 次の転送単位の転送の前に、 転送長レジスタ 2 6 3から nを引き、 転送元 1ァ ドレスレジスタ 2 6 4と、 転送先 2ァドレスレジスタ 2 6 8に nを加える。 転送 先 1は I 0であるので、 転送先 1了ドレスレジスタ 2 6 7の値は変更しない。 す ると、 次は上記と同様な方法で、 (x + n ) 番地から y番地へ nバイ卜の転送が 行われ、 (x + n ) 番地から (z + n ) 番地へ nバイ卜の転送が行われる。 この 動作を転送長レジスタ 2 6 3が 0になるまで続けることにより、 X番地から y番 地と z番地への mバイ卜の一括 D MA転送が行われる。 D M A転送が終了すると 2方向データ転送制御手段 2 6 2は割り込み信号を発行する。
次に、 ディスクアレイデータ転送手段制御部 2 2 2は、 ディスクアレイデータ 転送手段 2 0 2に対し排他的論理和生成モードのディスクアレイデータ転送手段 制御コマンドを発行する。 ディスクアレイデータ転送手段 2 0 2は、 該コマンド を受け取り、 新データを旧データ保持手段 2 1 6から排他的論理和生成手段 2 0 3へ ( 5 0 3 ) 、 旧データをパリティ生成作業領域 2 1 7から排他的論理和生成 手段 2 0 3へ (5 0 4 ) 、 旧更新データをパリティ保持手段 2 1 8から排他的論 理和生成手段 2 0 3へ (5 0 5 ) それぞれ転送する。 次に、 排他的論理和生成手 段 2 0 3によって新しく生成された新更新データを排他的論理和生成手段 2 0 3 からパリティ保持手段 2 1 8へ転送する ( 5 0 6 ) 。 ディスクアレイデータ転送 手段 2 0 2の動作手順に従って、 それぞれのデータ転送は行われる。
次に、 排他的論理和生成モードについて説明する。 該モードは、 いくつかの D M A転送を組み合わせたもので、 転送元 1と転送元 2と転送元 3から排他的論理 和生成手段 2 0 3への D MA転送と、 排他的論理和生成手段 2 0 3から転送先 1 への D MA転送からなる。 ディスクアレイデータ転送手段 2 0 2は、 ディスクァ レイデータ転送手段制御コマンドによって 2方向データ転送制御手段 2 6 2の転 送長レジスタ 2 6 3と、 転送元 1ァドレスレジスタ 2 6 4と、 転送元 2ァドレス レジスタ 2 6 5と、 転送元 3ァ ドレスレジスタ 2 6 6と、 転送先 1ァドレスレジ スタ 2 6 7と、 転送先 2ァドレスレジスタ 2 6 8と、 排他的論理和生成手段ァド レスレジスタ 2 6 9と、 モ一ド選択レジスタ 2 7 0がセッ トされ、 コマンドレジ ス夕 2 7 1に転送開始コマンドが設定されると転送を開始する。 該モードの特徴 は、 一つ一つの D M A転送に対して割り込みをかけずに、 排他的論理和生成手段 2 0 3から転送先 1への D M A転送が終了した段階で割り込み信号を発行するこ とにある。 転送元が、 3ケ所であることは、 モード選択レジスタ 2 7 0に設定す る。
ここで、 図 5を用いて、 排他的論理和生成手段 2 0 3の動作を説明する。 排他 的論理和生成手段 2 0 3は、 データ入出力手段 2 4 0から入力してきたデ一夕と データバッファ 2 4 1にあるデータを排他的論理和演算手段 2 4 2に人れ、 これ ら 2つのデータの排他的論理和を算出した後、 結果をデータバッファ 2 4 1に入 れるように動作する。
はじめに、 0で初期化されているデータバッファ 2 4 1にあるデータと、 1番 目に入力してきたデータ 1で排他的論理和をとり、 結果をデータバッファ 2 4 1 に入れる。 このとき、 データバッファ 2 4 1には、 データ 1があることになる。 次に、 2番目に入力してきたデータ 2とデータバッファ 2 4 1のデータ 1で排他 的論理和をとり、 結果をデータバッファ 2 4 1に入れる。 このとき、 データバッ ファ 2 4 1には、 データ 1とデータ 2の排他的論理和があることになる。 同様に、 3番目のデータ 3が入力してきた場合は、 データ 3とデータバッファ 2 4 1のデ —夕で排他的論理和をとり、 結果をデータバッファ 2 4 1に入れる。 このとき、 データバッファ 2 4 1には、 データ 1とデータ 2とデータ 3の排他的論理和があ ることになる。 また、 データが入力されるごとに入力データカウンタレジスタ 2 4 4がインクリメントされ、 入力データカウンタレジスタ 2 4 4が 0になると、 データ入出力手段 2 4 0が出力モードとなり、 ディスクアレイデータ転送手段 2 0 2によって、 演算結果がデータバッファ 2 4 1から出力される。
動作説明に戻り、 図 3の要求管理部 2 2 1は、 新データの書き込みが終了した ディスクインタフェース制御手段 2 0 5と、 ディスクアレイデータ転送手段 2 0 2力、ら、 割り込み信号を受け取ると、 要求終了部 2 2 5に処理を移し、 要求終了 部 2 2 5は、 ホスト C P U 1 0 1に割り込み信号を出す。
割り込み信号を受けたホスト C P U 1 0 1は、 図 2のディスクアレイ制御プロ グラム領域 1 0 9内の要求管理部 1 2 1を用いて、 要求終了部 1 2 6に処理を移 し、 要求終了部 1 2 6は、 全体のデータライ 卜処理を終了させる。
データライ ト処理 (W 3 ) と他のデータライ ト処理の違いを以下に示す。 データライ ト処理 (W 5 ) は、 データライ ト処理 (W 3 ) の旧更新データを旧 パリティに、 新しく生成された新データを新パリティに置き換えたものである。 また、 図 7において、 ( 5 0 5 ) で旧パリティが転送され、 ( 5 0 6 ) で新パリ ティが転送される。 また、 ディスクアレイ制御プログラム領域 1 0 9内のパリテ ィ検索部 1 2 4は、 パリティアドレス保持部 1 1 1に格納されているパリティデ イスクァドレスに付加されているフラグをパリティディスクに書き込まれている ものと違う旧パリティであることを表すようにする。
データライ ト処理 (W 1 ) は、 データライ ト処理 (W 3 ) において旧更新デー 夕を用いないで、 新更新データを生成する処理であり、 新パリティ生成に関する 動作がデータライ ト処理 (W 3 ) と異なる。 また、 データとの整合性がとれてい ないパリティのパリティディスクァドレスを記録する処理を行う。
ディスクアレイ制御プログラム領域 1 0 9内の処理において、 パリティ検索部 1 2 4は、 算出したパリティディスクァ ドレス力く、 メインメモリ 1 0 4のパリテ ィァドレス保持部 1 1 1に存在するかを調べることにより、 メモリ 2 1 2内のパ リティ保持手段 2 1 8に旧更新データ、 または、 旧パリティがあるか検索する。 データライ 卜処理 (W 1 ) の場合、 該パリティディスクァドレス力くパリティアド レス保持部 1 1 1に存在しないので、 新更新データを保持するのに必要なサイズ のメモリをパリティ保持手段 2 1 8に確保すると共に、 該メモリアドレスとパリ ティディスクァドレスと、 データライ ト処理後にパリティ保持手段 2 1 8に格納 されるのが新更新データであることを表すフラグをまとめて同じ構造体として、 ノ、'リティアドレス保持部 1 1 1に保持する。 また、 該パリティディスクアドレス を未記録パリティアドレス保持手段 2 5 0に保持する。
排他的論理和生成手段制御コマンドは、 入力してくるデータ数を 2とする。 デ イスクアレイデータ転送手段制御コマンドは、 排他的論理和生成モードで、 転送 元が 2ケ所であることをモード選択レジスタ 2 7 0に設定するものである。 図 7 における ( 5 0 5 ) の転送は行わない。
データライ ト処理 (W 2 ) 、 (W 4 ) 、 (W 6 ) は、 それぞれ、 データライ 卜 処理 (W l ) 、 (W 3 ) 、 (W 5 ) から旧データリードに係わる処理を行わない ようにしたものである。 また、 旧データが旧データ保持手段 2 1 6にあるので、 まず、 新データをパリティ生成作業領域 2 1 7に転送し、 排他的論理和生成が終 了した段階で、 新データを旧データ保持手段 2 1 6に保持する。
ディスクアレイ制御プログラム領域 1 0 9内の処理において、 旧データ検索部 1 2 3は、 算出したデータディスクァドレス力 \ メインメモリ 1 0 4の旧データ アドレス保持部 1 1 0に存在するかを調べることにより、 メモリ 2 1 2内の旧デ 一夕保持手段 2 1 6に旧データがあるか検索する。 データライ 卜処理 (W 2 ) 、 (W 4 ) 、 (W 6 ) では、 該データディスクアドレスが旧データアドレス保持部 1 1 0に存在しているので、 旧データ力《存在する旧データ保持手段 2 1 6のメモ リアドレスを算出する。 また、 新データを保持するのに必要なサイズのメモリを パリティ生成作業領域 2 1 4に確保すると共に、 そのメモリア ドレスを算出する。 その後、 排他的論理和生成が終了した段階で新データが格納されているパリテ ィ生成作業領域 2 1 7のメモリアドレスと、 データディスクアドレスをまとめて 同じ配列の構造体とし、 旧データアドレス保持部 1 1 0に保持する。 このように、 旧データアドレス保持部 1 1 0内のメモリアドレスを書き換えることで、 ノ、 'リテ ィ生成作業領域 2 1 7に保持された新データは、 旧データ保持手段 2 1 6にある ことになる。 つまり、 図 7における (5 0 1 ) の転送は行わず、 旧データ保持手 段 2 1 6とパリティ生成作業領域 2 1 7が入れ替わった状態となる。
本実施例のデータライ ト処理においては、 未記録パリティアドレス保持手段 2 5 0に書き込まれたパリティディスクァドレスにより、 どのディスク装置のどの 論理ブロックのパリティに変更が必要であるかが記録される。 また、 旧データ保 持手段 2 1 6に保持された新データは、 次回のデータライ ト処理における旧デー タとなり、 排他的論理和生成手段 2 0 3による新更新データの生成処理と新パリ ティの生成処理を高速化できる。 さらに、 リードモデフアイライ ト処理において は、 リード処理時に読み出したデータが旧データ保持手段 2 1 6に保持されてい るので、 変更したデータのデータライ ト処理を行う際に、 あらためて旧データを 読み出す必要がなく、 ディスク装置に対する処理を 1回削減できる。
[遅延パリティ処理]
ディスクアレイシステムでは、 信頼性を向上させるために、 パリティデータを 生成する必要がある。 本発明のディスクアレイシステムでは、 データライ ト処理 時に新パリティの書き込み処理を行っていないため、 遅延パリティ処理が必要で ある。 遅延パリティ処理は、 アプリケーションなどから発行されるデータライ ト 処理命令とは非同期に行われる処理である。 遅延パリティ処理を図 1、 図 2、 図 3、 図 8を用いて説明する。 動作説明の中で、 (6 0 1 ) から (6 0 5 ) は、 図 8の番号に対応する。 ここで、 新パリティは、 図 1のディスク装置 3 0 5の Pに 書き込まれるとする。
ホスト C P U 1 0 1は、 ディスクアレイ制御プログラム領域 1 0 9内の各プロ グラムを用いて、 以下の処理を行う。 まず、 図 2の遅延パリティ処理判定部 1 2 7力 \ 遅延パリティ処理を行うべきであると判断すると、 要求管理部 1 2 1に処 理を渡す。 遅延パリティ処理が開始されるタイミングとして、 例えば、 ドライブ に対するアクセス頻度が低いときや、 パリティ保持手段 2 1 8が旧更新データで 一杯になったときなどが考えられる。
要求管理部 1 2 1は、 パリティ検索部 1 2 4に処理を渡し、 パリティ検索部 1 2 4は、 メインメモリ 1 0 4のパリティアドレス保持部 1 1 1にパリティディス クアドレスが存在するかを検索し、 存在したときは付加されているフラグを調べ る o
リティアドレス保持部 1 1 1に何もないか、 もしくは、 パリティディスクに あるパリティと同一のパリティディスクァドレスのみ力、'存在する場合は、 要求管 理部 1 2 1に処理を渡し、 要求終了部 1 2 6が遅延パリティ処理を終了させる。 また、 ティアドレス保持部 1 1 1に、 旧更新データのパリティディスクァ ドレス、 または、 パリティディスクに書き込まれているものと異なる旧パリティ のパリティディスクアドレスが存在する場合は、 対応するパリティ保持手段 2 1 8のメモリア ドレスを算出し、 遅延パリティ処理後にパリティ保持手段 2 1 8に 格納されるのが、 パリティディスクに書き込まれているものと同じ旧パリティで あることを表すようにフラグを書き直す。
次に、 アレイ制御補助手段制御コマンド生成部 1 2 5は以下のようなコマンド を生成し、 これらをまとめて M P U制御コマンドとする。 なお、 ディスクアレイ データ転送手段制御コマンドと排他的論理和生成手段制御コマンドは、 前述した ような構成となっている。 遅延パリティ処理 (p i ) の場合、 旧パリティのパリティディスクア ドレスを 格納したパリティディスクのリードコマンドと、 旧パリティをディスクインター フヱース制御手段 2 0 9力、ら、 パリティ生成作業領域 2 1 7へ D MA転送するた めのディスクアレイデータ転送手段制御コマンドを生成する。 排他的論理和生成 手段制御コマンドとしては、 データバッファ初期化コマンドと、 入力データカウ ンタレジスタ 2 4 4に設定する値として、 入力データ数の 2を設定する。
また、 旧更新データをパリティ保持手段 2 1 8から排他的論理和生成手段 2 0 3へ、 旧パリティをパリティ生成作業領域 2 1 7から排他的論理和生成手段 2 0 3へ、 新しく生成された新パリティを排他的論理和生成手段 2 0 3からパリティ 保持手段 2 1 8へ D M A転送するための排他的論理和生成モードのディスクァレ ィデータ転送手段制御コマンドを生成する。
また、 新パリティのパリティディスクァドレスを格納したパリティディスクの ライトコマンドを生成する。 また、 新パリティをパリティ保持手段 2 1 8から、 ディスクインターフヱース制御手段 2 0 9へ DMA転送するためのディスクァレ ィデータ転送手段制御コマンドを生成する。
遅延パリティ処理 (P 2 ) の場合、 新パリティのパリティディスクアドレスを 格納したパリティディスクのライトコマンドを生成する。 また、 新パリティをパ リティ保持手段 2 1 8からディスクインターフヱース制御手段 2 0 9へ D MA転 送するためのディスクアレイデータ転送手段制御コマンドを生成する。
アレイ制御補助手段制御コマンド生成部 1 2 5は、 以上のようなコマンドを生 成し、 これらをまとめて M P U制御コマンドとし、 M P U制御部 1 2 8は、 図 1 のバスィンターフヱ一ス 1 0 7を介して、 M P U 2 1 0に対し該 M P U制御コマ ンドを発行する。
該 M P U制御コマンドを受け取った M P U 2 1 0は、 M P U制御プログラム領 域 2 1 4内の各プログラムを用いて、 以下の処理を行う。 まず、 図 3の要求受信 部 2 2 0力 M P U制御コマンドを受け取り、 要求管理部 2 2 1に渡す。
まず、 遅延パリティ処理 (P 1 ) の場合、 ディスクインターフェース制御手段 制御部 2 2 3は、 ディスクインターフェース制御手段 2 0 9に対し、 M P U制御 コマンドのうちの旧パリティのリードコマンドを発行する。 次に、 ディスクイン ターフヱース制御手段 2 0 9は、 旧パリティが格納されているディスク装置 3 0 5に対して受信した該リードコマンドを発行する。 ディスク装置 3 0 5は、 該リ ードコマンドを受け取り、 旧パリティをディスクインタ一フェース制御手段 2 0 9に転送する。 ディスクインタ一フェース制御手段 2 0 9は、 M P U 2 1 0に割 り込み信号を発行する。
次に、 ディスクアレイデータ転送手段制御部 2 2 2は、 ディスクアレイデータ 転送手段 2 0 2に対し M P U制御コマンドのうちのディスクアレイデータ転送手 段制御コマンドを発行する。 ディスクアレイデータ転送手段 2 0 2は、 該コマン ドを受け取り、 旧パリティをディスクインターフヱース制御手段 2 0 9から、 リティ生成作業領域 2 1 7に転送する (6 0 1 ) 。 ディスクアレイデータ転送手 段 2 0 2は、 M P U 2 1 0に割り込み信号を発行する。
次に、 排他的論理和生成手段制御部 2 2 4は、 排他的論理和生成手段 2 0 3に 対して、 コマンドを発行し、 該コマンドを受け取った排他的論理和生成手段 2 0 3はデータバッファ 2 4 1が初期化され、 指定された数のデータを受け入れられ るように設定される。 この場合、 2個の入力データの排他的論理和演算を行うよ うに設定される。
ディスクインターフヱ一ス制御手段制御部 2 2 3は、 ディスクインターフエ一 ス制御手段 2 0 9に対し新パリティのライ トコマンドを発行する。 次に、 デイス クインターフェ一ス制御手段 2 0 9は、 新パリティを格納するディスク装置 3 0 5に対して受信した該ライ トコマンドを発行する。 ディスク装置 3 0 5は、 該ラ イ トコマンドを受け取り、 データを待つ状態となる。
次に、 ディスクアレイデータ転送手段制御部 2 2 2は、 ディスクアレイデータ 転送手段 2 0 2に対し排他的論理和生成モードのディスクアレイデータ転送手段 制御コマンドを発行する。 ディスクアレイデータ転送手段 2 0 2は、 該コマンド を受け取り、 旧パリティをパリティ生成作業領域 2 1 7から排他的論理和生成手 段 2 0 3へ (6 0 2 ) 、 旧更新データをパリティ保持手段 2 1 8から排他的論理 和生成手段 2 0 3へ (6 0 3 ) 、 排他的論理和生成手段 2 0 3によって新しく生 成された新パリティを排他的論理和生成手段 2 0 3からパリティ保持手段 2 1 8 に転送する ( 6 0 4 ) 。 さらに、 新パリティをパリティ保持手段 2 1 8からディ スクインターフヱース制御手段 2 0 9に転送する (6 0 5 ) 。 このとき、 新パリ ティは、 パリティディスクにライ 卜される。 ディスクアレイデータ転送手段 2 0 2の動作手順に従って、 それぞれのデータ転送は行われる。
次に、 遅延パリティ処理 (P 2 ) の場合、 ディスクインターフヱース制御手段 制御部 2 2 3は、 ディスクインターフユース制御手段 2 0 9に対し新パリティの ライ トコマンドを発行する。 次に、 ディスクインターフェース制御手段 2 0 9は、 新パリティを格納するディスク装置 3 0 5に対して受信した該ライ トコマンドを 発行する。 ディスク装置 3 0 5は、 該ライ トコマンドを受け取り、 データを待つ 状態となる。
ディスクアレイデータ転送手段制御部 2 2 2は、 ディスクアレイデータ転送手 段 2 0 2に対しディスクアレイデータ転送手段制御コマンドを発行する。 デイス クアレイデータ転送手段 2 0 2は、 該コマンドを受け取り、 新パリティをパリテ ィ保持手段 2 1 8からディスクインターフヱース制御手段 2 0 9に転送する (6 0 5 ) 。 このとき、 新パリティは、 ノ、。リティディスクにライ 卜される。
以下、 遅延パリティ処理 (P I ) ( P 2 ) にかかわらず、 同じ処理となる。 図 3の要求管理部 2 2 1は、 新パリティの書き込み力、'終了したディスクインタフヱ ース制御手段 2 0 9と、 ディスクアレイデータ転送手段 2 0 2力、ら、 割り込み信 号を受け取ると、 未記録パリティアドレス保持手段 2 5 0にある遅延パリティ処 理が行われたパリティディスクァドレスを消去した後、 要求終了部 2 2 5に処理 を移し、 要求終了部 2 2 5は、 ホスト C P U 1 0 1に割り込み信号を出す。
割り込み信号を受けたホスト C P U 1 0 1は、 図 2のディスクアレイ制御プロ グラム領域 1 0 9内の要求管理部 1 2 1を用いて、 要求終了部 1 2 6に処理を移 し、 要求終了部 1 2 6は、 全体の遅延パリティ処理を終了させる。
ここで、 本実施例の未記録パリティアドレス保持手段 2 5 0の効果について説 明する。 ディスクアレイシステムでは、 信頼性を保っために、 パリティデータを 生成し、 保持しなければならない。 し力、し、 本実施例のディスクアレイシステム では、 新データ書き込み時には新パリティをパリティディスクに書き込まず、 そ の後、 非同期に遅延パリティ処理を行う。 し力、し、 遅延パリティ処理を行う前に、 停電などの事態が発生すると、 データとパリティの整合性が保てなくなる。 そこ で、 未記録パリティアドレス保持手段 250に、 未処理のパリティディスクァド レスを登録しておくことで、 停電などでパリティ保持手段 21 8から旧更新デー 夕、 または、 パリティがなくなっても、 次回起動時には、 どのディスク装置のど の論理アドレスのパリティを生成すべきかが分かる。 パリティは、 ディスク装置 に記録されているデータに排他的論理和演算を施すことで生成できる。
次に、 本実施例の効果について説明する。 本発明においては、 ディスクアレイ ライ ト処理を、 データライ ト処理と遅延パリティ処理に分割し、 新データをライ 卜する際に必要なディスクアクセス数を削減する。 さらに、 新データ、 新更新デ —タ、 新パリティを一時保持しておく手段を設け、 旧データと旧パリティをリ一 ドするディスクアクセス数を削減する。 以上の方法により、 ディスクアレイリー ド 'ライ ト処理性能を向上させる。 また、 メモリ間コピーと排他的論理和演算に は、 CPUを用いないので、 CPUにかかる負荷を削減することができる。
はじめに、 ディスクアレイリード 'ライ ト処理性能について考える。 ここで、
1回のディスクアクセスに 1 5 (ms e c) かかるとし、 ディスク装置 5台で、 システム全体のオーバーへッ ドを 28 (%) とすると、 1秒当たり 240回のデ イスクアクセスができる。
まず、 従来のソフトウェア RA I Dのディスクアクセス回数は、 ディスクァレ ィリード処理時は 1回、 ディスクアレイライ ト処理時は 4回である。 したがって、 リード率 50 (%) の時、 ディスクアレイリード ·ライ ト処理を 1回ずつ行うた めには、 5回のディスクアクセスが必要となり、 1秒当たりの各処理は、 48 (I OPS) ずっとなり、 処理性能は、 96 (I OPS) となる。 なお、 リード 率 50 {%) とは、 ディスクアレイリード 'ライ ト処理の割合が、 単位時間当た り 50 (%) ずつであることを表し、 I OPSは、 1秒当たりの I 0処理数を表 す単位である。
次に、 本実施例において、 データライ ト処理時の旧データ保持手段のヒッ ト率 を 85 {%) とすると、 ディスクアクセス回数は、 ディスクアレイリ一ド処理時 においては 1回、 データライ ト処理時においては、 旧データヒッ 卜時 1回、 旧デ 一夕ミス時 2回となって、 平均し 1 5回となる。 なお、 保持手段に読み出した いデータがある場合をヒッ ト、 ない場合をミスと呼ぶ。 したがって、 リード率 5 0 (%) の時、 ディスクアレイリード処理とデータライト処理を 1回ずつ行うた めには、 2. 1 5回のディスクアクセスが必要となり、 1秒当たりの各処理は、 1 1 2 (I OPS) ずっとなり、 合計 2 2 4 (I OPS) となる。
し力、し、 データライト処理時のパリティ保持手段のヒット率を 8 5 (%) とす ると、 データライ卜処理 1 1 2 (I OPS) のうち 1 5 (%) の 1 6. 8 (10 PS) は、 パリティ保持手段に旧更新データを蓄積させていく処理となる。 パリ ティ保持手段の容量が一杯になると遅延パリティ処理を行う必要があり、 パリテ ィ保持手段のパリティをパリティディスクに書き込む処理は、 2 40 ( I 0P S) である。 したがって、 データライト処理に対して、 パリティディスクの書き 込みに関する 7 (%) のオーバーへッドが生じ、 本実施例の処理性能は、 20 9 (I OPS) となる。 よって、. リード率 5 0 (%) において、 本実施例は、 従来 のソフ トゥヱァ RA I Dの 2. 1 8倍の処理性能を有する。
また、 CPUにかかる負荷について考える。 ここで、 メモリからデータを出し 入れするスピードは、 4 (KBy t e) 、 8バースト転送に、 3 3 (MHz) で 1 0クロックかかるとすると、 1 0 7 (MB y t e/s e c) となり、 オーバー へッ ドを約 2倍と考えると、 メモリからデータを出し入れするスピ一ドは 5 0 (MB y t e/s e c) となる。
まず、 ソフ トゥヱァ RA I Dについて、 CPUの負荷率を考える。 ディスクァ レイライト処理の排他的論理和演算では、 メモリからのデータの出し入れは 4回 行われ、 システム全体のオーバーヘッドを約 2倍と考えると、 4 (KBy t e) の排他的論理和演算には、 6 4 0 ( s e e) かかる。 RA I Dの管理に 1 0 0 0 ( s e c) かかるとすると、 4 (KBy t e) の 1 (10) にかかる処理時 間は、 ディスクアレイリード処理で 1 00 0 (// s e c) 、 ディスクアレイライ ト処理で 1 6 4 0 (// s e c) となり、 平均で、 1 3 2 0 ( s e c) となる。 したがって、 1 ( I 0) 当たりにかかる CPU処理の割合は、 0. 1 3 2 (%) となる。
次に、 本実施例のように、 メモリ間コピーをディスクアレイデータ転送手段で、 排他的論理和演算を排他的論理和生成手段で行う場合を考えると、 CPUにかか る負荷は、 RA I Dの管理だけとなるので、 4 (KBy t e) の 1 ( 10) にか かる処理時間は、 ディスクアレイリード ·ライ ト処理ともに 1 000 ( S e c) となる。 したがって、 1 ( 10) 当たりにかかる CPU処理の割合は、 0. 1 00 (%) となる。
ディスクアレイリード 'ライ ト処理性能と CPU負荷率について考えると、 リ 一ド率 50 (%) のとき、 ソフトウヱァ RA I Dでは 96 ( I OP S) 、 本実施 例では 209 (I OPS) の処理性能であることから、 このときの 1秒当たりの CPU負荷率は、 ソフ トウェア RA I Dは、 96 ( I OPS) x 0. 1 32 (%) = 1 2. 7 (%) 、 本実施例は 209 ( I OP S) x 0. 1 00 (%) = 20. 9 (%) となる。
以上をまとめると、 リード率 50 (%) のとき、 本実施例は、 従来のソフ トウ エア RA I Dに対し、 約 8. 2 (%) の CPU負荷率の上昇で、 10性能が 2. 2倍向上し、 低 CPU負荷率で高性能化を実現できる。
本発明の実施例 2の説明をする。
システム構成は図 1と同じであり、 実施例 1との違いは、 ディスクアレイデ一 タ転送手段 202の構成および動作の違いと、 ディスクインターフヱース制御手 段 205〜209の構成および動作の違いにある。
図 9に実施例 2のディスクアレイデータ転送手段 202の構成を示す。 デイス クアレイデータ転送手段 202は、 データ入出力手段 274と、 データバッファ 275と、 1方向データ転送制御手段 276で構成している。 1方向データ転送 制御手段 276は、 転送するデータ長をバイ ト単位で指定する転送長レジスタ 2 77と、 データの転送元の I 0アドレス、 または、 メモリアドレスを格納する転 送元ァドレスレジスタ 278と、 データの転送先の I 0ァドレス、 または、 メモ リアドレスを格納する転送先アドレスレジスタ 279と、 転送元と転送先は、 そ れぞれ 10かメモリかを指定するモード選択レジスタ 280と、 転送開始コマン ドを受け取るコマンドレジスタ 28 1を有する。
また、 ディスクインターフヱース制御手段 205 ~ 209は、 DMA転送機能 を有し、 ディスクインタ一フヱ一ス制御手段と各メモリの間の DMA転送を行う c ディスクインターフェース制御手段 205〜209に送られるリードコマンドと、 ライ トコマンドには、 DMA転送のためのデータの転送長、 データの転送元、 ま たは、 転送先のメモリアドレスも併せて格納しておく。
実施例 2のディスクアレイデータ転送手段 2 0 2は、 実施例 1と違い、 転送先 ァドレスを格納するレジスタを 1つだけ持ち、 1回の D MA転送での転送先は 1 力、所だけである。 そこで、 実施例 1の一括 D MA転送で同時に行われていた 2つ の D MA転送を、 ディスクインターフェース制御手段 2 0 5〜2 0 9と、 デイス クアレイデータ転送手段 2 0 2で行う。 ディスクインターフェース制御手段 2 0 5〜2 0 9と、 ユーザ領域 1 0 8の間の D MA転送は、 ディスクインターフエ一 ス制御手段 2 0 5〜 2 0 9が行う。
図 9を用いて、 ディスクアレイデータ転送手段 2 0 2の動作を説明する。 実施 例 2において、 ディスクアレイデータ転送手段 2 0 2は、 1 ケ所の転送元から 1 ケ所の転送先へ、 転送長バイト数の D MA転送を行う。
まず、 ディスクアレイデータ転送手段 2 0 2を起動するディスクアレイデータ 転送手段制御コマンドの構成を以下に示す。 該コマンドは、 転送長と、 転送元ァ ドレスと、 転送先アドレスと、 転送元と転送先が、 それぞれ I 0かメモリかを指 定するモード選択コマンドと、 転送開始コマンドを有する。
次に、 D M A転送する方法を以下に示す。 ディスクアレイデータ転送手段 2 0 2は、 ディスクアレイデータ転送手段制御コマンドによって 1方向データ転送制 御手段 2 7 6の転送長レジスタ 2 7 7と、 転送元ァドレスレジスタ 2 7 8と、 転 送先ァドレスレジスタ 2 7 9と、 モード選択レジスタ 2 8 0がセッ トされ、 コマ ンドレジスタ 2 8 1に転送開始コマンドが設定されると、 転送を開始する。 転送元が 1 0、 転送先がメモリである場合の D M A転送の例を、 以下に示す。 実施例 2において、 I 0は排他的論理和生成手段 2 0 3である。 データバッファ 2 7 5の容量が nバイトだとすると、 転送単位は nバイトとなる。 転送長を mバ ィト、 転送元ァドレスを X番地、 転送先ァドレスを y番地とし、 X番地は I 0ァ ドレス、 y番地はメモリアドレスとし、 I 0からメモリへの D MA転送とする。 まず、 X番地から、 データ入出力手段 2 7 4を介して、 データバッファ 2 7 5へ nバイ 卜の転送が行われ、 次にデータバッファ 2 7 5から、 データ入出力手段 2 7 4を介して、 y番地へ nバイトの転送が行われ、 1つの転送単位の転送が終了 する。 次の転送単位の転送の前に、 転送長レジスタ 2 7 7から nを引き、 転送先アド レスレジスタ 2 7 9に nを加える。 すると、 次は上記と同様な方法で、 X番地か ら (y + n ) 番地へ nバイ卜の転送が行われる。 この動作を転送長レジスタ 2 7 7が 0になるまで続けることにより、 X番地から、 y番地への mバイトの DMA 転送が行われる。 DMA転送が終了すると、 1方向データ転送制御手段 2 7 6は 割り込み信号を発行し処理を終了する。
また、 転送元がメモリ、 転送先が I 0の場合も上記と同様な D MA転送が可能 である。 この場合、 1つの転送単位 nバイトの転送を行った後、 さらに nバイト 転送するときに、 転送元がメモリアドレスなので、 メモリアドレスが格納されて いるレジスタに nを加え、 転送先が I 0アドレスなので、 I Oアドレスが格納さ れているレジスタには nを加えずに同じ値を用いる。 これらの動作は、 各レジス 夕に格納されているアドレスが、 1 0アドレス力、、 メモリアドレスかをモード選 択レジスタ 2 8 0に設定することで 1方向データ転送制御手段 2 7 6が制御する。
ここで、 実施例 2のディスクアレイシステムでのディスクアレイリード処理と、 ディスクアレイライト処理における実施例 1との違いを示す。
[ディスクアレイリード処理]
実施例 2のディスクアレイリード処理のタイプ分けは、 実施例 1と同じである が動作が違う。 実施例 1からの変更点を以下に示す。 ディスクアレイリード処理 (R 1 ) においては、 目的データである旧データをディスクからリードしてユー ザ領域 1 0 8に転送し、 さらに、 旧データをユーザ領域 1 0 8から一時保持手段 に転送する処理を行う。 旧データをディスクからユーザ領域 1 0 8に転送する処 理は、 ディスクインターフヱース制御手段が行う。 ディスクアレイリード処理 (R 2 ) は、 実施例 1と同様である。
[ディスクアレイライト処理]
[データライ ト処理]
実施例 2のデータライト処理のタイプ分けは、 実施例 1と同じであるが動作が 違う。 実施例 1からの変更点を以下に示す。 すべてのデータライト処理において、 新データをユーザ領域 1 0 8から、 データディスクと一時保持手段に転送する処 理を、 新データをユーザ領域 1 0 8からデータディスクに転送する処理と、 新デ —タをユーザ領域 1 0 8から一時保持手段に転送する処理に分けて行う。 新デー タをユーザ領域 1 0 8からデータディスクに転送する処理は、 ディスクインター フェース制御手段が行う。 また、 データライト処理 (W l ) (W 3 ) (W 5 ) に おいては、 旧データを一時保持手段に転送する処理は、 ディスクインターフエ一 ス制御手段が行う。
実施例 2のディスクアレイデータ転送手段 2 0 2には、 排他的論理和生成モー ドがないので、 一時保持手段と排他的論理和生成手段 2 0 3の間のデータ転送は、 1回ごとに分けて行う。
[遅延パリティ処理]
実施例 2の遅延パリティ処理のタイプ分けは、 実施例 1と同じであるが動作が 違う。 実施例 1からの変更点を以下に示す。 旧パリティを一時保持手段に転送す る処理と、 新パリティをパリティディスクに転送する処理は、 ディスクインター フェース制御手段が行う。
実施例 2のディスクアレイデータ転送手段 2 0 2には、 排他的論理和生成モー ドがないので、 一時保持手段と排他的論理和生成手段 2 0 3の間のデータ転送は、 1回ごとに分けて行う。
実施例 2のような構成にすると、 ディスクアレイデータ転送手段 2 0 2の構造 を簡単にすることができ、 コストの削減が図れると共に、 ディスクインタ一フヱ ース制御手段 2 0 5〜2 0 9に係わる D M A転送をディスクインタ一フヱース制 御手段で行い、 メモリ間コピーに係わる DMA転送をディスクアレイデータ転送 手段 2 0 2で行うことで、 D M A転送の効率を上げることができる。
ここで、 本発明の第 3の実施例を図 1 0のシステム構成を用いて説明する。 図 1 0において、 1はホストシステム、 2はアレイ制御補助手段、 3はデイス ク装置群である。
ホストシステム 1は、 ホスト C P U 1 0 1 と、 キャッシュ 1 0 2と、 ローカル バス · システムバス間ブリッジ 1 0 3と、 メインメモリ 1 0 4と、 バスインター フェース 1 0 7で構成している。 ホスト C P U 1 0 1と、 キヤッシュ 1 0 2と、 ローカルバス · システムバス間ブリッジ 1 0 3はローカルバス 1 0 5により接続 する。 ローカルバス ' システムバス間ブリ ッジ 1 0 3 と、 バスインターフェース 1 0 7は、 システムバス 1 0 6に接続する。
メインメモリ 1 0 4は、 ユーザ領域 1 0 8と、 ディスクアレイ制御プログラム 領域 1 0 9と、 旧データァドレス保持部 1 1 0と、 パリティアドレス保持部 1 1 1と、 旧データ保持手段 1 1 2と、 パリティ生成作業領域 1 1 3と、 パリティ保 持手段 1 1 4と、 多数送られてくるコマンドをキューイングしておくコマンド格 納領域 1 1 5を有する。
ディスクアレイ制御プログラム領域 1 0 9は、 図 1 1に示すように、 要求受信 部 1 2 0と、 要求管理部 1 2 1 と、 ァドレス変換部 1 2 2と、 旧データ検索部 1 2 3と、 パリティ検索部 1 2 4と、 アレイ制御補助手段制御コマンド生成部 1 2 5と、 ディスクアレイデータ転送生成手段 2 5 4にコマンドを発行するディスク アレイデータ転送生成手段制御部 1 3 3と、 ディスクインターフェース制御手段 制御部 1 3 1と、 要求終了部 1 2 6と、 遅延パリティ処理判定部 1 2 7で構成し ている。
図 1 0に戻り、 アレイ制御補助手段 2は、 バスインタ一フヱ一ス 2 0 1 と、 デ 一夕転送と排他的論理和の生成を行うディスクアレイデータ転送生成手段 2 5 4 と、 D MA転送機能を有する 5つのディスクインタ一フヱ一ス制御手段 2 0 5〜 2 0 9と、 バッテリーバックアツプされた未記録パリティアドレス保持手段 2 5 0で構成し、 それぞれをアレイ制御補助手段内部バス 2 0 4で接続する。 バスィ ンタ一フェース 2 0 1はホストシステム 1のバスィンターフェース 1 0 7と接続 する。 アレイ制御補助手段 2のディスクアレイデータ転送生成手段 2 5 4を 1つ のチップとして構成すれば、 更新データ及び新パリティの生成処理と、 データ転 送処理の間に同一デー夕を扱う場合にメインメモリ上のノ、°リティ生成用領域から 2度にわたり同じデータを転送する必要がないため、 ホストシステムのシステム バスとディスクインタ一フヱース制御手段とを接続するバスもしくはシステムバ ス若しくは前記メインメモリのトラフィ ックを低減でき、 処理の高速化を図れる c ディスク装置群 3は、 本実施例においては 5台のディスク装置 3 0 1〜3 0 5 により構成している。 各ディスク装置 3 0 1〜3 0 5はアレイ制御補助手段 2の 5つのディスクインターフヱース制御手段 2 0 5〜2 0 9とそれぞれケ一ブルに より接続する。 未記録パリティアドレス保持手段 2 5 0と、 メインメモリ 1 0 4内の旧データ 保持手段 1 1 2、 旧データアドレス保持部 1 1 0、 パリティ保持手段 1 1 4、 パ リティアドレス保持部 1 1 1の構成は、 実施例 1の図 1の旧データ保持手段 2 1 6、 旧データァドレス保持部 1 1 0、 パリティ保持手段 2 1 8、 パリティアドレ ス保持部 1 1 1と未記録パリティア ドレス保持手段 2 5 0とそれぞれ同じである。 ここで、 アレイ制御補助手段 2のディスクアレイデータ転送生成手段 2 5 4の 構成例を図 1 2を用いて説明する。
ディスクアレイデータ転送生成手段 2 5 4は、 データ入出力手段 2 8 3と、 デ 一夕 1バッファ 2 8 4と、 データ 2バッファ 2 8 5と、 データ転送生成管理手段 2 8 6と、 排他的論理和演算を行う排他的論理和演算手段 2 8 7で構成している。 データ転送生成管理手段 2 8 6は、 転送するデータ長をバイト単位で指定する 転送長レジスタ 2 8 8と、 データの転送元のメモリアドレスを格納するレジスタ として、 転送元 1ア ドレスレジスタ 2 8 9と、 転送元 2ァ ドレスレジスタ 2 9 0 と、 転送元 3ァドレスレジスタ 2 9 1を有し、 データの転送先のメモリアドレス を格納するレジスタとして、 転送先 1ァドレスレジスタ 2 9 2と、 転送先 2ァド レスレジスタ 2 9 3を有し、 さらに、 どのようなデータ転送と排他的論理和生成 を行うかを指定するモ一ド選択レジスタ 2 9 4と、 転送開始コマンドを受け取る コマンドレジスタ 2 9 5と、 データ入出力手段 2 8 3の入出力モードを指定する 入出力モードレジスタ 2 9 6と、 データ 1 ノくッファ 2 8 4とデータ 2バッファ 2 8 5の初期化を行うデータバッファ初期化レジスタ 2 9 7を有する。 実施例 3に おいて、 ディスクアレイデータ転送生成手段 2 5 4は、 ディスクアレイリード処 理モード、 データライト処理モード、 遅延パリティ処理モードのいずれかで動作 する。
実施例 1の図 1との主な違いは、 パリティ生成に必要な一時保持手段をメイン メモリ 1 0 4に置いたことと、 データ転送とパリティ生成の 2つの動作を行うデ イスクアレイデータ転送生成手段 2 5 4をアレイ制御補助手段 2に置いたことと、 アレイ制御補助手段 2の制御を M P U 2 1 0ではなく、 ホスト C P U 1 0 1で行 うことである。 ここで、 旧データ保持手段 1 1 2とパリティ生成作業領域 1 1 3 とパリティ保持手段 1 1 4をまとめて一時保持手段と呼ぶこととする。 また、 デ イスクインターフェース制御手段 2 0 5〜2 0 9と、 メインメモリ 1 0 4間の D MA転送は、 ディスクインターフェース制御手段 2 0 5〜2 0 9が行い、 その他 の D MA転送は、 ディスクアレイデータ転送生成手段 2 5 4力く行う。
実施例 3のディスクアレイライ ト処理は、 実施例 1同様にデータライト処理と 遅延パリティ処理から成る。
データライ 卜処理は、 一時保持手段が何を格納しているかにより、 以下の 6つ のタイプに分類できる。
(W 1 ) 一時保持手段に何もない場合。
旧データをデータディスクからリードして一時保持手段に転送する処理と、 新 データをユーザ領域 1 0 8からディスクアレイデータ転送生成手段 2 5 4に転送 する処理と、 一時保持手段に転送された旧データをディスクアレイデータ転送生 成手段 2 5 4に転送する処理と、 ディスクアレイデータ転送生成手段 2 5 4にお いて新データと旧データから新更新データを生成する処理と、 ディスクアレイデ 一夕転送生成手段 2 5 4にある新データを一時保持手段に転送する処理と、 ディ スクアレイデータ転送生成手段 2 5 4にある新更新データを一時保持手段に転送 する処理と、 新データをユーザ領域 1 0 8からデータディスクに転送する処理を 行う。 新更新データの生成には式 2を用いる。
(W 2 ) 一時保持手段に、 旧データがある場合。
(W 1 ) の場合とほぼ同様であるが、 旧データをデータディスクからリードし て一時保持手段に転送する処理は必要ない。 新更新データの生成には、 式 2を用 いる。
(W 3 ) 一時保持手段に、 旧更新データがある場合。
旧データをデータディスクからリードして一時保持手段に転送する処理と、 新 データをユーザ領域 1 0 8からディスクアレイデータ転送生成手段 2 5 4に転送 する処理と、 一時保持手段に転送された旧データをディスクアレイデータ転送生 成手段 2 5 4に転送する処理と、 一時保持手段にある旧更新データをディスクァ レイデータ転送生成手段 2 5 4に転送する処理と、 ディスクアレイデータ転送生 成手段 2 5 4において新データと旧データと旧更新データから新更新データを生 成する処理と、 ディスクアレイデータ転送生成手段 2 5 4にある新データを一時 保持手段に転送する処理と、 ディスクアレイデータ転送生成手段 2 5 4にある新 更新データを一時保持手段に転送する処理と、 新データをユーザ領域 1 0 8から データディスクに転送する処理を行う。 新更新データの生成には、 式 4を用いる。
(W4) 一時保持手段に、 旧更新データと旧データがある場合。
(W3) の場合とほぼ同様であるが、 旧データをディスクからリードして一時 保持手段に転送する処理は必要ない。 新更新データの生成には、 式 4を用いる。
(W5) 一時保持手段に、 旧パリティがある場合。
旧データをデータディスクからリードして一時保持手段に転送する処理と、 新 データをユーザ領域 1 0 8からディスクアレイデータ転送生成手段 2 5 4に転送 する処理と、 一時保持手段にある旧データをディスクアレイデータ転送生成手段 2 5 4に転送する処理と、 一時保持手段にある旧パリティをディスクアレイデー タ転送生成手段 2 5 4に転送する処理と、 ディスクアレイデータ転送生成手段 2 5 4において新データと旧デー夕と旧パリティカ、ら新パリティを生成する処理と、 ディスクアレイデータ転送生成手段 2 5 4にある新データを一時保持手段に転送 する処理と、 ディスクアレイデータ転送生成手段 2 5 4にある新パリティを一時 保持手段に転送する処理と、 新データをユーザ領域 1 0 8からデータディスクに 転送する処理を行う。 新更新データの生成には、 式 1を用いる。
(W6) 一時保持手段に、 旧パリティと旧データがある場合。
(W5) の場合とほぼ同様であるが、 旧データをディスクからリードして一時 保持手段に転送する処理は必要ない。 新パリティの生成には、 式 1を用いる。 データライ ト処理において、 一時保持手段に格納した新データは、 次回、 デー タライ ト処理 (W2) (W4) (W6) における旧データとなる。 データライ 卜 処理 (W2) (W4) (W6) においては、 旧データリード処理を行わないので、 ディスクアクセスを 1回削減できる。
上記データライ ト処理 (Wl ) (W2) (W3) (W 4) において、 一時保持 手段に格納した新更新データは、 次回、 データライ ト処理 (W3) (W4) およ び後述する遅延パリティ処理 (P 1 ) における旧更新データとなる。
上記データライ ト処理 (W5) (W6) において、 一時保持手段に格納した新 パリティは、 次回、 データライ ト処理 (W 5) CW6 ) および後述する遅延パリ ティ処理 (P 2 ) における旧パリティとなる。 データライ ト処理 (W 5 ) (W 6 ) においては、 旧パリティ リード処理を行わないので、 ディスクアクセスを 1 回削減できる。 また、 新パリティは一時保持手段に格納し、 新パリティライ ト処 理を行わないので、 ディスクアクセスを 1回削減できる。 このように、 旧パリテ ィの読み出しと新パリティの書き込みは、 一時保持手段を用いるので、 パリティ ディスクにアクセスすることなくデータライト処理を連続して行うことができる。 次に、 遅延パリティ処理は、 一時保持手段が何を格納しているかにより、 以下 の 2つのタイプに分類できる。 ただし、 一時保持手段に既にディスクに書き込ん だ旧パリティが格納されている場合は、 遅延パリティ処理は行わない。 また、 一 時保持手段に何も格納されていない場合、 もしくは、 旧データだけが格納されて いる場合も、 遅延パリティ処理は行わない。
( P 1 ) 一時保持手段に、 旧更新データがある場合。
旧パリティをディスクからリードして一時保持手段に転送する処理と、 一時保 持手段に転送された旧パリティをディスクアレイデータ転送生成手段 2 5 4に転 送する処理と、 一時保持手段にある旧更新データをディスクアレイデータ転送生 成手段 2 5 4に転送する処理と、 ディスクアレイデータ転送生成手段 2 5 4にお いて旧パリティと旧更新データから新パリティを生成する処理と、 ディスクァレ ィデータ転送生成手段 2 5 4にある新パリティを一時保持手段に転送する処理と、 新 、'リティを一時保持手段からパリティディスクに転送する処理を行う。 新パリ ティの生成には、 式 3を用いる。 一時保持手段に格納した新パリティは、 次回、 データライ ト処理 (W 5 ) (W 6 ) における旧パリティとなる。
( P 2 ) 一時保持手段に、 ディスクに書き込んでいない旧パリティがある場合。 旧パリティを一時保持手段からディスクへ転送する。 なお、 (P 2 ) における 旧パリティは、 式 3の新パリティに相当する。
また、 実施例 3のディスクアレイリード処理を以下に示す。
ディスクアレイリード処理は、 一時保持手段が何を格納しているかにより、 以 下の 2つのタイプに分類できる。
( R 1 ) —時保持手段に、 旧データがない場合。
目的データである旧データをディスクからリードしてユーザ領域 1 0 8に転送 する処理と、 旧データをユーザ領域 1 0 8からディスクアレイデータ転送生成手 段 2 5 4に転送する処理と、 旧データをディスクアレイデータ転送生成手段 2 5 4から一時保持手段に転送する処理を行う。
( R 2 ) 一時保持手段に、 旧データがある場合。
目的データである旧データを一時保持手段からディスクアレイデータ転送生成 手段 2 5 4に転送する処理と、 旧データをディスクアレイデータ転送生成手段 2 5 4からユーザ領域 1 0 8に転送する処理を行う。
ここで、 図 1 0の構成をとるディスクアレイシステムでのディスクアレイリー ド処理動作と、 ディスクアレイライ ト処理動作について説明する。 ディスクァレ ィライ ト処理は、 データライ ト処理と、 遅延パリティ処理に分けて説明する。
[ディスクアレイリード処理]
はじめに、 図 1 0と図 1 1と図 1 3を用いてディスクアレイリード処理動作を 説明する。 動作説明の中で、 (7 0 1 ) から (7 0 5 ) は、 図 1 3の番号に対応 する。 ここで、 目的データは、 図 1 0のディスク装置 3 0 1にある D 0であると する。 ホストシステム 1上のアプリケーションなどからディスクアレイリード要 求が発行されると、 ホスト C P U 1 0 1は、 ディスクアレイ制御プログラム領域 1 0 9内の各プログラムを用いて、 以下の処理を行う。 まず、 図 1 1の要求受信 部 1 2 0力 \ 該リード要求を受け取る。 要求管理部 1 2 1は、 該リ一ド要求をァ ドレス変換部 1 2 2に渡し、 ア ドレス変換部 1 2 2は、 目的データのデータディ スクアドレスを算出する。
旧データ検索部 1 2 3は、 メインメモリ 1 0 4の旧データァドレス保持部 1 1 0に、 目的データのデータディスクァドレスが存在するかを調べることにより、 目的データがメインメモリ 1 0 4内の旧データ保持手段 1 1 2にあるか検索し、 ディスクアレイリード処理 (R l ) ( R 2 ) のタイプ分けを行う。
該データディスクアドレス力く、 旧データアドレス保持部 1 1 0に存在しないと きは、 ディスクアレイリード処理 (R 1 ) となり、 目的データを保持するのに必 要なサイズのメモリを旧データ保持手段 1 1 2に確保し、 そのメモリア ドレスを 算出すると共に、 該メモリアドレスとデータディスクァドレスをまとめて同じ配 列の構造体として、 旧データアドレス保持部 1 1 0に保持する。 該データディスクアドレス力 旧データアドレス保持部 1 1 0に存在している ときは、 ディスクアレイリード処理 (R 2 ) となり、 目的データが存在する旧デ 一夕保持手段 1 1 2のメモリアドレスを算出する。
次に、 アレイ制御補助手段制御コマンド生成部 1 2 5は、 以下のようなコマン ドを生成する。
ディスクアレイリード処理 (R 2 ) の場合は、 目的データを旧データ保持手段 1 1 2力、ら、 ユーザ領域 1 0 8へ D MA転送するためのディスクアレイリード処 理モ一ドのディスクアレイデータ転送生成手段制御コマンドを生成し、 該コマン ドをアレイ制御補助手段制御コマンドとする。 該ディスクアレイデータ転送生成 手段制御コマンドは、 転送長と、 転送元 1である旧データ保持手段 1 1 2のメモ リアドレスと、 転送先 1であるユーザ領域 1 0 8のメモリアドレスと、 動作のモ 一ドを指定するモ一ド選択コマンドと、 転送開始コマンドを有する。
ディスクアレイリ一ド処理 (R 1 ) の場合は、 目的データのデータディスクァ ドレスと読みだした目的データを転送するユーザ領域 1 0 8のメモリアドレスを 格納したデータディスクのリードコマンドと、 目的データをユーザ領域 1 0 8か ら旧データ保持手段 1 1 2へ D MA転送するためのディスクアレイリード処理モ 一ドのディスクアレイデータ転送生成手段制御コマンドを生成し、 各コマンドを アレイ制御保持手段制御コマンドとしてまとめる。 該ディスクアレイデータ転送 生成手段制御コマンドは、 転送長と、 転送元 1であるユーザ領域 1 0 8のメモリ アドレスと、 転送先 1である旧データ保持手段 1 1 2のメモリアドレスと、 動作 のモードを指定するモード選択コマンドと、 転送開始コマンドを有する。
次に、 アレイ制御補助手段制御コマンド生成部 1 2 5は、 要求管理部 1 2 1に 処理を渡す。
まず、 ディスクアレイリード処理 (R 2 ) の場合、 ディスクアレイデータ転送 生成手段制御部 1 3 3は、 ディスクアレイデータ転送生成手段 2 5 4に対しァレ ィ制御補助手段制御コマンドのうちのディスクアレイデータ転送生成手段制御コ マンドを発行する。 ディスクアレイデータ転送生成手段 2 5 4は、 該コマンドを 受け取り、 目的データを旧データ保持手段 1 1 2からユーザ領域 1 0 8に D M A 転送する。 この場合、 転送元アドレス 1は、 旧データ保持手段 1 1 2のメモリア ドレスであり、 転送先 1アドレスは、 ユーザ領域 1 0 8のメモリアドレスである c ホスト C P U 1 0 1は、 ディスクアレイデータ転送生成手段制御コマンドを用い て、 これらのァドレスをディスクアレイデータ転送生成手段 2 5 4のデータ転送 生成管理手段 2 8 6に設定し、 ディスクアレイリード処理モードをモード選択レ ジスタ 2 9 4に設定し、 コマンドレジスタ 2 9 5に転送開始コマンドを発行する ことで上記の通りの D MA転送を実施する。 D MA転送が終了すると、 ディスク アレイデータ転送生成手段 2 5 4は、 ホスト C P U 1 0 1に割り込み信号を発行 する。
ここで、 ディスクアレイデータ転送生成手段 2 5 4のディスクアレイリード処 理モードの動作を図 1 2を用いて説明する。 ディスクアレイデータ転送生成手段 制御コマンドによって、 転送長レジスタ 2 8 8には、 転送長 mバイ 卜が格納され、 転送元 1アドレスレジスタ 2 8 9には、 旧データ保持手段 1 1 2にある目的デー 夕のメモリアドレス X番地が格納され、 転送先 1了ドレスレジスタ 2 9 2には、 目的データが転送されるユーザ領域 1 0 8のメモリアドレス y番地が格納される。 データ 1バッファ 2 8 4とデータ 2バッファ 2 8 5の容量が nバイ 卜だとする と、 転送単位は nバイトとなる。 まず、 目的データを X番地から、 データ入出力 手段 2 8 3を介して、 データ 1バッファ 2 8 4へ nバイト転送し (7 0 4 ) 、 次 に目的データをデータ 1バッファ 2 8 4力、ら、 データ入出力手段 2 8 3を介して、 y番地へ nバイト転送し ( 7 0 5 ) 、 1つの転送単位の転送が終了する。
次の転送単位の転送の前に、 転送長レジスタ 2 8 8から nを引き、 転送元 1ァ ドレスレジスタ 2 8 9と、 転送先 1ァドレスレジスタ 2 9 2に nを加える。 する と、 次は上記と同様な方法で、 (x + n ) 番地から (y + n ) 番地へ nバイ卜の 転送が行われる。 この動作を転送長レジスタ 2 8 8が 0になるまで続けることに より、 X番地から、 y番地の D M A転送が行われる。 D MA転送が終了すると、 データ転送生成管理手段 2 8 6は割り込み信号を発行し処理を終了する。 なお、 ディスクアレイリード処理モードの場合、 データ入出力手段 2 8 3は、 入力モー ドと出力モードを繰り返す。
また、 後述の実施例 4においては、 図 1 2のディスクアレイデータ転送生成手 段 2 5 4は、 データ転送生成管理手段 2 8 6内にデータの転送先のァドレスを格 納する転送先 2アドレスレジスタを有する。 転送元、 または、 転送先が 1 0の場 合でも、 上記と同様な DMA転送が可能である。 その場合、 1つの転送単位 nバ ィ 卜の転送を行った後、 さらに nバイ ト転送するときに、 転送元が I 0なので、 I 0ァドレスが格納されている各ァドレスレジスタには、 nを加えずに同じ値を 用いる。 転送元、 または、 転送先が I 0であることは、 データ転送生成管理手段
2 8 6のモード選択レジスタ 2 9 4に設定する。
動作説明に戻り、 目的データの転送が終了すると、 図 1 1の要求管理部 1 2 1 は、 要求終了部 1 2 6に処理を移し要求終了部 1 2 6は、 全体のリ一ド処理を終 了させる。
また、 ディスクアレイリード処理 (R 1 ) の場合、 ディスクインターフェース 制御手段制御部 1 3 1は、 ディスクインターフヱース制御手段 2 0 5に対し、 ァ レイ制御補助手段制御コマンドのうちの目的データのリードコマンドを発行する。 次に、 ディスクインタ一フヱ一ス制御手段 2 0 5は、 目的データが格納されてい るディスク装置 3 0 1に対して受信した該リードコマンドを発行する。 ディスク 装置 3 0 1は、 該リードコマンドを受け取り、 目的データをディスクインターフ ヱース制御手段 2 0 5に転送する。 ディスクインタ一フヱース制御手段 2 0 5は、 目的データをユーザ領域 1 0 8に D M A転送し (7 0 1 ) 、 ホスト C P U 1 0 1 に割り込み信号を発行する。 次に、 ディスクアレイデータ転送生成手段制御部 1
3 3は、 ディスクアレイデータ転送生成手段 2 5 4に対しアレイ制御補助手段制 御コマンドのうちのディスクアレイデータ転送生成手段制御コマンドを発行する。 ディスクアレイデータ転送生成手段 2 5 4は、 該コマンドを受け取り、 目的デ一 タをユーザ領域 1 0 8から旧データ保持手段 1 1 2に DM A転送する ( 7 0 2 ) ( 7 0 3 ) 。 D MA転送が終了すると、 ディスクアレイデータ転送生成手段 2 5 4は、 ホスト C P U 1 0 1に割り込み信号を発行する。
目的データの転送が終了すると、 要求管理部 1 2 1は、 要求終了部 1 2 6に処 理を移し要求終了部 1 2 6は、 全体のリード処理を終了させる。
[ディスクアレイライ ト処理]
次に、 ディスクアレイライ ト処理におけるデータライ ト処理と遅延パリティ処 理について説明する。 [データライ ト処理]
データライ ト処理 (W 3 ) を例として、 データライ ト処理動作を図 1 0と図 1 1と図 1 4を用いて説明する。 動作説明の中で、 (8 0 1 ) から (8 0 7 ) は、 図 1 4の番号に対応する。 ここで、 新データは、 図 1 0のディスク装置 3 0 1の D 0に書き込まれるとする。 ホストシステム 1上のアプリケーションなどからデ イスクアレイライ ト要求が発行されると、 ホスト C P U 1 0 1は、 ディスクァレ ィ制御プログラム領域 1 0 9内の各プログラムを用いて、 以下の処理を行う。 まず、 図 1 1の要求受信部 1 2 0カ^ 該ライ ト要求を受け取る。 要求管理部 1 2 1は、 該ライ ト要求をアドレス変換部 1 2 2に渡し、 アドレス変換部 1 2 2は、 新データをライ 卜するデータディスクァドレスと、 新データに対応したパリティ ディスクアドレスを算出する。
旧データ検索部 1 2 3は、 算出したデータディスクアドレス力 \ メインメモリ 1 0 4の旧データァドレス保持部 1 1 0に存在するかを調べることにより、 メイ ンメモリ 1 0 4内の旧データ保持手段 1 1 2に旧データがあるか検索し、 データ ライ ト処理のタイプ分けを行う。
データライ ト処理 (W 3 ) では、 該データディスクアドレスが旧データァドレ ス保持部 1 1 0に存在しないので、 新データを保持するのに必要なサイズのメモ リを旧データ保持手段 1 1 2に確保すると共に、 そのメモリアドレスとデータデ イスクアドレスをまとめて同じ配列の構造体として、 旧データァドレス保持部 1 1 0に保持する。
パリティ検索部 1 2 4は、 算出したパリティディスクァドレス力 メインメモ リ 1 0 4のパリティアドレス保持部 1 1 1に存在するかを調べることにより、 メ インメモリ 1 0 4内のパリティ保持手段 1 1 4に旧更新データ、 または、 旧パリ ティがあるか検索し、 データライ ト処理のタイプ分けを行う。
もし、 該パリティディスクアドレスがパリティアドレス保持部 1 1 1に存在し ているときは、 パリティディスクアドレスに付加されているフラグを元に、 旧更 新データ力、、 旧パリティかを調べる。 データライ ト処理 (W 3 ) では、 旧更新デ 一夕が存在するパリティ保持手段 1 1 4のメモリアドレスを算出する。
次に、 アレイ制御補助手段制御コマンド生成部 1 2 5は、 データライ ト処理 (W 3 ) では、 以下のようなコマンドを生成し、 これらをまとめてアレイ制御補 助手段制御コマンドとする。
旧データのデータディスクァドレスと読みだした旧データを転送する旧データ 保持手段 1 1 2のメモリアドレスを格納したデータディスクのリードコマンドを 生成する。
ディスクアレイデータ転送生成手段制御コマンドとしては、 ユーザ領域 1 0 8 の新データと、 旧データ保持手段 1 1 2の旧データと、 パリティ保持手段 1 1 4 の旧更新データから新パリティを生成し、 さらに、 新データを旧データ保持手段 1 1 2に転送し、 生成した新更新データをパリティ保持手段 1 1 4に転送するよ うなデータライ ト処理モードのコマンドを生成する。 また、 新データが存在する ユーザ領域 1 0 8のメモリアドレスと新データを書き込むデータディスクァドレ スを格納したデータディスクのライ トコマンドを生成する。
ここで、 データライ 卜処理モードのディスクアレイデータ転送生成手段制御コ マンドを以下に示す。
データライ ト処理 (W 3 ) の場合、 該コマンドは、 転送長と、 転送元 1のユー ザ領域 1 0 8のメモリアドレスと、 転送元 2の旧データ保持手段 1 1 2のメモリ ァドレスと、 転送元 3のパリティ保持手段 1 1 4のメモリアドレスと、 転送先 1 の旧データ保持手段 1 1 2のメモリアドレスと、 転送先 2のパリティ保持手段 1 1 4のメモリアドレスと、 動作のモードを指定するモード選択コマンドと、 デー タ入出力手段 2 8 3の入出力モードを指定する入出力モード選択コマンドと、 デ 一夕 1バッファ 2 8 4とデータ 2バッファ 2 8 5の初期化コマンドと、 転送開始 コマンドを有する。
アレイ制御補助手段制御コマンド生成部 1 2 5は、 以上のようなコマンドを生 成し、 これらをまとめてアレイ制御補助手段制御コマンドとし、 要求管理部 1 2 1に処理を渡す。
まず、 ディスクインターフヱース制御手段制御部 1 3 1は、 ディスクインター フェース制御手段 2 0 5に対し、 アレイ制御補助手段制御コマンドのうちの旧デ 一夕のリードコマンドを発行する。 次に、 ディスクインターフヱ一ス制御手段 2 0 5は、 旧データが格納されているディスク装置 3 0 1に対して受信した該リー ドコマンドを発行する。 ディスク装置 3 0 1は、 該リードコマンドを受け取り、 旧データをディスクインターフヱース制御手段 2 0 5に転送する。 ディスクイン 夕ーフヱース制御手段 2 0 5は、 旧データを旧データ保持手段 1 1 2に D MA転 送し (8 0 1 ) 、 ホスト C P U 1 0 1に割り込み信号を発行する。
ディスクアレイデータ転送生成手段制御部 1 3 3は、 ディスクアレイデータ転 送生成手段 2 5 4に対しアレイ制御補助手段制御コマンドのうちのディスクァレ ィデータ転送生成手段制御コマンドを発行する。 ディスクアレイデータ転送生成 手段 2 5 4は、 該コマンドを受け取り、 ユーザ領域 1 0 8の新データと、 旧デー タ保持手段 1 1 2の旧データと、 パリティ保持手段 1 1 4の旧更新データから新 更新データを生成し、 さらに、 新データを旧データ保持手段 1 1 2に転送し、 生 成した新更新データをパリティ保持手段 1 1 4に転送するようなデータライ ト処 理モードの転送を行う。
このとき、 転送元 1はユーザ領域 1 0 8のメモリアドレス、 転送元 2は旧デ一 タ保持手段 1 1 2メモリアドレス、 転送元 3はパリティ保持手段 1 1 4メモリア ドレス、 転送先 1は旧データ保持手段 1 1 2のメモリアドレス、 転送先 2はパリ ティ保持手段 1 1 4のメモリアドレスである。 ホスト C P U 1 0 1は、 ディスク アレイデータ転送生成手段制御コマンドを用いて、 これらのァドレスをディスク アレイデータ転送生成手段 2 5 4のデータ転送生成管理手段 2 8 6に設定し、 モ 一ド選択コマンドによってデータライ ト処理モードをモード選択レジスタ 1 9 4 に設定し、 入出力モードを入出力モードレジスタ 2 9 6に設定し、 バッファの初 期化コマンドをデータバッファ初期化レジスタ 2 9 7に設定し、 コマンドレジス タ 2 9 5に実行コマンドを発行することで上記の通りの D MA転送を実施する。 ディスクアレイデータ転送生成手段 2 5 4は、 ホスト C P U 1 0 1に割り込み信 号を発行する。
ここで、 ディスクアレイデータ転送生成手段 2 5 4のデータライ ト処理モード の動作例を図 1 2を用いて説明する。 ディスクアレイデータ転送生成手段制御コ マンドによって、 転送長レジスタ 2 8 8には、 転送長 mバイ 卜が格納され、 転送 元 1ァドレスレジス夕 2 8 9には、 ユーザ領域 1 0 8にある新データのメモリア ドレス X番地が格納され、 転送元 2アドレスレジスタ 2 9 0には、 旧データ保持 手段 1 1 2にある旧データのメモリアドレス y番地が格納され、 転送元 3ァドレ スレジスタ 2 9 1には、 パリティ保持手段 1 1 4にある旧更新データのメモリア ドレス z番地が格納され、 転送先 1アドレスレジスタ 2 9 2には、 新データが転 送される旧データ保持手段 1 1 2のメモリアドレス i番地が格納され、 転送先 2 アドレスレジスタ 2 9 3には、 新更新データが転送されるパリティ保持手段 1 1 4のメモリアドレス j番地が格納されるとする。
まず、 ディスクアレイデータ転送生成手段制御コマンドによって、 入出力モー ドレジスタ 2 9 6にデータ処理 (W 3 ) のモードが設定されると、 データ入出力 手段 2 8 3が入力モードとなり、 以下、 処理に合わせて入出力モードが切り替わ る。 また、 データバッファ初期化レジスタ 2 9 7が設定されると、 データ 1バッ ファ 2 8 4とデータ 2バッファ 2 8 5にあるデータが 0で初期化され、 排他的論 理和演算手段 2 8 7はデータの受け入れが可能な状態になる。
データ 1バッファ 2 8 4とデータ 2バッファ 2 8 5の容量が nバイ トだとする と、 転送単位は nバイ トとなる。 まず、 新データを X番地からデータ入出力手段 2 8 3を介して、 データ 1バッファ 2 8 4へ nバイ 卜転送する ( 8 0 2 ) 。 次に、 旧データを y番地からデータ入出力手段 2 8 3を介して、 排他的論理和演算手段 2 8 7へ nバイ ト転送し、 データ 1バッファ 2 8 4にある新データとの排他的論 理和を算出し、 結果をデータ 2バッファ 2 8 5に入れる ( 8 0 3 ) 。 データ 2バ ッファ 2 8 5には、 新データと旧データの排他的論理和があることになる。 次に、 データ 1バッファ 2 8 4にある新データをデータ入出力手段 2 8 3を介して、 i 番地に nバイ ト転送する ( 8 0 4 ) 。
次に、 旧更新データを z番地からデータ入出力手段 2 8 3を介して、 排他的論 理和演算手段 2 8 7に nバイ 卜転送し、 データ 2バッファ 2 8 5にあるデータと の排他的論理和を算出し、 結果をデータ 1バッファ 2 8 4に入れる ( 8 0 5 ) 。 このとき、 デ一夕 1バッファ 2 8 4には、 新データと旧データと旧更新データの 排他的論理和である新更新データがあることになる。 さらに、 データ 1バッファ 2 8 4にある新更新データを j番地へ nバイ 卜転送する ( 8 0 6 ) 。
以上が、 データライ 卜処理モードにおける 1つの転送単位の動作である。
次の転送単位の転送の前に、 転送長レジスタ 2 8 8から nを引き、 各ア ドレス レジスタに nを加える。 すると、 次は上記と同様な方法で、 (x + n) 番地、 (y + n) 番地、 (z + n) 番地から nバイ トの転送が行われ、 (i +n) 番地、 ( j +n) 番地へ nバイ 卜の転送が行われる。 この動作を転送長レジスタ 288 が 0になるまで続けることにより、 データライ ト処理モードの DM A転送が行わ れる。 DMA転送が終了すると、 データ転送生成管理手段 286は割り込み信号 を発行し処理を終了する。
次に、 ディスクインターフヱース制御手段制御部 1 3 1は、 ディスクインタ一 フェース制御手段 205に対し新データのライ トコマンドを発行する。 ディスク インタ一フェース制御手段 20 5は、 新データを格納するディスク装置に対して 受信した該ライ トコマンドを発行する。 ディスク装置 30 1は、 該ライ トコマン ドを受け取り、 データを待つ状態となる。 ディスクインターフェース制御手段 2 05は、 新データをユーザ領域 1 08からディスクインタ一フヱ一ス制御手段 2 05に DMA転送し (807 ) 、 ホスト CPU 1 0 1に割り込み信号を発行する c このとき新データは、 デ一夕ディスクにライ トされる。
動作説明に戻り、 図 1 1の要求管理部 1 2 1は、 新データの書き込みが終了し たディスクインタフェース制御手段 205から割り込み信号を受け取ると、 要求 終了部 1 26に処理を移し、 要求終了部 1 26は、 全体のデータライ ト処理を終 了させる。
データライ ト処理 (W 3) と他のデータライト処理の違いを以下に示す。
データライ ト処理 (W5) は、 データライ ト処理 (W3) の旧更新データを旧 パリティに、 新しく生成された新データを新パリティに置き換えたものである。 (805 ) で旧パリティが転送され、 (806 ) で新パリティが転送される。 ま た、 ディスクアレイ制御プログラム領域 1 09内のパリティ検索部 1 24は、 ノ リティアドレス保持部 1 1 1に格納されているパリティディスクアドレスに付加 されているフラグをパリティディスクに書き込まれているものと違う旧パリティ であることを表すようにする。
データライ ト処理 (W1) は、 データライ ト処理 (W3) において旧更新デー 夕を用いないで、 新更新データを生成する処理であり、 パリティ生成に関する動 作がデータライ ト処理 (W3) と異なる。 また、 データとの整合性がとれていな いパリティのパリティディスクァドレスを記録する処理を行う。
ディスクアレイ制御プログラム領域 1 0 9内の処理において、 パリティ検索部 1 2 4は、 算出したパリティディスクァドレス力 \ メインメモリ 1 0 4のパリテ ィアドレス保持部 1 1 1に存在するかを調べることにより、 メインメモリ 1 0 4 内のパリティ保持手段 1 1 4に旧更新データ、 または、 旧パリティがあるか検索 する。 データライ ト処理 (W 1 ) の場合、 該パリティディスクァドレス力くパリテ ィアドレス保持部 1 1 1に存在しないので、 新更新データを保持するのに必要な サイズのメモリをパリティ保持手段 1 1 4に確保すると共に、 そのメモリアドレ スとパリティディスクアドレスと、 データライト処理後にパリティ保持手段 1 1 4に格納されるのが新更新データであることを表すフラグをまとめて同じ構造体 として、 パリティアドレス保持部 1 1 1に保持する。 また、 該パリティディスク ァドレスを未記録パリティアドレス保持手段 2 5 0に保持する。 データライ ト処 理モードのディスクアレイデータ転送生成手段制御コマンドによって、 入出力モ 一ドレジスタ 2 9 6にデータ処理 (W 1 ) のモードを設定する。 ( 8 0 5 ) の転 送は、 行われず、 (8 0 6 ) の転送の代わりに、 データ 2バッファ 2 8 5にある 新更新データがパリティ保持手段 1 1 4に転送される。
データライ ト処理 (W 2 ) 、 (W 4 ) 、 (W 6 ) は、 それぞれ、 データライ ト 処理 (W l ) 、 (W 3 ) 、 (W 5 ) 力、ら旧データリードに係わる処理を行わない ようにしたものである。 ディスクアレイ制御プログラム領域 1 0 9内の処理にお いて、 旧データ検索部 1 2 3は、 算出したデータディスクアドレス力く、 メインメ モリ 1 0 4の旧データァドレス保持部 1 1 0に存在するかを調べることにより、 メインメモリ 1 0 4内の旧データ保持手段 1 1 2に旧データがあるか検索する。 データライ ト処理 (W 2 ) 、 (W 4 ) 、 (W 6 ) では、 該データディスクァドレ スが旧データアドレス保持部 1 1 0に存在しているので、 旧データが存在する旧 データ保持手段 1 1 2のメモリア ドレスを算出する。 また、 新データを保持する のに必要なサイズのメモリを旧データ保持手段 1 1 2に確保すると共に、 そのメ モリアドレスを算出する。
実施例 3のデータライ ト処理においては、 未記録パリティアドレス保持手段 2 5 0に書き込まれたパリティディスクァドレスにより、 どのディスク装置のどの 論理ブロックのパリティに変更が必要であるかが記録される。 また、 旧データ保 持手段 1 1 2に保持された新データは、 次回のデータライ 卜処理における旧デー タとなり、 ディスクアレイデータ転送生成手段 2 5 4による新更新データの生成 処理と新パリティの生成処理を高速化できる。 さらに、 リードモデフアイライ ト 処理においては、 リード処理時に読み出したデータが旧データ保持手段 1 1 2に 保持されているので、 変更したデータのデータライ ト処理を行う際にあらためて 旧データを読み出す必要がなく、 ディスク装置に対する処理を 1回削減できる。
[遅延パリティ処理]
遅延パリティ処理を図 1 0と図 1 1 と図 1 5を用いて説明する。 動作説明の中 で、 (9 0 1 ) から (9 0 5 ) は、 図 1 5の番号に対応する。 ここで、 新パリテ ィは、 図 1 0のディスク装置 3 0 5の Pに書き込まれるとする。
ホスト C P U 1 0 1は、 ディスクアレイ制御プログラム領域 1 0 9内の各プロ グラムを用いて、 以下の処理を行う。 まず、 図 1 1の遅延パリティ処理判定部 1 2 Ίが、 遅延パリティ処理を行うべきであると判断すると、 要求管理部 1 2 1に 処理を渡す。 遅延パリティ処理が開始されるタイミングとして、 例えば、 ドライ ブに対するアクセス頻度が低いときや、 パリティ保持手段 1 1 4が旧更新データ で一杯になつたときなどが考えられる。
要求管理部 1 2 1は、 パリティ検索部 1 2 4に処理を渡し、 パリティ検索部 1 2 4は、 メインメモリ 1 0 4のパリティアドレス保持部 1 1 1にパリティデイス クアドレスが存在するかを検索し、 存在したときは付加されているフラグを調べ る。
ノ、'リティアドレス保持部 1 1 1に何もないか、 もしくは、 パリティディスクに あるパリティと同一のパリティディスクァドレスのみが存在する場合は、 要求管 理部 1 2 1に処理を渡し、 要求終了部 1 2 6が遅延パリティ処理を終了させる。 また、 パリティアドレス保持部 1 1 1に、 旧更新データのパリティディスクァ ドレス、 または、 パリティディスクに書き込まれているものと異なる旧パリティ のパリティディスクアドレスが存在する場合は、 対応するパリティ保持手段 1 1
4のメモリア ドレスを算出し、 遅延パリティ処理後にパリティ保持手段 1 1 4に 格納されるのが、 パリティディスクに書き込まれているものと同じ旧パリティで あることを表すようにフラグを書き直す。
次に、 アレイ制御補助手段制御コマンド生成部 1 2 5は、 以下のようなコマン ドを生成し、 これらをまとめてアレイ制御補助手段制御コマンドとする。
遅延パリティ処理 (P 1 ) の場合、 旧パリティのパリティディスクァドレスと、 読みだした旧パリティを転送するパリティ生成作業領域 1 1 3のメモリアドレス を格納したパリティディスクのリードコマンドを生成する。 また、 ディスクァレ ィデータ転送生成手段制御コマンドとしては、 パリティ生成作業領域 1 1 3の旧 パリティと、 パリティ保持手段 1 1 4の旧更新データから新パリティを生成し、 さらに、 生成した新パリティをパリティ保持手段 1 1 4に転送するような遅延パ リティ処理モードのコマンドを生成する。 また、 新パリティが存在するパリティ 保持手段 1 1 4のメモリアドレスと新パリティを書き込むパリティディスクアド レスを格納したパリティディスクのライ トコマンドを生成する。
遅延パリティ処理モードの場合のディスクアレイデータ転送生成手段制御コマ ンドは、 転送長と、 転送元 1であるパリティ生成作業領域 1 1 3のメモリアドレ スと、 転送元 2であるパリティ保持手段 1 1 4のメモリアドレスと、 転送先 1で あるパリティ保持手段 1 1 4のメモリアドレスと、 モード選択コマンドと、 デー 夕 1バッファ 2 8 4とデータ 2バッファ 2 8 5の初期化コマンドと、 転送開始コ マンドを有する。
遅延パリティ処理 (P 2 ) の場合は、 新パリティが存在するパリティ保持手段 1 1 4のメモリアドレスと新パリティを書き込むパリティディスクアドレスを格 納したパリティディスクのライ トコマンドを生成する。
アレイ制御補助手段制御コマンド生成部 1 2 5は、 以上のようなコマンドを生 成し、 これらをまとめてアレイ制御補助手段制御コマンドとし、 要求管理部 1 2 1に処理を渡す。
まず、 遅延パリティ処理 (P 2 ) の場合を示す。 ディスクインタ一フヱース制 御手段制御部 1 3 1は、 ディスクインターフヱース制御手段 2 0 9に対し新パリ ティのライ トコマンドを発行する。 ディスクインターフヱ一ス制御手段 2 0 9は、 新パリティを格納するディスク装置 3 0 5に対して受信した該ライ トコマンドを 発行する。 ディスク装置 3 0 5は、 該ライ トコマンドを受け取り、 データを待つ 状態となる。 ディスクインタ一フ —ス制御手段 2 0 9は、 新パリティをパリテ ィ保持手段 1 1 4からディスクインターフェース制御手段 2 0 9に D M A転送し ( 9 0 5 ) 、 ホスト C P U 1 0 1に割り込み信号を発行する。 このとき新パリテ ィは、 パリティディスクにライ 卜される。
要求管理部 1 2 1は、 新パリティの書き込みが終了したディスクインタフエ一 ス制御手段 2 0 9から割り込み信号を受け取ると、 未記録パリティアドレス保持 手段 2 5 0にある遅延パリティ処理が行われたパリティディスクアドレスを消去 した後、 要求終了部 1 2 6に処理を移し、 要求終了部 1 2 6は、 全体の遅延パリ ティ処理を終了させる。
次に、 遅延パリティ処理 (P 1 ) の場合を示す。 ディスクインタ一フヱース制 御手段制御部 1 3 1は、 ディスクインタ一フェース制御手段 2 0 9に対し、 ァレ ィ制御補助手段制御コマンドのうちの旧パリティのリードコマンドを発行する。 ディスクインターフヱ一ス制御手段 2 0 9は、 旧データが格納されているディス ク装置 3 0 5に対して受信した該リードコマンドを発行する。 ディスク装置 3 0 5は、 該リードコマンドを受け取り、 旧パリティをディスクインターフヱース制 御手段 2 0 9に転送する。 ディスクインターフヱース制御手段 2 0 9は、 旧パリ ティをパリティ生成作業領域 1 1 3に D M A転送し (9 0 1 ) 、 ホスト C P U 1 0 1に割り込み信号を発行する。
次に、 ディスクアレイデータ転送生成手段制御部 1 3 3は、 ディスクアレイデ 一夕転送生成手段 2 5 4に対しアレイ制御捕助手段制御コマンドのうちのディス クアレイデータ転送生成手段制御コマンドを発行する。 ディスクアレイデータ転 送生成手段 2 5 4は、 該コマンドを受け取り、 パリティ生成作業領域 1 1 3の旧 パリティと、 パリティ保持手段 1 1 4の旧更新データから新パリティを生成し、 さらに、 生成した新パリティをパリティ保持手段 1 1 4に転送するような遅延パ リティ処理モードの転送を行う。
このとき、 転送元 1はパリティ生成作業領域 1 1 3のメモリアドレス、 転送元 2はパリティ保持手段 1 1 4のメモリアドレス、 転送先 1はパリティ保持手段 1 1 4のメモリアドレスである。 ホスト C P U 1 0 1は、 ディスクアレイデータ転 送生成手段制御コマンドを用いて、 これらのァドレスをディスクアレイデータ転 送生成手段 2 5 4のデータ転送生成管理手段 2 8 6に設定し、 遅延パリティ処理 モ一ドをモ一ド選択レジスタ 2 9 4に設定し、 コマンドレジスタ 2 9 5に実行コ マンドを発行することで上記の通りの D M A転送を実施する。 ディスクアレイデ 一夕転送生成手段 2 5 4は、 ホスト C P U 1 0 1に割り込み信号を発行する。 遅延パリティ処理モードのディスクアレイデータ転送生成手段 2 5 4の動作を 以下に示す。 ディスクアレイデータ転送生成手段制御コマンドによって、 転送長 レジスタ 2 8 8には、 転送長 mバイ トが格納され、 転送元 1アドレスレジスタ 2 8 9には、 パリティ作業領域 1 1 3にある旧パリティのメモリアドレス X番地が 格納され、 転送元 2ァドレスレジスタ 2 9 0には、 パリティ保持手段 1 1 4にあ る旧更新データのメモリアドレス y番地が格納され、 転送先 1アドレスレジスタ 2 9 2には、 新パリティが転送されるパリティ保持手段 1 1 4のメモリアドレス i番地が格納されるとする。
まず、 ディスクアレイデータ転送生成手段制御コマンドによって、 データバッ ファ初期化レジスタ 2 9 7が設定されると、 データ 1バッファ 2 8 4とデータ 2 バッファ 2 8 5にあるデータが 0で初期化され、 排他的論理和演算手段 2 8 7は データの受け入れが可能な状態になる。 なお、 遅延パリティ処理モードの場合、 遅延パリティ処理 (P 1 ) に合わせて入出力モードが切り替わる。
データ 1バッファ 2 8 4とデータ 2バッファ 2 8 5の容量が nバイ トだとする と、 転送単位は nバイ トとなる。 まず、 旧パリティを X番地からデータ入出力手 段 2 8 3を介して、 データ 1バッファ 2 8 4へ nバイ ト転送する (9 0 2 ) 。 次 に、 旧更新データを y番地からデータ入出力手段 2 8 3を介して、 排他的論理和 演算手段 2 8 7へ nバイ ト転送し、 データ 1バッファ 2 8 4にある新データとの 排他的論理和を算出し、 結果をデータ 2バッファ 2 8 5に入れる (9 0 3 ) 。 デ 一夕 2バッファ 2 8 5には、 新パリティがあることになる。 次に、 データ 2 ノくッ ファ 2 8 5にある新パリティをデータ入出力手段 2 8 3を介して、 i番地に nバ ィ ト転送する ( 9 0 4 )
以上が、 遅延パリティ処理モードにおける 1つの転送単位の動作である。 次の転送単位の転送の前に、 転送長レジスタ 2 8 8から nを引き、 各アドレス レジスタに nを加える。 すると、 次は上記と同様な方法で、 (x + n ) 番地、 ( y + n ) 番地から nバイ 卜の転送が行われ、 ( i + n ) 番地へ nバイ 卜の転送 が行われる。 この動作を転送長レジスタ 2 8 8が 0になるまで続けることにより、 遅延パリティ処理モードの D M A転送が行われる。 D M A転送が終了すると、 デ 一夕転送生成管理手段 2 8 6は割り込み信号を発行し処理を終了する。
以下、 新パリティがパリティ保持手段 1 1 4にある場合 (P 1 ) と同様な処理 となる。
実施例 3において、 ディスクアレイデータ転送生成手段 2 5 4は、 新更新デー 夕および新パリティの生成の際のデータ転送と排他的論理和演算を同時に行うの で、 新更新データおよび新パリティを生成するためのデータを転送する際に生じ るオーバーへッ ドを低減することができる。 また、 一時保持手段をメインメモリ 1 0 4内に配置するため、 メモリの有効利用が図れると共に、 製造コストを下げ ることができる。
実施例 4のシステム構成は図 1 0と同じである。 実施例 3との違いは、 デイス クアレイデータ転送生成手段 2 5 4と、 ディスクインタ一フヱース制御手段 2 0 5〜2 0 9の構成および動作の違いにある。
実施例 4のディスクアレイデータ転送生成手段 2 5 4の構成は、 実施例 3の図 1 2のデータ転送生成管理手段 2 8 6内に、 データの転送先のアドレスを格納す る転送先 2ァドレスレジスタを加えたものである。 実施例 4のディスクアレイデ 一夕転送生成手段 2 5 4は、 実施例 3のディスクアレイデータ転送生成手段 2 5 4の動作に加え、 実施例 1のディスクアレイデータ転送手段 2 0 2と同様に、 転 送先 1から、 転送先 2と転送先 3へ一括 D M A転送を行う機能を有する。 また、 ディスクインターフェース制御手段 2 0 5〜2 0 9は、 D M A転送機能を持たな いため、 ディスクインターフェース制御手段 2 0 5〜 2 0 9とメインメモリ 1 0 4間のデータ転送は、 ディスクアレイデータ転送生成手段 2 5 4力く行う。
ここで、 実施例 4のディスクアレイシステムでのディスクアレイリード処理と、 ディスクアレイライ ト処理におけるタイプ分けは、 実施例 3と同じである力 動 作が違う。 実施例 3からの変更点を以下に示す。
[ディスクアレイリード処理]
ディスクアレイリード処理 (R 1 ) においては、 目的データである旧データを ディスクからリードして、 ユーザ領域 1 0 8と一時保持手段に一括 D M A転送す る処理を行う。 ディスクアレイリード処理 (R 2 ) は、 実施例 3と同様である。
[ディスクアレイライ ト処理]
[データライ ト処理]
すべてのデータライ ト処理において、 新データをユーザ領域 1 0 8からデータ ディスクに転送する処理と、 新データをユーザ領域 1 0 8から一時保持手段に転 送する処理を、 新データをユーザ領域 1 0 8力、ら、 データディスクと一時保持手 段に一括 D M A転送する処理にして行う。
[遅延パリティ処理]
旧パリティを一時保持手段に転送する処理と、 新パリティをパリティディスク に転送する処理は、 ディスクアレイデータ転送生成手段 2 5 4力行う。
以上述べた実施例 4は、 実施例 3と同様な効果が得られる。
第 5の実施例のシステム構成を図 1 6に示す。
図 1 6は、 第 3実施例の図 1 0におけるディスクアレイデータ転送生成手段 2 5 4を、 実施例 1の図 4に示すディスクアレイデータ転送手段 2 0 2と図 5に示 す排他的論理和生成手段 2 0 3に置き換えたものである。 アレイ制御補助手段 2 のディスクアレイデータ転送手段 2 0 2と排他的論理和生成手段 2 0 3とを 1つ のチップとして提供すれば、 実施例 3において述べた効果を得ることは明らかで あり、 これらを 1ボード上に搭載すれば実施例 1で述べたようにシステムの拡張 性を向上することができるのは明らかである。
また、 メインメモリ 1 0 4のディスクアレイ制御プログラム領域 1 0 9は、 図 1 7に示すように、 要求受信部 1 2 0と、 要求管理部 1 2 1と、 ァ ドレス変換部 1 2 2と、 旧データ検索部 1 2 3と、 パリティ検索部 1 2 4と、 アレイ制御補助 手段制御コマンド生成部 1 2 5と、 ディスクアレイデータ転送手段制御部 1 3 0 と、 ディスクインタ一フュース制御手段制御部 1 3 1と、 排他的論理和生成手段 制御部 1 3 2と、 要求終了部 1 2 6と、 遅延パリティ処理判定部 1 2 7で構成し ている。
図 1 6の旧データ保持手段 1 1 2、 旧データァドレス保持部 1 1 0、 パリティ 保持手段 i 1 4、 パリティア ドレス保持部 1 1 1と、 未記録パリティア ドレス保 持手段 2 5 0の構成は、 実施例 1の図 1の旧データ保持手段 2 1 6、 旧データァ ドレス保持部 1 1 0、 パリティ保持手段 2 1 8、 パリティア ドレス保持部 1 1 1 と未記録パリティアドレス保持手段 2 5 0とそれぞれ同じである。 ディスクァレ ィデータ転送手段 2 0 2および排他的論理和生成手段 2 0 3の動作は、 実施例 1 と同じであり、 ディスクアレイデータ転送手段 2 0 2は、 一括 DMA転送を行う ことができる。
実施例 5のディスクアレイリード'ライト処理においては、 実施例 1と違い、 ァレイ制御捕助手段 2の制御を図 1のような M P U 2 1 0ではなく、 ホスト C P U 1 0 1で行い、 一時保持手段は、 ホストシステム 1のメインメモリ 1 0 4内に 配置する。
実施例 5と実施例 1のディスクアレイリード'ライト処理動作の違いを以下に 示す。
なお、 一時保持手段に格納されているもので分類したタイプは、 実施例 1と実 施例 5では同じである。
まず、 実施例 1においては、 図 2に示すディスクアレイ制御プログラム領域 1 0 9内のアレイ制御補助手段制御コマンド生成部 1 2 5が生成した制御コマンド を M P U制御部 1 2 8に渡し、 M P U制御部 1 2 8は、 図 1の M P U 2 1 0に該 制御コマンドを発行する。
該制御コマンドを受け取った M P U 2 1 0は、 図 3に示す M P U制御プログラ ム領域 2 1 4を用いて、 以下の処理を行う。 要求受信部 2 2 0は、 該制御コマン ドを受け取ると、 要求管理部 2 2 1 に処理を渡す。 要求管理部 2 2 1は、 ディス クアレイデータ転送手段制御部 2 2 2、 ディスクインターフヱース制御手段制御 部 2 2 3および排他的論理和生成手段制御部 2 2 4に処理を移し、 ディスクァレ ィデータ転送手段制御部 2 2 2はディスクアレイデータ転送手段 2 0 2に、 ディ スクインタ一フヱース制御手段制御部 2 2 3はディスクインターフェース制御手 段 2 0 5〜 2 0 9に、 排他的論理和生成手段制御部 2 2 4は排他的論理和生成手 段 2 0 3に、 それぞれの制御コマンドを発行する。 また、 要求管理部 2 2 1は、 ディスクアレイデータ転送手段 2 0 2、 ディスクインターフヱース制御手段 2 0 5〜2 0 9および排他的論理和生成手段 2 0 3から割り込み信号を受け取り、 す ベての処理が終了すると要求終了部 2 2 5に処理を渡す。 要求終了部 2 2 5は、 ホスト C P U 1 0 1に割り込み信号を出す。
割り込み信号を受け取ったホスト C P U 1 0 1は、 図 2に示すディスクアレイ 制御プログラム領域 1 0 9内の要求管理部 1 2 1を用いて要求終了部 1 2 6に処 理を移し、 要求終了部 1 2 6は全体の処理を終了させる。
次に、 実施例 5においては、 図 1 7に示すディスクアレイ制御プログラム領域 1 0 9内のアレイ制御補助手段制御コマンド生成部 1 2 5が制御コマンドを生成 した後、 要求管理部 1 2 1に処理が移る。 要求管理部 1 2 1は、 ディスクアレイ データ転送手段制御部 1 3 0、 ディスクインターフェース制御手段制御部 1 3 1 および排他的論理和生成手段制御部 1 3 2に処理を移し、 ディスクアレイデータ 転送手段制御部 1 3 0はディスクアレイデータ転送手段 2 0 2に、 ディスクイン タ一フヱース制御手段制御部 1 3 1はディスクインタ一フヱ一ス制御手段 2 0 5 〜 2 0 9に、 排他的論理和生成手段制御部 1 3 2は排他的論理和生成手段 2 0 3 に、 それぞれの制御コマンドを発行する。 また、 要求管理部 1 2 1は、 ディスク アレイデータ転送手段 2 0 2およびディスクインタ一フェース制御手段 2 0 5〜 2 0 9から割り込み信号を受け取り、 すべての処理が終了すると要求終了部 1 2 6に処理を渡す。 要求終了部 1 2 6は、 全体の処理を終了させる。
実施例 5においては、 一時保持手段をメインメモリ 1 0 4内に配置するため、 メモリの有効利用が図れると共に、 実施例 1と比較して製造コストを下げること ができる。
実施例 6のシステム構成は図 1 6と同じである。 実施例 5との違いは、 デイス クアレイデータ転送手段 2 0 2の構成および動作の違いと、 ディスクインタ一フ ヱース制御手段 2 0 5〜2 0 9の構成および動作の違いにある。 実施例 6のディ スクアレイデータ転送手段 2 0 2の構成と動作は、 実施例 2の図 9に示したディ スクアレイデータ転送手段 2 0 2と同じであり、 1回の D M A転送での転送先は 1ケ所だけである。 ディスクインタ一フヱ一ス制御手段 2 0 5〜2 0 9の構成お よび動作は、 実施例 2と同じであり、 ディスクインターフヱ一ス制御手段 2 0 5 〜 2 0 9とメインメモリ 1 0 4間の D M A転送を行う。
実施例 6のディスクアレイリード 'ライ ト処理においては、 実施例 2と違い、 アレイ制御捕助手段 2の制御を M P U 2 1 0ではなく、 ホスト C P U 1 0 1で行 い、 メモリはホストシステム 1のメインメモリ 1 0 4のみを使用する。
実施例 6と実施例 2のディスクアレイリード ·ライト処理動作の違いは、 実施 例 5で述べた実施例 5と実施例 1の違いと同様である。 また、 一時保持手段に格 納されているもので分類したタイプは、 実施例 2と実施例 6では同じである。 実施例 6は、 実施例 5と同様な効果が得られる。
第 7の実施例のシステム構成を図 1 8に示す。
図 1 8は、 第 1実施例の図 1におけるディスクアレイデータ転送手段 2 0 2と 排他的論理和生成手段 2 0 3を、 実施例 3の図 1 2に示すディスクアレイデータ 転送生成手段 2 5 4に置き換えたものである。 アレイ制御補助手段 2のディスク アレイデータ転送生成手段 2 5 4を 1つのチップとして提供すれば、 実施例 3に おいて述べた効果を得ることは明らかであり、 ディスクアレイデータ転送生成手 段 2 5 4と、 メモリ 2 1 2とを 1ボード上に搭載すれば実施例 1で述べたように システムの拡張性を向上することができるのは明らかである。 また、 M P Uメモ リ 2 1 1の M P U制御プログラム領域 2 1 4は、 図 1 9に示すように、 要求受信 部 2 2 0と、 要求管理部 2 2 1と、 ディスクアレイデータ転送生成手段制御部 2 2 6と、 ディスクインターフ X—ス制御手段制御部 2 2 3と、 要求終了部 2 2 5 で構成している。 図 1 8のディスクアレイ制御プログラム領域 1 0 9の構成は、 実施例 1の図 2と同じである。
ディスクアレイデータ転送生成手段 2 5 4の動作は、 実施例 3と同じであり、 ディスクアレイデータ転送生成手段 2 5 4は、 D M A転送とパリティ生成を行う ことができる。
実施例 7のディスクアレイリード ·ライ卜処理においては、 実施例 3と違い、 アレイ制御補助手段 2の制御をホスト C P U 1 0 1ではなく、 M P U 2 1 0で行 い、 一時保持手段は、 アレイ制御補助手段 2内のメモリ 2 1 2に配置する。 実施例 7と実施例 3のディスクアレイリード 'ライ卜処理動作の違いを以下に 示す。
なお、 一時保持手段に格納されているもので分類したタイプは、 実施例 3と実 施例 7では同じである。 まず、 実施例 3においては、 図 1 1に示すディスクアレイ制御プログラム領域 1 0 9内のアレイ制御補助手段制御コマンド生成部 1 2 5が制御コマンドを生成 した後、 要求管理部 1 2 1に処理が移る。 要求管理部 1 2 1は、 ディスクアレイ データ転送生成手段制御部 1 3 3およびディスクインターフェース制御手段制御 部 1 3 1に処理を移し、 ディスクアレイデータ転送生成手段制御部 1 3 3はディ スクアレイデータ転送生成手段 2 5 4に、 ディスクインタ一フヱース制御手段制 御部 1 3 1はディスクインターフヱ一ス制御手段 2 0 5〜2 0 9に、 それぞれの 制御コマンドを発行する。 また、 要求管理部 1 2 1は、 ディスクアレイデータ転 送生成手段 2 5 4およびディスクィンターフヱ一ス制御手段 2 0 5 ~ 2 0 9から 割り込み信号を受け取り、 すべての処理が終了すると要求終了部 1 2 6に処理を 渡す。 要求終了部 1 2 6は、 全体の処理を終了させる。
次に、 実施例 7においては、 図 2に示すディスクアレイ制御プログラム領域 1 0 9内のアレイ制御補助手段制御コマンド生成部 1 2 5が生成した制御コマンド を M P U制御部 1 2 8に渡し、 M P U制御部 1 2 8は、 図 1 8の M P U 2 1 0に 該制御コマンドを発行する。 該制御コマンドを受け取った M P U 2 1 0は、 図 1 9に示す M P U制御プログラム領域 2 1 4を用いて、 以下の処理を行う。 要求 受信部 2 2 0は、 該制御コマンドを受け取ると、 要求管理部 2 2 1に処理を渡す。 要求管理部 2 2 1は、 ディスクアレイデータ転送生成手段制御部 2 2 6およびデ イスクインターフェース制御手段制御部 2 2 3に処理を移し、 ディスクアレイデ —タ転送生成手段制御部 2 2 6はディスクアレイデータ転送生成手段 2 5 4に、 ディスクインタ一フェース制御手段制御部 2 2 3はディスクインターフェース制 御手段 2 0 5〜2 0 9に、 それぞれの制御コマンドを発行する。 また、 要求管理 部 2 2 1は、 ディスクアレイデータ転送生成手段 2 5 4およびディスクインタ一 フヱ一ス制御手段 2 0 5〜2 0 9から割り込み信号を受け取り、 すべての処理が 終了すると要求終了部 2 2 5に処理を渡す。 要求終了部 2 2 5は、 ホスト C P U 1 0 1に割り込み信号を出す。
割り込み信号を受け取ったホスト C P U 1 0 1は、 図 2に示すディスクアレイ 制御プログラム領域 1 0 9内の要求管理部 1 2 1を用いて要求終了部 1 2 6に処 理を移し、 要求終了部 1 2 6は全体の処理を終了させる。 実施例 7において、 ディスクアレイデータ転送生成手段 2 5 4は、 新更新デー タおよび新パリティの生成の際のデータ転送と排他的論理和演算を同時に行うの で、 新更新データおよび新ノ、'リティを生成するためのデータを転送する際に生じ るオーバーへッドを低減することができる。
実施例 8のシステム構成は図 1 8と同じである。
実施例 7との違いは、 ディスクアレイデータ転送生成手段 2 5 4の構成および 動作の違いと、 ディスクインタ一フヱ一ス制御手段 2 0 5〜2 0 9の構成および 動作の違いにある。 実施例 8のディスクアレイデータ転送生成手段 2 5 4の構成 と動作は、 実施例 4のディスクアレイデータ転送生成手段 2 5 4と同じであり、 一括 D M A転送とパリティ生成を行うことができる。 ディスクインターフェース 制御手段 2 0 5〜2 0 9の構成および動作は、 実施例 4と同じであり、 ディスク ィンターフェース制御手段 2 0 5〜 2 0 9とメインメモリ 1 0 4間の D M A転送 を行う。
実施例 8のディスクアレイリード'ライト処理においては、 実施例 4と違い、 アレイ制御補助手段 2の制御をホスト C P U 1 0 1ではなく、 M P U 2 1 0で行 い、 一時保持手段は、 アレイ制御補助手段 2内のメモリ 2 1 2に配置する。
実施例 8と実施例 4のディスクアレイリード ·ライ卜処理動作の違いは、 実施 例 7で述べた実施例 7と実施例 3の違いと同様である。 また、 一時保持手段に格 納されているもので分類したタイプは、 実施例 4と実施例 8では同じである。 実施例 8は、 実施例 7と同様な効果が得られる。
実施例 9のシステム構成を図 2 0に示す。
実施例 1との違いは、 了レイ制御補助手段 2のメモリ 2 1 2に高速リード 'ラ ィ ト可能なキヤッシュ 2 5 1を設置したことである。 キヤッシュ 2 5 1は、 キヤ ッシュのァドレス管理を行うキャッシュ管理手段 2 5 2と、 キャッシュメモリ 2 5 3で構成している。
メモリ 2 1 2内のあるメモリアドレスからデータ転送が行われるときに、 該メ モリアドレス力くキヤッシュ 2 5 1のキヤッシュ管理手段 2 5 2に存在した場合は、 メモリ 2 1 2からではなく、 キャッシュ 2 5 1からデータが転送される。 データ の読みだしスピードは、 キャッシュ 2 5 1の方力 メモリ 2 1 2よりも速いので、 データ転送の高速化が図れる。
例えば、 リードモディファイライ ト時について考える。 ディスクアレイリード 処理時に読みだした目的データは、 旧データとしてキヤッシュメモリ 2 5 3と旧 データ保持手段 2 1 6に保持される。 続けて行われるデータライ ト処理時に旧デ 一夕を読み出す場合、 旧データはキャッシュメモリ 2 5 3から読み出されるため、 旧データ保持手段 2 1 6から読み出すよりも処理の高速化が図れる。
また、 データライ ト処理時において、 旧データ保持手段 2 1 6に旧データが存 在しない場合は、 新データが旧データ保持手段 2 1 6から排他的論理和生成手段 2 0 3に D MA転送されるときや、 旧データがパリティ生成作業領域 2 1 7から 排他的論理和生成手段 2 0 3に D M A転送されるときなどにキャッシュがヒッ ト する。 また、 データライ ト処理時において、 旧データ保持手段 2 1 6に旧データ が存在した場合は、 新データがパリティ生成作業領域 2 1 7から排他的論理和生 成手段 2 0 3に D MA転送されるときなどにキヤッシュがヒッ 卜する。
また、 遅延パリティ処理時において、 パリティ保持手段 2 1 8に更新データ力く 存在した場合は、 旧パリティがパリティ生成作業領域 2 1 7から排他的論理和生 成手段 2 0 3に DM A転送されるときや、 新パリティ力パリティ保持手段 2 1 8 からディスクインターフヱ一ス制御手段 2 0 9に D MA転送されるときなどにキ ャッシユカくヒッ 卜" 5る。
メモリ 2 1 2にキャッシュ 2 5 1を設置したことで、 高速なデータ読み出しが 可能となり、 ディスクアレイリード 'ライト処理の高速化を図ることができる。 なお、 アレイ制御補助手段 2のメモリ 2 1 2に高速リード 'ライ ト可能なキヤ ッシュ 2 5 1を設置することは、 第 2、 第 7、 第 8の実施例にも適用できる。 以上の説明から明らかなように、 本発明の計算機システムによれば、 新データ の書き込み以外のディスクアクセス回数を削減することでディスクアレイライ ト 処理を高速化することができる。
また、 本発明の計算機システムによれば、 ディスクアレイ処理プログラムの制 御に要する C P Uの負荷を低減することができる。
また、 本発明によれば、 既存のホスト装置に簡単なサブシステムを付加できる 拡張性を向上させることができる。 また、 本発明の計算機システムによれば、 パリティを生成するためのデータを ホスト装置側のメィンメモリ上に格納することで、 新たにパリティを生成するた めのデータを保持するためのメモリやこのメモリを制御するための制御回路を不 要としたため簡単な構成であり、 かつ低コストを実現することができる。
また、 本発明の計算機システムによれば、 ホスト装置のシステムバスと複数の ディスク装置をそれぞれ制御するディスク装置制御回路とを接続するバスもしく は前記システムバスもしくはメインメモリのトラフィックを低減し、 処理の高速 化を図ることができる。
また、 本発明の計算機システムによれば、 メインメモリのメモリ容量を圧迫せ ずにパリティ生成に必要なデータを保持し、 ホスト装置のメインメモリアクセス のトラフィックを低減し、 C P Uの処理の高速化を図ることができる。
また、 本発明の計算機システムによれば、 複数のディスク装置をそれぞれ制御 するディスク制御回路が有するホスト装置のメインメモリへのデータ転送機能を 活かし、 簡単な構成でメインメモリ上のパリティ生成のためのデータをパリティ 生成用メモリに転送することができる。
また、 本発明の計算機システムによれば、 複数のディスク装置をそれぞれ制御 するディスク制御回路が有するホスト装置のメインメモリへのデータ転送機能を 活かし、 簡単な構成でメインメモリ上のパリティ生成のためのデータをメインメ モリ上のパリティ生成のために必要となるデータを格納しておく領域に転送する ことができる。
また、 本発明の計算機システムによればパリティ生成のためのデータ転送を高 速化できる。

Claims

請 求 の 範 囲
1. 複数のディスク装置と、 C P Uとメインメモリと前記複数のディスク装置 を制御するディスク制御回路とを備えたホスト装置とを有する計算機システムで あって、 前記 C P Uは、 前記メインメモリ上のプログラムに従って、 前記複数 のディスク装置をパリティ付きの論理的な一台のディスクアレイ装置として管理 し、 前記新データを前記ディスク装置に書き込む処理に遅延させて非同期に前記 新 、リティの生成と前記ディスク装置への書き込み処理を行うよう制御し、 前言己ホスト装置は、
更新データ、 旧パリティ、 旧データを保持するパリティ生成用メモリと、 前記 、。リティ生成用メモリに保持されているデータと前記メインメモリ上に保 持されている前記ディスク制御回路に書き込むべき新データとから新パリティ又 は前記更新データを生成するパリティ生成回路と、
前記デイスクアレイ装置からのデータ読み出し時には前記デイスクアレイ装置 に格納されたデータに対応するデータを前記パリティ生成用メモリに転送し、 前 記ディスクアレイ装置へのデータ書き込み時には前記ディスクアレイ装置に書き 込むベきデータに対応するデータを前記パリティ生成用メモリに転送するデータ 転送回路と、
を有することを特徴とする計算機システム。
2. 複数のディスク装置と、 C P Uとメインメモリと前記複数のディスク装置 を制御するディスク制御回路とを備えたホスト装置とを有する計算機システムで あって、
前記 C P Uは、 前記メインメモリ上のプログラムに従って、 前記複数のデイス ク装置をパリティ付きの論理的な一台のディスクアレイ装置として管理し、 前記 新データを前記ディスク装置に書き込む処理に遅延させて非同期に前記新パリテ ィの生成と前記ディスク装置への書き込み処理を行うよう制御し、
前記ホス卜装置は、
更新データ、 旧パリティ、 旧データを保持するパリティ生成用メモリと、 前記パリティ生成用メモリに保持されているデータと前記メィンメモリ上に保 持されている前記ディスク制御回路に書き込むべき新データとから新パリティ又 は前記更新データを生成するパリティ生成回路と、
前記ディスクアレイ装置からの読み出し時には読み出すべきデータを前記ディ スク制御回路から前記ノ、'リティ生成用メモリと前記メインメモリへ転送し、 前記 ディスクアレイ装置への書き込み時には前記新データを前記メインメモリから前 記 、'リティ生成用メモリと前記ディスク制御回路へ転送するデータ転送回路と、 を有することを特徴とする計算機システム。
3. 前記旧データは前記新データが書き込まれる直前のデータであり、 前記更 新データは前記新データと前記新データにより上書きされる前記ディスクアレイ 装置のデータとの排他的論理和演算によって生成されたデータであり、 前記旧パ リティは前記新パリティが書き込まれる直前のパリティであり、 前記新パリティ は前記更新データと前記旧パリティとの排他的論理和演算によって生成されたデ —夕であることを特徴とする請求項 1又は 2記載の計算機システム。
4. 前記パリティ生成用メモリと、 前記パリティ生成回路と、 前記データ転送 回路は 1つのボード上に搭載され、 前記ホスト装置のシステムバスに接続されて いることを特徴とする請求項 3に記載された計算機システム。
5. 前記更新データ、 旧パリティ、 旧データを前記メインメモリ上に保持させ たことを特徴とする請求項 3に記載された計算機システム。
6. 前記データ転送回路と前記パリティ生成回路とは 1チップ上に形成されて おり、 前記 1チップは、 前記ホスト装置のシステムバスと前記ディスク制御装置 とを接続するバスに接続されていることを特徴とする請求項 3に記載された計算 機システム。
7. 前記データ転送回路と前記パリティ生成回路とは 1チップ上に形成されて おり、 前記 1チップは、 前記ホスト装置のシステムバスに接続されていることを 特徴とする請求項 3に記載された計算機システム。
8. 前記更新データ、 旧パリティ、 旧データを前記メインメモリ上に保持させ、 前記データ転送回路と前記パリティ生成回路とは 1チップ上に形成されており、 前記 1チップは、 前記ホスト装置のシステムバスと前記ディスク制御装置とを接 続するバスに接続されていることを特徴とする請求項 3に記載された計算機シス テム。
9. 前記更新データ、 旧パリティ、 旧データを前記メインメモリ上に保持させ、 前記データ転送回路と前記パリティ生成回路とは 1チップ上に形成されており、 前記 1チップは、 前記ホスト装置のシステムバスに接続されていることを特徴と する請求項 3に記載された計算機システム。
1 0. 複数のディスク装置と、 C P Uとメインメモリと前記複数のディスク装 置を制御するディスク制御回路とを備えたホス卜装置とを有する計算機システム であって、
前記 C P Uは、 前記メインメモリ上のプログラムに従って、 前記複数のデイス ク装置をパリティ付きの論理的な一台のディスクアレイ装置として管理し、 前記 新データを前記ディスク装置に書き込む処理に遅延させて非同期に前記新パリテ ィの生成と前記ディスク装置への書き込み処理を行うよう制御し、
前記ホスト装置は、
更新データ、 旧パリティ、 旧データを保持するパリティ生成用メモリと、 前記 、。リティ生成用メモリに保持されているデータと前記メインメモリ上に保 持されている前記ディスク制御回路に書き込むべき新データとから新パリティ又 は前記更新データを生成するパリティ生成回路と、
前記ディスクアレイ装置からの読み出し時には読み出すべきデータを前記メィ ンメモリへ転送し、 前記ディスクアレイ装置への書き込み時には前記メインメモ リから前記新データを前記ディスク制御回路へ転送する前記ディスク制御回路と、 前記ディスクアレイ装置からの読み出し時には前記デイスク制御回路が前記メ インメモリに転送した読み出すべきデ一タを前記パリティ生成用メモリに転送し、 前記ディスクァレイ装置への書き込み時には前記メインメモリから前記新データ を前記 リティ生成用メモリに転送するデータ転送回路と、
を有することを特徴とする計算機システム。
1 1. 前記旧データは、 前記新データが書き込まれる直前のデータであり、 前 記更新データは、 前記新データと前記旧データの排他的論理和演算によつて生成 されたデータであり、 前記旧パリティは前記新パリティが書き込まれる直前のパ リティであることを特徴とする請求項 1 0記載の計算機システム。
1 2. 前記パリティ生成用メモリと、 前記パリティ生成回路と、 前記データ転 送回路は 1つのボード上に搭載され、 前記ホスト装置のシステムバスに接続され ていることを特徴とする請求項 1 0又は 1 1の何れかに記載された計算機システ ム。
1 3. 前記更新デ一夕、 旧パリティ、 旧データを前記メインメモリ上に保持さ せたことを特徴とする請求項 1 0又は 1 1の何れかに記載された計算機システム。
1 4. 前記データ転送回路と前記パリティ生成回路とは 1チップ上に形成され ており、 前記 1チップは、 前記ホスト装置のシステムバスと前記ディスク制御装 置とを接続するバスに接続されていることを特徴とする請求項 1 0又は 1 1の何 れかに記載された計算機システム。
1 5. 前記データ転送回路と前記パリティ生成回路とは 1チップ上に形成され ており、 前記 1チップは、 前記ホスト装置のシステムバスに接続されていること を特徴とする請求項 1 0又は 1 1の何れかに記載された計算機システム。
1 6. 前記更新データ、 旧パリティ、 旧データを前記メインメモリ上に保持さ せ、 前記データ転送回路と前記パリティ生成回路とは 1チップ上に形成されてお り、 前記 1チップは、 前記ホスト装置のシステムバスと前記ディスク制御装置と を接続するバスに接続されていることを特徴とする請求項 1 0又は 1 1の何れか に記載された計算機システム。
1 7. 前記更新データ、 旧パリティ、 旧データを前記メインメモリ上に保持さ せ、 前記データ転送回路と前記パリティ生成回路とは 1チップ上に形成されてお り、 前記 1チップは、 前記ホスト装置のシステムバスに接続されていることを特 徴とする請求項 1 0又は 1 1の何れかに記載された計算機システム。
1 8. 請求項 1、 2又は 1 0に記載された計算機システムであって、
前記パリティ生成用メモリと前記データ転送回路の間にキヤッシュメモリを設 けたことを特徴とする計算機システム。
PCT/JP1995/002518 1994-12-08 1995-12-08 Systeme informatique WO1996018141A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US08/849,236 US5996046A (en) 1994-12-08 1995-12-08 Parity generation system for generating new parity using old data in temporary storage without accessing main disk storage of disk drive
EP95939400A EP0797141A1 (en) 1994-12-08 1995-12-08 Computer system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP6/305050 1994-12-08
JP6305050A JP3011035B2 (ja) 1994-12-08 1994-12-08 計算機システム

Publications (1)

Publication Number Publication Date
WO1996018141A1 true WO1996018141A1 (fr) 1996-06-13

Family

ID=17940516

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1995/002518 WO1996018141A1 (fr) 1994-12-08 1995-12-08 Systeme informatique

Country Status (4)

Country Link
US (1) US5996046A (ja)
EP (1) EP0797141A1 (ja)
JP (1) JP3011035B2 (ja)
WO (1) WO1996018141A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3409859B2 (ja) 1991-01-31 2003-05-26 株式会社日立製作所 制御装置の制御方法
US6874101B2 (en) 1991-01-31 2005-03-29 Hitachi, Ltd. Storage unit subsystem
DE19529434B4 (de) * 1995-08-10 2009-09-17 Continental Teves Ag & Co. Ohg Microprozessorsystem für sicherheitskritische Regelungen
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US6415355B1 (en) * 1998-05-11 2002-07-02 Kabushiki Kaisha Toshiba Combined disk array controller and cache control method for parity generation mode and data restoration mode
JP2978882B1 (ja) * 1998-06-03 1999-11-15 三菱電機株式会社 デバイス間データ転送装置及びデバイス間データ転送方法
US6629199B1 (en) * 1999-08-20 2003-09-30 Emc Corporation Digital data storage system including directory for efficiently providing formatting information for stored records and utilization of a check value for verifying that a record is from a particular storage location
JP3459609B2 (ja) * 2000-03-17 2003-10-20 三洋電機株式会社 ライトキャッシュ回路、ライトキャッシュ回路を備えた記録装置、およびライトキャッシュ方法
US6665773B1 (en) * 2000-12-26 2003-12-16 Lsi Logic Corporation Simple and scalable RAID XOR assist logic with overlapped operations
US6766480B2 (en) * 2001-03-14 2004-07-20 Hewlett-Packard Development Company, L.P. Using task description blocks to maintain information regarding operations
JP2003015826A (ja) * 2001-07-04 2003-01-17 Hitachi Ltd ディスクアレイ制御装置における共有メモリコピー機能
JP2003108420A (ja) * 2001-09-27 2003-04-11 Hitachi Ltd データストレージシステム及びこの制御方法
US6859890B2 (en) * 2002-04-30 2005-02-22 Lsi Logic Corporation Method for reducing data/parity inconsistencies due to a storage controller failure
US7069382B2 (en) * 2003-09-24 2006-06-27 Aristos Logic Corporation Method of RAID 5 write hole prevention
US7146484B2 (en) * 2004-06-15 2006-12-05 Hitachi, Ltd. Method and apparatus for caching storage system
US7739462B2 (en) * 2005-02-23 2010-06-15 International Business Machines Corporation Policy based data shredding for storage controller
US7496695B2 (en) * 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US8495292B2 (en) 2006-12-06 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for an in-server storage area network
US7991941B2 (en) * 2008-01-15 2011-08-02 Alcatel Lucent Memory access assist
US9218183B2 (en) * 2009-01-30 2015-12-22 Arm Finance Overseas Limited System and method for improving memory transfer
JP5404804B2 (ja) * 2009-05-25 2014-02-05 株式会社日立製作所 ストレージサブシステム
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
US10620870B2 (en) * 2017-12-08 2020-04-14 Intel Corporation Data storage device with bytewise copy
TWI640997B (zh) * 2017-12-27 2018-11-11 群聯電子股份有限公司 資料保護方法、記憶體控制電路單元與記憶體儲存裝置
KR20200015260A (ko) * 2018-08-03 2020-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10977073B2 (en) * 2019-07-10 2021-04-13 Dell Products L.P. Architectural data mover for RAID XOR acceleration in a virtualized storage appliance
CN112783684A (zh) * 2019-11-06 2021-05-11 华为技术有限公司 一种校验数据计算方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245352A (ja) * 1991-01-31 1992-09-01 Hitachi Ltd 制御装置の制御方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2913917B2 (ja) * 1991-08-20 1999-06-28 株式会社日立製作所 記憶装置および記憶装置システム
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
US5469566A (en) * 1992-03-12 1995-11-21 Emc Corporation Flexible parity generation circuit for intermittently generating a parity for a plurality of data channels in a redundant array of storage units
US5819109A (en) * 1992-12-07 1998-10-06 Digital Equipment Corporation System for storing pending parity update log entries, calculating new parity, updating the parity block, and removing each entry from the log when update is complete

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245352A (ja) * 1991-01-31 1992-09-01 Hitachi Ltd 制御装置の制御方法

Also Published As

Publication number Publication date
US5996046A (en) 1999-11-30
JPH08161124A (ja) 1996-06-21
JP3011035B2 (ja) 2000-02-21
EP0797141A1 (en) 1997-09-24

Similar Documents

Publication Publication Date Title
WO1996018141A1 (fr) Systeme informatique
US6526477B1 (en) Host-memory based raid system, device, and method
US7730257B2 (en) Method and computer program product to increase I/O write performance in a redundant array
US5987627A (en) Methods and apparatus for high-speed mass storage access in a computer system
US6529976B1 (en) Heterogeneous computer system, heterogeneous input output system and data back-up method for the systems
EP1019835B1 (en) Segmented dma with xor buffer for storage subsystems
KR100352039B1 (ko) 버스로부터수집된데이터에대해패리티를발생시키는플라이바이xor
US6237052B1 (en) On-the-fly redundancy operation for forming redundant drive data and reconstructing missing data as data transferred between buffer memory and disk drives during write and read operation respectively
US5522065A (en) Method for performing write operations in a parity fault tolerant disk array
EP0907917B1 (en) Cache memory controller in a raid interface
US5694581A (en) Concurrent disk array management system implemented with CPU executable extension
JP2007513435A (ja) データ組織化を管理するための方法、システム、及びプログラム
US6678768B1 (en) Method and apparatus for configuring redundant array of independent disks (RAID)
JP3247075B2 (ja) パリティブロックの生成装置
JPH10105344A (ja) データ記録装置システム及びそのデータ書込方法
US20030236943A1 (en) Method and systems for flyby raid parity generation
US20020004845A1 (en) Computer, computer system, and data transfer method
JP2006185000A (ja) ストレージ装置
US20040205269A1 (en) Method and apparatus for synchronizing data from asynchronous disk drive data transfers
US6513098B2 (en) Method and apparatus for scalable error correction code generation performance
US5964895A (en) VRAM-based parity engine for use in disk array controller
US5875458A (en) Disk storage device
WO1993013475A1 (en) Method for performing disk array operations using a nonuniform stripe size mapping scheme
JPH0869359A (ja) ディスクアレイ装置
JP3615250B2 (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 08849236

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1995939400

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1995939400

Country of ref document: EP