WO2016056290A1 - メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法 - Google Patents

メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法 Download PDF

Info

Publication number
WO2016056290A1
WO2016056290A1 PCT/JP2015/070798 JP2015070798W WO2016056290A1 WO 2016056290 A1 WO2016056290 A1 WO 2016056290A1 JP 2015070798 W JP2015070798 W JP 2015070798W WO 2016056290 A1 WO2016056290 A1 WO 2016056290A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
address
page
substitution
management table
Prior art date
Application number
PCT/JP2015/070798
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 WO2016056290A1 publication Critical patent/WO2016056290A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Definitions

  • This technology relates to a memory controller that controls a storage device.
  • the present invention relates to a memory controller, a memory system, a storage device, an information processing system, and a storage control method that control a storage device that manages a memory area for each block composed of a plurality of pages.
  • NAND flash memory As a non-volatile memory generally used.
  • This NAND flash memory can be read in page units.
  • the erased page can be written in page units, but the page cannot be overwritten, and can be erased only in block units composed of a plurality of pages. Therefore, when rewriting, a portion of the block that is not rewritten is read and held separately, and the entire block is erased before the rewritten data and the other held data are written back to the entire block. This process is required.
  • the NAND flash memory has a limit on the number of rewrites.
  • Information is written into the NAND flash memory by injecting electrons into the floating gate by the quantum tunnel effect.
  • electrons are trapped in the insulating layer, which is a tunnel oxide film, and the insulating performance of the tunnel oxide film is deteriorated.
  • writing cannot be performed, and the memory cell reaches the end of its life.
  • the life of a memory cell of a NAND flash memory is reached by about 3000 to 10,000 write or erase cycles.
  • This technology has been created in view of such a situation, and an object thereof is to perform page-by-page substitution processing without increasing memory management information.
  • the present technology has been made to solve the above-described problems.
  • the first aspect of the present technology replaces a storage device that manages a memory area for each block composed of a plurality of pages in units of pages in the blocks.
  • a memory controller a memory system, an information processing system, and a storage control method therefor. This brings about the effect that the substitution processing for each page is performed without increasing the memory management information.
  • the block management table for storing the physical block address of the storage device and replacement information indicating the presence / absence of replacement corresponding to the logical block address, and the page address and replacement page for the block indicating replacement An alternative management table that stores a correspondence relationship with the address, and the control unit refers to the block management table to obtain the physical block address corresponding to the logical block address to be accessed;
  • substitution information corresponding to the logical block address to be accessed indicates that there is substitution
  • the substitution page address corresponding to the page address to be accessed is acquired and the instruction is given to the storage device You may do it. Accordingly, there is an effect that the substitution process in units of pages is performed when the substitution information indicates that there is substitution.
  • the substitution management table may store the substitution page address defined in a different storage space for each block. This brings about the effect of reducing the search cost of the corresponding alternative management table.
  • the substitution management table may store the substitution page address defined in a storage space common to the blocks. As a result, even when the pages to be replaced are concentrated on a specific block, the replacement page is prevented from being exhausted.
  • a second aspect of the present technology includes a physical block memory array that stores data for each block composed of a plurality of pages, and an alternative page memory array that stores an alternative page in units of pages in the block,
  • the storage device accesses the substitute page in units of pages in the block in response to a substitute instruction. This brings about the effect that the substitution process in units of pages is performed in accordance with the substitution instruction while data is stored in the physical block memory array for each block.
  • FIG. 1 is a diagram illustrating an example of an overall configuration of an information processing system according to an embodiment of the present technology.
  • This information processing system includes a host computer 100 and a memory system 400.
  • the memory system 400 includes a storage device 300 and a memory controller 200.
  • the host computer 100 is a device that executes each process in the information processing system.
  • the storage device 300 is a memory that stores data necessary for processing of the host computer 100.
  • the memory controller 200 is connected between the host computer 100 and the storage device 300 and is a device that controls the storage device 300 in response to a request from the host computer 100.
  • the storage device 300 is a memory that can be written, read, and erased in units of pages, and in particular, a resistance change memory, a phase change memory, and the like are assumed.
  • a resistance change memory for example, ReRAM (Resistive RAM), CBRAM (Conductive Bridge RAM) and the like are known.
  • CBRAM Conductive Bridge RAM
  • PCM Phase Change Memory
  • the memory controller 200 includes a processing unit 210, a storage unit 220, an ECC processing unit 230, a host interface 280, and a memory interface 290.
  • the processing unit 210 is a processing device that executes various processes in the memory controller 200.
  • the storage unit 220 is a memory that stores a program executed in the processing unit 210 and a work area and parameters necessary for the execution.
  • the storage unit 220 may be configured by two types of memories, a program storage ROM and a work area RAM. Further, the memory may be only the RAM, and the program may be loaded from the storage device 300 to the RAM at the time of startup and executed on the RAM.
  • the ECC processing unit 230 performs processing related to an error correction code stored in the storage device 300.
  • the ECC processing unit 230 includes a function for generating an error correction code and a function for performing error correction from data read from the storage device 300 and the error correction code.
  • the host interface 280 is an interface circuit that performs communication with the host computer 100.
  • the memory interface 290 is an interface circuit that exchanges data with the storage device 300.
  • FIG. 2 is a diagram illustrating a configuration example of the block management table 221 and the alternative management table 222 according to the embodiment of the present technology.
  • the block management table 221 and the alternative management table 222 are management information used in the memory controller 200 and are stored in the storage unit 220.
  • the storage device 300 is composed of pages having a predetermined size, and an address (page address) is given in units of pages.
  • the storage device 300 is managed in units of blocks composed of a plurality of pages.
  • a physical block in the storage device 300 is referred to as a physical block, and a page included in the physical block is particularly referred to as a physical block page.
  • substitution processing is performed in units of pages.
  • a page that replaces the physical block page in this case is referred to as a replacement page.
  • the address (read address or write address) to be accessed included in the command issued from the host computer 100 is a logical address, and its upper address part is a logical block address.
  • the storage device 300 is managed by physical blocks as described above, conversion from a logical block address to a physical block address is required.
  • the block management table 221 is used for address conversion from the logical address to the physical address.
  • the block management table 221 is a table for managing the physical block address of the storage device 300 corresponding to the logical block address included in the command issued from the host computer 100.
  • the physical block address Y corresponding to the logical block address X is stored as one entry in the block management table 221.
  • the processing unit 210 can obtain the physical block address Y by searching the block management table 221 with the logical block address X.
  • the block management table 221 stores alternative information corresponding to the logical block address. This substitution information indicates whether or not page substitution is performed in the physical block corresponding to the logical block address. For example, it can be defined that “1” is indicated if substitution is performed, and “0” is represented if substitution is not performed.
  • substitution management table 222 corresponding to the block is referred to as described below.
  • the substitution management table 222 is a table that stores a correspondence relationship between a substituted page address and a substituted substitute page.
  • the substituted page address Z and the substituted page P are stored as one entry in the substitution management table 222.
  • This substitution management table 222 is referred to when substitution information in the block management table 221 indicates that “substitution has been performed”.
  • substitution management table 222 When the substitution information of the physical block address Y corresponding to the logical block address X indicates that “substitution has been performed”, the substitution management table 222 is referred to, and the substitution page P is substituted instead of the page address Z. You can see that As a result, the logical address “X + Z” is converted into the physical address “Y + P”. On the other hand, when the replacement information of the physical block address Y corresponding to the logical block address X indicates “no replacement has been performed”, the replacement management table 222 is not referred to, and the logical address “X + Z” is the physical address “ Y + Z ".
  • This substitution management table 222 is provided only when substitution is performed for any page of the corresponding block.
  • the number of entries in the substitution management table 222 is variable, and an entry indicating the correspondence between the page address and the substitution page address is provided as necessary.
  • FIG. 3 is a diagram illustrating an example of address conversion in the embodiment of the present technology. This figure shows the correspondence between blocks and pages in the example of FIG.
  • the logical block (logical block address X) including the logical block page Z is converted into a physical block (physical block address Y) in the physical address by the block management table 221.
  • the replacement information in the block management table 221 indicates “no replacement has been performed”
  • the logical block page Z is used as it is as a physical block page
  • the logical address “X + Z” is the physical address “Y + Z”. Is converted to.
  • the substitution management table 222 is referred to, and the substitution page P is substituted for the page address Z.
  • the logical address “X + Z” is converted into the physical address “Y + P”.
  • FIG. 4 is a diagram illustrating a first example of the relationship between blocks and alternative pages in the embodiment of the present technology.
  • the block and the alternative page area have a one-to-one correspondence. Therefore, a dedicated substitution management table 222 can be provided for each block and management can be performed independently. Thereby, the search cost of the corresponding alternative management table 222 can be reduced. If there is no page to substitute for a certain block, there is no need to provide a substitution management table 222 corresponding to that block.
  • FIG. 5 is a diagram illustrating a second example of the relationship between blocks and alternative pages in the embodiment of the present technology.
  • this second example it is assumed that there is only one alternate page area for the entire space of the physical address. Therefore, the same substitution management table 222 can be shared with any block. Even when the pages to be replaced are concentrated on a specific block, it is possible to avoid the exhaustion of the replacement pages as much as possible.
  • FIG. 6 is a diagram illustrating a third example of the relationship between blocks and alternative pages in the embodiment of the present technology.
  • This third example is an example of managing the physical address space without dividing it into blocks. Even in this case, the same substitution management table 222 can be shared for each page.
  • FIG. 7 is a diagram illustrating an example of a circuit configuration of the storage device 300 according to the embodiment of the present technology.
  • the first example according to FIG. 4 described above is assumed, and a case where a block and a substitute page area correspond one-to-one is assumed.
  • the storage device 300 includes a request decoder 310, a block address decoder 320, a page address decoder 330, an alternative page address decoder 340, a physical block memory array 360, an alternative page memory array 370, and a read selector 380.
  • the storage device 300 includes a physical block memory array 360 that stores a space of a physical address and an alternative page memory array 370 that stores an alternative page area, and the read selector 380 selects the output of both. Yes.
  • the physical address space and the alternative page area may be physically allocated on the same memory array.
  • the block address decoder 320 is a decoder that receives and decodes the block address of the physical address via the signal line 292. The result of decoding by the block address decoder 320 is supplied to the physical block memory array 360 via the signal line 329.
  • the page address decoder 330 is a decoder that receives and decodes the page address of the physical address via the signal line 293. A result of decoding by the page address decoder 330 is supplied to the physical block memory array 360 via the signal line 339.
  • the alternative page address decoder 340 is a decoder that receives and decodes the alternative page address output from the memory controller 200 via the signal line 294. The result of decoding by the alternative page address decoder 340 is supplied to the alternative page memory array 370 via the signal line 349.
  • the request decoder 310 is a decoder that receives and decodes the request output from the memory controller 200 via the signal line 291.
  • the request decoder 310 outputs a write signal requesting writing to the signal line 318 and outputs a substitute signal indicating whether or not substitution is performed to the signal line 319.
  • the read selector 380 selects the output of the physical block memory array 360. On the other hand, if it indicates that substitution is to be performed, read selector 380 selects the output of substitution page memory array 370. Therefore, when a read request is requested, the output of either the physical block memory array 360 or the alternative page memory array 370 is selected and output to the signal line 389.
  • the signal line 318 and the signal line 319 are input to the logical product gate 353, and the logical product operation result of both is output to the signal line 359.
  • the output of this signal line 359 is supplied to the alternative page memory array 370.
  • the output of the signal line 319 is input to the inverter 351, and its inverted signal is output.
  • the output of the signal line 318 and the inverter 351 is input to the logical product gate 352, and the logical product operation result of both is output to the signal line 358.
  • the output of the signal line 358 is supplied to the physical block memory array 360. That is, in the state where the write signal is asserted, if the replacement is not performed, the physical block memory array 360 is written, and if the replacement is performed, the replacement page Writing to the memory array 370 is performed.
  • FIG. 8 is a diagram illustrating a first example of a request for the storage device 300 according to the embodiment of the present technology.
  • this first example it is assumed that different requests are assigned according to the presence or absence of substitution. That is, as a request for writing to the storage device 300, a normal write request and an alternative write request are provided separately.
  • a normal read request and a read request with alternative are individually provided.
  • the normal write request has a physical block address, page address, and write data as arguments.
  • the write request with replacement has a physical block address, an alternative page address, and write data as arguments.
  • the normal read request has a physical block address and a page address as arguments.
  • the read request with replacement has a physical block address and an alternative page address as arguments.
  • FIG. 9 is a diagram illustrating a second example of a request to the storage device 300 according to the embodiment of the present technology.
  • the presence / absence of substitution is held as a substitution flag in the request, and a common request is assigned regardless of the presence / absence of substitution. That is, the request to write to the storage device 300 is a write request, and holds a substitution flag indicating whether or not substitution is present in the write request field. Further, the request for reading from the storage device 300 is a read request, and holds a substitution flag indicating the presence or absence of substitution in the field of the read request.
  • the write request has a physical block address, a page address, and write data as arguments when the substitution flag indicates no substitution.
  • the substitution flag indicates that there is substitution
  • the write request has a physical block address, a substitution page address, and write data as arguments.
  • the substitution flag indicates no substitution
  • the read request has a physical block address and a page address as arguments.
  • the substitution flag indicates that there is substitution
  • the read request has a physical block address and a substitution page address as arguments.
  • first and second examples of requests to the storage device 300 are different in format, but are not essentially different, and can be appropriately selected according to the system specifications.
  • FIG. 10 is a flowchart illustrating an example of a read command processing procedure in the memory controller 200 according to the embodiment of the present technology.
  • the processing unit 210 When the processing unit 210 receives a read command from the host computer 100 via the host interface 280, the processing unit 210 separates a logical address included in the read command into a logical block address and a page address. Then, the logical block address is converted into a physical block address by the block management table 221 (step S911).
  • step S912 If the replacement information in the block management table 221 indicates that the page of the corresponding block is not replaced (step S912: No), the converted physical block address and page address are used as they are, and there is no replacement. Is requested to the storage device 300 (step S915).
  • step S912 when it is indicated that the page of the corresponding block has been replaced (step S912: Yes), the replacement management table 222 is accessed to acquire the replacement page address (step S913). Then, by using the converted physical block address and the alternative page address, a read request with replacement is requested to the storage device 300 (step S914).
  • FIG. 11 is a flowchart illustrating an example of a write command processing procedure in the memory controller 200 according to the embodiment of the present technology.
  • the processing unit 210 When the processing unit 210 receives a write command from the host computer 100 via the host interface 280, the processing unit 210 separates a logical address included in the write command into a logical block address and a page address. Then, the logical block address is converted into a physical block address by the block management table 221 (step S921).
  • step S922 If the replacement information in the block management table 221 indicates that the page of the corresponding block is not replaced (step S922: No), the converted physical block address and page address are used as they are, and there is no replacement. Is requested to the storage device 300 (step S925).
  • step S922 when it is indicated that the page of the corresponding block has been replaced (step S922: Yes), the replacement management table 222 is accessed to acquire the replacement page address (step S923). Then, using the converted physical block address and alternative page address, a write request with replacement is requested to the storage device 300 (step S924).
  • step S926: No if no write error occurs, the process is terminated.
  • step S926: Yes when a write error occurs, the corresponding page needs to be replaced, and therefore, a replacement process described below is performed (step S926: Yes).
  • FIG. 12 is a flowchart illustrating an example of a processing procedure of an alternative process in the memory controller 200 according to the embodiment of the present technology.
  • step S931 it is determined whether an unused substitute page remains. If there are no unused substitute pages remaining, substitution cannot be performed in the first place. For example, since the number of substitute pages is limited, if the number of entries in the substitute management table is the same as the total number of substitute pages, there are no usable substitute pages remaining. Therefore, since substitution cannot be performed, in this case, the process ends as an error (step S932: Yes).
  • step S933 the presence or absence of the substitution management table 222 is checked. If there is no replacement (step S933: No), the replacement management table 222 of the corresponding block does not exist, so the replacement management table 222 is newly created, and conversion information of the physical page address and the replacement page address is newly set as an entry. It adds (step S935).
  • step S933 If there is a replacement (step S933: Yes), the existing replacement management table 222 exists, and therefore the existing replacement management table 222 is updated. If the corresponding physical page address is not included in the existing substitution management table 222 (step S934: No), a new entry (physical page address, substitution page address) is added to the substitution management table 222 (step S936). On the other hand, when the corresponding physical page address is included in the existing substitution management table 222 (step S934: Yes), the substitution page address of the corresponding entry is rewritten to that of the substitution page that is not used (step S937).
  • a write request with substitution is requested to the storage device 300 using the converted physical block address and substitution page address (step S938).
  • step S939: No if no write error occurs, the process ends normally. On the other hand, if a write error has occurred, the corresponding page needs to be replaced, so the processing from step S932 onward is repeated again (step S939: Yes).
  • FIG. 13 is a diagram illustrating a configuration example of the substitution management table 222 according to the embodiment of the present technology.
  • the substitution management table 222 may include a substitution page valid flag indicating whether the substitution page address is valid or invalid, in addition to the page address and the substitution page address.
  • FIG. 14 is a diagram illustrating another configuration example of the substitution management table 222 according to the embodiment of the present technology.
  • This configuration example is an example in which alternative page addresses of alternative pages are assigned in ascending or descending order. In this case, assuming that assignment is performed in ascending order, if the last alternative page address is included in the substitution management table 222, there is no unused substitution page.
  • the substitute page having the largest subscript of the substitute page address used in the substitute management table 222 is defined as P_USED_MAX. In that case, among the alternative pages that are not used in the alternative management table 222, the alternative pages having a subscript smaller than P_USED_MAX are broken and cannot be used. On the other hand, an alternative page having a subscript larger than P_USED_MAX can be used.
  • the block management table 221 manages the memory area for each block, while the substitution management table 222 performs substitution in units of pages in the block. As a result, page-by-page substitution processing can be performed without increasing the memory management information.
  • the processing procedure described in the above embodiment may be regarded as a method having a series of these procedures, and a program for causing a computer to execute these series of procedures or a recording medium storing the program. You may catch it.
  • a recording medium for example, a CD (Compact Disc), an MD (MiniDisc), a DVD (Digital Versatile Disc), a memory card, a Blu-ray disc (Blu-ray (registered trademark) Disc), or the like can be used.
  • a memory controller including a control unit that issues a replacement instruction for each page in a block of a storage device that manages a memory area for each block including a plurality of pages.
  • a block management table for storing the physical block address of the storage device and replacement information indicating the presence or absence of replacement corresponding to the logical block address;
  • a substitution management table that stores a correspondence relationship between a page address and a substitution page address for a block indicating substitution;
  • the control unit refers to the block management table to obtain the physical block address corresponding to the logical block address to be accessed, and the replacement information corresponding to the logical block address to be accessed is substituted.
  • the memory controller according to (1) wherein the alternative page address corresponding to the page address to be accessed is acquired and the instruction is given to the storage device.
  • the substitution management table stores the substitution page address defined in a different storage space for each block.
  • the substitution management table stores the substitution page address defined in a storage space common to the blocks.
  • a physical block memory array for storing data for each block composed of a plurality of pages;
  • An alternative page memory array for storing an alternative page in units of pages in the block;
  • a memory system comprising: a control unit that accesses the physical block memory array for each block and accesses a substitute page memory array in units of pages in the block.
  • a physical block memory array for storing data for each block composed of a plurality of pages; An alternative page memory array for storing an alternative page in units of pages in the block; A storage device that accesses the substitute page in units of pages in the block according to a substitute instruction.
  • a storage device including a physical block memory array that stores data for each block composed of a plurality of pages, and a replacement page memory array that stores a replacement page in units of pages in the block; A host computer that issues an access command to the storage device;
  • An information processing system comprising: a control unit that accesses the physical block memory array for each block according to the access command and accesses the alternative page memory array in units of pages in the block.
  • a block management table for storing, in correspondence with a logical block address, a physical block address of a storage device that manages a memory area for each block composed of a plurality of pages, and substitution information indicating a substitution, and a block indicating substitution
  • a memory controller comprising an alternative management table that stores a correspondence relationship between a page address and an alternative page address
  • the control unit refers to the block management table, and obtains the physical block address corresponding to the logical block address to be accessed;
  • the replacement information corresponding to the logical block address to be accessed indicates that there is a replacement
  • the replacement page address corresponding to the page address to be accessed With the steps to get A procedure in which the control unit accesses the storage device using the physical block address and the alternative page address when the alternative information corresponding to the logical block address to be accessed indicates that there is an alternative
  • a storage control method comprising:

Landscapes

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

Abstract

 メモリの管理情報を増大させることなく、ページ単位の代替処理を行う。 ブロック管理テーブルは、複数ページからなるブロック毎にメモリ領域を管理する記憶装置の物理ブロックアドレスおよび代替の有無を示す代替情報を論理ブロックアドレスに対応して記憶する。代替管理テーブルは、代替ありを示すブロックについてページアドレスと代替ページアドレスとの対応関係を記憶する。制御部は、ブロック管理テーブルを参照して、アクセス対象となる論理ブロックアドレスに対応する物理ブロックアドレスを取得するとともに、代替情報が代替ありを示す場合にはアクセス対象となるページアドレスに対応する代替ページアドレスを取得して、記憶装置に対して代替の指示を行う。

Description

メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法
 本技術は、記憶装置を制御するメモリコントローラに関する。詳しくは、複数ページからなるブロック毎にメモリ領域を管理する記憶装置を制御するメモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法に関する。
 一般的に使用されている不揮発性メモリとして、NAND型フラッシュメモリがある。このNAND型フラッシュメモリでは、ページ単位での読出しが可能である。ただし、消去済みのページに対してはページ単位で書込みが行える半面、ページへの上書きができず、複数ページで構成されるブロック単位でしか消去することができない。そのため、書き換えを行う際には、ブロックの書き換えない部分を読み出して別途保持しておいて、そのブロック全体を消去してから書換えデータとそれ以外の保持したデータとをまとめてブロック全体に書き戻すという処理が必要になる。
 また、NAND型フラッシュメモリには書換え回数に限界があることが広く知られている。NAND型フラッシュメモリへの情報の書込みには、量子トンネル効果により、電子を浮遊ゲート内に注入することで行われる。しかしながら、書込みおよび消去を繰り返すことにより、トンネル酸化膜である絶縁層に電子がトラップされることにより、トンネル酸化膜の絶縁性能が低下してしまう。これにより、最終的には書込みが行えないという状態になり、メモリセルが寿命に到達する。一般的には、NAND型フラッシュメモリのメモリセルの寿命は、3000回から10000回程度の書込みまたは消去サイクルによって到達する。
 このような状況に対処するため、NAND型フラッシュメモリではこれを制御するコントローラと組み合わせて、寿命に達して書込みが行えなくなったページを含むブロックを後発不良ブロックとして使用禁止とする制御が一般的に行われる。これにより、新たに正常なブロックを割り当てて、ブロックを代替する。このような技術として、例えば、バンクごとに不良ブロックの代替処理を行う不揮発性メモリシステムが提案されている(例えば、特許文献1参照。)。
特開2007-241896号公報
 上述のNAND型フラッシュメモリを想定した従来技術では、ブロックを単位として代替処理を行っており、ページ単位の代替は行われない。これに対し、抵抗変化素子を用いたReRAMでは、ページ単位のランダムアクセスが可能であり、NAND型フラッシュメモリのようにブロック単位で消去を行う必要がない。しかしながら、管理情報として論理アドレスから物理アドレスへの変換を行うためのアドレス変換テーブルを全てのページに対して設けるのは、アドレス変換テーブルのエントリ数が増大することになり現実的ではない。
 本技術はこのような状況に鑑みて生み出されたものであり、メモリの管理情報を増大させることなく、ページ単位の代替処理を行うことを目的とする。
 本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、複数ページからなるブロック毎にメモリ領域を管理する記憶装置について上記ブロック内のページを単位として代替の指示を行う制御部を具備するメモリコントローラ、メモリシステム、情報処理システムおよびそれらにおける記憶制御方法である。これにより、メモリの管理情報を増大させることなく、ページ単位の代替処理を行うという作用をもたらす。
 また、この第1の側面において、上記記憶装置の物理ブロックアドレスおよび代替の有無を示す代替情報を論理ブロックアドレスに対応して記憶するブロック管理テーブルと、代替ありを示すブロックについてページアドレスと代替ページアドレスとの対応関係を記憶する代替管理テーブルとをさらに具備し、上記制御部は、上記ブロック管理テーブルを参照して、アクセス対象となる論理ブロックアドレスに対応する上記物理ブロックアドレスを取得するとともに、上記アクセス対象となる論理ブロックアドレスに対応する上記代替情報が代替ありを示す場合にはアクセス対象となるページアドレスに対応する上記代替ページアドレスを取得して、上記記憶装置に対して上記指示を行うようにしてもよい。これにより、代替情報が代替ありを示す場合にページ単位の代替処理を行うという作用をもたらす。
 また、この第1の側面において、上記代替管理テーブルは、上記ブロック毎に異なる記憶空間に定められた上記代替ページアドレスを記憶するようにしてもよい。これにより、対応する代替管理テーブルの検索コストを低減させるという作用をもたらす。
 また、この第1の側面において、上記代替管理テーブルは、上記ブロックに共通する記憶空間に定められた上記代替ページアドレスを記憶するようにしてもよい。これにより、代替されるページが特定のブロックに集中した場合であっても、代替ページの枯渇を抑制するという作用をもたらす。
 また、本技術の第2の側面は、複数ページからなるブロック毎にデータを記憶する物理ブロックメモリアレイと、上記ブロック内のページを単位として代替ページを記憶する代替ページメモリアレイとを具備し、代替の指示に応じて上記ブロック内のページを単位として上記代替ページにアクセスする記憶装置である。これにより、ブロック毎に物理ブロックメモリアレイにデータを記憶しながら、代替の指示に応じてページ単位の代替処理を行うという作用をもたらす。
 本技術によれば、メモリの管理情報を増大させることなく、ページ単位の代替処理を行うことができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の実施の形態における情報処理システムの全体構成の一例を示す図である。 本技術の実施の形態におけるブロック管理テーブル221および代替管理テーブル222の一構成例を示す図である。 本技術の実施の形態におけるアドレス変換の一例を示す図である。 本技術の実施の形態におけるブロックと代替ページとの関係の第1の例を示す図である。 本技術の実施の形態におけるブロックと代替ページとの関係の第2の例を示す図である。 本技術の実施の形態におけるブロックと代替ページとの関係の第3の例を示す図である。 本技術の実施の形態における記憶装置300の回路構成の一例を示す図である。 本技術の実施の形態における記憶装置300に対するリクエストの第1の例を示す図である。 本技術の実施の形態における記憶装置300に対するリクエストの第2の例を示す図である。 本技術の実施の形態のメモリコントローラ200におけるリードコマンドの処理手順例を示す流れ図である。 本技術の実施の形態のメモリコントローラ200におけるライトコマンドの処理手順例を示す流れ図である。 本技術の実施の形態のメモリコントローラ200における代替処理の処理手順例を示す流れ図である。 本技術の実施の形態における代替管理テーブル222の一構成例を示す図である。 本技術の実施の形態における代替管理テーブル222の他の構成例を示す図である。
 以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
 1.ハードウェア構成
 2.動作
 <1.ハードウェア構成>
 [情報処理システムの全体構成]
 図1は、本技術の実施の形態における情報処理システムの全体構成の一例を示す図である。この情報処理システムは、ホストコンピュータ100およびメモリシステム400から構成される。メモリシステム400は、記憶装置300およびメモリコントローラ200を備える。
 ホストコンピュータ100は、この情報処理システムにおける各処理を実行する装置である。記憶装置300は、ホストコンピュータ100の処理に必要なデータを記憶するメモリである。メモリコントローラ200は、ホストコンピュータ100と記憶装置300の間に接続され、ホストコンピュータ100からの要求に応じて記憶装置300の制御を行う装置である。
 記憶装置300は、ページ単位で、書込み、読出し、場合によっては消去も可能なメモリであり、特に、抵抗変化型メモリや、相変化メモリなどを想定する。抵抗変化型メモリとしては、例えば、ReRAM(Resistive RAM)や、CBRAM(Conductive Bridge RAM)などが知られている。また、相変化メモリとしては、PCM(Phase Change Memory)などが知られている。
 メモリコントローラ200は、処理部210と、記憶部220と、ECC処理部230と、ホストインターフェース280と、メモリインターフェース290とを備える。
 処理部210は、メモリコントローラ200における種々の処理を実行する処理装置である。
 記憶部220は、処理部210において実行されるプログラムおよびその実行に必要な作業領域やパラメータなどを記憶するメモリである。この記憶部220は、プログラム格納用のROMと、作業領域用のRAMの2種類のメモリによって構成するようにしてもよい。また、メモリはRAMだけとして、起動時にプログラムを記憶装置300からRAMにロードして、RAM上において実行するような構成としてもよい。
 ECC処理部230は、記憶装置300に記憶されるエラー訂正コードに関する処理を行うものである。このECC処理部230は、エラー訂正コードを生成する機能および記憶装置300から読み出されたデータとエラー訂正コードとからエラー訂正を行う機能を含む。
 ホストインターフェース280は、ホストコンピュータ100との間のやりとりを行うインターフェース回路である。メモリインターフェース290は、記憶装置300との間のやりとりを行うインターフェース回路である。
 [管理情報]
 図2は、本技術の実施の形態におけるブロック管理テーブル221および代替管理テーブル222の一構成例を示す図である。ブロック管理テーブル221および代替管理テーブル222は、メモリコントローラ200において使用される管理情報であり、記憶部220に記憶される。
 記憶装置300は、所定のサイズを有するページから構成され、ページを単位としてアドレス(ページアドレス)が付与されている。そして、記憶装置300は、複数のページからなるブロックを単位として管理される。記憶装置300における物理的なブロックを物理ブロックと称し、その物理ブロックに含まれるページを特に物理ブロックページと称する。また、この実施の形態においては、ページを単位として代替処理を行う。この場合の物理ブロックページを代替するページを代替ページと称する。
 ホストコンピュータ100から発行されるコマンドに含まれるアクセス対象となるアドレス(リードアドレスまたはライトアドレス)は論理アドレスであり、その上位アドレス部分が論理ブロックアドレスとなる。一方、記憶装置300は、上述のように物理ブロックにより管理されているため、論理ブロックアドレスから物理ブロックアドレスへの変換が必要となる。この論理アドレスから物理アドレスへのアドレス変換に用いられるのがブロック管理テーブル221である。
 ブロック管理テーブル221は、ホストコンピュータ100から発行されるコマンドに含まれる論理ブロックアドレスに対応する記憶装置300の物理ブロックアドレスを管理するテーブルである。この例では、論理ブロックアドレスXに対応する物理ブロックアドレスYがブロック管理テーブル221の1エントリとして記憶されている。処理部210は、このブロック管理テーブル221を論理ブロックアドレスXにより検索することにより、物理ブロックアドレスYを得ることができる。
 また、このブロック管理テーブル221は、論理ブロックアドレスに対応する代替情報を記憶する。この代替情報は、論理ブロックアドレスに対応する物理ブロックにおいて、ページの代替が行われているか否かを示すものである。例えば、代替が行われていれば「1」を示し、代替が行われていなければ「0」を示すものと定義することができる。代替が行われている場合には、以下に説明するように、そのブロックに対応する代替管理テーブル222が参照される。
 代替管理テーブル222は、代替されているページアドレスと、代替している代替ページとの対応関係を記憶するテーブルである。この例では、代替されているページアドレスZと代替ページPとが代替管理テーブル222の1エントリとして記憶されている。この代替管理テーブル222は、ブロック管理テーブル221における代替情報が「代替が行われている」旨を示す場合に参照される。
 論理ブロックアドレスXに対応する物理ブロックアドレスYの代替情報が「代替が行われている」旨を示す場合には、この代替管理テーブル222が参照され、ページアドレスZに代えて代替ページPが代替されていることがわかる。これにより、論理アドレス「X+Z」は、物理アドレス「Y+P」に変換される。一方、論理ブロックアドレスXに対応する物理ブロックアドレスYの代替情報が「代替が行われていない」旨を示す場合には、代替管理テーブル222が参照されず、論理アドレス「X+Z」は物理アドレス「Y+Z」に変換される。
 この代替管理テーブル222は、対応するブロックの何れかのページについて代替が行われている場合のみ設ける。また、この代替管理テーブル222のエントリ数は可変であり、ページアドレスと代替ページアドレスとの対応を示すエントリを必要に応じて設ける。代替が行われているページのみ代替ページとの対応関係を記憶することにより、代替管理テーブル222に要する記憶容量を増大させることなく、ページ単位の代替処理を行うことができる。
 ここで、管理情報のサイズの一例を算出する。記憶装置300の容量が32GB、ページサイズが4KB、ブロックサイズが256KBであると仮定する。NAND型フラッシュメモリのようにブロック単位で全体を管理する場合であれば、32GB/256KB=128のエントリ数のブロック管理テーブルで足りる。しかし、全てをページ単位で管理することを想定すると、32GB/4KB=8192のエントリ数のブロック管理テーブルが必要になってしまう。これに対し、この実施の形態では、ブロック単位による管理を基本としながら、代替処理が必要な場合のみページ単位で代替することにより、代替管理テーブル222に要する記憶容量を増大させることなく、ページ単位の代替処理を行うことができる。
 図3は、本技術の実施の形態におけるアドレス変換の一例を示す図である。同図は、図2における例のブロックおよびページの対応関係を示したものである。
 論理ブロックページZを含む論理ブロック(論理ブロックアドレスX)は、ブロック管理テーブル221によって、物理アドレスにおける物理ブロック(物理ブロックアドレスY)に変換される。
 このとき、ブロック管理テーブル221における代替情報が「代替が行われていない」旨を示す場合には、論理ブロックページZがそのまま物理ブロックページとして用いられ、論理アドレス「X+Z」は、物理アドレス「Y+Z」に変換される。一方、ブロック管理テーブル221における代替情報が「代替が行われている」旨を示す場合には、代替管理テーブル222が参照され、ページアドレスZに代えて代替ページPが代替される。これにより、論理アドレス「X+Z」は、物理アドレス「Y+P」に変換される。
 [ブロックと代替ページの関係]
 図4は、本技術の実施の形態におけるブロックと代替ページとの関係の第1の例を示す図である。この第1の例では、ブロックと代替ページの領域とが1対1に対応している。したがって、ブロック毎に専用の代替管理テーブル222を設けて独立して管理を行うことができる。これにより、対応する代替管理テーブル222の検索コストを低減することができる。なお、あるブロックについて代替するページが1つも存在しない場合には、そのブロックに対応する代替管理テーブル222を設ける必要はない。
 図5は、本技術の実施の形態におけるブロックと代替ページとの関係の第2の例を示す図である。この第2の例では、物理アドレスの全空間に対して代替ページの領域が1つのみであることを仮定している。したがって、いずれのブロックに対しても、同一の代替管理テーブル222を共有することができる。代替されるページが特定のブロックに集中した場合であっても、代替ページの枯渇を極力回避することができる。
 図6は、本技術の実施の形態におけるブロックと代替ページとの関係の第3の例を示す図である。この第3の例は、物理アドレス空間をブロックに分割せずに管理する場合の例である。この場合においても、同一の代替管理テーブル222を各ページについて共有することができる。
 [回路構成]
 図7は、本技術の実施の形態における記憶装置300の回路構成の一例を示す図である。この例は、上述の図4による第1の例を想定し、ブロックと代替ページの領域とが1対1に対応する場合を想定している。
 この記憶装置300は、リクエストデコーダ310と、ブロックアドレスデコーダ320と、ページアドレスデコーダ330と、代替ページアドレスデコーダ340と、物理ブロックメモリアレイ360と、代替ページメモリアレイ370と、リードセレクタ380とを備えている。ここでは、記憶装置300は、物理アドレスの空間を記憶する物理ブロックメモリアレイ360と、代替ページ領域を記憶する代替ページメモリアレイ370とを備えて、両者の出力をリードセレクタ380によって選択するものとしている。ただし、物理アドレスの空間と代替ページ領域とを物理的に同じメモリアレイ上に割り当てるようにしてもよい。
 ブロックアドレスデコーダ320は、物理アドレスのうちブロックアドレスを、信号線292を介して受け取り、解読するデコーダである。このブロックアドレスデコーダ320によるデコード結果は、信号線329を介して、物理ブロックメモリアレイ360に供給される。
 ページアドレスデコーダ330は、物理アドレスのうちページアドレスを、信号線293を介して受け取り、解読するデコーダである。このページアドレスデコーダ330によるデコード結果は、信号線339を介して、物理ブロックメモリアレイ360に供給される。
 代替ページアドレスデコーダ340は、メモリコントローラ200から出力された代替ページアドレスを、信号線294を介して受け取り、解読するデコーダである。この代替ページアドレスデコーダ340によるデコード結果は、信号線349を介して、代替ページメモリアレイ370に供給される。
 リクエストデコーダ310は、メモリコントローラ200から出力されたリクエストを、信号線291を介して受け取り、解読するデコーダである。ここでは、特に、リクエストデコーダ310は、書込みを要求するライト信号を信号線318に出力し、代替が行なわれるか否かを示す代替信号を信号線319に出力する例を示している。
 代替が行なわれない旨を示している場合には、リードセレクタ380は物理ブロックメモリアレイ360の出力を選択する。一方、代替が行なわれる旨を示している場合には、リードセレクタ380は代替ページメモリアレイ370の出力を選択する。したがって、リードリクエストが要求された際には、物理ブロックメモリアレイ360または代替ページメモリアレイ370の何れか一方の出力が選択されて信号線389に出力される。
 信号線318および信号線319は、論理積ゲート353に入力され、両者の論理積演算結果が信号線359に出力される。この信号線359の出力は代替ページメモリアレイ370に供給される。また、信号線319の出力はインバータ351に入力され、その反転信号が出力される。そして、信号線318およびインバータ351の出力は、論理積ゲート352に入力され、両者の論理積演算結果が信号線358に出力される。この信号線358の出力は物理ブロックメモリアレイ360に供給される。すなわち、ライト信号がアサートされている状態において、代替が行なわれない旨を示している場合には物理ブロックメモリアレイ360に書込みが行われ、代替が行なわれる旨を示している場合には代替ページメモリアレイ370に書込みが行われる。
 [記憶装置へのリクエスト]
 図8は、本技術の実施の形態における記憶装置300に対するリクエストの第1の例を示す図である。この第1の例では、代替の有無に応じて別々のリクエストを割り当てることを想定している。すなわち、記憶装置300に対して書込みを行うリクエストとして、通常ライトリクエストと、代替ありライトリクエストとを個別に設けている。また、記憶装置300から読出しを行うリクエストとして、通常リードリクエストと、代替ありリードリクエストとを個別に設けている。
 通常ライトリクエストは、引数として、物理ブロックアドレスと、ページアドレスと、ライトデータとを有する。代替ありライトリクエストは、引数として、物理ブロックアドレスと、代替ページアドレスと、ライトデータとを有する。通常リードリクエストは、引数として、物理ブロックアドレスと、ページアドレスとを有する。代替ありリードリクエストは、引数として、物理ブロックアドレスと、代替ページアドレスとを有する。
 図9は、本技術の実施の形態における記憶装置300に対するリクエストの第2の例を示す図である。この第2の例では、代替の有無をリクエスト中の代替フラグとして保持し、代替の有無にかかわらず共通のリクエストを割り当てることを想定している。すなわち、記憶装置300に対して書込みを行うリクエストはライトリクエストであり、ライトリクエストのフィールドにおいて代替の有無を示す代替フラグを保持する。また、記憶装置300から読出しを行うリクエストはリードリクエストであり、リードリクエストのフィールドにおいて代替の有無を示す代替フラグを保持する。
 ライトリクエストは、代替フラグが代替なしを示す場合、引数として、物理ブロックアドレスと、ページアドレスと、ライトデータとを有する。ライトリクエストは、代替フラグが代替ありを示す場合、引数として、物理ブロックアドレスと、代替ページアドレスと、ライトデータとを有する。リードリクエストは、代替フラグが代替なしを示す場合、引数として、物理ブロックアドレスと、ページアドレスとを有する。リードリクエストは、代替フラグが代替ありを示す場合、引数として、物理ブロックアドレスと、代替ページアドレスとを有する。
 なお、記憶装置300に対するリクエストの第1および第2の例は、形式が異なるものの、本質的には違いがなく、システムの仕様に応じて適宜選択することができる。
 <2.動作>
 [リードコマンドの処理手順]
 図10は、本技術の実施の形態のメモリコントローラ200におけるリードコマンドの処理手順例を示す流れ図である。
 処理部210は、ホストコンピュータ100から、ホストインターフェース280を介して、リードコマンドを受けると、そのリードコマンドに含まれる論理アドレスを論理ブロックアドレスとページアドレスに分離する。そして、その論理ブロックアドレスをブロック管理テーブル221によって物理ブロックアドレスに変換する(ステップS911)。
 ブロック管理テーブル221の代替情報において、対応するブロックのページについて代替がされていない旨が示される場合には(ステップS912:No)、変換された物理ブロックアドレスとページアドレスをそのまま用いて、代替なしのリードリクエストを記憶装置300に要求する(ステップS915)。
 一方、対応するブロックのページについて代替がされている旨が示される場合には(ステップS912:Yes)、代替管理テーブル222にアクセスして代替ページアドレスを取得する(ステップS913)。そして、変換された物理ブロックアドレスと代替ページアドレスとを用いて、代替ありのリードリクエストを記憶装置300に要求する(ステップS914)。
 [ライトコマンドの処理手順]
 図11は、本技術の実施の形態のメモリコントローラ200におけるライトコマンドの処理手順例を示す流れ図である。
 処理部210は、ホストコンピュータ100から、ホストインターフェース280を介して、ライトコマンドを受けると、そのライトコマンドに含まれる論理アドレスを論理ブロックアドレスとページアドレスに分離する。そして、その論理ブロックアドレスをブロック管理テーブル221によって物理ブロックアドレスに変換する(ステップS921)。
 ブロック管理テーブル221の代替情報において、対応するブロックのページについて代替がされていない旨が示される場合には(ステップS922:No)、変換された物理ブロックアドレスとページアドレスをそのまま用いて、代替なしのライトリクエストを記憶装置300に要求する(ステップS925)。
 一方、対応するブロックのページについて代替がされている旨が示される場合には(ステップS922:Yes)、代替管理テーブル222にアクセスして代替ページアドレスを取得する(ステップS923)。そして、変換された物理ブロックアドレスと代替ページアドレスとを用いて、代替ありのライトリクエストを記憶装置300に要求する(ステップS924)。
 その結果、代替の有無にかかわらず、ライトエラーを生じなければ処理を終了する(ステップS926:No)。一方、ライトエラーが発生した場合には、該当するページを代替する必要があるため、以下に説明する代替処理を行う(ステップS926:Yes)。
 [代替処理の処理手順]
 図12は、本技術の実施の形態のメモリコントローラ200における代替処理の処理手順例を示す流れ図である。
 まず、未使用の代替ページが残っているかの判断を行う(ステップS931)。未使用の代替ページが残っていない場合には、そもそも代替が行えないことになる。例えば、代替ページの数は有限であるため、代替管理テーブルのエントリ数が代替ページの総数と同じであれば、使用できる代替ページは残っていないことになる。したがって、代替は行えないため、この場合はエラーとして処理を終了する(ステップS932:Yes)。
 次に、ブロック管理テーブル221の代替情報を参照して、代替管理テーブル222の有無を調べる(ステップS933)。代替なしであれば(ステップS933:No)、対応するブロックの代替管理テーブル222は存在しないため、代替管理テーブル222を新規に作成し、新たに物理ページアドレス、代替ページアドレスの変換情報をエントリとして追加する(ステップS935)。
 代替有りであれば(ステップS933:Yes)、既存の代替管理テーブル222が存在するため、この既存の代替管理テーブル222を更新することになる。該当する物理ページアドレスが既存の代替管理テーブル222に含まれない場合には(ステップS934:No)、代替管理テーブル222に新しいエントリ(物理ページアドレス、代替ページアドレス)を追加する(ステップS936)。一方、該当する物理ページアドレスが既存の代替管理テーブル222に含まれる場合には(ステップS934:Yes)、該当するエントリの代替ページアドレスを使用されていない代替ページのものに書き換える(ステップS937)。
 代替管理テーブル222に関するこれらの処理の後、変換された物理ブロックアドレスと代替ページアドレスとを用いて、代替ありのライトリクエストを記憶装置300に要求する(ステップS938)。
 その結果、ライトエラーを生じなければ処理を正常に終了する(ステップS939:No)。一方、ライトエラーが発生した場合には、該当するページを代替する必要があるため、再びステップS932以降の処理を繰り返す(ステップS939:Yes)。
 図13は、本技術の実施の形態における代替管理テーブル222の一構成例を示す図である。上述の代替処理において、代替の対象となるページが、既に代替ページに割り当てられている場合には、そのライトエラーを生じて壊れた代替ページを使用禁止として、まだ使用されていない別の代替ページに再び割り当てるようにしてもよい。そのために、代替管理テーブル222にはページアドレスおよび代替ページアドレス以外に、代替ページアドレスの有効または無効を示す代替ページ有効フラグを含んでもよい。
 これは、例えば、代替ページアドレスが残っているかの判断を行う場合、全ての代替ページが使用された状態であれば、代替ページアドレスの有効または無効にかかわらず、代替管理テーブル222のエントリの総数は代替ページの総数と同じになるため、判断し易い。
 図14は、本技術の実施の形態における代替管理テーブル222の他の構成例を示す図である。この構成例は、代替ページの代替ページアドレスを昇順または降順で割り当てるようにした場合の例である。この場合、昇順で割り当てることを前提とすると、代替管理テーブル222内に最後尾の代替ページアドレスが含まれていれば、未使用の代替ページがないことになる。例えば、代替管理テーブル222に使用されている代替ページアドレスの添え字が最も大きい代替ページをP_USED_MAXとする。その場合、代替管理テーブル222において使用されていない代替ページの内、P_USED_MAXよりも小さい添え字を有する代替ページは壊れていて使用できない。一方、P_USED_MAXよりも大きい添え字を有する代替ページは使用できる。
 逆に、降順で割り当てることを前提とすると、代替管理テーブル222内に先頭の代替ページアドレスが含まれていれば、未使用の代替ページが含まれていないことになる。したがって、この場合、代替ページアドレスの有効または無効の情報を含む必要は特にない。
 このように、本技術の実施の形態では、ブロック管理テーブル221によりブロック毎にメモリ領域を管理する一方で、代替管理テーブル222によりブロック内のページを単位として代替を行う。これにより、メモリの管理情報を増大させることなく、ページ単位の代替処理を行うことができる。
 なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
 また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
 なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
 なお、本技術は以下のような構成もとることができる。
(1)複数ページからなるブロック毎にメモリ領域を管理する記憶装置について前記ブロック内のページを単位として代替の指示を行う制御部を具備するメモリコントローラ。
(2)前記記憶装置の物理ブロックアドレスおよび代替の有無を示す代替情報を論理ブロックアドレスに対応して記憶するブロック管理テーブルと、
 代替ありを示すブロックについてページアドレスと代替ページアドレスとの対応関係を記憶する代替管理テーブルと
をさらに具備し、
 前記制御部は、前記ブロック管理テーブルを参照して、アクセス対象となる論理ブロックアドレスに対応する前記物理ブロックアドレスを取得するとともに、前記アクセス対象となる論理ブロックアドレスに対応する前記代替情報が代替ありを示す場合にはアクセス対象となるページアドレスに対応する前記代替ページアドレスを取得して、前記記憶装置に対して前記指示を行う前記(1)に記載のメモリコントローラ。
(3)前記代替管理テーブルは、前記ブロック毎に異なる記憶空間に定められた前記代替ページアドレスを記憶する前記(2)に記載のメモリコントローラ。
(4)前記代替管理テーブルは、前記ブロックに共通する記憶空間に定められた前記代替ページアドレスを記憶する前記(2)に記載のメモリコントローラ。
(5)複数ページからなるブロック毎にデータを記憶する物理ブロックメモリアレイと、
 前記ブロック内のページを単位として代替ページを記憶する代替ページメモリアレイと、
 前記ブロック毎に前記物理ブロックメモリアレイにアクセスするとともに前記ブロック内のページを単位として代替ページメモリアレイにアクセスする制御部と
を具備するメモリシステム。
(6)複数ページからなるブロック毎にデータを記憶する物理ブロックメモリアレイと、
 前記ブロック内のページを単位として代替ページを記憶する代替ページメモリアレイとを具備し、
 代替の指示に応じて前記ブロック内のページを単位として前記代替ページにアクセスする記憶装置。
(7)複数ページからなるブロック毎にデータを記憶する物理ブロックメモリアレイおよび前記ブロック内のページを単位として代替ページを記憶する代替ページメモリアレイを備える記憶装置と、
 前記記憶装置に対するアクセスコマンドを発行するホストコンピュータと、
 前記アクセスコマンドに応じて前記ブロック毎に前記物理ブロックメモリアレイにアクセスするとともに前記ブロック内のページを単位として代替ページメモリアレイにアクセスする制御部と
を具備する情報処理システム。
(8)複数ページからなるブロック毎にメモリ領域を管理する記憶装置の物理ブロックアドレスおよび代替の有無を示す代替情報を論理ブロックアドレスに対応して記憶するブロック管理テーブルと、代替ありを示すブロックについてページアドレスと代替ページアドレスとの対応関係を記憶する代替管理テーブルとを備えるメモリコントローラにおいて、
 制御部が、前記ブロック管理テーブルを参照して、アクセス対象となる論理ブロックアドレスに対応する前記物理ブロックアドレスを取得する手順と、
 前記制御部が、前記ブロック管理テーブルを参照して、前記アクセス対象となる論理ブロックアドレスに対応する前記代替情報が代替ありを示す場合には、アクセス対象となるページアドレスに対応する前記代替ページアドレスを取得する手順と、
 前記制御部が、前記アクセス対象となる論理ブロックアドレスに対応する前記代替情報が代替ありを示す場合には、前記物理ブロックアドレスおよび前記代替ページアドレスを用いて前記記憶装置に対してアクセスする手順と
を具備する記憶制御方法。
 100 ホストコンピュータ
 200 メモリコントローラ
 210 処理部
 220 記憶部
 221 ブロック管理テーブル
 222 代替管理テーブル
 230 ECC処理部
 280 ホストインターフェース
 290 メモリインターフェース
 300 記憶装置
 310 リクエストデコーダ
 320 ブロックアドレスデコーダ
 330 ページアドレスデコーダ
 340 代替ページアドレスデコーダ
 351 インバータ
 352、353 論理積ゲート
 360 物理ブロックメモリアレイ
 370 代替ページメモリアレイ
 380 リードセレクタ
 400 メモリシステム

Claims (8)

  1.  複数ページからなるブロック毎にメモリ領域を管理する記憶装置について前記ブロック内のページを単位として代替の指示を行う制御部を具備するメモリコントローラ。
  2.  前記記憶装置の物理ブロックアドレスおよび代替の有無を示す代替情報を論理ブロックアドレスに対応して記憶するブロック管理テーブルと、
     代替ありを示すブロックについてページアドレスと代替ページアドレスとの対応関係を記憶する代替管理テーブルと
    をさらに具備し、
     前記制御部は、前記ブロック管理テーブルを参照して、アクセス対象となる論理ブロックアドレスに対応する前記物理ブロックアドレスを取得するとともに、前記アクセス対象となる論理ブロックアドレスに対応する前記代替情報が代替ありを示す場合にはアクセス対象となるページアドレスに対応する前記代替ページアドレスを取得して、前記記憶装置に対して前記指示を行う請求項1記載のメモリコントローラ。
  3.  前記代替管理テーブルは、前記ブロック毎に異なる記憶空間に定められた前記代替ページアドレスを記憶する請求項2記載のメモリコントローラ。
  4.  前記代替管理テーブルは、前記ブロックに共通する記憶空間に定められた前記代替ページアドレスを記憶する請求項2記載のメモリコントローラ。
  5.  複数ページからなるブロック毎にデータを記憶する物理ブロックメモリアレイと、
     前記ブロック内のページを単位として代替ページを記憶する代替ページメモリアレイと、
     前記ブロック毎に前記物理ブロックメモリアレイにアクセスするとともに前記ブロック内のページを単位として代替ページメモリアレイにアクセスする制御部と
    を具備するメモリシステム。
  6.  複数ページからなるブロック毎にデータを記憶する物理ブロックメモリアレイと、
     前記ブロック内のページを単位として代替ページを記憶する代替ページメモリアレイとを具備し、
     代替の指示に応じて前記ブロック内のページを単位として前記代替ページにアクセスする記憶装置。
  7.  複数ページからなるブロック毎にデータを記憶する物理ブロックメモリアレイおよび前記ブロック内のページを単位として代替ページを記憶する代替ページメモリアレイを備える記憶装置と、
     前記記憶装置に対するアクセスコマンドを発行するホストコンピュータと、
     前記アクセスコマンドに応じて前記ブロック毎に前記物理ブロックメモリアレイにアクセスするとともに前記ブロック内のページを単位として代替ページメモリアレイにアクセスする制御部と
    を具備する情報処理システム。
  8.  複数ページからなるブロック毎にメモリ領域を管理する記憶装置の物理ブロックアドレスおよび代替の有無を示す代替情報を論理ブロックアドレスに対応して記憶するブロック管理テーブルと、代替ありを示すブロックについてページアドレスと代替ページアドレスとの対応関係を記憶する代替管理テーブルとを備えるメモリコントローラにおいて、
     制御部が、前記ブロック管理テーブルを参照して、アクセス対象となる論理ブロックアドレスに対応する前記物理ブロックアドレスを取得する手順と、
     前記制御部が、前記ブロック管理テーブルを参照して、前記アクセス対象となる論理ブロックアドレスに対応する前記代替情報が代替ありを示す場合には、アクセス対象となるページアドレスに対応する前記代替ページアドレスを取得する手順と、
     前記制御部が、前記アクセス対象となる論理ブロックアドレスに対応する前記代替情報が代替ありを示す場合には、前記物理ブロックアドレスおよび前記代替ページアドレスを用いて前記記憶装置に対してアクセスする手順と
    を具備する記憶制御方法。
PCT/JP2015/070798 2014-10-09 2015-07-22 メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法 WO2016056290A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014-207657 2014-10-09
JP2014207657 2014-10-09

Publications (1)

Publication Number Publication Date
WO2016056290A1 true WO2016056290A1 (ja) 2016-04-14

Family

ID=55652915

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/070798 WO2016056290A1 (ja) 2014-10-09 2015-07-22 メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法

Country Status (1)

Country Link
WO (1) WO2016056290A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020152120A1 (en) 2019-01-23 2020-07-30 Basf Se Oxime ester photoinitiators having a special aroyl chromophore
WO2021175855A1 (en) 2020-03-04 2021-09-10 Basf Se Oxime ester photoinitiators

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169729A (ja) * 2000-12-04 2002-06-14 Toshiba Corp 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP2004145446A (ja) * 2002-10-22 2004-05-20 Seiko Epson Corp 記憶装置及びその制御方法
JP2013251041A (ja) * 2012-06-01 2013-12-12 Samsung Electronics Co Ltd 不揮発性メモリ装置を含む格納装置及びそれのリペア方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002169729A (ja) * 2000-12-04 2002-06-14 Toshiba Corp 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP2004145446A (ja) * 2002-10-22 2004-05-20 Seiko Epson Corp 記憶装置及びその制御方法
JP2013251041A (ja) * 2012-06-01 2013-12-12 Samsung Electronics Co Ltd 不揮発性メモリ装置を含む格納装置及びそれのリペア方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020152120A1 (en) 2019-01-23 2020-07-30 Basf Se Oxime ester photoinitiators having a special aroyl chromophore
WO2021175855A1 (en) 2020-03-04 2021-09-10 Basf Se Oxime ester photoinitiators

Similar Documents

Publication Publication Date Title
US9189325B2 (en) Memory system and operation method thereof
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
TWI457932B (zh) 改善多層式儲存格(mlc)nand快閃記憶體之性能的方法和系統
US20190220396A1 (en) Data Storage Device
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP2018160195A (ja) メモリシステムおよび不揮発性メモリの制御方法
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US20100011154A1 (en) Data accessing method for flash memory and storage system and controller using the same
CN113031856B (zh) 存储器子系统中的断电数据保护
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
US9122583B2 (en) Memory controller and memory storage device and data writing method
JP2013092854A (ja) 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
US8423707B2 (en) Data access method for flash memory and storage system and controller using the same
JP2011242833A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
WO2016035451A1 (ja) 記憶制御装置、記憶装置、および、記憶制御方法
CN115543866A (zh) 部分超级块存储器管理
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP2013033337A (ja) 情報処理装置及び半導体記憶装置
JP2013205872A (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
WO2016056290A1 (ja) メモリコントローラ、メモリシステム、記憶装置、情報処理システムおよび記憶制御方法
US8738847B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
JP2023510764A (ja) キャッシュ内のデータブロックの書き込みモードの変更に基づくメディア管理動作の実施
US20230350798A1 (en) Namespace management for memory sub-systems
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus

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: 15849661

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15849661

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP