Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
341 words
A method of rewriting error correcting codes in a disc array device which includes a plurality of disc devices which hold a plurality of error correcting data groups, each of which includes a plurality of data and at least one error correcting code generated therefrom, the method comprising the steps of: in response to a data rewrite request provided by an upper level device connected to said disc array device, reading old data designated by the data rewrite request from said plurality of disc devices; reading, from said plurality of disc devices, an old error correcting code which belongs to one group within said plurality of error correcting data groups, to which one group the old data belongs; generating a new error correcting code for the one error correcting data group, after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; rewriting the old data held in said plurality of disc devices by said new data; temporarily holding the generated new error correcting code in a random access memory provided in said disc array device; repeating said step of reading old data to said step of temporarily holding the new error correcting code for each of a plurality of other data rewrite requests subsequently provided by said upper level device, thereby storing a group of new error correcting codes for a group of data rewrite requests in said memory; and sequentially writing the group of new error correcting codes held in said memory into a group of storage locations within said plurality of disc devices, at which storage locations a group of old error correcting codes have been held, according to an order of access predetermined for storage locations within the disc devices; wherein the order of access is predetermined so that a plurality of storage locations which belong to the same track within one of said disc devices are sequentially accessed according to an order of locations within the track.
Claim 2
Independent Claim
341 words
A method of rewriting error correcting codes in a disc array device which includes a plurality of disc devices which hold a plurality of error correcting data groups, each of which includes a plurality of data and at least one error correcting code generated therefrom, the method comprising the steps of: in response to a data rewrite request provided by an upper level device connected to said disc array device, reading old data designated by the data rewrite request from said plurality of disc devices; reading, from said plurality of disc devices, an old error correcting code which belongs to one group within said plurality of error correcting data groups, to which one group the old data belongs; generating a new error correcting code for the one error correcting data group, after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; rewriting the old data held in said plurality of disc devices by said new data; temporarily holding the generated new error correcting code in a random access memory provided in said disc array device; repeating said step of reading old data to said step of temporarily holding the new error correcting code for each of a plurality of other data rewrite requests subsequently provided by said upper level device, thereby storing a group of new error correcting codes for a group of data rewrite requests in said memory; and sequentially writing the group of new error correcting codes held in said memory into a group of storage locations within said plurality of disc devices, at which storage locations a group of old error correcting codes have been held, according to an order of access predetermined for storage locations within the disc devices; wherein the order of access is predetermined so that a plurality of storage locations which belong to the same track within one of said disc devices are sequentially accessed according to an order of locations within the track.
Claim 3
Dependent Claim
83 words
A method of rewriting error correcting codes according to claim 1, wherein the order of access is predetermined so that a plurality of storage locations belonging to the same cylinder of one of said disc devices are accessed sequentially according to an order predetermined for tracks to which the plurality of storage locations belong, and so that a plurality of storage locations belonging to different cylinders of one of said disc devices are accessed sequentially according to an order predetermined for the cylinders.
Claim 4
Dependent Claim
54 words
A method of rewriting error correcting codes according to claim 1, wherein the group of new error correcting codes held in said memory are sequentially written into the group of storage locations according to an order of generation of corresponding ones of the group of data rewrite requests issued by said upper level device.
Claim 5
Dependent Claim
71 words
A method of rewriting error correcting codes according to claim 1, wherein the plurality of disc devices are divided into a plurality of data holding disc devices and at least one error correcting code holding disc device; and wherein the reading of the group of old error correcting codes and the writing of the group of new error correcting codes are carried out in said error correcting code holding disc device.
Claim 6
Dependent Claim
83 words
A method of rewriting error correcting codes according to claim 4, wherein the order of access is predetermined so that a plurality of storage locations belonging to the same cylinder of one of said disc devices are accessed sequentially according to an order predetermined for tracks to which the plurality of storage locations belong, and so that a plurality of storage locations belonging to different cylinders of one of said disc devices are accessed sequentially according to an order predetermined for the cylinders.
Claim 7
Dependent Claim
54 words
A method of rewriting error correcting codes according to claim 4, wherein the group of new error correcting codes held in said memory are sequentially written into the group of storage locations according to an order of generation of corresponding ones of the group of data rewrite requests issued by said upper level device.
Claim 8
Dependent Claim
189 words
A method of rewriting error correcting codes according to claim 4, wherein said error correcting code holding disc device includes a plurality of areas; wherein the group of new error correcting codes are held in said memory as a plurality of new error correcting code partial groups, each partial group corresponding to one of said areas and each partial group including plural new error correcting codes which correspond to plural old error correcting codes held at plural storage locations, each of which belong to the same one of said areas; wherein the step of sequentially writing the group of new error correcting codes is executed, so that new error correcting codes belonging to different error correcting code partial groups are sequentially written, and so that new error correcting codes belonging to each partial group are written sequentially, according to said order of access, into a group of storage locations which belong to one of said areas corresponding to each partial group, and at which storage locations a plurality of old error correcting codes corresponding to a plurality of new error correcting codes belonging to each partial group are held.
Claim 9
Dependent Claim
88 words
A method of rewriting error correcting codes according to claim 7, wherein the order of access is predetermined so that a plurality of storage locations belonging to the same cylinder within one of said areas within said error correcting code holding disc device are accessed sequentially according to an order predetermined for tracks to which the plurality of storage locations belong, and so that a plurality of storage locations belonging to different cylinders within said one area are accessed sequentially according to an order predetermined for the cylinders.
Claim 10
Dependent Claim
86 words
A method of rewriting error correcting codes according to claim 7, wherein the step of sequentially writing the group of new error correcting codes is executed so that a plurality of new error correcting codes belonging to each partial group and held in said memory are sequentially written into a group of storage locations within one of said areas corresponding to each partial area, according to an order of generation of corresponding ones of a group of data rewrite requests issued by said upper level device.
Claim 11
Dependent Claim
199 words
A method of rewriting error correcting codes according to claim 1, wherein the plurality of disc devices include a plurality of error correcting code holding areas provided in different ones of said disc devices; wherein the group of new error correcting codes are held in said memory as a plurality of new error correcting code partial groups, each partial group corresponding to one of said areas and each partial group including plural new error correcting codes which correspond to plural old error correcting codes held at plural storage locations, each of which belong to the same one of said areas; wherein the step of sequentially writing the group of new error correcting codes is executed so that new error correcting codes belonging to different error correcting code partial groups are sequentially written, and so that new error correcting codes belonging to each partial group are written sequentially, according to said order of access, into a group of storage locations which belong to one of said areas corresponding to each partial group, and at which storage locations a plurality of old error correcting codes corresponding to a plurality of new error correcting codes belonging to each partial group are held.
Claim 12
Dependent Claim
86 words
A method of rewriting error correcting codes according to claim 10, wherein the order of access is predetermined so that a plurality of storage locations belonging to the same cylinder within one of said areas within one of said disc devices are accessed sequentially according to an order predetermined for tracks to which the plurality of storage locations belong, and so that a plurality of storage locations belonging to different cylinders within said one area are accessed sequentially according to an order predetermined for the cylinders.
Claim 13
Dependent Claim
70 words
A method of rewriting error correcting codes according to claim 7, wherein a plurality of new error correcting codes belonging to each partial group and held in said memory are sequentially written into a group of storage locations within one of said areas corresponding to each partial area, according to an order of generation of corresponding ones of a group of data rewrite requests issued by said upper level device.
Claim 14
Dependent Claim
104 words
A method of rewriting error correcting codes according to claim 1, further comprising: reading, from said plurality of disc devices to said memory, error correcting codes other than a group of old error correcting codes corresponding to the group of new error correcting codes held in said memory, after the repeating step; wherein the step of sequentially writing the group of new error correcting codes is executed so that the group of new error correcting codes and said read other error correcting codes are sequentially written into a group of storage locations of said plurality of disc devices according to the order of access.
Claim 15
Dependent Claim
41 words
A method of rewriting error correcting codes according to claim 13, wherein each of the storage locations is one which holds either one of the group of new error correcting codes or one of the other group of error correcting codes.
Claim 16
Dependent Claim
108 words
A method of rewriting error correcting codes according to claim 4, further comprising: reading, from said error correcting code holding disc device to said memory, error correcting codes other than a group of old error correcting codes corresponding to the group of new error correcting codes held in said memory, after the repeating step; wherein the step of sequentially writing the group of new error correcting codes is executed so that the group of new error correcting codes and said read other error correcting codes are sequentially written into a group of storage locations of said error correcting code holding disc devices according to the order of access.
Claim 17
Dependent Claim
41 words
A method of rewriting error correcting codes according to claim 15, wherein each of the storage locations is one which holds either one of the group of new error correcting codes or one of the other group of error correcting codes.
Claim 18
Dependent Claim
170 words
A method of rewriting error correcting codes according to claim 7, further comprising: reading, from each of the areas of said error correcting code holding disc device to said memory, error correcting codes other than a group of old error correcting codes corresponding to the partial group of new error correcting codes held in said memory in correspondence to said each area, after the repeating step; wherein the step of sequentially writing the group of new error correcting codes is executed so that the partial group of new error correcting codes and said read other error correcting codes held in said memory in correspondence to each area are sequentially written into storage locations within each area of said error correcting code holding disc device according to the order of access, wherein each of the storage locations within each area is one which holds either one of the partial group of new error correcting codes for each area or one of the other group of error correcting codes for each area.
Claim 19
Dependent Claim
187 words
A method of rewriting error correcting codes according to claim 10, further comprising: reading, from each of the error correcting code holding areas within said plurality of disc devices to said memory, error correcting codes other than a group of old error correcting codes corresponding to the group of new error correcting codes held in said memory in correspondence to each error correcting code holding area, after the repeating step; wherein the step of sequentially writing the group of new error correcting codes is executed so that the group of new error correcting codes for each error correcting code holding area and said read other error correcting codes held in said memory in correspondence to each error correcting code holding area are sequentially written into storage locations within each error correcting code holding area, according to the order of access, wherein each of the storage locations within each area is one which holds either one of the group of new error correcting codes for each error correcting code holding area or one of the other group of error correcting codes for each error correcting code holding area.
Claim 20
Dependent Claim
184 words
A method of recovering error correcting codes according to claim 4, further comprising the steps of: reading a plurality of error correcting codes from said error correcting code holding disc, at the occurrence of a fault during accessing of one of said plurality of data holding disc devices; sequentially reading a plurality of groups of data from others of said data holding discs, other than said one faulty data holding disc, each group of data comprising data belonging to the same error correcting data group and being held at mutually the same address within said other data holding disc devices, said groups being read sequentially group by group; selecting, from said plurality of error correcting codes as read, an error correcting code which should belong to the same error correcting data group as one to which each group within said groups of data as read belongs; and recovering, for each group of data, data held in said faulty disc device and belonging to the same error correcting data group, from said error correcting code selected for each group and said read group of data.
Claim 21
Dependent Claim
361 words
A method of recovering error correcting codes according to claim 4, wherein said disc array device further includes; a plurality of other disc devices including a plurality of other data holding disc devices and at least one other error correcting code holding disc device for said other data holding devices; and a common error correcting code holding disc device provided for said plurality of disc devices and said plurality of other disc devices; wherein the method further comprises the steps of: in response to another group of data rewrite requests provided by said upper level device, executing the step of reading old data to said step of sequentially writing a plurality of old data and a plurality of new data, both related to said another group of data rewrite requests and held in said plurality of other disc devices, thereby generating another group of new error correcting codes for said plurality of other disc devices, and sequentially writing the generated another group of new error correcting codes into said other error correcting code holding disc device; generating a still other group of new error correcting codes from the group of new error correcting codes generated for said plurality of disc devices and from said another group of new error correcting codes generated for said plurality of other disc devices; writing the generated still other group of error correcting codes into said common error correcting code holding disc device; sequentially reading a group of error correcting codes from one of said error correcting code holding disc device and said other error correcting code holding disc device, at the occurrence of fault with another one of said error correcting code holding disc device and said other error correcting code holding disc device; sequentially reading said still other group of error correcting codes from said common error correcting code holding disc device; and recovering a group of error correcting codes held in said faulty error correcting code holding disc device, from said group of error correcting codes read from said one error correcting code holding device and said still other group of error correcting codes read from said common error correcting code holding device.
Claim 22
Independent Claim
329 words
A method of rewriting error correcting codes in a disc array device which includes a plurality of data holding disc devices and holds a plurality of error correcting data groups, each of which includes a plurality of data and at least one error correcting code generated therefrom, the method comprising the steps of: in response to a data rewrite request provided by an upper level device connected to said disc array device, reading old data designated by the data rewrite request from one of said plurality of disc devices; reading an old error correcting code which belongs to one group within said plurality of error correcting data groups to which one group the old data belongs, from a flash memory provided in said disc array device; generating a new error correcting code for the one error correcting data group, after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; rewriting the old data held in said one disc device by said new data; temporarily holding the generated new error correcting code in a random access memory provided in said disc array device; repeating said step of reading old data to said step of holding a new error correcting code for each of a plurality of other data rewrite requests subsequently provided by said upper level device, thereby storing a group of new error correcting codes for a group of data rewrite requests into said random access memory; erasing a group of old error correcting codes which correspond to said group of new error correcting codes from a group of storage locations within said flash memory, after the repeating step; and sequentially writing the group of new error correcting codes held in said random access memory into the group of storage locations within said flash memory according to an order of access predetermined for storage locations within said flash memory.
Claim 23
Independent Claim
329 words
A method of rewriting error correcting codes in a disc array device which includes a plurality of data holding disc devices and holds a plurality of error correcting data groups, each of which includes a plurality of data and at least one error correcting code generated therefrom, the method comprising the steps of: in response to a data rewrite request provided by an upper level device connected to said disc array device, reading old data designated by the data rewrite request from one of said plurality of disc devices; reading an old error correcting code which belongs to one group within said plurality of error correcting data groups to which one group the old data belongs, from a flash memory provided in said disc array device; generating a new error correcting code for the one error correcting data group, after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; rewriting the old data held in said one disc device by said new data; temporarily holding the generated new error correcting code in a random access memory provided in said disc array device; repeating said step of reading old data to said step of holding a new error correcting code for each of a plurality of other data rewrite requests subsequently provided by said upper level device, thereby storing a group of new error correcting codes for a group of data rewrite requests into said random access memory; erasing a group of old error correcting codes which correspond to said group of new error correcting codes from a group of storage locations within said flash memory, after the repeating step; and sequentially writing the group of new error correcting codes held in said random access memory into the group of storage locations within said flash memory according to an order of access predetermined for storage locations within said flash memory.
Claim 24
Dependent Claim
56 words
A method of rewriting error correcting codes according to claim 21, wherein the group of new error correcting codes held in said random access memory are sequentially written into the group of storage locations according to an order of generation of corresponding ones of the group of data rewrite requests issued by said upper level device.
Claim 25
Dependent Claim
186 words
A method of rewriting error correcting codes according to claim 21, wherein said flash memory includes a plurality of areas; wherein the group of new error correcting codes are held in said random access memory as a plurality of new error correcting code partial groups, each partial group corresponding to one of said areas and each partial group including plural new error correcting codes which correspond to plural old error correcting codes held at plural storage locations each of which belong to the same one of the areas; wherein the step of sequentially writing the group of new error correcting codes is executed so that error correcting codes belonging to different error correcting code partial groups are written sequentially, and so that new error correcting codes belonging to each partial group are written sequentially, according to said order of access, into a group of storage locations which belong to one of said areas corresponding to each partial group and at which storage locations a plurality of old error correcting codes corresponding to a plurality of new error correcting codes belonging to each partial group are held.
Claim 26
Dependent Claim
130 words
A method of rewriting an error correcting codes according to claim 21, further comprising: reading, from said flash memory to said random access memory, error correcting codes other than a group of old error correcting codes corresponding to the group of new error correcting codes held in said random access memory, after the repeating step; and erasing the group of old error correcting codes and said other error correcting codes from said flash memory, after the reading of the latter; wherein the step of sequentially writing the group of new error correcting codes is executed so that the group of new error correcting codes and said read other error correcting codes are sequentially written into a group of storage locations of said flash memory according to the order of access.
Claim 27
Independent Claim
408 words
A method of rewriting error correcting codes in a disc array device which includes a plurality of data holding disc devices and which holds a plurality of error correcting data groups, each of which includes a plurality of data and at least one error correcting code generated therefrom, the method comprising the steps of: in response to a data rewrite request provided by an upper level device connected to said disc array device, reading old data designated by the data rewrite request from one of said plurality of devices; reading an old error correcting code which belongs to one group within said plurality of error correcting data groups, to which one group the old data belongs, from a flash memory provided in said disc array device; generating a new error correcting code for the one error correcting data group after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; rewriting the old data held in said one disc device by said new data; temporarily holding the generated new error correcting code in a random access memory provided in said disc array device; repeating said step of reading old data to said step of temporarily holding the generated new error correcting code for each of a plurality of other data rewrite requests subsequentially provided by said upper level device, thereby storing a group of new error correcting codes for a group of data rewrite requests into said random access memory; and executing an erasing operation, after the repeating step, to a group of storage locations within said flash memory which have successive addresses and hold invalid information; sequentially writing the group of new error correcting codes held in said random access memory into the group of storage locations according to a predetermined order of addresses; and repeating the step of reading old data to the step of sequentially writing the group of new error correcting codes into said flash memory for different groups of data rewrite requests provided by said upper level device; wherein one group within different groups of storage locations within said flash memory which have successive addresses and which hold invalid information is selected from said flash memory at the writing of a group of new error correcting codes generated for each group within the other groups of data rewrite requests during the last mentioned repetition.
Claim 28
Independent Claim
408 words
A method of rewriting error correcting codes in a disc array device which includes a plurality of data holding disc devices and which holds a plurality of error correcting data groups, each of which includes a plurality of data and at least one error correcting code generated therefrom, the method comprising the steps of: in response to a data rewrite request provided by an upper level device connected to said disc array device, reading old data designated by the data rewrite request from one of said plurality of devices; reading an old error correcting code which belongs to one group within said plurality of error correcting data groups, to which one group the old data belongs, from a flash memory provided in said disc array device; generating a new error correcting code for the one error correcting data group after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; rewriting the old data held in said one disc device by said new data; temporarily holding the generated new error correcting code in a random access memory provided in said disc array device; repeating said step of reading old data to said step of temporarily holding the generated new error correcting code for each of a plurality of other data rewrite requests subsequentially provided by said upper level device, thereby storing a group of new error correcting codes for a group of data rewrite requests into said random access memory; and executing an erasing operation, after the repeating step, to a group of storage locations within said flash memory which have successive addresses and hold invalid information; sequentially writing the group of new error correcting codes held in said random access memory into the group of storage locations according to a predetermined order of addresses; and repeating the step of reading old data to the step of sequentially writing the group of new error correcting codes into said flash memory for different groups of data rewrite requests provided by said upper level device; wherein one group within different groups of storage locations within said flash memory which have successive addresses and which hold invalid information is selected from said flash memory at the writing of a group of new error correcting codes generated for each group within the other groups of data rewrite requests during the last mentioned repetition.
Claim 29
Dependent Claim
357 words
A disc array device, comprising: a plurality of disc devices which hold a plurality of error correcting data groups, each of which includes a plurality of data and at least one error correcting code generated therefrom; a disc array controller connected to said plurality of disc devices and an upper level device, said disc array controller including a random access memory and a control device; said control device including: means responsive to a data rewrite request provided by said upper level device for reading old data designated by the data rewrite request from said plurality of disc devices; means for reading, from said plurality of disc devices, an old error correcting code which belongs to one group within said plurality of error correcting data groups to which one group the old data belongs; means for generating a new error correcting code for the one error correcting data group, after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; means for rewriting the old data held in said plurality of disc devices by said new data; means for writing the generated new error correcting code into the random access memory; means for repetitively operating said first mentioned reading means to said last mentioned writing means for each of a plurality of other data rewrite requests subsequently provided by said upper device, thereby storing a group of new error correcting codes for a group of data rewrite requests in said random access memory; and means for sequentially writing the group of new error correcting codes held in said random access memory into a group of storage locations within said plurality of disc devices, at which storage locations a group of old error correcting codes have been held, according to an order of access predetermined for storage locations within said disc devices; wherein the order of access is predetermined so that a plurality of storage locations which belong to the same track within one of said disc devices are sequentially accessed according to an order of locations within the track.
Claim 30
Dependent Claim
357 words
A disc array device, comprising: a plurality of disc devices which hold a plurality of error correcting data groups, each of which includes a plurality of data and at least one error correcting code generated therefrom; a disc array controller connected to said plurality of disc devices and an upper level device, said disc array controller including a random access memory and a control device; said control device including: means responsive to a data rewrite request provided by said upper level device for reading old data designated by the data rewrite request from said plurality of disc devices; means for reading, from said plurality of disc devices, an old error correcting code which belongs to one group within said plurality of error correcting data groups to which one group the old data belongs; means for generating a new error correcting code for the one error correcting data group, after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; means for rewriting the old data held in said plurality of disc devices by said new data; means for writing the generated new error correcting code into the random access memory; means for repetitively operating said first mentioned reading means to said last mentioned writing means for each of a plurality of other data rewrite requests subsequently provided by said upper device, thereby storing a group of new error correcting codes for a group of data rewrite requests in said random access memory; and means for sequentially writing the group of new error correcting codes held in said random access memory into a group of storage locations within said plurality of disc devices, at which storage locations a group of old error correcting codes have been held, according to an order of access predetermined for storage locations within said disc devices; wherein the order of access is predetermined so that a plurality of storage locations which belong to the same track within one of said disc devices are sequentially accessed according to an order of locations within the track.
Claim 31
Dependent Claim
366 words
A disc array device, comprising: a plurality of data holding disc devices which hold a plurality data belonging to a plurality of error correcting data groups each of which includes a plurality of data and at least one error correcting code generated therefrom; a flash memory for holding a plurality of error correcting codes for the plurality of error correcting data groups; and a disc array controller connected to said plurality of disc devices, said flash memory and an upper device, said disc array controller including a random access memory and a control device; said control device including: means responsive to a data rewrite request provided by said upper device for reading old data designated by the data rewrite request from said plurality of disc devices; means for reading from said flash memory an old error correcting code which belongs to one group within said plurality of error correcting data groups to which one group the old data belongs; means for generating a new error correcting code for the one error correcting data group after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; means for rewriting the old data held in said plurality of disc device by said new data; means for writing the generated new error correcting code into the random access memory; means for repetitively operating said first mentioned reading means to mentioned writing means for each said last of a plurality of other data rewrite requests subsequently provided by said upper level device, thereby storing a group of new error correcting codes for a group of data rewrite requests in said random access memory; means for erasing a group of storage locations within said flash memory which hold a group of old error correcting codes corresponding to the group of new error correcting codes held in said random access memory; and means for sequentially writing the group of new error correcting codes held in said random access memory into the group of storage locations within said flash memory, according to an order of access predetermined for storage locations within said flash memory.
Claim 32
Dependent Claim
366 words
A disc array device, comprising: a plurality of data holding disc devices which hold a plurality data belonging to a plurality of error correcting data groups each of which includes a plurality of data and at least one error correcting code generated therefrom; a flash memory for holding a plurality of error correcting codes for the plurality of error correcting data groups; and a disc array controller connected to said plurality of disc devices, said flash memory and an upper device, said disc array controller including a random access memory and a control device; said control device including: means responsive to a data rewrite request provided by said upper device for reading old data designated by the data rewrite request from said plurality of disc devices; means for reading from said flash memory an old error correcting code which belongs to one group within said plurality of error correcting data groups to which one group the old data belongs; means for generating a new error correcting code for the one error correcting data group after the old data has been rewritten by new data designated by the data rewrite request, from the read old data, said old error correcting code and the new data; means for rewriting the old data held in said plurality of disc device by said new data; means for writing the generated new error correcting code into the random access memory; means for repetitively operating said first mentioned reading means to mentioned writing means for each said last of a plurality of other data rewrite requests subsequently provided by said upper level device, thereby storing a group of new error correcting codes for a group of data rewrite requests in said random access memory; means for erasing a group of storage locations within said flash memory which hold a group of old error correcting codes corresponding to the group of new error correcting codes held in said random access memory; and means for sequentially writing the group of new error correcting codes held in said random access memory into the group of storage locations within said flash memory, according to an order of access predetermined for storage locations within said flash memory.