WO2021261157A1 - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
WO2021261157A1
WO2021261157A1 PCT/JP2021/019859 JP2021019859W WO2021261157A1 WO 2021261157 A1 WO2021261157 A1 WO 2021261157A1 JP 2021019859 W JP2021019859 W JP 2021019859W WO 2021261157 A1 WO2021261157 A1 WO 2021261157A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
address information
bit
memory cell
address
Prior art date
Application number
PCT/JP2021/019859
Other languages
English (en)
French (fr)
Inventor
健一 中西
Original Assignee
ソニーセミコンダクタソリューションズ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーセミコンダクタソリューションズ株式会社 filed Critical ソニーセミコンダクタソリューションズ株式会社
Priority to JP2022532435A priority Critical patent/JPWO2021261157A1/ja
Publication of WO2021261157A1 publication Critical patent/WO2021261157A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Definitions

  • This disclosure relates to a semiconductor storage device.
  • Cross-point non-volatile memory such as ReRAM (Resistive Random Access Memory) has been developed.
  • a non-volatile memory may have an ECC (Error-correcting code) capable of correcting a random bit error of data.
  • ECC Error-correcting code
  • crosspoint memory if a memory cell is shorted, all other memory cells that share the word and bit lines connected to that bad memory cell are affected. Further, by applying a write voltage to the short-circuited word line and bit line, the defect may be further expanded. As a result, when the number of error bits including line defects increases, ECC cannot completely correct the error bits.
  • the present disclosure provides a semiconductor storage device capable of masking an error bit generated by a line defect at the time of writing and correcting it at the time of reading.
  • the semiconductor storage device corresponds to a plurality of first wirings, a plurality of second wirings intersecting the plurality of first wirings, and intersections of the plurality of first wirings and the second wirings.
  • a memory cell array including a plurality of memory cells provided therein is provided, and the memory cell array is divided into a plurality of cell areas, and a data group of at least one bit obtained from each of the plurality of cell areas is accessed as an access unit.
  • the memory cell array includes a redundant unit that stores the data of the defective memory cell connected to the defective wiring among the plurality of first wirings and the plurality of second wirings in association with the access unit including the defective memory cell.
  • the access unit address information includes a first flag indicating whether or not the data of the defective memory cell has been updated in the redundant portion.
  • the redundant part may store the data of the defective memory cell for each defective memory cell.
  • the address information may include a bit position address indicating the address information of the defective memory cell connected to the defective wiring.
  • the address information may include a second flag indicating whether or not the bit position address is effectively stored.
  • the first and second flags may be added to the bit position address.
  • the controller When writing data, if the second flag of the address information indicates that the bit position address of the bad memory cell is validly registered, the controller that masks the bad memory cell corresponding to the address information and writes the data to the redundant part. May be further provided.
  • a controller for writing the data to the defective memory cell corresponding to the address information may be further provided.
  • the address information includes the data.
  • a controller that reads the data corresponding to the address information in the redundant part and applies it to the data may be further provided.
  • a controller that applies the data in the memory cell indicated by the address information to the read data is further added. You may prepare. In this case, the data corresponding to the address information in the redundant part is applied instead of the updated bad memory cell data.
  • the controller may further correct the read data to which the data corresponding to the address information in the redundant part is applied by ECC (Error-correcting code).
  • ECC Error-correcting code
  • the controller may determine whether or not the read data can be corrected by ECC, and if it is determined that the read data cannot be corrected by ECC, the data corresponding to the address information in the redundant part may be applied.
  • the controller moves to the patch data area associated with the address information in the redundant part while changing the address information of the second wiring while fixing the address information of the first wiring corresponding to the wiring defect. While writing data and fixing the address information of the second wiring corresponding to the wiring defect, while changing the address information of the first wiring, the data is written to the patch data area in the redundant part associated with the address information, and the access unit. When the data writing to the entire patch data area is completed, the first flag of the address information corresponding to the entire access unit may be changed to updated.
  • the wiring defect may be a defect in which the first wiring and the second wiring are short-circuited.
  • the figure which shows the configuration example of one memory chip. A conceptual diagram showing the contents of data included in one-page data.
  • the conceptual diagram which shows the structural example of the patch data in the page data of FIG. The flow diagram which shows an example of a data writing operation.
  • FIG. 1 is a block diagram showing an example of the configuration of the semiconductor storage device according to the first embodiment.
  • the semiconductor storage device 1 includes a controller 10 and a memory chip group 20.
  • the controller 10 and the memory chip group 20 may be arranged on, for example, one board.
  • the host computer 30 is provided outside the semiconductor storage device 1 and transmits / receives commands and data to / from the controller 10 via the host interface.
  • the controller 10 is a component that comprehensively controls the operation of the semiconductor storage device 1.
  • the controller 10 is communicably connected to the memory chip group 20 via the memory interface, and transmits / receives commands and data to / from the memory chip group 20. Further, the controller 10 is configured to perform processing for dealing with an error that occurs in the memory chip group 20.
  • the memory chip group 20 is a component for storing user data and various control data, and is composed of a plurality of memory chips 21. Although not particularly limited, in the present embodiment, the memory chip group 20 has 10 channels (CH1 to CH10) including, for example, eight memory chips 21. In this case, the memory chip group 20 is composed of, for example, a total of 80 memory chips (dies) 21.
  • the memory chip 21 may be a cross-point type non-volatile memory, and is, for example, a semiconductor memory chip such as PCM, iPCM, or ReRAM. Each memory chip 21 has a memory capacity of, for example, 64 gigabits.
  • the controller 10 is connected to each of the channels CH1 to CH10 via a memory interface, and can write data to channels CH1 to CH10 in parallel and read data in parallel. Assuming that the amount of data read or written from one channel at one time is, for example, 32 bytes, the controller 10 can read or write 320 bytes of data to the memory chip group 20 at one time.
  • the data capacity that the controller 10 can read or write to the memory chip group 20 at one time is hereinafter referred to as a “page”. That is, in this example, the page capacity of each channel is 32 bytes, and the page capacity of the entire memory chip group 20 is 320 bytes.
  • the numerical values such as the page capacity and the capacity of the memory chip are merely examples, and are not particularly limited to these numerical values.
  • FIG. 2 is a diagram showing an example of the internal configuration of the memory chip according to the present embodiment.
  • the memory chip 21 includes a plurality of bit line BLs, a plurality of word line WLs, a memory cell array MCA, a bit line controller BLC, and a word line controller WLC.
  • the bit wire BL as the first wiring extends in the Y direction substantially parallel to each other and is connected to the bit wire controller BLC.
  • the word line WL as the second wiring extends substantially parallel to each other in the X direction intersecting (for example, orthogonal to) the bit line BL, and is connected to the word line controller WLC, respectively.
  • the number of bit lines BL and word lines WL is not limited.
  • the memory cell array MCA includes a plurality of memory cell MCs provided corresponding to the intersections of the bit line BL and the word line WL. That is, the memory cell array MCA is a cross-point type memory cell array.
  • the plurality of memory cells MC may be arranged two-dimensionally or three-dimensionally.
  • the memory cell MC includes, for example, a resistance changing element VR (Variable Resistor) that records 1-bit information depending on the state of high or low resistance value, and a selection element SE (Selector Element) having bidirectional diode characteristics.
  • the memory cell MC has a series structure in which a resistance changing element VR and a selection element SE are connected in series between a bit line BL and a word line WL.
  • the memory cell MC may be a resistance change type memory such as ReRAM.
  • FIG. 3 is a perspective view showing a configuration example of a memory cell array.
  • the memory cell array MCA has a two-layer structure (UMCA, LMCA).
  • the memory cell array UMCA has a memory cell MC at each intersection of the upper word line UWL and the bit line BL.
  • the memory cell array LMCA has a 1-bit memory cell MC at each intersection of the lower word line LWL and the bit line BL.
  • FIG. 4 is a diagram showing a configuration example of one memory chip.
  • the memory chip 21 is divided into, for example, memory units called 4096 tiles composed of a memory cell array MCA.
  • the tile as a cell area includes, for example, 2048 bit lines BL, 8192 word lines WL, and a memory cell MC provided corresponding to their intersection.
  • the data capacity of one memory chip 21 is about 64 gigabits.
  • the memory chip 21 is divided into 16 banks, and at the time of reading or writing, one bit is selected and accessed from each of the 256 tiles included in one bank. Therefore, the controller 10 can read or write 256 bits (32 bytes) of data from one memory chip 21 with one access.
  • the memory chip group 20 includes eight memory chips 21 having such a configuration for each of channels CH1 to CH10.
  • the controller 10 can read or write 320 bytes of one-page data. That is, one bit of data group obtained from each 256 tiles of each bank is an access unit (page). The amount of page data depends on the number of channels.
  • the 320-byte data group becomes one page data as an access unit.
  • the number of tiles, the number of memory chips 21, the data capacity of the memory chips 21, the number of channels, etc. are examples and are not limited thereto.
  • FIG. 5 is a conceptual diagram showing the contents of the data included in the one-page data.
  • the 1-page data (320 bytes) includes user data (256 bytes) and a redundant portion (64 bytes).
  • User data is a memory area that can be arbitrarily used by the user.
  • the redundant part includes, for example, metadata, management information, ECC (Error Correcting Code), and patch data.
  • the metadata is secondary incidental information indicating attributes and related information of user data, and includes, for example, a CRC (Cyclic Redundancy Check) checksum, a version number, a time stamp, and the like.
  • the metadata has, for example, a data capacity of 8 bytes.
  • the management information is management data for managing user data, and includes, for example, address information.
  • the management information has, for example, a data capacity of 32 bits (4 bytes).
  • ECC is parity data generated using, for example, user data, metadata, management information, and the like as a payload.
  • ECC has, for example, a data capacity of 360 bits (45 bytes).
  • the ECC is provided to correct errors such as user data, metadata, management information, ECC's own random error (soft error), fixed error (hard error), stack defect, and disturb defect.
  • ECC is used in a process for detecting an error (sign error) generated in data by a parity check and correcting it.
  • ECC can correct errors that are less than or equal to the number of correctable bits, it cannot correct bit errors that exceed that number.
  • the line defect is, for example, due to a defect in a certain memory cell MC, the word line WL and the bit line BL connected to the defective memory cell MC are short-circuited, and the word line WL and the bit line BL are short-circuited.
  • a patch data area is included in the redundant portion in order to deal with such a line defect.
  • the patch data is data to be stored in the defective memory cell MC connected to the defective line, and is line defective bit data (correct value originally recorded in the memory cell MC) in the page.
  • the patch data area stores patch data in association with the address information of the page to which it belongs.
  • the patch data area has, for example, a data capacity of 56 bits (7 bytes). That is, in the present embodiment, the controller 10 corrects the line defect with the patch data, reduces the error bit, and enables the correction by ECC.
  • the data capacity of the patch data area is also not particularly limited.
  • all memory cell MCs connected to the short-circuited bit line BL and word line WL become defective.
  • the bit line BL and the word line WL of a certain tile in FIG. 4 are short-circuited, and all memory cell MCs connected to them (hereinafter referred to as error cell MCerr) are defective.
  • a page for one channel is composed of bit data selected by one bit from each of the 256 tiles contained in one bank.
  • the data of the error cell MCerr of the line defect belongs to each separate page. That is, the bit data of the error cell MCerr is scattered over 10239 pages. Therefore, when updating the patch data, it is necessary to update the entire page of 10239 pages including the error bit, which takes a very long time.
  • the valid flag VFL and the update flag UFL are added to the bit address information including the address of the bit line BL or the word line WL of the line failure.
  • FIG. 6 is a conceptual diagram showing an example of address information of a certain memory cell.
  • the line address Line_add includes the word line address WL_add and the bit line address BL_add.
  • the word line address WL_add is the address of the word line WL to which the corresponding bit data belongs, and is represented by, for example, 13 bits.
  • the bit line address BL_add is the address of the bit line BL to which the corresponding bit data belongs, and is represented by, for example, 11 bits. In this case, the line address Line_add is represented by, for example, 24 bits.
  • the chip address (die address) Die_add is the address of the memory chip 21 to which the corresponding bit data belongs, and is represented by, for example, 3 bits.
  • the bank address Bank_add is the address of the bank to which the corresponding bit data belongs, and is represented by, for example, 4 bits.
  • the line address Line_add, the chip address Die_add, and the bank address Bank_add specify the page to which the corresponding bit data belongs. Therefore, the line address Line_add, the chip address Die_add, and the bank address Bank_add are also referred to as page addresses.
  • bit position address Bit_posi is represented by, for example, 13 bits.
  • the bit position address Bit_posi indicates the bit position in the page, and is indicated by the channel address Ch_add and the bit address Bit_add.
  • the channel address Ch_add is the address of the channel to which the corresponding bit data belongs, and is represented by, for example, 5 bits.
  • the bit address Bit_add is the address of the memory cell MC to which the corresponding bit data belongs, and is represented by, for example, 8 bits. In this way, one memory cell MC can be specified by the page address and the bit position address Bit_posi.
  • FIG. 7 is a conceptual diagram showing an example of the address information of the memory cell MC included in the defective line.
  • the address information of the memory cell MC included in the defective line is the address information in which the valid flag VFL and the update flag UFL are added to the address information of FIG.
  • the controller 10 adds a valid flag VFL and an update flag UFL to the address information of the bit data belonging to the defective line and stores it as the address information of the defective line.
  • the address information of the defective line will be described later with reference to FIGS. 8 to 11.
  • the valid flag VFL as the second flag is information indicating that the memory cell corresponding to the address information is an error cell MCerr (error bit) that causes a defective line (defective bit line or defective word line), for example, 1 bit. It is a flag of data. For example, in the management format shown in FIG. 8 or 9, when the valid flag VFL is “1”, it indicates that the address information (bit position address) of the defective line is effectively registered in the entry. That is, the memory cell MC specified by the address information of the entry is the error cell MCerr. On the other hand, in the management format shown in FIG. 8 or 9, when the valid flag VFL is "0", the address information (bit position address) of the defective line is not registered (invalid) in the entry. Is shown.
  • the update flag UFL as the first flag is information indicating whether or not the patch data corresponding to the error cell MCerr (error bit) has been updated (reflected), and is, for example, a flag of 1-bit data. For example, when the update flag UFL is "1", it indicates that the patch data corresponding to the error cell MCerr has not been updated yet. In this case, it indicates that the data to be stored in the error cell MCerr is not yet stored in the patch data area. When the update flag UFL is "0", it indicates that the patch data corresponding to the error cell MCerr has been updated. In this case, it indicates that the data to be stored in the error cell MCerr is already stored in the patch data area.
  • the patch data update process is executed by reading all pages to which the error cell MCerr (error bit) whose update flag UFL is "1" belongs, correcting with ECC, adding the patch data of the error cell MCerr, and then writing back. Will be done.
  • the patch data update process requires a write operation of all pages related to the line defect.
  • the patch data update process is executed as a background process during an idle period when there is no access from the host computer 30. As a result, the patch data can be updated without the user being aware of it.
  • the update flag UFL is changed from "1" to "0".
  • the update flag UFL will be cleared to "0".
  • FIG. 8 and 9 are tables showing an example of the management format of the address information of the defective line.
  • FIG. 8 shows the management format of one address of the bad bit line BL
  • FIG. 9 shows the management format of one address of the bad word line WL. It should be noted that these management formats may be managed by the controller 10 or the host computer 30.
  • the bit position address Bit_posi on one page indicates, for example, the address of a unit page (for example, 320 bytes of data) from channels CH1 to CH10. Each bit is an intersection of a bit line BL and a word line WL.
  • 320 ⁇ 8 bit line BLs are designated by one page address
  • 320 ⁇ 8 word line WLs are one page addresses. Specified by.
  • the error cell MCerr of the bit line BL having a line defect is registered as entry_BL0 to entry_BL55.
  • the entry_BL0 to entry_BL55 indicate a bit position address Bit_posi indicating the position of the error cell MCerr (bit) that is defective.
  • the controller 10 sequentially registers the bit position address Bit_posi of the error cell MCerr, such as entry_BL0, entry_BL1, entry_BL2, and so on.
  • the bit position address Bit_posi of the error cell MCerr such as entry_BL0, entry_BL1, entry_BL2, and so on.
  • 56 error cells MCerr can be registered. That is, out of the 320 ⁇ 8 bit line BLs specified by each page address, up to 56 defective bit line BLs can be registered.
  • bit line BL of a certain page is specified by 11 bits of the bit line address BL_add, 3 bits of the chip address, and 4 bits of the bank address, for a total of 18 bits.
  • the host computer 30 the management format of the defective bit line BL shown in FIG. 8, a maximum of 2 18 to manage.
  • the defective word line WL shown in FIG. 9 may be considered in the same manner as the defective bit line BL.
  • the error cell MCerr having a line defect is registered as entry_WL0 to entry_WL55.
  • entry_WL0 to entry_WL55 indicate the bit position address Bit_posi of the error cell MCerr.
  • the controller 10 sequentially registers the bit position address Bit_posi of the defective bit, such as entry_WL0, entry_WL1, entry_WL2, and so on.
  • 56 error cells MCerr can be registered. That is, out of the 320 ⁇ 8 word line WLs specified by each page address, up to 56 defective word line WLs can be registered.
  • the word line WL of a certain page is specified by 13 bits of the word line address WL_add, 3 bits of the chip address, and 4 bits of the bank address, for a total of 20 bits.
  • the host computer 30 the management format of the defective word line WL shown in FIG. 9, up to 2 to 20 management.
  • FIGS. 10 and 11 are tables showing specific examples of bad bit line address information and bad word line address information.
  • the page addresses of the bit line BL and the word line WL are shown.
  • the bit position addresses of the bad bit line and the bad word line of a certain page are shown.
  • two bits, Bit_posi (0) and Bit_posi (1) are registered as line defects.
  • two bits, Bit_posi (0) and Bit_posi (1), are registered as line defects.
  • FIG. 12 is a conceptual diagram showing a configuration example of patch data in the page data of FIG.
  • 56 bits of patch data are prepared, and each bit stores a value to be stored in the defective memory cell MC. That is, the semiconductor storage device 1 can store bit data of 56 error cell MCerr due to a line defect as patch data for each error cell MCerr (bit) for one page.
  • bit data the memory cell MC indicated by the bit position address of the defective bit line or the defective word line is masked, and the write data is written to the patch data area of the redundant portion.
  • the bad bit line data is stored from the least significant bit LSB of the patch data toward the upper bit.
  • the bad word line data is stored from the most significant bit MSB of the patch data toward the lower bits.
  • the registered patch data is stored at both ends of the patch data area, and unused empty bits can be concentrated in the center of the patch data area.
  • the bits with the update flag UFL of "1" are concentrated in the center of the patch data area, so that the patch with the update flag UFL of "0" It will be easier to apply the data.
  • the same patch data is duplicated and stored corresponding to both the defective bit line and the defective word line.
  • the patch data area consumes two bits, one on the lower side and the other on the upper side, for the same error cell MCerr, but there is no particular problem.
  • FIG. 13 is a flow chart showing an example of a data writing operation.
  • the controller 10 receives the write command and the write address from the host computer 30.
  • the controller 10 determines whether or not the write address includes a defective line and mask data is set (S100). The setting of the mask data will be described later with reference to FIG.
  • the controller 10 issues a mask command and masks the memory cell MC (error cell MCerr) according to the bit position address Bit_posi of the write address (S110).
  • the controller 10 issues a write command and executes writing of write data (S120). At this time, data is written to the unmasked memory cell MC in the memory cell MC according to the bit position address Bit_posi of the write address. On the other hand, since no data is written to the masked error cell MCerr, this write data is written by generating patch data in the patch data area of the redundant portion.
  • the controller 10 executes a verify read and verifies the written data (S130).
  • the data in the unmasked memory cell MC passes the verification (YES1 in S130)
  • the writing of the data is completed as it is.
  • the bit data failed to be verified may be written by executing steps S120 to S130 again. Alternatively, the defective line is detected and the address information of the defective bit line and the defective word line is updated.
  • FIG. 14 is a flow chart showing the operation of generating mask data and patch data of defective lines.
  • the host computer 30 extracts the address information of the bad bit line and the address information of the bad word line (S10, S11).
  • the memory cell MC located at the bit position address Bit_posi (0).
  • the mask data is a mask value corresponding to the memory cell MC indicated by the bit position address Bit_posi (0). For example, when the mask value is "0”, the mask is not set in the memory cell MC and data is written. When the mask value is "1”, a mask is set in the memory cell MC and no data is written.
  • the controller 10 extracts the data corresponding to the bit position address Bit_posi (0) from the write data and generates the data as patch data (S50).
  • the patch data is originally data to be written to the memory cell MC indicated by the bit position address Bit_posi (0), but since the memory cell MC is an error cell, it is registered in the patch data area of the redundant portion shown in FIG. .. Since the writing of the patch data is written together with the writing of other data, the mask data and the patch data generated at this point are temporarily stored in the controller 10.
  • the host computer 30 checks whether i has reached 55 (S60). When i is less than 55 (NO in S60), the host computer 30 increments i by +1 (S70) and repeats steps S30 to S60. This generation of mask data and patch data is executed for all entry entry_BL (i) until i reaches 55. When i reaches 55 (YES in S60), the generation of mask data and patch data ends.
  • the memory cell MC located at the bit position address Bit_posi (0).
  • the mask data is a mask value corresponding to the memory cell MC indicated by the bit position address Bit_posi (0). For example, when the mask value is "0”, the mask is not set in the memory cell MC and data is written. When the mask value is "1”, a mask is set in the memory cell MC and no data is written.
  • the host computer 30 extracts the data corresponding to the bit position address Bit_posi (0) from the write data and generates the data as patch data (S51).
  • the patch data is originally data to be written to the memory cell MC indicated by the bit position address Bit_posi (0), but since the memory cell MC is an error cell, it is registered in the patch data area of the redundant portion shown in FIG. .. Since the writing of patch data is written together with the writing of other data, the generated mask data and patch data are temporarily stored in the controller 10.
  • the host computer 30 checks whether or not j has reached 55 (S61). When j is less than 55 (NO in S61), the host computer 30 increments j by +1 (S71) and repeats steps S31 to S61. This generation of mask data and patch data is executed for all entry entry_WL (j) until j reaches 55. When j reaches 55 (YES in S61), the generation of mask data and patch data ends.
  • steps S11 to S71 may be executed in parallel with steps S10 to S70, or may be executed before and after the steps S10 to S70.
  • FIG. 15 is a flow chart showing an example of a data reading operation.
  • the controller 10 receives the read command and the read address from the host computer 30 (S200).
  • the controller 10 corrects the read data by ECC (S205). If the number of error bits is less than the number of correctable error bits (for example, 30 bits), the read data is corrected by ECC (YES in S210). In this case, the controller 10 outputs the data corrected by ECC to the host computer 30. In this way, the controller 10 first performs ECC correction when reading data, and if correction is possible, the reading process is completed. As a result, the time required for the read operation can be shortened.
  • the read address corresponds to a bad line and the patch data has been updated (YES in S220)
  • the patch of the redundant part corresponding to the address information is replaced with the error cell MCerr specified by the address information of the bad word line.
  • the data is read and applied to the data (S230).
  • the patch data may not be applied (S260). In this way, only the updated patch data is applied to the read data, and the unupdated patch data is not applied to the read data. Even in that case, if the number of error bits included in the read data is equal to or less than the number of ECC correctable bits, it can be corrected by using ECC.
  • the read data after the patch is corrected by ECC again (S240). If the number of error bits after patching is equal to or less than the number of correctable bits of ECC, the read data is corrected (YES in S250). In this case, the controller 10 outputs the data after ECC correction to the host computer 30.
  • the controller 10 makes a read error (S260).
  • the patch data is applied to the error bit of the read data.
  • the patch data is not updated even if there is a defective line, the patch data is not applied to the error bit, and the read data is used as it is.
  • the semiconductor storage device corrects the read data by ECC when it can be corrected by ECC, and executes ECC after applying patch data to the read data when it cannot be corrected by ECC. As a result, the correction ability can be enhanced while maintaining the read performance.
  • FIG. 16 is a flow chart showing an operation of applying patch data to bit data of a defective line in a read operation.
  • the host computer 30 extracts the address information of the bad bit line and the address information of the bad word line (S310, S311).
  • patch data is applied. That is, the controller 10 does not apply the data of the memory cell MC located at the bit position address Bit_posi (i) to the read data, but instead applies it to the bit position address Bit_posi (i). The corresponding patch data is applied. At this time, the bit position indicated by the bit position address Bit_posi (i) is calculated (S340), and the patch data is reflected in the bit position (S350). Patch data (correct value) is applied to bad bit data.
  • the patch data is Not applicable. That is, the controller 10 uses the data read from the memory cell MC indicated by the bit position address Bit_posi (0).
  • the controller 10 checks whether i has reached 55 (S360). When i is less than 55 (NO in S360), the controller 10 increments i by +1 (S370) and repeats steps S330 to S360. This mask data application operation is executed until i reaches 55. When i reaches 55 (YES in S360), the application of the patch data in step S220 ends with respect to the defective bit line.
  • the patch data is applied. That is, the data of the memory cell MC located at the bit position address Bit_posi (j) is not applied to the read data, and instead, the patch data corresponding to the bit position address Bit_posi (j) is applied.
  • the controller 10 calculates the bit position indicated by the bit position address Bit_posi (j) (S341) and reflects the patch data at the bit position (S351). The patch data (correct value) is applied to the bad bit data.
  • the patch data is Not applicable. That is, the data read from the memory cell MC located at the bit position address Bit_posi (j) is used.
  • the controller 10 checks whether or not j has reached 55 (S361). When j is less than 55 (NO in S361), the host computer 30 increments j by +1 (S371) and repeats steps S331 to S361. This mask data application operation is executed until j reaches 55. When j reaches 55 (YES in S361), the application of the patch data in step S220 ends with respect to the defective word line.
  • controller 10 executes step S230 and subsequent steps in FIG. 15 to further correct the read data obtained by applying the patch data to the line defective data by ECC and output the data to the host computer 30. In this way, the read data is corrected and read by both the patch data and the ECC.
  • FIG. 17 is a flow chart showing an example of patch data update processing.
  • the patch data update process the page data related to the line defect is once read, the patch data of the error bit of the page data is written to the patch data area of the redundant part, and the data other than the error bit is written to the original memory cell MC. It is a process.
  • the update flag UFL of the corresponding bit position address Bit_posi of the page is changed from "1 (not updated)" to "0 (updated)".
  • One channel page is composed of bit data selected bit by bit from each of 256 tiles included in one bank, for example. Therefore, the data of the error cell MCerr of the line defect belongs to each one scattered over different pages.
  • the patch data update process needs to access and update all pages that share bad word lines and bad bit lines related to bad lines.
  • the patch data update process is executed in the background during an idle period in which the host computer 30 does not access the semiconductor storage device 1.
  • the patch data can be updated without the user being aware of it.
  • the address information of the defective bit line is fixed (S400), and the page data of a certain word line is read out (S410). At this time, data is read from the user data according to the page address, and new patch data is generated from the read data (S420). At this time, ECC correction or the like is applied according to the above-mentioned read operation.
  • Steps S410 to S430 are repeated until there are no unupdated word lines.
  • steps S400 to S460 are executed for the other defective lines.
  • the patch data update process is executed as a background process during an idle period when there is no access from the host computer 30.
  • an update flag UFL is added to the page address related to the line defect, making it possible to distinguish between the flag UFL whose patch data has not been updated and the flag UFL which has been updated.
  • the patch data that needs to be updated can be determined.
  • the updated patch data is the patch data of the page for which writing has already been executed. In this way, by making it possible to distinguish between the unupdated flag UFL and the updated flag UFL, the time for patch data update processing can be shortened. Further, by making it possible to distinguish between the unupdated flag UFL and the updated flag UFL, it is possible to apply only the updated patch data to the read data at the time of reading.
  • the line defect data is corrected by ECC until the update flag UFL is cleared to "0". That is, if there is an access during the patrol until the update flag UFL is cleared to "0", the line defect data may be corrected by ECC.
  • the present technology can have the following configurations. (1) With multiple first wires, A plurality of second wirings intersecting the plurality of first wirings, A memory cell array including a plurality of memory cells provided corresponding to the intersection of the plurality of first wirings and the second wiring is provided. The memory cell array is divided into a plurality of cell areas, and the memory cell array is divided into a plurality of cell areas. The access unit is a data group of at least 1 bit obtained from each of the plurality of cell areas. The memory cell array is a redundant unit that stores data of a defective memory cell connected to a defective wiring among the plurality of first wirings and the plurality of second wirings in association with the access unit including the defective memory cell.
  • the address information of the access unit includes a first flag indicating whether or not the data of the defective memory cell has been updated in the redundant portion, and is a semiconductor storage device.
  • the address information includes a bit position address indicating the address information of the defective memory cell connected to the defective wiring.
  • the address information includes a second flag indicating whether or not the bit position address is effectively stored.
  • any one of (4) to (5) further comprising a writing controller.
  • any one of (4) to (6) further includes a controller for writing data to the memory cell corresponding to the address information.
  • the described semiconductor storage device When the first flag of the address information indicates that the data in the defective memory has been updated and the second flag indicates that the bit position address is effectively registered at the time of reading the data, the address information.
  • the controller changes the address information of the second wiring while fixing the address information of the first wiring corresponding to the wiring defect, and changes the address information to the address information in the redundant portion.
  • Any of (6) to (11) which changes the first flag of the address information corresponding to the entire access unit to updated when the data writing to the patch data area of the entire access unit is completed.
  • the semiconductor storage device according to item 1. (13) The semiconductor storage device according to any one of (1) to (12), wherein the wiring defect is a defect in which the first wiring and the second wiring are short-circuited.

Landscapes

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

Abstract

[課題]ライン不良によって発生するエラービットを書込み時にマスクし、読出し時に訂正することができる半導体記憶装置を提供する。 [解決手段]本開示による半導体記憶装置は、複数の第1配線と、複数の第1配線に対して交差する複数の第2配線と、複数の第1配線と第2配線との交点に対応して設けられた複数のメモリセルを含むメモリセルアレイと、を備え、メモリセルアレイは、複数のセル領域に分割されており、複数のセル領域のそれぞれから得られる少なくとも1ビットずつのデータ群をアクセス単位とし、メモリセルアレイは、複数の第1配線および複数の第2配線のうち不良配線に接続された不良メモリセルのデータを、該不良メモリセルが含まれるアクセス単位に関連付けて格納する冗長部を含み、アクセス単位のアドレス情報は、不良メモリのデータが冗長部において更新済みか否かを示す第1フラグを含む。

Description

半導体記憶装置
 本開示は、半導体記憶装置に関する。
 ReRAM(Resistive Random Access Memory)等のクロスポイント型不揮発性メモリが開発されている。このような不揮発性メモリは、データのランダムなビット誤りを訂正可能なECC(Error-correcting code)を有する場合がある。しかし、クロスポイント型メモリでは、或るメモリセルがショートした場合に、その不良メモリセルに接続されるワード線およびビット線を共有する他の全てのメモリセルが影響を受ける。また、ショートしたワード線、ビット線に書込み電圧をかけることでさらに不良が拡大する可能性がある。その結果ライン不良を含め、エラービットが多くなると、ECCでは、そのエラービットを訂正しきれなくなる。
特開2002-373119号公報
 そこで、本開示は、ライン不良によって発生するエラービットを書込み時にマスクし、読出し時に訂正することができる半導体記憶装置を提供する。
 本開示の実施形態による半導体記憶装置は、複数の第1配線と、 複数の第1配線に対して交差する複数の第2配線と、 複数の第1配線と第2配線との交点に対応して設けられた複数のメモリセルを含むメモリセルアレイと、を備え、メモリセルアレイは、複数のセル領域に分割されており、複数のセル領域のそれぞれから得られる少なくとも1ビットずつのデータ群をアクセス単位とし、メモリセルアレイは、複数の第1配線および複数の第2配線のうち不良配線に接続された不良メモリセルのデータを、該不良メモリセルが含まれるアクセス単位に関連付けて格納する冗長部を含み、
 アクセス単位のアドレス情報は、不良メモリセルのデータが冗長部において更新済みか否かを示す第1フラグを含む。
 冗長部は、不良メモリセルのデータを、該不良メモリセルごとに格納してもよい。
 アドレス情報は、不良配線に接続された不良メモリセルのアドレス情報を示すビットポジションアドレスを含でもよい。
 アドレス情報は、ビットポジションアドレスが有効に格納されているか否かを示す第2フラグを含でもよい。
 第1および第2フラグは、ビットポジションアドレスに付加されていてもよい。
 データ書き込み時に、アドレス情報の第2フラグが不良メモリセルのビットポジションアドレスが有効に登録されていることを示す場合、アドレス情報に対応する不良メモリセルをマスクして、冗長部にデータを書き込むコントローラをさらに備えてもよい。
 データ書き込み時に、アドレス情報の第2フラグが無効のである場合、アドレス情報に対応する不良メモリセルにデータを書き込むコントローラをさらに備えてもよい。
 データ読み出し時に、アドレス情報の第1フラグが不良メモリのデータの更新済みを示し、かつ、第2フラグが、不良メモリセルのビットポジションアドレスが有効に登録されていることを示す場合、アドレス情報に対応する不良メモリセルのデータに代わり、冗長部にあるアドレス情報に対応するデータを読み出しデータに適用するコントローラをさらに備えてもよい。
 データ読み出し時に、アドレス情報の第1フラグが不良メモリのデータの未更新を示し、あるいは、第2フラグが無効である場合、アドレス情報で示されるメモリセルのデータを読み出しデータに適用するコントローラをさらに備えてもよい。この場合は、更新済みの不良メモリセルのデータに代わり、冗長部にあるアドレス情報に対応するデータが適用される。
 データ読み出し時に、コントローラは、冗長部にあるアドレス情報に対応するデータを適用した読み出しデータを、さらに、ECC(Error-correcting code)で訂正してもよい。
 コントローラは、読み出しデータをECCで訂正可能か否かを判断し、ECCで訂正できないと判断する場合に、冗長部にあるアドレス情報に対応するデータを適用してもよい。
 不良配線が発生した場合、コントローラは、配線不良に対応する第1配線のアドレス情報を固定したまま、第2配線のアドレス情報を変更しながら、冗長部内においてアドレス情報に関連付けられたパッチデータ領域へデータを書き込み、配線不良に対応する第2配線のアドレス情報を固定したまま、第1配線のアドレス情報を変更しながら、アドレス情報に関連付けられた冗長部内においてパッチデータ領域へデータを書き込み、アクセス単位全体のパッチデータ領域へのデータ書き込みが終了した場合に、該アクセス単位全体に対応するアドレス情報の第1フラグを更新済みに変更してもよい。
 配線不良は、第1配線と第2配線とが短絡する不良であってもよい。
第1実施形態に係る半導体記憶装置の構成の一例を示すブロック図。 本実施形態によるメモリチップの内部構成の一例を示す図。 メモリセルアレイの構成例を示す斜視図。 1つのメモリチップの構成例を示す図。 1ページデータに含まれるデータの内容を示す概念図。 或るメモリセルのアドレス情報の一例を示す概念図。 不良ラインに含まれるメモリセルのアドレス情報の一例を示す概念図。 不良ラインのアドレス情報の管理フォーマットの一例を示す表。 不良ラインのアドレス情報の管理フォーマットの一例を示す表。 不良ビット線のアドレス情報および不良ワード線のアドレス情報の具体例を示す表。 不良ビット線のアドレス情報および不良ワード線のアドレス情報の具体例を示す表。 図5のページデータ内のパッチデータの構成例を示す概念図。 データ書き込み動作の一例を示すフロー図。 不良ラインのマスクデータおよびパッチデータの生成動作を示すフロー図。 データ読み出し動作の一例を示すフロー図。 読み出し動作において不良ラインのビットデータに対してパッチデータを適用する動作を示すフロー図。 パッチデータ更新処理の一例を示すフロー図。
 以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。図面は模式的または概念的なものであり、各部分の比率などは、必ずしも現実のものと同一とは限らない。明細書と図面において、既出の図面に関して前述したものと同様の要素には同一の符号を付して詳細な説明は適宜省略する。
(第1実施形態)
 図1は、第1実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。同図に示すように、半導体記憶装置1は、コントローラ10と、メモリチップ群20とを備える。コントローラ10およびメモリチップ群20は、例えば1つのボード上に配置されてもよい。ホストコンピュータ30は、半導体記憶装置1の外部に設けられており、ホストインタフェースを介してコントローラ10とコマンドおよびデータの送受信を行う。
 コントローラ10は、半導体記憶装置1の動作を統括的に制御するコンポーネントである。コントローラ10は、メモリインタフェースを介してメモリチップ群20と通信可能に接続されており、メモリチップ群20とコマンドおよびデータの送受信を行う。また、コントローラ10は、メモリチップ群20において発生するエラーに対処するための処理を行うように構成されている。
 メモリチップ群20は、ユーザデータや各種の制御データを記憶するためのコンポーネントであり、複数のメモリチップ21で構成されている。特に限定しないが、本実施形態では、メモリチップ群20は、例えば、8つのメモリチップ21を含む、10チャネル(CH1~CH10)有する。この場合、メモリチップ群20は、例えば、計80個のメモリチップ(ダイ)21で構成されている。
 メモリチップ21は、クロスポイント型不揮発性メモリであればよく、例えば、PCM、iPCM、ReRAM等の半導体メモリチップである。各メモリチップ21は、例えば、64ギガビットもメモリ容量を有する。
 コントローラ10は、チャネルCH1~CH10のそれぞれとメモリインタフェースを介して接続されており、チャネルCH1~CH10に同時並行にデータを書き込んだり、同時並行にデータを読み出したりすることができる。1つのチャネルから1度に読み出しまたは書き込みされるデータ容量が、例えば、32バイトとすると、コントローラ10は、メモリチップ群20に対して、320バイトのデータを1度に読み出しまたは書き込むことができる。コントローラ10がメモリチップ群20に対して1度に読み出しまたは書き込み可能なデータ容量を、以下、“ページ”と呼ぶ。即ち、この例では、各チャネルのページ容量は、32バイトであり、メモリチップ群20全体のページ容量は、320バイトとなる。尚、ページ容量、メモリチップの容量等の数値は、あくまでも一例であり、これらの数値に特に限定されない。
 図2は、本実施形態によるメモリチップの内部構成の一例を示す図である。メモリチップ21は、複数のビット線BLと、複数のワード線WLと、メモリセルアレイMCAと、ビット線コントローラBLCと、ワード線コントローラWLCとを備えている。
 第1配線としてのビット線BLは、互いに略平行にY方向に延伸しており、それぞれビット線コントローラBLCに接続されている。
 第2配線としてのワード線WLは、互いに略平行に、ビット線BLに対して交差(例えば、直交)するX方向に延伸しており、それぞれワード線コントローラWLCに接続されている。尚、本実施形態において、ビット線BLおよびワード線WLの本数は、限定されない。
 メモリセルアレイMCAは、ビット線BLとワード線WLとの交点に対応して設けられた複数のメモリセルMCを含む。即ち、メモリセルアレイMCAは、クロスポイント型のメモリセルアレイである。複数のメモリセルMCは、二次元または三次元的に配列されてもよい。
 メモリセルMCは、例えば、抵抗値の高低の状態により1ビットの情報を記録する抵抗変化素子VR(Variable Resistor)と、双方向ダイオード特性を有する選択素子SE(Selector Element)とを備える。メモリセルMCは、ビット線BLとワード線WLとの間に、抵抗変化素子VRと選択素子SEとを直列に接続した直列構造となっている。メモリセルMCは、ReRAM等の抵抗変化型メモリでよい。
 図3は、メモリセルアレイの構成例を示す斜視図である。メモリセルアレイMCAは、2層構造(UMCA、LMCA)となっている。メモリセルアレイUMCAは、上部ワード線UWLとビット線BLとの各交点にメモリセルMCを有する。メモリセルアレイLMCAは、下部ワード線LWLとビット線BLとの各交点に1ビットのメモリセルMCを有する。
 図4は、1つのメモリチップの構成例を示す図である。メモリチップ21は、例えば、メモリセルアレイMCAで構成される4096個のタイルと呼ばれるメモリ単位に分轄されている。セル領域としてのタイルは、例えば、2048本のビット線BLと、8192本のワード線WLと、それらの交点に対応して設けられたメモリセルMCとを含む。この場合、1つのメモリチップ21のデータ容量は、約64ギガビットとなる。
 さらに、メモリチップ21は、16バンクに分割されており、読み出しまたは書き込み時には、1バンクに含まれる256タイルのそれぞれから1ビットずつ選択してアクセスする。従って、コントローラ10は、1度のアクセスで1つのメモリチップ21から256ビット(32バイト)のデータを読み出しまたは書き込むことができる。
 本実施形態によるメモリチップ群20は、図1に示したように、このような構成を有するメモリチップ21をチャネルCH1~CH10ごとに8個ずつ含む。これにより、コントローラ10は、320バイトの1ページデータを読み出しまたは書き込むことができる。即ち、各バンクのそれぞれの256タイルから得られる1ビットずつのデータ群がアクセス単位(ページ)となっている。ページデータの容量は、チャネル数によって変わる。本実施形態のように10チャンネルCH1~CL10有する場合、320バイトのデータ群がアクセス単位としての1ページデータとなる。尚、タイル数、メモリチップ21の数、メモリチップ21のデータ容量、チャネル数等は、一例であってこれに限定されない。
 図5は、1ページデータに含まれるデータの内容を示す概念図である。1ページデータ(320バイト)は、ユーザデータ(256バイト)と、冗長部(64バイト)とを含む。
 ユーザデータは、ユーザが任意に使用することができるメモリ領域である。冗長部は、例えば、メタデータ、管理情報、ECC(Error Correcting Code)、パッチデータを含む。メタデータは、ユーザデータの属性や関連情報を示す二次的な付帯情報であり、例えば、CRC(Cyclic Redundancy Check)チェックサム、バージョン番号及びタイムスタンプ等を含む。メタデータは、例えば、8バイトのデータ容量を有する。管理情報は、ユーザデータを管理するための管理データであり、例えば、アドレス情報を含む。管理情報は、例えば、32ビット(4バイト)のデータ容量を有する。ECCは、例えば、ユーザデータ、メタデータ、管理情報等をペイロードとして生成されるパリティデータである。ECCは、例えば、360ビット(45バイト)のデータ容量を有する。ECCは、ユーザデータ、メタデータ、管理情報、ECC自身のランダムエラー(ソフトエラー)、固定エラー(ハードエラー)、スタック不良、ディスターブ不良等のエラーを訂正するために設けられている。ECCは、パリティチェックにより、データに発生したエラー(符号誤り)を検出し、これを訂正するための処理に用いられる。一方、ECCは、訂正可能ビット数以下のエラーを訂正することはできるものの、それを超えるビットエラーを訂正することができない。
 このようなエラーのうちライン不良は、例えば、或るメモリセルMCの不良によって、その不良メモリセルMCに接続されたワード線WLとビット線BLとが短絡し、該ワード線WLとビット線BLに接続された全てのメモリセルMCが不良となるエラーである。本実施形態では、このようなライン不良に対処するために、パッチデータ領域が冗長部に含まれている。パッチデータは、不良ラインに接続された不良メモリセルMCに格納すべきデータであり、ページ内におけるライン不良のビットデータ(メモリセルMCに本来記録されるべき正しい値)である。パッチデータ領域は、パッチデータを、それが属するページのアドレス情報と関連付けて格納する。このようなライン不良に関わるエラーをパッチデータによって訂正することができれば、エラービットが少なくなり、コントローラ10は、ECCにより訂正可能にすることができる。パッチデータ領域は、例えば、56ビット(7バイト)のデータ容量を有する。即ち、本実施形態では、コントローラ10は、ライン不良をパッチデータで訂正した上で、エラービットを少なくし、ECCによる訂正を可能にしている。尚、パッチデータ領域のデータ容量も特に限定されない。
 また、ライン不良の場合、短絡しているビット線BLとワード線WLに接続された全てのメモリセルMCが不良となる。例えば、図4の或るタイルのビット線BLとワード線WLが短絡し、それらに接続された全メモリセルMC(以下、エラーセルMCerr)が不良となっているものとする。この場合、1タイルに含まれるエラーセルMCerrの個数は、ビット線BLの数とワード線WLの数との和-1(例えば、2048+8192-1=10239)となる。上述の通り、1チャネル分のページは、1バンクに含まれる256個のタイルのそれぞれから1ビットずつ選択されたビットデータで構成される。従って、ライン不良のエラーセルMCerrのデータは、個々別々のページに属することになる。即ち、エラーセルMCerrのビットデータは、10239ページに亘って散らばっていることになる。従って、パッチデータを更新する際には、エラービットを含む10239ページのページ全体を更新する必要があり、非常に長い時間がかかる。
 ここで、本実施形態では、ライン不良のビット線BLまたはワード線WLのアドレスを含むビットアドレス情報に対して、バリッドフラグVFLとアップデートフラグUFLを付加する。
 図6は、或るメモリセルのアドレス情報の一例を示す概念図である。ラインアドレスLine_addは、ワード線アドレスWL_addおよびビット線アドレスBL_addを含む。ワード線アドレスWL_addは、対応するビットデータの属するワード線WLのアドレスであり、例えば、13ビットで表わされる。ビット線アドレスBL_addは、対応するビットデータの属するビット線BLのアドレスであり、例えば、11ビットで表わされている。この場合、ラインアドレスLine_addは、例えば、24ビットで表現される。また、チップアドレス(ダイアドレス)Die_addは、対応するビットデータの属するメモリチップ21のアドレスであり、例えば、3ビットで表現される。バンクアドレスBank_addは、対応するビットデータの属するバンクのアドレスであり、例えば、4ビットで表現される。ラインアドレスLine_add、チップアドレスDie_addおよびバンクアドレスBank_addによって、対応するビットデータの属するページが特定される。従って、ラインアドレスLine_add、チップアドレスDie_addおよびバンクアドレスBank_addは、ページアドレスとも呼ぶ。
 さらに、ビットポジションアドレスBit_posiが、例えば、13ビットで表現される。ビットポジションアドレスBit_posiは、ページ内におけるビット位置を示し、チャネルアドレスCh_addおよびビットアドレスBit_addで示される。チャネルアドレスCh_addは、対応するビットデータの属するチャネルのアドレスであり、例えば、5ビットで表現される。ビットアドレスBit_addは、対応するビットデータの属するメモリセルMCのアドレスであり、例えば、8ビットで表現される。このように、ページアドレスおよびビットポジションアドレスBit_posiによって、1つのメモリセルMCを特定することができる。
 図7は、不良ラインに含まれるメモリセルMCのアドレス情報の一例を示す概念図である。不良ラインに含まれるメモリセルMCのアドレス情報は、図6のアドレス情報にバリッドフラグVFLおよびアップデートフラグUFLを付加したアドレス情報である。不良ラインが検出されたときには、コントローラ10は、その不良ラインに属するビットデータのアドレス情報にバリッドフラグVFLおよびアップデートフラグUFLを付加して不良ラインのアドレス情報として格納する。尚、不良ラインのアドレス情報は、図8~図11を参照して後で説明する。
 第2フラグとしてのバリッドフラグVFLは、アドレス情報に対応するメモリセルが不良ライン(不良ビット線または不良ワード線)を引き起こすエラーセルMCerr(エラービット)であることを示す情報であり、例えば、1ビットデータのフラグである。例えば、図8または図9に示す管理フォーマットにおいて、バリッドフラグVFLが“1”である場合、そのエントリーには、不良ラインのアドレス情報(ビットポジションアドレス)が有効に登録されていることを示す。即ち、そのエントリーのアドレス情報で特定されるメモリセルMCは、エラーセルMCerrである。一方、図8または図9に示す管理フォーマットにおいて、バリッドフラグVFLが“0”である場合、そのエントリーには、不良ラインのアドレス情報(ビットポジションアドレス)が登録されていない(無効である)ことを示す。即ち、そのエントリーには、エラーセルMCerrとして有効なアドレス情報が登録されていない。第1フラグとしてのアップデートフラグUFLは、エラーセルMCerr(エラービット)に対応するパッチデータが更新(反映)済みか否かを示す情報であり、例えば、1ビットデータのフラグである。例えば、アップデートフラグUFLが“1”である場合、エラーセルMCerrに対応するパッチデータがまだ更新されていないことを示す。この場合、エラーセルMCerrに格納すべきデータは、未だパッチデータ領域に格納されていないことを示す。アップデートフラグUFLが“0”である場合、エラーセルMCerrに対応するパッチデータが更新済みであることを示す。この場合、エラーセルMCerrに格納すべきデータが、すでにパッチデータ領域に格納されていることを示す。
 バリッドフラグVFLが“1”であり、かつ、アップデートフラグUFLが“0”である場合、対応するメモリセルMCは、不良ラインのエラーセルMCerrとして有効に登録されており、かつ、パッチデータも更新済みであることを意味する。このアドレスにアクセスする場合、エラーセルMCerrのデータに代わり、パッチデータが読み出され、あるいは、エラーセルMCerrをマスクして、冗長部のパッチデータ領域にデータが書き込まれる。
 バリッドフラグVFLが“1”であり、かつ、アップデートフラグUFLが“1”である場合、対応するビットは、不良ラインのエラーセルMCerrとして有効に登録されているが、パッチデータは未だ更新されていないことを意味する。この場合、アップデートフラグUFLが“0”であるパッチデータのみ、利用される。アップデートフラグUFLが“1”であるエラーセルMCerrは、パッチデータが更新されるまで、ECCによって訂正される。即ち、アップデートフラグUFLが“0”にクリアされるまでの巡回中にアクセスがあった場合、ライン不良のデータは、ECCによって訂正すればよい。
 パッチデータの更新処理は、アップデートフラグUFLが“1”であるエラーセルMCerr(エラービット)が属する全てのページを読み出し、ECCで訂正後、エラーセルMCerrのパッチデータを追加した上で書き戻すことによって実行される。このように、パッチデータの更新処理は、ライン不良に関連する全てのページの書き込み動作が必要である。パッチデータの更新処理は、ホストコンピュータ30からのアクセスのないアイドル期間中にバックグラウンド処理として実行される。これにより、パッチデータの更新は、ユーザに意識されることなく実行され得る。パッチデータが更新されると、アップデートフラグUFLは、“1”から“0”に変更される。ライン不良に関連する全てのページのパッチデータが更新されると、アップデートフラグUFLは、すべて“0”にクリアされることになる。
 図8および図9は、不良ラインのアドレス情報の管理フォーマットの一例を示す表である。図8は、不良ビット線BLの1アドレスの管理フォーマットを示し、図9は、不良ワード線WLの1アドレスの管理フォーマットを示す。尚、これらの管理フォーマットは、コントローラ10またはホストコンピュータ30で管理されればよい。
 1ページのビットポジションアドレスBit_posiは、例えば、チャネルCH1~CH10からの単位ページ(例えば、320バイトのデータ)のアドレスを示す。各ビットは、ビット線BLとワード線WLの交点であり、図8では320×8本のビット線BLが1ページアドレスによって指定され、図9では320×8本のワード線WLが1ページアドレスによって指定される。図8では、この1ページアドレスによって指定される320×8本のビット線BLのうち、ライン不良となっているビット線BLのエラーセルMCerrがentry_BL0~entry_BL55として登録される。entry_BL0~entry_BL55は、不良となっているエラーセルMCerr(ビット)の位置を示すビットポジションアドレスBit_posiを示す。コントローラ10は、ライン不良が検出されると、entry_BL0、entry_BL1、entry_BL2・・・のように、順次、エラーセルMCerrのビットポジションアドレスBit_posiを登録する。図8の例では、56個のエラーセルMCerrを登録することができる。即ち、各ページアドレスによって指定される320×8本のビット線BLのうち、56本までの不良ビット線BLを登録することができる。
 尚、図7に示すページアドレスの例において、或るページのビット線BLは、ビット線アドレスBL_addの11ビット、チップアドレスの3ビットおよびバンクアドレスの4ビットの計18ビットで特定される。従って、ホストコンピュータ30は、図8に示す不良ビット線BLの管理フォーマットを、最大218個管理する。
 図9に示す不良ワード線WLについても、不良ビット線BLと同様に考えてよい。図9では、この1ページアドレスによって指定される320×8本のワード線WLのうち、ライン不良となっているエラーセルMCerrがentry_WL0~entry_WL55として登録される。entry_WL0~entry_WL55は、エラーセルMCerrのビットポジションアドレスBit_posiを示す。コントローラ10は、ライン不良が検出されると、entry_WL0、entry_WL1、entry_WL2・・・のように、順次、不良ビットのビットポジションアドレスBit_posiを登録する。図9の例では、56個のエラーセルMCerrを登録することができる。即ち、各ページアドレスによって指定される320×8本のワード線WLのうち、56本までの不良ワード線WLを登録することができる。
 尚、図7に示すページアドレスの例において、或るページのワード線WLは、ワード線アドレスWL_addの13ビット、チップアドレスの3ビットおよびバンクアドレスの4ビットの計20ビットで特定される。従って、ホストコンピュータ30は、図9に示す不良ワード線WLの管理フォーマットを、最大220個管理する。
 図10および図11は、不良ビット線のアドレス情報および不良ワード線のアドレス情報の具体例を示す表である。図10および図11の右側には、ビット線BLおよびワード線WLのページアドレスが示されている。図10および図11の左側には、或るページの不良ビット線および不良ワード線のビットポジションアドレスが示されている。
 例えば、図10では、ビット線アドレス(1)の不良ビット線のビットポジションアドレスBit_posi(i)(i=0~55)が示されている。この例では、Bit_posi(0)、Bit_posi(1)の2つのビットがライン不良として登録されている。Bit_posi(i)(i=2~55)は、未登録である。即ち、このページでは、2本のビット線BLが不良ビット線となっていることが分かる。
 また、Bit_posi(0)およびBit_posi(1)のバリッドフラグVFLが“1”であるので、Bit_posi(0)およびBit_posi(1)は、不良ビット線のアドレス情報として有効に登録されていることが分かる。一方、Bit_posi(0)のアップデートフラグUFLが“0”であり、Bit_posi(1)のアップデートフラグUFLが“1”である。従って、Bit_posi(0)のパッチデータは更新済みであるが、Bit_posi(1)のパッチデータはまだ更新されていないことが分かる。従って、読み出し動作において、ビットポジションアドレスBit_posi(0)に示されるユーザデータは用いず、それに対応するパッチデータが用いられる。一方、ビットポジションアドレスBit_posi(1)に示されるユーザデータはECCによって訂正され、パッチデータは用いられない。
 例えば、図11では、ワード線アドレス(1)の不良ビット線のビットポジションアドレスBit_posi(j)(j=0~55)が示されている。この例では、Bit_posi(0)、Bit_posi(1)の2つのビットがライン不良として登録されている。Bit_posi(i)(i=2~55)は、未登録である。即ち、このページでは、2本のワード線WLが不良ビット線となっていることが分かる。
 また、Bit_posi(0)およびBit_posi(1)のバリッドフラグVFLが“1”であるので、Bit_posi(0)およびBit_posi(1)は、不良ビット線のアドレス情報として有効に登録されていることが分かる。一方、Bit_posi(0)のアップデートフラグUFLが“0”であり、Bit_posi(1)のアップデートフラグUFLが“1”である。従って、Bit_posi(0)のパッチデータは更新済みであるが、Bit_posi(1)のパッチデータはまだ更新されていないことが分かる。従って、読み出し動作において、ビットポジションアドレスBit_posi(0)に示されるユーザデータは用いず、それに対応するパッチデータが用いられる。一方、ビットポジションアドレスBit_posi(1)に示されるユーザデータはECCによって訂正され、パッチデータは用いられない。
 図12は、図5のページデータ内のパッチデータの構成例を示す概念図である。パッチデータは、例えば、56ビット準備されており、各ビットが不良メモリセルMCに格納すべき値を格納する。即ち、半導体記憶装置1は、1ページについて、ライン不良による56個のエラーセルMCerrのビットデータを、エラーセルMCerr(ビット)ごとにパッチデータとして格納することができる。ライン不良が検出された場合、その不良ビット線または不良ワード線のビットポジションアドレスで示されるメモリセルMCはマスクされ、書き込みデータは冗長部のパッチデータ領域に書き込まれる。このとき、例えば、不良ビット線のデータは、パッチデータのうち最下位ビットLSBから上位ビットへ向かって格納されていく。一方、不良ワード線のデータは、パッチデータのうち最上位ビットMSBから下位ビットへ向かって格納されていく。これにより、登録済みのパッチデータはパッチデータ領域の両端部に格納され、未使用の空き状態のビットはパッチデータ領域の中心部に集中させることができる。このように、不良ビット線および不良ワード線を独立に登録することによって、アップデートフラグUFLが“1”のビットは、パッチデータ領域の中心部に集中するため、アップデートフラグUFLが“0”のパッチデータを適用することが容易になる。尚、不良ビット線と不良ワード線との交点に対応するメモリセルMCを含むページでは、不良ビット線および不良ワード線の両方に対応して同一パッチデータが重複して格納される。この場合、パッチデータ領域は、同一のエラーセルMCerrについて下位側と上位側の2ビットを費やしてしまうが、特に問題は無い。
(書き込み動作)
 次に、本実施形態による半導体記憶装置1の書き込み動作を説明する。
 図13は、データ書き込み動作の一例を示すフロー図である。
 まず、コントローラ10がライトコマンドおよびライトアドレスをホストコンピュータ30から受け取る。コントローラ10は、ライトアドレスに不良ラインが含まれ、マスクデータが設定されているか否かを判断する(S100)。マスクデータの設定は、図14を参照して後述する。
 マスクデータが設定されている場合(S100のYES)、コントローラ10は、マスクコマンドを発行し、ライトアドレスのビットポジションアドレスBit_posiに従ったメモリセルMC(エラーセルMCerr)をマスクする(S110)。
 次に、コントローラ10は、ライトコマンドを発行し、書き込みデータの書き込みを実行する(S120)。このとき、マスクされていないメモリセルMCには、ライトアドレスのビットポジションアドレスBit_posiに従ったメモリセルMCにデータが書き込まれる。一方、マスクされているエラーセルMCerrには、データは書き込まれないため、この書込みデータは冗長部のパッチデータ領域にパッチデータを生成して書き込まれる。
 次に、コントローラ10は、ベリファイリードを実行し、書き込まれたデータを検証する(S130)。マスクされていないメモリセルMCのデータがベリファイをパスした場合(S130のYES1)、そのままデータの書き込みは完了する。
 ベリファイにフェイルしたビットデータは、再度、ステップS120~S130を実行して書き込みを行ってもよい。あるいは、不良ラインの検出を行い、不良ビット線と不良ワード線のアドレス情報の更新を行う。
(マスクデータおよびパッチデータの生成)
 書き込み対象のページに不良ラインが検出された場合、不良ビット線または不良ワード線のアドレス情報が図8~図11に示すように登録される。このとき、バリッドフラグVFLは有効な不良ラインのアドレス情報として、“1”となる。一方、パッチデータはまだ更新されていないので、アップデートフラグUFLは、“1”である。
 図14は、不良ラインのマスクデータおよびパッチデータの生成動作を示すフロー図である。書き込み対象のページアドレスに対応するマスクデータおよびパッチデータを初期化する。ホストコンピュータ30は、不良ビット線のアドレス情報および不良ワード線のアドレス情報を抽出する(S10、S11)。
 次に、コントローラ10は、不良ビット線のアドレス情報について、図8に示すentry_BL(i)のビットポジションアドレスBit_posi(i)のバリッドフラグVFLが“0(無効)”であるか、“1(有効)”であるかを調べる。例えば、最初に、i=0として(S20)、ビットポジションアドレスBit_posi(0)のバリッドフラグVFLを調べる(S30)。
 エントリーentry_BL(0)のバリッドフラグVFLが“1(有効)”である場合、即ち、不良ビット線として登録されている場合(S30のNO)、ビットポジションアドレスBit_posi(0)に位置するメモリセルMCには、マスクデータが生成される(S40)。マスクデータは、ビットポジションアドレスBit_posi(0)で示されるメモリセルMCに対応するマスク値である。例えば、マスク値が“0”である場合、そのメモリセルMCにはマスクが設定されず、データが書き込まれる。マスク値が“1”である場合、そのメモリセルMCにはマスクが設定され、データは書き込まれない。
 さらに、コントローラ10は、書き込みデータからビットポジションアドレスBit_posi(0)に対応するデータを抽出し、そのデータをパッチデータとして生成する(S50)。パッチデータは、本来、ビットポジションアドレスBit_posi(0)で示されるメモリセルMCに書き込むべきデータであるが、メモリセルMCがエラーセルであるので、図5に示す冗長部のパッチデータ領域に登録される。パッチデータの書き込みは、他のデータの書き込み時に一緒に書き込まれるので、この時点で生成されたマスクデータおよびパッチデータは、コントローラ10に一時的に格納される。
 バリッドフラグVFLが“0”である場合、即ち、不良ビット線として登録されていない場合、(S30のYES)、ビットポジションアドレスBit_posi(0)に位置するメモリセルMCには、マスクデータおよびパッチデータは生成されない。この場合、ビットポジションアドレスBit_posi(0)が示すメモリセルMCに、データが書き込まれる。
 次に、ホストコンピュータ30は、iが55に達したか否かを調べる(S60)。iが55未満である場合(S60のNO)、ホストコンピュータ30は、iを+1だけインクリメントして(S70)、ステップS30~S60を繰り返す。このマスクデータおよびパッチデータの生成は、iが55に達するまで全てのエントリーentry_BL(i)に対して実行される。iが55に達すると(S60のYES)、マスクデータおよびパッチデータの生成は終了する。
 ステップS20~S50と並行して、ホストコンピュータ30は、不良ワード線のアドレス情報について、図9に示すentry_WL(j)(j=0~55)のバリッドフラグVFLが“0(無効)”であるか、“1(有効)”であるかを調べる。例えば、最初に、j=0として(S21)、ビットポジションアドレスBit_posi(0)のバリッドフラグVFLを調べる(S31)。
 エントリーentry_WL(0)のバリッドフラグVFLが“1(有効)”である場合、即ち、不良ビット線として登録されている場合(S31のNO)、ビットポジションアドレスBit_posi(0)に位置するメモリセルMCには、マスクデータが生成される(S41)。マスクデータは、ビットポジションアドレスBit_posi(0)で示されるメモリセルMCに対応するマスク値である。例えば、マスク値が“0”である場合、そのメモリセルMCにはマスクが設定されず、データが書き込まれる。マスク値が“1”である場合、そのメモリセルMCにはマスクが設定され、データは書き込まれない。
 さらに、ホストコンピュータ30は、書き込みデータからビットポジションアドレスBit_posi(0)に対応するデータを抽出し、そのデータをパッチデータとして生成する(S51)。パッチデータは、本来、ビットポジションアドレスBit_posi(0)で示されるメモリセルMCに書き込むべきデータであるが、メモリセルMCがエラーセルであるので、図5に示す冗長部のパッチデータ領域に登録される。パッチデータの書き込みは、他のデータの書き込み時に一緒に書き込まれるので、生成されたマスクデータおよびパッチデータは、コントローラ10に一時的に格納される。
 バリッドフラグVFLが“0”である場合、即ち、不良ワード線として登録されていない場合、(S31のYES)、ビットポジションアドレスBit_posi(0)に位置するメモリセルMCには、マスクデータおよびパッチデータは生成されない。
 次に、ホストコンピュータ30は、jが55に達したか否かを調べる(S61)。jが55未満である場合(S61のNO)、ホストコンピュータ30は、jを+1だけインクリメントして(S71)、ステップS31~S61を繰り返す。このマスクデータおよびパッチデータの生成は、jが55に達するまで全てのエントリーentry_WL(j)に対して実行される。jが55に達すると(S61のYES)、マスクデータおよびパッチデータの生成は終了する。
 尚、ステップS11~S71は、ステップS10~S70と同時並行して実行してもよく、その前後で実行してもよい。
(読み出し動作)
 次に、本実施形態による半導体記憶装置1の読み出し動作を説明する。
 図15は、データ読み出し動作の一例を示すフロー図である。
 まず、コントローラ10がリードコマンドおよびリードアドレスをホストコンピュータ30から受け取る(S200)。
 次に、コントローラ10は、ECCによって読み出しデータを訂正する(S205)。エラービット数が訂正可能なエラービット数(例えば、30ビット)より少ない場合、ECCによって読み出しデータは訂正される(S210のYES)。この場合、コントローラ10は、ECCによって訂正済みのデータを、ホストコンピュータ30へ出力する。このように、コントローラ10は、データを読み出し時にまずECC訂正を行い、訂正可能であれば読み出し処理は完了する。これにより、読み出し動作にかかる時間を短縮することができる。
 一方、読み出しデータのエラービット数がECCの訂正能力(例えば、30ビット)を越えていた場合、読み出しデータの訂正は失敗する(S210のNO)。この場合、コントローラ10は、リードアドレスが、不良ラインのアドレス情報を含むか否かを調べる。また、コントローラ10は、その不良ラインのアドレス情報に対応するパッチデータが更新されているか否か(UFL=0であるか)を調べる(S220)。リードアドレスが不良ラインのビットデータを含むか否かは、リードアドレスが図8~図11の不良ビット線または不良ワード線のアドレス情報として登録されたアドレス情報を含むか否かを調べればよい。このステップS220のより詳細な動作は、図16を参照して後で説明する。
 リードアドレスが不良ラインに該当し、かつ、パッチデータが更新されている場合(S220のYES)、不良ワード線のアドレス情報で指定されたエラーセルMCerrに代わり、そのアドレス情報に対応する冗長部のパッチデータを読み出しデータに適用する(S230)。
 一方、リードアドレスが不良ラインに該当せず、あるいは、リードアドレスが不良ラインに該当してもパッチデータが更新されていない場合(S220のNO)、パッチデータは適用しないこともできる(S260)。このように、更新済みのパッチデータのみを読み出しデータに適用し、未更新のパッチデータについて読み出しデータに適用しない。その場合も、読み出しデータに含まれるエラービット数がECC訂正可能ビット数以下であれば、ECCを用いて訂正可能である。
 ステップ230でパッチデータが適用された後、再度ECCによってパッチ後の読み出しデータを訂正する(S240)。パッチ後のエラービット数がECCの訂正可能ビット数以下の場合、読み出しデータは訂正される(S250のYES)。この場合、コントローラ10は、ECC訂正後のデータをホストコンピュータ30へ出力する。
 一方、ステップ230でパッチデータが適用された後でも、エラービット数がECCの訂正可能ビット数以上である場合、読み出しデータは訂正不可能である(S250のNO)。この場合、コントローラ10は、読み出しエラーとする(S260)。
 尚、上述のとおり、不良ラインがあり、パッチデータが更新されている場合、読み出しデータには、その誤りビットにはパッチデータが適用される。一方、不良ラインがあってもパッチデータが更新されていない場合には、その誤りビットにはパッチ―データは適用されず、読み出したデータがそのまま使用される。
 このように、本実施形態によれば、読み出しデータは、ECCの訂正可能ビット数を越えるエラービットを含む場合に、ライン不良のビットデータをパッチデータでパッチ(補正)した上で、ECCで訂正される。よって、ECCの訂正可能ビット数を越えるエラービットを訂正することが可能になる。また、本実施形態による半導体記憶装置は、ECCで訂正可能な場合には、読み出しデータをECCによって訂正し、ECCで訂正できない場合に、読み出しデータにパッチデータを適用した上でECCを実行する。これにより、読出し性能を維持しつつ、訂正能力を強化することができる。
(パッチデータの適用動作)
 図16は、読み出し動作において不良ラインのビットデータに対してパッチデータを適用する動作を示すフロー図である。ホストコンピュータ30は、不良ビット線のアドレス情報および不良ワード線のアドレス情報を抽出する(S310、S311)。
 次に、コントローラ10は、不良ビット線のアドレス情報について、図8に示すentry_BL(i)のビットポジションアドレスBit_posi(i)のバリッドフラグVFLが“0(無効)”であるか、“1(有効)”であるかを調べる。尚且つ、コントローラ10は、アップデートフラグUFLが“1(未更新)”であるか、“0(更新済み)”であるかを調べる。例えば、最初に、i=0として(S320)、entry_BL(0)のビットポジションアドレスBit_posi(0)のバリッドフラグVFLおよびアップデートフラグUFLを調べる(S330)。
 バリッドフラグVFLが“1(有効)”であり、かつ、アップデートフラグUFLが“0(更新済み”である場合、即ち、不良ビット線に対して有効なパッチデータが登録されている場合(S330のNO)、パッチデータが適用される。即ち、コントローラ10は、ビットポジションアドレスBit_posi(i)に位置するメモリセルMCのデータを読み出しデータに適用せず、それに代わり、ビットポジションアドレスBit_posi(i)に対応するパッチデータを適用する。このとき、ビットポジションアドレスBit_posi(i)が示すビット位置を算出し(S340)、そのビット位置にパッチデータを反映する(S350)。これにより、読み出しデータのうちライン不良のビットデータにパッチデータ(正しい値)が適用される。
 バリッドフラグVFLが“0”あるいはアップデートフラグUFLが“1”である場合、即ち、不良ビット線として登録されていない、あるいは、パッチデータが更新されていない場合、(S330のYES)、パッチデータは適用されない。即ち、コントローラ10は、ビットポジションアドレスBit_posi(0)で示されるメモリセルMCから読み出したデータを使用する。
 次に、コントローラ10は、iが55に達したか否かを調べる(S360)。iが55未満である場合(S360のNO)、コントローラ10は、iを+1だけインクリメントして(S370)、ステップS330~S360を繰り返す。このマスクデータの適用動作は、iが55に達するまで実行される。iが55に達すると(S360のYES)、不良ビット線について、ステップS220のパッチデータの適用は終了する。
 ステップS320~S350と並行して、コントローラ10は、不良ワード線のアドレス情報について、図9に示すentry_WL(j)のバリッドフラグVFLが“0(無効)”であるか、“1(有効)”であるかを調べる。尚且つ、コントローラ10は、entry_WL(j)のアップデートフラグUFLが“1(未更新)”であるか、“0(更新済み)”であるかを調べる。例えば、最初に、j=0として(S321)、entry_WL(j)のビットポジションアドレスBit_posi(j)のバリッドフラグVFLおよびアップデートフラグUFLを調べる(S331)。
 バリッドフラグVFLが“1(有効)”であり、かつ、アップデートフラグUFLが“0(更新済み”である場合、即ち、不良ワード線に対して有効なパッチデータが登録されている場合(S331のNO)、パッチデータが適用される。即ち、ビットポジションアドレスBit_posi(j)に位置するメモリセルMCのデータは読み出しデータに適用せず、それに代わり、ビットポジションアドレスBit_posi(j)に対応するパッチデータを適用する。このとき、コントローラ10は、ビットポジションアドレスBit_posi(j)が示すビット位置を算出し(S341)、そのビット位置にパッチデータを反映する(S351)。これにより、読み出しデータのうちライン不良のビットデータにパッチデータ(正しい値)が適用される。
 バリッドフラグVFLが“0”あるいはアップデートフラグUFLが“1”である場合、即ち、不良ワード線として登録されていない、あるいは、パッチデータが更新されていない場合、(S331のYES)、パッチデータは適用されない。即ち、ビットポジションアドレスBit_posi(j)に位置するメモリセルMCから読み出したデータを使用する。
 次に、コントローラ10は、jが55に達したか否かを調べる(S361)。jが55未満である場合(S361のNO)、ホストコンピュータ30は、jを+1だけインクリメントして(S371)、ステップS331~S361を繰り返す。このマスクデータの適用動作は、jが55に達するまで実行される。jが55に達すると(S361のYES)、不良ワード線について、ステップS220のパッチデータの適用は終了する。
 コントローラ10は、その後、図15のステップS230以降を実行して、ライン不良のデータにパッチデータを適用した読み出しデータをさらにECCで訂正し、ホストコンピュータ30へ出力する。このように、読み出しデータは、パッチデータおよびECCの両方で訂正されて読み出される。
(パッチデータ更新処理)
 次に、本実施形態による半導体記憶装置1のパッチデータ更新処理を説明する。
 図17は、パッチデータ更新処理の一例を示すフロー図である。パッチデータ更新処理は、ライン不良に関連するページデータを一旦読み出して、そのページデータのエラービットのパッチデータを冗長部のパッチデータ領域に書き込み、エラービット以外のデータを元のメモリセルMCへ書き込む処理である。パッチデータが格納されると、そのページの対応するビットポジションアドレスBit_posiのアップデートフラグUFLが“1(未更新)”から“0(更新済み)”へ変更される。
 1チャネルのページは、例えば、1バンクに含まれる256個のタイルのそれぞれから1ビットずつ選択されたビットデータで構成される。従って、ライン不良のエラーセルMCerrのデータは、個々別々のページに亘って散らばって属する。パッチデータ更新処理は、ライン不良に関連する不良ワード線および不良ビット線を共有する全ページにアクセスして更新する必要がある。
 そこで、パッチデータ更新処理は、ホストコンピュータ30から半導体記憶装置1へのアクセスの無いアイドル期間中にバックグラウンドで実行される。これにより、パッチデータの更新は、ユーザに意識されることなく実行され得る。
 パッチデータ更新処理では、まず、不良ビット線のアドレス情報を固定し(S400)、或るワード線のページデータを読み出す(S410)。このとき、ページアドレスに従ってユーザデータからデータを読み出し、読み出しデータから新しいパッチデータを生成する(S420)。この際、上記読み出し動作に従って、ECC訂正などが適用される。
 次に、パッチデータを含むページデータを書き戻す(S430)。このとき、上記書き込み動作と同様に、パッチデータは、ビットポジションアドレスBit_posiに関連付けられたパッチデータ領域へ書き込まれる。その他のデータは、ビットポジションアドレスBit_posiに示されたユーザデータに書き込まれる。
 次に、未更新の他のワード線がある場合(S450のYES)、ワード線のアドレス情報を逐次変更して、ステップS410~S430を再度実行する。未更新のワード線がなくなるまで、ステップS410~S430は繰り返される。
 不良ビット線に対して全ワード線のパッチデータの更新が終了すると(S450のNO)、不良ワード線のアドレス情報を固定し(S401)、或るビット線を含むページデータを読み出す(S411)。このとき、ページアドレスに従ってユーザデータからデータを読み出し、読み出しデータから新しいパッチデータを生成する(S421)。この際、上記読み出し動作に従って、ECC訂正などが適用される。
 次に、パッチデータを含むページデータを書き戻す(S431)。このとき、パッチデータは、ビットポジションアドレスBit_posiに関連付けられたパッチデータ領域へ書き込まれる。その他のデータは、ビットポジションアドレスBit_posiに示されたユーザデータに書き込まれる。
 次に、未更新の他のビット線がある場合(S451のYES)、ビット線のアドレス情報を逐次変更して、ステップS411~S431を再度実行する。未更新のビット線がなくなるまで、ステップS411~S431は繰り返される。
 不良ワード線に対して全ビット線のパッチデータの更新が終了すると(S451のNO)、その不良ビット線および不良ワード線に関連するビットポジションアドレスBit_posiに含まれるアップデートフラグUFLが“0”へ更新される(S460)。
 他の不良ラインがある場合、他の不良ラインについて、ステップS400~S460が実行される。
 パッチデータの更新は、或るライン不良に関連する全ページ(例えば、10239ページ)の書き込みが必要であり、全ページのパッチデータが更新されたらアップデートフラグUFLを“0”にクリアする。また、パッチデータ更新処理は、ホストコンピュータ30からのアクセスのないアイドル期間中にバックグラウンド処理として実行される。
 ライン不良を検出した際に、そのライン不良に関連するページアドレスにアップデートフラグUFLを付加し、パッチデータが未更新のフラグUFLと更新済みのフラグUFLとを区別可能にしている。これにより、パッチデータ更新処理において、更新が必要なパッチデータが判別できる。パッチデータ更新処理において、更新済みのパッチデータは、すでに書き込みが実行されたページのパッチデータである。このように、未更新のフラグUFLと更新済みのフラグUFLとを区別可能にすることによって、パッチデータ更新処理の時間を短縮することができる。また、未更新のフラグUFLと更新済みのフラグUFLとを区別可能にすることによって、読み出し時に、更新済みのパッチデータのみ読み出しデータに適用することもできる。
 尚、アップデートフラグUFLが“0”にクリアされるまで、ライン不良のデータは、ECCによって訂正される。即ち、アップデートフラグUFLが“0”にクリアされるまでの巡回中にアクセスがあった場合、ライン不良のデータは、ECCによって訂正すればよい。
 本明細書に記載された効果はあくまでも例示であって限定されるものではなく、また他の効果があってもよい。
 また、本技術は、以下のような構成を取ることができる。
(1)
 複数の第1配線と、
 前記複数の第1配線に対して交差する複数の第2配線と、
 前記複数の第1配線と前記第2配線との交点に対応して設けられた複数のメモリセルを含むメモリセルアレイと、を備え、
 前記メモリセルアレイは、複数のセル領域に分割されており、
 前記複数のセル領域のそれぞれから得られる少なくとも1ビットずつのデータ群をアクセス単位とし、
 前記メモリセルアレイは、前記複数の第1配線および前記複数の第2配線のうち不良配線に接続された不良メモリセルのデータを、該不良メモリセルが含まれる前記アクセス単位に関連付けて格納する冗長部を含み、
 前記アクセス単位のアドレス情報は、前記不良メモリセルのデータが前記冗長部において更新済みか否かを示す第1フラグを含む、半導体記憶装置。
(2)
 前記冗長部は、前記不良メモリセルのデータを、該不良メモリセルごとに格納する、(1)に記載の半導体記憶装置。
(3)
 前記アドレス情報は、前記不良配線に接続された前記不良メモリセルのアドレス情報を示すビットポジションアドレスを含む、(1)または(2)に記載の半導体記憶装置。
(4)
 前記アドレス情報は、前記ビットポジションアドレスが有効に格納されているか否かを示す第2フラグを含む、(3)に記載の半導体記憶装置。
(5)
 前記第1および第2フラグは、前記ビットポジションアドレスに付加されている、(3)に記載の半導体記憶装置。
(6)
 データ書き込み時に、前記アドレス情報の前記第2フラグが、ビットポジションアドレスが有効に登録されていることを示す場合、前記アドレス情報に対応する前記不良メモリセルをマスクして、前記冗長部にデータを書き込むコントローラをさらに備えた、(4)から(5)のいずれか一項に記載の半導体記憶装置。
(7)
 データ書き込み時に、前記アドレス情報の前記第2フラグが無効である場合、前記アドレス情報に対応する前記メモリセルにデータを書き込むコントローラをさらに備えた、(4)から(6)のいずれか一項に記載の半導体記憶装置。
(8)
 データ読み出し時に、前記アドレス情報の前記第1フラグが前記不良メモリのデータの更新済みを示し、かつ、前記第2フラグが、ビットポジションアドレスが有効に登録されていることを示す場合、前記アドレス情報に対応する前記不良メモリセルのデータに代わり、前記冗長部にある前記アドレス情報に対応するデータを読み出しデータに適用するコントローラをさらに備えた、(4)から(7)のいずれか一項に記載の半導体記憶装置。
(9)
 データ読み出し時に、前記アドレス情報の前記第1フラグが前記不良メモリのデータの未更新を示し、あるいは、前記第2フラグが無効である場合、前記アドレス情報で示される前記メモリセルのデータを読み出すコントローラをさらに備えた、(4)から(5)のいずれか一項に記載の半導体記憶装置。
(10)
 データ読み出し時に、前記コントローラは、前記冗長部にある前記アドレス情報に対応するデータを適用した読み出しデータを、さらに、ECC(Error-correcting code)で訂正する、(8)または(9)に記載の半導体記憶装置。
(11)
 前記コントローラは、前記読み出しデータをECCで訂正不可能だった場合に、前記冗長部にある前記アドレス情報に対応するデータを適用し再訂正を行う、(10)に記載半導体記憶装置。
(12)
 前記不良配線が発生した場合、前記コントローラは、前記配線不良に対応する前記第1配線のアドレス情報を固定したまま、前記第2配線のアドレス情報を変更しながら、前記冗長部内において前記アドレス情報に関連付けられたパッチデータ領域へデータを書き込み、
 前記配線不良に対応する前記第2配線のアドレス情報を固定したまま、前記第1配線のアドレス情報を変更しながら、前記冗長部内において前記アドレス情報に関連付けられたパッチデータ領域へデータを書き込み、
 前記アクセス単位全体の前記パッチデータ領域へのデータ書き込みが終了した場合に、該アクセス単位全体に対応する前記アドレス情報の前記第1フラグを更新済みに変更する、(6)から(11)のいずれか一項に記載の半導体記憶装置。
(13)
 前記配線不良は、前記第1配線と前記第2配線とが短絡する不良である、(1)から(12)のいずれか一項に記載の半導体記憶装置。
 尚、本開示は、上述した実施形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
10 コントローラ、20 メモリチップ群、30 ホストコンピュータ、21 メモリチップ、BL ビット線、WL ワード線、MCA メモリセルアレイ、MC メモリセル、Line_add ラインアドレス、WL_add ワード線アドレス、BL_add ビット線アドレス、Bank_add バンクアドレス、Die_add チップアドレス、Bit_posi ビットポジションアドレス、VFL バリッドフラグ、UFL アップデートフラグ

Claims (13)

  1.  複数の第1配線と、
     前記複数の第1配線に対して交差する複数の第2配線と、
     前記複数の第1配線と前記第2配線との交点に対応して設けられた複数のメモリセルを含むメモリセルアレイと、を備え、
     前記メモリセルアレイは、複数のセル領域に分割されており、
     前記複数のセル領域のそれぞれから得られる少なくとも1ビットずつのデータ群をアクセス単位とし、
     前記メモリセルアレイは、前記複数の第1配線および前記複数の第2配線のうち不良配線に接続された不良メモリセルのデータを、該不良メモリセルが含まれる前記アクセス単位に関連付けて格納する冗長部を含み、
     前記アクセス単位のアドレス情報は、前記不良メモリセルのデータが前記冗長部において更新済みか否かを示す第1フラグを含む、半導体記憶装置。
  2.  前記冗長部は、前記不良メモリセルのデータを該不良メモリセルごとに格納する、請求項1に記載の半導体記憶装置。
  3.  前記アドレス情報は、前記不良配線に接続された前記不良メモリセルのアドレス情報を示すビットポジションアドレスを含む、請求項1に記載の半導体記憶装置。
  4.  前記アドレス情報は、前記ビットポジションアドレスが有効に格納されているか否かを示す第2フラグを含む、請求項3に記載の半導体記憶装置。
  5.  前記第1および第2フラグは、前記ビットポジションアドレスに付加されている、請求項4に記載の半導体記憶装置。
  6.  データ書き込み時に、前記アドレス情報の前記第2フラグが、前記不良メモリセルのビットポジションアドレスが有効に登録されていることを示す場合、前記アドレス情報に対応する前記不良メモリセルをマスクして、前記冗長部にデータを書き込むコントローラをさらに備えた、請求項4に記載の半導体記憶装置。
  7.  データ書き込み時に、前記アドレス情報の前記第2フラグが無効である場合、前記アドレス情報に対応する前記メモリセルにデータを書き込むコントローラをさらに備えた、請求項4に記載の半導体記憶装置。
  8.  データ読み出し時に、前記アドレス情報の前記第1フラグが前記不良メモリのデータの更新済みを示し、かつ、前記第2フラグが、前記不良メモリセルのビットポジションアドレスが有効に登録されていることを示す場合、前記アドレス情報に対応する前記不良メモリセルのデータに代わり、前記冗長部にある前記アドレス情報に対応するデータを読み出しデータに適用するコントローラをさらに備えた、請求項4に記載の半導体記憶装置。
  9.  データ読み出し時に、前記アドレス情報の前記第1フラグが前記不良メモリのデータの未更新を示し、あるいは、前記第2フラグが無効である場合、前記アドレス情報で示される前記メモリセルのデータを読み出しデータに適用するコントローラをさらに備えた、請求項4に記載の半導体記憶装置。
  10.  データ読み出し時に、前記コントローラは、前記冗長部にある前記アドレス情報に対応するデータを適用した読み出しデータを、さらに、ECC(Error-correcting code)で訂正する、請求項8に記載の半導体記憶装置。
  11.  前記コントローラは、前記読み出しデータをECCで訂正不可能だった場合に、前記冗長部にある前記アドレス情報に対応するデータを適用する、請求項10に記載半導体記憶装置。
  12.  前記不良配線が発生した場合、前記コントローラは、前記配線不良に対応する前記第1配線のアドレス情報を固定したまま、前記第2配線のアドレス情報を変更しながら、前記冗長部内において前記アドレス情報に関連付けられたパッチデータ領域へデータを書き込み、
     前記配線不良に対応する前記第2配線のアドレス情報を固定したまま、前記第1配線のアドレス情報を変更しながら、前記冗長部内において前記アドレス情報に関連付けられたパッチデータ領域へデータを書き込み、
     前記アクセス単位全体の前記パッチデータ領域へのデータ書き込みが終了した場合に、該アクセス単位全体に対応する前記アドレス情報の前記第1フラグを更新済みに変更する、請求項6に記載の半導体記憶装置。
  13.  前記配線不良は、前記第1配線と前記第2配線とが短絡する不良である、請求項1に記載の半導体記憶装置。
PCT/JP2021/019859 2020-06-25 2021-05-25 半導体記憶装置 WO2021261157A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022532435A JPWO2021261157A1 (ja) 2020-06-25 2021-05-25

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-109955 2020-06-25
JP2020109955 2020-06-25

Publications (1)

Publication Number Publication Date
WO2021261157A1 true WO2021261157A1 (ja) 2021-12-30

Family

ID=79282448

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/019859 WO2021261157A1 (ja) 2020-06-25 2021-05-25 半導体記憶装置

Country Status (2)

Country Link
JP (1) JPWO2021261157A1 (ja)
WO (1) WO2021261157A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756816A (ja) * 1993-08-20 1995-03-03 Yokogawa Electric Corp メモリの制御装置
JPH11102599A (ja) * 1997-09-29 1999-04-13 Nec Field Service Ltd 半導体記憶装置
JP2011108306A (ja) * 2009-11-16 2011-06-02 Sony Corp 不揮発性メモリおよびメモリシステム
WO2012001944A1 (ja) * 2010-06-29 2012-01-05 パナソニック株式会社 不揮発性記憶装置及びその駆動方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0756816A (ja) * 1993-08-20 1995-03-03 Yokogawa Electric Corp メモリの制御装置
JPH11102599A (ja) * 1997-09-29 1999-04-13 Nec Field Service Ltd 半導体記憶装置
JP2011108306A (ja) * 2009-11-16 2011-06-02 Sony Corp 不揮発性メモリおよびメモリシステム
WO2012001944A1 (ja) * 2010-06-29 2012-01-05 パナソニック株式会社 不揮発性記憶装置及びその駆動方法

Also Published As

Publication number Publication date
JPWO2021261157A1 (ja) 2021-12-30

Similar Documents

Publication Publication Date Title
US7545689B2 (en) Method and apparatus for improving yield in semiconductor devices by guaranteeing health of redundancy information
US10185622B2 (en) Memory device having address and command selectable capabilities
US11163640B2 (en) Semiconductor memory devices, memory systems and methods of controlling of repair of semiconductor memory devices
JP6612392B1 (ja) 半導体記憶装置
US6590816B2 (en) Integrated memory and method for testing and repairing the integrated memory
US7996736B2 (en) Bad page marking strategy for fast readout in memory
US8051339B2 (en) Data preserving method and data accessing method for non-volatile memory
US20060265636A1 (en) Optimized testing of on-chip error correction circuit
US6973604B2 (en) Allocation of sparing resources in a magnetoresistive solid-state storage device
KR20020032340A (ko) 플래시 메모리 내의 결함 관리 방법
US11205498B1 (en) Error detection and correction using machine learning
EP3770764B1 (en) Method of controlling repair of volatile memory device and storage device performing the same
JP4349532B2 (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
US8908436B2 (en) Method and device for storing and reading reliable information in a NAND array
JP2000311497A (ja) 半導体記憶装置
US7174477B2 (en) ROM redundancy in ROM embedded DRAM
US8995217B2 (en) Hybrid latch and fuse scheme for memory repair
US11216338B2 (en) Storage device that performs state shaping of data
WO2021261157A1 (ja) 半導体記憶装置
JP7273668B2 (ja) 半導体記憶装置
WO2021029143A1 (ja) 半導体記憶装置及び該装置における不良メモリセルに対するエラー処理方法
JP2009199242A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11815997B2 (en) Memory controllers, memory systems, and memory modules
KR102635260B1 (ko) 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작 방법
TW586120B (en) Management system for defective memory

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022532435

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21828497

Country of ref document: EP

Kind code of ref document: A1