WO2015194063A1 - メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置 - Google Patents

メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置 Download PDF

Info

Publication number
WO2015194063A1
WO2015194063A1 PCT/JP2014/079826 JP2014079826W WO2015194063A1 WO 2015194063 A1 WO2015194063 A1 WO 2015194063A1 JP 2014079826 W JP2014079826 W JP 2014079826W WO 2015194063 A1 WO2015194063 A1 WO 2015194063A1
Authority
WO
WIPO (PCT)
Prior art keywords
bank
banks
data
invisible
memory
Prior art date
Application number
PCT/JP2014/079826
Other languages
English (en)
French (fr)
Inventor
正名 村瀬
米谷 聡
了士 土山
Original Assignee
株式会社フィックスターズ
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 株式会社フィックスターズ filed Critical 株式会社フィックスターズ
Publication of WO2015194063A1 publication Critical patent/WO2015194063A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Definitions

  • the present invention relates to a technique for improving memory performance.
  • Patent Document 1 Various mechanisms have been proposed to improve the speed of data writing to the memory.
  • two sets of ring buffer pages including n pages are associated with each other, and log information is recorded on one ring buffer page, while the other ring buffer corresponds to the corresponding page.
  • a mechanism has been proposed in which the recorded log information is erased so that the log information can be written promptly without the need for erasing the old log information when the log information is recorded.
  • the data writing speed to the memory must always be kept at a predetermined speed or higher. For example, when recording a moving image taken by a video camera, if the data writing speed to the memory is lower than the speed at which the moving image data is input, a portion of the moving image data is not written to the memory and data is lost. .
  • Some types of memory have different data writing speeds depending on the memory usage. For example, in a flash memory, the time required to rewrite an area where data has already been written with new data is longer than the time required to write new data in an area where no data is written. Therefore, even when data is written at the same bit rate, when data is written to a memory in which no data is written, no data is lost, and a memory in which some data is written In the case of writing data in the memory, there may be a disadvantage that data is lost.
  • an object of the present invention is to provide a means for preventing data loss when data is written at a predetermined bit rate to a memory whose data writing speed varies depending on usage conditions.
  • the present invention provides a memory management device that manages a memory capable of increasing a data writing speed by performing preprocessing prior to data writing.
  • a predetermined number of banks among the plurality of banks is selected as a visible bank, and a plurality of banks that are not selected as a visible bank among the plurality of banks are set as invisible banks, and each of the plurality of invisible banks is selected.
  • the preprocessing is performed, and one bank is selected as an active bank from the plurality of visible banks, and one of the plurality of invisible banks in which the preprocessing has been completed is selected from the plurality of invisible banks.
  • Shadow sharing logical address space with active bank In response to a data write request, data is written to the shadow bank, and with the selection of a new active bank, the bank that was active until the time of the selection is designated as an invisible bank, and until the time of the selection.
  • a memory management method in which a bank that was a shadow bank is a visible bank is proposed as a first embodiment.
  • the memory management device sets a time required to write the maximum amount of data to one bank for which the preprocessing is completed as a, and stores the data in one bank.
  • a configuration in which the predetermined number of visible banks is selected so that the number of invisible banks is equal to or greater than (b / a + 1), where b is the time required for the preprocessing, is a second embodiment. suggest.
  • the memory has a data writing speed that decreases as data is rewritten without performing the preprocessing.
  • the data writing speed of the invisible bank is specified prior to the preprocessing, and when the specified writing speed is higher than a predetermined threshold, the preprocessing for the invisible bank is performed.
  • the configuration of not performing is proposed as a third embodiment.
  • the present invention provides any one of the first to third embodiments described above.
  • Proposed as a fourth embodiment is a configuration in which the preprocessing includes a process of copying data stored in the active bank to the shadow bank.
  • the memory management device has a first time required for writing data to the shadow bank and a second time required for the preprocessing.
  • a configuration is proposed as a fifth embodiment in which when the first time and the second time satisfy a predetermined condition, a notification is instructed to the notification device.
  • the present invention provides a processor provided in a memory management device that manages a memory capable of increasing a data writing speed by performing preprocessing prior to data writing in a plurality of banks of a predetermined size constituting the memory.
  • a plurality of banks selected as visible banks, and a plurality of banks not selected as visible banks among the plurality of banks are set as invisible banks, and each of the plurality of invisible banks includes the A process for performing pre-processing, and selecting one bank from among the plurality of visible banks as an active bank, and selecting one bank from among the plurality of invisible banks for which the pre-processing has been completed.
  • the present invention also provides a memory management device for managing a memory capable of increasing a data writing speed by performing preprocessing prior to data writing, and comprising a plurality of banks of a predetermined size constituting the memory. Selecting a predetermined number of the plurality of banks as visible banks, and selecting a plurality of banks not selected as visible banks among the plurality of banks as invisible banks; and A preprocessing unit that performs preprocessing, and the selection unit selects one bank as the active bank from the plurality of visible banks, and the preprocessing of the plurality of invisible banks is completed.
  • One of the invisible banks is designated as the active bank and the logical address.
  • a memory management device is proposed as a seventh embodiment in which a bank that is a bank is an invisible bank and a bank that is a shadow bank until the time of the selection is a visible bank.
  • the data write speed is maintained so as not to fall below a predetermined speed. Is done. As a result, no data is lost in writing data at a predetermined bit rate. At this time, even if data is read from the active bank paired with the shadow bank, the data writing speed to the shadow bank is not affected. Since the active bank and the shadow bank share the logical address space, the active bank and the shadow bank are recognized as the same memory area from the data read / write request source. Therefore, even when a request to read data written in a memory area where data is written occurs, the data writing speed is kept at a predetermined speed without sacrificing the data reading speed. Maintained above.
  • FIG. 1 is a diagram showing the configuration of the data storage system 1.
  • the data storage system 1 includes a data processing device 11 and a data storage device 12 that reads and writes data in response to a request from the data processing device 11.
  • the data processing device 11 is, for example, a general-purpose computer, and includes a memory 111 that stores data such as a program and user data, a processor 112 that performs data processing according to the program stored in the memory 111, and the data storage device 12. An interface 113 that exchanges data between them is provided.
  • the data processing device 11 is not limited to a general-purpose computer, and may be any type of device as long as it requests data reading / writing from the data storage device 12. For example, it may be a dedicated machine designed exclusively for performing specific data processing such as a video camera.
  • the data storage device 12 includes an interface 121 that exchanges data with the data processing device 11, and i memory modules 122-1 to 122-i (i is an arbitrary number) that stores data received from the data storage device 12.
  • the memory modules 122-1 to 122-i are collectively referred to as “memory module 122”), a memory 123 that stores a program for managing data storage by the memory module 122, and a memory 123
  • the processor 124 performs processing for managing the storage of data by the memory module 122 according to the program stored in the memory.
  • Each of the memory modules 122 includes a memory chip 1221 and a memory controller 1222 that controls reading and writing of data in the memory chip 1221.
  • the memory chip 1221 may be configured as one memory chip or may be configured as an aggregate of a plurality of memory chips.
  • the memory chip 1221 is, for example, a NAND flash memory, and the memory controller 1222 reads and writes data to and from the memory chip 1221 while performing known processes such as wear leveling, garbage collection, and error correction.
  • the memory chip 1221 is a NAND flash memory.
  • the memory chip 1221 Any type of memory can be used as long as it can increase the writing speed of the new data by performing preprocessing such as erasing the data in the memory area prior to writing the new data. Also good.
  • a NAND-type flash memory has a new data writing speed that decreases as data rewrite is repeated. This is because when data is written to a page in which erasable data is stored (in this application, a page is a unit of data writing in a memory), a block including the page (in this application, a block is referred to as a block). This is because it requires a process of copying data (which is a data erasure unit in the memory) to an unused block in which no data is stored. Therefore, prior to the data write request, the data (garbage collection) in which all the data scattered in a plurality of blocks is collected in one block and then the data in the block in which all data can be erased is deleted. By performing the processing, when a new data write request is generated, the data write speed corresponding to the request can be increased.
  • the processor 124 included in the data storage device 12 gives a sanitization instruction to the memory controller 1222 of the memory module 122 at a desired timing according to a program stored in the memory 123, and the memory controller 1222 applies to the memory chip 1221 according to the instruction from the processor 124.
  • sanitization as a pre-process, when the data storage device 12 receives a new data write request from the data processing device 11, the data write according to the write request is always performed at the maximum speed.
  • FIG. 2 is a diagram showing a functional configuration of the memory management device 120 realized by the processor 124 and the memory controller 1222 that performs preprocessing in accordance with instructions from the processor 124. That is, when the processor 124 manages the processing of the memory controller 1222 in accordance with the program stored in the memory 123, the processor 124 and the memory controller 1222 function as the memory management device 120 having the functional configuration shown in FIG.
  • the memory management device 120 includes a selection unit 1201 that selects a bank to which data is written from a plurality of banks obtained by dividing the memory chip 1221 included in the memory module 122 into a predetermined size, and the selection unit 1201
  • a pre-processing unit 1202 that performs pre-processing (sanitization in the present embodiment) for a bank selected as a processing target, and a selection unit 1201 as a data write destination in response to a data write request from the data processing device 11
  • a writing unit 1203 is provided to write data to the selected bank.
  • FIG. 3A to 3Q are diagrams showing how the roles of a plurality of banks are switched by the memory management device 120 as data writing progresses. It is.
  • FIG. 3A shows a state of the memory chip 1221 in a state where no data is stored in the data storage device 12.
  • the memory chip 1221 provided in the data storage device 12 is divided into a total of 12 banks A to L. These banks are all the same size.
  • the data storage device 12 includes twelve memory modules 122, that is, the memory modules 122-1 to 122-12, and the memory chip 1221 included in the memory module 122-1 includes the bank A and the memory module 122-2.
  • the memory chip 1221 included in each memory module 122 is set as a bank unit, such as the bank B,.
  • a configuration is adopted in which each memory area obtained by dividing one memory chip 1221 into a plurality of banks is handled as one bank. May be. Further, a configuration in which a plurality of memory chips 1221 are handled as one bank may be employed.
  • the selection unit 1201 of the memory management device 120 first selects arbitrarily eight banks from among the 12 banks as visible banks. Banks that are not selected as visible banks become invisible banks.
  • the upper bank is a visible bank
  • the lower bank is an invisible bank.
  • the selection unit 1201 When the time required to write data in all areas of one bank is a and the time required to perform preprocessing in one bank is b, the selection unit 1201 has the number of invisible banks (b / a + 1). ) Select the visible bank (2 or more) so that the number is equal to or greater than the above.
  • a time a required to write data in all areas of one bank is 10 minutes
  • a time b required to perform preprocessing in one bank is 30 minutes.
  • (b / a + 1) 4
  • the selection unit 1201 selects eight or less banks as visible banks so that the number of invisible banks is four or more.
  • the selection unit 1201 selects eight visible banks, but the number of visible banks selected by the selection unit 1201 may be any one of 1 to 8. However, from the viewpoint of the amount of data that can be stored in the data storage device 12, it is desirable that the number of visible banks is large.
  • the visible bank is a bank recognized from the data processing device 11.
  • the memory areas of the eight visible banks are arranged in, for example, one continuous logical address space.
  • the data storage device 12 writes data in response to a data write request from the data processing device 11, the data Is notified to the data processing device 11.
  • the data storage device 12 converts the logical address and the physical address, and the data processing device 11 is notified of the logical address.
  • the data processing device 11 can make a read request for data stored in the data storage device 12 by designating the logical address and data size notified from the data storage device 12.
  • the invisible bank is a bank that is not recognized by the data processing device 11.
  • all four invisible banks are in a state in which preprocessing has been completed. That is, all invisible banks are sanitized and all data is erased.
  • the fraction in () above each invisible bank indicates the progress of preprocessing. For example, in FIG. 3A, (30/30) shown above each of the banks I to L, the preprocessing of these banks is completed for 30 minutes with respect to the required time of 30 minutes (ie, Is complete).
  • the selection unit 1201 selects one of the eight visible banks as an active bank.
  • the selection unit 1201 sequentially selects active banks from the eight visible banks according to the order of bank symbols (A to L).
  • bank A is selected as the active bank.
  • the rule for selecting the active bank by the selection unit 1201 is not limited to this, and one of the visible banks may be selected as an active bank at random.
  • the active bank is a bank to which a logical address space in which data is written in response to the request is assigned.
  • the selection unit 1201 selects one of the four invisible banks for which preprocessing has been completed as a shadow bank.
  • the preprocessing is completed for all of the banks I to L.
  • the selection unit 1201 selects a shadow bank according to the order of bank symbols (A to L). In this case, bank I is selected as the shadow bank.
  • the rule for selecting a shadow bank by the selection unit 1201 is not limited to this. For example, one of the invisible banks may be randomly selected as a shadow bank.
  • the shadow bank is a bank that makes a pair with the active bank and shares the logical address space with the active bank.
  • the active bank and the shadow bank are memory areas that are distinguished by different physical addresses in the memory management device 120, but are memory areas to which the same logical address is assigned. In the notified logical address, the active bank and the shadow bank are not distinguished.
  • the memory management device 120 When the memory management device 120 receives a data write request from the data storage device 12, the memory management device 120 writes data to the shadow bank according to the request.
  • the data storage device 12 notifies the data processing device 11 of the logical address of the data write destination, but the data processing device 11 checks whether data has been written to the active bank (one of the visible banks) from the notified address. It does not sense whether it was written to a shadow bank (one of the invisible banks).
  • FIG. 3B shows a state immediately after the selection unit 1201 completes the selection of the active bank and the shadow bank.
  • a bank indicated by a thick frame is an active bank
  • a bank indicated below the active bank is a shadow bank.
  • the data storage device 12 can respond to a data read / write request from the data processing device 11.
  • a state in which moving image data is written in the data storage device 12 is described as an example in which the data processing device 11 continuously requests the data storage device 12 to write moving image data for 60 minutes. explain.
  • the memory management device 120 writes the moving image data to the shadow bank (bank I) in response to the moving image data write request.
  • FIG. 3C shows the state of the data storage device 12 at the time when 5 minutes have elapsed since the start of writing of the moving image data. As described above, the moving image data is written into the shadow bank.
  • FIG. 3C (the same applies to FIGS. 3D to 3Q), the hatched portion of the shadow bank (bank I) schematically shows a memory area in which moving image data is written. Actually, wear leveling or the like by the memory controller 1222 is performed, and the position where the moving image data is written may not follow the order of the physical addresses.
  • FIG. 3C (the same applies to FIGS.
  • the shaded portion of the active bank (bank A) is an area (same logical address) corresponding to the area where the shadow bank video data is written. Space).
  • the shaded portion is recognized by the data processing device 11 as an area where moving image data is newly written.
  • the hatched portion of the active bank is an active bank (bank A) memory area identified by the same logical address as the memory area in which the moving image data is written in the shadow bank (bank I). Is schematically shown. Actually, the moving image data is not written in the hatched portion of the active bank, but the data processing device 11 receives the notification from the data storage device 12 in the hatched memory area. It is recognized that moving image data is stored.
  • FIG. 3D shows the state of the data storage device 12 at the time when 10 minutes have elapsed from the start of the writing of the moving image data.
  • the selection unit 1201 selects a new active bank from the visible banks.
  • bank B becomes a new active bank.
  • the selection unit 1201 selects a new shadow back from among the invisible banks that have been preprocessed, in accordance with the selection of a new active bank.
  • bank J becomes a new shadow bank. That is, the selection unit 1201 assigns the address space of the same logical address as that of the bank B to the bank J.
  • the selection unit 1201 replaces bank I, which has been a shadow bank, with a bank A as a pair, and sets the bank A as an invisible bank. That is, the selection unit 1201 cancels the allocation of the address space of the logical address to the bank A.
  • the preprocessing unit 1202 starts preprocessing for the bank A that has newly become an invisible bank.
  • FIG. 3E shows a state in which switching between these banks by the selection unit 1201 has been completed.
  • FIG. 3F shows the state of the data storage device 12 when 15 minutes have passed since the start of writing of moving image data.
  • FIG. 3G shows data storage before 20 minutes have passed since the start of writing of moving image data and before switching between banks.
  • the state of the device 12 shows the state of the data storage device 12 after 20 minutes have elapsed from the start of the writing of moving image data and switching between banks has been performed.
  • FIG. 3I shows the state of the data storage device 12 when 25 minutes have elapsed from the start of writing of moving image data
  • FIG. 3J shows data storage before 30 minutes have elapsed from the start of writing of moving image data and before switching between banks.
  • the state of the device 12 shows the state of the data storage device 12 after 30 minutes have elapsed from the start of writing of the moving image data and switching between banks has been performed.
  • FIG. 3L shows the state of the data storage device 12 when 35 minutes have elapsed from the start of writing of moving image data.
  • FIG. 3M shows data storage before 40 minutes have passed since the start of writing of moving image data and before switching between banks.
  • the state of the device 12 shows the state of the data storage device 12 after 40 minutes have elapsed from the start of writing the moving image data and after switching between banks.
  • the preprocessing for bank A by the preprocessing unit 1202 is completed when 40 minutes have elapsed from the start of the writing of the moving image data. Then, as shown in FIG. 3N, the selection unit 1201 selects the bank A for which preprocessing has been completed as a new shadow bank.
  • the selection unit 1201 selects that bank. Select as a new shadow bank.
  • the number of invisible banks (including shadow banks) is five or more, there are two or more invisible banks that have undergone preprocessing at the time of switching between the banks, and therefore the selection unit 1201 includes the invisible banks.
  • a shadow bank is selected according to the order of bank symbols (A to L).
  • the rule for selecting a shadow bank from among invisible banks for which preprocessing has been completed is not limited to this, and for example, a shadow bank may be selected at random.
  • FIG. 3O shows the state of the data storage device 12 when 45 minutes have elapsed from the start of writing of moving image data.
  • FIG. 3P shows data storage before 50 minutes have elapsed from the start of writing of moving image data and before switching between banks.
  • the state of the device 12, FIG. 3Q shows the state of the data storage device 12 after 50 minutes have elapsed from the start of the writing of moving image data and switching between banks has been performed. Thereafter, the memory management device 120 performs preprocessing for the invisible bank while sequentially switching between banks according to the above-described procedure.
  • FIG. 4 illustrates a state in which moving image data write requests from the data processing device 11 are performed a plurality of times, and a plurality of moving image data are stored in the data storage device 12.
  • moving image data D1 is stored from bank L to bank B
  • moving image data D2 is stored from bank B to bank D
  • moving image data D3 is stored from bank D to bank E.
  • the moving image data D4 is stored from the bank E to the bank L, and the writing of the moving image data D4 to the bank H, which is a shadow bank that is paired with the bank L, is currently in progress.
  • the user of the data processing device 11 can perform an operation of copying the moving image data D1, D2, and D3 to another data processing device during recording of the moving image data D4 and then deleting the data.
  • the moving image data D1 is read or deleted, data access to the bank L occurs, but since the data is written to the bank H, the data writing speed is affected. There is no.
  • reading of the portion stored in the bank (bank E to bank G) other than the bank L in which the data is written in the moving image data D4 being recorded is also permitted. Therefore, for example, the user of the data processing device 11 can perform an operation of reproducing the moving image indicated by the moving image data D4 from the beginning or the middle while the moving image data D4 is being recorded. In this case, data access occurs from the bank E to the bank G, and the data writing speed being performed on the bank H is not affected.
  • data writing in response to a write request is always performed on a shadow bank that has been preprocessed, and is stored in the shadow bank while the data is being written. Data is not read or deleted. Therefore, the writing speed of data exceeding a predetermined value is ensured, and data input below a predetermined bit rate does not occur.
  • the preprocessing unit 1202 of the data storage device 12 always performs preprocessing on a bank that has become an invisible bank.
  • a configuration in which the preprocessing unit 1202 does not perform preprocessing may be employed.
  • this modification is referred to as a first modification.
  • FIG. 5 is a diagram showing a configuration of the memory management device 120 of the data storage device 12 in the first modification.
  • the memory management device 120 includes a speed specifying unit 1204 in addition to the selection unit 1201, the preprocessing unit 1202, and the writing unit 1203.
  • the speed specifying unit 1204 specifies the data writing speed prior to the preprocessing by the preprocessing unit 1202 regarding the bank newly selected as the invisible bank by the selection unit 1201.
  • the speed specifying unit 1204 As a method for the speed specifying unit 1204 to specify the data writing speed to the invisible bank, for example, dummy data is written to the invisible bank and the writing speed at that time is measured, or preprocessing is finally performed on the invisible bank. Any method may be employed, such as a method of recording the number of times data is rewritten after breaking and estimating the writing speed based on the number of times according to a predetermined calculation formula or the like.
  • the preprocessing unit 1202 When the data writing speed specified by the speed specifying unit 1204 is higher than a predetermined threshold for the bank newly selected as an invisible bank by the selection unit 1201, the preprocessing unit 1202 performs preprocessing for the invisible bank. First, preprocessing is performed only when the data writing speed specified by the speed specifying unit 1204 is equal to or lower than a predetermined threshold.
  • the memory chip 1221 is, for example, a NAND flash memory
  • the data writing speed to the memory chip 1221 decreases as data rewriting to the memory chip 1221 is repeated.
  • the data writing speed to the memory chip 1221 increases.
  • the number of times of sanitization is the minimum necessary.
  • the memory module 122 consumes power to perform sanitization. Therefore, it is desirable that the number of times of sanitization is the minimum necessary from the viewpoint of power consumption.
  • the number of times of sanitization is the minimum necessary from the viewpoint of power consumption.
  • the number of executions be the minimum necessary for the same reason.
  • the preprocessing is performed only when the preprocessing for the invisible bank is necessary, which is desirable from the viewpoint of the life of the memory and the power consumption.
  • data stored in the active bank is discarded when data writing to the shadow bank paired with the active bank is completed and switching between banks is performed. That is, the data stored in the active bank is not copied to another bank prior to switching between banks.
  • the active bank becomes an invisible bank by switching between banks, the logical address space for the bank is not copied. Since the allocation is canceled, the data stored in the bank is not used thereafter. Therefore, all the old data is overwritten with new data in bank units.
  • FIG. 6A and FIG. 6B are diagrams illustrating a state in which data is written to the data storage device 12 in the second modified example.
  • the preprocessing unit 1202 performs sanitization for an invisible bank and copying of data in the active bank for a shadow bank that will be paired with a visible bank that will be an active bank in the future. Note that garbage collection is also performed in copying data from the active bank to the shadow bank.
  • bank B is the active bank.
  • a shadow bank has already been selected for bank C, which will be the next active bank, and bank D, which will be the next active bank.
  • the shadow bank (bank J) paired with the bank D is selected from the invisible banks that have been sanitized at the timing when the bank B is selected as a new active bank.
  • the preprocessing unit 1202 performs the bank K that is an invisible bank that has not been sanitized. Sanitize Bank A. At the same time, the preprocessing unit 1202 copies the data stored in the bank C to the bank I and the data stored in the bank D to the bank J.
  • the selection unit 1201 switches the active bank from the bank B to the bank C, changes the bank B to an invisible bank, and changes the bank H to a visible bank that replaces the bank B. Is selected as a shadow bank that is paired with bank E. Note that the copying of data from bank C to bank I is completed before switching between these banks.
  • FIG. 6B shows a state where switching between these banks is completed.
  • the pre-processing unit 1202 performs the bank A that is an invisible bank that has not been sanitized. Sanitize Bank B. At the same time, the preprocessing unit 1202 copies the data stored in the bank D to the bank J and the data stored in the bank E to the bank K.
  • the bank selection by the selection unit 1201 and the preprocessing by the preprocessing unit 1202 are performed.
  • data stored in the past in the bank to which new data is written is stored between banks. It will not be discarded when switching.
  • the data storage device 12 instructs the data processing device 11 to notify the user before the preprocessing by the preprocessing unit 1202 is not in time.
  • FIG. 7 is a diagram showing a configuration of the memory management device 120 of the data storage device 12 in the second modified example.
  • the memory management device 120 includes a required time estimation unit 1205 and a notification instruction unit 1206 in addition to the selection unit 1201, the preprocessing unit 1202, and the writing unit 1203.
  • the required time estimation unit 1205 estimates the time required for writing data to the shadow bank paired with the active bank and the time required for the preprocessing unit 1202 to perform preprocessing on the invisible bank. As a method for the required time estimation unit 1205 to estimate these times, for example, a time series change of the required time when data is written or preprocessed in the past is recorded, and the time series is recorded. Any of a method for estimating a future required time based on a change and a method for estimating based on the amount of data stored in those banks may be adopted.
  • the notification instruction unit 1206 When the time estimated by the required time estimation unit 1205 satisfies a predetermined condition indicating that the preprocessing is not completed before switching between banks, the notification instruction unit 1206 notifies the data processing device 11 to the user.
  • the instruction data to be instructed is output.
  • the data processing device 11 prompts the user to delete unnecessary data, for example, and if the data is not deleted, the data writing speed is not guaranteed and data may be lost. A warning message to this effect is displayed.
  • the notification instructing unit 1206 sets the time required for writing data to the shadow bank paired with the active bank (estimated value by the required time estimating unit 1205) to be the time required to sanitize one invisible bank.
  • b x and the number of invisible banks is x, if b / (x ⁇ 1)> a ⁇ , it is determined that there is a high risk that the time required for sanitization cannot be secured, and the instruction data is output.
  • is a margin value for performing notification before sanitization time cannot be secured.
  • the notification instruction unit 1206 sets, for example, a time required for writing data to the shadow bank paired with the active bank (estimated value by the required time estimation unit 1205), and data of the shadow bank paired with the active bank.
  • C / y where y is the number of shadow banks to copy data from the visible bank during writing, and c is the time required to copy data for each of these shadow banks (estimated value by the required time estimation unit 1205). If> a ⁇ , it is determined that there is a high risk that the time required to copy the data cannot be secured, and the instruction data is output. However, ⁇ is a margin value for performing notification before the time required for data copy cannot be secured.
  • the second modification it is not necessary to delete old data stored in the same bank as new data is written.
  • the writing speed of new data may not be guaranteed. Since notification is made to the user before such a situation occurs, the user can ensure the necessary data writing speed by taking measures such as deleting unnecessary data in response to the notification.
  • the data stored in the visible banks that will soon become active banks are copied to shadow banks (invisible banks that have been sanitized) that are paired with those visible banks.
  • data may be copied to other visible banks that are not currently active banks.
  • the time required for data copy can be shortened by distributing the data copy destination banks to a plurality of banks.
  • sanitization is performed as pre-processing, and in the second modification, sanitization and data copying are performed.
  • the preprocessing performed by the preprocessing unit 1202 is not limited to these, and any processing that can improve the data writing speed to the memory by performing the processing on the memory prior to data writing, for example, garbage collection, etc.
  • Other types of processing may be performed as preprocessing by the preprocessing unit 1202.
  • the type of preprocessing may vary depending on the type of the memory chip 1221.
  • the data storage device 12 includes all the components of the memory management device 120.
  • a configuration in which an external device connected to the data storage device 12, for example, the data processing device 11 includes a part of the configuration unit of the memory management device 120 may be employed.
  • a configuration in which the data processing apparatus 11 includes the selection unit 1201 included in the memory management apparatus 120 may be employed.
  • the data processing device 11 instructs the data storage device 12 to switch between banks in accordance with a program stored in the memory 111.
  • the data storage device 12 includes the memory controller 1222 that controls the memory chip 1221 in each of the memory modules 122 and each of the plurality of memory modules 122 according to the program stored in the memory 123.
  • a processor 124 for instructing the memory controller 1222 such as bank switching is provided.
  • a configuration in which the processor 124 also serves as the memory module 122 may be employed.
  • the memory management device 120 is realized by the processing of the processor 124 according to the program stored in the memory 123.
  • the memory management device 120 may be realized by dedicated hardware such as a logic integrated circuit.
  • SYMBOLS 1 ... Data storage system, 11 ... Data processing device, 12 ... Data storage device, 111 ... Memory, 112 ... Processor, 113 ... Interface, 120 ... Memory management device, 121 ... Interface, 122 ... Memory module, 123 ... Memory, 124 ... Processor, 1201 ... Selection unit, 1202 ... Preprocessing unit, 1203 ... Write unit, 1204 ... Speed specifying unit, 1205 ... Required time estimation unit, 1206 ... Notification instruction unit, 1221 ... Memory chip, 1222 ... Memory controller

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

 本発明の課題は、使用状況によってデータの書き込み速度が変化するメモリに対し所定のビットレートでデータを書き込む際のデータの欠落を防止することである。本発明の一実施形態にかかるメモリ管理装置は、メモリの複数のバンクを外部の装置に認識されるビジブルバンクと認識されないインビジブルバンクに区分する。メモリ管理装置は、ビジブルバンクの1つをアクティブバンクとし、データの書き込み速度を向上させるための前処理の完了したインビジブルバンクの1つをシャドーバンクとする。アクティブバンクとシャドーバンクは論理アドレス空間を共有し、外部の装置からは区別されない。メモリ管理装置は、データの書き込み要求に応じてシャドーバンクにデータを書き込む間、インビジブルバンクに対する前処理を行う。シャドーバンクへのデータの書き込みが完了すると、メモリ管理装置はシャドーバンクをビジブルバンクに切り替え、アクティブバンクをインビジブルバンクに切り替える。

Description

メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置
 本発明は、メモリのパフォーマンスを向上するための技術に関する。
 メモリに対するデータの書き込み速度を向上するために、様々な仕組みが提案されている。例えば特許文献1には、n個のページを含む2組のリングバッファのページを各々対応付けて、一方のリングバッファのページにログ情報を記録する間に、他方のリングバッファの対応するページに記録されているログ情報を消去しておくことで、ログ情報の記録時に古いログ情報の消去処理を要することなく速やかにログ情報の書き込みを可能とする仕組みが提案されている。
特開2009-003604号公報
 メモリに対するデータの書き込み速度が常時、所定の速度以上に保たれなければならないケースがある。例えば、ビデオカメラで撮影される動画を記録する場合、メモリに対するデータの書き込み速度が動画データの入力される速度を下回ると、その間の動画データの一部がメモリに書き込まれず、データの欠落が生じる。
 ある種のメモリは、メモリの使用状況に応じてデータの書き込み速度が変化する。例えば、フラッシュメモリは、既にデータが書き込まれている領域を新たなデータで書き替えるために要する時間が、何もデータが書き込まれていない領域に新たなデータを書き込むために要する時間より長い。従って、同じビットレートでデータを書き込んでいく場合であっても、何もデータが書き込まれていないメモリにデータを書き込んでいく場合にはデータの欠落が生じず、何らかのデータが書き込まれているメモリにデータを書き込んでいく場合にはデータの欠落が生じてしまう、という不都合が起こりうる。
 上記の事情に鑑み、本発明は、使用状況によってデータの書き込み速度が変化するメモリに対し所定のビットレートでデータを書き込む際のデータの欠落を防止するための手段の提供を目的とする。
 上述した課題を解決するために、本発明は、データの書き込みに先んじて前処理を行うことによりデータの書き込み速度を速めることができるメモリを管理するメモリ管理装置が、前記メモリを構成する所定サイズの複数のバンクのうちの所定数の複数のバンクをビジブルバンクとして選択するとともに、前記複数のバンクのうちビジブルバンクとして選択されていない複数のバンクをインビジブルバンクとし、前記複数のインビジブルバンクの各々に前記前処理を行い、前記複数のビジブルバンクの中から1つのバンクをアクティブバンクとして選択するとともに、前記複数のインビジブルバンクのうち前記前処理が完了しているインビジブルバンクの中から1つのバンクを前記アクティブバンクと論理アドレス空間を共有するシャドーバンクとして選択し、データの書き込み要求に応じて前記シャドーバンクにデータを書き込み、新たなアクティブバンクの選択に伴い、当該選択の時点までアクティブバンクであったバンクをインビジブルバンクとし、当該選択の時点までシャドーバンクであったバンクをビジブルバンクとするメモリ管理方法を第1の実施態様として提案する。
 また、本発明は、上記の第1の実施態様において、前記メモリ管理装置は、前記前処理が完了した1つのバンクに最大量のデータを書き込むために要する時間をaとし、1つのバンクに前記前処理を行うために要する時間をbとするとき、インビジブルバンクの数が(b/a+1)以上となるように、前記所定数のビジブルバンクの選択を行う、という構成を第2の実施態様として提案する。
 また、本発明は、上記の第1または第2の実施態様において、前記メモリは、前記前処理が行われることなくデータの書き換えが行われる程、データの書き込み速度が低下し、前記メモリ管理装置は、前記複数のインビジブルバンクの各々に関し、前記前処理に先んじて当該インビジブルバンクのデータの書き込み速度を特定し、当該特定した書き込み速度が所定の閾値より速い場合、当該インビジブルバンクに関する前記前処理を行わない、という構成を第3の実施態様として提案する。
 また、本発明は、上記の第1乃至第3のいずれかの実施態様において、
 前記前処理は、前記アクティブバンクに記憶されているデータを前記シャドーバンクへコピーする処理を含む、という構成を第4の実施態様として提案する
 また、本発明は、上記の第1乃至第4のいずれかの実施態様において、前記メモリ管理装置は、前記シャドーバンクにデータを書き込むために要する第1の時間と、前記前処理に要する第2の時間とを推定し、前記第1の時間と前記第2の時間が所定の条件を満たす場合、通知装置に通知を指示する、という構成を第5の実施態様として提案する。
 また、本発明は、データの書き込みに先んじて前処理を行うことによりデータの書き込み速度を速めることができるメモリを管理するメモリ管理装置が備えるプロセッサに、前記メモリを構成する所定サイズの複数のバンクのうちの所定数の複数のバンクをビジブルバンクとして選択するとともに、前記複数のバンクのうちビジブルバンクとして選択されていない複数のバンクをインビジブルバンクとする処理と、前記複数のインビジブルバンクの各々に前記前処理を行う処理と、前記複数のビジブルバンクの中から1つのバンクをアクティブバンクとして選択するとともに、前記複数のインビジブルバンクのうち前記前処理が完了しているインビジブルバンクの中から1つのバンクを前記アクティブバンクと論理アドレス空間を共有するシャドーバンクとして選択する処理と、データの書き込み要求に応じて前記シャドーバンクにデータを書き込む処理と、新たなアクティブバンクの選択に伴い、当該選択の時点までアクティブバンクであったバンクをインビジブルバンクとし、当該選択の時点までシャドーバンクであったバンクをビジブルバンクとする処理とを実行させるためのプログラムを第6の実施態様として提案する。
 また、本発明は、データの書き込みに先んじて前処理を行うことによりデータの書き込み速度を速めることができるメモリを管理するメモリ管理装置であって、前記メモリを構成する所定サイズの複数のバンクのうちの所定数の複数のバンクをビジブルバンクとして選択するとともに、前記複数のバンクのうちビジブルバンクとして選択されていない複数のバンクをインビジブルバンクとする選択部と、前記複数のインビジブルバンクの各々に前記前処理を行う前処理部とを備え、前記選択部は、前記複数のビジブルバンクの中から1つのバンクをアクティブバンクとして選択するとともに、前記複数のインビジブルバンクのうち前記前処理が完了しているインビジブルバンクの中から1つのバンクを前記アクティブバンクと論理アドレス空間を共有するシャドーバンクとして選択し、データの書き込み要求に応じて前記シャドーバンクにデータを書き込む書込部を備え、前記選択部は、新たなアクティブバンクの選択に伴い、当該選択の時点までアクティブバンクであったバンクをインビジブルバンクとし、当該選択の時点までシャドーバンクであったバンクをビジブルバンクとするメモリ管理装置を第7の実施態様として提案する。
 本発明によれば、データの書き込み要求に応じて、前処理が完了しているメモリ領域(シャドーバンク)にデータの書き込みが行われるため、データの書き込み速度が所定の速度を下回らないように維持される。その結果、所定のビットレートのデータの書き込みにおいて、データの欠落が生じない。その際、シャドーバンクと対をなすアクティブバンクからのデータの読み出しが行われても、シャドーバンクに対するデータの書き込み速度は影響を受けない。アクティブバンクとシャドーバンクは論理アドレス空間を共有しているので、データの読み書きの要求元からはアクティブバンクとシャドーバンクは同じメモリ領域として認識される。従って、データの書き込みが行われているメモリ領域に書き込まれているデータの読み出しの要求が生じた場合であっても、データの読み出し速度が犠牲となることなく、データの書き込み速度が所定の速度以上に維持される。
一実施形態にかかるデータ記憶システムの構成を示した図である。 一実施形態にかかるメモリ管理装置の機能構成を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一実施形態にかかるデータ記憶装置に記憶されているデータの状態を例示した図である。 一変形例におけるメモリ管理装置の構成を示した図である。 一変形例にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一変形例にかかるメモリ管理装置によりバンク間の切り替えが行われる様子を示した図である。 一変形例におけるメモリ管理装置の構成を示した図である。
[実施形態]
 以下に本発明の一実施形態にかかるデータ記憶システム1を説明する。図1は、データ記憶システム1の構成を示した図である。データ記憶システム1は、データ処理装置11と、データ処理装置11の要求に応じてデータの読み書きを行うデータ記憶装置12を備える。
 データ処理装置11は、例えば汎用のコンピュータであり、プログラムやユーザデータ等のデータを記憶するメモリ111と、メモリ111に記憶されているプログラムに従いデータ処理を行うプロセッサ112と、データ記憶装置12との間でデータの受け渡しを行うインタフェース113を備える。なお、データ処理装置11は汎用のコンピュータに限定されず、データ記憶装置12に対しデータの読み書きを要求する装置であればいずれの種別の装置であってもよい。例えば、ビデオカメラのような専ら特定のデータ処理を行うように設計された専用機であってもよい。
 データ記憶装置12は、データ処理装置11との間でデータの受け渡しを行うインタフェース121と、データ記憶装置12から受け取ったデータを記憶するi個のメモリモジュール122-1~122-i(iは任意に自然数)(以下、メモリモジュール122-1~122-iを総称して「メモリモジュール122」という)と、メモリモジュール122によるデータの記憶を管理するためのプログラムを記憶するメモリ123と、メモリ123に記憶されているプログラムに従いメモリモジュール122によるデータの記憶を管理するための処理を行うプロセッサ124を備える。
 メモリモジュール122の各々は、メモリチップ1221と、メモリチップ1221におけるデータの読み書きを制御するメモリコントローラ1222を備える。メモリチップ1221は1つのメモリチップで構成されても、複数のメモリチップの集合体として構成されてもよい。メモリチップ1221は、例えばNAND型フラッシュメモリであり、メモリコントローラ1222はウェアレベリング、ガーベッジコレクション、エラー訂正等の既知の処理を行いつつ、メモリチップ1221に対するデータの読み書きを行う。
 以下の説明において、メモリチップ1221はNAND型フラッシュメモリであるものとするが、メモリチップ1221は過去にデータの書き込みが行われているメモリ領域に対し新たなデータの書き込みが行われる際に、当該新たなデータの書き込みに先んじて、当該メモリ領域のデータの消去等の前処理を行うことにより、当該新たなデータの書き込み速度を速めることができるメモリであれば、いずれの種別のメモリであってもよい。
 NAND型フラッシュメモリは、データの書き換えが繰り返されるに伴い、新たなデータの書き込み速度が低下することが知られている。これは、消去可能なデータが記憶されているページ(本願においてページとは、メモリにおけるデータの書き込み単位をいう)に対しデータの書き込みが行われる際、当該ページを含むブロック(本願においてブロックとは、メモリにおけるデータの消去単位をいう)のデータをデータが記憶されていない未使用ブロックにコピーする、という処理を要するためである。従って、データの書き込み要求に先んじて、複数のブロックに散在するデータを1つのブロックに集めた後、全てのデータが消去可能となったブロックのデータを消去する、という処理(ガーベッジコレクション)を前処理として行っておくことで、新たなデータの書き込み要求が生じた際、当該要求に応じたデータの書き込み速度を速めることができる。
 しかしながら、ガーベッジコレクションを行っても、メモリに何らかのデータが記憶されていると、新たなデータの書き込みにおいて、書き込み先のページを選択する処理等が伴うため、未使用のメモリにデータを書き込む場合と比べ、データの書き込み速度は遅くなる。これに対し、例えば1つのメモリコントローラにより管理されるメモリチップの全メモリ領域において、記憶されているデータを消去し、メモリチップを未使用の状態に戻す処理(サニタイズ)を前処理として行うことで、データ書き込み速度を最大化することができる。
 データ記憶装置12が備えるプロセッサ124は、メモリ123に記憶されているプログラムに従いメモリモジュール122のメモリコントローラ1222に望ましいタイミングでサニタイズの指示を与え、メモリコントローラ1222がプロセッサ124からの指示に従いメモリチップ1221に対するサニタイズを前処理として行うことにより、データ記憶装置12がデータ処理装置11から新たなデータの書き込み要求を受け取った場合、当該書き込み要求に応じたデータの書き込みが常時、最大速度で行われる。
 図2は、プロセッサ124とプロセッサ124からの指示に従い前処理を行うメモリコントローラ1222により実現されるメモリ管理装置120の機能構成を示した図である。すなわち、メモリ123に記憶されているプログラムに従いプロセッサ124がメモリコントローラ1222の処理を管理することにより、プロセッサ124およびメモリコントローラ1222は、図2に示す機能構成を備えるメモリ管理装置120として機能する。メモリ管理装置120は、メモリモジュール122が備えるメモリチップ1221を所定サイズに区分して得られる複数のバンクの中からデータの書き込み先のバンクの選択等を行う選択部1201と、選択部1201により前処理の対象として選択されたバンクに対し前処理(本実施形態においてはサニタイズ)を行う前処理部1202と、データ処理装置11からのデータの書き込み要求に応じて選択部1201によりデータの書き込み先として選択されたバンクにデータを書き込む書込部1203を備える。
 続いて、メモリ管理装置120が行う処理を説明する。図3A~図3Q(以下、図3A~図3Qを総称して図3という)は、メモリ管理装置120により複数のバンクの役割がデータの書き込みの進行に伴い切り替えられていく様子を示した図である。まず、図3Aは、データ記憶装置12に何もデータが記憶されていない状態のメモリチップ1221の状態を示している。図3に示す例では、データ記憶装置12が備えるメモリチップ1221が、バンクA~Lの計12のバンクに区分されている。これらのバンクのサイズは全て同じである。
 以下の説明において、データ記憶装置12が12個のメモリモジュール122、すなわち、メモリモジュール122-1~122-12を備え、メモリモジュール122-1が備えるメモリチップ1221をバンクA、メモリモジュール122-2が備えるメモリチップ1221をバンクB、・・・のように、各々のメモリモジュール122が備えるメモリチップ1221をバンクの単位とする。ただし、メモリコントローラ1222がメモリチップ1221よりも小さいメモリ領域の単位で前処理を行うことができる場合、1つのメモリチップ1221を複数に分割したメモリ領域の各々を1つのバンクとして扱う構成が採用されてもよい。また、複数のメモリチップ1221を1つのバンクとして扱う構成が採用されてもよい。
 データ記憶装置12が未使用の状態において、メモリ管理装置120の選択部1201は、まず、12個のバンクのうち、任意に8個のバンクをビジブルバンクとして選択する。ビジブルバンクとして選択されなかったバンクはインビジブルバンクとなる。図3Aにおいて上段に示されるバンクがビジブルバンクであり、下段に示されるバンクがインビジブルバンクである。
 1つのバンクの全領域にデータを書き込むために要する時間をaとし、1つのバンクに前処理を行うために要する時間をbとするとき、選択部1201は、インビジブルバンクの数が(b/a+1)以上の数となるようにビジブルバンク(2以上)の選択を行う。以下、例として、1つのバンクの全領域にデータを書き込むために要する時間aを10分とし、1つのバンクに前処理を行うために要する時間bを30分とする。この例の場合、(b/a+1)=4となり、選択部1201はインビジブルバンクの数が4以上となるように、ビジブルバンクとして8以下のバンクを選択する。従って、以下の説明において、選択部1201はビジブルバンクを8個選択するものとするが、選択部1201により選択されるビジブルバンクの数は1~8個のいずれであってもよい。ただし、データ記憶装置12に記憶可能なデータ量の観点からは、ビジブルバンクの数は多い方が望ましい。
 ビジブルバンクは、データ処理装置11から認識されるバンクである。8個のビジブルバンクのメモリ領域は、例えば連続する1つの論理アドレス空間に配置され、データ記憶装置12はデータ処理装置11からのデータの書き込み要求に応じてデータの書き込みを行った場合、当該データの書き込み先の論理アドレスおよびデータサイズをデータ処理装置11に通知する。なお、データ記憶装置12は論理アドレスと物理アドレスの変換を行い、データ処理装置11には論理アドレスが通知される。データ処理装置11はデータ記憶装置12から通知された論理アドレスとデータサイズを指定することで、データ記憶装置12に記憶されているデータの読み出し要求を行うことができる。
 一方、インビジブルバンクは、データ処理装置11から認識されないバンクである。図3Aの状態(初期状態)において、4つのインビジブルバンクは全て、前処理が完了している状態である。すなわち、いずれのインビジブルバンクもサニタイズされ、データが全て消去されている。図3において、インビジブルバンク(以下に述べるシャドーバンクを除く)の各々の上の(  )内の分数は、前処理の進行度を示す。例えば図3Aにおいて、バンクI~バンクLの各々の上に示される(30/30)は、これらのバンクの前処理が、所要時間30分に対し、30分の分だけ終了している(すなわち、完了している)ことを意味する。
 選択部1201は、8つのビジブルバンクのうち1つをアクティブバンクとして選択する。以下、選択部1201は8つのビジブルバンクの中から、バンクの記号(A~L)の順番に従ってアクティブバンクを順次選択するものとする。この場合、バンクAがアクティブバンクとして選択される。なお、選択部1201がアクティブバンクを選択する規則はこれに限られず、例えばビジブルバンクの中からランダムに1つがアクティブバンクとして選択されてもよい。アクティブバンクは、データ記憶装置12がデータ処理装置11からデータの書き込み要求を受け取った場合、当該要求に応じてデータの書き込みを行う論理アドレス空間の割り当てられたバンクである。
 続いて、選択部1201は、4つのインビジブルバンクのうち前処理が完了しているインビジブルバンクの中から1つをシャドーバンクとして選択する。図3Aの状態においてはバンクI~Lの全てに関し前処理が完了している。このように複数のインビジブルバンクに関し前処理が完了している場合、選択部1201は、バンクの記号(A~L)の順番に従ってシャドーバンクを選択するものとする。この場合、バンクIがシャドーバンクとして選択される。なお、選択部1201がシャドーバンクを選択する規則はこれに限られず、例えばインビジブルバンクの中からランダムに1つがシャドーバンクとして選択されてもよい。
 シャドーバンクは、アクティブバンクと対をなし、アクティブバンクと論理アドレス空間を共有するバンクである。すなわち、アクティブバンクとシャドーバンクは、メモリ管理装置120において異なる物理アドレスにより区別されるメモリ領域であるが、同じ論理アドレスが割り当てられたメモリ領域であり、データ処理装置11からデータ記憶装置12に対し通知される論理アドレスにおいては、アクティブバンクとシャドーバンクは区別されない。
 メモリ管理装置120は、データ記憶装置12からデータの書き込み要求を受け取った場合、当該要求に応じたデータの書き込みをシャドーバンクに対し行う。データ記憶装置12はデータ処理装置11に対しデータの書き込み先の論理アドレスを通知するが、データ処理装置11は通知されたアドレスからデータがアクティブバンク(ビジブルバンクの1つ)に書き込まれたのか、シャドーバンク(インビジブルバンクの1つ)に書き込まれたのかを感知しない。
 図3Bは、選択部1201によるアクティブバンクとシャドーバンクの選択が完了した直後の状態を示している。図3B~図3Qにおいて、太枠で示されるバンクがアクティブバンクであり、アクティブバンクの下に示されるバンクがシャドーバンクである。
 図3Bの状態で、データ記憶装置12はデータ処理装置11からのデータの読み書きの要求に応じることができる。以下の説明において、データ処理装置11がデータ記憶装置12に対し、60分に渡る動画データの書き込みを連続して要求してくる場合を例として、データ記憶装置12において動画データが書き込まれる様子を説明する。
 メモリ管理装置120は、動画データの書き込み要求に応じて、シャドーバンク(バンクI)に動画データを書き込んでゆく。図3Cは、動画データの書き込み開始から5分が経過した時点のデータ記憶装置12の状態を示している。既述のように、動画データはシャドーバンクに書き込まれてゆく。図3C(図3D~図3Qにおいても同様)において、シャドーバンク(バンクI)の斜線の付された部分は、動画データが書き込まれているメモリ領域を模式的に示している。実際には、メモリコントローラ1222によるウェアレベリング等が行われ、動画データが書き込まれる位置は物理アドレスの順序に従わなくてもよい。また、図3C(図3D~図3Qにおいても同様)において、アクティブバンク(バンクA)の網掛けの付された部分は、シャドーバンクの動画データが書き込まれた領域に対応する領域(同じ論理アドレス空間)である。この網掛けの付された部分は、データ処理装置11には動画データが新たに書き込まれた領域として認識される。
 図3Cにおいて、アクティブバンク(バンクA)の斜線の付された部分は、シャドーバンク(バンクI)において動画データが書き込まれたメモリ領域と同じ論理アドレスで識別されるアクティブバンク(バンクA)メモリ領域を模式的に示している。アクティブバンクの斜線の付された部分には、実際には動画データの書き込みは行われていないが、データ処理装置11からは、データ記憶装置12からの通知により、斜線の付されたメモリ領域に動画データが記憶されていると認識される。
 図3Dは、動画データの書き込み開始から10分が経過した時点のデータ記憶装置12の状態を示している。この時点で、バンクIにはこれ以上、動画データを書き込むことができなくなる。そこで、選択部1201は、ビジブルバンクの中から新たなアクティブバンクを選択する。この場合、バンクBが新たなアクティブバンクとなる。そして、選択部1201は、新たなアクティブバンクの選択に伴い、インビジブルバンクのうち前処理が完了しているものの中から新たなシャドーバックを選択する。この場合、バンクJが新たなシャドーバンクとなる。すなわち、選択部1201はバンクJにバンクBと同じ論理アドレスのアドレス空間を割り当てる。
 同時に、選択部1201は、それまでシャドーバンクであったバンクIを対となるバンクAと入れ替えてビジブルバンクとし、それまでアクティブバンクであったバンクAをインビジブルバンクとする。すなわち、選択部1201はバンクAに対する論理アドレスのアドレス空間の割り当てを解除する。前処理部1202は、新たにインビジブルバンクとなったバンクAに対し前処理を開始する。図3Eは、選択部1201によるこれらのバンク間の切り替えが完了した状態を示している。
 図3Eの状態で、新たなシャドーバンクであるバンクJに対し動画データの書き込みが開始される。同時に、バンクIに記憶されている動画データの読み出しや削除が許可される。動画データの書き込みはバンクJに対し行われているため、バンクIからデータの読み出しやバンクIに記憶されているデータの削除が行われても、動画データの書き込み速度は影響を受けないためである。
 メモリ管理装置120は、その後、上述した手順に従い、順次、バンク間の切り替えを行いつつ、インビジブルバンクに対する前処理を行う。図3Fは、動画データの書き込み開始から15分が経過した時点のデータ記憶装置12の状態、図3Gは、動画データの書き込み開始から20分が経過しバンク間の切り替えが行われる前のデータ記憶装置12の状態、図3Hは、動画データの書き込み開始から20分が経過しバンク間の切り替えが行われた後のデータ記憶装置12の状態を示している。
 図3Iは、動画データの書き込み開始から25分が経過した時点のデータ記憶装置12の状態、図3Jは、動画データの書き込み開始から30分が経過しバンク間の切り替えが行われる前のデータ記憶装置12の状態、図3Kは、動画データの書き込み開始から30分が経過しバンク間の切り替えが行われた後のデータ記憶装置12の状態を示している。
 図3Lは、動画データの書き込み開始から35分が経過した時点のデータ記憶装置12の状態、図3Mは、動画データの書き込み開始から40分が経過しバンク間の切り替えが行われる前のデータ記憶装置12の状態、図3Nは、動画データの書き込み開始から40分が経過しバンク間の切り替えが行われた後のデータ記憶装置12の状態を示している。
 図3Mに示されるように、動画データの書き込み開始から40分が経過した時点で、前処理部1202によるバンクAに対する前処理が完了する。そして、図3Nに示されるように、選択部1201により、前処理の完了したバンクAが新たなシャドーバンクとして選択される。
 この例では、インビジブルバンク(シャドーバンクを含む)の数が4個であるため、バンク間の切り替えの時点において前処理の完了しているインビジブルバンクは1つしかなく、選択部1201はそのバンクを新たなシャドーバンクとして選択する。インビジブルバンク(シャドーバンクを含む)の数が5個以上である場合、バンク間の切り替えの時点において前処理の完了しているインビジブルバンクは2以上あるため、選択部1201はそれらのインビジブルバンクの中からバンクの記号(A~L)の順番に従ってシャドーバンクを選択する。ただし、既述のように、前処理の完了しているインビジブルバンクの中からシャドーバンクが選択される規則はこれに限られず、例えばランダムにシャドーバンクの選択が行われてもよい。
 図3Oは、動画データの書き込み開始から45分が経過した時点のデータ記憶装置12の状態、図3Pは、動画データの書き込み開始から50分が経過しバンク間の切り替えが行われる前のデータ記憶装置12の状態、図3Qは、動画データの書き込み開始から50分が経過しバンク間の切り替えが行われた後のデータ記憶装置12の状態を示している。メモリ管理装置120は、その後も、上述した手順に従い、順次、バンク間の切り替えを行いつつ、インビジブルバンクに対する前処理を行う。
 図4は、データ処理装置11からの動画データの書き込み要求が複数回に渡り行われ、複数の動画データがデータ記憶装置12に記憶されている状態を例示している。図4の例では、バンクLからバンクBに動画データD1が記憶され、バンクBからバンクDに動画データD2が記憶され、バンクDからバンクEに動画データD3が記憶されている。そして、バンクEからバンクLに動画データD4が記憶され、現在、バンクLと対をなすシャドーバンクであるバンクHに対する動画データD4の書き込みが進行している。
 図4の状態において、書き込み中でない動画データD1、D2、D3の読み出しや削除を行うことが許可される。従って、例えばデータ処理装置11のユーザは、動画データD4の記録中に動画データD1、D2、D3を他のデータ処理装置にコピーした後、それらのデータを削除する、という操作が可能となる。例えば、動画データD1が読み出されたり削除されたりする場合、バンクLに対するデータのアクセスが発生するが、データの書き込みはバンクHに対し行われているため、データの書き込み速度が影響を受けることはない。
 また、図4の状態において、記録中の動画データD4のうち、データが書き込まれているバンクL以外のバンク(バンクEからバンクG)に記憶されている部分の読み出しも許可される。従って、例えばデータ処理装置11のユーザは、動画データD4の記録中に、動画データD4が示す動画を先頭や途中から再生する、といった操作も可能である。この場合、データのアクセスが発生するのはバンクEからバンクGであり、バンクHに対し行われているデータの書き込み速度が影響を受けることはない。
 上述したように、データ記憶システム1において、書き込み要求に応じたデータの書き込みは常に前処理の完了したシャドーバンクに対し行われ、データの書き込みが行われている間、シャドーバンクに記憶されているデータの読み込みや削除等が行われることはない。従って、所定値以上のデータの書き込み速度が保証され、所定のビットレート以下で入力されるデータの欠落が生じることはない。
[変形例]
 上述した実施形態は本発明の技術的思想の範囲内において様々に変形可能である。以下にそれらの変形の例を示す。なお、上述した実施形態および以下に示す変形例のうちの2以上が適宜組み合わせられてもよい。
(1)上述した実施形態において、データ記憶装置12の前処理部1202は、インビジブルバンクとなったバンクに対し常に前処理を行う。前処理を行わなくても所定速度以上の速度でデータの書き込みが可能なインビジブルバンクに関しては、前処理部1202が前処理を行わない構成が採用されてもよい。以下、この変形例を第1変形例という。
 図5は、第1変形例におけるデータ記憶装置12のメモリ管理装置120の構成を示した図である。第1変形例において、メモリ管理装置120は選択部1201、前処理部1202、および書込部1203に加え、速度特定部1204を備える。速度特定部1204は、選択部1201により新たにインビジブルバンクとして選択されたバンクに関し、前処理部1202による前処理に先んじて、データの書き込み速度を特定する。
 速度特定部1204がインビジブルバンクに対するデータの書き込み速度を特定する方法としては、例えば、ダミーデータをインビジブルバンクに書き込み、その際の書き込み速度を測定する方法や、インビジブルバンクに対し最後に前処理が行われた後にデータが書き換えられた回数を記録しておき、その回数に基づき所定の算定式等に従い書き込み速度を推定する方法など、いずれが採用されてもよい。
 前処理部1202は、選択部1201により新たにインビジブルバンクとして選択されたバンクに関し、速度特定部1204により特定されたデータの書き込み速度が所定の閾値より速い場合、そのインビジブルバンクに関しては前処理を行わず、速度特定部1204により特定されたデータの書き込み速度が所定の閾値以下である場合に限り、前処理を行う。
 メモリチップ1221が例えばNAND型フラッシュメモリである場合、メモリチップ1221に対するデータの書き換えが繰り返されるに伴い、メモリチップ1221に対するデータの書き込み速度が低下する。メモリチップ1221に対しサニタイズが行われると、メモリチップ1221に対するデータの書き込み速度は速くなる。ただし、メモリチップ1221のデータ書き換え回数には上限があり、サニタイズはデータ書き換え回数を増やすので、メモリチップ1221の寿命の観点からはサニタイズを行う回数は必要最低限であることが望ましい。また、サニタイズを行うためにメモリモジュール122は電力を消費する。従って、電力消費量の観点からもサニタイズを行う回数は必要最低限であることが望ましい。サニタイズに限らず、ガーベッジコレクション等の他の種別の前処理に関しても、多くの場合、同様の理由で実行回数は必要最低限であることが望ましい。
 第1変形例によれば、データの書き込み速度の保証の観点から、インビジブルバンクに対する前処理が必要な場合に限り前処理が行われるため、メモリの寿命や電力消費量等の観点から望ましい。
(2)上述した実施形態においては、アクティブバンクに記憶されているデータは当該アクティブバンクと対をなすシャドーバンクに対するデータの書き込みが完了し、バンク間の切り替えが行われる際、破棄される。すなわち、アクティブバンクに記憶されているデータは、バンク間の切り替えに先んじて他のバンクにコピーされることはなく、アクティブバンクがバンク間の切り替えによってインビジブルバンクとなると、当該バンクに対する論理アドレス空間の割り当てが解除されるため、当該バンクに記憶されていたデータがその後、利用されることはない。従って、バンク単位で新たなデータにより古いデータが全て上書きされることになる。
 上述した実施形態におけるデータ記憶システム1による場合、新たなバンクに対する新しいデータの書き込みに先んじて、同じバンクに記憶されている古いデータの削除が行われる必要がある。これに代えて、バンクに既に記憶されているデータを保持しつつ、新たなデータを同じバンクに書き込み可能な構成が採用されてもよい。以下、この変形例を第2変形例という。
 図6Aおよび図6Bは、第2変形例においてデータ記憶装置12にデータが書き込まれていく様子を例示した図である。第2変形例において、前処理部1202は、インビジブルバンクに対するサニタイズと、将来、アクティブバンクとなる予定のビジブルバンクと対をなすシャドーバンクに対するアクティブバンクのデータのコピーとを前処理として行う。なお、アクティブバンクからシャドーバンクへのデータのコピーにおいて、ガーベッジコレクションが併せて行われる。
 図6Aの状態において、バンクBがアクティブバンクである。アクティブバンクであるバンクBに加え、次にアクティブバンクとなる予定のバンクCと、さらにその次にアクティブバンクとなる予定のバンクDにも、既にシャドーバンクが選択されている。例えば、バンクDと対をなすシャドーバンク(バンクJ)は、バンクBが新たなアクティブバンクとして選択されたタイミングで、サニタイズが完了しているインビジブルバンクの中から選択されたものである。
 図6Aの状態において、アクティブバンクであるバンクBと対をなすシャドーバンクのバンクHに新たなデータの書き込みが行われる間、前処理部1202は、サニタイズが完了していないインビジブルバンクであるバンクKとバンクAに対するサニタイズを行う。それと同時に、前処理部1202は、バンクCに記憶されているデータをバンクIに、バンクDに記憶されているデータをバンクJに、各々コピーする。
 その後、バンクHに対するデータの書き込みが完了すると、選択部1201はアクティブバンクをバンクBからバンクCに切り替え、バンクBをインビジブルバンクにするとともにバンクHをバンクBに替わるビジブルバンクとし、その時点でサニタイズが完了しているバンクKをバンクEと対をなすシャドーバンクとして選択する。なお、バンクCからバンクIへのデータのコピーは、これらのバンク間の切り替え前に完了している。図6Bは、これらのバンク間の切り替えが完了した状態を示している。
 図6Bの状態において、アクティブバンクであるバンクCと対をなすシャドーバンクのバンクIに新たなデータの書き込みが行われる間、前処理部1202は、サニタイズが完了していないインビジブルバンクであるバンクAとバンクBに対するサニタイズを行う。それと同時に、前処理部1202は、バンクDに記憶されているデータをバンクJに、バンクEに記憶されているデータをバンクKに、各々コピーする。
 上記の手順に従い、選択部1201によるバンクの選択と前処理部1202による前処理が行われる結果、第2変形例においては、新たなデータの書き込み先のバンクに過去に記憶されたデータがバンク間の切り替えに伴い破棄されることがない。
 第2変形例においては、上記のように、新たなデータがバンクに書き込まれる際に、既にそのバンクの一部領域には過去に記憶されているデータが記憶されている。従って、データ記憶装置12に記憶されているデータの量が増加するに伴い、アクティブバンクと対をなすシャドーバンクへ新たに書き込み可能なデータ量は減少し、アクティブバンクの切り替えの間隔が短くなる。また、データ記憶装置12に記憶されているデータの量が増加するに伴い、ビジブルバンクからシャドーバンクへのデータのコピーに要する時間が長くなる。
 従って、データ記憶装置12に記憶されているデータの量がある程度の量に達すると、前処理部1202によるサニタイズやデータのコピーがバンク間の切り替えのタイミングまでに間に合わない状況が生じる。そこで、第2変形例において、データ記憶装置12は、前処理部1202による前処理が間に合わない状況に陥る前に、データ処理装置11に対しユーザに対する通知を指示する。
 図7は、第2変形例におけるデータ記憶装置12のメモリ管理装置120の構成を示した図である。第2変形例において、メモリ管理装置120は選択部1201、前処理部1202、および書込部1203に加え、所要時間推定部1205と、通知指示部1206を備える。
 所要時間推定部1205は、アクティブバンクと対をなすシャドーバンクに対するデータの書き込みに要する時間と、前処理部1202がインビジブルバンクに対し前処理を行うために要する時間を推定する。所要時間推定部1205がこれらの時間を推定する方法としては、例えば、過去にそれらのバンクに対しデータの書き込みや前処理を行った際の所要時間の時系列変化を記録しておき、その時系列変化に基づき将来の所要時間を推定する方法や、それらのバンクに記憶されているデータの量に基づき推定する方法など、いずれが採用されてもよい。
 通知指示部1206は、所要時間推定部1205により推定された時間が、バンク間の切り替えまでに前処理が完了しない状況を示す所定の条件を満たす場合、データ処理装置11に対し、ユーザに対する通知を指示する指示データを出力する。データ処理装置11は、この指示データに従い、ユーザに対し、例えば不要なデータの削除を促すとともに、データの削除が行われなければデータの書き込み速度が保証されずデータの欠落が生じる可能性がある旨の警告メッセージを表示する。
 通知指示部1206は、例えば、アクティブバンクと対をなすシャドーバンクに対するデータの書き込みに要する時間(所要時間推定部1205による推定値)をaとし、1つのインビジブルバンクにサニタイズを行うために要する時間をbとし、インビジブルバンクの数をxとするとき、b/(x-1)>a-αとなれば、サニタイズに要する時間が確保できなくなる危険性が高い、と判定して指示データの出力を行う。ただし、αはサニタイズに要する時間が確保できなくなる前に通知を行うためのマージン値である。
 また、通知指示部1206は、例えば、アクティブバンクと対をなすシャドーバンクに対するデータの書き込みに要する時間(所要時間推定部1205による推定値)をaとし、アクティブバンクと対をなすシャドーバンクに対するデータの書き込み中にビジブルバンクからデータをコピーするシャドーバンクの数をyとし、これらのシャドーバンクの各々に対するデータのコピーに要する時間(所要時間推定部1205による推定値)をcとするとき、c/y>a-βとなれば、データのコピーに要する時間が確保できなくなる危険性が高い、と判定して指示データの出力を行う。ただし、βはデータのコピーに要する時間が確保できなくなる前に通知を行うためのマージン値である。
 第2変形例によれば、新しいデータの書き込みに伴い同じバンクに記憶されている古いデータを削除しなくてもよい。ただし、既に記憶されているデータの量の増加に伴い、新たなデータの書き込み速度が保証されなくなる場合がある。そのような状況が生じる前にユーザに対し通知が行われるため、ユーザは通知に応じて不要なデータを削除する等の対応を行うことで、必要なデータの書き込み速度を確保することができる。
 上述した第2変形例においては、近々アクティブバンクになるビジブルバンクに記憶されているデータは、それらのビジブルバンクと対をなすシャドーバンク(サニタイズを終えたインビジブルバンク)にコピーされる。これに代えて、もしくは加えて、当座はアクティブバンクにならない他のビジブルバンクに対しデータのコピーが行われてもよい。例えば、データのコピー先のバンクを複数に分散することで、データのコピーに要する時間を短縮することができる。
(3)上述した実施形態および変形例において示したバンクの数や判定の条件等はあくまで例示であって、他の数や判定の条件等が採用されてもよい。
(4)上述した実施形態および第1変形例においては前処理としてサニタイズが行われ、第2変形例においてはサニタイズとデータのコピーが行われるものとした。前処理部1202により行われる前処理はこれらに限られず、データの書き込みに先んじてメモリに対し行うことで当該メモリに対するデータの書き込み速度を向上することができる処理であれば、例えばガーベッジコレクション等の他の種別の処理が前処理部1202により前処理として行われてもよい。また、前処理の種別はメモリチップ1221の種別によっても異なり得る。
(5)上述した実施形態においては、データ記憶装置12がメモリ管理装置120の全ての構成部を備える。これに代えて、データ記憶装置12に接続される外部の装置、例えばデータ処理装置11がメモリ管理装置120の構成部の一部を備える構成が採用されてもよい。例えば、メモリ管理装置120が備える選択部1201をデータ処理装置11が備える構成が採用されてもよい。この場合、データ処理装置11はメモリ111に記憶されるプログラムに従い、データ記憶装置12に対しバンク間の切り替えを指示することになる。
(6)上述した実施形態においては、データ記憶装置12はメモリモジュール122の各々においてメモリチップ1221を制御するメモリコントローラ1222と、メモリ123に記憶されているプログラムに従い、複数のメモリモジュール122の各々のメモリコントローラ1222に対しバンク切り替え等の指示を行うプロセッサ124を備える。これに代えて、プロセッサ124がメモリモジュール122の役割を兼ねる構成が採用されてもよい。
(7)上述した実施形態においては、メモリ管理装置120はメモリ123に記憶されるプログラムに従うプロセッサ124の処理により実現される。これに代えて、例えば論理集積回路等の専用のハードウェアによりメモリ管理装置120が実現されてもよい。
1…データ記憶システム、11…データ処理装置、12…データ記憶装置、111…メモリ、112…プロセッサ、113…インタフェース、120…メモリ管理装置、121…インタフェース、122…メモリモジュール、123…メモリ、124…プロセッサ、1201…選択部、1202…前処理部、1203…書込部、1204…速度特定部、1205…所要時間推定部、1206…通知指示部、1221…メモリチップ、1222…メモリコントローラ

Claims (7)

  1.  データの書き込みに先んじて前処理を行うことによりデータの書き込み速度を速めることができるメモリを管理するメモリ管理装置が、
     前記メモリを構成する所定サイズの複数のバンクのうちの所定数の複数のバンクをビジブルバンクとして選択するとともに、前記複数のバンクのうちビジブルバンクとして選択されていない複数のバンクをインビジブルバンクとし、
     前記複数のインビジブルバンクの各々に前記前処理を行い、
     前記複数のビジブルバンクの中から1つのバンクをアクティブバンクとして選択するとともに、前記複数のインビジブルバンクのうち前記前処理が完了しているインビジブルバンクの中から1つのバンクを前記アクティブバンクと論理アドレス空間を共有するシャドーバンクとして選択し、
     データの書き込み要求に応じて前記シャドーバンクにデータを書き込み、
     新たなアクティブバンクの選択に伴い、当該選択の時点までアクティブバンクであったバンクをインビジブルバンクとし、当該選択の時点までシャドーバンクであったバンクをビジブルバンクとする
     メモリ管理方法。
  2.  前記メモリ管理装置は、前記前処理が完了した1つのバンクに最大量のデータを書き込むために要する時間をaとし、1つのバンクに前記前処理を行うために要する時間をbとするとき、インビジブルバンクの数が(b/a+1)以上となるように、前記所定数のビジブルバンクの選択を行う
     請求項1に記載のメモリ管理方法。
  3.  前記メモリは、前記前処理が行われることなくデータの書き換えが行われる程、データの書き込み速度が低下し、
     前記メモリ管理装置は、前記複数のインビジブルバンクの各々に関し、前記前処理に先んじて当該インビジブルバンクのデータの書き込み速度を特定し、当該特定した書き込み速度が所定の閾値より速い場合、当該インビジブルバンクに関する前記前処理を行わない
     請求項1または2に記載のメモリ管理方法。
  4.  前記前処理は、前記アクティブバンクに記憶されているデータを前記シャドーバンクへコピーする処理を含む
     請求項1乃至3のいずれか1項に記載のメモリ管理方法。
  5.  前記メモリ管理装置は、前記シャドーバンクにデータを書き込むために要する第1の時間と、前記前処理に要する第2の時間とを推定し、前記第1の時間と前記第2の時間が所定の条件を満たす場合、通知装置に通知を指示する
     請求項1乃至4のいずれか1項に記載のメモリ管理方法。
  6.  データの書き込みに先んじて前処理を行うことによりデータの書き込み速度を速めることができるメモリを管理するメモリ管理装置が備えるプロセッサに、
     前記メモリを構成する所定サイズの複数のバンクのうちの所定数の複数のバンクをビジブルバンクとして選択するとともに、前記複数のバンクのうちビジブルバンクとして選択されていない複数のバンクをインビジブルバンクとする処理と、
     前記複数のインビジブルバンクの各々に前記前処理を行う処理と、
     前記複数のビジブルバンクの中から1つのバンクをアクティブバンクとして選択するとともに、前記複数のインビジブルバンクのうち前記前処理が完了しているインビジブルバンクの中から1つのバンクを前記アクティブバンクと論理アドレス空間を共有するシャドーバンクとして選択する処理と、
     データの書き込み要求に応じて前記シャドーバンクにデータを書き込む処理と、
     新たなアクティブバンクの選択に伴い、当該選択の時点までアクティブバンクであったバンクをインビジブルバンクとし、当該選択の時点までシャドーバンクであったバンクをビジブルバンクとする処理と
     を実行させるためのプログラム。
  7.  データの書き込みに先んじて前処理を行うことによりデータの書き込み速度を速めることができるメモリを管理するメモリ管理装置であって、
     前記メモリを構成する所定サイズの複数のバンクのうちの所定数の複数のバンクをビジブルバンクとして選択するとともに、前記複数のバンクのうちビジブルバンクとして選択されていない複数のバンクをインビジブルバンクとする選択部と、
     前記複数のインビジブルバンクの各々に前記前処理を行う前処理部と、
     を備え、
     前記選択部は、前記複数のビジブルバンクの中から1つのバンクをアクティブバンクとして選択するとともに、前記複数のインビジブルバンクのうち前記前処理が完了しているインビジブルバンクの中から1つのバンクを前記アクティブバンクと論理アドレス空間を共有するシャドーバンクとして選択し、
     データの書き込み要求に応じて前記シャドーバンクにデータを書き込む書込部を備え、
     前記選択部は、新たなアクティブバンクの選択に伴い、当該選択の時点までアクティブバンクであったバンクをインビジブルバンクとし、当該選択の時点までシャドーバンクであったバンクをビジブルバンクとする
     メモリ管理装置。
PCT/JP2014/079826 2014-06-16 2014-11-11 メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置 WO2015194063A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014123473A JP2017138636A (ja) 2014-06-16 2014-06-16 メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置
JP2014-123473 2014-06-16

Publications (1)

Publication Number Publication Date
WO2015194063A1 true WO2015194063A1 (ja) 2015-12-23

Family

ID=54935086

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/079826 WO2015194063A1 (ja) 2014-06-16 2014-11-11 メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置

Country Status (2)

Country Link
JP (1) JP2017138636A (ja)
WO (1) WO2015194063A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017228078A (ja) * 2016-06-22 2017-12-28 富士通株式会社 ストレージ装置、ストレージ制御装置、及びストレージ制御プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773690A (ja) * 1993-06-30 1995-03-17 Sharp Corp Eepromを使用した記録装置
JPH07137696A (ja) * 1993-11-15 1995-05-30 Kokusai Electric Co Ltd ボイスフライトデータレコーダ

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773690A (ja) * 1993-06-30 1995-03-17 Sharp Corp Eepromを使用した記録装置
JPH07137696A (ja) * 1993-11-15 1995-05-30 Kokusai Electric Co Ltd ボイスフライトデータレコーダ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017228078A (ja) * 2016-06-22 2017-12-28 富士通株式会社 ストレージ装置、ストレージ制御装置、及びストレージ制御プログラム

Also Published As

Publication number Publication date
JP2017138636A (ja) 2017-08-10

Similar Documents

Publication Publication Date Title
US9177670B1 (en) Method and apparatus for flash cache management
US11704239B2 (en) Garbage collection method for storage medium, storage medium, and program product
CN101673226B (zh) Nand错误管理
KR101686376B1 (ko) 메모리 시스템에서의 소거 관리
US20120246388A1 (en) Memory system, nonvolatile storage device, control method, and medium
TW201802683A (zh) 用於資料儲存裝置的損耗平均方法
KR20080085574A (ko) 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법
CN103197899A (zh) 增强基于闪存的存储的寿命和性能
JP2007004234A (ja) ストレージ装置
JP6455900B2 (ja) ストレージシステムおよびシステムガベージコレクション方法
JP6167646B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
JP5570406B2 (ja) メモリコントローラ、及びデータ記録装置
KR102304130B1 (ko) 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
US20130304972A1 (en) Control device, storage device, and storage control method
CN110389712B (zh) 数据写入方法及其装置、固态硬盘和计算机可读存储介质
US20120151166A1 (en) Nonvolatile storage device and memory controller
JP4966418B1 (ja) 情報処理装置及び書き込み制御方法
US9304906B2 (en) Memory system, controller and control method of memory
TW202238369A (zh) 在快閃記憶體中進行耗損平衡操作的方法和相關控制器以及儲存系統
JP2010237907A (ja) ストレージ装置および記録方法
WO2015194063A1 (ja) メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置
CN110286848B (zh) 数据处理方法及装置
US9501414B2 (en) Storage control device and storage control method for cache processing according to time zones
TWI417889B (zh) 快閃記憶體之寫入逾時控制方法及其記憶裝置
CN103389943A (zh) 控制装置、存储装置及存储控制方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14895467

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 14895467

Country of ref document: EP

Kind code of ref document: A1