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

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

Info

Publication number
WO2016017321A1
WO2016017321A1 PCT/JP2015/067958 JP2015067958W WO2016017321A1 WO 2016017321 A1 WO2016017321 A1 WO 2016017321A1 JP 2015067958 W JP2015067958 W JP 2015067958W WO 2016017321 A1 WO2016017321 A1 WO 2016017321A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
redundancy
page
codeword
request
Prior art date
Application number
PCT/JP2015/067958
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 ソニー株式会社
Priority to US15/325,191 priority Critical patent/US20170185478A1/en
Publication of WO2016017321A1 publication Critical patent/WO2016017321A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Definitions

  • the present technology relates to a memory controller, a storage device, an information processing system, and a memory controller control method. Specifically, the present invention relates to a memory controller, a storage device, an information processing system, and a memory controller control method that perform error detection and error correction of data.
  • an information processing system using an error correction code (ECC) for detecting and correcting data errors has been used.
  • ECC error correction code
  • This information processing system generates an ECC and stores the data together in a nonvolatile memory.
  • ECC error correction code
  • an information processing system that generates a standard ECC that performs error detection and error correction of data and generates an extended ECC that performs error detection and error correction in units of a plurality of data (for example, Patent Document 1). reference.).
  • data and ECC are stored in the data area and ECC area of the nonvolatile memory, respectively.
  • these areas cannot be individually accessed from the host system, and there is a problem in that it is not convenient.
  • ECC and management information related to data are stored in the ECC area at the same time, only the management information may be accessed. In such a case, the above-described conventional technology could not cope.
  • This technology has been created in view of such a situation, and aims to enable individual writing and reading with respect to the data area and the ECC area, and to improve the convenience of the information system.
  • the bit sequence of the error correction code is referred to as parity.
  • a bit sequence combining management information and parity is referred to as redundancy.
  • redundancy the case where only the parity is not included without including the management information.
  • a bit sequence combining data and redundancy is called a code word. Generating a code word by adding data redundancy to data is called encoding. Reproducing the original data from the code word is called decoding.
  • the present technology has been made in order to solve the above-described problems.
  • the first aspect of the present technology is a redundancy for storing a data area for storing data and redundancy for performing error detection and error correction of the data.
  • a request generation unit that generates a request for writing or reading out any of the data, the redundancy, and the code word including the data and the redundancy with respect to a nonvolatile memory including an area, and the generated
  • a control unit that issues a request and controls writing and reading to and from the nonvolatile memory. This brings about the effect of writing or reading data, redundancy or codeword.
  • the data is page data in units of pages
  • the redundancy is page redundancy for performing error detection and error correction of the page data
  • the code word is the page It is a page codeword composed of data and the page redundancy
  • the request may be a request for writing or reading out any of the page data, the page redundancy, and the page codeword. This brings about the effect that writing or reading is performed for any of page data, page redundancy, or page codeword.
  • the data is extended data including a plurality of the pages and the page data
  • the redundancy includes extended redundancy for error detection and error correction of the extended data and the page.
  • the code word is an extension code word composed of the extension data and the extension redundancy and the page code word
  • the request includes the page data, the page redundancy, the page code word, and the extension data. It may be a request for requesting writing or reading for either of the extended redundancy and the extended codeword. This brings about the effect that writing or reading is performed for any of page data, page redundancy, page codeword, extension data, extension redundancy or extension codeword.
  • the data is a codeword block including a plurality of the page codewords, the extension data, and the page data
  • the redundancy performs error detection and error correction of the codeword block.
  • Composite redundancy to perform, the extended redundancy and the page redundancy the codeword is a composite codeword consisting of the codeword block and the composite redundancy, the extended codeword and the page codeword
  • the request is Requests writing or reading of any of the page data, the page redundancy, the page codeword, the extension data, the extension redundancy, the extension codeword, the codeword block, the composite redundancy, and the composite codeword. It may be a request.
  • the page data, page redundancy, page codeword, extension data, extension redundancy, extension codeword, codeword block, composite redundancy, or composite codeword is written or read.
  • the data is a data block composed of a plurality of the page data included in the codeword block, the codeword block, the extension data, and the page data.
  • a redundancy block composed of a plurality of the page redundancy and the composite redundancy, the composite redundancy, the extended redundancy, and the page redundancy included in the codeword block, and the request includes the page data, the page redundancy, and the page codeword.
  • the page redundancy is composed of management information related to the page data and parity for performing error detection and error correction of the page data and the management information.
  • You may be comprised by the extended management information regarding extended data, and the extended parity for performing the error detection and error correction of the said extended data and the said extended management information.
  • page redundancy is composed of management information and parity for performing error detection and error correction of page data and management information
  • extended redundancy is error detection and error of extension management information, extension data and extension management information. This provides an effect of being composed of extended parity for correction.
  • the composite redundancy includes a management information block parity for performing error detection and error correction of a management information block including a plurality of the management information included in the codeword block, and the codeword block. And a codeword block parity for performing error detection and error correction.
  • the composite redundancy has an effect that the management information block parity and the code word block parity for detecting and correcting errors in the management information block are configured.
  • the page redundancy is error detection of the management information parity, the management information, the page data, the management information, and the management information parity for performing error detection and error correction of the management information.
  • the extended redundancy includes the extended management information parity, the extended management information, the extended data, and the extended data for performing error detection and error correction of the extended management information.
  • Management information and extended double parity for performing error detection and error correction of the extended management information parity may be included.
  • page redundancy is configured by management information parity, management information, and double parity
  • extended redundancy is configured by extended management information parity and extended double parity.
  • a first encoding unit that generates the page redundancy, and error detection and error correction of the page data included in the page codeword by the page redundancy included in the page codeword A first decoding unit that performs the above, a second encoding unit that generates the extended redundancy, and error detection and error of the extended data included in the extended codeword by the extended redundancy included in the extended codeword Error detection of the codeword block included in the composite codeword by the second decoder that performs correction, the third encoder that generates the composite redundancy, and the composite redundancy included in the composite codeword And a third decoding unit for performing error correction, wherein the control unit is configured to output the first code of the page codeword input from the nonvolatile memory in response to an output of a request for requesting the reading.
  • the transfer of the composite codeword input from the memory to the third decoding unit may be further controlled. Accordingly, redundancy is generated by the first encoding unit, the second encoding unit, and the third encoding unit, and decoding is performed by the first decoding unit, the second decoding unit, and the third decoding unit. The effect of performing.
  • a nonvolatile memory including a data area for storing data and a redundant area for storing redundancy for performing error detection and error correction of the data, and controlling the nonvolatile memory And a memory controller that generates a request for requesting writing or reading of the data, the redundancy, the data, and the codeword composed of the redundancy to the nonvolatile memory.
  • the storage device includes a request generation unit and a control unit that issues the generated request and controls writing and reading to and from the nonvolatile memory. This brings about the effect of writing or reading data, redundancy or codeword.
  • the nonvolatile memory is configured by a bank that stores a page addressed by a page address, and the data area and the redundant area are assigned to the banks different from each other.
  • the data belonging to a word and the redundancy may be stored in the bank at the same page address.
  • data and redundancy belonging to the same code word are stored in the same page address bank.
  • the third aspect of the present technology stores a host computer that outputs a command requesting writing or reading to the memory controller, a data area for storing data, and redundancy for performing error detection and error correction of the data.
  • a non-volatile memory including a redundant area, and a memory controller that controls the non-volatile memory based on the command.
  • the memory controller stores the data and the non-volatile memory based on the command.
  • a request generation unit that generates a request for writing or reading out any of the redundancy, the data, and the redundant code word, and writing and reading the nonvolatile memory by issuing the generated request
  • An information processing system comprising a control unit for controlling That. This brings about the effect of writing or reading data, redundancy or codeword.
  • a fourth aspect of the present technology provides the data and the redundancy for a nonvolatile memory including a data area for storing data and a redundancy area for storing redundancy for performing error detection and error correction of the data. And a request generation procedure for generating a request for writing or reading for either of the data and the redundant code word, and controlling the writing and reading to the nonvolatile memory by issuing the generated request.
  • a memory controller control method This brings about the effect of writing or reading data, redundancy or codeword.
  • page unit data and redundancy are stored in different areas of the memory, and the data, redundancy, or codeword can be accessed by the same page address, and the convenience of the information system is improved.
  • the effects can be achieved. Note that the effects described here are not necessarily limited, and may be any of the effects described in the present disclosure.
  • composition of an information processing system in a 1st embodiment of this art. It is a figure showing an example of composition of a memory controller in a 1st embodiment of this art. It is a figure showing an example of composition of a memory in a 1st embodiment of this art. It is a figure showing an example of composition of a memory cell array in a 1st embodiment of this art. It is a figure showing an example of composition of a code word in a 1st embodiment of this art. It is a figure showing an example of redundant composition in a 1st embodiment of this art. It is a figure showing an example of composition of a request in a 1st embodiment of this art.
  • FIG. 1 is a diagram illustrating a configuration example of an information processing system according to the first embodiment of the present technology.
  • the information processing system in FIG. 1 includes a host computer 100, a memory controller 200, and a memory 300.
  • the host computer 100 inputs and outputs data with the memory 300 via the memory controller 200.
  • the host computer 100 includes a processor 110 and a host interface 109.
  • the processor 110 controls the overall operation of the host computer 100.
  • the host interface 109 is an interface that communicates with the memory controller 200. Data input / output by the host computer 100 is performed by issuing a command to the memory controller 200 via the signal line 101.
  • the memory controller 200 controls the memory 300.
  • the memory controller 200 includes a host interface 209, a processing unit 207, and a memory interface 208.
  • the host interface 209 exchanges information with the host computer 100.
  • the processing unit 207 performs processing based on a command output from the host computer 100. Specifically, data encoding and decoding processes are performed, and a request for requesting data writing or reading is created and issued to the memory 300. This request is output via the signal line 201.
  • the memory interface 208 exchanges with the memory 300.
  • the memory 300 stores data.
  • the memory 300 includes a memory interface 309, a memory device control unit 307, and a memory cell array 308.
  • the memory interface 309 exchanges with the memory controller 200.
  • the memory device control unit 307 controls the memory 300 based on a request issued from the memory controller 200. Details of the control will be described later.
  • the memory cell array 308 stores data and includes a plurality of memory cells.
  • a non-volatile memory for example, ReRAM (resistance random access memory) can be used. Data writing and reading are performed in units of pages. This page is, for example, 256 bytes in size.
  • the memory 300 is an example of a nonvolatile memory described in the claims.
  • FIG. 2 is a diagram illustrating a configuration example of the memory controller according to the first embodiment of the present technology.
  • the host interface 209 in the figure transfers the command issued from the host computer 100 to the control unit 219 in the processing unit 207.
  • data exchanged with the host computer 100 is bidirectionally transferred to and from the work memory 210 in the processing unit 207.
  • 2 transfers the request output from the memory interface control unit 220 in the processing unit 207 to the memory 300, and transfers the status output from the memory 300 to the control unit 219 in the processing unit 207.
  • data exchanged with the memory 300 is bidirectionally transferred to and from the memory interface control unit 220 in the processing unit 207.
  • the status is information indicating the success or failure of writing in the memory 300.
  • the status may also include information indicating that the memory 300 is processing.
  • the processing unit 207 in FIG. 2 includes a work memory 210, a first encoding unit 211, a first decoding unit 212, a second encoding unit 213, a second decoding unit 214, a third encoding unit 215, and a third decoding unit 216.
  • the processing unit 207 includes a data buffer 217, a request generation unit 218, a control unit 219, a memory interface control unit 220, and a management information holding unit 221.
  • the work memory 210 holds data. This data includes data output by the host computer 100, the memory 300, the first decoding unit 212, the second decoding unit 214, and the third decoding unit 216, and the like.
  • the work memory 210 for example, SRAM or DRAM can be used.
  • the first encoding unit 211 generates page data redundancy (hereinafter referred to as page redundancy) that is data in page units.
  • the second encoding unit 213 generates redundancy of extended data including a plurality of pages (hereinafter referred to as extended redundancy).
  • the third encoding unit 215 generates redundancy (hereinafter referred to as composite redundancy) of codeword blocks including a plurality of page codewords.
  • the page code word represents a code corresponding to page data, and is composed of page data and page redundancy.
  • the first decoding unit 212 performs error detection and error correction of page data included in the page codeword by page redundancy included in the page codeword.
  • the second decoding unit 214 performs error detection and error correction of extension data included in the extension codeword by extension redundancy included in the extension codeword.
  • the extended codeword represents a codeword corresponding to the extended data, and is configured by extended data and extended redundancy.
  • the third decoding unit 216 performs error detection and error correction of a codeword block included in the composite codeword by composite redundancy included in the composite codeword.
  • a composite codeword represents a codeword corresponding to a codeword block, and is composed of a codeword block and composite redundancy. Details of these will be described later.
  • the data buffer 217 temporarily holds data to be transferred to the memory 300.
  • This data buffer for example, SRAM or DRAM can be used.
  • the request generation unit 218 generates a request. Details of the request will be described later.
  • the memory interface control unit 220 controls the transfer of data and requests. Specifically, when a request and data are transferred to the memory 300, the request generated by the request generation unit 218 and the data output from the data buffer 217 are transferred to the memory 300. Further, the redundancy generated by the first encoding unit 211, the second encoding unit 213, or the third encoding unit 215 is selected and transferred to the memory 300. Conversely, when transferring the data, redundancy and status output from the memory 300, the first decoding unit 212, the second decoding unit 214 or the third decoding unit 216 is selected to transfer the data and redundancy, The status is transferred to the control unit 219.
  • the control unit 219 interprets a command issued by the host computer 100 and controls each unit of the memory controller 200. Specifically, the transfer control in the work memory 210 and the memory interface control unit 220, the request generation control in the request generation unit 218, and the management information holding unit 221 are controlled. A control circuit including a processor can be used for the control unit 219.
  • the management information holding unit 221 holds management information. As the management information holding unit 221, for example, SRAM or DRAM can be used.
  • the management information is information other than data, for example, address conversion information indicating a correspondence relationship between a logical address designated by the host computer 100 and a physical address in the memory 300.
  • the 1st encoding part 211 is an example of the 1st encoding part as described in a claim.
  • the first decoding unit 212 is an example of a first decoding unit described in the claims.
  • the second encoding unit 213 is an example of a second encoding unit described in the claims.
  • the second decoding unit 214 is an example of a second decoding unit described in the claims.
  • the third encoding unit 215 is an example of a third encoding unit described in the claims.
  • the third decoding unit 216 is an example of a third decoding unit described in the claims.
  • FIG. 3 is a diagram illustrating a configuration example of the memory according to the first embodiment of the present technology.
  • the memory interface 309 in the figure transfers the request issued from the memory controller 200 to the memory control unit 311 in the memory device control unit 307.
  • the status output from the memory control unit 311 is transferred to the memory controller 200.
  • bidirectional transfer is performed with the memory interface control unit 310 in the memory device control unit 307.
  • the memory device control unit 307 in FIG. 3 includes a memory interface control unit 310, a memory control unit 311 and a ROM 312.
  • the memory interface control unit 310 selects a plurality of banks in the memory cell array 308, and bidirectionally performs data and redundant transfer with the banks.
  • the memory control unit 311 interprets a request issued by the memory controller 200 and controls the memory interface control unit 310 and the memory cell array 308.
  • the memory control unit 311 controls the memory interface control unit and the memory cell array 308 by outputting control signals.
  • the status output from the memory cell array 308 determines the success or failure of writing data or the like, and outputs the result to the memory controller 200 as the status. This determination is made as follows.
  • Each bank in the memory cell array outputs a write result to the memory control unit 311 as a status. If all of these statuses indicate success, the memory control unit 311 determines that the status is successful. On the other hand, if any one of the statuses output by the bank indicates a failure, the memory control unit 311 determines that the failure has occurred.
  • the ROM 312 holds bank number conversion information indicating a correspondence relationship between a request output from the memory controller 200 and a bank in the memory cell array 308 to which data or the like is to be written or read.
  • a PROM can be used as the ROM 312.
  • the memory cell array 308 in FIG. 3 includes a plurality of banks, and each bank includes a plurality of memory cells that can be accessed on a page basis. Each bank can independently write or read data. Each bank includes a data line for bidirectional data or redundant transfer, a status line for outputting a status, and a control signal line for inputting a control signal. This control signal includes a command for instructing data transfer, writing or reading, and a page address.
  • the memory cell array 308 in FIG. 3 represents an example constituted by five banks.
  • FIG. 4 is a diagram illustrating a configuration example of the memory cell array according to the first embodiment of the present technology.
  • the memory cell array 308 in the figure includes a data area and a redundant area.
  • Banks # 1 to # 4 are assigned to the data area, and bank # 5 is assigned to the redundant area.
  • Each bank includes p pages of memory cells.
  • the memory cell of bank # 5 assigned to the redundant area is further configured by five subpages, and redundancy is stored in a predetermined subpage corresponding to the type of redundancy described later.
  • the control signal in bank # 5 includes a subpage number in addition to the command and page address described above.
  • FIG. 5 is a diagram illustrating a configuration example of codewords according to the first embodiment of the present technology.
  • three types of redundancy are used: page redundancy, extended redundancy, and decoding redundancy.
  • “A” in FIG. 5 represents the relationship between codewords, data, and redundancy in the case of page redundancy.
  • redundancy page redundancy
  • Page redundancy includes the parity of page data. For this parity, for example, a parity generated using a Hamming code can be used.
  • page data is stored in the memory cell of the bank assigned to the data area, and the page redundancy is set to the same page address in the bank assigned to the redundancy area.
  • Store in subpage For example, page data is stored in the memory cell of page # 1 of bank # 1, and page redundancy is stored in the memory cell of page # 1 and bank # 1 of bank # 5.
  • B in FIG. 5 represents the relationship between codewords, data, and redundancy in the case of extended codewords.
  • the data in the figure is 2 pages in size. That is, in the extended codeword, redundancy (extended redundancy) is generated for data of two pages size (extended data). Moreover, the parity generated by the same method as the page redundancy is used for the parity included in the extended redundancy.
  • the extension codeword is twice as large in data and redundancy as the page codeword. Therefore, when storing the extension codeword in the memory cell array, the extension data is stored in the memory cells of the two banks in the data area, and the page redundancy is stored in the two subpages in the bank of the redundancy area. For example, page data is stored in the memory cells of page # 1 in bank # 1 and page # 1 in bank # 2, and page redundancy is stored in memory cells in subpage # 1 and subpage # 2 in page # 1 in bank # 5.
  • page data is stored in the memory cells of page # 1 in bank
  • C in FIG. 5 represents the relationship between codewords, data, and redundancy in the case of a composite codeword.
  • the data in the figure is composed of four page codewords (codeword blocks). That is, in the composite codeword, redundancy (composite redundancy) is generated for the codeword block.
  • redundancy composite redundancy
  • the four page data included in the codeword block is referred to as a data block
  • the four page redundancy and composite redundancy included in the codeword block are collectively referred to as a redundancy block. These are treated as data 2 and redundancy 2 in the requests described later.
  • the parity included in the composite redundancy a parity generated using the same method as the page redundancy or a method different from the page redundancy, for example, an LDPC (Low Density Parity Check) code can be used.
  • the composite codeword is stored in the memory cell array
  • the data block is stored in the bank of the data area
  • the redundant block is stored in the bank of the redundant area.
  • the data block is stored in the memory cell of page # 1 in banks # 1 to # 4.
  • the four page redundancy included in the redundancy block is stored in the subpages # 1 to # 4 of the page # 1 of the bank # 5, and the composite redundancy is stored in the subpage # 5 of the page # 1 of the bank # 5.
  • the extension data is made twice the size of the page data
  • the composite redundant data block is made twice the size of the extension data.
  • the number of page data included in this data block and the number of banks included in the data area in the memory cell array 308 are set to the same value.
  • the number of redundancy included in the redundant block of complex redundancy and the number of subpages in bank # 5 of the redundant area in the memory cell array 308 are set to the same value.
  • four page codewords, two extension codewords, or one composite code can be stored in a memory cell accessible by one page address.
  • subpages # 1 to # 4 in the redundant area bank # 5 have the same size as page redundancy
  • subpage # 5 has the same size as composite redundancy.
  • the page size is a multiple or divisor of the data length
  • the subpage size is the same as or a divisor of the redundant length, thereby improving the memory cell use efficiency when recording data or the like. be able to.
  • the relationship between the page codeword, the extension codeword, and the composite codeword described above and the configuration of the memory cell array described in FIG. 4 are not limited to this.
  • all the subpages included in bank # 5 of the redundant area in FIG. 4 may be the same size, and when compound redundancy is stored, it may be stored in a plurality of subpages as in the case of extended redundancy.
  • subpages # 5 to # 8 having the same size as the subpages # 1 to # 4 are arranged instead of the subpage # 5 in FIG. 4, and composite redundancy is stored therein.
  • FIG. 6 is a diagram illustrating a redundant configuration example according to the first embodiment of the present technology. This figure shows a redundant configuration in each of page redundancy, extended redundancy, and redundant block.
  • page redundancy is configured by management information related to page data and parity for performing error detection and error correction of page data and management information.
  • Extended redundancy includes extended management information, which is management information related to extended data, and extended parity for performing error detection and error correction of the extended data and extended management information.
  • the compound redundancy of the redundant block is configured only by the codeword block parity which is the parity of the codeword block.
  • the first encoding unit 211 described in FIG. 2 generates parity from the input page data and management information related to the page data, adds the management information, and outputs the page redundancy.
  • the first decoding unit 212 decodes the input page codeword and outputs page data, and extracts management information from the page codeword and outputs it.
  • the second encoding unit 213 generates extended parity from the input data for two pages (extended data) and management information (extended management information) related to the extended data, and outputs the extended redundancy by adding the extended management information To do.
  • the second decoding unit 214 decodes the input extension codeword and outputs extension data, and extracts and outputs extension management information from the extension codeword.
  • the third encoding unit 215 generates parity (codeword block parity) from the four input codewords (codeword block), and outputs this as composite redundancy.
  • the third decoding unit 216 decodes the input composite codeword and outputs four codewords (codeword blocks).
  • the address translation information can be used as management information.
  • This management information is stored in a predetermined area of the memory 300, read from the memory 300 by the memory controller 200 at the time of activation, and transferred to the management information holding unit 221.
  • this management information may be destroyed due to an accident such as a power failure. In such a case, it is necessary to reproduce the management information.
  • redundancy including data parity and a part of management information related to the data is generated and stored in the redundancy area of the memory cell array 308.
  • the management information stored in the redundant area is read and the original management information is reproduced.
  • FIG. 7 is a diagram illustrating a configuration example of a request according to the first embodiment of the present technology. This figure shows a configuration of a request generated by the request generation unit 218 described in FIG. Based on the command output from the host computer 100, the request generator 218 generates a request for requesting the memory 300 to write or read the various codewords, data, and redundancy described above. As shown in FIG. 7, this request includes five fields, and an operation code, a code type, an attribute, an identification number, and an identifier indicating a page address are arranged. The operation code represents the type of request. FIG. 7 shows operation codes representing writing and reading. The code type represents the type of code.
  • the page code, the extension code, and the composite code are designated.
  • the attribute will be described later.
  • the identification number represents the number of the bank or subpage to be written or read.
  • the page address represents a page address to be written or read.
  • FIG. 8 is a diagram illustrating an example of a request attribute according to the first embodiment of the present technology. This attribute represents the type of operand in the request.
  • the code words, data, redundancy, data 2 and redundancy 2 which are attributes shown in the figure correspond to the code words shown in FIG. 5 on a one-to-one basis. Data or the like to be written or read can be specified by this attribute and the above-described code type.
  • a page address designated by a command for instructing data transfer and the page address of the request is output as a control signal of the same bank. Thereafter, a command for instructing writing is output to the same bank.
  • the memory control unit 311 controls the memory interface control unit 310 to transfer the page redundancy of the page codeword output from the memory controller 200 to the subpage # 1 of the bank # 5 which is a redundant bank. .
  • a data transfer command and a write command are output in the same manner.
  • the code word is written in the data area and redundant area of the same page address. Further, the subpages included in the data area bank and the redundant area bank to which the same identification number is assigned are treated as a pair, and data and redundancy belonging to the same codeword are stored respectively.
  • the code type is “extended code”
  • the bank of the data area to which the same identification number is allocated and the subpage included in the bank # 5 of the redundant area are treated as a pair, and are identified by the request.
  • the subpage number is uniquely determined by the number. For example, when the code type is “extended code”, the attribute is “codeword”, and the identification number is “1”, the extended data is written in the banks # 1 and # 2, and the extended redundancy is the subpage # 1 of the bank # 5. And # 2 are written. These are performed based on the bank number conversion information stored in the ROM 312.
  • FIG. 9 is a diagram illustrating a request (composite codeword write) process according to the first embodiment of the present technology. The figure shows the relationship between the request output, data output and status input of the memory controller 200 and the command input, data input and status output in each bank of the memory cell array 308.
  • the control unit 219 controls the work memory 210 and transfers the codeword block to the third encoding unit 215 and the data buffer 217.
  • the third encoding unit 215 generates composite redundancy.
  • the control unit 219 causes the request generation unit 218 to generate a write request.
  • the data buffer 217 holds the codeword block.
  • the generated requests, composite redundancy, and codeword blocks held in the data buffer 217 are collected in the memory interface control unit 220 and output to the memory 300 via the memory interface 208.
  • the control unit 219 also performs this control. As a result, a request is issued from the memory controller 200, and subsequently, data (data blocks) for 4 pages, which are write data, and redundant blocks are sequentially output.
  • the request issued from the memory controller 200 is transferred to the memory control unit 311.
  • the memory control unit 311 controls the memory interface control unit 310 to transfer the data blocks and redundant blocks output from the memory controller 200 to a predetermined bank of the memory cell array 308. That is, the first data of the data block is transferred to bank # 1. Thereafter, the second data is transferred to bank # 2, the third data is transferred to bank # 3, and the last data is transferred to bank # 4.
  • the redundant block is transferred to bank # 5.
  • a data transfer command is output from the memory control unit 311 to each bank, followed by a write command. When the writing process is completed, each bank outputs a status.
  • the memory control unit 311 takes in these statuses, determines the result of writing, generates a status, and outputs it to the memory controller 200.
  • FIG. 10 is a diagram illustrating a request (code word block writing) process according to the first embodiment of the present technology.
  • the data block and four page redundancy are sequentially output from the memory controller 200 and transferred to each bank of the memory cell array 308.
  • the processing described with reference to FIG. 9 is different in that there is no generation of composite redundancy in the third encoding unit 215 and no writing of composite redundancy in the bank # 5.
  • FIG. 11 is a diagram illustrating a request (data block write) process according to the first embodiment of the present technology.
  • Data blocks are output from the memory controller 200 and transferred to the banks # 1 to # 4 of the memory cell array 308.
  • 9 differs from the processing described with reference to FIG. 9 in that there is no composite redundancy generation in the third encoding unit 215, only the data block is input to the data buffer 217, and there is no redundancy writing in the bank # 5. Yes.
  • FIG. 12 is a diagram illustrating a request (redundant block write) process according to the first embodiment of the present technology.
  • the redundant block is output from the memory controller 200 and transferred to the bank # 5 of the memory cell array 308.
  • 9 differs from the processing described with reference to FIG. 9 in that only page redundancy is input to the data buffer 217 and no data is written in the banks # 1 to # 4.
  • FIG. 13 is a diagram illustrating a request (composite redundant write) process according to the first embodiment of the present technology.
  • the compound redundancy is output from the memory controller 200 and transferred to the bank # 5 of the memory cell array 308.
  • the processing described with reference to FIG. 9 is different in that there is no input / output related to the data buffer 217, no data is written in the banks # 1 to # 4, and no page redundant portion is written in the bank # 5.
  • FIG. 14 is a diagram illustrating a request (reading of a composite codeword) process according to the first embodiment of the present technology.
  • the memory control unit 311 interprets this and outputs a command to instruct each bank to read.
  • the timing of outputting the command is shifted.
  • data and redundancy are output sequentially from banks # 0 to # 5. These constitute a composite codeword and are transferred to the memory controller 200. In reading, no status is output.
  • the composite codeword output from the memory 300 is transferred to the memory interface control unit 220 via the memory interface 208. Thereafter, the codeword is transferred to the third decoding unit 216 and decoded. The codeword block thus obtained is output to the work memory 210. Finally, the code word block in the work memory 210 is transferred to the host computer, and the process ends. These are controlled by the control unit 219.
  • FIG. 15 is a diagram illustrating a request (codeword block read) process according to the first embodiment of the present technology.
  • the memory control unit 311 When a request is issued from the memory controller 200, the memory control unit 311 outputs a command to instruct each bank to read. Thereafter, a codeword block is constituted by the data output from each bank and redundancy and transferred to the memory controller 200.
  • the processing described with reference to FIG. 14 is different in that there is no complex redundant reading, no input / output related to the third decoding unit 216, and that the codeword block is transferred from the memory interface control unit 220 to the work memory 210. Yes.
  • FIG. 16 is a diagram illustrating a request (data block read) process according to the first embodiment of the present technology.
  • the memory control unit 311 When a request is issued from the memory controller 200, the memory control unit 311 outputs a command for instructing reading to the banks # 1 to # 4. Thereafter, a data block is constituted by the data output from the bank and transferred to the memory controller 200.
  • the processing described with reference to FIG. 14 is different in that there is no redundant reading, there is no input / output related to the third decoding unit 216, and a data block is transferred from the memory interface control unit 220 to the work memory 210.
  • FIG. 17 is a diagram illustrating a request (reading of redundant block) process according to the first embodiment of the present technology.
  • the memory control unit 311 When a request is issued from the memory controller 200, the memory control unit 311 outputs a command for instructing reading to the bank # 5. Thereafter, the redundant block output from the bank # 5 is transferred to the memory controller 200.
  • the processing described with reference to FIG. 14 is different in that there is no reading of the data portion, no input / output related to the third decoding unit 216, and that the redundant block is transferred from the memory interface control unit 220 to the work memory 210. .
  • FIG. 18 is a diagram illustrating a request (composite redundant read) process according to the first embodiment of the present technology.
  • the memory control unit 311 When a request is issued from the memory controller 200, the memory control unit 311 outputs a command for instructing reading to the bank # 5. Thereafter, the composite redundancy output from the bank # 5 is transferred to the memory controller 200.
  • the processing described with reference to FIG. 14 is that there is no reading of data and page redundancy, no input / output with respect to the third decoding unit 216, and complex redundancy is transferred from the memory interface control unit 220 to the work memory 210. Is different.
  • the memory controller 200 generates a request and issues it to the memory 300. Thereafter, data and redundancy are exchanged between the memory controller 200 and the memory 300, whereby writing and reading processes are performed. Based on this, the writing and reading processing in the information processing system described with reference to FIG. 1 will be described with reference to FIGS. The description will be divided into processing in the memory controller 200 and processing in the memory 300.
  • FIG. 19 is a diagram illustrating an example of a processing procedure (memory controller) of a writing process according to the first embodiment of the present technology.
  • the memory controller 200 starts a write process.
  • the logical address included in the command is converted into a physical address (step S901).
  • the physical address corresponds to a page address and a bank number. Since the command write target is a page codeword, extended codeword, composite codeword, page redundancy, extended redundancy, composite redundancy, or redundant block, it is necessary to generate redundancy (step S902: Yes).
  • step S910 when the command writing target is page data, extension data, codeword block, or data block, it is not necessary to generate redundancy (step S902: No), so redundancy is not generated and the next processing is performed. move on.
  • the memory controller 200 generates a write request (step S903). This is performed by the request generator 218 described with reference to FIG. Thereafter, the generated request is issued to the memory 300 (step S904). Subsequently, data and redundancy corresponding to the request are output to the memory 300 (step S920). Thereby, the writing process is performed in the memory 300.
  • the memory controller 200 waits for a status to be output from the memory 300 (step S905). When the status is output (step S905: Yes), it is determined whether there is a writing failure based on this status (step S906). As a result, if the writing is successful (step S906: No), the writing process is terminated. On the other hand, in the case of writing failure (step S906: Yes), error processing is performed (step S907), and the writing processing is terminated.
  • error processing for example, processing for notifying the host computer 100 of abnormal termination can be performed.
  • FIG. 20 is a diagram illustrating an example of a processing procedure (memory controller) of the redundant generation processing according to the first embodiment of the present technology.
  • the memory controller 200 determines and generates necessary redundancy based on the command write target.
  • the write target is a page codeword or page redundancy (step S911: Yes)
  • the memory controller 200 generates page redundancy (step S912).
  • the write target is extended codeword or extended redundancy (step S911: No and step S913: Yes)
  • the memory controller 200 generates extended redundancy (step S914).
  • step S911 When the write target is a composite codeword, composite redundancy, or redundant block (step S911: No and step S913: No), the memory controller 200 generates composite redundancy (step S915). These redundant generations are performed by the first encoding unit 211, the second encoding unit 213, and the third encoding unit 215 described with reference to FIG. Note that in the first embodiment of the present technology, page redundancy is configured by parity and management information. The memory controller 200 generates page redundancy from the page data and the management information related thereto (step S912). The same applies to extended redundancy generation (step S914).
  • FIG. 21 is a diagram illustrating an example of a processing procedure (memory controller) of data and redundant output processing according to the first embodiment of the present technology.
  • the memory controller 200 outputs data or redundancy to the memory 300 based on the command write target.
  • step S921: Yes when the command is written to a page codeword, extension codeword, composite codeword, page data, extension data, codeword block, or data block, it is necessary to output data (step S921: Yes). ), Data output is performed (step S922).
  • page data, extension data, or a data block is selected and output based on the command write target.
  • step S921 when the command writing target is page redundancy, extended redundancy, composite redundancy or redundant block (step S921: No), the process proceeds to the next process without outputting data.
  • the command writing target is a page codeword, extended codeword, composite codeword, page redundancy, extended redundancy, codeword block, composite redundancy or redundant block, it is necessary to output redundancy (Ste S923: Yes), redundant output is performed (step S924).
  • page redundancy, extended redundancy, redundant block, redundant portion of codeword block or compound redundancy is selected and output based on the command write target. Thereafter, the data and redundant output processing is terminated.
  • the command is to be written is page data, extension data, or a data block (step S923: No)
  • redundant output is not performed and the data and redundant output processing is terminated.
  • FIG. 22 is a diagram illustrating an example of a processing procedure (memory) of the writing process according to the first embodiment of the present technology.
  • the memory 300 starts this processing. First, the request is interpreted, and the page address, bank number, and subpage number of the memory cell to be written are acquired (step S951). Next, data and redundancy are transferred to the memory cells corresponding to these (step S960). Thereafter, it waits for the status to be output from the memory cell (step S952).
  • step S953 the memory 300 checks whether or not these statuses include a status indicating a write failure (step S953).
  • step S953: No the status indicating the writing success is output to the memory controller 200 (step S954), and the writing process is terminated.
  • step S955 the status indicating the writing failure is output to the memory controller 200 (step S955), and the writing process is terminated.
  • FIG. 23 is a diagram illustrating an example of a processing procedure (memory) of data and redundant transfer processing according to the first embodiment of the present technology.
  • the memory 300 determines whether there is data to be transferred to the request writing target (step S961).
  • the write target is a page codeword, extension codeword, composite codeword, page data, extension data, codeword block or data block (step S961: Yes)
  • the data is transferred to the designated bank (step S962).
  • a page address and a data transfer command are output to the control signal of the bank.
  • a write command is output (step S963).
  • step S964: Yes When the transfer of all data has been completed (step S964: Yes), the process proceeds to the next process. If the transfer of all data has not been completed (step S964: No), the processing from step S962 is performed again. On the other hand, when the request write target is page redundancy, extended redundancy, composite redundancy, or redundant block (step S961: No), data transfer is not performed, and the process proceeds to the next process.
  • redundancy needs to be transferred (step S965: Yes).
  • the redundancy is transferred to the redundancy bank (step S966).
  • the page address, the subpage number, and the data transfer command are output as the redundant bank control signals.
  • a write command is output (step S967). Thereafter, the data and redundant transfer processing is terminated.
  • the request write target is page data, extension data, or a data block (step S965: No)
  • the redundant transfer process is not performed and the data and redundant transfer process is terminated.
  • FIG. 24 is a diagram illustrating an example of a processing procedure (memory controller) of a reading process according to the first embodiment of the present technology.
  • the memory controller 200 receives a read command from the host computer 100, the memory controller 200 starts a read process.
  • the memory controller 200 performs address conversion (step S801) for converting a logical address into a physical address.
  • a read request is generated (step S803), and this request is issued (step S804). Thereafter, the data output from the memory 300 and redundant reception are performed (step S820).
  • the read target of the request is a page codeword, extension codeword, or composite codeword, it is necessary to perform decoding (step S805: Yes).
  • step S830 decoding is performed (step S830), and the reading process ends. If the read target of the request is not a page codeword, an extended codeword, or a composite codeword (step S805: No), decoding is not performed and the reading process is terminated.
  • FIG. 25 is a diagram illustrating an example of a processing procedure (memory controller) of data and redundant reception processing according to the first embodiment of the present technology.
  • the memory controller 200 receives data or redundancy from the memory 300 based on the read target of the command.
  • a command read target is a page codeword, extension codeword, composite codeword, page data, extension data, codeword block, or data block
  • step S821: Yes when a command read target is a page codeword, extension codeword, composite codeword, page data, extension data, codeword block, or data block.
  • step S821 when the read target of the command is page redundancy, extended redundancy, composite redundancy or redundant block (step S821: No), the process proceeds to the next process without receiving data.
  • step S823: Yes when the command read target is a page codeword, extended codeword, composite codeword, page redundancy, extended redundancy, codeword block, composite redundancy or redundant block, it is necessary to receive redundancy ( In step S823: Yes, redundant reception is performed (step S824).
  • reception of page redundancy, extended redundancy, redundant block, redundant part of codeword block or composite redundancy is performed based on the command read target. Thereafter, the data and redundant reception process is terminated.
  • step S823: No when the read target of the command is page data, extension data, or a data block (step S823: No), the redundant reception process is not performed and the data and redundant reception process is terminated.
  • FIG. 26 is a diagram illustrating an example of a processing procedure (memory controller) of the decoding processing according to the first embodiment of the present technology.
  • the memory controller 200 selects the decoding process based on the read target. If the read target is a page codeword (step S831: Yes), the page codeword is decoded (step S835). When the read target is an extended codeword (step S831: No and step S832: Yes), the extended codeword is decoded (step S834). When the read target is a composite codeword (step S831: No and step S832: No), the composite codeword is decoded (step S833).
  • step S836: No If no error occurs as a result of decoding (step S836: No), the decoding process ends. On the other hand, when an error occurs as a result of decoding, for example, when error correction of page data in the page codeword has failed (step S836: Yes), the decoding process ends in error. In this case, the memory controller 200 notifies the host computer 100 of the occurrence of an error.
  • FIG. 27 is a diagram illustrating an example of a processing procedure (memory) of the reading process according to the first embodiment of the present technology.
  • the memory 300 starts this processing.
  • the request is interpreted, and the page address, bank number, and subpage number of the memory cell to be read are acquired (step S851).
  • a command to instruct reading is output to the bank of the memory cell array 308 corresponding to these (step S852).
  • step S860 the data and redundancy output from the memory cell array 308 are transferred to the memory controller 200 (step S860), and the reading process ends.
  • FIG. 28 is a diagram illustrating an example of a processing procedure (memory) of data and redundant transfer processing according to the first embodiment of the present technology.
  • the memory 300 determines whether there is data to be transferred to the request reading target (step S861).
  • the read target is a page codeword, extension codeword, composite codeword, page data, extension data, codeword block or data block (step S861: Yes)
  • the data output from the designated bank is stored in the memory controller 200.
  • Step S862 When the transfer of all data has been completed (step S864: Yes), the process proceeds to the next process. If the transfer of all data has not been completed (step S864: No), the process of step S862 is performed again.
  • step S861 determines whether or not there is redundancy to be transferred to the request reading target (step S865).
  • the read target is a page codeword, extended codeword, composite codeword, page redundancy, extended redundancy, codeword block, composite redundancy or redundant block (step S865: Yes)
  • the redundancy output from the redundancy bank Is transferred to the memory controller 200 (step S866).
  • the data and redundant transfer processing is terminated.
  • the request write target is page data, extension data, or a data block (step S865: No)
  • the data and redundant transfer processing is terminated without performing redundant transfer.
  • the first embodiment of the present technology it is assumed in advance that three types of redundancy of page redundancy, extended redundancy, and composite redundancy are used, and a data area and a redundancy area are arranged, and these are assigned by the same page address. It is accessible. As a result, access to the codeword can be performed at high speed. Further, when using composite redundancy, it is possible to omit a management table indicating the relationship between the composite redundancy and the code word that is the data portion thereof. Furthermore, it is possible to easily change the type of redundancy for already stored data. For example, when two pieces of page data stored as page redundancy are changed to extended redundancy, it is only necessary to write new extended redundancy in the redundant area.
  • management information is stored in the redundant area.
  • this management information only the redundant area may be accessed, and unnecessary writing and reading of the data area can be reduced.
  • composite redundancy it is possible to store other data, for example, the number of rewrites in the bank, in the subpage of the redundant area secured as the composite redundant storage area.
  • the page unit data and redundancy are stored in different areas of the memory, and the data, redundancy, or code word is accessed by the same page address.
  • the convenience of the information processing system can be improved.
  • redundancy is configured by parity and management information.
  • redundancy has a configuration including parity, management information, and management information parity.
  • FIG. 29 is a diagram illustrating a redundant configuration example according to the second embodiment of the present technology.
  • page redundancy is composed of management information, its management information parity and double parity. This double parity is parity corresponding to page data, management information, and management information parity.
  • extended redundancy is composed of extended management redundancy, and extended management information parity and extended double parity, which are parity. This extended double parity is parity corresponding to extended data, extended management information, and extended management information parity. The same applies to the page redundancy portion in the codeword block.
  • the management information parity and the extended management redundant parity are used to detect and correct errors in the management information, thereby protecting the management information.
  • FIG. 30 is a diagram illustrating a configuration example of the memory controller according to the second embodiment of the present technology.
  • the memory controller 200 according to the first embodiment of the present technology is different from the memory controller 200 in that the management information processing unit 222 is provided.
  • the management information processing unit 222 performs management information parity generation and management information error correction using the management information parity. Further, the management information processing unit 222 also generates extended management information parity and corrects error of the extended management information by the extended management information parity.
  • the control unit 219 controls the management information processing unit 222. Also, the first encoding unit 211 in FIG. 30 generates double parity from page data, management information, and management information parity.
  • the first decoding unit 212 reproduces page data, management information, and management information parity by decoding the page codeword.
  • the second encoding unit 213 generates extended double parity from the extended data, extended management information, and extended management information parity.
  • the second decoding unit 214 reproduces extension data, extension management information, and extension management information parity by decoding the extension codeword.
  • Other configurations of the memory controller 200 and the memory 300 are the same as those of the first embodiment of the present technology, and thus the description thereof is omitted.
  • protection of management information is enhanced by using redundancy configured by data parity, management information, and management information parity, and the information processing system Reliability can be improved.
  • the management information parity is stored in the subpage of the redundant area together with the parity and the management information.
  • a management information parity dedicated subpage is arranged in a redundant area, and the management information parity is stored therein.
  • FIG. 31 is a diagram illustrating a redundant configuration example in a modification of the second embodiment of the present technology.
  • the configuration of the page redundancy, the extended redundancy, and the page redundancy portion of the redundancy block can be the same as the redundancy described in FIG.
  • parity hereinafter, referred to as management information block parity
  • the bank # 5 of the memory cell array 308 in the modification of the second embodiment of the present technology is configured to include six subpages, and the subpage # 5 is a subpage for storing management information block parity. .
  • Management information block 222 is generated by the management information block parity. That is, the management information processing unit 222 collectively generates parity for the four pieces of management information.
  • the first encoding unit 211 generates parity from page data and management information.
  • the first decoding unit 212 reproduces page data and management information by decoding the page codeword.
  • the second encoding unit 213 generates extended parity from the extended data and the extended management information.
  • the second decoding unit 214 reproduces extension data and extension management information by decoding the extension codeword.
  • the request generation unit 218 has a function of generating a request for accessing the subpage # 5 of the bank # 5 of the memory cell array 308.
  • Other configurations are the same as those of the memory 300 and the memory controller 200 described with reference to FIG.
  • the processing time can be shortened compared to the case where the management information parity is generated for each page redundancy.
  • the modification of the second embodiment of the present technology by using the management information parity, protection of the management information is strengthened, and the reliability of the information processing system can be improved. Further, in the modification of the second embodiment of the present technology, since the parity is generated for a plurality of management information at once, the processing time can be shortened.
  • the memory controller 200 includes the data buffer 217.
  • the data buffer 217 is omitted by changing the data and redundant transfer method.
  • FIG. 32 is a diagram illustrating a configuration example of the memory controller according to the third embodiment of the present technology.
  • the memory controller 200 according to the third embodiment of the present technology need not include the data buffer 217.
  • the memory control unit 311 of the memory 300 is configured to be able to write to the memory cell array 308 even when data and redundancy are output from the memory controller 200 with a time shift.
  • Other configurations of the memory controller 200 and the memory 300 are the same as those of the first embodiment of the present technology, and thus description thereof is omitted.
  • FIG. 33 is a diagram illustrating a data and redundant transfer procedure according to the third embodiment of the present technology.
  • “a” represents the data and redundant transfer procedure in the first embodiment of the present technology, and assumes the case of page code word writing.
  • the page data is transferred to the first encoding unit 211 and the data buffer 217. Transferred.
  • the first encoding unit 211 generates redundancy.
  • the page data is held in the data buffer 217.
  • a request is issued after completion of redundant generation in the first encoding unit 211, and page data is output from the data buffer 217. Finally, the generated redundancy is output.
  • requests, data, and redundancy are output to the memory 300 without interruption.
  • the redundant generation time is 2 ⁇ s
  • the time from the generation of redundant data to the end of data and redundant output is 600 ns.
  • these are examples, and vary depending on the number of bits of page data.
  • the time from the start of input to the first encoding unit 211 to the end of data and redundant output in the memory controller 200 is approximately 2600 ns.
  • the memory controller 200 outputs a request and data to the memory 300 in advance while performing the encoding. Thereafter, the generated page redundancy is output. This state is shown in b in FIG. In the third embodiment of the present technology, page data and page redundancy are not output together. However, the memory control unit 311 of the memory 300 interprets the previously output request, and when the attribute is “codeword”, it waits until redundancy is output from the memory controller 200. Thereafter, transfer to the bank of the redundant area for the redundantly output redundancy is executed.
  • the memory 300 stores the data and the redundancy in different areas even if there is a time lag between the page data and the page redundancy output. is there.
  • the time from the start of input to the first encoding unit 211 to the end of the data and redundant output in the memory controller 200 is shortened to approximately 2050 ns.
  • the time from the generation of redundancy to the end of output is 50 ns. This is also an example of the output time, like a in FIG. Note that the memory controller 200 and the memory 300 perform the same processing even if the write target is an extended codeword and a composite codeword.
  • the data buffer in the memory controller 200 can be omitted, and the memory controller can have a simple configuration. Also, data and redundant transfer time can be shortened.
  • redundancy is configured by parity and management information.
  • the redundancy is configured only from the parity.
  • FIG. 34 is a diagram illustrating a redundant configuration example in a modification of the embodiment of the present technology.
  • the page redundancy, extended redundancy, and redundant block are configured only by parity.
  • the first encoding unit 211 and the second encoding unit 213 in the modification of the embodiment of the present technology generate redundancy or extended redundancy that does not include management information.
  • the first decoding unit 212 and the second decoding unit 214 reproduce page data or extension data from the code word.
  • the other configuration of the memory controller 200 is the same as that of the memory controller 200 described with reference to FIG.
  • the storage area of the memory cell array 308 can be reduced.
  • page unit data and redundancy can be stored in different areas of the memory, and the data, redundancy, or codeword can be accessed by the same page address.
  • the convenience of an information processing system can be improved.
  • 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.
  • this technique can also take the following structures.
  • a nonvolatile memory having a data area for storing data and a redundant area for storing redundancy for error detection and error correction of the data, the data, the redundancy, the data, and the redundancy are included.
  • a request generator for generating a request for writing or reading for any of the codewords;
  • a memory controller comprising: a control unit that issues the generated request and controls writing and reading to and from the nonvolatile memory.
  • the data is page data in page units
  • the redundancy is page redundancy for performing error detection and error correction of the page data
  • the codeword is a page codeword consisting of the page data and the page redundancy
  • the data is extended data including a plurality of the pages and the page data
  • the redundancy is extended redundancy for performing error detection and error correction of the extension data and the page redundancy
  • the codeword is the extension codeword consisting of the extension data and the extension redundancy and the page codeword
  • the request according to (2) wherein the request is a request for writing or reading any of the page data, the page redundancy, the page codeword, the extension data, the extension redundancy, and the extension codeword.
  • Memory controller (4)
  • the data is a codeword block including a plurality of the page codewords, the extension data, and the page data.
  • the redundancy is combined redundancy, extended redundancy, and page redundancy for error detection and error correction of the codeword block
  • the codeword is a composite codeword composed of the codeword block and the composite redundancy, the extension codeword, and a page codeword.
  • the request is written for any one of the page data, the page redundancy, the page codeword, the extension data, the extension redundancy, the extension codeword, the codeword block, the composite redundancy, and the composite codeword.
  • the memory controller according to (3), which is a request for requesting reading.
  • the data is a data block composed of a plurality of the page data included in the codeword block, the codeword block, the extension data, and the page data.
  • the redundancy is a redundant block composed of a plurality of the page redundancy and the composite redundancy included in the codeword block, the composite redundancy, the extended redundancy, and the page redundancy,
  • the request includes the page data, the page redundancy, the page codeword, the extension data, the extension redundancy, the extension codeword, the codeword block, the composite redundancy, the composite codeword, the data block, and the redundancy.
  • the memory controller according to (4), which is a request for requesting writing or reading for any of the blocks.
  • the page redundancy is configured by management information related to the page data and parity for performing error detection and error correction of the page data and the management information
  • the memory controller according to (5) wherein the extended redundancy includes extended management information related to the extended data and extended parity for performing error detection and error correction of the extended data and the extended management information.
  • the compound redundancy includes a management information block parity for performing error detection and error correction of a management information block including a plurality of the management information included in the codeword block, and error detection and error correction of the codeword block.
  • the memory controller according to (6) including a codeword block parity for performing.
  • the page redundancy performs error detection and error correction of the management information parity, the management information, the page data, the management information, and the management information parity for performing error detection and error correction of the management information.
  • the extended redundancy performs error detection and error correction of extension management information parity, extension management information, extension data, extension management information, and extension management information parity for error detection and error correction of the extension management information.
  • the memory controller according to (6) including an extended double parity to be performed.
  • (9) a first encoding unit that generates the page redundancy; A first decoding unit that performs error detection and error correction of the page data included in the page codeword by the page redundancy included in the page codeword; A second encoding unit for generating the extended redundancy; A second decoding unit that performs error detection and error correction of the extension data included in the extension codeword by the extension redundancy included in the extension codeword; A third encoding unit for generating the composite redundancy; A third decoding unit that performs error detection and error correction of the codeword block included in the composite codeword by the composite redundancy included in the composite codeword; The control unit transfers the page codeword input from the nonvolatile memory to the first decoding unit by the output of the request for requesting the reading and outputs the request for the reading to the nonvolatile memory.
  • a nonvolatile memory comprising a data area for storing data and a redundant area for storing redundancy for performing error detection and error correction of the data;
  • a memory controller for controlling the nonvolatile memory;
  • the memory controller is A request generation unit that generates a request for writing or reading the data, the redundancy, and any of the data and the redundant codeword with respect to the nonvolatile memory; And a control unit that issues the generated request and controls writing and reading to and from the nonvolatile memory.
  • the nonvolatile memory is configured by a bank that stores a page addressed by a page address, and the data area and the redundant area are assigned to the different banks and the data belonging to the same code word and The storage device according to (10), wherein the redundancy is stored in each of the banks having the same page address.
  • a host computer that outputs a command for requesting writing or reading to the memory controller
  • a non-volatile memory comprising a data area for storing data and a redundant area for storing redundancy for performing error detection and error correction of the data
  • a memory controller for controlling the nonvolatile memory based on the command,
  • the memory controller is A request generation unit that generates a request to write or read the data, the redundancy, and any of the data and the codeword consisting of the redundancy to the nonvolatile memory based on the command;
  • An information processing system comprising: a control unit that issues the generated request and controls writing to and reading from the nonvolatile memory.
  • a request generation procedure for generating a request for writing or reading for any of the codewords;
  • a memory controller control method comprising: a control procedure for controlling the writing and reading of the nonvolatile memory by issuing the generated request.

Landscapes

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

Abstract

 情報処理システムの利便性を向上させる。 情報処理システムのメモリコントローラにおいて、リクエスト生成部は、データを記憶するデータ領域とデータの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリに対してデータと冗長とデータおよび冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成する。制御部は、生成されたリクエストを発行して不揮発性メモリに対する書込みおよび読出しを制御する。

Description

メモリコントローラ、記憶装置、情報処理システム、および、メモリコントローラ制御方法
 本技術は、メモリコントローラ、記憶装置、情報処理システム、および、メモリコントローラ制御方法に関する。詳しくは、データの誤り検出および誤り訂正を行うメモリコントローラ、記憶装置、情報処理システム、および、メモリコントローラ制御方法に関する。
 従来、データの記憶信頼性を改善するため、データの誤り検出および訂正を行う誤り訂正符号(ECC:Error detection and Correction Code)を用いる情報処理システムが使用されている。この情報処理システムは、ECCを生成してデータともに不揮発性メモリに記憶させるものである。データを再生する際には、ECCに基づいてデータの誤り検出および訂正が行われる。このECCを工夫してデータの長期保存性を高め、記憶信頼性を改善する試みがなされている。例えば、データの誤り検出および誤り訂正を行う標準ECCを生成するとともに、複数のデータを単位として誤り検出および誤り訂正を行う拡張ECCを生成する情報処理システムが提案されている(例えば、特許文献1参照。)。
特開2011-081776号公報
 上述の従来技術では、データおよびECCは、不揮発性メモリのデータ領域およびECC領域にそれぞれ記憶される。しかし、ホストシステムからこれらの領域に対して個別にアクセスすることはできず、利便性に欠ける問題があった。例えば、ECC領域にECCとデータに関する管理情報とを同時に記憶させる場合には、管理情報のみをアクセスの対象とする場合が生じうる。このような場合、上述の従来技術では、対応することができなかった。
 本技術はこのような状況に鑑みて生み出されたものであり、データ領域とECC領域に対する個別の書込みおよび読出しを可能とし、情報システムの利便性を向上させることを目的とする。
 なお、以降の説明では、次の用語を使用する。誤り訂正符号のビット系列をパリティと称する。管理情報とパリティとを合わせたビット系列を冗長と称する。但し、管理情報を含まずパリティのみの場合も冗長と称する。データと冗長とを合わせたビット系列を符号語と称する。データに当該データの冗長を付加して符号語を生成することを符号化と称する。符号語から元のデータを再生することを復号と称する。
 本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、データを記憶するデータ領域と上記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリに対して上記データと上記冗長と上記データおよび上記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、上記生成された上記リクエストを発行して上記不揮発性メモリに対する書込みおよび読出しを制御する制御部とを具備するメモリコントローラである。これにより、データ、冗長または符号語の何れかについて書込みまたは読出しを行うという作用をもたらす。
 また、この第1の側面において、上記データは、ページ単位のページデータであり、上記冗長は、上記ページデータの誤り検出および誤り訂正を行うためのページ冗長であり、上記符号語は、上記ページデータおよび上記ページ冗長からなるページ符号語であり、上記リクエストは、上記ページデータと上記ページ冗長と上記ページ符号語との何れかについて書込みまたは読出しを要求するリクエストであってもよい。これにより、ページデータ、ページ冗長またはページ符号語の何れかについて書込みまたは読出しを行うという作用をもたらす。
 また、この第1の側面において、上記データは、複数の上記ページを含む拡張データと上記ページデータであり、上記冗長は、上記拡張データの誤り検出および誤り訂正を行うための拡張冗長と上記ページ冗長であり、上記符号語は、上記拡張データおよび上記拡張冗長からなる拡張符号語と上記ページ符号語であり、上記リクエストは、上記ページデータと上記ページ冗長と上記ページ符号語と上記拡張データと上記拡張冗長と上記拡張符号語との何れかについて書込みまたは読出しを要求するリクエストであってもよい。これにより、ページデータ、ページ冗長、ページ符号語、拡張データ、拡張冗長または拡張符号語の何れかについて書込みまたは読出しを行うという作用をもたらす。
 また、この第1の側面において、上記データは、複数の上記ページ符号語を含む符号語ブロックと上記拡張データと上記ページデータであり、上記冗長は、上記符号語ブロックの誤り検出および誤り訂正を行うための複合冗長と上記拡張冗長と上記ページ冗長であり、上記符号語は、上記符号語ブロックおよび上記複合冗長からなる複合符号語と上記拡張符号語とページ符号語であり、上記リクエストは、上記ページデータと上記ページ冗長と上記ページ符号語と上記拡張データと上記拡張冗長と上記拡張符号語と上記符号語ブロックと上記複合冗長と上記複合符号語との何れかについて書込みまたは読出しを要求するリクエストであってもよい。これにより、ページデータ、ページ冗長、ページ符号語、拡張データ、拡張冗長、拡張符号語、符号語ブロック、複合冗長または複合符号語の何れかについて書込みまたは読出しを行うという作用をもたらす。
 また、この第1の側面において、上記データは、上記符号語ブロックに含まれる複数の上記ページデータからなるデータブロックと上記符号語ブロックと上記拡張データと上記ページデータであり、上記冗長は、上記符号語ブロックに含まれる複数の上記ページ冗長および上記複合冗長からなる冗長ブロックと上記複合冗長と上記拡張冗長と上記ページ冗長であり、上記リクエストは、上記ページデータと上記ページ冗長と上記ページ符号語と上記拡張データと上記拡張冗長と上記拡張符号語と上記符号語ブロックと上記複合冗長と上記複合符号語と上記データブロックと上記冗長ブロックとの何れかについて書込みまたは読出しを要求するリクエストであってもよい。これにより、ページデータ、ページ冗長、ページ符号語、拡張データ、拡張冗長、拡張符号語、符号語ブロック、複合冗長、複合符号語、データブロックまたは冗長ブロックの何れかについて書込みまたは読出しを行うという作用をもたらす。
 また、この第1の側面において、上記ページ冗長は、上記ページデータに関する管理情報と上記ページデータおよび上記管理情報の誤り検出および誤り訂正を行うためのパリティとにより構成され、上記拡張冗長は、上記拡張データに関する拡張管理情報と上記拡張データおよび上記拡張管理情報の誤り検出および誤り訂正を行うための拡張パリティとにより構成されてもよい。これにより、ページ冗長は、管理情報とページデータおよび管理情報の誤り検出および誤り訂正を行うためのパリティとにより構成され、拡張冗長は、拡張管理情報と拡張データおよび拡張管理情報の誤り検出および誤り訂正を行うための拡張パリティとにより構成されるという作用をもたらす。
 また、この第1の側面において、上記複合冗長は、上記符号語ブロックに含まれる複数の上記管理情報を含む管理情報ブロックの誤り検出および誤り訂正を行うための管理情報ブロックパリティと上記符号語ブロックの誤り検出および誤り訂正を行うための符号語ブロックパリティとにより構成されてもよい。これにより、複合冗長は、管理情報ブロックの誤り検出および誤り訂正を行うための管理情報ブロックパリティと符号語ブロックパリティとにより構成されるという作用をもたらす。
 また、この第1の側面において、上記ページ冗長は、上記管理情報の誤り検出および誤り訂正を行うための管理情報パリティと上記管理情報と上記ページデータおよび上記管理情報および上記管理情報パリティの誤り検出および誤り訂正を行うための二重パリティとにより構成され、上記拡張冗長は、上記拡張管理情報の誤り検出および誤り訂正を行うための拡張管理情報パリティと上記拡張管理情報と上記拡張データおよび上記拡張管理情報および上記拡張管理情報パリティの誤り検出および誤り訂正を行うための拡張二重パリティとにより構成されてもよい。これにより、ページ冗長は、管理情報パリティと管理情報と二重パリティとにより構成され、拡張冗長は、拡張管理情報パリティと拡張二重パリティとにより構成されるという作用をもたらす。
 また、この第1の側面において、上記ページ冗長を生成する第1の符号化部と、上記ページ符号語に含まれる上記ページ冗長により当該ページ符号語に含まれる上記ページデータの誤り検出と誤り訂正とを行う第1の復号部と、上記拡張冗長を生成する第2の符号化部と、上記拡張符号語に含まれる上記拡張冗長により当該拡張符号語に含まれる上記拡張データの誤り検出と誤り訂正とを行う第2の復号部と、上記複合冗長を生成する第3の符号化部と、上記複合符号語に含まれる上記複合冗長により当該複合符号語に含まれる上記符号語ブロックの誤り検出と誤り訂正とを行う第3の復号部とをさらに具備し、上記制御部は、上記読出しを要求するリクエストの出力により上記不揮発性メモリから入力された上記ページ符号語の上記第1の復号部への転送と上記読出しを要求するリクエストの出力により上記不揮発性メモリから入力された上記拡張符号語の上記第2の復号部への転送と上記読出しを要求するリクエストの出力により上記不揮発性メモリから入力された上記複合符号語の上記第3の復号部への転送とをさらに制御してもよい。これにより、第1の符号化部と第2の符号化部と第3の符号化部とにより冗長を生成し、第1の復号部と第2の復号部と第3の復号部とにより復号を行うという作用をもたらす。
 また、本技術の第2の側面は、データを記憶するデータ領域と上記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリと、上記不揮発性メモリを制御するメモリコントローラとを具備し、上記メモリコントローラは、上記不揮発性メモリに対して上記データと上記冗長と上記データおよび上記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、上記生成された上記リクエストを発行して上記不揮発性メモリに対する書込みおよび読出しを制御する制御部とを備える記憶装置である。これにより、データ、冗長または符号語の何れかについて書込みまたは読出しを行うという作用をもたらす。
 また、この第2の側面において、上記不揮発性メモリは、ページアドレスによりアドレス付けられたページを記憶するバンクにより構成されて上記データ領域と上記冗長領域が異なる上記バンクに割り当てられて同一の上記符号語に属する上記データおよび上記冗長が同じページアドレスの上記バンクにそれぞれ記憶されてもよい。これにより同一の符号語に属するデータおよび冗長が同じページアドレスのバンクにそれぞれ記憶されるという作用をもたらす。
 また、本技術の第3の側面は、メモリコントローラに書込みまたは読出しを要求するコマンドを出力するホストコンピュータと、データを記憶するデータ領域と上記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリと、上記コマンドに基づいて上記不揮発性メモリを制御するメモリコントローラと
を具備し、上記メモリコントローラは、上記コマンドに基づいて上記不揮発性メモリに対して上記データと上記冗長と上記データおよび上記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、上記生成された上記リクエストを発行して上記不揮発性メモリに対する書込みおよび読出しを制御する制御部とを備える情報処理システムである。これにより、データ、冗長または符号語の何れかについて書込みまたは読出しを行うという作用をもたらす。
 また、本技術の第4の側面は、データを記憶するデータ領域と上記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリに対して上記データと上記冗長と上記データおよび上記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成手順と、上記生成された上記リクエストを発行して上記不揮発性メモリに対する書込みおよび読出しを制御する制御手順とを具備するメモリコントローラ制御方法である。これにより、データ、冗長または符号語の何れかについて書込みまたは読出しを行うという作用をもたらす。
 本技術によれば、ページ単位のデータと冗長とをメモリの異なる領域に記憶させ、これらデータ、冗長または符号語に対する同一のページアドレスによるアクセスを可能とし、情報システムの利便性を向上させるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術の第1の実施の形態における情報処理システムの構成例を示す図である。 本技術の第1の実施の形態におけるメモリコントローラの構成例を示す図である。 本技術の第1の実施の形態におけるメモリの構成例を示す図である。 本技術の第1の実施の形態におけるメモリセルアレイの構成例を示す図である。 本技術の第1の実施の形態における符号語の構成例を示す図である。 本技術の第1の実施の形態における冗長の構成例を示す図である。 本技術の第1の実施の形態におけるリクエストの構成例を示す図である。 本技術の第1の実施の形態におけるリクエストの属性の例を示す図である。 本技術の第1の実施の形態におけるリクエスト(複合符号語の書込み)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(符号語ブロックの書込み)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(データブロックの書込み)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(冗長ブロックの書込み)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(複合冗長の書込み)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(複合符号語の読出し)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(符号語ブロックの読出し)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(データブロックの読出し)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(冗長ブロックの読出し)の処理を説明する図である。 本技術の第1の実施の形態におけるリクエスト(複合冗長の読出し)の処理を説明する図である。 本技術の第1の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態における冗長生成処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態におけるデータおよび冗長出力処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。 本技術の第1の実施の形態におけるデータおよび冗長転送処理の処理手順(メモリ)の一例を示す図である。 本技術の第1の実施の形態における読出し処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態におけるデータおよび冗長受信処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態における復号処理の処理手順(メモリコントローラ)の一例を示す図である。 本技術の第1の実施の形態における読出し処理の処理手順(メモリ)の一例を示す図である。 本技術の第1の実施の形態におけるデータおよび冗長転送処理の処理手順(メモリ)の一例を示す図である。 本技術の第2の実施の形態における冗長の構成例を示す図である。 本技術の第2の実施の形態におけるメモリコントローラの構成例を示す図である。 本技術の第2の実施の形態の変形例における冗長の構成例を示す図である。 本技術の第3の実施の形態におけるメモリコントローラの構成例を示す図である。 本技術の第3の実施の形態におけるデータと冗長の転送手順を示す図である。 本技術の実施の形態の変形例における冗長の構成例を示す図である。
 以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
 1.第1の実施の形態(冗長にパリティと管理情報とを含む場合の例)
 2.第2の実施の形態(冗長にパリティと管理情報のパリティと管理情報とを含む場合の例)
 3.第3の実施の形態(データバッファを省略する場合の例)
 4.変形例
 <1.第1の実施の形態>
 [情報処理システムの構成例]
 図1は、本技術の第1の実施の形態における情報処理システムの構成例を示す図である。同図における情報処理システムは、ホストコンピュータ100とメモリコントローラ200とメモリ300とを備える。ホストコンピュータ100は、メモリコントローラ200を介してメモリ300とデータの入出力を行うものである。このホストコンピュータ100は、プロセッサ110とホストインターフェース109とを備える。プロセッサ110は、ホストコンピュータ100の全体の動作を制御するものである。ホストインターフェース109は、メモリコントローラ200とのやり取りを行うインターフェースである。ホストコンピュータ100によるデータの入出力は、信号線101を介してメモリコントローラ200に対してコマンドを発行することにより行う。データをメモリ300に書き込む際には、書込みコマンドを発行するとともに、書込み対象のデータをメモリコントローラ200に出力する。データをメモリ300から読み出す際には、読出しコマンドをメモリコントローラ200に対して発行する。その後、メモリ300から読み出されたデータがメモリコントローラ200からホストコンピュータ100に転送され、読出しを終了する。
 メモリコントローラ200は、メモリ300を制御するものである。このメモリコントローラ200は、ホストインターフェース209と処理部207とメモリインターフェース208とを備える。ホストインターフェース209は、ホストコンピュータ100とのやり取りを行うものである。処理部207は、ホストコンピュータ100から出力されたコマンドに基づいて処理を行うものである。具体的には、データの符号化および復号の処理を行い、また、データの書込みまたは読出しを要求するリクエストを作成し、メモリ300に対して発行する。なお、このリクエストは、信号線201を介して出力される。メモリインターフェース208は、メモリ300とのやり取りを行うものである。
 メモリ300は、データを記憶するものである。このメモリ300は、メモリインターフェース309とメモリデバイス制御部307とメモリセルアレイ308とを備える。メモリインターフェース309は、メモリコントローラ200とのやり取りを行うものである。メモリデバイス制御部307は、メモリコントローラ200から発行されたリクエストに基づいてメモリ300の制御を行うものである。具体的な制御の内容については、後述する。メモリセルアレイ308はデータを記憶するものであり、複数のメモリセルを備える。このメモリセルとして、不揮発性メモリ、例えば、ReRAM(resistance random access memory)を使用することができる。なお、データの書込みおよび読出しはページ単位で行う。このページは、例えば、256バイトの大きさである。なお、メモリ300は、特許請求の範囲に記載の不揮発性メモリの一例である。
 [メモリコントローラの構成]
 図2は、本技術の第1の実施の形態におけるメモリコントローラの構成例を示す図である。同図におけるホストインターフェース209は、ホストコンピュータ100から発行されたコマンドを処理部207内の制御部219に転送する。一方、ホストコンピュータ100との間でやり取りするデータについては、処理部207内のワークメモリ210との間で双方向の転送を行う。図2におけるメモリインターフェース208は、処理部207内のメモリインターフェース制御部220が出力したリクエストをメモリ300に転送し、メモリ300が出力したステータスを処理部207内の制御部219に転送する。一方、メモリ300との間でやり取りするデータについては、処理部207内のメモリインターフェース制御部220との間で双方向の転送を行う。ここで、ステータスは、メモリ300における書込みの成功または失敗を表す情報である。また、このステータスにはメモリ300が処理中であることを示す情報も含んでもよい。
 図2における処理部207は、ワークメモリ210と第1符号化部211と第1復号部212と第2符号化部213と第2復号部214と第3符号化部215と第3復号部216とを備える。また、処理部207は、データバッファ217とリクエスト生成部218と制御部219とメモリインターフェース制御部220と管理情報保持部221とを備える。ワークメモリ210は、データを保持するものである。このデータには、ホストコンピュータ100、メモリ300、第1復号部212、第2復号部214および第3復号部216が出力したデータ等が含まれる。また、ホストコンピュータ100が出力したデータを第1符号化部211、第2符号化部213、第3符号化部215またはデータバッファ217に振り分ける機能も有する。このワークメモリ210として、例えば、SRAMまたはDRAMを使用することができる。
 第1符号化部211は、ページ単位のデータであるページデータの冗長(以下、ページ冗長と称する。)を生成するものである。第2符号化部213は、複数のページを含む拡張データの冗長(以下、拡張冗長と称する。)を生成するものである。第3符号化部215は、複数のページ符号語を含む符号語ブロックの冗長(以下、複合冗長と称する。)を生成するものである。ここで、ページ符号語とはページデータに対応する符号を表すものであり、ページデータとページ冗長とにより構成される。第1復号部212は、ページ符号語に含まれるページ冗長により当該ページ符号語に含まれるページデータの誤り検出と誤り訂正とを行うものである。第2復号部214は、拡張符号語に含まれる拡張冗長により当該拡張符号語に含まれる拡張データの誤り検出と誤り訂正とを行うものである。ここで、拡張符号語とは、拡張データに対応する符号語を表すものであり、拡張データと拡張冗長とにより構成される。第3復号部216は、複合符号語に含まれる複合冗長により当該複合符号語に含まれる符号語ブロックの誤り検出と誤り訂正とを行うものである。ここで、複合符号語とは、符号語ブロックに対応する符号語を表すものであり、符号語ブロックと複合冗長とにより構成される。これらの詳細については後述する。
 データバッファ217は、メモリ300に転送するデータを一時的に保持するものである。このデータバッファとして、例えば、SRAMまたはDRAMを使用することができる。リクエスト生成部218は、リクエストを生成するものである。リクエストの詳細については後述する。
 メモリインターフェース制御部220は、データおよびリクエストの転送を制御する。具体的には、メモリ300にリクエストおよびデータを転送する際、リクエスト生成部218が生成したリクエストとデータバッファ217が出力したデータとをメモリ300に転送する。さらに、第1符号化部211、第2符号化部213または第3符号化部215が生成した冗長を選択してメモリ300に転送する。逆に、メモリ300が出力したデータ、冗長およびステータスを転送する際には、第1復号部212、第2復号部214または第3復号部216を選択してデータおよび冗長を転送し、また、ステータスを制御部219に転送する。
 制御部219は、ホストコンピュータ100が発行したコマンドを解釈してメモリコントローラ200の各部の制御を行う。具体的には、上述したワークメモリ210およびメモリインターフェース制御部220における転送の制御、リクエスト生成部218におけるリクエスト生成の制御、管理情報保持部221の制御を行う。この制御部219には、プロセッサを備えた制御回路を使用することができる。管理情報保持部221は、管理情報を保持するものである。この管理情報保持部221として、例えば、SRAMまたはDRAMを使用することができる。ここで、管理情報とは、データ以外の情報、例えば、ホストコンピュータ100が指定した論理アドレスとメモリ300における物理アドレスとの対応関係を示すアドレス変換情報である。
 なお、第1符号化部211は、特許請求の範囲に記載の第1の符号化部の一例である。第1復号部212は、特許請求の範囲に記載の第1の復号部の一例である。第2符号化部213は、特許請求の範囲に記載の第2の符号化部の一例である。第2復号部214は、特許請求の範囲に記載の第2の復号部の一例である。第3符号化部215は、特許請求の範囲に記載の第3の符号化部の一例である。第3復号部216は、特許請求の範囲に記載の第3の復号部の一例である。
 [メモリの構成]
 図3は、本技術の第1の実施の形態におけるメモリの構成例を示す図である。同図におけるメモリインターフェース309は、メモリコントローラ200から発行されたリクエストをメモリデバイス制御部307内のメモリ制御部311に転送する。また、メモリ制御部311が出力したステータスをメモリコントローラ200に転送する。データおよび冗長については、メモリデバイス制御部307内のメモリインターフェース制御部310との間で双方向の転送を行う。
 図3におけるメモリデバイス制御部307は、メモリインターフェース制御部310とメモリ制御部311とROM312とを備える。メモリインターフェース制御部310は、メモリセルアレイ308内の複数のバンクを選択し、当該バンクとの間でデータおよび冗長の転送を双方向に行うものである。メモリ制御部311は、メモリコントローラ200が発行したリクエストを解釈してメモリインターフェース制御部310とメモリセルアレイ308とを制御するものである。このメモリ制御部311は、メモリインターフェース制御部およびメモリセルアレイ308に対して制御信号を出力することより、これらを制御する。また、メモリセルアレイ308から出力されたステータスによりデータ等の書込みの成功または失敗を判断し、その結果をステータスとしてメモリコントローラ200に出力する。この判断は次のように行う。メモリセルアレイ内の各バンクは書込みの結果をステータスとしてメモリ制御部311に出力する。このステータスが全て成功を表すステータスであった場合には、メモリ制御部311は成功と判断する。一方、バンクが出力したステータスに1つでも失敗を表すステータスが存在した場合には、メモリ制御部311は失敗と判断する。
 ROM312は、メモリコントローラ200が出力したリクエストとデータ等の書込みまたは読出し対象となるメモリセルアレイ308内のバンクとの対応関係を示すバンク番号変換情報を保持するものである。このROM312にはPROMを使用することができる。
 図3におけるメモリセルアレイ308は、複数のバンクにより構成され、各バンクはページ単位でアクセス可能なメモリセルを複数備えている。また、各バンクは、独立してデータの書込みまたは読出しを行うことができる。各バンクは、双方向にデータまたは冗長の転送を行うデータ線とステータスを出力するステータス線と制御信号を入力する制御信号線とを備える。この制御信号には、データ転送、書込みまたは読出しを指示する指令とページアドレスが含まれる。図3におけるメモリセルアレイ308は、5個バンクにより構成される例を表したものである。
 [メモリセルアレイの構成]
 図4は、本技術の第1の実施の形態におけるメモリセルアレイの構成例を示す図である。同図におけるメモリセルアレイ308は、データ領域と冗長領域とを備えている。データ領域にはバンク#1乃至#4が割り当てられ、冗長領域にはバンク#5が割り当てられている。また、各バンクはpページのメモリセルを備えている。冗長領域に割り当てられたバンク#5のメモリセルは、さらに5個のサブページにより構成されており、後述する冗長の種類に応じた所定のサブページに冗長が記憶される。なお、バンク#5における制御信号は上述した指令とページアドレスに加えてサブページ番号が含まれる。
 [符号語の種類と構成]
 図5は、本技術の第1の実施の形態における符号語の構成例を示す図である。本技術の第1の実施の形態においてはページ冗長と拡張冗長と復号冗長の3種類の冗長を使用する。図5におけるaは、ページ冗長の場合の符号語、データおよび冗長の関係を表している。ページ符号語においてはページ単位のデータ(ページデータ)について冗長(ページ冗長)を生成する。ページ冗長にはページデータのパリティが含まれる。このパリティには、例えば、ハミング符号を使って生成されたパリティを使用することができる。ページ符号語を図4において説明したメモリセルアレイに記憶させる際には、ページデータをデータ領域に割り当てられたバンクのメモリセルに記憶させ、ページ冗長を冗長領域に割り当てられたバンクにおける同一ページアドレスのサブページに記憶させる。例えば、ページデータをバンク#1のページ#1のメモリセルに記憶させ、ページ冗長をバンク#5のページ#1かつサブページ#1のメモリセルに記憶させる。
 図5におけるbは、拡張符号語の場合の符号語、データおよび冗長の関係を表している。同図におけるデータは2ページの大きさである。つまり、拡張符号語においては2ページのサイズのデータ(拡張データ)について冗長(拡張冗長)を生成する。また、拡張冗長に含まれるパリティには、ページ冗長と同じ方式により生成されたパリティを使用する。拡張符号語は、データおよび冗長のサイズがページ符号語の2倍の大きさになる。そのため、拡張符号語をメモリセルアレイに記憶させる際には、拡張データをデータ領域の2個のバンクのメモリセルに記憶させ、ページ冗長を冗長領域のバンクにおける2個のサブページに記憶させる。例えば、ページデータをバンク#1のページ#1とバンク#2のページ#1のメモリセルに記憶させ、ページ冗長をバンク#5のページ#1のサブページ#1およびサブページ#2のメモリセルに記憶させる。
 図5におけるcは、複合符号語の場合の符号語、データおよび冗長の関係を表している。同図におけるデータは4個のページ符号語(符号語ブロック)により構成される。つまり、複合符号語においては、符号語ブロックについて冗長(複合冗長)を生成する。なお、符号語ブロックに含まれる4個のページデータをデータブロックと称し、符号語ブロックに含まれる4個のページ冗長と複合冗長とを合わせて冗長ブロックと称する。これらは後述するリクエストにおいて、それぞれデータ2および冗長2として扱われる。複合冗長に含まれるパリティは、ページ冗長と同じ方式かまたは異なる方式、例えば、LDPC(Low Density Parity Check)符号を使って生成されたパリティを使用することができる。複合符号語をメモリセルアレイに記憶させる際には、データブロックをデータ領域のバンクに記憶させ、冗長ブロックを冗長領域のバンクに記憶させる。例えば、データブロックをバンク#1乃至#4のページ#1のメモリセルに記憶させる。冗長ブロックに含まれる4個のページ冗長をバンク#5のページ#1のサブページ#1乃至#4に記憶させ、複合冗長をバンク#5のページ#1のサブページ#5に記憶させる。
 このように、拡張データをページデータの2倍のサイズとし、複合冗長のデータブロックを拡張データの2倍のサイズとする。このデータブロックに含まれるページデータ数とメモリセルアレイ308におけるデータ領域に含まれるバンク数とを同じ値とする。同様に、複合冗長の冗長ブロックに含まれる冗長数とメモリセルアレイ308における冗長領域のバンク#5のサブページ数とを同じ値としている。これにより、1つのページアドレスによりアクセス可能なメモリセルに対し、4個のページ符号語または2個の拡張符号語または1個の複合符号を記憶させることができる。なお、冗長領域のバンク#5におけるサブページ#1乃至#4は、ページ冗長と同じサイズとし、サブページ#5は複合冗長と同じサイズとする。このように、ページのサイズをデータ長の倍数または約数とし、サブページのサイズを冗長の長さと同じかまたは約数とすることにより、データ等を記録する際のメモリセル使用効率を向上させることができる。
 但し、上述したページ符号語、拡張符号語および複合符号語の関係および図4において説明したメモリセルアレイの構成はこれに限定されるものではない。例えば、図4における冗長領域のバンク#5に含まれるサブページは全て同じサイズとし、複合冗長を記憶させる場合には拡張冗長の場合と同様に複数のサブページに記憶させても良い。この場合、図4におけるサブページ#5の代わりにサブページ#1乃至#4と同じサイズのサブページ#5乃至#8を配置し、ここに複合冗長を記憶させることとなる。
 [冗長の構成]
 図6は、本技術の第1の実施の形態における冗長の構成例を示す図である。同図は、ページ冗長と拡張冗長と冗長ブロックのそれぞれの場合における冗長の構成を表したものである。本技術の第1の実施の形態においては、ページ冗長は、ページデータに関する管理情報とページデータおよび管理情報の誤り検出および誤り訂正を行うためのパリティとにより構成される。拡張冗長は、拡張データに関する管理情報である拡張管理情報と拡張データおよび拡張管理情報の誤り検出および誤り訂正を行うための拡張パリティとにより構成される。一方、冗長ブロックの複合冗長は、符号語ブロックのパリティである符号語ブロックパリティのみにより構成されている。
 [符号化部および復号部の動作]
 図2において説明した第1符号化部211は、入力されたページデータおよび当該ページデータに関する管理情報からパリティを生成するとともに、管理情報を加えてページ冗長として出力する。また、第1復号部212は、入力されたページ符号語を復号してページデータを出力するとともに、ページ符号語から管理情報を取り出して出力する。第2符号化部213は、入力された2ページ分のデータ(拡張データ)および当該拡張データに関する管理情報(拡張管理情報)から拡張パリティを生成するとともに、拡張管理情報を加えて拡張冗長として出力する。また、第2復号部214は、入力された拡張符号語を復号して拡張データを出力するとともに、拡張符号語から拡張管理情報を取り出して出力する。第3符号化部215は、入力された4個の符号語(符号語ブロック)からパリティ(符号語ブロックパリティ)を生成し、これを複合冗長として出力する。また、第3復号部216は、入力された複合符号語を復号して4個の符号語(符号語ブロック)を出力する。
 [管理情報]
 前述したように、本技術の第1の実施の形態においては、アドレス変換情報を管理情報とすることができる。この管理情報は、メモリ300の所定の領域に保存されており、起動時にメモリコントローラ200によりメモリ300から読み出され、管理情報保持部221に転送される。しかし、電源異常等の事故により、この管理情報が破壊される場合がある。このような場合、管理情報の再生が必要となる。本技術の第1の実施の形態においては、データのパリティとこのデータに関連する管理情報の一部とを含む冗長を生成し、メモリセルアレイ308の冗長領域に保存する。そして、管理情報の再生を行う際には、冗長領域に保存されている管理情報を読み出して元の管理情報を再生する。これらの制御は制御部219が行う。
 [リクエストの構成]
 図7は、本技術の第1の実施の形態におけるリクエストの構成例を示す図である。同図は、図2において説明したリクエスト生成部218が生成するリクエストの構成を表したものである。リクエスト生成部218は、ホストコンピュータ100が出力したコマンドに基づいて、上述した各種の符号語、データおよび冗長についてメモリ300に対して書込みまたは読出しを要求するリクエストを生成する。図7に表したように、このリクエストは5個のフィールドからなり、それぞれオペレーションコード、符号種別、属性、識別番号およびページアドレスを示す識別子が配置される。オペレーションコードは、リクエストの種類を表すものである。図7には、書込みおよび読出しを表すオペレーションコードを記載した。符号種別は、符号の種類を表すものである。本技術の第1の実施の形態では、ページ符号、拡張符号および複合符号の中から指定する。属性については後述する。識別番号は、書込みまたは読出しの対象となるバンクまたはサブページの番号を表すものである。同様に、ページアドレスは、書込みまたは読出しの対象となるページアドレスを表すものである。
 [属性識別子の構成]
 図8は、本技術の第1の実施の形態におけるリクエストの属性の例を示す図である。この属性は、リクエストにおけるオペランドの種類を表すものである。同図に表した属性である符号語、データ、冗長、データ2および冗長2は図5に表した符号語等と1対1に対応する。この属性および上述した符号種別により書込みまたは読出しの対象となるデータ等を特定することができる。
 [リクエストによる書込みおよび読出し処理]
 このようなリクエストが生成され、メモリコントローラ200からメモリ300に対して発行される。図3において説明したメモリ制御部311は、このリクエストを解釈し、メモリインターフェース制御部310およびメモリセルアレイ308を制御する。リクエストの種類が「Write」、符号種別が「ページ符号」、属性が「符号語」、識別番号が「1」である場合を例に挙げて、メモリ制御部311の制御動作を説明する。まず、メモリ制御部311は、メモリインターフェース制御部310に対し、メモリコントローラ200が出力したページ符号語のうちページデータをバンク#1に転送するようにメモリインターフェース制御部310を制御する。また、同バンクの制御信号としてデータ転送を指示する指令とリクエストのページアドレスにより指定されたページアドレスを出力する。その後、書込みを指示する指令を同バンクに出力する。次に、メモリ制御部311は、メモリインターフェース制御部310に対し、メモリコントローラ200が出力したページ符号語のうちページ冗長を冗長バンクであるバンク#5のサブページ#1に転送するように制御する。データ転送指令および書込み指令も同様に出力される。
 このように、符号語は、同じページアドレスのデータ領域および冗長領域に書き込まれる。また、同じ識別番号が割り振られたデータ領域のバンクおよび冗長領域のバンクに含まれるサブページは、対として扱われ、それぞれ同一の符号語に属するデータおよび冗長が記憶される。符号種別が「拡張符号」の場合も同様に、同じ識別番号が割り振られたデータ領域のバンクと冗長領域のバンク#5に含まれるサブページとは、対として扱われ、リクエストにより指定された識別番号によりサブページ番号が一意に決まる。例えば、符号種別が「拡張符号」、属性が「符号語」、識別番号が「1」のとき、拡張データはバンク#1と#2に書き込まれ、拡張冗長はバンク#5のサブページ#1と#2に書き込まれる。これらは、ROM312に保存されたバンク番号変換情報に基づいて行われる。
 次に、複合冗長が指定された場合を例に挙げて、メモリコントローラ200とメモリ300におけるリクエストの処理について、図9乃至18を用いて説明する。
 図9は、本技術の第1の実施の形態におけるリクエスト(複合符号語の書込み)の処理を説明する図である。同図は、メモリコントローラ200のリクエスト出力、データ出力およびステータス入力とメモリセルアレイ308の各バンクにおける指令入力、データ入力およびステータス出力との関係を表したものである。
 まず、メモリコントローラ200における処理について説明する。なお、ホストコンピュータ100が出力した4個のページ符号語(符号語ブロック)がワークメモリ210に保存されているものとする。制御部219は、ワークメモリ210を制御し、符号語ブロックを第3符号化部215とデータバッファ217とに転送する。第3符号化部215は、複合冗長を生成する。また、制御部219は、リクエスト生成部218に書込みリクエストを生成させる。この間、データバッファ217は、符号語ブロックを保持する。その後、生成されたリクエストおよび複合冗長とデータバッファ217に保持されていた符号語ブロックとは、メモリインターフェース制御部220に集められ、メモリインターフェース208を介してメモリ300に出力される。制御部219は、この制御も行う。これにより、メモリコントローラ200からリクエストが発行され、続いて書込みデータである4ページ分のデータ(データブロック)と冗長ブロックが順に出力される。
 次に、メモリ300における処理について説明する。メモリコントローラ200から発行されたリクエストは、メモリ制御部311に転送される。メモリ制御部311は、このリクエストに基づいて、メモリインターフェース制御部310を制御し、メモリコントローラ200から出力されたデータブロックと冗長ブロックをメモリセルアレイ308の所定のバンクに転送させる。つまり、データブロックの最初のデータはバンク#1に転送される。その後、2番目のデータはバンク#2に、3番目のデータはバンク#3に、最後のデータはバンク#4にそれぞれ転送される。また、冗長ブロックはバンク#5に転送される。この転送の際データ転送指令がメモリ制御部311から各バンクに出力され、続いて書込み指令が出力される。書込み処理が終了すると、各バンクはステータスを出力する。メモリ制御部311は、これらのステータスを取り込み、書込みの結果を判定してステータスを生成しメモリコントローラ200に出力する。
 図10は、本技術の第1の実施の形態におけるリクエスト(符号語ブロックの書込み)の処理を説明する図である。メモリコントローラ200からデータブロックと4個のページ冗長が順に出力され、メモリセルアレイ308の各バンクに転送される。図9に関して説明した処理とは、第3符号化部215における複合冗長の生成がない点とバンク#5における複合冗長の書込みがない点が異なっている。
 図11は、本技術の第1の実施の形態におけるリクエスト(データブロックの書込み)の処理を説明する図である。メモリコントローラ200からデータブロックが出力され、メモリセルアレイ308のバンク#1乃至#4に転送される。図9に関して説明した処理とは、第3符号化部215における複合冗長の生成がない点、データバッファ217にはデータブロックのみを入力する点およびバンク#5における冗長の書込みがない点が異なっている。
 図12は、本技術の第1の実施の形態におけるリクエスト(冗長ブロックの書込み)の処理を説明する図である。メモリコントローラ200から冗長ブロックが出力され、メモリセルアレイ308のバンク#5に転送される。図9に関して説明した処理とは、データバッファ217にはページ冗長のみを入力する点とバンク#1乃至#4におけるデータの書込みがない点が異なっている。
 図13は、本技術の第1の実施の形態におけるリクエスト(複合冗長の書込み)の処理を説明する図である。メモリコントローラ200から複合冗長が出力され、メモリセルアレイ308のバンク#5に転送される。図9に関して説明した処理とは、データバッファ217に関する入出力がない点、バンク#1乃至#4におけるデータの書込みがない点およびバンク#5におけるページ冗長部分の書込みがない点が異なっている。
 図14は、本技術の第1の実施の形態におけるリクエスト(複合符号語の読出し)の処理を説明する図である。まず、メモリ300における処理について説明する。図9に関して説明した書込み処理と同様に、メモリコントローラ200よりリクエストが発行されると、メモリ制御部311は、これを解釈し、各バンクに読出しを指示する指令を出力する。この際、データ転送のタイミングを合わせるため、指令を出力するタイミングをずらしている。メモリセルにおける読出し時間経過後、バンク#0乃至#5から順にデータおよび冗長が出力される。これらにより複合符号語が構成され、メモリコントローラ200に転送される。なお、読出しの際には、ステータスは出力しない。
 次に、メモリコントローラ200における処理を説明する。メモリ300が出力した複合符号語がメモリインターフェース208を介してメモリインターフェース制御部220に転送される。その後、この符号語が第3復号部216に転送され、復号される。これにより得られた符号語ブロックがワークメモリ210に出力される。最後に、ワークメモリ210の符号語ブロックがホストコンピュータに転送され、処理を終了する。これらは制御部219により制御される。
 図15は、本技術の第1の実施の形態におけるリクエスト(符号語ブロックの読出し)の処理を説明する図である。メモリコントローラ200よりリクエストが発行されると、メモリ制御部311は、各バンクに読出しを指示する指令を出力する。その後、各バンクから出力されたデータおよび冗長により符号語ブロックを構成し、メモリコントローラ200に転送する。図14に関して説明した処理とは、複合冗長の読出しがない点、第3復号部216に関する入出力がない点および符号語ブロックがメモリインターフェース制御部220からワークメモリ210に転送される点が異なっている。
 図16は、本技術の第1の実施の形態におけるリクエスト(データブロックの読出し)の処理を説明する図である。メモリコントローラ200よりリクエストが発行されると、メモリ制御部311は、バンク#1乃至#4に読出しを指示する指令を出力する。その後、バンクから出力されたデータによりデータブロックを構成し、メモリコントローラ200に転送する。図14に関して説明した処理とは、冗長の読出しがない点、第3復号部216に関する入出力がない点およびデータブロックがメモリインターフェース制御部220からワークメモリ210に転送される点が異なっている。
 図17は、本技術の第1の実施の形態におけるリクエスト(冗長ブロックの読出し)の処理を説明する図である。メモリコントローラ200よりリクエストが発行されると、メモリ制御部311は、バンク#5に読出しを指示する指令を出力する。その後、バンク#5から出力された冗長ブロックをメモリコントローラ200に転送する。図14に関して説明した処理とは、データ部分の読出しがない点、第3復号部216に関する入出力がない点および冗長ブロックがメモリインターフェース制御部220からワークメモリ210に転送される点が異なっている。
 図18は、本技術の第1の実施の形態におけるリクエスト(複合冗長の読出し)の処理を説明する図である。メモリコントローラ200よりリクエストが発行されると、メモリ制御部311は、バンク#5に読出しを指示する指令を出力する。その後、バンク#5から出力された複合冗長をメモリコントローラ200に転送する。図14に関して説明した処理とは、データおよびページ冗長部分の読出しがない点、第3復号部216に関する入出力がない点および複合冗長がメモリインターフェース制御部220からワークメモリ210に転送される点が異なっている。
 以上説明したように、メモリコントローラ200は、リクエストを生成してメモリ300に発行する。その後、メモリコントローラ200とメモリ300との間でデータおよび冗長のやり取りを行うことにより、書込みおよび読出しの処理が行われる。これを踏まえ、図1に関して説明した情報処理システムにおける書込みおよび読出し処理について図19乃至29を参照して説明する。なお、説明はメモリコントローラ200における処理とメモリ300における処理とに分けて行う。
 [書込み処理の処理手順(メモリコントローラ側の処理)]
 図19は、本技術の第1の実施の形態における書込み処理の処理手順(メモリコントローラ)の一例を示す図である。ホストコンピュータ100より書込みのコマンドを受け取ると、メモリコントローラ200は、書込み処理を開始する。まず、管理情報のアドレス変換情報に基づいて、コマンドに含まれる論理アドレスを物理アドレスに変換する(ステップS901)。なお、本技術の第1の実施の形態において、この物理アドレスにはページアドレスおよびバンク番号が該当する。コマンドの書込み対象がページ符号語、拡張符号語、複合符号語、ページ冗長、拡張冗長、複合冗長または冗長ブロックである場合には、冗長を生成する必要があるため(ステップS902:Yes)、冗長を生成する(ステップS910)。一方、コマンドの書込み対象がページデータ、拡張データ、符号語ブロックまたはデータブロックである場合には、冗長を生成する必要がないため(ステップS902:No)、冗長を生成せず、次の処理に進む。
 次に、メモリコントローラ200は、書込みのリクエストを生成する(ステップS903)。これは、図2に関して説明したリクエスト生成部218により行われる。その後、生成したリクエストをメモリ300に発行する(ステップS904)。続いて、リクエストに応じたデータおよび冗長をメモリ300に出力する(ステップS920)。これにより、メモリ300において書込み処理が行われる。メモリコントローラ200は、メモリ300からステータスが出力されるのを待つ(ステップS905)。ステータスが出力されると(ステップS905:Yes)、このステータスにより書込み失敗の有無を判断する(ステップS906)。その結果、書込み成功の場合は(ステップS906:No)、書込み処理を終了する。一方、書込み失敗の場合は(ステップS906:Yes)、エラー処理を行い(ステップS907)、書込み処理を終了する。ここで、エラー処理として、例えば、ホストコンピュータ100に異常終了を通知する処理を行うことができる。
 [冗長生成処理の処理手順(メモリコントローラ側の処理)]
 図20は、本技術の第1の実施の形態における冗長生成処理の処理手順(メモリコントローラ)の一例を示す図である。メモリコントローラ200は、コマンドの書込み対象に基づいて、必要な冗長を判断し、生成する。書込み対象がページ符号語またはページ冗長である場合(ステップS911:Yes)、メモリコントローラ200はページ冗長を生成する(ステップS912)。書込み対象が拡張符号語または拡張冗長である場合(ステップS911:NoかつステップS913:Yes)、メモリコントローラ200は拡張冗長を生成する(ステップS914)。書込み対象が複合符号語、複合冗長または冗長ブロックである場合(ステップS911:NoかつステップS913:No)、メモリコントローラ200は複合冗長を生成する(ステップS915)。これら冗長の生成は、図2に関して説明した第1符号化部211、第2符号化部213および第3符号化部215により行われる。なお、本技術の第1の実施の形態においては、ページ冗長はパリティと管理情報とにより構成される。メモリコントローラ200は、ページデータとこれに関する管理情報とからページ冗長を生成することとなる(ステップS912)。これは、拡張冗長生成(ステップS914)についても同様である。
 [データ、冗長出力処理の処理手順(メモリコントローラ側の処理)]
 図21は、本技術の第1の実施の形態におけるデータおよび冗長出力処理の処理手順(メモリコントローラ)の一例を示す図である。メモリコントローラ200は、コマンドの書込み対象に基づいて、データまたは冗長をメモリ300に対して出力する。まず、コマンドの書込み対象がページ符号語、拡張符号語、複合符号語、ページデータ、拡張データ、符号語ブロックまたはデータブロックである場合には、データを出力する必要があるため(ステップS921:Yes)、データ出力を行う(ステップS922)。ここでは、コマンドの書込み対象に基づいて、ページデータ、拡張データまたはデータブロックを選択して出力する。
 一方、コマンドの書込み対象がページ冗長、拡張冗長、複合冗長または冗長ブロックである場合には(ステップS921:No)、データの出力を行わず、次の処理に進む。次に、コマンドの書込み対象がページ符号語、拡張符号語、複合符号語、ページ冗長、拡張冗長、符号語ブロック、複合冗長または冗長ブロックである場合には、冗長を出力する必要があるため(ステップS923:Yes)、冗長出力を行う(ステップS924)。ここでは、コマンドの書込み対象に基づいて、ページ冗長、拡張冗長、冗長ブロック、符号語ブロックの冗長部分または複合冗長を選択して出力する。その後、データおよび冗長出力処理を終了する。一方、コマンドの書込み対象がページデータ、拡張データまたはデータブロックである場合には(ステップS923:No)、冗長の出力を行わず、データおよび冗長出力処理を終了する。
 [書込み処理の処理手順(メモリ側の処理)]
 図22は、本技術の第1の実施の形態における書込み処理の処理手順(メモリ)の一例を示す図である。メモリ300は、メモリコントローラ200から書込みを要求するリクエストが発行されると、本処理を開始する。まず、リクエストを解釈し、書込みを行うメモリセルのページアドレス、バンク番号およびサブページ番号を取得する(ステップS951)。次に、これらに対応するメモリセルにデータ、冗長を転送する(ステップS960)。その後、当該メモリセルからステータスが出力されるのを待つ(ステップS952)。全てのメモリセルからステータスが出力された場合(ステップS952:Yes)、メモリ300はこれらのステータスに書込み失敗を表すステータスが含まれているか否かを調べる(ステップS953)。書込み失敗を表すステータスが含まれていない場合は(ステップS953:No)、メモリコントローラ200に対して書き込み成功を表すステータスを出力し(ステップS954)、書込み処理を終了する。一方、書込み失敗を表すステータスが含まれている場合は(ステップS953:Yes)、メモリコントローラ200に対して書き込み失敗を表すステータスを出力し(ステップS955)、書込み処理を終了する。
 [データ、冗長転送処理の処理手順(メモリ側の処理)]
 図23は、本技術の第1の実施の形態におけるデータおよび冗長転送処理の処理手順(メモリ)の一例を示す図である。メモリ300は、リクエストの書込み対象に転送すべきデータが存在するか否かを判断する(ステップS961)。書込み対象がページ符号語、拡張符号語、複合符号語、ページデータ、拡張データ、符号語ブロックまたはデータブロックである場合には(ステップS961:Yes)、指定バンクにデータを転送する(ステップS962)。この際、当該バンクの制御信号に、ページアドレスとデータ転送指令を出力する。データ転送後、書込み指令を出力する(ステップS963)。全データの転送が終了した場合(ステップS964:Yes)、次の処理に進む。全データの転送が終了していない場合は(ステップS964:No)、再度ステップS962からの処理を行う。一方、リクエストの書込み対象が、ページ冗長、拡張冗長、複合冗長または冗長ブロックである場合には(ステップS961:No)、データ転送を行わず、次の処理に進む。
 次に、リクエストの書込み対象が、ページ符号語、拡張符号語、複合符号語、符号語ブロック複合冗長または冗長ブロックである場合には、冗長を転送する必要があるため(ステップS965:Yes)、冗長バンクに冗長を転送する(ステップS966)。この際、冗長バンクの制御信号には、ページアドレス、サブページ番号およびデータ転送指令が出力される。冗長転送後、書込み指令が出力される(ステップS967)。その後、データおよび冗長転送処理を終了する。一方、リクエストの書込み対象が、ページデータ、拡張データまたはデータブロックである場合には(ステップS965:No)、冗長転送を行わず、データおよび冗長転送処理を終了する。
 [読出し処理の処理手順(メモリコントローラ側の処理)]
 図24は、本技術の第1の実施の形態における読出し処理の処理手順(メモリコントローラ)の一例を示す図である。メモリコントローラ200は、ホストコンピュータ100から読出しのコマンドを受信すると、読出し処理を開始する。メモリコントローラ200は、論理アドレスを物理アドレスに変換するアドレス変換(ステップS801)を行う。次に、読出しのリクエストを生成し(ステップS803)、このリクエストを発行する(ステップS804)。その後、メモリ300が出力するデータおよび冗長の受信を行う(ステップS820)。リクエストの読出し対象が、ページ符号語、拡張符号語または複合符号語の場合は、復号を行う必要が有るため(ステップS805:Yes)、復号を行い(ステップS830)、読出し処理を終了する。リクエストの読出し対象が、ページ符号語、拡張符号語または複合符号語でない場合は(ステップS805:No)、復号を行わず、読出し処理を終了する。
 [データ、冗長受信処理の処理手順(メモリコントローラ側の処理)]
 図25は、本技術の第1の実施の形態におけるデータおよび冗長受信処理の処理手順(メモリコントローラ)の一例を示す図である。メモリコントローラ200は、コマンドの読出し対象に基づいて、データまたは冗長をメモリ300から受信する。まず、コマンドの読出し対象がページ符号語、拡張符号語、複合符号語、ページデータ、拡張データ、符号語ブロックまたはデータブロックである場合には、データを受信する必要があるため(ステップS821:Yes)、データ受信を行う(ステップS822)。ここでは、コマンドの読出し対象に基づいて、ページデータ、拡張データまたはデータブロックの受信を行う。一方、コマンドの読出し対象がページ冗長、拡張冗長、複合冗長または冗長ブロックである場合には(ステップS821:No)、データの受信を行わず、次の処理に進む。次に、コマンドの読出し対象がページ符号語、拡張符号語、複合符号語、ページ冗長、拡張冗長、符号語ブロック、複合冗長または冗長ブロックである場合には、冗長を受信する必要があるため(ステップS823:Yes)、冗長の受信を行う(ステップS824)。ここでは、コマンドの読出し対象に基づいて、ページ冗長、拡張冗長、冗長ブロック、符号語ブロックの冗長部分または複合冗長の受信を行う。その後、データおよび冗長受信処理を終了する。一方、コマンドの読出し対象がページデータ、拡張データまたはデータブロックである場合には(ステップS823:No)、冗長の受信を行わず、データおよび冗長受信処理を終了する。
 [復号処理の処理手順(メモリコントローラ側の処理)]
 図26は、本技術の第1の実施の形態における復号処理の処理手順(メモリコントローラ)の一例を示す図である。メモリコントローラ200は、読出し対象に基づいて、復号処理を選択する。読出し対象が、ページ符号語である場合は(ステップS831:Yes)、ページ符号語の復号を行う(ステップS835)。読出し対象が、拡張符号語である場合は(ステップS831:NoかつステップS832:Yes)、拡張符号語の復号を行う(ステップS834)。読出し対象が、複合符号語である場合は(ステップS831:NoかつステップS832:No)、複合符号語の復号を行う(ステップS833)。これらの復号は、図2に関して説明した第1復号部212、第2復号部214および第3復号部216により行われる。復号の結果エラーを生じない場合には(ステップS836:No)、復号処理を終了する。一方、復号の結果エラーを生じた場合、例えば、ページ符号語におけるページデータの誤り訂正に失敗した場合には(ステップS836:Yes)、復号処理をエラー終了する。この場合、メモリコントローラ200は、エラーの発生をホストコンピュータ100に通知する。
 [読出し処理の処理手順(メモリ側の処理)]
 図27は、本技術の第1の実施の形態における読出し処理の処理手順(メモリ)の一例を示す図である。メモリ300は、メモリコントローラ200から読出しのリクエストが発行されると、本処理を開始する。まず、リクエストを解釈し、読出しを行うメモリセルのページアドレス、バンク番号およびサブページ番号を取得する(ステップS851)。次に、これらに対応するメモリセルアレイ308のバンクに読出しを指示する指令を出力する(ステップS852)。この際、データ転送のタイミングを合わせるため、指令を出力するタイミングをバンクごとにずらす必要がある。次に、メモリセルアレイ308から出力されたデータおよび冗長をメモリコントローラ200に転送し(ステップS860)、読出し処理を終了する。
 [データおよび冗長転送処理の処理手順(メモリ側の処理)]
 図28は、本技術の第1の実施の形態におけるデータおよび冗長転送処理の処理手順(メモリ)の一例を示す図である。メモリ300は、リクエストの読出し対象に転送すべきデータが存在するか否かを判断する(ステップS861)。読出し対象がページ符号語、拡張符号語、複合符号語、ページデータ、拡張データ、符号語ブロックまたはデータブロックである場合には(ステップS861:Yes)、指定バンクから出力されたデータをメモリコントローラ200に転送する(ステップS862)。全データの転送が終了した場合(ステップS864:Yes)、次の処理に進む。全データの転送が終了していない場合は(ステップS864:No)、再度ステップS862の処理を行う。一方、リクエストの読出し対象が、ページ冗長、拡張冗長、複合冗長または冗長ブロックである場合には(ステップS861:No)、データ転送を行わず、次の処理に進む。次に、メモリ300は、リクエストの読出し対象に転送すべき冗長が存在するか否かを判断する(ステップS865)。読出し対象が、ページ符号語、拡張符号語、複合符号語、ページ冗長、拡張冗長、符号語ブロック、複合冗長または冗長ブロックである場合には(ステップS865:Yes)、冗長バンクから出力された冗長をメモリコントローラ200に転送する(ステップS866)。その後データおよび冗長転送処理を終了する。一方、リクエストの書込み対象が、ページデータ、拡張データまたはデータブロックである場合には(ステップS865:No)、冗長の転送を行わず、データおよび冗長転送処理を終了する。
 本技術の第1の実施の形態においては、ページ冗長と拡張冗長と複合冗長の3種類の冗長を使用することをあらかじめ想定して、データ領域および冗長領域を配置し、これらを同一ページアドレスによりアクセス可能としている。これにより、符号語に対するアクセスを高速に行うことができる。また、複合冗長を使用する際に、複合冗長とそのデータ部分である符号語との関係を示す管理テーブルを省くことができる。さらに、すでに記憶させたデータに対する冗長の種類変更を容易にすることができる。例えば、ページ冗長として記憶させた2個のページデータを拡張冗長に変更する際には、冗長領域に新たな拡張冗長を書き込むだけで済む。さらに、本技術の第1の実施の形態においては、冗長領域に管理情報を記憶させている。この管理情報に対してアクセスする際には、冗長領域のみのアクセスでよく、データ領域の不要な書込みおよび読出しを減らすことができる。複合冗長を使用しない場合には、複合冗長の記憶領域として確保した冗長領域のサブページに他のデータ、例えば、バンクにおける書換え回数を記憶させることも可能となる。
 このように、第1の実施の形態によれば、ページ単位のデータと冗長をメモリの異なる領域に記憶させ、これらデータ、冗長または符号語を同一のページアドレスによりアクセスする構成とすることにより、情報処理システムの利便性を向上させることができる。
 <2.第2の実施の形態>
 上述の第1の実施の形態では、冗長はパリティと管理情報とにより構成されていた。これに対し本技術の第2の実施の形態では、冗長はパリティと管理情報と管理情報のパリティとを有する構成としている。
 図29は、本技術の第2の実施の形態における冗長の構成例を示す図である。同図における、ページ冗長は、管理情報とそのパリティである管理情報パリティと二重パリティとにより構成されている。この二重パリティは、ページデータ、管理情報および管理情報パリティに対応するパリティである。同様に、拡張冗長は、拡張管理冗長とそのパリティである拡張管理情報パリティと拡張二重パリティとにより構成されている。この拡張二重パリティは、拡張データ、拡張管理情報および拡張管理情報パリティに対応するパリティである。符号語ブロックにおけるページ冗長部分も同様である。これら管理情報パリティと拡張管理冗長パリティとにより、管理情報の誤り検出および誤り訂正を行い、管理情報を保護している。
 図30は、本技術の第2の実施の形態におけるメモリコントローラの構成例を示す図である。本技術の第1の実施の形態におけるメモリコントローラ200とは、管理情報処理部222を備える点が異なっている。この管理情報処理部222は、管理情報パリティの生成および管理情報パリティによる管理情報の誤り訂正を行うものである。さらに、この管理情報処理部222は、拡張管理情報パリティの生成および拡張管理情報パリティによる拡張管理情報の誤り訂正も行う。制御部219は、この管理情報処理部222の制御を行う。また、図30における第1符号化部211は、ページデータ、管理情報および管理情報パリティから二重パリティを生成する。第1復号部212は、ページ符号語の復号によりページデータ、管理情報および管理情報パリティを再生する。第2符号化部213は、拡張データ、拡張管理情報および拡張管理情報パリティから拡張二重パリティを生成する。第2復号部214は、拡張符号語の復号により拡張データ、拡張管理情報および拡張管理情報パリティを再生する。これ以外のメモリコントローラ200の構成およびメモリ300の構成は本技術の第1の実施の形態と同様であるため、説明を省略する。
 このように、本技術の第2の実施の形態においては、データのパリティと管理情報と管理情報パリティとにより構成された冗長を使用することにより、管理情報の保護が強化され、情報処理システムの信頼性を向上させることができる。
 [変形例]
 上述の第2の実施の形態では、管理情報パリティをパリティおよび管理情報とともに冗長領域のサブページに記憶させていた。これに対し、本技術の第2の実施の形態の変形例では、管理情報パリティ専用のサブページを冗長領域に配置し、ここに管理情報パリティを記憶させる。
 図31は、本技術の第2の実施の形態の変形例における冗長の構成例を示す図である。ページ冗長、拡張冗長および冗長ブロックのページ冗長部分の構成は、図6において説明した冗長と同様の構成にすることができる。しかし、本技術の第2の実施の形態の変形例においては、冗長ブロックにおけるページ冗長部分に含まれる4個の管理情報に対するパリティ(以下、管理情報ブロックパリティと表現する。)を生成し、これを1個のサブページに保存する。このため、本技術の第2の実施の形態の変形例におけるメモリセルアレイ308のバンク#5は6個のサブページを備える構成とし、サブページ#5を管理情報ブロックパリティ保存用のサブページとしている。
 管理情報ブロックパリティの生成は、管理情報処理部222が行う。つまり、管理情報処理部222は、4個の管理情報に対し一括してパリティを生成する。第1符号化部211は、ページデータおよび管理情報からパリティを生成する。第1復号部212は、ページ符号語の復号によりページデータおよび管理情報を再生する。第2符号化部213は、拡張データおよび拡張管理情報から拡張パリティを生成する。第2復号部214は、拡張符号語の復号により拡張データおよび拡張管理情報を再生する。また、管理情報ブロックパリティにアクセスするために、リクエスト生成部218は、メモリセルアレイ308のバンク#5のサブページ#5にアクセスするためのリクエストを生成する機能を有する。これ以外の構成は、メモリ300および図30において説明したメモリコントローラ200と同様であるため、説明を省略する。本技術の第2の実施の形態のように、ページ冗長ごとに管理情報パリティを生成する場合と比較して、処理時間を短縮することができる。
 このように、本技術の第2の実施の形態の変形例においても、管理情報パリティを使用することにより、管理情報の保護が強化され、情報処理システムの信頼性を向上させることができる。また、本技術の第2の実施の形態の変形例においては、複数の管理情報に対し一括してパリティを生成するため、処理時間を短縮することができる。
 <3.第3の実施の形態>
 上述の第1の実施の形態では、メモリコントローラ200はデータバッファ217を備えていた。これに対し、本技術の第3の実施の形態では、データと冗長の転送方法を変更することにより、データバッファ217を省略している。
 図32は、本技術の第3の実施の形態におけるメモリコントローラの構成例を示す図である。本技術の第3の実施の形態におけるメモリコントローラ200は、データバッファ217を備える必要はない。また、メモリ300のメモリ制御部311は、メモリコントローラ200からデータおよび冗長が時間的にずれて出力された場合であっても、メモリセルアレイ308に書込み可能な構成としている。これ以外のメモリコントローラ200およびメモリ300の構成は本技術の第1の実施の形態と同様であるため、説明を省略する。
 図33は、本技術の第3の実施の形態におけるデータと冗長の転送手順を示す図である。同図におけるaは、比較のために本技術の第1の実施の形態におけるデータと冗長の転送手順を表したものであり、ページ符号語の書込みの場合を想定したものである。本技術の第1の実施の形態においては、ホストコンピュータ100からコマンドが発行され、ワークメモリ210にページデータが入力されると、このページデータは、第1符号化部211とデータバッファ217とに転送される。次に、第1符号化部211が冗長を生成する。この間、ページデータは、データバッファ217に保持される。第1符号化部211における冗長の生成終了を待ってリクエストを発行し、データバッファ217からページデータを出力させる。最後に、生成された冗長が出力される。このように、本技術の第1の実施の形態では、リクエスト、データおよび冗長を切れ目なくメモリ300に対して出力していた。なお、同図におけるaでは冗長生成時間を2μs、冗長が生成されてデータおよび冗長の出力が終了するまでの時間を600nsとしているが、これらは一例であり、ページデータのビット数等により変動する。同図におけるaでは、第1符号化部211への入力開始からメモリコントローラ200におけるデータおよび冗長の出力終了までの時間は、およそ2600nsである。
 これに対し本技術の第3の実施の形態におけるメモリコントローラ200は、この符号化を行っている間にリクエストとデータをメモリ300に対して先行して出力する。その後、生成されたページ冗長が出力される。この様子を図33におけるbに表した。本技術の第3の実施の形態においては、ページデータとページ冗長とは、一体となって出力されない。しかし、メモリ300のメモリ制御部311は、先に出力されたリクエストを解釈し、属性が「符号語」であった場合には、冗長がメモリコントローラ200から出力されるまで待機する。その後、遅れて出力された冗長に対する冗長領域のバンクへの転送を実行する。このようにメモリ300は、ページ符号語の書込みの際、ページデータとページ冗長の出力に時間的なずれがあっても、データと冗長を異なる領域に記憶させるため、それぞれ独立した書込みが可能である。これにより、第1符号化部211への入力開始からメモリコントローラ200におけるデータおよび冗長の出力終了までの時間は、およそ2050nsに短縮される。同図におけるbでは、冗長が生成されて出力が終了するまでの時間を50nsとしている。同図におけるaと同様、これも出力時間の一例である。なお、書込み対象が拡張符号語および複合符号語であっても、メモリコントローラ200およびメモリ300は同様の処理を行う。
 このように、本技術の第3の実施の形態では、データと冗長とを異なるタイミングでメモリコントローラ200からメモリ300に出力した場合であっても、これらの書込みを行うことができる。これにより、メモリコントローラ200内のデータバッファを省略することができ、メモリコントローラを簡便な構成とすることができる。また、データおよび冗長の転送時間を短縮することができる。
 <4.変形例>
 上述の本技術の実施の形態では、冗長はパリティと管理情報により構成されていた。これに対し、本技術の実施の形態の変形例では、冗長はパリティのみから構成される。
 図34は、本技術の実施の形態の変形例における冗長の構成例を示す図である。ページ冗長、拡張冗長および冗長ブロックは、パリティのみにより構成されている。本技術の実施の形態の変形例における第1符号化部211および第2符号化部213は、管理情報を含まない冗長または拡張冗長を生成する。また、第1復号部212および第2復号部214は、符号語からページデータまたは拡張データを再生する。これ以外のメモリコントローラ200の構成は図2において説明したメモリコントローラ200と同様であるため、説明を省略する。
 このように、本技術の実施の形態の変形例においては、冗長は管理情報を含んでいないため、メモリセルアレイ308の記憶領域を削減することができる。
 以上説明したように、本技術の実施の形態によれば、ページ単位のデータと冗長をメモリの異なる領域に記憶させ、これらデータ、冗長または符号語を同一のページアドレスによりアクセスすることができる。これにより、情報処理システムの利便性を向上させることができる。
 なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
 また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
 なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。
 なお、本技術は以下のような構成もとることができる。
(1)データを記憶するデータ領域と前記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリに対して前記データと前記冗長と前記データおよび前記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、
 前記生成された前記リクエストを発行して前記不揮発性メモリに対する書込みおよび読出しを制御する制御部と
を具備するメモリコントローラ。
(2)前記データは、ページ単位のページデータであり、
 前記冗長は、前記ページデータの誤り検出および誤り訂正を行うためのページ冗長であり、
 前記符号語は、前記ページデータおよび前記ページ冗長からなるページ符号語であり、
 前記リクエストは、前記ページデータと前記ページ冗長と前記ページ符号語との何れかについて書込みまたは読出しを要求するリクエストである前記(1)に記載のメモリコントローラ。
(3)前記データは、複数の前記ページを含む拡張データと前記ページデータであり、
 前記冗長は、前記拡張データの誤り検出および誤り訂正を行うための拡張冗長と前記ページ冗長であり、
 前記符号語は、前記拡張データおよび前記拡張冗長からなる拡張符号語と前記ページ符号語であり、
 前記リクエストは、前記ページデータと前記ページ冗長と前記ページ符号語と前記拡張データと前記拡張冗長と前記拡張符号語との何れかについて書込みまたは読出しを要求するリクエストである前記(2)に記載のメモリコントローラ。
(4)前記データは、複数の前記ページ符号語を含む符号語ブロックと前記拡張データと前記ページデータであり、
 前記冗長は、前記符号語ブロックの誤り検出および誤り訂正を行うための複合冗長と前記拡張冗長と前記ページ冗長であり、
 前記符号語は、前記符号語ブロックおよび前記複合冗長からなる複合符号語と前記拡張符号語とページ符号語であり、
 前記リクエストは、前記ページデータと前記ページ冗長と前記ページ符号語と前記拡張データと前記拡張冗長と前記拡張符号語と前記符号語ブロックと前記複合冗長と前記複合符号語との何れかについて書込みまたは読出しを要求するリクエストである前記(3)に記載のメモリコントローラ。
(5)前記データは、前記符号語ブロックに含まれる複数の前記ページデータからなるデータブロックと前記符号語ブロックと前記拡張データと前記ページデータであり、
 前記冗長は、前記符号語ブロックに含まれる複数の前記ページ冗長および前記複合冗長からなる冗長ブロックと前記複合冗長と前記拡張冗長と前記ページ冗長であり、
 前記リクエストは、前記ページデータと前記ページ冗長と前記ページ符号語と前記拡張データと前記拡張冗長と前記拡張符号語と前記符号語ブロックと前記複合冗長と前記複合符号語と前記データブロックと前記冗長ブロックとの何れかについて書込みまたは読出しを要求するリクエストである前記(4)に記載のメモリコントローラ。
(6)前記ページ冗長は、前記ページデータに関する管理情報と前記ページデータおよび前記管理情報の誤り検出および誤り訂正を行うためのパリティとにより構成され、
 前記拡張冗長は、前記拡張データに関する拡張管理情報と前記拡張データおよび前記拡張管理情報の誤り検出および誤り訂正を行うための拡張パリティとにより構成される、前記(5)に記載のメモリコントローラ。
(7)前記複合冗長は、前記符号語ブロックに含まれる複数の前記管理情報を含む管理情報ブロックの誤り検出および誤り訂正を行うための管理情報ブロックパリティと前記符号語ブロックの誤り検出および誤り訂正を行うための符号語ブロックパリティとにより構成される前記(6)に記載のメモリコントローラ。
(8)前記ページ冗長は、前記管理情報の誤り検出および誤り訂正を行うための管理情報パリティと前記管理情報と前記ページデータおよび前記管理情報および前記管理情報パリティの誤り検出および誤り訂正を行うための二重パリティとにより構成され、
 前記拡張冗長は、前記拡張管理情報の誤り検出および誤り訂正を行うための拡張管理情報パリティと前記拡張管理情報と前記拡張データおよび前記拡張管理情報および前記拡張管理情報パリティの誤り検出および誤り訂正を行うための拡張二重パリティとにより構成される前記(6)に記載のメモリコントローラ。
(9)前記ページ冗長を生成する第1の符号化部と、
 前記ページ符号語に含まれる前記ページ冗長により当該ページ符号語に含まれる前記ページデータの誤り検出と誤り訂正とを行う第1の復号部と、
 前記拡張冗長を生成する第2の符号化部と、
 前記拡張符号語に含まれる前記拡張冗長により当該拡張符号語に含まれる前記拡張データの誤り検出と誤り訂正とを行う第2の復号部と、
 前記複合冗長を生成する第3の符号化部と、
 前記複合符号語に含まれる前記複合冗長により当該複合符号語に含まれる前記符号語ブロックの誤り検出と誤り訂正とを行う第3の復号部と
をさらに具備し、
 前記制御部は、前記読出しを要求するリクエストの出力により前記不揮発性メモリから入力された前記ページ符号語の前記第1の復号部への転送と前記読出しを要求するリクエストの出力により前記不揮発性メモリから入力された前記拡張符号語の前記第2の復号部への転送と前記読出しを要求するリクエストの出力により前記不揮発性メモリから入力された前記複合符号語の前記第3の復号部への転送とをさらに制御する
前記(5)に記載のメモリコントローラ。
(10)データを記憶するデータ領域と前記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリと、
 前記不揮発性メモリを制御するメモリコントローラと
を具備し、
 前記メモリコントローラは、
 前記不揮発性メモリに対して前記データと前記冗長と前記データおよび前記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、
 前記生成された前記リクエストを発行して前記不揮発性メモリに対する書込みおよび読出しを制御する制御部と
を備える
記憶装置。
(11)前記不揮発性メモリは、ページアドレスによりアドレス付けられたページを記憶するバンクにより構成されて前記データ領域と前記冗長領域が異なる前記バンクに割り当てられて同一の前記符号語に属する前記データおよび前記冗長が同じページアドレスの前記バンクにそれぞれ記憶される前記(10)に記載の記憶装置。
(12)メモリコントローラに書込みまたは読出しを要求するコマンドを出力するホストコンピュータと、
 データを記憶するデータ領域と前記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリと、
 前記コマンドに基づいて前記不揮発性メモリを制御するメモリコントローラと
を具備し、
 前記メモリコントローラは、
 前記コマンドに基づいて前記不揮発性メモリに対して前記データと前記冗長と前記データおよび前記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、
 前記生成された前記リクエストを発行して前記不揮発性メモリに対する書込みおよび読出しを制御する制御部と
を備える
情報処理システム。
(13)データを記憶するデータ領域と前記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリに対して前記データと前記冗長と前記データおよび前記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成手順と、
 前記生成された前記リクエストを発行して前記不揮発性メモリに対する書込みおよび読出しを制御する制御手順と
を具備するメモリコントローラ制御方法。
 100 ホストコンピュータ
 101、201 信号線
 109、209 ホストインターフェース
 110 プロセッサ
 200 メモリコントローラ
 207 処理部
 208、309 メモリインターフェース
 210 ワークメモリ
 211 第1符号化部
 212 第1復号部
 213 第2符号化部
 214 第2復号部
 215 第3符号化部
 216 第3復号部
 217 データバッファ
 218 リクエスト生成部
 219 制御部
 220、310 メモリインターフェース制御部
 221 管理情報保持部
 222 管理情報処理部
 300 メモリ
 307 メモリデバイス制御部
 308 メモリセルアレイ
 311 メモリ制御部
 312 ROM

Claims (13)

  1.  データを記憶するデータ領域と前記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリに対して前記データと前記冗長と前記データおよび前記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、
     前記生成された前記リクエストを発行して前記不揮発性メモリに対する書込みおよび読出しを制御する制御部と
    を具備するメモリコントローラ。
  2.  前記データは、ページ単位のページデータであり、
     前記冗長は、前記ページデータの誤り検出および誤り訂正を行うためのページ冗長であり、
     前記符号語は、前記ページデータおよび前記ページ冗長からなるページ符号語であり、
     前記リクエストは、前記ページデータと前記ページ冗長と前記ページ符号語との何れかについて書込みまたは読出しを要求するリクエストである
    請求項1記載のメモリコントローラ。
  3.  前記データは、複数の前記ページを含む拡張データと前記ページデータであり、
     前記冗長は、前記拡張データの誤り検出および誤り訂正を行うための拡張冗長と前記ページ冗長であり、
     前記符号語は、前記拡張データおよび前記拡張冗長からなる拡張符号語と前記ページ符号語であり、
     前記リクエストは、前記ページデータと前記ページ冗長と前記ページ符号語と前記拡張データと前記拡張冗長と前記拡張符号語との何れかについて書込みまたは読出しを要求するリクエストである
    請求項2記載のメモリコントローラ。
  4.  前記データは、複数の前記ページ符号語を含む符号語ブロックと前記拡張データと前記ページデータであり、
     前記冗長は、前記符号語ブロックの誤り検出および誤り訂正を行うための複合冗長と前記拡張冗長と前記ページ冗長であり、
     前記符号語は、前記符号語ブロックおよび前記複合冗長からなる複合符号語と前記拡張符号語とページ符号語であり、
     前記リクエストは、前記ページデータと前記ページ冗長と前記ページ符号語と前記拡張データと前記拡張冗長と前記拡張符号語と前記符号語ブロックと前記複合冗長と前記複合符号語との何れかについて書込みまたは読出しを要求するリクエストである
    請求項3記載のメモリコントローラ。
  5.  前記データは、前記符号語ブロックに含まれる複数の前記ページデータからなるデータブロックと前記符号語ブロックと前記拡張データと前記ページデータであり、
     前記冗長は、前記符号語ブロックに含まれる複数の前記ページ冗長および前記複合冗長からなる冗長ブロックと前記複合冗長と前記拡張冗長と前記ページ冗長であり、
     前記リクエストは、前記ページデータと前記ページ冗長と前記ページ符号語と前記拡張データと前記拡張冗長と前記拡張符号語と前記符号語ブロックと前記複合冗長と前記複合符号語と前記データブロックと前記冗長ブロックとの何れかについて書込みまたは読出しを要求するリクエストである
    請求項4記載のメモリコントローラ。
  6.  前記ページ冗長は、前記ページデータに関する管理情報と前記ページデータおよび前記管理情報の誤り検出および誤り訂正を行うためのパリティとにより構成され、
     前記拡張冗長は、前記拡張データに関する拡張管理情報と前記拡張データおよび前記拡張管理情報の誤り検出および誤り訂正を行うための拡張パリティとにより構成される
    請求項5記載のメモリコントローラ。
  7.  前記複合冗長は、前記符号語ブロックに含まれる複数の前記管理情報を含む管理情報ブロックの誤り検出および誤り訂正を行うための管理情報ブロックパリティと前記符号語ブロックの誤り検出および誤り訂正を行うための符号語ブロックパリティとにより構成される請求項6記載のメモリコントローラ。
  8.  前記ページ冗長は、前記管理情報の誤り検出および誤り訂正を行うための管理情報パリティと前記管理情報と前記ページデータおよび前記管理情報および前記管理情報パリティの誤り検出および誤り訂正を行うための二重パリティとにより構成され、
     前記拡張冗長は、前記拡張管理情報の誤り検出および誤り訂正を行うための拡張管理情報パリティと前記拡張管理情報と前記拡張データおよび前記拡張管理情報および前記拡張管理情報パリティの誤り検出および誤り訂正を行うための拡張二重パリティとにより構成される
    請求項6記載のメモリコントローラ。
  9.  前記ページ冗長を生成する第1の符号化部と、
     前記ページ符号語に含まれる前記ページ冗長により当該ページ符号語に含まれる前記ページデータの誤り検出と誤り訂正とを行う第1の復号部と、
     前記拡張冗長を生成する第2の符号化部と、
     前記拡張符号語に含まれる前記拡張冗長により当該拡張符号語に含まれる前記拡張データの誤り検出と誤り訂正とを行う第2の復号部と、
     前記複合冗長を生成する第3の符号化部と、
     前記複合符号語に含まれる前記複合冗長により当該複合符号語に含まれる前記符号語ブロックの誤り検出と誤り訂正とを行う第3の復号部と
    をさらに具備し、
     前記制御部は、前記読出しを要求するリクエストの出力により前記不揮発性メモリから入力された前記ページ符号語の前記第1の復号部への転送と前記読出しを要求するリクエストの出力により前記不揮発性メモリから入力された前記拡張符号語の前記第2の復号部への転送と前記読出しを要求するリクエストの出力により前記不揮発性メモリから入力された前記複合符号語の前記第3の復号部への転送とをさらに制御する
    請求項5記載のメモリコントローラ。
  10.  データを記憶するデータ領域と前記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリと、
     前記不揮発性メモリを制御するメモリコントローラと
    を具備し、
     前記メモリコントローラは、
     前記不揮発性メモリに対して前記データと前記冗長と前記データおよび前記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、
     前記生成された前記リクエストを発行して前記不揮発性メモリに対する書込みおよび読出しを制御する制御部とを備える
    記憶装置。
  11.  前記不揮発性メモリは、ページアドレスによりアドレス付けられたページを記憶するバンクにより構成されて前記データ領域と前記冗長領域が異なる前記バンクに割り当てられて同一の前記符号語に属する前記データおよび前記冗長が同じページアドレスの前記バンクにそれぞれ記憶される請求項10記載の記憶装置。
  12.  メモリコントローラに書込みまたは読出しを要求するコマンドを出力するホストコンピュータと、
     データを記憶するデータ領域と前記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリと、
     前記コマンドに基づいて前記不揮発性メモリを制御するメモリコントローラと
    を具備し、
     前記メモリコントローラは、
     前記コマンドに基づいて前記不揮発性メモリに対して前記データと前記冗長と前記データおよび前記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成部と、
     前記生成された前記リクエストを発行して前記不揮発性メモリに対する書込みおよび読出しを制御する制御部とを備える
    情報処理システム。
  13.  データを記憶するデータ領域と前記データの誤り検出および誤り訂正を行うための冗長を記憶する冗長領域とを備える不揮発性メモリに対して前記データと前記冗長と前記データおよび前記冗長からなる符号語との何れかについて書込みまたは読出しを要求するリクエストを生成するリクエスト生成手順と、
     前記生成された前記リクエストを発行して前記不揮発性メモリに対する書込みおよび読出しを制御する制御手順と
    を具備するメモリコントローラ制御方法。
PCT/JP2015/067958 2014-07-29 2015-06-23 メモリコントローラ、記憶装置、情報処理システム、および、メモリコントローラ制御方法 WO2016017321A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/325,191 US20170185478A1 (en) 2014-07-29 2015-06-23 Memory controller, storage apparatus, information processing system, and memory controller control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014153447A JP2016031626A (ja) 2014-07-29 2014-07-29 メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。
JP2014-153447 2014-07-29

Publications (1)

Publication Number Publication Date
WO2016017321A1 true WO2016017321A1 (ja) 2016-02-04

Family

ID=55217226

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US20170185478A1 (ja)
JP (1) JP2016031626A (ja)
WO (1) WO2016017321A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11257543B2 (en) * 2019-06-25 2022-02-22 Stmicroelectronics International N.V. Memory management device, system and method
US11360667B2 (en) 2019-09-09 2022-06-14 Stmicroelectronics S.R.L. Tagged memory operated at lower vmin in error tolerant system
EP4050608B1 (en) 2021-01-14 2023-06-28 Changxin Memory Technologies, Inc. Comparator with xor and xnor logic circuits
US11599417B2 (en) * 2021-01-14 2023-03-07 Changxin Memory Technologies, Inc. Error correction system
KR20230019573A (ko) * 2021-08-02 2023-02-09 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198884A (ja) * 1996-01-16 1997-07-31 Toshiba Corp フラッシュメモリ管理方法
JPH11110142A (ja) * 1997-09-30 1999-04-23 Sony Corp 記憶装置及びデータ処理方法
JPH11177071A (ja) * 1997-12-11 1999-07-02 Toshiba Corp 不揮発性半導体記憶装置
JP2007042222A (ja) * 2005-08-04 2007-02-15 Renesas Technology Corp 半導体装置
JP2007206835A (ja) * 2006-01-31 2007-08-16 Tdk Corp メモリコントローラおよびフラッシュメモリシステム
JP2009059422A (ja) * 2007-08-31 2009-03-19 Toshiba Corp 半導体記憶装置およびその制御方法
JP2012203957A (ja) * 2011-03-25 2012-10-22 Toshiba Corp メモリシステム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6618506B1 (en) * 1997-09-23 2003-09-09 International Business Machines Corporation Method and apparatus for improved compression and decompression
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
EP1462934A1 (en) * 2003-03-29 2004-09-29 Deutsche Thomson-Brandt Gmbh Method and apparatus for forwarding of results
US9454414B2 (en) * 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09198884A (ja) * 1996-01-16 1997-07-31 Toshiba Corp フラッシュメモリ管理方法
JPH11110142A (ja) * 1997-09-30 1999-04-23 Sony Corp 記憶装置及びデータ処理方法
JPH11177071A (ja) * 1997-12-11 1999-07-02 Toshiba Corp 不揮発性半導体記憶装置
JP2007042222A (ja) * 2005-08-04 2007-02-15 Renesas Technology Corp 半導体装置
JP2007206835A (ja) * 2006-01-31 2007-08-16 Tdk Corp メモリコントローラおよびフラッシュメモリシステム
JP2009059422A (ja) * 2007-08-31 2009-03-19 Toshiba Corp 半導体記憶装置およびその制御方法
JP2012203957A (ja) * 2011-03-25 2012-10-22 Toshiba Corp メモリシステム

Also Published As

Publication number Publication date
JP2016031626A (ja) 2016-03-07
US20170185478A1 (en) 2017-06-29

Similar Documents

Publication Publication Date Title
WO2016017321A1 (ja) メモリコントローラ、記憶装置、情報処理システム、および、メモリコントローラ制御方法
JP4192154B2 (ja) エラー訂正のためのデータの分割
KR20080074316A (ko) 메모리 시스템, 이 시스템을 위한 메모리, 및 이 메모리를위한 명령 디코딩 방법
US20180052732A1 (en) Semiconductor device and semiconductor system
CN111145827A (zh) 错误校正码解码器和半导体存储器装置
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
CN103197985B (zh) 存储控制装置
US10445176B2 (en) Memory system, memory device and operating method thereof
KR20170076106A (ko) 제어회로 및 제어회로를 포함하는 메모리 장치
WO2016013285A1 (ja) メモリコントローラおよびメモリコントローラの制御方法
KR102254100B1 (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
KR20180000593A (ko) 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치
US20170075755A1 (en) Data storage system and associated method
CN108664362B (zh) 内存镜像的处理方法、内存控制器及用户设备
WO2017073127A1 (ja) メモリコントローラ、記憶装置、情報処理システムおよびメモリの制御方法
JP2021520555A (ja) 階層デコーダを使用したエラー訂正
JP4327883B1 (ja) 情報処理装置、情報処理方法
WO2015182439A1 (ja) 記憶装置、記憶システムおよび記憶装置の制御方法
US9104596B2 (en) Memory system
KR20170130684A (ko) 반도체장치
US10290333B2 (en) Semiconductor device
JP2017107390A (ja) ビデオサーバ装置およびデータ書き込み/読み出し方法
WO2008050957A1 (en) Error correction method and apparatus for optical information storage medium recording/reproducing apparatus
KR102686057B1 (ko) 반도체장치 및 반도체시스템
US11921578B2 (en) Error correction methods and semiconductor devices and semiconductor systems using the error correction methods and the semiconductor devices

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15325191

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15827128

Country of ref document: EP

Kind code of ref document: A1