WO2016002380A1 - Storage device, information processing system, and method for controlling storage device - Google Patents

Storage device, information processing system, and method for controlling storage device Download PDF

Info

Publication number
WO2016002380A1
WO2016002380A1 PCT/JP2015/064738 JP2015064738W WO2016002380A1 WO 2016002380 A1 WO2016002380 A1 WO 2016002380A1 JP 2015064738 W JP2015064738 W JP 2015064738W WO 2016002380 A1 WO2016002380 A1 WO 2016002380A1
Authority
WO
WIPO (PCT)
Prior art keywords
control code
memory
control
unit
error correction
Prior art date
Application number
PCT/JP2015/064738
Other languages
French (fr)
Japanese (ja)
Inventor
石井 健
敬一 筒井
中西 健一
龍男 新橋
藤波 靖
渉 大塚
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2016002380A1 publication Critical patent/WO2016002380A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Definitions

  • the present technology relates to a storage device, an information processing system, and a storage device control method.
  • the present invention relates to a storage device, an information processing system, and a storage device control method for storing startup data in a nonvolatile memory and correcting an error of the startup data.
  • non-volatile memory such as NAND flash memory and ReRAM (resistance random access memory)
  • a control code for operating the built-in control circuit is required.
  • High reliability is required for storing the control code, and an OTP (one-time programming) memory using an antifuse arranged in the nonvolatile memory is used.
  • OTP one-time programming
  • the capacity of the control code also increases, and a large-capacity OTP memory is required. Since the OTP memory has a larger cell area per capacity than a memory cell of a nonvolatile memory, for example, ReRAM, an increase in the capacity of the OTP memory leads to an increase in the size of the nonvolatile memory chip.
  • ReRAM which is a nonvolatile memory
  • ReRAM has a problem that a bit error occurs and the reliability of data storage is lower than that of an OTP memory. Adding complicated ECC processing to increase the reliability of storage causes problems such as an increase in cost and an increase in startup time.
  • the present technology has been created in view of such a situation, and an object thereof is to improve the storage reliability of the control code by rewriting the control code in which the error is corrected in the nonvolatile memory as the storage location.
  • the present technology has been made to solve the above-described problems.
  • the first aspect of the present technology is a control code memory for storing a control code for controlling the nonvolatile memory, and before the operation of the nonvolatile memory.
  • a read control unit that reads the control code from the control code memory, an error correction unit that performs error correction of the read control code, a working memory that holds the control code in which the error is corrected, and the working memory
  • a control unit that controls the nonvolatile memory based on the control code held in the memory and outputs an instruction for requesting the control code memory to rewrite the control code held in the working memory; and And a refresh control unit that performs the above rewriting based on the storage device. As a result, the corrected control code is rewritten in the control code memory.
  • a deterioration state detection unit that detects a deterioration state indicating the necessity of rewriting the control code, and control code deterioration information that holds the detected deterioration state as control code deterioration information A holding unit, and the control unit may output the instruction based on the control code deterioration information. Thereby, the deterioration state of the control code is detected, and rewriting is performed based on this.
  • the deterioration state detection unit may detect the deterioration state by detecting that the error correction has occurred in the error correction unit. This brings about the effect of detecting the deterioration of the control code by detecting the error occurrence of the control code.
  • the memory device further includes a counting unit that counts the number of times the power is turned on or off in the memory, and the deterioration state detecting unit is configured such that the number of times counted by the counting unit reaches a predetermined number. Therefore, the deterioration state may be detected. This brings about the effect of detecting the deterioration of the control code by detecting that the number of times of turning on or off the power has reached a predetermined number.
  • control unit may read the held control code deterioration information and output the instruction based on the read control code deterioration information. As a result, the control unit reads out the control code deterioration information and outputs an instruction to rewrite the control code.
  • a control code deterioration information supply unit that supplies the control code deterioration information to the memory controller is further provided, and the control unit is configured to perform the control based on the supplied control code deterioration information.
  • the instruction may be output based on a request for rewriting issued from the memory controller. As a result, the control code is rewritten via the memory controller.
  • control code memory further includes a parity generation unit that generates a parity for correcting an error in the control code
  • the control code memory further includes an area for storing the parity.
  • the unit may perform the error correction using the parity, and the refresh control unit may rewrite the corresponding parity in the code memory together with the control code in which the error is corrected. This brings about the effect that the error of the control code is corrected using the parity.
  • control code memory stores the control code in a plurality of areas
  • error correction unit detects that the corresponding values in the plurality of control codes do not match.
  • the error correction may be performed by correcting the bit. As a result, an error is corrected by a plurality of control codes.
  • the error correction unit may perform the error correction by performing a majority operation on the mismatched bits to correct the mismatched bits. As a result, the error of the control code is corrected by the majority operation.
  • the error correction unit may perform the error correction by performing a logical sum operation on the mismatched bits to correct the mismatched bits. This brings about the effect that the error of the control code is corrected by the logical sum operation.
  • a control code memory for storing a control code for controlling the nonvolatile memory, a read control unit for reading the control code from the control code memory before the operation of the nonvolatile memory, and the reading An error correction unit that performs error correction of the control code, a working memory that holds the control code in which the error is corrected, and the necessity to rewrite the control code held in the working memory in the control code memory.
  • a deterioration state detection unit that detects the deterioration state indicated, a control code deterioration information holding unit that holds the detected deterioration state as control code deterioration information, and a control code that supplies the control code deterioration information to the memory controller Request the rewriting based on the deterioration information supply unit and the supplied control code deterioration information
  • a memory controller that issues a quest, and a control unit that controls the nonvolatile memory based on the control code held in the working memory and outputs an instruction to request the rewrite based on the issued request. And a refresh control unit that performs the rewriting based on the instruction. As a result, the control code is rewritten via the memory controller.
  • a second aspect of the present technology includes a control code memory that stores a control code for controlling the nonvolatile memory, a read control unit that reads the control code from the control code memory before the nonvolatile memory is operated, An error correction unit that performs error correction of the read control code, a working memory that holds the control code in which the error is corrected, and the control code held in the working memory needs to be rewritten in the control code memory
  • a deterioration state detection unit that detects a deterioration state that indicates the characteristics, a control code deterioration information holding unit that holds the detected deterioration state as control code deterioration information, and supplies the control code deterioration information to the memory controller
  • a memory controller that issues an est; a control unit that controls the nonvolatile memory based on the control code held in the working memory and outputs an instruction to request the rewrite based on the issued request;
  • An information processing system comprising: a storage device including a refresh control unit that performs the rewriting based on the instruction; and a host computer that accesses the storage device via the memory controller. As a result, the control code is rewritten via the memory controller.
  • a read procedure for reading a control code for controlling the nonvolatile memory from the control code memory before the operation of the nonvolatile memory, and an error correction for correcting the error of the read control code are performed.
  • control code can be stored in the non-volatile memory, and an excellent effect of increasing the storage reliability can be obtained.
  • the effects described here are not necessarily limited, and may be any of the effects described in the present disclosure.
  • First embodiment an example of performing ECC encoding and majority operation
  • Second embodiment example of performing logical sum operation
  • Third Embodiment Example in which deterioration of control code is determined based on the number of times power is turned on or off
  • Fourth Embodiment Example in which a memory controller issues a request for rewriting
  • Fifth embodiment an example of rewriting without a memory controller
  • FIG. 1 is a diagram illustrating a configuration example of an information processing system according to an embodiment of the present technology.
  • the information processing system according to the embodiment of the present technology includes a host computer 100 and a storage device 200.
  • the host computer 100 writes data to or reads data from the storage device 200.
  • the host computer 100 writes and reads data by outputting a command requesting writing or reading to the storage device 200.
  • the storage device 200 stores data.
  • the storage device 200 includes a memory controller 210, a power control unit 201, and a memory 220.
  • the memory controller 210 interprets a command output from the host computer 100 and controls the memory 220 based on the command. This control is performed by issuing a request to the memory 220.
  • the memory controller 210 also exchanges data with the host computer 100.
  • the memory controller 210 includes an ECC processing unit 211.
  • the ECC processing unit 211 performs encoding that adds a parity to data output from the host computer 100 to form an ECC code, and decoding that extracts the original data from the ECC code. During this decoding, data error correction is performed.
  • the power control unit 201 controls on / off of power supplied to the memory 220.
  • the power controller 201 is controlled by the memory controller 210.
  • the memory 220 stores data transferred from the host computer 100 via the memory controller 210.
  • the memory 220 includes a control unit 221 and a memory cell array 270.
  • the control unit 221 controls the entire memory 220.
  • the memory cell array 270 includes memory cells configured by a non-volatile memory arranged two-dimensionally and is a main data storage unit.
  • the nonvolatile memory for example, ReRAM can be used.
  • the memory 220 includes a circuit for driving the memory cell array 270. Details of these will be described later.
  • the memory cell array 270 includes a control code memory 280. That is, a part of the memory cell group constituting the memory cell array 270 is allocated as the control code memory 280.
  • the control code memory 280 stores control codes.
  • the first example of the control code is firmware for controlling the memory cell array 270 that is a nonvolatile memory. More specifically, it is firmware for operating a drive circuit attached to the memory cell array 270, and the control unit 221 performs control based on this control code.
  • a second example of the control code is a control parameter of the nonvolatile memory. This is a unique value such as a voltage applied to the nonvolatile memory cell and an application time thereof. The control unit 221 determines a voltage to be applied to the memory cell array based on this parameter.
  • defective address information may be included. This is address information of a memory area determined to be defective at the time of factory shipment.
  • the control unit 221 refers to the defective address information and performs a replacement process for the defective memory area.
  • memory cells other than the memory cells assigned to the control code memory 280 in the memory cell array 270 are areas for storing data output from the memory controller. Details of the memory 220 and the memory cell array 270 will be described later.
  • the exchange among the host computer 100, the memory controller 210, and the memory 220 will be described taking data writing as an example.
  • a command requesting data writing is issued from the host computer 100 to the memory controller 210 together with the data.
  • the memory controller 210 interprets this and encodes data.
  • the memory controller 210 issues a request for writing data to the memory 220 together with the encoded data.
  • the memory 220 interprets this request and stores the encoded data in the memory cell array 270. In this way, data is written by exchanging commands and requests.
  • FIG. 2 is a diagram illustrating an example of functional blocks of the storage device according to the first embodiment of the present technology.
  • the storage device 200 in the figure includes a memory controller 210, a control code memory 280, a read control unit 222, an error correction unit 230, and a work memory 223.
  • the storage device 200 also includes a refresh control unit 224, a control unit 221, a degradation state detection unit 225, a control code degradation information holding unit 226, and a control code degradation information supply unit 227.
  • the control code memory 280 and the memory controller 210 are the same as those described with reference to FIG.
  • the read control unit 222 reads the control code from the control code memory 280. This reading is performed before power is turned on to the memory 220 and the memory 220 becomes accessible from the memory controller 210.
  • the error correction unit 230 performs error correction on the control code read from the control code memory 280. This error correction will be described later.
  • the work memory 223 holds a control code in which an error is corrected.
  • the control unit 221 controls the entire memory 220 as described above. Further, the control unit 221 interprets the request issued by the memory controller 210 and performs processing such as data writing.
  • the control unit 221 operates based on the control code held in the work memory 223.
  • the refresh control unit 224 rewrites the control code in which the error held in the work memory 223 is corrected in the control code memory 280. This rewriting is performed based on an instruction for requesting rewriting output from the control unit 221.
  • the deterioration state detection unit 225 detects a deterioration state of the control code stored in the control code memory 280.
  • the deterioration state of the control code represents a state in which a bit error has occurred in a part of the control code stored in the nonvolatile memory or a bit error can occur.
  • Even when the control code is deteriorated it is possible to extract the original control code by performing error correction. However, if bit errors accumulate, error correction becomes impossible. For this reason, when the control code is in a deteriorated state, it is necessary to rewrite the control code in the control code memory 280.
  • a state in which error correction by the error correction unit 230 is performed on a control code in which a bit error has occurred is defined as a deterioration state of the control code.
  • the control code deterioration information holding unit 226 holds the deterioration state of the control code detected by the deterioration state detection unit 225 as control code deterioration information.
  • the control code deterioration information holding unit 226 can be configured by a register, for example.
  • the control code deterioration information holding unit 226 will be described as being configured by a 1-bit register corresponding to the control code deterioration information. In the initial state, the value of this register is “0”.
  • the control code deterioration information is set by setting a value “1” in this register.
  • the control code deterioration information supply unit 227 supplies the control code deterioration information held in the control code deterioration information holding unit 226 to the memory controller 210.
  • the control code deterioration information supply unit 227 can use, for example, a signal line connected to the memory controller 210 in order to output the contents of the register constituting the control code deterioration information holding unit 226. Further, for example, a circuit having a function of interpreting a request for requesting supply of control code deterioration information issued by the memory controller 210 and outputting the control code deterioration information to the memory controller 210 can be used.
  • the memory controller 210 supplied with the control code deterioration information issues a request for requesting rewriting of the control code. Based on this request, the control unit 221 outputs an instruction for requesting the above-described rewriting.
  • FIG. 3 is a diagram illustrating a configuration example of the memory according to the first embodiment of the present technology.
  • the memory 220 includes a power-on reset unit 252, a control unit 221, a read control unit 222, a control code deterioration information holding unit 226, a control signal generation unit 243, a work memory 223, and an error correction unit 230.
  • the memory 220 includes a parity generation unit 254, a memory interface 251, a selection unit 255, a memory cell array 270, a data buffer 256, and data buses 257 to 259.
  • the memory cell array 270 includes a control code memory 280. Note that the error correction unit 230 in FIG.
  • the majority decision calculation unit 232 includes the deterioration state detection unit 225 described with reference to FIG.
  • the control unit 221 in FIG. 3 includes the refresh control unit 224 and the control code deterioration information supply unit 227 described in FIG.
  • the control code memory 280 stores a plurality of control codes. In these, control codes having the same contents are written in different areas of the control code memory 280 at the time of factory shipment. An odd number of control codes are stored in the control code memory 280 in order to perform a majority operation described later. In the first embodiment of the present technology, control codes having the same contents are stored in three locations.
  • the control code memory 280 also stores parity for each of the plurality of control codes. This parity will be described later.
  • the memory 220 also includes a sense amplifier, a driver, and an address decoder for driving the memory cell array 270 (not shown).
  • the memory interface 251 exchanges data with the memory controller 210.
  • the memory interface 251 transfers the request output from the memory controller 210 to the inside of the memory 220 and exchanges data bidirectionally with the memory controller 210.
  • the power-on reset unit 252 generates a reset signal when the power is turned on.
  • the power-on reset unit 252 starts operation when a power supply voltage is applied to the memory 220 and turns on the reset signal. After that, it is detected that the power supply voltage of the memory 220 has reached a specified value, for example, 90% of the power supply voltage in a steady state, and the reset signal is turned off.
  • the parity generation unit 254 generates parity for performing error detection and error correction of the control code. For example, a Hamming code method can be used for generating the parity.
  • the error correction unit 230 corrects an error in the control code.
  • the error correction unit 230 in FIG. 3 includes an ECC decoding unit 231 and a majority operation unit 232.
  • the ECC decoding unit 231 performs control code decoding.
  • the ECC decoding unit 231 detects control code errors and corrects errors using the above-described parity. Since there are three control codes, the ECC decoding unit 231 decodes each control code.
  • the majority operation unit 232 performs majority operation on the control code decoded by the ECC decoding unit 231.
  • the majority operation is to use a plurality of data (control codes) and determine the value of each bit in the data by majority. Specifically, the more “0” or “1” is the control code value in each bit.
  • control codes are provided at three locations, and correction is possible when a bit error occurs in any one of the corresponding three bits. .
  • the majority operation unit 232 detects a deterioration state of the control code when an error in the control code is corrected during the calculation process.
  • the read control unit 222 is notified that the control code is in a degraded state.
  • the majority decision calculation unit 232 includes the deterioration state detection unit 225.
  • the read control unit 222 sets the value “1” in the control code deterioration information holding unit 226.
  • Read control unit 222 reads the control code from the control code memory 280.
  • the read control unit 222 in FIG. 3 includes an address counter for accessing the control code memory 280.
  • the read control unit 222 is reset by the reset signal output from the power-on reset unit 252. At this time, the address counter is also initialized.
  • the read control unit 222 starts operation. First, the read control unit 222 increments the address counter, reads the control code and parity in units of one word, and transfers them to the ECC decoding unit 231. Next, the control code decoded by the ECC decoding unit 231 is transferred to the majority operation unit 232. Finally, the operation result in the majority operation unit 232 is transferred to the work memory 223 and held. By repeating these, the control code is read out.
  • the control unit 221 interprets the request issued by the memory controller 210 and controls the entire memory 220. This will be described in detail by taking the case of writing data as an example.
  • the control unit 221 that has received a request to write data interprets this request and controls the control signal generation unit 243.
  • the control signal generator 243 outputs a control signal to the address decoder and driver. Further, data relating to a request for writing that is issued by the memory controller 210 is transferred to the data buffer 256 and then supplied to the memory cell array 270 to be written.
  • the control unit 221 also has a function of rewriting the control code in which the error is corrected in the control code memory 280 when receiving a request for rewriting the control code. As described above, the control unit 221 includes the function of the refresh control unit 224.
  • the control unit 221 has a built-in address counter for accessing the control code memory 280.
  • the control unit 221 rewrites the control code in units of words while incrementing the address counter.
  • the control unit 221 also rewrites the parity corresponding to this one-word control code. That is, the control code is encoded and rewritten. For this reason, the control unit 221 transfers a one-word control code to the parity generation unit 254 to generate parity.
  • the control unit 221 according to the first embodiment of the present technology transfers the control code from the work memory 223 to the memory controller 210 based on a request for reading out the control code issued from the memory controller 210.
  • control unit 221 has a function of reading the control code deterioration information held in the control code deterioration information holding unit 226 and outputting the control code deterioration information to the memory controller 210 when receiving a request for reading the control code deterioration information.
  • the control unit 221 includes the function of the control code deterioration information supply unit 227.
  • the control signal generator 243 outputs a control signal to the sense amplifier, driver, and address decoder according to an instruction from the controller 221 or the read controller 222.
  • the data buffer 256 temporarily holds data to be written to the memory cell array 270 and data read from the memory cell array 270.
  • Data buses 257 to 259 are signal lines for transmitting data and the like bidirectionally.
  • the data bus 257 is disposed between the memory interface 251 and the selection unit 255, and the data bus 259 is disposed between the data buffer 256 and the selection unit 255.
  • the data bus 258 is selected with the control unit 221, the read control unit 222, the control code degradation information holding unit 226, the control signal generation unit 243, the working memory 223, the ECC decoding unit 231, the majority decision operation unit 232, and the parity generation unit 254. It arrange
  • the selection unit 255 selects a data bus.
  • the selection unit 255 exchanges data and the like between the data buses 257 to 259 in accordance with an instruction from the control unit 221 or the read control unit 222.
  • the control code deterioration information holding unit 226 and the work memory 223 are the same as those described with reference to FIG.
  • the parity generation unit 254 is an example of a parity generation unit described in the claims.
  • FIG. 4 is a diagram illustrating an example of control code arrangement in the control code memory according to the first embodiment of the present technology.
  • This figure shows an example of control code arrangement in the control code memory 280.
  • three control codes are stored in the control code memory.
  • the control code memory 280 is also divided into three areas. This corresponds to the first to third regions in FIG. In these areas, data 281, 283 and 285 and parities 282, 284 and 286 of each data are stored.
  • the control code and parity are n words in size and are stored in memory cells assigned addresses 1 to n, respectively.
  • FIG. 5 is a diagram illustrating an example of a processing procedure of power-on processing according to the first embodiment of the present technology.
  • This figure shows a processing procedure of power-on processing of the memory 220 by the memory controller 210.
  • the memory controller 210 controls the power supply control unit 201 to turn on the power supply voltage to be applied to the memory 220 (step S901). Thereafter, the process waits until the startup process in the memory 220 is completed (step S902).
  • step S902 Yes
  • the control code deterioration information holding unit 226 is read (step S903).
  • step S904 issuing a request for requesting the memory 220 to read the control code deterioration information holding unit 226.
  • step S904 issuing a request for requesting the memory 220 to read the control code deterioration information holding unit 226.
  • step S905 the memory controller 210 determines that the control code has deteriorated, and performs the refresh process (step S905).
  • control code is read (step S906). This is done by issuing a request to the memory 220 for requesting reading of the control code. Based on this request, the control code is read and transferred from the memory 220 to the memory controller 210.
  • the read control code is written (step S907). This is performed by issuing a request for writing the control code to the memory 220 and transferring the control code read in step S907 to the memory 220. Thereafter, the power-on process is terminated.
  • step S904 No
  • the memory controller 210 determines that the control code has not deteriorated, and ends the power-on process.
  • FIG. 6 is a diagram illustrating an example of a processing procedure of the memory activation process according to the first embodiment of the present technology.
  • the process shown in the figure corresponds to the activation process of the memory 220 described in step S902 of the power-on process in FIG.
  • the read control unit 222 has an error occurrence flag indicating whether or not an error has occurred in the control code. When this flag is 1, the read control unit 222 determines that an error has occurred.
  • a power-on reset (step S931) is performed. This is done by turning on the reset signal by the power-on reset unit 252 and initializing the address counter built in the read control unit 222 to a value indicating the head of the control code memory 280.
  • the value of the address counter is initialized to 1.
  • the values of the control code deterioration information holding unit 226 and the error occurrence flag are also initialized to 0.
  • step S940 control code reading and error correction processing are performed (step S940).
  • step S940 control code reading and error correction processing are performed (step S940).
  • step S940 control code reading and error correction processing are performed (step S940).
  • step S940 control code reading and error correction processing are performed (step S940).
  • step S940 control code reading and error correction processing are performed (step S940).
  • step S940 control code reading and error correction processing are performed.
  • step S935 one word of data (control code of one word) is selected and output from the control code.
  • the selected data is transferred to the work memory 223 (step S934).
  • step S935: Yes the process proceeds to the next process (step S937).
  • step S935: No the address counter is incremented (step S936), and the processing from step S940 is executed again.
  • step S937: Yes the value of the control code deterioration information holding unit 226 is set to 1 (step S938). Thereafter, the memory activation process is terminated. On the other hand, if the value of the error occurrence flag is not 1 (step S937: No), the memory activation process is terminated.
  • FIG. 7 is a diagram illustrating an example of a processing procedure of control code reading and error correction processing according to the first embodiment of the present technology.
  • the control code is read (step S941). This is done by reading the control code and parity from the memory cells of the control code memory 280. At this time, the control code and parity in word units are read from the memory cell at the address designated by the address counter. In the first embodiment of the present technology, three control codes and three parities are stored in the memory cells with the same address. For this reason, the control code and parity of 3 words are read out.
  • the control code is decoded (step S942). This is done by transferring the read control code and parity of one word to the ECC decoding unit 231 and decoding. This decoding is also performed for each control code of 3 words.
  • step S943 the majority calculation of the control code is performed (step S943). This is performed by transferring the three decoded one-word control codes to the majority operation unit 232 and performing the majority operation for each bit in the majority operation unit 232.
  • this majority decision operation when the values of all three bits of the control code of one word match (step S944: Yes), no error has occurred, and the process proceeds to the next process (step S946).
  • step S944: No the read control unit 222 sets the error occurrence flag to 1 (step S945). Thereafter, the result of the majority operation is set as selection data (step S946), the control code is read, and the error correction process is terminated.
  • FIG. 8 is a diagram illustrating an example of a processing procedure of a control code reading process according to the first embodiment of the present technology.
  • This process is a process in the memory 220 corresponding to a request for reading the control code issued by the control code reading process (step S906) in the power-on process described with reference to FIG. Accordingly, the control unit 221 starts processing when a request for reading the control code is issued.
  • the control unit 221 interprets the request and transmits the control code held in the work memory 223 to the memory controller 210 (step S951). Thereafter, the process ends.
  • FIG. 9 is a diagram illustrating an example of a processing procedure of a control code rewriting process according to the first embodiment of the present technology.
  • This process is a process in the memory 220 corresponding to the request for requesting the writing of the control code issued by the control code writing process (step S907) in the power-on process described with reference to FIG. Therefore, the control unit 221 starts processing when a request for writing the control code is issued.
  • the control unit 221 interprets the request and receives a control code from the memory controller 210. Thereafter, the received control code is transferred to the work memory 223 (step S961).
  • an initial value is set in the address counter built in the control unit 221 (step S962). In the first embodiment of the present technology, the value of the address counter is initialized to 1.
  • a control code for one word is taken out from the transferred control code and encoded (step S963). This encoding is performed by transferring the control code for one word to the parity generation unit 254 and adding the generated parity to the control code for one word.
  • the control code encoded in the control code memory 280 is rewritten (step S964). At this time, rewriting is performed on the memory cell at the address designated by the address counter. The control code and parity for one word are rewritten in each of the three areas of the memory cell. That is, the control code and parity for 3 words are rewritten.
  • step S965 Yes
  • the control code rewriting process is terminated. If the rewriting of the control code has not ended (step S965: No), the address counter is incremented (step S966), and the processing from step S963 is executed again.
  • the storage reliability of the control code can be improved.
  • double error correction by ECC encoding and majority voting is performed to further increase the storage reliability of the control code.
  • the control code is rewritten via the memory controller 210. For this reason, the memory controller 210 can adjust the timing of rewriting the control code, and can easily manage the schedule of the entire storage device.
  • control code deterioration is determined when a control code mismatch occurs in the majority operation.
  • deterioration of the control code may be determined when error correction is performed in ECC decoding. This is because it is possible to determine the deterioration of the control code at an earlier stage as compared with the method of determining the deterioration based on the mismatch of the majority of the control codes after the error correction is performed. As a result, the storage reliability of the control code can be further improved.
  • the modification of the first embodiment of the present technology is different from the first embodiment of the present technology in that the deterioration of the control code is determined when error correction is performed in ECC decoding.
  • the ECC decoding unit 231 determines that the control code is in a deteriorated state when the control code error is detected and error correction is performed in the decoding process. Notify As described above, the ECC decoding unit 231 includes the function of the deterioration state detection unit 225 described with reference to FIG. Since the other configuration of the storage device is the same as that of the storage device 200 described in the first embodiment of the present technology, the description thereof is omitted.
  • FIG. 10 is a diagram illustrating an example of a processing procedure of control code reading and error correction processing according to a modification of the embodiment of the present technology.
  • the control code is read (step S971). This is performed by reading three control codes and parity from the memory cells of the control code memory 280, respectively.
  • the control code is decoded (step S972). This is performed by transferring the read control code and parity of one word to the ECC decoding unit 231 and decoding them by the ECC decoding unit 231. This decoding is also performed for each of the three control codes.
  • step S974 Yes
  • the process proceeds to the next process (step S973).
  • step S974 when the error correction of the control code is performed (step S974: No), the read control unit 222 sets the error occurrence flag to 1 (step S975). Thereafter, a majority operation is performed (step S973). The result of the majority operation is used as selection data (step S976), and the control code reading and error correction processing are terminated. Since other processing procedures are the same as those of the storage device 200 according to the first embodiment of the present technology, description thereof is omitted.
  • Second Embodiment> [Example of logical OR operation]
  • error correction is performed by ECC decoding and majority operation.
  • error correction by logical sum operation is performed.
  • FIG. 11 is a diagram illustrating a configuration example of a memory according to the second embodiment of the present technology.
  • the memory 220 in the figure includes an error correction unit 230 including a logical sum operation unit 233.
  • the parity generation unit 254 need not be provided.
  • the memory cell array 270 uses a memory cell array composed of ReRAM. The other configuration is the same as that of the memory 220 described with reference to FIG.
  • FIG. 12 is a diagram illustrating a logical sum operation according to the second embodiment of the present technology. This figure explains the logical sum operation performed in the logical sum operation unit 233. An example of performing a logical sum operation on the first to third control codes (read data) will be described.
  • the logical sum operation unit 233 calculates and outputs a logical sum for each bit of each read data.
  • the logical sum is an operation that outputs “0” when all the values of each bit are “0”, and outputs “1” when at least one bit has a value of “1”.
  • a ReRAM memory cell performs a storage operation by applying a voltage to a resistance change layer and utilizing a change in the resistance value.
  • the resistance change layer has a two-layer structure including an insulating layer and a metal ion supply layer including chalcogenide, and can perform a memory operation by changing a resistance value by applying a voltage.
  • the variable resistance layer in the initial state immediately after manufacture is in a high resistance state. In order to make this usable as a memory, forming is performed before shipment from the factory.
  • This forming is performed by applying a voltage (hereinafter referred to as a forming voltage), whereby metal ions supplied from the metal ion supply layer enter the insulating layer to form a filament that is a conductive path.
  • a forming voltage a voltage
  • the metal ions forming the filament return from the insulating layer to the metal ion supply layer side, and thus return to a high resistance state.
  • a voltage is applied again, the state transitions to a low resistance state, but can be transitioned to a low resistance state by applying a voltage lower than the forming voltage.
  • the high resistance state corresponds to the logical state “0”
  • the low resistance state corresponds to the logical state “1”.
  • the variable resistance layer before forming maintains a high resistance state, and maintains this logic state “0” unless a forming voltage is applied. Therefore, no deterioration occurs.
  • the resistance change layer of the memory cell that is set to the logic state “1” by forming may cause a transition to the logic state “0” due to deterioration.
  • control codes are stored and errors are corrected by using the properties of the ReRAM.
  • the ReRAM memory cell in the initial state is in the logic state “0”.
  • the control code is written by applying the forming voltage only to the bit to which the logic state “1” is written.
  • the error can be corrected by the logical sum operation.
  • the bits of the control code value “0” are not deteriorated, and therefore all the three bits are maintained at “0”.
  • the result of the logical sum operation is also “0”.
  • a bit whose control code value is “1” may be “0” due to deterioration.
  • the error can be corrected to “1” by performing a logical sum operation.
  • FIG. 13 is a diagram illustrating an example of a processing procedure of control code reading and error correction processing according to the second embodiment of the present technology.
  • This process is a process called in step S940 of the memory activation process described with reference to FIG.
  • the control code is read (step S811). This is performed by reading the control code from the memory cell of the control code memory 280. At this time, a word-unit control code is read from the memory cell at the address designated by the address counter. In the second embodiment of the present technology, a control code of 3 words is read.
  • a logical OR operation of the control code (step S813) is performed. This is performed by transferring three read control codes of one word to the logical sum operation unit 233 and performing a logical sum operation for each bit.
  • this logical sum operation when the values of all three bits of the control code of one word match (step S814: Yes), no error has occurred, and the process proceeds to the next process (step S816).
  • the read control unit 222 sets the error occurrence flag to 1 (step S815). Thereafter, the result of the logical sum operation is set as selection data (step S816), and the control code reading and error correction processing are terminated. Note that other processing procedures are the same as those in the first embodiment of the present technology, and a description thereof will be omitted.
  • control code writing process can be simplified by writing the control code in parallel with the forming. Further, simple error correction processing can be realized by performing error correction by logical sum operation using the characteristics of the nonvolatile memory.
  • FIG. 14 is a diagram illustrating a configuration example of a memory according to the third embodiment of the present technology.
  • the memory 220 in the figure includes a count unit 261.
  • the count unit 261 includes a deterioration state detection unit 225.
  • the count unit 261 measures the number of times power is turned on or off in the memory 220.
  • the count unit 261 can be configured by, for example, a nonvolatile memory that stores the number of times of power-on.
  • the measurement in the count unit 261 can be performed by incrementing the number of times of power-on stored in the nonvolatile memory as the activation process after reset by the power-on reset unit 252.
  • the read control unit 222 is notified that the control code is in a degraded state.
  • the count unit 261 includes the function of the deterioration state detection unit 225.
  • deterioration information is set when an error correction is performed in the majority voting unit 232 and when the number of power-on times reaches a set value.
  • the other configuration of the memory 220 is the same as that of the memory 220 described with reference to FIG.
  • the number of times of turning on or off the power in the memory 220 reaches a predetermined number. Then, the control code deterioration is detected and rewritten. Thereby, the storage reliability of the control code can be further increased.
  • the storage device according to the fourth embodiment of the present technology may have the same configuration as the storage device 200 described in FIG.
  • the control unit 221 is different in that it interprets a request for rewriting issued from the memory controller and rewrites the control code. Since other than this is the same as that of the storage device 200, the description thereof is omitted.
  • FIG. 15 is a diagram illustrating an example of a processing procedure of power-on processing according to the fourth embodiment of the present technology.
  • the memory controller 210 controls the power supply control unit 201 to turn on the power supply voltage applied to the memory 220 (step S991). Thereafter, the process waits until the activation process in the memory 220 is completed (step S992). When the activation process in the memory 220 is completed (step S992: Yes), the control code deterioration information holding unit 226 is read (step S993).
  • step S994: Yes when the value of the control code deterioration information holding unit 226 is 1 (step S994: Yes), the memory controller 210 determines that the control code has deteriorated, and performs the refresh process (step S995). . This is performed by issuing a request for refreshing to the memory 220 (step S996). Thereafter, the power-on process is terminated.
  • step S994: No when the value of the control code deterioration information holding unit is 0 (step S994: No), the memory controller 210 determines that the control code has not deteriorated and ends the power-on process.
  • FIG. 16 is a diagram illustrating an example of a processing procedure of control code rewriting processing. This process is started when a request for rewriting the control code is issued.
  • the control unit 221 interprets the request and sets an initial value in an address counter built in the control unit 221 (step S802).
  • a control code for one word is extracted from the control code held in the work memory 223 and encoded (step S803). This encoding is performed by transferring a control code for one word to the parity generation unit 254 and adding the parity generated by the parity generation unit 254.
  • the control code encoded in the control code memory 280 is rewritten (step S804).
  • step S805 If rewriting has not been completed for all words of the control code (step S805: No), the address counter is incremented (step S806), and the processing from step S803 is executed again. When rewriting is completed for all the words of the control code (step S805: Yes), the control code rewriting process is terminated. Note that the other processing procedures are the same as those of the storage device 200 according to the first embodiment of the present technology, and thus the description thereof is omitted.
  • the memory controller 210 can rewrite the control code by issuing only a request for requesting rewriting of the control code, and rewrite the control code. Processing can be simplified.
  • FIG. 17 is a diagram illustrating an example of a functional block diagram of the storage device according to the fifth embodiment of the present technology.
  • the storage device in the figure is configured by removing the memory controller 210 and the control code deterioration information supply unit 227 from the storage device described in FIG.
  • the control unit 221 directly acquires the control code deterioration information held in the control code deterioration information holding unit 226 and outputs a rewrite instruction. Since the configuration of the other functional blocks is the same as that of the storage device described with reference to FIG.
  • the memory 220 according to the fifth embodiment of the present technology may have the same configuration as the memory 220 in FIG.
  • the control unit 221 reads the control code deterioration information holding unit 226 after the power-on process is completed. As a result, if the deterioration of the control code is set, the control code rewriting process described later is performed. Rewrite the control code.
  • the other configuration of the memory 220 is the same as that of the memory 220 described with reference to
  • the power-on procedure by the memory controller 210 in the fifth embodiment of the present technology is as follows. First, the memory controller 210 turns on the power of the memory module. Next, it waits for the memory activation to end. Thereafter, the processing is terminated and normal processing is performed. Compared with the processing procedure described in FIG. 15, the control code deterioration information holding unit read process (step S993) and the subsequent processes are not performed. Thereafter, memory activation processing, control code reading, and error correction processing in the memory 220 are sequentially performed. These are the same as the processes described with reference to FIGS.
  • FIG. 18 is a diagram illustrating an example of a processing procedure of a control unit activation process according to the fifth embodiment of the present technology.
  • the control unit 221 After the control code reading process by the reading control unit 222 is completed, the control unit 221 performs this process. First, the control unit 221 reads the control code deterioration information holding unit 226 (step S823). As a result, when the value of the control code deterioration information holding unit 226 is 0 (step S824: No), the control unit 221 ends the control unit activation process.
  • step S824 when the value of the control code deterioration information holding unit 226 is 1 (step S824: Yes), the control unit 221 determines that the control code has deteriorated, and performs control code rewriting processing (step S830). carry out. Thereafter, the control unit activation process is terminated.
  • the processing procedure of the control code rewriting process in the fifth embodiment of the present technology may be the same processing procedure as the control code rewriting process described in FIG. However, it is different in that it is called in step S830 in the above-described control unit activation process. Other than this, the processing is the same as that described in FIG.
  • error correction is performed on the control code stored in the control code memory which is a nonvolatile memory. Thereafter, by rewriting the control code in which the error is corrected in the control code memory, accumulation of errors can be prevented, and the storage reliability of the control code 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 control code memory for storing a control code for controlling the nonvolatile memory;
  • a read controller that reads the control code from the control code memory before the operation of the nonvolatile memory;
  • An error correction unit that performs error correction of the read control code;
  • a working memory holding the control code in which the error is corrected;
  • a control unit that controls the nonvolatile memory based on the control code held in the working memory and outputs an instruction to request rewriting of the control code held in the working memory with respect to the control code memory;
  • a refresh control unit that performs the rewriting based on the instruction.
  • a deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code;
  • a control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information;
  • the storage device (1), wherein the control unit outputs the instruction based on the control code deterioration information.
  • the deterioration state detection unit detects the deterioration state by detecting that the error correction has occurred in the error correction unit.
  • (6) further comprising a control code deterioration information supply unit that supplies the control code deterioration information to the memory controller;
  • Any storage device. (7) further comprising a parity generator for generating parity for correcting an error in the control code;
  • the control code memory further includes an area for storing the parity,
  • the error correction unit performs the error correction using the parity,
  • the control code memory stores the control code in a plurality of areas, The memory according to any one of (1) to (6), wherein the error correction unit performs the error correction by correcting a bit when corresponding values in the plurality of control codes do not match each other. apparatus.
  • a control code memory for storing a control code for controlling the nonvolatile memory;
  • a read controller that reads the control code from the control code memory before the operation of the nonvolatile memory;
  • An error correction unit that performs error correction of the read control code;
  • a working memory holding the control code in which the error is corrected;
  • a deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code held in the working memory in the control code memory;
  • a control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information;
  • a control code deterioration information supply unit for supplying the control code deterioration information to the memory controller;
  • a memory controller that issues a request for requesting the rewriting based on the supplied control code deterioration information;
  • a control unit that controls the nonvolatile memory based on the control code held in the working memory, and outputs an instruction to request the rewriting based on the issued request;
  • a control code memory for storing a control code for controlling the nonvolatile memory
  • a read controller that reads the control code from the control code memory before the operation of the nonvolatile memory
  • An error correction unit that performs error correction of the read control code
  • a working memory holding the control code in which the error is corrected
  • a deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code held in the working memory in the control code memory
  • a control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information
  • a control code deterioration information supply unit for supplying the control code deterioration information to the memory controller
  • a memory controller that issues a request for requesting the rewriting based on the supplied control code deterioration information
  • a control unit that controls the nonvolatile memory based on the control code held in the working memory, and outputs an instruction to request the rewriting based on the issued request;
  • a storage device including a
  • (13) a reading procedure for reading a control code for controlling the nonvolatile memory from the control code memory before the operation of the nonvolatile memory; An error correction procedure for performing error correction of the read control code; A control procedure for controlling the nonvolatile memory based on the control code in which the error is corrected, and outputting an instruction for requesting rewriting of the control code in which the error is corrected with respect to the control code memory; And a refresh control procedure for performing the rewriting based on the instruction.

Landscapes

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

Abstract

The purpose of the present invention is to store control codes for controlling a non-volatile memory in the non-volatile memory and to improve the storage reliability thereof. A control code memory stores the control codes for controlling the non-volatile memory. A reading control unit reads the control codes from the control code memory prior to the operation of the non-volatile memory. An error correction unit corrects an error in the read control codes. A working memory holds the error-corrected control codes. A control unit controls the non-volatile memory on the basis of the control codes held in the working memory and outputs a command to request that the control code memory be rewritten with the control codes held in the working memory. A refresh control unit carries out the rewriting on the basis of the control code rewriting request command.

Description

記憶装置、情報処理システムおよび記憶装置の制御方法Storage device, information processing system, and storage device control method
 本技術は、記憶装置、情報処理システムおよび記憶装置の制御方法に関する。詳しくは、起動データを不揮発メモリに記憶させ、この起動データの誤り訂正を行う記憶装置、情報処理システムおよび記憶装置の制御方法に関する。 The present technology relates to a storage device, an information processing system, and a storage device control method. Specifically, the present invention relates to a storage device, an information processing system, and a storage device control method for storing startup data in a nonvolatile memory and correcting an error of the startup data.
 NANDフラッシュメモリやReRAM(resistance random access memory)などの不揮発メモリ(nonvolatile memory)を使用するには、内蔵した制御回路を動作させるための制御コードが必要である。この制御コードの記憶には高い信頼性が要求され、不揮発メモリ内部に配置したアンチヒューズを使用したOTP(one time programming)メモリ等が使用されている。しかし、不揮発メモリ容量の増大に伴って、この制御コードの容量も増加しており、大容量のOTPメモリが必要となってきている。OTPメモリは、不揮発メモリのメモリセル、例えば、ReRAMと比べて容量当たりのセル面積が大きいため、OTPメモリの大容量化による不揮発メモリチップサイズの増加を招いている。 In order to use non-volatile memory such as NAND flash memory and ReRAM (resistance random access memory), a control code for operating the built-in control circuit is required. High reliability is required for storing the control code, and an OTP (one-time programming) memory using an antifuse arranged in the nonvolatile memory is used. However, as the nonvolatile memory capacity increases, the capacity of the control code also increases, and a large-capacity OTP memory is required. Since the OTP memory has a larger cell area per capacity than a memory cell of a nonvolatile memory, for example, ReRAM, an increase in the capacity of the OTP memory leads to an increase in the size of the nonvolatile memory chip.
 不揮発メモリのメモリセル内に制御コードを記憶するための領域を設け、ここに制御コードを記憶させることにより、上述したOTPメモリは不要となる。その一方で、不揮発メモリであるReRAM等は、ビットエラーが発生し、データ記憶の信頼性がOTPメモリより低いという問題がある。記憶の信頼性を高めるために、複雑なECC処理を付加することは、コストの増大や起動時間の増加等の問題を生じることとなる。 An area for storing the control code is provided in the memory cell of the nonvolatile memory, and the OTP memory described above becomes unnecessary by storing the control code therein. On the other hand, ReRAM, which is a nonvolatile memory, has a problem that a bit error occurs and the reliability of data storage is lower than that of an OTP memory. Adding complicated ECC processing to increase the reliability of storage causes problems such as an increase in cost and an increase in startup time.
 これに対し、不揮発メモリに制御コードを複数個記憶させ、制御コードを読み出す際、これらの制御コードのビット毎の多数決演算を行うことにより、制御コードの誤り訂正を行うメモリシステムが提案されている(例えば、特許文献1参照。)。多数決演算は、回路サイズが小さく、高速に動作するため、コストの増大および起動時間の増加を回避することができる。 On the other hand, a memory system has been proposed in which a plurality of control codes are stored in a non-volatile memory, and when the control codes are read, a majority operation is performed for each bit of these control codes to correct the control code error. (For example, refer to Patent Document 1). Since the majority decision operation has a small circuit size and operates at a high speed, an increase in cost and an increase in start-up time can be avoided.
特開2010-225259号公報JP 2010-225259 A
 上述の従来技術では、制御コードの誤りが発生した場合であっても多数決演算により誤り訂正を可能にしている。しかし、誤りの累積を防ぐ手段を講じておらず、多数の誤りが累積した状態となった場合、誤りの訂正が不可能となるおそれがある。 In the above-described prior art, even if a control code error occurs, error correction is possible by majority operation. However, no measures are taken to prevent the accumulation of errors, and if a large number of errors are accumulated, there is a risk that the correction of the errors may be impossible.
 本技術はこのような状況に鑑みて生み出されたものであり、誤りを訂正した制御コードをその記憶場所である不揮発メモリに書き直すことにより制御コードの記憶信頼性を高めることを目的とする。 The present technology has been created in view of such a situation, and an object thereof is to improve the storage reliability of the control code by rewriting the control code in which the error is corrected in the nonvolatile memory as the storage location.
 本技術は、上述の問題点を解消するためになされたものであり、その第1の側面は、不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、上記不揮発メモリの動作前に上記制御コードを上記制御コードメモリから読み出す読出し制御部と、上記読み出した上記制御コードの誤り訂正を行う誤り訂正部と、上記誤りが訂正された上記制御コードを保持する作業メモリと、上記作業メモリに保持された上記制御コードに基づいて上記不揮発メモリの制御を行い、上記制御コードメモリに対する上記作業メモリに保持された上記制御コードの書直しを要求する指示を出力する制御部と、上記指示に基づいて上記書直しを行うリフレッシュ制御部とを具備する記憶装置である。これにより、訂正された制御コードが制御コードメモリに書き直されるという作用をもたらす。 The present technology has been made to solve the above-described problems. The first aspect of the present technology is a control code memory for storing a control code for controlling the nonvolatile memory, and before the operation of the nonvolatile memory. A read control unit that reads the control code from the control code memory, an error correction unit that performs error correction of the read control code, a working memory that holds the control code in which the error is corrected, and the working memory A control unit that controls the nonvolatile memory based on the control code held in the memory and outputs an instruction for requesting the control code memory to rewrite the control code held in the working memory; and And a refresh control unit that performs the above rewriting based on the storage device. As a result, the corrected control code is rewritten in the control code memory.
 また、この第1の側面において、上記制御コードの書直しの必要性を示す劣化状態を検出する劣化状態検出部と、上記検出された上記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部とをさらに具備し、上記制御部は、上記制御コード劣化情報に基づいて上記指示を出力してもよい。これにより、制御コードの劣化状態が検出され、これに基づいて書直しが行われるという作用をもたらす。 Further, in the first aspect, a deterioration state detection unit that detects a deterioration state indicating the necessity of rewriting the control code, and control code deterioration information that holds the detected deterioration state as control code deterioration information A holding unit, and the control unit may output the instruction based on the control code deterioration information. Thereby, the deterioration state of the control code is detected, and rewriting is performed based on this.
 また、この第1の側面において、上記劣化状態検出部は、上記誤り訂正部において上記誤りの訂正が発生したことを検出することにより上記劣化状態を検出してもよい。これにより、制御コードの誤り発生を検出することにより制御コードの劣化を検出するという作用をもたらす。 In the first aspect, the deterioration state detection unit may detect the deterioration state by detecting that the error correction has occurred in the error correction unit. This brings about the effect of detecting the deterioration of the control code by detecting the error occurrence of the control code.
 また、この第1の側面において、上記メモリにおける電源の投入または切断の回数をカウントするカウント部をさらに具備し、上記劣化状態検出部は、上記カウント部がカウントした上記回数が所定の回数に達したことにより上記劣化状態を検出してもよい。これにより、電源の投入または切断の回数が所定の回数に達したことを検出することにより制御コードの劣化を検出するという作用をもたらす。 In the first aspect, the memory device further includes a counting unit that counts the number of times the power is turned on or off in the memory, and the deterioration state detecting unit is configured such that the number of times counted by the counting unit reaches a predetermined number. Therefore, the deterioration state may be detected. This brings about the effect of detecting the deterioration of the control code by detecting that the number of times of turning on or off the power has reached a predetermined number.
 また、この第1の側面において、上記制御部は、上記保持された上記制御コード劣化情報の読出しを行い当該読み出した制御コード劣化情報に基づいて上記指示を出力してもよい。これにより、制御部が制御コード劣化情報を読み出して制御コードの書直しの指示を出力するという作用をもたらす。 In this first aspect, the control unit may read the held control code deterioration information and output the instruction based on the read control code deterioration information. As a result, the control unit reads out the control code deterioration information and outputs an instruction to rewrite the control code.
 また、この第1の側面において、メモリコントローラに対して上記制御コード劣化情報を供給する制御コード劣化情報供給部をさらに具備し、上記制御部は、上記供給された上記制御コード劣化情報に基づいて上記メモリコントローラから発行された上記書直しを要求するリクエストに基づいて上記指示を出力してもよい。これにより、メモリコントローラを介して制御コードの書直しが行われるという作用をもたらす。 In addition, in the first aspect, a control code deterioration information supply unit that supplies the control code deterioration information to the memory controller is further provided, and the control unit is configured to perform the control based on the supplied control code deterioration information. The instruction may be output based on a request for rewriting issued from the memory controller. As a result, the control code is rewritten via the memory controller.
 また、この第1の側面において、上記制御コードの誤りを訂正するためのパリティを生成するパリティ生成部をさらに具備し、上記制御コードメモリは、上記パリティを記憶する領域をさらに備え、上記誤り訂正部は、上記パリティを用いて上記誤り訂正を行い、上記リフレッシュ制御部は、上記誤りが訂正された上記制御コードとともに対応するパリティを上記コードメモリに書直してもよい。これにより、パリティを用いて制御コードの誤りが訂正されるという作用をもたらす。 In the first aspect, the control code memory further includes a parity generation unit that generates a parity for correcting an error in the control code, and the control code memory further includes an area for storing the parity. The unit may perform the error correction using the parity, and the refresh control unit may rewrite the corresponding parity in the code memory together with the control code in which the error is corrected. This brings about the effect that the error of the control code is corrected using the parity.
 また、この第1の側面において、上記制御コードメモリは、上記制御コードを複数の領域に記憶し、上記誤り訂正部は、上記複数の上記制御コードにおいてそれぞれ対応する値が不一致となる際にはビットを訂正することにより上記誤り訂正を行ってもよい。これにより、複数の制御コードにより誤りが訂正されるという作用をもたらす。 Further, in this first aspect, the control code memory stores the control code in a plurality of areas, and the error correction unit detects that the corresponding values in the plurality of control codes do not match. The error correction may be performed by correcting the bit. As a result, an error is corrected by a plurality of control codes.
 また、この第1の側面において、上記誤り訂正部は、上記不一致のビットに対して多数決演算を行って訂正することにより上記誤り訂正を行ってもよい。これにより、多数決演算により制御コードの誤りが訂正されるという作用をもたらす。 In this first aspect, the error correction unit may perform the error correction by performing a majority operation on the mismatched bits to correct the mismatched bits. As a result, the error of the control code is corrected by the majority operation.
 また、この第1の側面において、上記誤り訂正部は、上記不一致のビットに対して論理和演算を行って訂正することにより上記誤り訂正を行ってもよい。これにより、論理和演算により制御コードの誤りが訂正されるという作用をもたらす。 In the first aspect, the error correction unit may perform the error correction by performing a logical sum operation on the mismatched bits to correct the mismatched bits. This brings about the effect that the error of the control code is corrected by the logical sum operation.
 また、この第1の側面において、不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、上記不揮発メモリの動作前に上記制御コードを上記制御コードメモリから読み出す読出し制御部と、上記読み出した上記制御コードの誤り訂正を行う誤り訂正部と、上記誤りが訂正された上記制御コードを保持する作業メモリと、上記作業メモリに保持された上記制御コードを上記制御コードメモリに書き直す必要性を示す劣化状態を検出する劣化状態検出部と、上記検出された上記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部と、メモリコントローラに対して上記制御コード劣化情報を供給する制御コード劣化情報供給部と、上記供給された上記制御コード劣化情報に基づいて上記書直しを要求するリクエストを発行するメモリコントローラと、上記作業メモリに保持された上記制御コードに基づいて上記不揮発メモリの制御を行い、上記発行された上記リクエストに基づく上記書直しを要求する指示を出力する制御部と、上記指示に基づいて上記書直しを行うリフレッシュ制御部とを具備してもよい。これにより、メモリコントローラを介して制御コードの書直しが行われるという作用をもたらす。 Further, according to the first aspect, a control code memory for storing a control code for controlling the nonvolatile memory, a read control unit for reading the control code from the control code memory before the operation of the nonvolatile memory, and the reading An error correction unit that performs error correction of the control code, a working memory that holds the control code in which the error is corrected, and the necessity to rewrite the control code held in the working memory in the control code memory. A deterioration state detection unit that detects the deterioration state indicated, a control code deterioration information holding unit that holds the detected deterioration state as control code deterioration information, and a control code that supplies the control code deterioration information to the memory controller Request the rewriting based on the deterioration information supply unit and the supplied control code deterioration information A memory controller that issues a quest, and a control unit that controls the nonvolatile memory based on the control code held in the working memory and outputs an instruction to request the rewrite based on the issued request. And a refresh control unit that performs the rewriting based on the instruction. As a result, the control code is rewritten via the memory controller.
 また、本技術の第2の側面は、不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、上記不揮発メモリの動作前に上記制御コードを上記制御コードメモリから読み出す読出し制御部と、上記読み出した上記制御コードの誤り訂正を行う誤り訂正部と、上記誤りが訂正された上記制御コードを保持する作業メモリと、上記作業メモリに保持された上記制御コードを上記制御コードメモリに書き直す必要性を示す劣化状態を検出する劣化状態検出部と、上記検出された上記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部と、メモリコントローラに対して上記制御コード劣化情報を供給する制御コード劣化情報供給部と、上記供給された上記制御コード劣化情報に基づいて上記書直しを要求するリクエストを発行するメモリコントローラと、上記作業メモリに保持された上記制御コードに基づいて上記不揮発メモリの制御を行い、上記発行された上記リクエストに基づく上記書直しを要求する指示を出力する制御部と、上記指示に基づいて上記書直しを行うリフレッシュ制御部とを備える記憶装置と、上記メモリコントローラを介して上記記憶装置にアクセスするホストコンピュータとを具備する情報処理システムである。これにより、メモリコントローラを介して制御コードの書直しが行われるという作用をもたらす。 A second aspect of the present technology includes a control code memory that stores a control code for controlling the nonvolatile memory, a read control unit that reads the control code from the control code memory before the nonvolatile memory is operated, An error correction unit that performs error correction of the read control code, a working memory that holds the control code in which the error is corrected, and the control code held in the working memory needs to be rewritten in the control code memory A deterioration state detection unit that detects a deterioration state that indicates the characteristics, a control code deterioration information holding unit that holds the detected deterioration state as control code deterioration information, and supplies the control code deterioration information to the memory controller A control code deterioration information supply unit and a request for rewriting based on the supplied control code deterioration information. A memory controller that issues an est; a control unit that controls the nonvolatile memory based on the control code held in the working memory and outputs an instruction to request the rewrite based on the issued request; An information processing system comprising: a storage device including a refresh control unit that performs the rewriting based on the instruction; and a host computer that accesses the storage device via the memory controller. As a result, the control code is rewritten via the memory controller.
 また、本技術の第3の側面は、不揮発メモリを制御するための制御コードを上記不揮発メモリの動作前に制御コードメモリから読み出す読出し手順と、上記読み出した上記制御コードの誤り訂正を行う誤り訂正手順と、上記誤りが訂正された上記制御コードに基づいて上記不揮発メモリの制御を行い、上記制御コードメモリに対する上記誤りが訂正された上記制御コードの書直しを要求する指示を出力する制御手順と、上記指示に基づいて上記書直しを行うリフレッシュ制御手順とを具備する記憶装置の制御方法である。制御コードの書直しが行われるという作用をもたらす。 In addition, according to a third aspect of the present technology, a read procedure for reading a control code for controlling the nonvolatile memory from the control code memory before the operation of the nonvolatile memory, and an error correction for correcting the error of the read control code are performed. A control procedure for controlling the nonvolatile memory based on the control code in which the error is corrected, and outputting an instruction for requesting the control code memory to rewrite the control code in which the error is corrected; And a refresh control procedure for performing the rewriting based on the instruction. The control code is rewritten.
 本技術によれば、制御コードを不揮発メモリに記憶し、この記憶信頼性を高めるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。 According to the present technology, the control code can be stored in the non-volatile memory, and an excellent effect of increasing the storage reliability can be obtained. Note that the effects described here are not necessarily limited, and may be any of the effects described in the present disclosure.
本技術の実施の形態における情報処理システムの構成例を示す図である。It is a figure showing an example of composition of an information processing system in an embodiment of this art. 本技術の第1の実施の形態における記憶装置の機能ブロックの一例を示す図である。It is a figure showing an example of a functional block of a storage unit in a 1st embodiment of this art. 本技術の第1の実施の形態におけるメモリの構成例を示す図である。It is a figure showing an example of composition of a memory in a 1st embodiment of this art. 本技術の第1の実施の形態における制御コードメモリのデータ配置例を示す図である。It is a figure showing an example of data arrangement of a control code memory in a 1st embodiment of this art. 本技術の第1の実施の形態における電源投入処理の処理手順の一例を示す図である。It is a figure showing an example of a processing procedure of power-on processing in a 1st embodiment of this art. 本技術の第1の実施の形態におけるメモリ起動処理の処理手順の一例を示す図である。It is a figure showing an example of a processing procedure of memory starting processing in a 1st embodiment of this art. 本技術の第1の実施の形態における制御コードの読出し、誤り訂正処理の処理手順の一例を示す図である。It is a figure which shows an example of the process sequence of the reading of the control code in 1st Embodiment of this technique, and an error correction process. 本技術の第1の実施の形態における制御コード読出し処理の処理手順の一例を示す図である。It is a figure showing an example of a processing procedure of control code reading processing in a 1st embodiment of this art. 本技術の第1の実施の形態における制御コード書直し処理の処理手順の一例を示す図である。It is a figure which shows an example of the process sequence of the control code rewriting process in 1st Embodiment of this technique. 本技術の第1の実施の形態の変形例における制御コードの読出し、誤り訂正処理の処理手順の一例を示す図である。It is a figure showing an example of a processing procedure of read-out of a control code and error correction processing in a modification of the first embodiment of the present technology. 本技術の第2の実施の形態におけるメモリの構成例を示す図である。It is a figure showing an example of composition of a memory in a 2nd embodiment of this art. 本技術の第2の実施の形態における論理和演算を説明する図である。It is a figure explaining OR operation in a 2nd embodiment of this art. 本技術の第2の実施の形態における制御コードの読出し、誤り訂正処理の処理手順の一例を示す図である。It is a figure which shows an example of the process sequence of the reading of the control code in 2nd Embodiment of this technique, and an error correction process. 本技術の第3の実施の形態におけるメモリの構成例を示す図である。It is a figure showing the example of composition of the memory in a 3rd embodiment of this art. 本技術の第4の実施の形態における電源投入処理の処理手順の一例を示す図である。It is a figure showing an example of a processing procedure of power-on processing in a 4th embodiment of this art. 本技術の第4の実施の形態における制御コード書直し処理の処理手順の一例を示す図である。It is a figure showing an example of a processing procedure of control code rewriting processing in a 4th embodiment of this art. 本技術の第5の実施の形態における記憶装置の機能ブロック図の一例を示す図である。It is a figure showing an example of a functional block diagram of a storage unit in a 5th embodiment of this art. 本技術の第5の実施の形態における制御部起動処理の処理手順の一例を示す図である。It is a figure showing an example of a processing procedure of control part starting processing in a 5th embodiment of this art.
 以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
 1.第1の実施の形態(ECC符号化と多数決演算を行う例)
 2.第2の実施の形態(論理和演算を行う例)
 3.第3の実施の形態(電源の投入または切断の回数により制御コードの劣化を判断する例)
 4.第4の実施の形態(メモリコントローラが書直しを要求するリクエストを発行する例)
 5.第5の実施の形態(メモリコントローラが介在することなく書直しを行う例)
Hereinafter, modes for carrying out the present technology (hereinafter referred to as embodiments) will be described. The description will be made in the following order.
1. First embodiment (an example of performing ECC encoding and majority operation)
2. Second embodiment (example of performing logical sum operation)
3. Third Embodiment (Example in which deterioration of control code is determined based on the number of times power is turned on or off)
4). Fourth Embodiment (Example in which a memory controller issues a request for rewriting)
5. Fifth embodiment (an example of rewriting without a memory controller)
 <1.第1の実施の形態>
 [ECC符号化と多数決演算を行う例]
 図1は、本技術の実施の形態における情報処理システムの構成例を示す図である。本技術の実施の形態における情報処理システムは、ホストコンピュータ100と、記憶装置200とを備える。ホストコンピュータ100は、記憶装置200との間で、データの書込みまたは読出しを行うものである。このホストコンピュータ100は、記憶装置200に対し、書込みまたは読出しを要求するコマンドを出力することにより、データの書込みおよび読出しを行う。
<1. First Embodiment>
[Example of ECC encoding and majority operation]
FIG. 1 is a diagram illustrating a configuration example of an information processing system according to an embodiment of the present technology. The information processing system according to the embodiment of the present technology includes a host computer 100 and a storage device 200. The host computer 100 writes data to or reads data from the storage device 200. The host computer 100 writes and reads data by outputting a command requesting writing or reading to the storage device 200.
 記憶装置200は、データを記憶するものである。この記憶装置200は、メモリコントローラ210と、電源制御部201と、メモリ220とを備える。メモリコントローラ210は、ホストコンピュータ100が出力したコマンドを解釈し、これに基づいてメモリ220を制御するものである。この制御は、メモリ220に対してリクエストを発行することにより行う。また、メモリコントローラ210は、ホストコンピュータ100との間でデータのやり取りも行う。メモリコントローラ210は、ECC処理部211を備える。このECC処理部211は、ホストコンピュータ100から出力されたデータにパリティを付加してECC符号にする符号化と、ECC符号から元のデータを取り出す復号とを行う。この復号の際、データの誤り訂正を行う。電源制御部201は、メモリ220に供給する電源のオンとオフを制御するものである。この電源制御部201はメモリコントローラ210により制御される。 The storage device 200 stores data. The storage device 200 includes a memory controller 210, a power control unit 201, and a memory 220. The memory controller 210 interprets a command output from the host computer 100 and controls the memory 220 based on the command. This control is performed by issuing a request to the memory 220. The memory controller 210 also exchanges data with the host computer 100. The memory controller 210 includes an ECC processing unit 211. The ECC processing unit 211 performs encoding that adds a parity to data output from the host computer 100 to form an ECC code, and decoding that extracts the original data from the ECC code. During this decoding, data error correction is performed. The power control unit 201 controls on / off of power supplied to the memory 220. The power controller 201 is controlled by the memory controller 210.
 メモリ220は、メモリコントローラ210を介してホストコンピュータ100から転送されたデータを記憶するものである。このメモリ220は、制御部221とメモリセルアレイ270とを備える。制御部221は、メモリ220全体を制御するものである。メモリセルアレイ270は、不揮発メモリにより構成されたメモリセルが2次元に配置されたもので、データ記憶の主体となるものである。不揮発メモリとしては、例えば、ReRAMを使用することができる。このほかにも、メモリ220は、メモリセルアレイ270を駆動するための回路を備えている。これらの詳細については後述する。 The memory 220 stores data transferred from the host computer 100 via the memory controller 210. The memory 220 includes a control unit 221 and a memory cell array 270. The control unit 221 controls the entire memory 220. The memory cell array 270 includes memory cells configured by a non-volatile memory arranged two-dimensionally and is a main data storage unit. As the nonvolatile memory, for example, ReRAM can be used. In addition, the memory 220 includes a circuit for driving the memory cell array 270. Details of these will be described later.
 メモリセルアレイ270は、制御コードメモリ280を含んでいる。すなわち、メモリセルアレイ270を構成するメモリセル群の一部が制御コードメモリ280として割り当てられている。この制御コードメモリ280は、制御コードを記憶するものである。この制御コードの第1の例は、不揮発メモリであるメモリセルアレイ270を制御するためのファームフェアである。より具体的には、メモリセルアレイ270に付属する駆動回路を動作させるためのファームウェアであり、制御部221は、この制御コードに基づいて制御を行う。また、制御コードの第2の例は、不揮発メモリの制御パラメータである。これは、不揮発メモリセルに印加する電圧やその印加時間などの固有の値である。制御部221は、このパラメータに基づいてメモリセルアレイに印加する電圧等を決定する。また、制御コードの第3の例として、不良アドレス情報を含んでも良い。これは、工場出荷時に不良と判断されたメモリ領域のアドレス情報である。制御部221は、この不良アドレス情報を参照して不良メモリ領域の代替処理を行う。なお、メモリセルアレイ270のうち制御コードメモリ280に割り当てられたメモリセル以外のメモリセルは、メモリコントローラが出力したデータを記憶する領域である。メモリ220およびメモリセルアレイ270の詳細については、後述する。 The memory cell array 270 includes a control code memory 280. That is, a part of the memory cell group constituting the memory cell array 270 is allocated as the control code memory 280. The control code memory 280 stores control codes. The first example of the control code is firmware for controlling the memory cell array 270 that is a nonvolatile memory. More specifically, it is firmware for operating a drive circuit attached to the memory cell array 270, and the control unit 221 performs control based on this control code. A second example of the control code is a control parameter of the nonvolatile memory. This is a unique value such as a voltage applied to the nonvolatile memory cell and an application time thereof. The control unit 221 determines a voltage to be applied to the memory cell array based on this parameter. Further, as a third example of the control code, defective address information may be included. This is address information of a memory area determined to be defective at the time of factory shipment. The control unit 221 refers to the defective address information and performs a replacement process for the defective memory area. Note that memory cells other than the memory cells assigned to the control code memory 280 in the memory cell array 270 are areas for storing data output from the memory controller. Details of the memory 220 and the memory cell array 270 will be described later.
 データの書込みを例に挙げて、ホストコンピュータ100とメモリコントローラ210とメモリ220とにおけるやり取りを説明する。まず、ホストコンピュータ100からデータの書込みを要求するコマンドがデータとともにメモリコントローラ210に対して発行される。メモリコントローラ210は、これを解釈するとともに、データの符号化を行う。その後、メモリコントローラ210は、メモリ220に対してデータの書込みを要求するリクエストを符号化したデータとともに発行する。メモリ220は、このリクエストを解釈して符号化されたデータをメモリセルアレイ270に記憶させる。このように、コマンドおよびリクエストをやり取りしてデータの書込みが行われる。 The exchange among the host computer 100, the memory controller 210, and the memory 220 will be described taking data writing as an example. First, a command requesting data writing is issued from the host computer 100 to the memory controller 210 together with the data. The memory controller 210 interprets this and encodes data. Thereafter, the memory controller 210 issues a request for writing data to the memory 220 together with the encoded data. The memory 220 interprets this request and stores the encoded data in the memory cell array 270. In this way, data is written by exchanging commands and requests.
 [本技術の第1の実施の形態における機能ブロック図]
 図2は、本技術の第1の実施の形態における記憶装置の機能ブロックの一例を示す図である。同図は、記憶装置200に含まれるメモリコントローラ210およびメモリ220の構成要素を機能ブロックに分けて記載したものである。同図における記憶装置200は、メモリコントローラ210と、制御コードメモリ280と、読出し制御部222と、誤り訂正部230と、作業メモリ223とを備える。また、記憶装置200は、リフレッシュ制御部224と、制御部221と、劣化状態検出部225と、制御コード劣化情報保持部226と、制御コード劣化情報供給部227とを備える。制御コードメモリ280およびメモリコントローラ210は、図1において説明したものと同様であるため、説明を省略する。
[Functional block diagram in the first embodiment of the present technology]
FIG. 2 is a diagram illustrating an example of functional blocks of the storage device according to the first embodiment of the present technology. In the figure, the components of the memory controller 210 and the memory 220 included in the storage device 200 are divided into functional blocks. The storage device 200 in the figure includes a memory controller 210, a control code memory 280, a read control unit 222, an error correction unit 230, and a work memory 223. The storage device 200 also includes a refresh control unit 224, a control unit 221, a degradation state detection unit 225, a control code degradation information holding unit 226, and a control code degradation information supply unit 227. The control code memory 280 and the memory controller 210 are the same as those described with reference to FIG.
 読出し制御部222は、制御コードメモリ280からの制御コードの読出しを行うものである。この読出しは、メモリ220に電源が投入され、メモリ220がメモリコントローラ210からアクセス可能になる前に行われる。誤り訂正部230は、制御コードメモリ280から読み出された制御コードの誤り訂正を行うものである。この誤り訂正については、後述する。作業メモリ223は、誤りが訂正された制御コードを保持するものである。この作業メモリ223は高速動作が可能な揮発メモリ、例えば、SRAMを使用することができる。制御部221は、前述したようにメモリ220全体の制御を行うものである。さらに、制御部221は、メモリコントローラ210が発行したリクエストを解釈してデータの書込み等の処理も行う。この制御部221は、作業メモリ223に保持された制御コードに基づいて動作する。リフレッシュ制御部224は、作業メモリ223に保持されている誤りが訂正された制御コードを制御コードメモリ280に書き直すものである。この書直しは、制御部221が出力する書直しを要求する指示に基づいて行われる。 The read control unit 222 reads the control code from the control code memory 280. This reading is performed before power is turned on to the memory 220 and the memory 220 becomes accessible from the memory controller 210. The error correction unit 230 performs error correction on the control code read from the control code memory 280. This error correction will be described later. The work memory 223 holds a control code in which an error is corrected. As the working memory 223, a volatile memory capable of high-speed operation, for example, an SRAM can be used. The control unit 221 controls the entire memory 220 as described above. Further, the control unit 221 interprets the request issued by the memory controller 210 and performs processing such as data writing. The control unit 221 operates based on the control code held in the work memory 223. The refresh control unit 224 rewrites the control code in which the error held in the work memory 223 is corrected in the control code memory 280. This rewriting is performed based on an instruction for requesting rewriting output from the control unit 221.
 劣化状態検出部225は、制御コードメモリ280に記憶された制御コードの劣化状態を検出するものである。ここで、制御コードの劣化状態とは、不揮発メモリに記憶された制御コードの一部にビットエラーが生じているか、またはビットエラーが生じうる状態を表す。制御コードが劣化した場合であっても、誤り訂正を行うことにより、元の制御コードを取り出すことは可能である。しかし、ビットエラーが累積すると、誤り訂正が不可能となる。そのため、制御コードが劣化状態となった場合には、制御コードの制御コードメモリ280への書直しが必要となる。本技術の第1の実施の形態においては、ビットエラーを生じた制御コードに対して誤り訂正部230による誤り訂正がなされた状態を制御コードの劣化状態としている。 The deterioration state detection unit 225 detects a deterioration state of the control code stored in the control code memory 280. Here, the deterioration state of the control code represents a state in which a bit error has occurred in a part of the control code stored in the nonvolatile memory or a bit error can occur. Even when the control code is deteriorated, it is possible to extract the original control code by performing error correction. However, if bit errors accumulate, error correction becomes impossible. For this reason, when the control code is in a deteriorated state, it is necessary to rewrite the control code in the control code memory 280. In the first embodiment of the present technology, a state in which error correction by the error correction unit 230 is performed on a control code in which a bit error has occurred is defined as a deterioration state of the control code.
 制御コード劣化情報保持部226は、劣化状態検出部225が検出した制御コードの劣化状態を制御コード劣化情報として保持するものである。この制御コード劣化情報保持部226は、例えば、レジスタにより構成することができる。本技術の実施の形態では、制御コード劣化情報保持部226は、制御コード劣化情報に対応する1ビットのレジスタにより構成されているものとして説明を行う。初期状態では、このレジスタの値は「0」である。制御コード劣化情報の設定は、このレジスタに値「1」を設定することにより行う。 The control code deterioration information holding unit 226 holds the deterioration state of the control code detected by the deterioration state detection unit 225 as control code deterioration information. The control code deterioration information holding unit 226 can be configured by a register, for example. In the embodiment of the present technology, the control code deterioration information holding unit 226 will be described as being configured by a 1-bit register corresponding to the control code deterioration information. In the initial state, the value of this register is “0”. The control code deterioration information is set by setting a value “1” in this register.
 制御コード劣化情報供給部227は、制御コード劣化情報保持部226に保持された制御コード劣化情報をメモリコントローラ210に供給するものである。この制御コード劣化情報供給部227は、例えば、制御コード劣化情報保持部226を構成するレジスタの内容を出力するためにメモリコントローラ210に接続された信号線を用いることができる。また、例えば、メモリコントローラ210が発行する制御コード劣化情報の供給を要求するリクエストを解釈し、制御コード劣化情報をメモリコントローラ210に対して出力する機能を持った回路を使用することもできる。制御コード劣化情報を供給されたメモリコントローラ210は、制御コードの書直しを要求するリクエストを発行する。制御部221は、このリクエストに基づいて、上述した書直しを要求する指示を出力する。 The control code deterioration information supply unit 227 supplies the control code deterioration information held in the control code deterioration information holding unit 226 to the memory controller 210. The control code deterioration information supply unit 227 can use, for example, a signal line connected to the memory controller 210 in order to output the contents of the register constituting the control code deterioration information holding unit 226. Further, for example, a circuit having a function of interpreting a request for requesting supply of control code deterioration information issued by the memory controller 210 and outputting the control code deterioration information to the memory controller 210 can be used. The memory controller 210 supplied with the control code deterioration information issues a request for requesting rewriting of the control code. Based on this request, the control unit 221 outputs an instruction for requesting the above-described rewriting.
 [メモリの構成]
 図3は、本技術の第1の実施の形態におけるメモリの構成例を示す図である。メモリ220は、パワーオンリセット部252と、制御部221と、読出し制御部222と、制御コード劣化情報保持部226と、制御信号発生部243と、作業メモリ223と、誤り訂正部230とを備える。また、メモリ220は、パリティ生成部254と、メモリインターフェース251と、選択部255と、メモリセルアレイ270と、データバッファ256と、データバス257乃至259とを備える。メモリセルアレイ270は、制御コードメモリ280を備える。なお、図3における誤り訂正部230は、ECC復号部231と多数決演算部232とを備える。この多数決演算部232は、図2において説明した劣化状態検出部225を包含している。同様に、図3における制御部221は、図2において説明したリフレッシュ制御部224と制御コード劣化情報供給部227とを包含している。
[Memory configuration]
FIG. 3 is a diagram illustrating a configuration example of the memory according to the first embodiment of the present technology. The memory 220 includes a power-on reset unit 252, a control unit 221, a read control unit 222, a control code deterioration information holding unit 226, a control signal generation unit 243, a work memory 223, and an error correction unit 230. . The memory 220 includes a parity generation unit 254, a memory interface 251, a selection unit 255, a memory cell array 270, a data buffer 256, and data buses 257 to 259. The memory cell array 270 includes a control code memory 280. Note that the error correction unit 230 in FIG. 3 includes an ECC decoding unit 231 and a majority operation unit 232. The majority decision calculation unit 232 includes the deterioration state detection unit 225 described with reference to FIG. Similarly, the control unit 221 in FIG. 3 includes the refresh control unit 224 and the control code deterioration information supply unit 227 described in FIG.
 制御コードメモリ280は、複数の制御コードを記憶する。これらは、工場出荷時に、同じ内容の制御コードを制御コードメモリ280のそれぞれ異なる領域に書き込んだものである。後述する多数決演算を行うため、奇数個の制御コードを制御コードメモリ280に記憶させる。なお、本技術の第1の実施の形態では、3か所に同じ内容の制御コードを記憶させている。また、制御コードメモリ280は、これら複数の制御コードごとのパリティも記憶する。このパリティについては後述する。メモリ220には、これらのほかに、メモリセルアレイ270を駆動するためのセンスアンプ、ドライバおよびアドレスデコーダも備えている(不図示)。 The control code memory 280 stores a plurality of control codes. In these, control codes having the same contents are written in different areas of the control code memory 280 at the time of factory shipment. An odd number of control codes are stored in the control code memory 280 in order to perform a majority operation described later. In the first embodiment of the present technology, control codes having the same contents are stored in three locations. The control code memory 280 also stores parity for each of the plurality of control codes. This parity will be described later. In addition to these, the memory 220 also includes a sense amplifier, a driver, and an address decoder for driving the memory cell array 270 (not shown).
 メモリインターフェース251は、メモリコントローラ210とのやり取りを行うものである。このメモリインターフェース251は、メモリコントローラ210が出力したリクエストをメモリ220内部に転送するとともに、メモリコントローラ210との間で、データの双方向のやり取りを行う。パワーオンリセット部252は、電源が投入された際に、リセット信号を生成するものである。このパワーオンリセット部252は、メモリ220に電源電圧が印加されると動作を開始し、リセット信号をオンにする。その後、メモリ220の電源電圧が規定値、例えば、定常時の電源電圧の90%の電圧になったことを検出し、リセット信号をオフにする。 The memory interface 251 exchanges data with the memory controller 210. The memory interface 251 transfers the request output from the memory controller 210 to the inside of the memory 220 and exchanges data bidirectionally with the memory controller 210. The power-on reset unit 252 generates a reset signal when the power is turned on. The power-on reset unit 252 starts operation when a power supply voltage is applied to the memory 220 and turns on the reset signal. After that, it is detected that the power supply voltage of the memory 220 has reached a specified value, for example, 90% of the power supply voltage in a steady state, and the reset signal is turned off.
 パリティ生成部254は、制御コードの誤り検出および誤り訂正を行うためのパリティを生成するものである。このパリティの生成には、例えば、ハミング符号法を使用することができる。誤り訂正部230は、制御コードの誤りを訂正するものである。図3における誤り訂正部230は、ECC復号部231と多数決演算部232とを備える。ECC復号部231は、制御コードの復号を行うものである。このECC復号部231は、上述したパリティにより制御コードの誤りの検出と誤りの訂正を行う。なお、制御コードは3か所に存在するため、ECC復号部231はそれぞれの制御コードについて復号を行う。 The parity generation unit 254 generates parity for performing error detection and error correction of the control code. For example, a Hamming code method can be used for generating the parity. The error correction unit 230 corrects an error in the control code. The error correction unit 230 in FIG. 3 includes an ECC decoding unit 231 and a majority operation unit 232. The ECC decoding unit 231 performs control code decoding. The ECC decoding unit 231 detects control code errors and corrects errors using the above-described parity. Since there are three control codes, the ECC decoding unit 231 decodes each control code.
 多数決演算部232は、ECC復号部231により復号された制御コードに対して多数決演算を行うものである。ここで、多数決演算とは、複数のデータ(制御コード)を使用し、データにおける各ビットの値を多数決により決定するものである。具体的には、「0」または「1」の多い方を各ビットにおける制御コード値とするものである。本技術の第1の実施の形態では、3か所に制御コードを有しており、それぞれ対応する3つのビットの何れか1ビットにおいてビットエラーが発生している場合に、訂正が可能である。なお、多数決演算部232は、演算の過程で制御コードの誤りを訂正した場合に、制御コードの劣化状態を検出する。具体的には、それぞれの制御コードの不一致を検出した場合に、多数決演算により訂正し、また制御コードが劣化状態にあるとして読出し制御部222に通知する。このように、多数決演算部232は、劣化状態検出部225を包含している。なお、通知を受けた読出し制御部222は、制御コード劣化情報保持部226に値「1」をセットする。これらの手順については、後述する。 The majority operation unit 232 performs majority operation on the control code decoded by the ECC decoding unit 231. Here, the majority operation is to use a plurality of data (control codes) and determine the value of each bit in the data by majority. Specifically, the more “0” or “1” is the control code value in each bit. In the first embodiment of the present technology, control codes are provided at three locations, and correction is possible when a bit error occurs in any one of the corresponding three bits. . The majority operation unit 232 detects a deterioration state of the control code when an error in the control code is corrected during the calculation process. Specifically, when a mismatch between the control codes is detected, it is corrected by a majority operation, and the read control unit 222 is notified that the control code is in a degraded state. As described above, the majority decision calculation unit 232 includes the deterioration state detection unit 225. Upon receiving the notification, the read control unit 222 sets the value “1” in the control code deterioration information holding unit 226. These procedures will be described later.
 読出し制御部222は、制御コードメモリ280から制御コードを読み出すものである。図3における読出し制御部222は、制御コードメモリ280をアクセスするためのアドレスカウンタを内蔵している。読出し制御部222はパワーオンリセット部252が出力したリセット信号によりリセットされる。このときアドレスカウンタも初期化される。リセット信号がオフになると、読出し制御部222は動作を開始する。まず、読出し制御部222はアドレスカウンタをインクリメントしながら、制御コードおよびパリティを1ワード単位で読出して、ECC復号部231に転送する。次にECC復号部231により復号された制御コードを多数決演算部232に転送する。最後に、多数決演算部232における演算結果を作業メモリ223に転送し保持させる。これらを繰り返すことにより、制御コードの読出しを行う。 Read control unit 222 reads the control code from the control code memory 280. The read control unit 222 in FIG. 3 includes an address counter for accessing the control code memory 280. The read control unit 222 is reset by the reset signal output from the power-on reset unit 252. At this time, the address counter is also initialized. When the reset signal is turned off, the read control unit 222 starts operation. First, the read control unit 222 increments the address counter, reads the control code and parity in units of one word, and transfers them to the ECC decoding unit 231. Next, the control code decoded by the ECC decoding unit 231 is transferred to the majority operation unit 232. Finally, the operation result in the majority operation unit 232 is transferred to the work memory 223 and held. By repeating these, the control code is read out.
 制御部221は、メモリコントローラ210が発行したリクエストを解釈してメモリ220全体の制御を行う。データ書込みを行う場合を例に挙げて、これを具体的に説明する。データの書込みを要求するリクエストを受け取った制御部221は、このリクエストを解釈し、制御信号発生部243の制御を行う。この制御信号発生部243は、アドレスデコーダおよびドライバに制御信号を出力する。また、メモリコントローラ210が発行した書込みを要求するリクエストに係るデータは、データバッファ256に転送された後、メモリセルアレイ270に供給され、書込みが行われる。また、制御部221は、制御コードの書直しを要求するリクエストを受け取った際には、誤りが訂正された制御コードを制御コードメモリ280に書き直す機能も有する。このように、制御部221は、リフレッシュ制御部224の機能を包含している。 The control unit 221 interprets the request issued by the memory controller 210 and controls the entire memory 220. This will be described in detail by taking the case of writing data as an example. The control unit 221 that has received a request to write data interprets this request and controls the control signal generation unit 243. The control signal generator 243 outputs a control signal to the address decoder and driver. Further, data relating to a request for writing that is issued by the memory controller 210 is transferred to the data buffer 256 and then supplied to the memory cell array 270 to be written. The control unit 221 also has a function of rewriting the control code in which the error is corrected in the control code memory 280 when receiving a request for rewriting the control code. As described above, the control unit 221 includes the function of the refresh control unit 224.
 この書直しを行うため、制御部221は、制御コードメモリ280をアクセスするためのアドレスカウンタを内蔵している。制御部221は、アドレスカウンタをインクリメントしながら、制御コードを1ワード単位で書き直す。この際、制御部221は、この1ワードの制御コードに対応するパリティも同時に書き直す。つまり、制御コードを符号化して書直しを行う。このため、制御部221は、1ワードの制御コードをパリティ生成部254に転送し、パリティの生成を行わせる。なお、本技術の第1の実施の形態における制御部221は、メモリコントローラ210から発行された制御コードの読出しを要求するリクエストに基づいて、制御コードを作業メモリ223からメモリコントローラ210に転送する。その後、メモリコントローラ210から発行された制御コードの書直しを要求するリクエストとこれに付随して発行された制御コードとに基づいて制御コードの書き直しを行う。これらの手順については、後述する。さらに、制御部221は、制御コード劣化情報の読出しを要求するリクエストを受け取った際に、制御コード劣化情報保持部226に保持された制御コード劣化情報を読み出して、メモリコントローラ210に出力する機能も有する。このように、制御部221は、制御コード劣化情報供給部227の機能を包含している。 In order to perform this rewriting, the control unit 221 has a built-in address counter for accessing the control code memory 280. The control unit 221 rewrites the control code in units of words while incrementing the address counter. At this time, the control unit 221 also rewrites the parity corresponding to this one-word control code. That is, the control code is encoded and rewritten. For this reason, the control unit 221 transfers a one-word control code to the parity generation unit 254 to generate parity. Note that the control unit 221 according to the first embodiment of the present technology transfers the control code from the work memory 223 to the memory controller 210 based on a request for reading out the control code issued from the memory controller 210. Thereafter, the control code is rewritten based on the request for rewriting the control code issued from the memory controller 210 and the control code issued accompanying the request. These procedures will be described later. Further, the control unit 221 has a function of reading the control code deterioration information held in the control code deterioration information holding unit 226 and outputting the control code deterioration information to the memory controller 210 when receiving a request for reading the control code deterioration information. Have. As described above, the control unit 221 includes the function of the control code deterioration information supply unit 227.
 制御信号発生部243は、制御部221または読出し制御部222の指示によりセンスアンプ、ドライバおよびアドレスデコーダに制御信号を出力するものである。データバッファ256は、メモリセルアレイ270に書き込むデータおよびメモリセルアレイ270から読み出したデータを一時的に保持するものである。データバス257乃至259は、データ等を双方向に伝達させる信号線である。データバス257は、メモリインターフェース251と選択部255との間に配置され、データバス259は、データバッファ256と選択部255との間に配置される。また、データバス258は、制御部221、読出し制御部222、制御コード劣化情報保持部226、制御信号発生部243、作業メモリ223、ECC復号部231、多数決演算部232およびパリティ生成部254と選択部255との間に配置される。選択部255は、データバスの選択を行うものである。この選択部255は、制御部221または読出し制御部222の指示により、データバス257乃至259の間でデータ等の受け渡しを行う。制御コード劣化情報保持部226および作業メモリ223については、図1において説明したものと同様であるため、説明を省略する。なお、パリティ生成部254は、特許請求の範囲に記載のパリティ生成部の一例である。 The control signal generator 243 outputs a control signal to the sense amplifier, driver, and address decoder according to an instruction from the controller 221 or the read controller 222. The data buffer 256 temporarily holds data to be written to the memory cell array 270 and data read from the memory cell array 270. Data buses 257 to 259 are signal lines for transmitting data and the like bidirectionally. The data bus 257 is disposed between the memory interface 251 and the selection unit 255, and the data bus 259 is disposed between the data buffer 256 and the selection unit 255. The data bus 258 is selected with the control unit 221, the read control unit 222, the control code degradation information holding unit 226, the control signal generation unit 243, the working memory 223, the ECC decoding unit 231, the majority decision operation unit 232, and the parity generation unit 254. It arrange | positions between the parts 255. The selection unit 255 selects a data bus. The selection unit 255 exchanges data and the like between the data buses 257 to 259 in accordance with an instruction from the control unit 221 or the read control unit 222. The control code deterioration information holding unit 226 and the work memory 223 are the same as those described with reference to FIG. The parity generation unit 254 is an example of a parity generation unit described in the claims.
 図4は、本技術の第1の実施の形態における制御コードメモリの制御コード配置例を示す図である。同図は、制御コードメモリ280における制御コードの配置例を表したものである。本技術の第1の実施の形態では、3つの制御コードを制御コードメモリに記憶させる。このため、制御コードメモリ280も3つの領域に分かれている。図4における第1の領域乃至第3の領域がこれに該当する。これらの領域にデータ281、283および285と各データのパリティ282、284および286が記憶される。また、制御コードおよびパリティは、nワードの大きさであり、それぞれ1乃至nのアドレスが付されたメモリセルに記憶される。 FIG. 4 is a diagram illustrating an example of control code arrangement in the control code memory according to the first embodiment of the present technology. This figure shows an example of control code arrangement in the control code memory 280. In the first embodiment of the present technology, three control codes are stored in the control code memory. For this reason, the control code memory 280 is also divided into three areas. This corresponds to the first to third regions in FIG. In these areas, data 281, 283 and 285 and parities 282, 284 and 286 of each data are stored. The control code and parity are n words in size and are stored in memory cells assigned addresses 1 to n, respectively.
 [制御コードの誤り訂正]
 このように、本技術の第1の実施の形態では、3の制御コードを使用し、これらについてECC符号化および多数決演算を行い。誤りの検出および誤りの訂正を行っている。つまり、制御コードの誤り訂正処理を二重に行っている。前述したように、多数決演算は、それぞれ対応する3つのビットについて1個のビットエラーが発生した場合に、誤り訂正が可能である。一方、2以上のビットエラーが発生した場合には、誤り訂正ができない。しかし、誤り訂正処理を二重化することにより、このような誤り訂正が不能となる状態の回避を図り、制御コード記憶信頼性を高めている。なお、5個の制御コードを使用してECC復号および多数決演算を行うことにより、制御コード記憶信頼性をさらに高めることもできる。
[Error correction of control code]
Thus, in the first embodiment of the present technology, three control codes are used, and ECC encoding and majority calculation are performed on these three control codes. Error detection and error correction are performed. That is, the control code error correction process is performed twice. As described above, the majority operation can correct an error when one bit error occurs for each of the three corresponding bits. On the other hand, when two or more bit errors occur, error correction cannot be performed. However, by duplicating the error correction processing, it is possible to avoid such a state that error correction cannot be performed, and to improve control code storage reliability. Note that the control code storage reliability can be further improved by performing ECC decoding and majority operation using five control codes.
 [電源投入処理の処理手順]
 図5は、本技術の第1の実施の形態における電源投入処理の処理手順の一例を示す図である。同図は、メモリコントローラ210によるメモリ220の電源投入処理の処理手順を表したものである。メモリコントローラ210は、電源制御部201を制御し、メモリ220に印加する電源電圧をオンにさせる(ステップS901)。その後、メモリ220における起動処理が終了するまで待機する(ステップS902)。メモリ220における起動処理が終了した場合(ステップS902:Yes)、制御コード劣化情報保持部226の読出しを行う(ステップS903)。これは、例えば、メモリ220に対し制御コード劣化情報保持部226の読出しを要求するリクエストを発行することにより行う。その結果、制御コード劣化情報保持部226の値が1である場合(ステップS904:Yes)、メモリコントローラ210は、制御コードが劣化しているものと判断し、リフレッシュ処理(ステップS905)を実施する。
[Power-on processing procedure]
FIG. 5 is a diagram illustrating an example of a processing procedure of power-on processing according to the first embodiment of the present technology. This figure shows a processing procedure of power-on processing of the memory 220 by the memory controller 210. The memory controller 210 controls the power supply control unit 201 to turn on the power supply voltage to be applied to the memory 220 (step S901). Thereafter, the process waits until the startup process in the memory 220 is completed (step S902). When the activation process in the memory 220 is completed (step S902: Yes), the control code deterioration information holding unit 226 is read (step S903). This is performed by, for example, issuing a request for requesting the memory 220 to read the control code deterioration information holding unit 226. As a result, when the value of the control code deterioration information holding unit 226 is 1 (step S904: Yes), the memory controller 210 determines that the control code has deteriorated, and performs the refresh process (step S905). .
 まず、制御コードの読出しを行う(ステップS906)。これは、メモリ220に対し制御コードの読出しを要求するリクエストを発行することにより行う。このリクエストに基づいて制御コードが読み出され、メモリ220からメモリコントローラ210に転送される。次に、読み出した制御コードの書込みを行う(ステップS907)。これは、メモリ220に対し制御コードの書込みを要求するリクエストを発行するとともにステップS907において読み出した制御コードをメモリ220に転送することにより行う。その後、電源投入処理を終了する。一方、制御コード劣化情報保持部の値が0である場合(ステップS904:No)、メモリコントローラ210は、制御コードが劣化していないものと判断し、電源投入処理を終了する。 First, the control code is read (step S906). This is done by issuing a request to the memory 220 for requesting reading of the control code. Based on this request, the control code is read and transferred from the memory 220 to the memory controller 210. Next, the read control code is written (step S907). This is performed by issuing a request for writing the control code to the memory 220 and transferring the control code read in step S907 to the memory 220. Thereafter, the power-on process is terminated. On the other hand, when the value of the control code deterioration information holding unit is 0 (step S904: No), the memory controller 210 determines that the control code has not deteriorated, and ends the power-on process.
 [メモリ起動処理の処理手順]
 図6は、本技術の第1の実施の形態におけるメモリ起動処理の処理手順の一例を示す図である。同図に表した処理は、図5における電源投入処理のステップS902において説明したメモリ220の起動処理に対応する処理である。なお、本技術の第1の実施の形態においては、読出し制御部222は、制御コードの誤り発生の有無を示す誤り発生フラグを有する。このフラグが1のとき、読出し制御部222は、誤りが発生したものと判断する。
[Processing procedure for memory startup processing]
FIG. 6 is a diagram illustrating an example of a processing procedure of the memory activation process according to the first embodiment of the present technology. The process shown in the figure corresponds to the activation process of the memory 220 described in step S902 of the power-on process in FIG. In the first embodiment of the present technology, the read control unit 222 has an error occurrence flag indicating whether or not an error has occurred in the control code. When this flag is 1, the read control unit 222 determines that an error has occurred.
 最初に、パワーオンリセット(ステップS931)を行う。これは、パワーオンリセット部252によりリセット信号がオンにされ、読出し制御部222に内蔵されたアドレスカウンタを制御コードメモリ280の先頭を示す値に初期化することにより行われる。本技術の第1の実施の形態においては、アドレスカウンタの値は1に初期化される。このとき、制御コード劣化情報保持部226と誤り発生フラグの値も0に初期化される。 First, a power-on reset (step S931) is performed. This is done by turning on the reset signal by the power-on reset unit 252 and initializing the address counter built in the read control unit 222 to a value indicating the head of the control code memory 280. In the first embodiment of the present technology, the value of the address counter is initialized to 1. At this time, the values of the control code deterioration information holding unit 226 and the error occurrence flag are also initialized to 0.
 リセット信号がオフになると、読出し制御部222は、処理を開始する。まず、制御コードの読出し、誤り訂正処理を行う(ステップS940)。これにより制御コードのうち1ワード分のデータ(1ワードの制御コード)が選択されて出力される。この選択されたデータを作業メモリ223に転送する(ステップS934)。制御コードの全てのワードについて読出しが終了した場合(ステップS935:Yes)、次の処理(ステップS937)に移行する。制御コードの読出しが終了していない場合(ステップS935:No)、アドレスカウンタをインクリメントし(ステップS936)、ステップS940からの処理を再度実行する。その後、誤り発生フラグを調べ、この値が1の場合(ステップS937:Yes)、制御コード劣化情報保持部226の値を1にする(ステップS938)。その後、メモリ起動処理を終了する。一方、誤り発生フラグの値が1でない場合は(ステップS937:No)、メモリ起動処理を終了する。 When the reset signal is turned off, the read control unit 222 starts processing. First, control code reading and error correction processing are performed (step S940). As a result, one word of data (control code of one word) is selected and output from the control code. The selected data is transferred to the work memory 223 (step S934). When reading is completed for all the words of the control code (step S935: Yes), the process proceeds to the next process (step S937). When reading of the control code is not completed (step S935: No), the address counter is incremented (step S936), and the processing from step S940 is executed again. Thereafter, the error occurrence flag is checked, and when this value is 1 (step S937: Yes), the value of the control code deterioration information holding unit 226 is set to 1 (step S938). Thereafter, the memory activation process is terminated. On the other hand, if the value of the error occurrence flag is not 1 (step S937: No), the memory activation process is terminated.
 [制御コードの読出し、誤り訂正処理の処理手順]
 図7は、本技術の第1の実施の形態における制御コードの読出し、誤り訂正処理の処理手順の一例を示す図である。まず、制御コードの読出し(ステップS941)を行う。これは、制御コードメモリ280のメモリセルから制御コードおよびパリティを読み出すことにより行われる。この際、アドレスカウンタによって指示されたアドレスのメモリセルからワード単位の制御コードおよびパリティが読み出される。本技術の第1の実施の形態においては、同一のアドレスが付されたメモリセルには、制御コードとパリティがそれぞれ3つ記憶されている。このため、3ワードの制御コードおよびパリティを読み出すこととなる。次に、制御コードの復号(ステップS942)を行う。これは、読み出された1ワードの制御コードおよびパリティがECC復号部231に転送され、復号されることにより行われる。この復号も3ワードの制御コードそれぞれについて行われる。
[Procedure for reading control code and error correction]
FIG. 7 is a diagram illustrating an example of a processing procedure of control code reading and error correction processing according to the first embodiment of the present technology. First, the control code is read (step S941). This is done by reading the control code and parity from the memory cells of the control code memory 280. At this time, the control code and parity in word units are read from the memory cell at the address designated by the address counter. In the first embodiment of the present technology, three control codes and three parities are stored in the memory cells with the same address. For this reason, the control code and parity of 3 words are read out. Next, the control code is decoded (step S942). This is done by transferring the read control code and parity of one word to the ECC decoding unit 231 and decoding. This decoding is also performed for each control code of 3 words.
 次に制御コードの多数決演算を行う(ステップS943)。これは、復号された1ワードの制御コード3つが多数決演算部232に転送され、多数決演算部232においてビット毎の多数決演算がなされることにより行われる。この多数決演算において、1ワードの制御コード3つの全ビットの値が一致した場合(ステップS944:Yes)、誤りは発生していないため、次の処理(ステップS946)に移行する。一方、1ワードの制御コード3つにおいてビット単位の不一致がある場合(ステップS944:No)、読出し制御部222は、誤り発生フラグを1にする(ステップS945)。その後、多数決演算の結果を選択データとし(ステップS946)、制御コードの読出し、誤り訂正処理を終了する。 Next, the majority calculation of the control code is performed (step S943). This is performed by transferring the three decoded one-word control codes to the majority operation unit 232 and performing the majority operation for each bit in the majority operation unit 232. In this majority decision operation, when the values of all three bits of the control code of one word match (step S944: Yes), no error has occurred, and the process proceeds to the next process (step S946). On the other hand, when there is a bit unit mismatch in the three 1-word control codes (step S944: No), the read control unit 222 sets the error occurrence flag to 1 (step S945). Thereafter, the result of the majority operation is set as selection data (step S946), the control code is read, and the error correction process is terminated.
 [制御コード読出し処理]
 図8は、本技術の第1の実施の形態における制御コード読出し処理の処理手順の一例を示す図である。本処理は、図5において説明した電源投入処理における制御コード読出し処理(ステップS906)により発行された制御コードの読出しを要求するリクエストに対応するメモリ220における処理である。従って、制御コードの読出しを要求するリクエストが発行されることにより、制御部221は、処理を開始する。制御部221は、リクエストを解釈して作業メモリ223に保持されている制御コードをメモリコントローラ210に送信する(ステップS951)。その後、処理を終了する。
[Control code read processing]
FIG. 8 is a diagram illustrating an example of a processing procedure of a control code reading process according to the first embodiment of the present technology. This process is a process in the memory 220 corresponding to a request for reading the control code issued by the control code reading process (step S906) in the power-on process described with reference to FIG. Accordingly, the control unit 221 starts processing when a request for reading the control code is issued. The control unit 221 interprets the request and transmits the control code held in the work memory 223 to the memory controller 210 (step S951). Thereafter, the process ends.
 [制御コード書直し処理]
 図9は、本技術の第1の実施の形態における制御コード書直し処理の処理手順の一例を示す図である。本処理は、図5において説明した電源投入処理における制御コード書込み処理(ステップS907)により発行された制御コードの書込みを要求するリクエストに対応するメモリ220における処理である。従って、制御コードの書込みを要求するリクエストが発行されることにより、制御部221は、処理を開始する。制御部221は、リクエストを解釈するとともに、メモリコントローラ210からの制御コードを受信する。その後、この受信した制御コードを作業メモリ223に転送する(ステップS961)。次に、制御部221に内蔵されたアドレスカウンタに初期値を設定する(ステップS962)。本技術の第1の実施の形態においては、アドレスカウンタの値は1に初期化される。
[Control code rewriting process]
FIG. 9 is a diagram illustrating an example of a processing procedure of a control code rewriting process according to the first embodiment of the present technology. This process is a process in the memory 220 corresponding to the request for requesting the writing of the control code issued by the control code writing process (step S907) in the power-on process described with reference to FIG. Therefore, the control unit 221 starts processing when a request for writing the control code is issued. The control unit 221 interprets the request and receives a control code from the memory controller 210. Thereafter, the received control code is transferred to the work memory 223 (step S961). Next, an initial value is set in the address counter built in the control unit 221 (step S962). In the first embodiment of the present technology, the value of the address counter is initialized to 1.
 次に、転送された制御コードから1ワード分の制御コードを取り出し、これを符号化する(ステップS963)。この符号化は、1ワード分の制御コードをパリティ生成部254に転送し、生成されたパリティを1ワード分の制御コードに付加することにより行う。次に、制御コードメモリ280に対して符号化した制御コードの書直しを行う(ステップS964)。この際、アドレスカウンタによって指示されたアドレスのメモリセルに対して書直しが行われる。このメモリセルの3つの領域に対して1ワード分の制御コードおよびパリティがそれぞれ書き直される。つまり、3ワード分の制御コードおよびパリティが書き直される。制御コードの全てのワードについて書直しが終了した場合、(ステップS965:Yes)、制御コード書直し処理を終了する。制御コードの書直しが終了していない場合(ステップS965:No)、アドレスカウンタをインクリメントし(ステップS966)、ステップS963からの処理を再度実行する。 Next, a control code for one word is taken out from the transferred control code and encoded (step S963). This encoding is performed by transferring the control code for one word to the parity generation unit 254 and adding the generated parity to the control code for one word. Next, the control code encoded in the control code memory 280 is rewritten (step S964). At this time, rewriting is performed on the memory cell at the address designated by the address counter. The control code and parity for one word are rewritten in each of the three areas of the memory cell. That is, the control code and parity for 3 words are rewritten. When rewriting has been completed for all words of the control code (step S965: Yes), the control code rewriting process is terminated. If the rewriting of the control code has not ended (step S965: No), the address counter is incremented (step S966), and the processing from step S963 is executed again.
 このように、本技術の第1の実施の形態によれば、制御コードの誤り訂正を行い、訂正後の制御コードをその記憶領域である制御コードメモリに書き直すことにより、誤りの累積が回避できるため、制御コードの記憶信頼性を高めることができる。また、本技術の第1の実施の形態では、ECC符号化および多数決演算による二重の誤り訂正を行い、制御コードの記憶信頼性をさらに高めている。このほか、本技術の第1の実施の形態においては、メモリコントローラ210を介して制御コードの書直しを行っている。このため、メモリコントローラ210は、制御コード書き直しのタイミングの調整が可能となり、記憶装置全体のスケジュール管理を容易にすることができる。 As described above, according to the first embodiment of the present technology, it is possible to avoid error accumulation by performing error correction of the control code and rewriting the corrected control code in the control code memory which is the storage area. Therefore, the storage reliability of the control code can be improved. In the first embodiment of the present technology, double error correction by ECC encoding and majority voting is performed to further increase the storage reliability of the control code. In addition, in the first embodiment of the present technology, the control code is rewritten via the memory controller 210. For this reason, the memory controller 210 can adjust the timing of rewriting the control code, and can easily manage the schedule of the entire storage device.
 [変形例]
 本技術の第1の実施の形態では、多数決演算において制御コードの不一致が発生した場合に、制御コードの劣化を判断していた。しかし、ECC復号において誤り訂正を行った場合に制御コードの劣化を判断してもよい。誤り訂正が行われた後の制御コードの多数決の不一致により劣化を判断する方式と比較して、早い段階での制御コードの劣化の判定が可能となるためである。その結果、制御コードの記憶信頼性をさらに高めることができる。本技術の第1の実施の形態の変形例では、ECC復号において誤り訂正を行った場合に制御コードの劣化を判断する点において本技術の第1の実施の形態と異なる。
[Modification]
In the first embodiment of the present technology, control code deterioration is determined when a control code mismatch occurs in the majority operation. However, deterioration of the control code may be determined when error correction is performed in ECC decoding. This is because it is possible to determine the deterioration of the control code at an earlier stage as compared with the method of determining the deterioration based on the mismatch of the majority of the control codes after the error correction is performed. As a result, the storage reliability of the control code can be further improved. The modification of the first embodiment of the present technology is different from the first embodiment of the present technology in that the deterioration of the control code is determined when error correction is performed in ECC decoding.
 本技術の第1の実施の形態の変形例におけるECC復号部231は、復号の過程で制御コードの誤りを検出して誤り訂正を行った場合に、制御コードが劣化状態にあるとして制御部221に通知する。このようにECC復号部231は、図2において説明した劣化状態検出部225の機能を含んでいる。これ以外の記憶装置の構成は、本技術の第1の実施の形態において説明した記憶装置200と同様であるため説明を省略する。 The ECC decoding unit 231 according to the modification of the first embodiment of the present technology determines that the control code is in a deteriorated state when the control code error is detected and error correction is performed in the decoding process. Notify As described above, the ECC decoding unit 231 includes the function of the deterioration state detection unit 225 described with reference to FIG. Since the other configuration of the storage device is the same as that of the storage device 200 described in the first embodiment of the present technology, the description thereof is omitted.
 図10は、本技術の実施の形態の変形例における制御コードの読出し、誤り訂正処理の処理手順の一例を示す図である。まず、制御コードの読出し(ステップS971)を行う。これは、制御コードメモリ280のメモリセルからそれぞれ3つの制御コードおよびパリティを読み出すことにより行われる。次に、制御コードの復号(ステップS972)を行う。これは、読み出された1ワードの制御コードおよびパリティがECC復号部231に転送され、ECC復号部231において復号されることにより行われる。この復号も3つの制御コードそれぞれについて行われる。このECC復号において、制御コードの誤り訂正がされなかった場合(ステップS974:Yes)、次の処理(ステップS973)に移行する。一方、制御コードの誤り訂正がされた場合(ステップS974:No)、読出し制御部222は、誤り発生フラグを1にする(ステップS975)。その後、多数決演算を行う(ステップS973)。多数決演算の結果を選択データとし(ステップS976)、制御コードの読出し、誤り訂正処理を終了する。これ以外の処理手順は、本技術の第1の実施の形態における記憶装置200と同様であるため、説明を省略する。 FIG. 10 is a diagram illustrating an example of a processing procedure of control code reading and error correction processing according to a modification of the embodiment of the present technology. First, the control code is read (step S971). This is performed by reading three control codes and parity from the memory cells of the control code memory 280, respectively. Next, the control code is decoded (step S972). This is performed by transferring the read control code and parity of one word to the ECC decoding unit 231 and decoding them by the ECC decoding unit 231. This decoding is also performed for each of the three control codes. In this ECC decoding, when error correction of the control code is not performed (step S974: Yes), the process proceeds to the next process (step S973). On the other hand, when the error correction of the control code is performed (step S974: No), the read control unit 222 sets the error occurrence flag to 1 (step S975). Thereafter, a majority operation is performed (step S973). The result of the majority operation is used as selection data (step S976), and the control code reading and error correction processing are terminated. Since other processing procedures are the same as those of the storage device 200 according to the first embodiment of the present technology, description thereof is omitted.
 <2.第2の実施の形態>
 [論理和演算を行う例]
 本技術の第1の実施の形態では、ECC復号および多数決演算により誤り訂正を行っていた。これに対し、本技術の第2の実施の形態では、論理和演算による誤り訂正を行う。
<2. Second Embodiment>
[Example of logical OR operation]
In the first embodiment of the present technology, error correction is performed by ECC decoding and majority operation. On the other hand, in the second embodiment of the present technology, error correction by logical sum operation is performed.
 図11は、本技術の第2の実施の形態におけるメモリの構成例を示す図である。同図におけるメモリ220は、論理和演算部233よりなる誤り訂正部230を備えている。一方、パリティ生成部254を備える必要はない。さらに、メモリセルアレイ270には、ReRAMにより構成されたメモリセルアレイを使用する。これ以外の構成は、図3において説明したメモリ220と同様であるため、説明を省略する。 FIG. 11 is a diagram illustrating a configuration example of a memory according to the second embodiment of the present technology. The memory 220 in the figure includes an error correction unit 230 including a logical sum operation unit 233. On the other hand, the parity generation unit 254 need not be provided. Further, the memory cell array 270 uses a memory cell array composed of ReRAM. The other configuration is the same as that of the memory 220 described with reference to FIG.
 [論理和演算]
 図12は、本技術の第2の実施の形態における論理和演算を説明する図である。同図は、論理和演算部233において行われる論理和演算を説明するものである。第1乃至第3の制御コード(読出しデータ)について論理和演算を行う場合の例について説明する。論理和演算部233は、各読出しデータのビット毎の論理和を求め、出力する。ここで、論理和とは、各ビットの値全てが「0」の場合は「0」を、少なくとも1つ値が「1」のビットが存在する場合は「1」を出力する演算である。
[OR operation]
FIG. 12 is a diagram illustrating a logical sum operation according to the second embodiment of the present technology. This figure explains the logical sum operation performed in the logical sum operation unit 233. An example of performing a logical sum operation on the first to third control codes (read data) will be described. The logical sum operation unit 233 calculates and outputs a logical sum for each bit of each read data. Here, the logical sum is an operation that outputs “0” when all the values of each bit are “0”, and outputs “1” when at least one bit has a value of “1”.
 [不揮発メモリの特性]
 ReRAMのメモリセルは、抵抗変化層に電圧を印加し、その抵抗値の変化を利用して記憶動作を行うものである。この抵抗変化層は、絶縁層とカルコゲナイドを含む金属イオン供給層とからなる2層構造を有しており、電圧を印加することにより抵抗値を変化させて記憶動作を行わせることができる。製造直後の初期状態にある抵抗変化層は高抵抗状態にある。これをメモリとして使用可能な状態とするため、工場出荷前にフォーミングを行う。このフォーミングは、電圧(以降の説明では、フォーミング電圧と表現する。)を印加することにより、金属イオン供給層から供給された金属イオンが絶縁層中に侵入し、導電経路であるフィラメントを形成して低抵抗の状態とするものである。この逆の電圧を印加すると、フィラメントを形成していた金属イオンが絶縁層から金属イオン供給層側に戻るため、高抵抗の状態に戻る。再度電圧を印加すると低抵抗の状態に遷移するが、フォーミング電圧より低い電圧の印加により低抵抗の状態に遷移させることができる。
[Characteristics of non-volatile memory]
A ReRAM memory cell performs a storage operation by applying a voltage to a resistance change layer and utilizing a change in the resistance value. The resistance change layer has a two-layer structure including an insulating layer and a metal ion supply layer including chalcogenide, and can perform a memory operation by changing a resistance value by applying a voltage. The variable resistance layer in the initial state immediately after manufacture is in a high resistance state. In order to make this usable as a memory, forming is performed before shipment from the factory. This forming is performed by applying a voltage (hereinafter referred to as a forming voltage), whereby metal ions supplied from the metal ion supply layer enter the insulating layer to form a filament that is a conductive path. Thus, a low resistance state is obtained. When this reverse voltage is applied, the metal ions forming the filament return from the insulating layer to the metal ion supply layer side, and thus return to a high resistance state. When a voltage is applied again, the state transitions to a low resistance state, but can be transitioned to a low resistance state by applying a voltage lower than the forming voltage.
 本技術の第2の実施の形態では、高抵抗の状態を論理状態「0」、低抵抗の状態を論理状態「1」に対応させる。なお、フォーミング前の抵抗変化層は高抵抗の状態を維持し、フォーミング電圧の印加を行わない限り、この論理状態「0」を維持する。従って、劣化は発生しない。一方、フォーミングにより論理状態「1」としたメモリセルの抵抗変化層は、劣化により論理状態「0」への遷移を起こしうる。 In the second embodiment of the present technology, the high resistance state corresponds to the logical state “0”, and the low resistance state corresponds to the logical state “1”. The variable resistance layer before forming maintains a high resistance state, and maintains this logic state “0” unless a forming voltage is applied. Therefore, no deterioration occurs. On the other hand, the resistance change layer of the memory cell that is set to the logic state “1” by forming may cause a transition to the logic state “0” due to deterioration.
 [不揮発メモリにおける制御コードの記憶と誤りの訂正]
 本技術の第2の実施の形態では、このReRAMの性質を利用して制御コードの記憶と誤り訂正とを行う。初期状態にあるReRAMのメモリセルは、論理状態「0」の状態にある。その後、論理状態「1」を書き込むビットにのみフォーミング電圧を印加することにより、制御コードの書込みを行う。上述したように、記憶の劣化は、論理状態「1」から論理状態「0」への遷移のみを考慮すれば良いため、論理和演算により誤りの訂正が可能となる。図12において、制御コードの値「0」のビットは、劣化しないため3ビットとも「0」を維持する。論理和演算の結果も「0」となる。一方、制御コードの値が「1」のビットは、劣化により「0」となるビットが発生しうる。しかし、論理和演算を行うことにより、誤りを訂正して「1」とすることができる。
[Control code storage and error correction in non-volatile memory]
In the second embodiment of the present technology, control codes are stored and errors are corrected by using the properties of the ReRAM. The ReRAM memory cell in the initial state is in the logic state “0”. Thereafter, the control code is written by applying the forming voltage only to the bit to which the logic state “1” is written. As described above, since it is only necessary to consider the transition from the logical state “1” to the logical state “0”, the error can be corrected by the logical sum operation. In FIG. 12, the bits of the control code value “0” are not deteriorated, and therefore all the three bits are maintained at “0”. The result of the logical sum operation is also “0”. On the other hand, a bit whose control code value is “1” may be “0” due to deterioration. However, the error can be corrected to “1” by performing a logical sum operation.
 [制御コードの読出し、誤り訂正処理の処理手順]
 図13は、本技術の第2の実施の形態における制御コードの読出し、誤り訂正処理の処理手順の一例を示す図である。本処理は、図6において説明した、メモリ起動処理のステップS940により呼び出される処理である。まず、制御コードの読出し(ステップS811)を行う。これは、制御コードメモリ280のメモリセルから制御コードを読み出すことにより行われる。この際、アドレスカウンタによって指示されたアドレスのメモリセルからワード単位の制御コードが読み出される。本技術の第2の実施の形態においては、3ワードの制御コードを読み出すこととなる。
[Procedure for reading control code and error correction]
FIG. 13 is a diagram illustrating an example of a processing procedure of control code reading and error correction processing according to the second embodiment of the present technology. This process is a process called in step S940 of the memory activation process described with reference to FIG. First, the control code is read (step S811). This is performed by reading the control code from the memory cell of the control code memory 280. At this time, a word-unit control code is read from the memory cell at the address designated by the address counter. In the second embodiment of the present technology, a control code of 3 words is read.
 次に、制御コードの論理和演算(ステップS813)を行う。これは、読み出された1ワードの制御コード3つが論理和演算部233に転送され、ビット毎の論理和演算がなされることにより行われる。この論理和演算において、1ワードの制御コード3つの全ビットの値が一致した場合(ステップS814:Yes)、誤りは発生していないため、次の処理(ステップS816)に移行する。一方、1ワードの制御コード3つにおいてビット単位の不一致がある場合(ステップS814:No)、読出し制御部222は、誤り発生フラグを1にする(ステップS815)。その後、論理和演算の結果を選択データとし(ステップS816)、制御コードの読出し、誤り訂正処理を終了する。なお、これ以外の処理手順は、本技術の第1の実施の形態と同様であるため、説明を省略する。 Next, a logical OR operation of the control code (step S813) is performed. This is performed by transferring three read control codes of one word to the logical sum operation unit 233 and performing a logical sum operation for each bit. In this logical sum operation, when the values of all three bits of the control code of one word match (step S814: Yes), no error has occurred, and the process proceeds to the next process (step S816). On the other hand, when there is a bit unit mismatch in the three 1-word control codes (step S814: No), the read control unit 222 sets the error occurrence flag to 1 (step S815). Thereafter, the result of the logical sum operation is set as selection data (step S816), and the control code reading and error correction processing are terminated. Note that other processing procedures are the same as those in the first embodiment of the present technology, and a description thereof will be omitted.
 このように、本技術の第2の実施の形態によれば、フォーミングと並行して制御コードの書込みを行うことにより、制御コードの書込み処理を簡素化することができる。また、不揮発メモリの特性を利用し、論理和演算により誤り訂正を行うことにより、簡素な誤り訂正処理を実現することができる。 As described above, according to the second embodiment of the present technology, the control code writing process can be simplified by writing the control code in parallel with the forming. Further, simple error correction processing can be realized by performing error correction by logical sum operation using the characteristics of the nonvolatile memory.
 <3.第3の実施の形態>
 [電源の投入または切断の回数により制御コードの劣化を判断する例]
 本技術の第1の実施の形態では、誤りの訂正があった場合に制御コードの劣化を判断していた。これに対し本技術の第3の実施の形態では、電源の投入または切断の回数が所定の回数に達したことにより劣化を判断し、制御コードの書直しを行う。
<3. Third Embodiment>
[Example of judging deterioration of control code based on the number of power on / off times]
In the first embodiment of the present technology, the deterioration of the control code is determined when an error is corrected. On the other hand, in the third embodiment of the present technology, the deterioration is determined when the number of power on / off times reaches a predetermined number, and the control code is rewritten.
 図14は、本技術の第3の実施の形態におけるメモリの構成例を示す図である。同図におけるメモリ220は、カウント部261を備えている。カウント部261は、劣化状態検出部225を包含している。このカウント部261は、メモリ220における電源の投入または切断回数を計測するものである。また、このカウント部261は、例えば、電源投入回数を記憶する不揮発メモリにより構成することができる。カウント部261における計測は、パワーオンリセット部252によるリセット後の起動処理としてこの不揮発メモリに記憶させた電源投入回数をインクリメントすることにより行うことができる。さらに、この電源投入回数が設定された値、例えば、1000回に達した場合に、制御コードが劣化状態にあるとして読出し制御部222に通知する。このようにカウント部261は、劣化状態検出部225の機能を含んでいる。本技術の第3の実施の形態では、多数決演算部232における誤りの訂正が行われた場合、および電源投入回数が設定された値に達した場合に劣化情報を設定する。これ以外のメモリ220の構成は、図3において説明したメモリ220と同様であるため、説明を省略する。 FIG. 14 is a diagram illustrating a configuration example of a memory according to the third embodiment of the present technology. The memory 220 in the figure includes a count unit 261. The count unit 261 includes a deterioration state detection unit 225. The count unit 261 measures the number of times power is turned on or off in the memory 220. In addition, the count unit 261 can be configured by, for example, a nonvolatile memory that stores the number of times of power-on. The measurement in the count unit 261 can be performed by incrementing the number of times of power-on stored in the nonvolatile memory as the activation process after reset by the power-on reset unit 252. Further, when the number of power-on times reaches a set value, for example, 1000 times, the read control unit 222 is notified that the control code is in a degraded state. Thus, the count unit 261 includes the function of the deterioration state detection unit 225. In the third embodiment of the present technology, deterioration information is set when an error correction is performed in the majority voting unit 232 and when the number of power-on times reaches a set value. The other configuration of the memory 220 is the same as that of the memory 220 described with reference to FIG.
 このように、本技術の第3の実施の形態においては、制御コードの誤り訂正が行われた場合に加えて、メモリ220における電源の投入または切断の回数が所定の回数に達したことによっても、制御コードの劣化を検出して、書直しを行う。これにより、制御コードの記憶信頼性をさらに高めることができる。 As described above, in the third embodiment of the present technology, in addition to the case where the error correction of the control code is performed, the number of times of turning on or off the power in the memory 220 reaches a predetermined number. Then, the control code deterioration is detected and rewritten. Thereby, the storage reliability of the control code can be further increased.
 <4.第4の実施の形態>
 [メモリコントローラが書直しを要求するリクエストを発行する例]
 本技術の第1の実施の形態では、メモリコントローラが制御コードの読出しおよび書込みを要求するリクエストを発行して制御コードの書直しを行っていた。これに対し本技術の第4の実施の形態では、メモリコントローラが書直しを要求するリクエストを発行することにより制御コードの書直しを行う。
<4. Fourth Embodiment>
[Example where the memory controller issues a request to rewrite]
In the first embodiment of the present technology, the memory controller rewrites the control code by issuing a request for requesting reading and writing of the control code. On the other hand, in the fourth embodiment of the present technology, the memory controller rewrites the control code by issuing a request for rewriting.
 本技術の第4の実施の形態における記憶装置は、図3において説明した記憶装置200と同様の構成とすることができる。制御部221については、メモリコントローラから発行された書直しを要求するリクエストを解釈し、制御コードの書直しを行う点が異なっている。これ以外は記憶装置200と同様であるため、説明を省略する。 The storage device according to the fourth embodiment of the present technology may have the same configuration as the storage device 200 described in FIG. The control unit 221 is different in that it interprets a request for rewriting issued from the memory controller and rewrites the control code. Since other than this is the same as that of the storage device 200, the description thereof is omitted.
 [電源投入処理の処理手順]
 図15は、本技術の第4の実施の形態における電源投入処理の処理手順の一例を示す図である。メモリコントローラ210は、電源制御部201を制御し、メモリ220に印加する電源電圧をオンにさせる(ステップS991)。その後、メモリ220における起動処理が終了するまで待機する(ステップS992)。メモリ220における起動処理が終了した場合(ステップS992:Yes)、制御コード劣化情報保持部226の読出しを行う(ステップS993)。その結果、制御コード劣化情報保持部226の値が1である場合(ステップS994:Yes)、メモリコントローラ210は、制御コードが劣化しているものと判断し、リフレッシュ処理(ステップS995)を実施する。これは、メモリ220に対しリフレッシュを要求するリクエストを発行することにより行う(ステップS996)。その後、電源投入処理を終了する。一方、制御コード劣化情報保持部の値が0である場合(ステップS994:No)、メモリコントローラ210は、制御コードが劣化していないものと判断し、電源投入処理を終了する。
[Power-on processing procedure]
FIG. 15 is a diagram illustrating an example of a processing procedure of power-on processing according to the fourth embodiment of the present technology. The memory controller 210 controls the power supply control unit 201 to turn on the power supply voltage applied to the memory 220 (step S991). Thereafter, the process waits until the activation process in the memory 220 is completed (step S992). When the activation process in the memory 220 is completed (step S992: Yes), the control code deterioration information holding unit 226 is read (step S993). As a result, when the value of the control code deterioration information holding unit 226 is 1 (step S994: Yes), the memory controller 210 determines that the control code has deteriorated, and performs the refresh process (step S995). . This is performed by issuing a request for refreshing to the memory 220 (step S996). Thereafter, the power-on process is terminated. On the other hand, when the value of the control code deterioration information holding unit is 0 (step S994: No), the memory controller 210 determines that the control code has not deteriorated and ends the power-on process.
 [制御コード書直し処理]
 図16は、制御コード書直し処理の処理手順の一例を示す図である。制御コードの書直しを要求するリクエストが発行されることにより、本処理は、開始される。制御部221は、リクエストを解釈し、制御部221に内蔵されたアドレスカウンタに初期値を設定する(ステップS802)。次に、作業メモリ223に保持された制御コードから1ワード分の制御コードを取り出し、これを符号化する(ステップS803)。この符号化は、1ワード分の制御コードをパリティ生成部254に転送し、パリティ生成部254によって生成されたパリティを付加することにより行う。次に、制御コードメモリ280に対して符号化した制御コードの書直しを行う(ステップS804)。この際、アドレスカウンタによって指示されたアドレスのメモリセルに対して書直しが行われる。制御コードの全てのワードについて書直しが終了していない場合(ステップS805:No)、アドレスカウンタをインクリメントし(ステップS806)、ステップS803からの処理を再度実行する。制御コードの全てのワードについて書直しが終了した場合(ステップS805:Yes)、制御コード書直し処理を終了する。なお、これら以外の処理手順は、本技術の第1の実施の形態における記憶装置200と同様であるため、説明を省略する。
[Control code rewriting process]
FIG. 16 is a diagram illustrating an example of a processing procedure of control code rewriting processing. This process is started when a request for rewriting the control code is issued. The control unit 221 interprets the request and sets an initial value in an address counter built in the control unit 221 (step S802). Next, a control code for one word is extracted from the control code held in the work memory 223 and encoded (step S803). This encoding is performed by transferring a control code for one word to the parity generation unit 254 and adding the parity generated by the parity generation unit 254. Next, the control code encoded in the control code memory 280 is rewritten (step S804). At this time, rewriting is performed on the memory cell at the address designated by the address counter. If rewriting has not been completed for all words of the control code (step S805: No), the address counter is incremented (step S806), and the processing from step S803 is executed again. When rewriting is completed for all the words of the control code (step S805: Yes), the control code rewriting process is terminated. Note that the other processing procedures are the same as those of the storage device 200 according to the first embodiment of the present technology, and thus the description thereof is omitted.
 このように、本技術の第4の実施の形態によれば、メモリコントローラ210は制御コードの書直しを要求するリクエストのみを発行することにより制御コードの書直しが可能となり、制御コードの書直し処理を簡素化することができる。 As described above, according to the fourth embodiment of the present technology, the memory controller 210 can rewrite the control code by issuing only a request for requesting rewriting of the control code, and rewrite the control code. Processing can be simplified.
 <5.第5の実施の形態>
 [メモリコントローラが介在することなく書直しを行う例]
 本技術の第1の実施の形態では、制御コード劣化情報を供給されたメモリコントローラがリクエストを発行して制御コードの書直しを行っていた。これに対し本技術の第5の実施の形態では、メモリコントローラが介在することなく、制御部221が制御コード劣化情報を取得して制御コードの書直しを行う。
<5. Fifth embodiment>
[Example of rewriting without a memory controller]
In the first embodiment of the present technology, the memory controller supplied with the control code deterioration information issues a request and rewrites the control code. On the other hand, in the fifth embodiment of the present technology, the control unit 221 acquires the control code deterioration information and rewrites the control code without any memory controller.
 図17は、本技術の第5の実施の形態における記憶装置の機能ブロック図の一例を示す図である。同図における記憶装置は、図2において説明した記憶装置からメモリコントローラ210および制御コード劣化情報供給部227を除去した構成となっている。また、制御部221は、制御コード劣化情報保持部226に保持された制御コード劣化情報を直接取得して書直しの指示を出力する。これ以外の機能ブロックの構成は、図2において説明した記憶装置と同様であるため、説明を省略する。なお、本技術の第5の実施の形態におけるメモリ220は、図3におけるメモリ220と同様の構成を採ることができる。ただし、制御部221は、電源投入処理の終了後、制御コード劣化情報保持部226の読出しを行う。その結果、制御コードの劣化が設定されていた場合には、後述する制御コード書直しの処理を行い。制御コードの書直しを行う。これ以外のメモリ220の構成は、図3において説明したメモリ220と同様であるため説明を省略する。 FIG. 17 is a diagram illustrating an example of a functional block diagram of the storage device according to the fifth embodiment of the present technology. The storage device in the figure is configured by removing the memory controller 210 and the control code deterioration information supply unit 227 from the storage device described in FIG. Also, the control unit 221 directly acquires the control code deterioration information held in the control code deterioration information holding unit 226 and outputs a rewrite instruction. Since the configuration of the other functional blocks is the same as that of the storage device described with reference to FIG. Note that the memory 220 according to the fifth embodiment of the present technology may have the same configuration as the memory 220 in FIG. However, the control unit 221 reads the control code deterioration information holding unit 226 after the power-on process is completed. As a result, if the deterioration of the control code is set, the control code rewriting process described later is performed. Rewrite the control code. The other configuration of the memory 220 is the same as that of the memory 220 described with reference to FIG.
 [電源投入処理の処理手順]
 本技術の第5の実施の形態における、メモリコントローラ210による電源投入手順は、次のとおりである。まず、メモリコントローラ210は、メモリモジュールの電源をオンにする。次にメモリ起動終了を待つ。その後、処理を終了して通常の処理を行う。図15において説明した処理手順と比べて、制御コード劣化情報保持部の読出し処理(ステップS993)およびこれ以降の処理を行わない点が異なっている。この後、メモリ220におけるメモリ起動処理および制御コードの読出し、誤り訂正処理が順に行われる。これらはそれぞれ図6および7において説明した処理と同様であるため説明は省略する。
[Power-on processing procedure]
The power-on procedure by the memory controller 210 in the fifth embodiment of the present technology is as follows. First, the memory controller 210 turns on the power of the memory module. Next, it waits for the memory activation to end. Thereafter, the processing is terminated and normal processing is performed. Compared with the processing procedure described in FIG. 15, the control code deterioration information holding unit read process (step S993) and the subsequent processes are not performed. Thereafter, memory activation processing, control code reading, and error correction processing in the memory 220 are sequentially performed. These are the same as the processes described with reference to FIGS.
 [制御部起動処理の処理手順]
 図18は、本技術の第5の実施の形態における制御部起動処理の処理手順の一例を示す図である。読出し制御部222による制御コード読出し処理の終了後、制御部221は、本処理を行う。まず、制御部221は、制御コード劣化情報保持部226の読出しを行う(ステップS823)。その結果、制御コード劣化情報保持部226の値が0である場合(ステップS824:No)、制御部221は、制御部起動処理を終了する。一方、制御コード劣化情報保持部226の値が1である場合(ステップS824:Yes)、制御部221は、制御コードが劣化しているものと判断し、制御コード書直し処理(ステップS830)を実施する。その後、制御部起動処理を終了する。
[Control procedure startup procedure]
FIG. 18 is a diagram illustrating an example of a processing procedure of a control unit activation process according to the fifth embodiment of the present technology. After the control code reading process by the reading control unit 222 is completed, the control unit 221 performs this process. First, the control unit 221 reads the control code deterioration information holding unit 226 (step S823). As a result, when the value of the control code deterioration information holding unit 226 is 0 (step S824: No), the control unit 221 ends the control unit activation process. On the other hand, when the value of the control code deterioration information holding unit 226 is 1 (step S824: Yes), the control unit 221 determines that the control code has deteriorated, and performs control code rewriting processing (step S830). carry out. Thereafter, the control unit activation process is terminated.
 [制御コード書直し処理の処理手順]
 本技術の第5の実施の形態における、制御コード書直し処理の処理手順は、図16において説明した制御コード書直し処理と同様の処理手順とすることができる。ただし、上述した制御部起動処理におけるステップS830により呼び出される点が異なっている。これ以外は、図16において説明した処理と同様であるため説明を省略する。
[Procedure for rewriting control code]
The processing procedure of the control code rewriting process in the fifth embodiment of the present technology may be the same processing procedure as the control code rewriting process described in FIG. However, it is different in that it is called in step S830 in the above-described control unit activation process. Other than this, the processing is the same as that described in FIG.
 このように、本技術の第5の実施の形態によれば、メモリコントローラ210が介在することなく制御コードの劣化を判断して書直しを行うことにより、メモリコントローラの処理を簡素化することができる。 As described above, according to the fifth embodiment of the present technology, it is possible to simplify the processing of the memory controller by judging the deterioration of the control code and rewriting without the intervention of the memory controller 210. it can.
 以上説明したように、本技術の実施の形態においては、不揮発メモリである制御コードメモリに記憶させた制御コードに対して誤り訂正を行う。その後、誤りを訂正した制御コードを制御コードメモリに書き直すことにより、誤りの累積を防ぐことができ、制御コードの記憶信頼性を高めることができる。 As described above, in the embodiment of the present technology, error correction is performed on the control code stored in the control code memory which is a nonvolatile memory. Thereafter, by rewriting the control code in which the error is corrected in the control code memory, accumulation of errors can be prevented, and the storage reliability of the control code can be improved.
 なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。 The above-described embodiment shows an example for embodying the present technology, and the matters in the embodiment and the invention-specific matters in the claims have a corresponding relationship. Similarly, the invention specific matter in the claims and the matter in the embodiment of the present technology having the same name as this have a corresponding relationship. However, the present technology is not limited to the embodiment, and can be embodied by making various modifications to the embodiment without departing from the gist thereof.
 また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。 Further, 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. As this 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.
 なお、本明細書に記載された効果はあくまで例示であって、限定されるものではなく、また、他の効果があってもよい。 It should be noted that the effects described in this specification are merely examples, and are not limited, and other effects may be obtained.
 なお、本技術は以下のような構成もとることができる。
(1)不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、
 前記不揮発メモリの動作前に前記制御コードを前記制御コードメモリから読み出す読出し制御部と、
 前記読み出した前記制御コードの誤り訂正を行う誤り訂正部と、
 前記誤りが訂正された前記制御コードを保持する作業メモリと、
 前記作業メモリに保持された前記制御コードに基づいて前記不揮発メモリの制御を行い、前記制御コードメモリに対する前記作業メモリに保持された前記制御コードの書直しを要求する指示を出力する制御部と、
 前記指示に基づいて前記書直しを行うリフレッシュ制御部と
を具備する記憶装置。
(2)前記制御コードの書直しの必要性を示す劣化状態を検出する劣化状態検出部と、
 前記検出された前記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部と
をさらに具備し、
 前記制御部は、前記制御コード劣化情報に基づいて前記指示を出力する
前記(1)に記載の記憶装置。
(3)前記劣化状態検出部は、前記誤り訂正部において前記誤りの訂正が発生したことを検出することにより前記劣化状態を検出する前記(2)に記載の装置。
(4)前記メモリにおける電源の投入または切断の回数をカウントするカウント部をさらに具備し、
 前記劣化状態検出部は、前記カウント部がカウントした前記回数が所定の回数に達したことにより前記劣化状態を検出する前記(2)に記載のメモリ。
(5)前記制御部は、前記保持された前記制御コード劣化情報の読出しを行い当該読み出した制御コード劣化情報に基づいて前記指示を出力する前記(2)から(4)に記載のいずれかの記憶装置。
(6)メモリコントローラに対して前記制御コード劣化情報を供給する制御コード劣化情報供給部をさらに具備し、
 前記制御部は、前記供給された前記制御コード劣化情報に基づいて前記メモリコントローラから発行された前記書直しを要求するリクエストに基づいて前記指示を出力する前記(2)から(4)に記載のいずれかの記憶装置。
(7)前記制御コードの誤りを訂正するためのパリティを生成するパリティ生成部をさらに具備し、
 前記制御コードメモリは、前記パリティを記憶する領域をさらに備え、
 前記誤り訂正部は、前記パリティを用いて前記誤り訂正を行い、
 前記リフレッシュ制御部は、前記誤りが訂正された前記制御コードとともに対応するパリティを前記コードメモリに書直す
前記(1)から(6)に記載のいずれかの記憶装置。
(8)前記制御コードメモリは、前記制御コードを複数の領域に記憶し、
 前記誤り訂正部は、前記複数の前記制御コードにおいてそれぞれ対応する値が不一致となる際にはビットを訂正することにより前記誤り訂正を行う
前記(1)から(6)に記載のいずれかの記憶装置。
(9)前記誤り訂正部は、前記不一致のビットに対して多数決演算を行って訂正することにより前記誤り訂正を行う前記(8)に記載の記憶装置。
(10)前記誤り訂正部は、前記不一致のビットに対して論理和演算を行って訂正することにより前記誤り訂正を行う前記(8)に記載の記憶装置。
(11)不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、
 前記不揮発メモリの動作前に前記制御コードを前記制御コードメモリから読み出す読出し制御部と、
 前記読み出した前記制御コードの誤り訂正を行う誤り訂正部と、
 前記誤りが訂正された前記制御コードを保持する作業メモリと、
 前記作業メモリに保持された前記制御コードを前記制御コードメモリに書き直す必要性を示す劣化状態を検出する劣化状態検出部と、
 前記検出された前記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部と、
 メモリコントローラに対して前記制御コード劣化情報を供給する制御コード劣化情報供給部と、
 前記供給された前記制御コード劣化情報に基づいて前記書直しを要求するリクエストを発行するメモリコントローラと、
 前記作業メモリに保持された前記制御コードに基づいて前記不揮発メモリの制御を行い、前記発行された前記リクエストに基づく前記書直しを要求する指示を出力する制御部と、
 前記指示に基づいて前記書直しを行うリフレッシュ制御部と
を具備する記憶装置。
(12)不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、
 前記不揮発メモリの動作前に前記制御コードを前記制御コードメモリから読み出す読出し制御部と、
 前記読み出した前記制御コードの誤り訂正を行う誤り訂正部と、
 前記誤りが訂正された前記制御コードを保持する作業メモリと、
 前記作業メモリに保持された前記制御コードを前記制御コードメモリに書き直す必要性を示す劣化状態を検出する劣化状態検出部と、
 前記検出された前記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部と、
 メモリコントローラに対して前記制御コード劣化情報を供給する制御コード劣化情報供給部と、
 前記供給された前記制御コード劣化情報に基づいて前記書直しを要求するリクエストを発行するメモリコントローラと、
 前記作業メモリに保持された前記制御コードに基づいて前記不揮発メモリの制御を行い、前記発行された前記リクエストに基づく前記書直しを要求する指示を出力する制御部と、
 前記指示に基づいて前記書直しを行うリフレッシュ制御部と
を備える記憶装置と、
 前記メモリコントローラを介して前記記憶装置にアクセスするホストコンピュータと
を具備する情報処理システム。
(13)不揮発メモリを制御するための制御コードを前記不揮発メモリの動作前に制御コードメモリから読み出す読出し手順と、
 前記読み出した前記制御コードの誤り訂正を行う誤り訂正手順と、
 前記誤りが訂正された前記制御コードに基づいて前記不揮発メモリの制御を行い、前記制御コードメモリに対する前記誤りが訂正された前記制御コードの書直しを要求する指示を出力する制御手順と、
 前記指示に基づいて前記書直しを行うリフレッシュ制御手順と
を具備する記憶装置の制御方法。
In addition, this technique can also take the following structures.
(1) a control code memory for storing a control code for controlling the nonvolatile memory;
A read controller that reads the control code from the control code memory before the operation of the nonvolatile memory;
An error correction unit that performs error correction of the read control code;
A working memory holding the control code in which the error is corrected;
A control unit that controls the nonvolatile memory based on the control code held in the working memory and outputs an instruction to request rewriting of the control code held in the working memory with respect to the control code memory;
And a refresh control unit that performs the rewriting based on the instruction.
(2) a deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code;
A control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information;
The storage device according to (1), wherein the control unit outputs the instruction based on the control code deterioration information.
(3) The device according to (2), wherein the deterioration state detection unit detects the deterioration state by detecting that the error correction has occurred in the error correction unit.
(4) further comprising a counting unit that counts the number of times power is turned on or off in the memory;
The memory according to (2), wherein the deterioration state detection unit detects the deterioration state when the number of times counted by the counting unit reaches a predetermined number.
(5) The control unit according to any one of (2) to (4), wherein the held control code deterioration information is read and the instruction is output based on the read control code deterioration information Storage device.
(6) further comprising a control code deterioration information supply unit that supplies the control code deterioration information to the memory controller;
The control unit according to (2) to (4), wherein the control unit outputs the instruction based on a request for requesting the rewriting issued from the memory controller based on the supplied control code deterioration information. Any storage device.
(7) further comprising a parity generator for generating parity for correcting an error in the control code;
The control code memory further includes an area for storing the parity,
The error correction unit performs the error correction using the parity,
The storage device according to any one of (1) to (6), wherein the refresh control unit rewrites a corresponding parity in the code memory together with the control code in which the error is corrected.
(8) The control code memory stores the control code in a plurality of areas,
The memory according to any one of (1) to (6), wherein the error correction unit performs the error correction by correcting a bit when corresponding values in the plurality of control codes do not match each other. apparatus.
(9) The storage device according to (8), wherein the error correction unit performs the error correction by performing a majority operation on the mismatched bits for correction.
(10) The storage device according to (8), wherein the error correction unit performs the error correction by performing an OR operation on the mismatched bits to correct the mismatched bits.
(11) a control code memory for storing a control code for controlling the nonvolatile memory;
A read controller that reads the control code from the control code memory before the operation of the nonvolatile memory;
An error correction unit that performs error correction of the read control code;
A working memory holding the control code in which the error is corrected;
A deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code held in the working memory in the control code memory;
A control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information;
A control code deterioration information supply unit for supplying the control code deterioration information to the memory controller;
A memory controller that issues a request for requesting the rewriting based on the supplied control code deterioration information;
A control unit that controls the nonvolatile memory based on the control code held in the working memory, and outputs an instruction to request the rewriting based on the issued request;
And a refresh control unit that performs the rewriting based on the instruction.
(12) a control code memory for storing a control code for controlling the nonvolatile memory;
A read controller that reads the control code from the control code memory before the operation of the nonvolatile memory;
An error correction unit that performs error correction of the read control code;
A working memory holding the control code in which the error is corrected;
A deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code held in the working memory in the control code memory;
A control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information;
A control code deterioration information supply unit for supplying the control code deterioration information to the memory controller;
A memory controller that issues a request for requesting the rewriting based on the supplied control code deterioration information;
A control unit that controls the nonvolatile memory based on the control code held in the working memory, and outputs an instruction to request the rewriting based on the issued request;
A storage device including a refresh control unit that performs the rewriting based on the instruction;
An information processing system comprising: a host computer that accesses the storage device via the memory controller.
(13) a reading procedure for reading a control code for controlling the nonvolatile memory from the control code memory before the operation of the nonvolatile memory;
An error correction procedure for performing error correction of the read control code;
A control procedure for controlling the nonvolatile memory based on the control code in which the error is corrected, and outputting an instruction for requesting rewriting of the control code in which the error is corrected with respect to the control code memory;
And a refresh control procedure for performing the rewriting based on the instruction.
 100 ホストコンピュータ
 200 記憶装置
 201 電源制御部
 210 メモリコントローラ
 211 ECC処理部
 220 メモリ
 221 制御部
 222 読出し制御部
 223 作業メモリ
 224 リフレッシュ制御部
 225 劣化状態検出部
 226 制御コード劣化情報保持部
 227 制御コード劣化情報供給部
 230 誤り訂正部
 231 ECC復号部
 232 多数決演算部
 233 論理和演算部
 243 制御信号発生部
 251 メモリインターフェース
 252 パワーオンリセット部
 254 パリティ生成部
 255 選択部
 256 データバッファ
 257~259 データバス
 261 カウント部
 270 メモリセルアレイ
 280 制御コードメモリ
 281 データ
 282 パリティ
DESCRIPTION OF SYMBOLS 100 Host computer 200 Memory | storage device 201 Power supply control part 210 Memory controller 211 ECC processing part 220 Memory 221 Control part 222 Read control part 223 Work memory 224 Refresh control part 225 Degradation state detection part 226 Control code deterioration information holding part 227 Control code deterioration information Supply unit 230 Error correction unit 231 ECC decoding unit 232 Majority calculation unit 233 OR operation unit 243 Control signal generation unit 251 Memory interface 252 Power-on reset unit 254 Parity generation unit 255 Selection unit 256 Data buffer 257 to 259 Data bus 261 Count unit 270 Memory cell array 280 Control code memory 281 Data 282 Parity

Claims (13)

  1.  不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、
     前記不揮発メモリの動作前に前記制御コードを前記制御コードメモリから読み出す読出し制御部と、
     前記読み出した前記制御コードの誤り訂正を行う誤り訂正部と、
     前記誤りが訂正された前記制御コードを保持する作業メモリと、
     前記作業メモリに保持された前記制御コードに基づいて前記不揮発メモリの制御を行い、前記制御コードメモリに対する前記作業メモリに保持された前記制御コードの書直しを要求する指示を出力する制御部と、
     前記指示に基づいて前記書直しを行うリフレッシュ制御部と
    を具備する記憶装置。
    A control code memory for storing a control code for controlling the nonvolatile memory;
    A read controller that reads the control code from the control code memory before the operation of the nonvolatile memory;
    An error correction unit that performs error correction of the read control code;
    A working memory holding the control code in which the error is corrected;
    A control unit that controls the nonvolatile memory based on the control code held in the working memory and outputs an instruction to request rewriting of the control code held in the working memory with respect to the control code memory;
    And a refresh control unit that performs the rewriting based on the instruction.
  2.  前記制御コードの書直しの必要性を示す劣化状態を検出する劣化状態検出部と、
     前記検出された前記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部と
    をさらに具備し、
     前記制御部は、前記制御コード劣化情報に基づいて前記指示を出力する
    請求項1記載の記憶装置。
    A deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code;
    A control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information;
    The storage device according to claim 1, wherein the control unit outputs the instruction based on the control code deterioration information.
  3.  前記劣化状態検出部は、前記誤り訂正部において前記誤りの訂正が発生したことを検出することにより前記劣化状態を検出する請求項2記載の記憶装置。 3. The storage device according to claim 2, wherein the deterioration state detection unit detects the deterioration state by detecting that the error correction has occurred in the error correction unit.
  4.  前記メモリにおける電源の投入または切断の回数をカウントするカウント部をさらに具備し、
     前記劣化状態検出部は、前記カウント部がカウントした前記回数が所定の回数に達したことにより前記劣化状態を検出する
    請求項2記載の記憶装置。
    A counter for counting the number of times power is turned on or off in the memory;
    The storage device according to claim 2, wherein the deterioration state detection unit detects the deterioration state when the number of times counted by the counting unit reaches a predetermined number.
  5.  前記制御部は、前記保持された前記制御コード劣化情報の読出しを行い当該読み出した制御コード劣化情報に基づいて前記指示を出力する請求項2記載の記憶装置。 The storage device according to claim 2, wherein the control unit reads the held control code deterioration information and outputs the instruction based on the read control code deterioration information.
  6.  メモリコントローラに対して前記制御コード劣化情報を供給する制御コード劣化情報供給部をさらに具備し、
     前記制御部は、前記供給された前記制御コード劣化情報に基づいて前記メモリコントローラから発行された前記書直しを要求するリクエストに基づいて前記指示を出力する
    請求項2記載の記憶装置。
    A control code deterioration information supply unit for supplying the control code deterioration information to the memory controller;
    The storage device according to claim 2, wherein the control unit outputs the instruction based on a request for requesting the rewrite issued from the memory controller based on the supplied control code deterioration information.
  7.  前記制御コードの誤りを訂正するためのパリティを生成するパリティ生成部をさらに具備し、
     前記制御コードメモリは、前記パリティを記憶する領域をさらに備え、
     前記誤り訂正部は、前記パリティを用いて前記誤り訂正を行い、
     前記リフレッシュ制御部は、前記誤りが訂正された前記制御コードとともに対応するパリティを前記コードメモリに書直す
    請求項1記載の記憶装置。
    A parity generator for generating parity for correcting an error in the control code;
    The control code memory further includes an area for storing the parity,
    The error correction unit performs the error correction using the parity,
    The storage device according to claim 1, wherein the refresh control unit rewrites a corresponding parity in the code memory together with the control code in which the error is corrected.
  8.  前記制御コードメモリは、前記制御コードを複数の領域に記憶し、
     前記誤り訂正部は、前記複数の前記制御コードにおいてそれぞれ対応する値が不一致となる際にはビットを訂正することにより前記誤り訂正を行う
    請求項1記載の記憶装置。
    The control code memory stores the control code in a plurality of areas,
    The storage device according to claim 1, wherein the error correction unit performs the error correction by correcting a bit when corresponding values in the plurality of control codes do not match.
  9.  前記誤り訂正部は、前記不一致のビットに対して多数決演算を行って訂正することにより前記誤り訂正を行う請求項8記載の記憶装置。 The storage device according to claim 8, wherein the error correction unit performs the error correction by performing a majority operation on the mismatched bits to correct the mismatched bits.
  10.  前記誤り訂正部は、前記不一致のビットに対して論理和演算を行って訂正することにより前記誤り訂正を行う請求項8記載の記憶装置。 The storage device according to claim 8, wherein the error correction unit performs the error correction by performing a logical sum operation on the mismatched bits to correct the mismatched bits.
  11.  不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、
     前記不揮発メモリの動作前に前記制御コードを前記制御コードメモリから読み出す読出し制御部と、
     前記読み出した前記制御コードの誤り訂正を行う誤り訂正部と、
     前記誤りが訂正された前記制御コードを保持する作業メモリと、
     前記作業メモリに保持された前記制御コードを前記制御コードメモリに書き直す必要性を示す劣化状態を検出する劣化状態検出部と、
     前記検出された前記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部と、
     メモリコントローラに対して前記制御コード劣化情報を供給する制御コード劣化情報供給部と、
     前記供給された前記制御コード劣化情報に基づいて前記書直しを要求するリクエストを発行するメモリコントローラと、
     前記作業メモリに保持された前記制御コードに基づいて前記不揮発メモリの制御を行い、前記発行された前記リクエストに基づく前記書直しを要求する指示を出力する制御部と、
     前記指示に基づいて前記書直しを行うリフレッシュ制御部と
    を具備する記憶装置。
    A control code memory for storing a control code for controlling the nonvolatile memory;
    A read controller that reads the control code from the control code memory before the operation of the nonvolatile memory;
    An error correction unit that performs error correction of the read control code;
    A working memory holding the control code in which the error is corrected;
    A deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code held in the working memory in the control code memory;
    A control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information;
    A control code deterioration information supply unit for supplying the control code deterioration information to the memory controller;
    A memory controller that issues a request for requesting the rewriting based on the supplied control code deterioration information;
    A control unit that controls the nonvolatile memory based on the control code held in the working memory, and outputs an instruction to request the rewriting based on the issued request;
    And a refresh control unit that performs the rewriting based on the instruction.
  12.  不揮発メモリを制御するための制御コードを記憶する制御コードメモリと、
     前記不揮発メモリの動作前に前記制御コードを前記制御コードメモリから読み出す読出し制御部と、
     前記読み出した前記制御コードの誤り訂正を行う誤り訂正部と、
     前記誤りが訂正された前記制御コードを保持する作業メモリと、
     前記作業メモリに保持された前記制御コードを前記制御コードメモリに書き直す必要性を示す劣化状態を検出する劣化状態検出部と、
     前記検出された前記劣化状態を制御コード劣化情報として保持する制御コード劣化情報保持部と、
     メモリコントローラに対して前記制御コード劣化情報を供給する制御コード劣化情報供給部と、
     前記供給された前記制御コード劣化情報に基づいて前記書直しを要求するリクエストを発行するメモリコントローラと、
     前記作業メモリに保持された前記制御コードに基づいて前記不揮発メモリの制御を行い、前記発行された前記リクエストに基づく前記書直しを要求する指示を出力する制御部と、
     前記指示に基づいて前記書直しを行うリフレッシュ制御部と
    を備える記憶装置と、
     前記メモリコントローラを介して前記記憶装置にアクセスするホストコンピュータと
    を具備する情報処理システム。
    A control code memory for storing a control code for controlling the nonvolatile memory;
    A read controller that reads the control code from the control code memory before the operation of the nonvolatile memory;
    An error correction unit that performs error correction of the read control code;
    A working memory holding the control code in which the error is corrected;
    A deterioration state detection unit for detecting a deterioration state indicating the necessity of rewriting the control code held in the working memory in the control code memory;
    A control code deterioration information holding unit for holding the detected deterioration state as control code deterioration information;
    A control code deterioration information supply unit for supplying the control code deterioration information to the memory controller;
    A memory controller that issues a request for requesting the rewriting based on the supplied control code deterioration information;
    A control unit that controls the nonvolatile memory based on the control code held in the working memory, and outputs an instruction to request the rewriting based on the issued request;
    A storage device including a refresh control unit that performs the rewriting based on the instruction;
    An information processing system comprising: a host computer that accesses the storage device via the memory controller.
  13.  不揮発メモリを制御するための制御コードを前記不揮発メモリの動作前に制御コードメモリから読み出す読出し手順と、
     前記読み出した前記制御コードの誤り訂正を行う誤り訂正手順と、
     前記誤りが訂正された前記制御コードに基づいて前記不揮発メモリの制御を行い、前記制御コードメモリに対する前記誤りが訂正された前記制御コードの書直しを要求する指示を出力する制御手順と、
     前記指示に基づいて前記書直しを行うリフレッシュ制御手順と
    を具備する記憶装置の制御方法。
    A reading procedure for reading out a control code for controlling the nonvolatile memory from the control code memory before the operation of the nonvolatile memory;
    An error correction procedure for performing error correction of the read control code;
    A control procedure for controlling the nonvolatile memory based on the control code in which the error is corrected, and outputting an instruction for requesting rewriting of the control code in which the error is corrected with respect to the control code memory;
    And a refresh control procedure for performing the rewriting based on the instruction.
PCT/JP2015/064738 2014-06-30 2015-05-22 Storage device, information processing system, and method for controlling storage device WO2016002380A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014134178 2014-06-30
JP2014-134178 2014-06-30

Publications (1)

Publication Number Publication Date
WO2016002380A1 true WO2016002380A1 (en) 2016-01-07

Family

ID=55018934

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/064738 WO2016002380A1 (en) 2014-06-30 2015-05-22 Storage device, information processing system, and method for controlling storage device

Country Status (1)

Country Link
WO (1) WO2016002380A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1116387A (en) * 1997-06-26 1999-01-22 Mitsubishi Electric Corp Redundancy circuit
JP2007122640A (en) * 2005-10-31 2007-05-17 Renesas Technology Corp Storage device
US20120230109A1 (en) * 2011-03-09 2012-09-13 Yu-Hsiung Tsai Method of Setting Trim Codes for a Flash Memory and Related Device
JP2013069369A (en) * 2011-09-21 2013-04-18 Toshiba Corp Nonvolatile semiconductor memory device
WO2015033404A1 (en) * 2013-09-04 2015-03-12 株式会社 東芝 Semiconductor storage device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1116387A (en) * 1997-06-26 1999-01-22 Mitsubishi Electric Corp Redundancy circuit
JP2007122640A (en) * 2005-10-31 2007-05-17 Renesas Technology Corp Storage device
US20120230109A1 (en) * 2011-03-09 2012-09-13 Yu-Hsiung Tsai Method of Setting Trim Codes for a Flash Memory and Related Device
JP2013069369A (en) * 2011-09-21 2013-04-18 Toshiba Corp Nonvolatile semiconductor memory device
WO2015033404A1 (en) * 2013-09-04 2015-03-12 株式会社 東芝 Semiconductor storage device

Similar Documents

Publication Publication Date Title
TWI644322B (en) Memory and memory system including the same
JP2015018451A (en) Memory controller, storage device, and memory control method
JP5929456B2 (en) Storage control device, storage device, information processing system, and processing method therefor
KR20180038339A (en) Semiconductor device for executing a test method checking a cell allay failure
JP2014086062A (en) Storage control device, storage, information processing system and storage control method
JP2015011421A (en) Storage controller, storage device and storage control method thereof
WO2016017321A1 (en) Memory controller, storage device, information processing system, and method of controlling memory controller
JP5867264B2 (en) Storage control device, memory system, information processing system, and storage control method
JP2010079856A (en) Storage device and memory control method
JP5703939B2 (en) Storage device, computer device, computer control method, and computer program
JP6107625B2 (en) Storage control device, storage device, information processing system, and storage control method thereof
KR20180134120A (en) Semiconductor system
JP6481691B2 (en) MEMORY CONTROLLER, STORAGE DEVICE, INFORMATION PROCESSING SYSTEM, AND NONVOLATILE MEMORY CONTROL METHOD
CN110825553B (en) Memory system for memory device and method of operating the same
JP6493062B2 (en) Memory controller, memory system, and information processing system
WO2016002380A1 (en) Storage device, information processing system, and method for controlling storage device
JP2016053808A (en) Storage control device, storage device and storage device control method
US9064605B2 (en) Semiconductor system and method for reparing the same
KR20170133545A (en) Semiconductor device and semiconductor system
WO2017010147A1 (en) Nonvolatile memory, memory controller, storage device, information processing system, and method for controlling nonvolatile memory
JP5361826B2 (en) Recording unit and faulty chip identification method
JP6479638B2 (en) Video server apparatus and data writing / reading method
WO2015182439A1 (en) Storage device, storage system, and storage device control method
KR20170130684A (en) Semiconductor device
US10290333B2 (en) Semiconductor device

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 15815368

Country of ref document: EP

Kind code of ref document: A1