Source: http://www.google.ca/patents/US20040030829
Timestamp: 2018-01-21 03:12:02
Document Index: 493223596

Matched Legal Cases: ['art 1800', 'art 1801', 'art 1802', 'art 1803', 'art 1800', 'art 1800', 'art 1801', 'art 1801', 'art 1801', 'art 1802', 'art 1802', 'art 1803', 'art 1803', 'art 1800', 'art 1800', 'art 1802', 'art 1802']

Patent US20040030829 - Read-write control of data storage disk units - Google Patents
The control unit arbitrarily with respect to the CPU, including according to an algorithm that is independent of the request a disk unit among the disk units that are inactive when the control unit receives an input/output request involving either read or staging. For a write request from the CPU, the...http://www.google.ca/patents/US20040030829?utm_source=gb-gplus-sharePatent US20040030829 - Read-write control of data storage disk units
Publication number US20040030829 A1
Application number US 10/634,919
Also published as US5680574, US5835938, US6108750, US6631443, US6938125, US20050240728
Publication number 10634919, 634919, US 2004/0030829 A1, US 2004/030829 A1, US 20040030829 A1, US 20040030829A1, US 2004030829 A1, US 2004030829A1, US-A1-20040030829, US-A1-2004030829, US2004/0030829A1, US2004/030829A1, US20040030829 A1, US20040030829A1, US2004030829 A1, US2004030829A1
Patent Citations (61), Classifications (31), Legal Events (4)
Read-write control of data storage disk units
US 20040030829 A1
The control unit arbitrarily with respect to the CPU, including according to an algorithm that is independent of the request a disk unit among the disk units that are inactive when the control unit receives an input/output request involving either read or staging. For a write request from the CPU, the control unit selects a specific disk unit in the disk unit group for the immediate writing of data. In the second kind of load distribution a disk unit is selected to execute read and staging other than the above-mentioned specific disk.
1. A control unit processing input/output processes for a disk unit group operable under the control of a processor issuing read/write requests to the control unit for the disk unit group, said control unit comprising:
write means for processing a write request from the processor to the disk unit group for always writing write data of any write request from the processor to the same master disk unit of the disk unit group;
after write means for thereafter writing the same write data to all disk units of the disk unit group other than the master disk unit when said other disk units are inactive; and
read means for processing a read request from the processor to the disk unit group to read read data from any of the disk units of the disk unit group that is inactive and selected by the control unit, and transferring the read data to the processor.
2. The control unit of claim 1, including:
staging means for stage processing reading and writing between the cache and any inactive disk unit of the disk unit group independently of the processor.
3. The control unit of claim 1, including means for parallel processing the processes of all of the aforementioned means.
4. The control unit of claim 2, wherein said staging means includes read ahead means for performing a read ahead process transferring read data from a disk unit of said disk unit group to the cache independently of a current I/O request and in parallel with the processes of said other means.
5. The control unit of claim 1, wherein each of said means examines the active/inactive state of the disk units and selects only an inactive disk unit for processing.
6. The control unit of claim 1, wherein each of said means except the write means examines the active/inactive state of the disk units and selects only an inactive disk unit other than the master disk for all of the processes except the write process as a first priority, and upon determining the active state for all the other disk units, then examines the active/inactive state of the master disk unit to complete the process with respect to the master disk unit if the master disk is in an inactive state as a second priority and to place the process in a wait state if the master disk unit is in an active state.
7. The control unit of claim 1, in combination with a plurality of the disk unit groups, with each disk unit group having a master disk and at least one other disk unit; and
said means being operative for parallel processing with respect to each disk unit group.
8. The control unit of claim 7, wherein each disk unit group has a plurality of other disk units.
9. The control unit of claim 1, in combination with a plurality of processors, all of said means parallel processing read/write requests from the processors by the single control unit.
10. The control unit of claim 1, wherein each disk unit includes a plurality of rotatably mounted coaxial disks, at least one transducing head associated with each of the disks and movable relative to the disks for transducing the associated disk under the control of the control unit.
11. The control unit of claim 1, wherein said after write means includes a cache memory, writes the write data in the cache memory, reports completion of the write request to the processor, and thereafter writes the write data to the disk units other than the master disk unit.
12. A controller method for control of storage with respect to at least one storage group having plural storages, comprising:
selecting one of the storages for a write request for the storage group received from a processor and completing the write request with respect to the selected storage; and
selecting one of the storages for a read request made to the storage group from the processor with said selecting being based upon the criteria that the selected storage is arbitrary with respect to the processor request and is an inactive storage, and completing the read request with respect to the selected storage so that said selecting and completing of the read request are parallel processed with respect to the selecting and completing of the write request.
13. The, method of claim 12, wherein said step of selecting for the read request has the further criteria that the selection is only made among the storages in the storage group other than a specific storage having a fixed location within the storage group.
14. A method for control of load distribution of storage with respect to at least one storage group having a plurality of storages and a cache memory, comprising:
staging read data from one of the storages into the cache memory by a read ahead process with a read request that is to be executed in the future under the sole control of a control unit;
selecting a storage arbitrarily with respect to the read request and with the criteria of selection being that the storage is inactive, as a part of said staging and transferring read data from the selected storage to the cache memory as another part of said staging; and
thereafter executing the read request with respect to the cache.
15. The method of claim 14, including selecting a specific storage having a fixed location in the storage group for the staging based upon the criteria that the other storages are all active and the specific storage is inactive, and thereafter completing the staging with respect to the selected specific storage.
16. A method for load distribution control of storage with respect to at least one storage group having a plurality of storages, comprising:
selecting a storage, arbitrarily with respect to an input/output read request, with the selection criteria being that the storage is a storage other than a specific one of the storages having a fixed location in the storage group and that the selected storage is inactive; and
thereafter completing the read request with respect to the selected storage.
17. The method according to claim 16, including selecting the specific one of the storages in the storage group based upon satisfaction of the criteria that the selected specific one of the storages is inactive and selected only after all of the other storages have been found to be active in the first mentioned step of selecting, and thereafter completing the read request with respect to the selected specific one of the storages within the storage group.
18. A method for load distribution control of storage with respect to at least one storage group having a plurality of storages, comprising:
selecting a specific storage having a fixed location within the storage group for all write requests to the one storage group, based upon the selection criteria that the specific storage is inactive;
completing the write request with respect to the selected specific storage by writing write data to the selected specific storage;
reporting completion of the write request and thereafter, by a write after process, writing the same write data to the storages of the one storage group other than the specific storage; and
selecting an arbitrary storage for read requests to the one storage group, with said selecting being independent of the read request and based upon the criteria that the selected storage is inactive and a part of the storage group identified by the read request from the processor, and completing the read request with respect to the selected storage.
19. A method according to claim 18, wherein said step of selecting for the read request has the further criteria that the selection is only made among the storages in the storage group other than a specific storage having a fixed location within the storage group.
20. A method according to claim 19, including selecting the specific one of the storages in the storage group based upon satisfaction of the criteria that the selected specific one of the storages is inactive and selected only after all of the other storages have been found to be active in the first mentioned step of selecting, and thereafter completing the read request with respect to the selected specific one of the storages within the storage group.
21. A controller method for control of storage with respect to at least one storage group having plural storages, comprising:
always selecting only the one of the storages for a write request received from a processor for the storage group and completing the write request with respect to the selected storage; and
selecting one of the storages for a read request made to the storage group from the processor with said selecting being based upon the criteria that the selected storage is arbitrary with respect to the processor request and is an inactive storage, and completing the read request with respect to the selected storage.
22. A load distribution controller of storage with respect to at least one storage group having a plurality of storages, comprising:
means for selecting a storage, arbitrarily with respect to an input/output read request, with the selection criteria being that the storage is a storage other than a specific one of the storages having a fixed location in the storage group and that the selected storage is inactive; and
means for thereafter completing the read request with respect to the selected storage.
23. The controller according to claim 16, including means for selecting the specific one of the storages in the storage group based upon satisfaction of the criteria that the selected specific one of the storages is inactive and selected only after all of the other storages have been found to be active, and thereafter completing the read request with respect to the selected specific one of the storages within the storage group.
24. A load distribution controller of storage with respect to at least one storage group having a plurality of storages, comprising:
means for selecting a specific storage having a fixed location within the storage group for all write requests to the one storage group, based upon the selection criteria that the specific storage is inactive;
means for completing the write request with respect to the selected specific storage by writing write data to the selected specific storage;
means for reporting completion of the write request and thereafter, by a write after process, writing the same write data to the storages of the one storage group other than the specific storage; and
means for selecting an arbitrary storage for read requests to the one storage group, with said selecting being independent of the read request and based upon the criteria that the selected storage is inactive and a part of the storage group identified by the read request from the processor, and completing the read request with respect to the selected storage.
In a thesis found in the Information Process Institute Bulletin “Nishigaki et al: Analysis on Disk Cashe Effects in a Sequential Access Input Process”, Vol. 25, No. 2, pages 313-320 (1984), there is disclosed with respect to a single disk unit a read ahead control having a cache, which involves the staging, in the cache, data not requested by the CPU but which will be requested in an instruction shortly following the current instruction. This staging process is executed by the control unit independently of any execution of an input/output request from the CPU.
Japanese Patent Laid-Open No. 135563/1984 does not have any relation to the double write system. This patent relates to the cashe disk control unit with a write after control. The disk control unit stores the write data received from the CPU to both the cashe memory and the non-volatile memory. The write data in the cashe memory is written to the disk unit by utilizing a write after process. Therefore, the write request issued by the CPU can be processed at high speed without accessing the disk unit, moreover, this can realize the highly reliable write after process. If the write data in the cashe memory is lost because of the breakdown of the cashe memory, the write data remains in the non-volatile memory. However, this patent does not relate to the double write function.
[0030]FIG. 1 illustrates the basic operation of a control unit with respect to a first kind of load distribution according to the present invention;
[0031]FIG. 2 is a block diagram showing the configuration of a computing system of the present invention;
[0032]FIG. 3 shows parallel processing for an input/output process received from a processor and an input/output request executed by the control unit independently of the input output request from the processor;
[0033]FIG. 4 shows parallel processing between a plurality of input output requests received respectfully from a plurality of processors;
[0034]FIG. 5 shows parallel processing between a plurality of input output requests received from a single processor;
[0035]FIG. 6 illustrates the basic parallel operation of the control unit operating with respect to the second kind of load distribution, according to the present invention;
[0036]FIG. 7 is a flowchart showing independent staging with respect to the second kind of load distribution according to the present invention;
[0037]FIG. 8 illustrates the structure of a disk unit;
[0038]FIG. 9 illustrates the structure of a track;
[0039]FIG. 10 illustrates the structure of a cache;
[0040]FIG. 11 shows the necessary information provided in a directory;
[0041]FIG. 12 shows the segment management information for the present invention;
[0042]FIGS. 13a and 13 b show the storage format for a record on a track in a segment unit;
[0043]FIG. 14a illustrates the structure of a track table;
[0044]FIG. 14b illustrates the structure of an empty segment que headpointer;
[0045]FIG. 15 shows the information stored in a control information memory;
[0046]FIG. 16 illustrates the structure of a disk unit group information;
[0047]FIG. 17 illustrates the structure of a disk unit information;
[0048]FIG. 18 illustrates the module of a director;
[0049]FIG. 19 is a flowchart for input/output request reception;
[0050]FIG. 20 is a flowchart for a write after processing;
[0051]FIG. 21 is a flowchart for an independent staging;
[0052]FIG. 22 is a flowchart for a disk unit read write process; and
[0053]FIG. 23 is a flowchart for an input/output request reception according to the second kind of load distribution of the present invention.
[0055]FIG. 2 is a block diagram showing the configuration of a computing system of the present invention. The computing system comprises: a plurality of processors 210, each having a CPU 200, a main memory (MM) 201 and channels 202; a control unit 203; and a plurality of disk units 204 grouped into a lesser plurality of disk unit groups 211. In this respect, it will become clear from the following description that the present invention is applicable to the control unit 203 connected to a single or a plurality of processors 210, as indicate. There are a plurality n of disk units 204 grouped into each of a plurality m of disk unit groups 211, that is, each of the m disk unit groups 211 has more than n disk units 204. The number of n disk units 204 belonging to each disk unit group 211 may vary among the disk unit groups Each disk unit 204 belongs to a specific disk unit group 211. The method for designating the disk unit group 211 to which the respective disk unit 204 belongs is not directly related to the present invention and therefore will be omitted from the description.
[0064]FIG. 1 is a block diagram illustrating the operation of the control unit 203 in accordance with the first type of distribution of the present invention. In FIG. 1, there are a plurality of master disk units, namely AO, BO and CO that are respectively a part of the disk unit groups 211A, 211B and 211C. The difference between the master disk unit and the other disk units is that the master disk unit is broadly a specific disk unit defined in advance in each of the disk unit groups 211 to more intensely receive the write requests, more specifically, to more intensely immediately receive the write data directly in accordance with a write request without passing the write data through the cache in a write after process, and even more specifically the master disk immediately receives the write data for all write requests to its disk unit group, whereas the other disk units of the same disk unit group receive the write data in a write after process from the cache.
In the case of receiving the write request which requires access to the disk unit group 211A, the reason why the master disk AO is preferably always selected for immediately receiving the write data is as follows: If it is so arranged that any write request must necessarily be assigned to the master disk AO, all write data 111 received from the processor 210 is written to the master disk AO. As a result, the complete data is always held in the master disk AO, even, if for example, there is a breakdown in any one of the disk units A1 through Ai other than the master disk and a power outage affecting the cache 206. However, this arrangement results in a restriction in selecting the disk unit freely for the write request received from the processor 210. Hence, the system performance is lowered as compared to a system wherein the write request can be executed with a write after to all of the disk units of the requested disk unit group without specifying a master disk. That is, the present invention has an advantage over such a system with respect to reliability, but has a slightly reduced performance, e.g., speed.
Specifically, when the control unit 203 receives the write request 110 requiring access to the disk unit group 211A, the control unit cannot start its processing unless the master disk AO is inactive. In contrast to the present invention it would be possible to start processing the write request if the control unit is free to choose any of the disk units that are inactive, such as disk unit A1.
[0069]FIG. 1 also illustrates the case where the control unit 203 receives a read request from the processor 210 requiring access to the disk unit group 211C. At this time, the control unit 203 selects any one of the disk units 204 arbitrarily (including an algorithm within the control unit), among the disk units 204 that are in an inactive state within the disk unit group 211C, which in the example of FIG. 1 involves the selection (e) of disk unit 211C. The control unit 203 transfers the requested read data from the disk unit 211C to the processor 210 along the path 113. At this time, it may be arranged that the read data requested by the processor 210 is stored not only in the disk Cl but also staged in the cache 206 as stage data 114, and such storing is indicated by the broken line. By staging the data, a read request for the same data 114 at a later time can be executed from the cache at a higher speed than it can be executed from the disk unit group 211A.
[0073]FIG. 3 illustrates the control unit 203 executing parallel processing for the input/output processes that are: a first process that requires access to the disk unit group A pursuant to a request from the processor 210; and a second process requiring execution by the control unit 203 and the cache 206 independently of the processor 210. As shown in FIG. 3, by way of example, the control unit 203 is parallel executing a stage process (a) with the disk unit A1 independently of an input/output process required by the processor 210, a write after process (c) between the control unit and the disk A2, and a read request (b) from the processor 210, all of which require access to the disk unit group 211A. In this case, the control unit 203 selects an inactive disk unit Ai in the disk unit group 211A so that it can start executing the read request that has been received from the processor. In FIG. 3, the write after process (c) and the read ahead stage process (a) are performed each independently of the processor 210 and are each executed in parallel processing with the other. However, if there are many inactive disk units, the control unit 203 can parallel execute the corresponding greater number of multiple write after processes and read ahead staging processes independently of the processor 210. However, it is impossible to perform a write request that requires the master disk unit AO to be in an inactive state if some other process, for example a read process, is already being performed with respect to the master disk unit so that the master disk unit is not in an inactive state: this is a disadvantage of the first type of load distribution according to the present invention, which disadvantage is solved by the second type of load distribution of the present invention, as described hereinafter.
[0074]FIG. 4 and FIG. 5 illustrate parallel processing for plural read requests.
[0075]FIG. 4 shows a plurality of processors 210, each connected to a single control unit 203, and specifically shown are the processors 210 and 210 a. By way of example, the control unit 203 receives from each of the processors 210 and 210 a a read request that requires access to the disk unit group 211A. Then the control unit 203 arbitrarily selects an inactive disk unit for each, for example, disk unit A1 and Ai among the disk units of disk unit group 211A to start parallel processing the read requests that have been received, which processing may involve staging (b) of read data. As a matter of course, if there is any inactive disk in the disk unit group 211A when the control unit 203 receives the read request from the processor 210 a, the read request is immediately executed. If the master disk is inactive, the write request is immediately executed. However, because of competition with respect to the master disk unit AO, it is impossible to parallel perform a plurality of write requests, each of which requests the disk unit group 211A Also, if three or more processors are connected to the control unit 203, it is possible to perform parallel three or more read requests respectively from the three or more processors, where each request requires access to disk unit group 211A so long as there are at least three or more inactive disk units among the disk units 204 of disk unit group 211A.
[0076]FIG. 5 illustrates parallel processing with respect to one processor 210 connected to the control unit 203. The processor 210, by way of example, can issue a new input/output request to the disk unit group 211A before the current processing of the input/output request to the disk unit group 211A is completed. In FIG. 5, by way of example, the control unit 203 can be considered as in the middle of executing with respect to disk unit A1 a read request (a) received from the processor 210 that requires access to the disk unit group 211A. Before finishing this read request (a), the control unit 203 receives another read request (b) from the processor 210 that involves access to the same disk unit group 211A. The control unit 203 arbitrarily selects any one of the inactive disk units 204 of the disk unit group 211A, for example disk unit Ai, to start this second received read request (b) before the first read request (a) has been completely executed. Although not shown, the control unit 210 can also immediately start to process a write request that is received before the read requests (a) and (b) are completely executed, which write request requires access to the disk unit group 211A only if the master disk unit AO is inactive. However, because of the competition for the master disk AO, it is impossible to parallel execute a plurality of write requests that each require access to the same disk unit group, for example disk unit group 211A.
[0082]FIG. 8 illustrates the structure of a disk unit 204. A plurality of rotatably driven coaxial disks 801 are provided in the illustrated disk unit 204. A read/write head 802 is provided for reading and writing data for each of the disks 801 control unit interface 803 controls the operation, including movement, of the heads 802 with respect to the disks 801. A unit of recording medium for each of the disks 801 to which the read/write head 802 can gain access while the disk 801 completes one revolution is called a track 800. A plurality of tracks 800 are present on each disk 801.
[0083]FIG. 9 illustrates the structure of a single track 800. The track 800 has its track head 902 and track tail 903 defined at certain fixed positions, as references. Also, one or more records 900 can reside on each track 800. A record 900 is a minimum unit of input/output processing between the processor 210 and the control unit 203. The position of the record 900 on the track 800 is determined by a unit of fixed byte length called a cell 901. The storage of a record 900 must be started at a head of a cell 901 and it cannot be started from anywhere within the cell 901. Therefore the length of a record 900 is an integer multiple of the length of a cell 901. The numbering of the cells 901 is in ascending order, one by one, beginning with the track head 902 of the track 900 as number 0.
[0084]FIG. 10 illustrates the structure of the cache 206. The cache 206 may be DRAM or a portion thereof mapped to comprise segments 1000. In this embodiment, one segment 1000 is assigned to one track 800, and the entire data in each track 800 is stored in a corresponding segment 1000. However, according to the present invention, the assigned unit of the segment 1000 is not necessarily limited to the entire track 800. A smaller unit, such as a record, which is a read/write unit between the processor 210 and the control unit 203, can also be adopted freely as the assigned unit.
[0085]FIG. 11 illustrates the structure of the directory 208. The directory 208 comprises a plurality of segment management informations 1100, a track table 1101, and an empty segment head pointer 1102. Each segment management information 1100 resides in the segment unit 1000. Each one of the track tables 1101 and empty segment pointer 1102 resides in the control unit 203.
[0086]FIG. 12 shows the required information for the present invention, which is provided in each segment management information 1100. An empty segment pointer 1200 indicates the segment unit 1000 which is not used in the track 800. A cache track number 1201 is the number of the track 800 of the disk unit group 211 stored in the segment unit 1000 for the corresponding segment management information 1100. The record bit map 1202 shows the starting position of a record 900 on the track 800 stored in the segment 1000 for the corresponding segment management information 1100. Here the bit position is in the corresponding number of the starting cell 901. If, for example, the nth bit in the record bit map 1202 is on, the storing of the corresponding record, 900 is started at the nth cell 901, for the corresponding segment management information 1100. If the nth bit is off, a record 900 stored starting at the nth cell 901 does not exist.
[0087]FIG. 13 illustrates the storing format of the data on the track 800 in the disk unit 204 for data also in the cache 206. The structure shown in FIG. 13a is the same as that of FIG. 9 that has already been described and which is also contained within the segment unit 1000. In the segment unit 1000, shown in FIG. 13b, the records 900 are sequentially recorded starting from the record at track head 902 on the track 800. Therefore, if the number of the cell 901 that stores the start of the record 900 on the track 800 is known, the storage starting position of the record 900 in the segment unit 1000 of the cache 206 is also known.
[0090]FIG. 14a illustrates the structure of the track table 1101, and FIG. 14b indicates the structure of the inactive segment head pointer 1102.
[0092]FIG. 15 illustrates the structure of the control information memory 207. In the control information memory 207, disk unit group information 1500 is included, which has information for each disk unit group 211. The number of disk unit group informations 1500 corresponds to the number of the disk unit groups 211 that can be controlled by one control unit 203.
[0093]FIG. 16 illustrates the structure of one disk unit group information 1500, which is the same for all. Disk unit number 1600 is the number of the disk units 204 currently in the corresponding disk unit group 211. A plurality of the disk unit informations 1601 are provided, respectively for each of the disk units 204 comprising the corresponding disk unit group information 1500. The prepared number of disk unit informations 1601 is equal to the definable number of the disk units 204 defined in one disk unit group 211. Effective information is stored from the first disk unit information head 1601 up to the number of the disk unit information 1601 defined by the disk unit number 1600. Here the disk unit information head 1601 is information for the master disk. Also, the nth updated record bit map 1203 of FIG. 12 in the segment management information 1200 is a disk unit 204 corresponding to the nth disk unit information 1601. A processor input/output wait bit 1602 shows that an input/output request received by the corresponding disk unit group 211 from the processor is in the wait state. This bit number can be expressed as follows. The number of the processor input/output wait bit 1602 equals the number of the processor 210 that can be connected to the control unit 203 (here the number is given as 1) times the number of the input/output process requests, (here the number is given as J) that can be executed in parallel by one processor 210 for one disk unit group 211.
[0095]FIG. 17 illustrates the structure of one of the disk unit informations 1601 and the others have the same structure. A disk unit number 1700 is given for identifying the disk unit 204 for the corresponding disk unit information 1601. A processor input/output execution single bit 1701 shows whether or not a disk unit 204 for the corresponding disk unit number 1700 is active in executing an input/output request received from the processor 210. A write after execution single bit 1702 shows whether or not a disk unit 204 for the corresponding disk unit number 1700 is active in executing a write after process. An independent staging execution single bit 1703 shows whether or not a disk unit 204 for the corresponding disk unit number 1700 is active in executing a staging process performed independently of the processor 210. For the processor input/output execution bit 1701, write after execution bit 1702 and independent stage execution bit 1703, only one may be set on at a single time. Also, a disk unit 204 for which the processor input/output execution bit 1701, write after execution bit 1702 and independent staging execution bit 1703 are off is a disk unit 204 in an inactive state. When one of these bits is on, the disk unit 204 is in an active state. Segment management information pointer 1704 indicates the address of the stored segment management information 1100 assigned to the track 800 accessed by an input/output process in execution by a disk unit 204 for the corresponding disk unit 1700. The segment management information pointer, when set, shows the address in storage for the segment management information for the disk unit 204 identified by disk unit number 1700.
[0098]FIG. 18 shows each procedure used by each of the respective directors 204 for carrying out the required parallel executions according to the present invention. Each function of the procedures will be described. An input/output request receipt part 1800 processes the input/output request received from the processor 210. A write after process schedule part 1801 provides a schedule for the write after process. An independent stage process schedule part 1802 provides a schedule for the staging performed independently of the processor 210. A disk unit transfer part 1803 executes the read/write transfer to and from the disk units 204.
[0099]FIG. 19 is a flowchart for the input/output receipt part 1800 of FIG. 18. When the input/output receive part 1800 receives a new input/output request from the processor 210, this part starts its execution. The execution is as follows.
[0112]FIG. 20 is a flowchart showing the write after process schedule part 1801. The right after process schedule part 1801 executes during a time the director 205 is inactive.
In step 2003, a determination is made if the disk unit 204 found in the step 2001 has any track 800 which can execute the write after process. The specific check information is the segment management information 1100 with the on-bit in the updated record map 1203 for disk unit 204 selected from the track table 1.101. Also, it is necessary that such segment management information 1100 is not in use for some other process request. Thus, the active flag 1205 in the segment management information 1100 must be off. This is another condition required to execute the write after process. If the answer to the determination in step 2003 is no, step 2004 turns off the write after execution bit 1702 and the processing of the write after process schedule part 1801 is terminated. If the answer to the determination of step 2003 is yes, step 2005 will select the track 800 for the write after process. If there are a plurality of tracks 800 which can be used for executing the write after process, one must be selected. However, the selection of the track 800 among a plurality of such tracks is not related to the present invention and its description is omitted.
[0116]FIG. 21 is a flowchart showing the independent stage process schedule part 1802, which executes during the time that the director 205 is in an inactive state. In step 2100, the disk unit group 211 which executes a stage process independently of the processor 210 is defined. This step is not directly related to the present invention and accordingly a specific description is omitted. In step 2101, a determination is made if the disk unit group 211 found in step 2100 has a track 800 for executing the staging independently of the processor 210. This step is not directly related to the present invention and therefore its specific description is omitted. If no track 800 is found in step 2101, the processing in the independent staging schedule part 1802 is terminated. If the answer to the determination of step 2101 is yes, step 2102 is performed. In step 2102, a track 800 is selected for the execution of the staging performed independently of the processor 210. If there are a plurality of tracks 800 that can be used to execute the stage process independently of the processor 210, a track 800 from among the plurality must be selected. However, the selection of a specific track 800 itself is not related to the present invention so that the specific description thereof is omitted.
[0120]FIG. 22 is a flowchart for the disk unit read/write transfer part 1803 of FIG. 18. Execution by the disk read/write unit transfer part 1803 is started when the director 205 is informed that the positioning of the disk unit 204 is completed.
[0137]FIG. 23 is a flowchart showing the input/output request receive part 1800 in the second type of load distribution of the present invention. The execution of the input/output request receive part 1800 is started as in the case of the previously described first type of load distribution. Therefore, only the difference between the flowchart of FIG. 19 of the first load distribution type and the flowchart of FIG. 23 of the second load distribution type will be described, and the similarities will not be repeated. In this respect, the step numbers are identical where the contents of the process steps in FIG. 23 are exactly the same as those in the process steps in FIG. 19. The difference in the process flow of the flowchart of FIG. 23 and that of FIG. 19 is that a step 2300 is adopted in FIG. 23 instead of the step 1908 in FIG. 19.
[0140]FIG. 7 is the flowchart of the independent stage process schedule part 1802 with respect to the second type of load distribution of the present invention. The execution of the independent stage process schedule part 1802 for the second type of load distribution is started the same as in the case of the first type of load distribution, already described. Subsequently, the difference between the process flow shown in FIG. 21 with respect to the first distribution load and the process flow shown in FIG. 7 will be described. In this respect, the step numbers are identical where the contents of processes and the process flow of FIG. 7 are exactly the same as those of the process flow in FIG. 21.
US3737866 * 27 Jul 1971 5 Jun 1973 Data General Corp Data storage and retrieval system
US3812473 * 24 Nov 1972 21 May 1974 Ibm Storage system with conflict-free multiple simultaneous access
US4262332 * 28 Dec 1978 14 Apr 1981 International Business Machines Corporation Command pair to improve performance and device independence
US4476526 * 27 Nov 1981 9 Oct 1984 Storage Technology Corporation Cache buffered memory subsystem
US4779189 * 28 Jun 1985 18 Oct 1988 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
US4914656 * 28 Jun 1988 3 Apr 1990 Storage Technology Corporation Disk drive memory
US4958273 * 26 Aug 1987 18 Sep 1990 International Business Machines Corporation Multiprocessor system architecture with high availability
US5127088 * 28 Jun 1989 30 Jun 1992 Nec Corporation Disk control apparatus
US5168558 * 19 Mar 1990 1 Dec 1992 Digital Equipment Corporation Apparatus and method for providing distributed control in a main memory unit of a data processing system
US5206943 * 3 Nov 1989 27 Apr 1993 Compaq Computer Corporation Disk array controller with parity capabilities
US5253256 * 15 Feb 1991 12 Oct 1993 Fujitsu Limited Array disk apparatus with unsuccessful reconstruction indicating function
US5257352 * 5 Jul 1990 26 Oct 1993 Hitachi, Ltd. Input/output control method and system
US5265104 * 26 Nov 1990 23 Nov 1993 Digital Equipment Corp. Data storage system including redundant storage devices
US5283791 * 18 Mar 1993 1 Feb 1994 Cray Research Systems, Inc. Error recovery method and apparatus for high performance disk drives
US5611069 * 12 Jul 1994 11 Mar 1997 Fujitsu Limited Disk array apparatus which predicts errors using mirror disks that can be accessed in parallel
US6457096 * 21 Oct 1999 24 Sep 2002 Matsushita Electric Industrial Co., Ltd. Redundant recording disk device and data processing method using plural logical disks with mirrored data stored with a predetermined phase-offset
US6631443 * 18 Jul 2000 7 Oct 2003 Hitachi, Ltd. Disk storage system having capability for performing parallel read operation
U.S. Classification 711/114, 711/E12.019, 714/E11.084, 711/168, 711/150
International Classification G06F12/08, G06F3/06, G06F11/20, G06F12/00
Cooperative Classification G06F3/0689, G06F2206/1012, G06F11/2089, G06F3/0659, G06F3/065, G06F3/061, G06F11/2087, G06F11/2007, G06F11/2005, G06F3/0613, G06F12/0804, G06F3/0683, G06F12/0866
European Classification G06F3/06A4T6, G06F3/06A6L4R, G06F3/06A2P, G06F3/06A2P4, G06F3/06A6L4, G06F3/06A4H4, G06F12/08B12, G06F11/20C4, G06F11/20S2W