KR20180041473A - Method And Computer Program of Implementing Virtual NAND Flash - Google Patents

Method And Computer Program of Implementing Virtual NAND Flash Download PDF

Info

Publication number
KR20180041473A
KR20180041473A KR1020160133682A KR20160133682A KR20180041473A KR 20180041473 A KR20180041473 A KR 20180041473A KR 1020160133682 A KR1020160133682 A KR 1020160133682A KR 20160133682 A KR20160133682 A KR 20160133682A KR 20180041473 A KR20180041473 A KR 20180041473A
Authority
KR
South Korea
Prior art keywords
nand flash
bit error
cycle
error rate
measurement data
Prior art date
Application number
KR1020160133682A
Other languages
Korean (ko)
Other versions
KR101909929B1 (en
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 KR1020160133682A priority Critical patent/KR101909929B1/en
Publication of KR20180041473A publication Critical patent/KR20180041473A/en
Application granted granted Critical
Publication of KR101909929B1 publication Critical patent/KR101909929B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers

Landscapes

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

Abstract

Disclosed are a method for implementing a virtual NAND flash and a computer program recording the same. According to an embodiment of the present invention, in the method for implementing a virtual NAND flash in which a bit error occurs according to an increase in a program/erase (P/E) cycle, provided is the method for implementing a virtual NAND flash, which includes the steps of: collecting measurement data to measure a bit error rate according to the P/E cycle of an actual NAND flash; and inserting the bit error into the virtual NAND flash based on the measurement data. Accordingly, the present invention can provide a test environment without requiring NAND flash hardware.

Description

가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램{Method And Computer Program of Implementing Virtual NAND Flash}TECHNICAL FIELD [0001] The present invention relates to a method of implementing a virtual NAND flash,

본 발명은 가상 낸드플래시의 구현 방법에 관한 것이다. 보다 상세하게는 실제 낸드플래시와 유사한 비트 오류 발생이 가능한 가상 낸드플래시를 구현하기 위한 방법 및 이를 기록한 컴퓨터 프로그램에 관한 것이다.The present invention relates to a method of implementing a virtual NAND flash. And more particularly, to a method for implementing a virtual NAND flash capable of generating a bit error similar to a real NAND flash and a computer program recording the same.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다. The contents described in this section merely provide background information on the present embodiment and do not constitute the prior art.

낸드플래시(NAND flash) 메모리는 비휘발성이며, 전력 소모가 낮고, 충격에 강하며, 사이즈가 작고, 랜덤 I/O가 가능하다는 장점 때문에, 많은 임베디드 시스템에서 저장 매체로 사용되고 있다. NAND flash memory is used as a storage medium in many embedded systems because of its nonvolatile nature, low power consumption, strong shock resistance, small size, and random I / O capability.

낸드플래시에서 데이터를 저장하는 최소 단위인 셀(cell)은 플로팅 게이트 트랜지스터(Floating-gate transistor)로 구성된다. 낸드플래시 메모리는 이러한 셀을 직렬로 연결한 구조를 갖는다. 플로팅 게이트 트랜지스터에 전압을 인가하여 전자를 채워 넣는 것이 데이터의 쓰기(Program) 작업, 전자를 비우는 것이 지우기(Erase) 작업에 해당한다. 읽기(Read) 작업은 트랜지스터의 전압을 측정하는 방식으로 이루어진다. 낸드플래시 메모리는 트랜지스터에 채워진 전자의 양을 이용해 이진 데이터를 표현한다. 하나의 셀의 한 비트를 저장하는 SLC(Single-Level-Cell) 방식에서부터, 레벨을 늘려 하나의 셀에 세비트를 저장하는 TLC(Triple-Level-Cell) 방식까지 발전하였다. TLC방식은 SLC방식과 비교해 단위 면적 용량이 4배에 해당한다.The cell, which is the minimum unit for storing data in the NAND flash, is composed of a floating-gate transistor. The NAND flash memory has a structure in which such cells are connected in series. Applying the voltage to the floating gate transistor to fill the electrons corresponds to the program operation of the data, and the emptying of the electrons corresponds to the erase operation. The read operation is performed by measuring the voltage of the transistor. NAND flash memory represents binary data using the amount of electrons filled in the transistor. It has evolved from single-level-cell (SLC), which stores one bit of a cell, to triple-level-cell (TLC), which increases the level to store three bits in one cell. The TLC method has a unit area capacity four times that of the SLC method.

그러나 낸드플래시의 물리적 특성상 이러한 단일 셀 다중 전압 레벨을 이용한 방식에는 용량 증가에 따른 문제점이 존재한다. 하나의 셀을 복수의 전압 레벨로 나누다 보니 전압 레벨 간 명확한 구분이 되지 못하고, 반복된 읽기 또는 쓰기 작업으로 셀 간의 간섭이 일어나 비트 오류(bit error)가 발생하기도 한다. 이러한 비트 오류는 낸드플래시 기반 저장 매체의 수명에 영향을 준다.However, due to the physical characteristics of the NAND flash, there is a problem with the capacity increase in the method using such a single cell multi-voltage level. When a cell is divided into a plurality of voltage levels, it is impossible to clearly distinguish between voltage levels, and a bit error may occur due to interference between cells due to repeated read or write operations. This bit error affects the lifetime of the NAND flash-based storage medium.

메모리 영역은 시스템 내에서 차지하는 비중이 크고, 시스템의 안정성과 신뢰도에 큰 영향을 준다. 따라서, 낸드플래시 메모리의 테스트에 대한 중요성이 커지고 있으며, 낸드플래시의 안정성을 높이기 위한 연구가 끊임없이 진행되고 있다. 이러한 연구는 기본적으로 실제 낸드플래시 하드웨어를 이용하여 이루어진다. 실제 하드웨어를 사용한 연구 실험 환경에서는 특정 낸드플래시 테스트 환경에서 다른 낸드플래시 테스트 환경으로의 전환이 어려우며, 병렬적으로 여러 테스트 환경을 구축하는 데에 추가적인 시간과 비용을 필요로 한다.The memory area occupies a large portion in the system and greatly affects the stability and reliability of the system. Therefore, the importance of testing NAND flash memory is growing, and studies are being conducted to increase the stability of NAND flash. These studies are basically done using real NAND flash hardware. In a research lab environment using real hardware, it is difficult to switch from a specific NAND flash test environment to another NAND flash test environment, and it takes additional time and expense to construct multiple test environments in parallel.

본 실시예는, 낸드플래시를 소프트웨어적으로 테스트하는 방법을 제공한다. 낸드플래시와 같이 P/E 사이클(Program/Erase cycle)에 따라 비트 오류가 발생하는 가상 낸드플래시의 구현 방법 및 이를 기록한 컴퓨터 프로그램을 제공하는데 주된 목적이 있다.The present embodiment provides a method of software testing NAND flash. There is provided a method of implementing a virtual NAND flash in which a bit error occurs according to a P / E cycle (Program / Erase cycle), such as NAND flash, and a computer program recording the program.

본 발명의 일 실시예에 의하면, P/E 사이클(Program/Erase cycle)의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서, 실제 낸드플래시의 P/E 사이클에 따른 비트 오류율(bit error rate)을 측정한 측정 데이터를 수집하는 과정 및 측정 데이터를 기반으로, 가상 낸드플래시에 비트 오류를 삽입하는 과정을 포함하는 가상 낸드플래시 구현 방법을 제공한다.According to an embodiment of the present invention, there is provided a method for implementing a virtual NAND flash in which a bit error occurs according to an increase in a program / erase cycle, wherein a bit error rate (bit error rate) The present invention provides a method for implementing a virtual NAND flash including a process of collecting measurement data measuring an error rate and a process of inserting a bit error into a virtual NAND flash based on measurement data.

상기 가상 낸드플래시 구현 방법의 실시예들은 다음의 특징을 하나 이상 더 포함할 수 있다.Embodiments of the virtual NAND flash implementation method may further include one or more of the following features.

본 발명의 다른 실시예에 의하면, 비트 오류를 삽입하는 과정은, 가상 낸드플래시의 페이지에서 쓰기(Program) 작업이 수행되는 경우, 페이지의 지우기(Erase) 횟수 정보를 참조하여, 해당 P/E 사이클에 대한 비트 오류율을 기반으로 비트 오류를 삽입하는 것을 특징으로 한다. According to another embodiment of the present invention, a process of inserting a bit error is performed by referring to erase count information of a page when a program operation is performed on a page of a virtual NAND flash, The bit error rate is inserted based on the bit error rate for the bit error rate.

본 발명의 다른 실시예에 의하면, 비트 오류를 삽입하는 과정은, 쓰기 작업이 이루어지는데 사용되는 버퍼에 비트 플립을 시도하고, 버퍼를 가상 낸드플래시 디바이스의 페이지에 기록하는 것을 특징으로 한다.According to another embodiment of the present invention, a process of inserting a bit error is characterized by attempting bit flip to a buffer used for performing a write operation and writing a buffer to a page of a virtual NAND flash device.

본 발명의 다른 실시예에 의하면, P/E 사이클의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서, 실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집하는 과정, 측정 데이터에서 샘플을 추출하여 P/E 사이클 당 비트 오류율에 대한 확률 모델을 구축하는 과정, 확률 모델을 참조하여, 가상 낸드플래시에서 쓰기 작업이 수행되는 경우, 해당 P/E 사이클에 따른 비트 오류율을 기반으로 비트 오류를 삽입하는 과정, 가상 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정하고, 측정 데이터와 유사성을 비교하는 과정 및 유사성이 일정 수준 이하인 경우, 측정 데이터에서 추가로 샘플을 추출하여 확률 모델을 재구축하는 과정을 포함하는 가상 낸드플래시 구현 방법을 제공한다.According to another embodiment of the present invention, in a virtual NAND flash realization method in which a bit error occurs according to an increase in a P / E cycle, measurement data obtained by measuring a bit error rate according to a P / E cycle of an actual NAND flash is collected A process of constructing a probability model for the bit error rate per P / E cycle by extracting samples from the measurement data and the process data, and referring to the probability model, when a write operation is performed in the virtual NAND flash, The process of inserting bit error based on the error rate, measuring the bit error rate according to the P / E cycle of the virtual NAND flash, comparing the similarity with the measured data, and if the similarity is below a certain level, And reconstructing a probability model by extracting the probability model.

본 실시예에 따르면, 실제 낸드플래시에서 발생하는 비트 오류율을 수집하여 소프트웨어적인 가상 낸드플래시를 구현함으로써, 낸드플래시 하드웨어를 필요로 하지 않는 테스트 환경을 제공할 수 있으며, 테스트 환경의 전환이나 병렬적인 테스트 환경의 구축을 용이하게 하는 효과가 있다.According to the present embodiment, by collecting the bit error rate occurring in the actual NAND flash and implementing the software-like virtual NAND flash, it is possible to provide a test environment that does not require the NAND flash hardware, Thereby facilitating the construction of the environment.

또한, 여러 타입의 낸드플래시에 대해 가상 낸드플래시를 구현함으로써, 다양한 낸드플래시에 대한 테스트 환경을 제공할 수 있는 효과가 있다. In addition, by implementing a virtual NAND flash for various types of NAND flash, it is possible to provide a test environment for various NAND flashes.

도 1은 낸드플래시 메모리의 기본 구조를 개념적으로 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 가상 낸드플래시에서 비트 오류를 삽입하는 방법을 설명한 예시도이다.
도 4는 본 발명의 다른 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 구현된 가상 낸드플래시의 P/E 사이클을 측정하고, 실제 낸드플래시의 P/E 사이클과 비교한 결과이다.
FIG. 1 conceptually shows a basic structure of a NAND flash memory.
2 is a flowchart illustrating a method for implementing a virtual NAND flash according to an embodiment of the present invention.
3 is a diagram illustrating a method of inserting a bit error in a virtual NAND flash according to an embodiment of the present invention.
4 is a flowchart illustrating a method for implementing a virtual NAND flash according to another embodiment of the present invention.
FIG. 5 is a graph illustrating a result of comparing a P / E cycle of a virtual NAND flash implemented according to an embodiment of the present invention with a P / E cycle of an actual NAND flash.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. It should be noted that, in adding reference numerals to the constituent elements of the drawings, the same constituent elements are denoted by the same reference symbols as possible even if they are shown in different drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are intended to distinguish the constituent elements from other constituent elements, and the terms do not limit the nature, order or order of the constituent elements. Throughout the specification, when an element is referred to as being "comprising" or "comprising", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise . In addition, '... Quot ;, " module ", and " module " refer to a unit that processes at least one function or operation, and may be implemented by hardware or software or a combination of hardware and software.

도 1은 낸드플래시 메모리의 기본 구조를 개념적으로 도시한 것이다.FIG. 1 conceptually shows a basic structure of a NAND flash memory.

낸드플래시 메모리는 다수 개의 블록으로 구성되고, 블록은 다수 개의 페이지로 구성된다. 데이터를 저장하는 최소 단위인 셀이 모여 페이지를 구성하며, 데이터의 읽기 및 쓰기 연산은 페이지 단위로 이루어지고, 지우기 연산은 블록 단위로 이루어진다. 낸드플래시 메모리는 그 특성상 한번 쓴 영역에 대해서, 재차 쓰기 연산을 수행하기 위해서는 지우기 연산이 먼저 이루어져야 한다. 이러한 쓰기 및 지우기 과정에서 낸드플래시의 물리적 구조로 인해서 다양한 패턴의 비트 오류가 발생한다. The NAND flash memory is composed of a plurality of blocks, and the block is composed of a plurality of pages. Cells constituting a minimum unit for storing data constitute a page, and data read and write operations are performed on a page basis, and erase operations are performed on a block basis. For NAND flash memory, the erase operation must be performed first in order to perform the write operation again for the once written area. During the writing and erasing process, various patterns of bit error occur due to the physical structure of the NAND flash.

발생 가능한 비트 오류 패턴은 다음과 같다. 리텐션 오류(retention error)는 낸드플래시 메모리의 플로팅 게이트에 데이터를 저장한 뒤 오랜 시간이 지나 전하 누설(charge loss)이 생겨 해당 셀의 데이터가 다른 데이터로 인식되는 경우를 말한다. 시간과 P/E 사이클(Program/Erase cycle)에 의해 좌우되며, 낸드플래시 내 가장 많은 비트 오류를 발생시킨다. 쓰기 간섭 오류(Program interference Error)는 낸드플래시의 공정이 작아지고 셀 밀집도가 높아짐에 따라 쓰기 작업에 관여되는 페이지와 밀접한 셀이 간섭을 받아 플로팅 게이트 내 잔류 전자량이 변하는 경우이다. 또한, P/E 사이클이 증가함에 따라 플로팅 게이트를 둘러싼 산화막에 전자가 축적되어 지우기/읽기 작업시 잔류 전자가 실제 데이터와 상이하게 되며, 반복적인 작업에 의해 이러한 차이가 축적되어 결과적으로 셀의 수명이 다하는 경우에도 비트 오류가 발생한다. The possible bit error patterns are as follows. A retention error refers to a case where data is stored in a floating gate of a NAND flash memory and a charge loss occurs after a long time and data of the corresponding cell is recognized as another data. Time and P / E cycle (program / erase cycle), which causes the most bit errors in the NAND flash. The program interference error is a case where the residual electron quantity in the floating gate changes due to interference of the cell closely related to the write operation as the NAND flash process becomes smaller and the cell density becomes higher. In addition, electrons are accumulated in the oxide film surrounding the floating gate as the P / E cycle increases, so that the residual electrons in the erase / read operation become different from the actual data. Such a difference is accumulated by the repetitive operation, A bit error occurs even if it is done.

이러한 낸드플래시 메모리의 특성을 소프트웨어적으로 구현한 것이 낸드플래시 시뮬레이터이다. 본 발명의 일 실시예에서는 낸드플래시 시뮬레이터로 NANDSim을 이용한다. NANDSim은 리눅스 커널에서 제공하는 낸드플래시 시뮬레이터이다. NANDSim은 가상 낸드플래시에서 페이지 쓰기 작업이 발생하면 해당 페이지가 속한 블록에 대한 지우기 횟수 정보를 가진 노드를 생성하고, 이를 연결리스트를 통해 관리한다. 연결 리스트를 통해 추후 지우기 횟수가 낸드플래시 타입에 따른 P/E 사이클(Program/Erase cycle) 문턱 값을 넘어서면 오류를 발생시키도록 되어 있다. 하지만 실제 낸드플래시는 P/E 사이클의 문턱 값에 도달하기 이전에도 비트 오류가 발생한다. 본 발명의 일 실시예에서는 실제 낸드플래시와 같이 P/E 사이클의 문턱 값에 도달하기 이전이라도 비트 오류를 발생시켜 낸드플래시의 신뢰성 테스트용으로 적합한 가상 낸드플래시 메모리를 구현하는 방법을 제시한다.The NAND flash simulator is a software implementation of the characteristics of the NAND flash memory. In one embodiment of the present invention, NANDSim is used as a NAND flash simulator. NANDSim is a NAND flash simulator provided by the Linux kernel. When a page write operation occurs in a virtual NAND flash, NANDSim creates a node having information on the number of erase operations for the block to which the page belongs, and manages the node through the link list. It is designed to cause an error if the number of erase times exceeds the P / E cycle (program / erase cycle) threshold value according to the NAND flash type. However, the actual NAND flash has a bit error even before reaching the threshold value of the P / E cycle. In an embodiment of the present invention, a method of realizing a virtual NAND flash memory suitable for reliability testing of NAND flash by generating a bit error even before reaching a threshold value of a P / E cycle like an actual NAND flash is presented.

도 2는 본 발명의 일 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a method for implementing a virtual NAND flash according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 가상 낸드플래시에서 비트 오류를 삽입하는 방법을 설명한 예시도이다.3 is a diagram illustrating a method of inserting a bit error in a virtual NAND flash according to an embodiment of the present invention.

실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집한다(S201). 실제 낸드플래시란 물리적으로 존재하는 하드웨어 낸드플래시를 말한다. P/E 사이클이 증가함에 따라 낸드플래시에서 발생하는 비트 오류율의 변화를 페이지 단위로 측정한다. 낸드플래시의 한 블록 내 전체 페이지에 임의로 생성된 데이터를 쓰고 읽은 후 해당 블록을 소거하는 일련의 과정을 반복하면서 읽혀진 데이터와 실제로 요청된 데이터를 비교하는 방법으로 비트 오류율을 측정할 수 있다. 지우기 작업은 블록 단위로 이루어지므로 한 블록 내의 모든 페이지에서 발생하는 비트 오류를 각각 평균하여 이용해 비트 오류율을 측정할 수 있다.Measurement data measuring the bit error rate according to the P / E cycle of the actual NAND flash is collected (S201). A real NAND flash refers to a hardware NAND flash that exists physically. As the P / E cycle increases, the change of the bit error rate occurring in the NAND flash is measured in units of pages. It is possible to measure the bit error rate by comparing the read data with the actually requested data while repeating a series of processes of writing and reading arbitrarily generated data on all pages in one block of the NAND flash and erasing the corresponding block. Since the erase operation is performed on a block-by-block basis, the bit error rate can be measured by averaging bit errors occurring in all pages within one block.

보다 세밀한 낸드플래시 실험 환경을 제공하기 위해 실제 낸드플래시에서 발생하는 비트 오류를 패턴 별로 나누어 데이터를 수집하고 이를 바탕으로 패턴별 적용이 가능한 모델을 구현할 수 있다. In order to provide a more detailed NAND flash test environment, bit errors occurring in actual NAND flash can be divided into patterns and data can be collected and a model capable of applying each pattern according to the collected data can be implemented.

예컨대, P/E 사이클에 따른 상기 실제 낸드플래시를 이루는 각 셀(Cell)의 플로팅 게이트에서 빠져나간 전자량을 이용하여 비트 오류율을 측정하면, 리텐션 오류에 의한 비트 오류 패턴을 파악할 수 있는 가상 낸드플래시를 구현할 수 있다. 또한, 실제 낸드플래시에서 측정을 위한 쓰기 작업이 이루어지는 페이지와 비트 오류가 발생한 셀의 위치의 근접도를 측정한 데이터를 이용하면, 쓰기 간섭 오류에 의한 비트 오류 패턴을 파악할 수 있는 가상 낸드플래시를 구현할 수 있다.For example, if the bit error rate is measured using the amount of electrons that have exited from the floating gate of each cell that constitutes the actual NAND flash according to the P / E cycle, a virtual NAND Flash can be implemented. In addition, by using the data of the proximity between the page where the write operation is performed in the actual NAND flash and the cell where the bit error occurs, a virtual NAND flash capable of detecting a bit error pattern due to the write interference error is implemented .

낸드플래시의 타입에 따라 P/E 사이클에 따른 비트 오류율이 다른 점을 고려하여 SLC, MLC, TLC 타입 각각에 대해 S201의 과정을 수행한다. 각각의 비트 오류율을 이용하면, 다양한 낸드플래시 타입에 대응되는 가상 낸드플래시를 구현할 수 있다.The process of S201 is performed for each of the SLC, MLC, and TLC types in consideration of the difference in bit error rate depending on the P / E cycle depending on the type of the NAND flash. By using the respective bit error rates, it is possible to implement a virtual NAND flash corresponding to various types of NAND flash.

S201과정에서 얻은 측정 데이터를 기반으로, 가상 낸드플래시에 비트 오류를 삽입한다(S202). 가상 낸드플래시의 페이지에서 쓰기(Program) 작업이 수행되는 경우, 그 페이지의 지우기(Erase) 횟수 정보를 참조하여, 해당 P/E 사이클에 대한 비트 오류율에 따라 비트 오류를 삽입하도록 한다. 도 3을 참조하면, 페이지에 쓰기 작업이 수행되는 경우, 해당 페이지의 P/E 사이클을 확인하고, 수집한 P/E 사이클에 대한 비트 오류율에 따라 비트 오류를 발생시키는 루틴인 ns_flip을 가상 낸드플래시에 추가한다. 추가된 루틴인 ns_flip은 가상 낸드플래시에서 페이지 쓰기 작업이 발생하면, 해당 페이지의 지우기 횟수 정보를 참조하여 이에 상응하는 P/E 사이클에 따른 비트 오류율에 따라 버퍼에 비트 플립을 시도하고, 버퍼를 가상 낸드플래시 디바이스의 페이지에 기록한다.Based on the measurement data obtained in step S201, a bit error is inserted into the virtual NAND flash (S202). When a write operation is performed on a page of a virtual NAND flash, a bit error is inserted according to the bit error rate for the P / E cycle with reference to the erase count information of the page. Referring to FIG. 3, when a write operation is performed on a page, the P / E cycle of the page is checked and ns_flip, which is a routine for generating a bit error according to the bit error rate for the collected P / E cycle, . When a page write operation occurs in the virtual NAND flash, the added routine ns_flip refers to the erase count information of the page, attempts to bit flip the buffer according to the bit error rate corresponding to the P / E cycle, Write to the page of the NAND flash device.

도 4는 본 발명의 다른 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a method for implementing a virtual NAND flash according to another embodiment of the present invention.

실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집한다(S401). P/E 사이클이 증가함에 따라 낸드플래시에서 발생하는 비트 오류율의 변화를 페이지 단위로 측정한다. 낸드플래시의 한 블록 내 전체 페이지에 임의로 생성된 데이터를 쓰고 읽은 후 해당 블록을 소거하는 일련의 과정을 반복하면서 읽혀진 데이터와 실제로 요청된 데이터를 비교하는 방법으로 비트 오류율을 측정할 수 있다. 지우기 작업은 블록 단위로 이루어지므로 한 블록 내의 모든 페이지에서 발생하는 비트 오류를 각각 평균하여 이를 이용해 비트 오류율을 측정할 수 있다.Measurement data measuring the bit error rate according to the P / E cycle of the actual NAND flash is collected (S401). As the P / E cycle increases, the change of the bit error rate occurring in the NAND flash is measured in units of pages. It is possible to measure the bit error rate by comparing the read data with the actually requested data while repeating a series of processes of writing and reading arbitrarily generated data on all pages in one block of the NAND flash and erasing the corresponding block. Since the erase operation is performed on a block-by-block basis, bit errors occurring in all pages within one block can be averaged, and the bit error rate can be measured using the average.

S401과정에서 얻은 측정 데이터에서 일정 개수의 샘플을 추출하여 P/E 사이클 당 비트 오류율에 대한 확률 모델을 구축한다(S402). 각 샘플 사이에서의 비트 오류 발생은 선형보간법을 이용해 비트 오류율을 산정하여 확률 모델을 구축할 수 있다.A certain number of samples are extracted from the measurement data obtained in step S401 to construct a probability model for the bit error rate per P / E cycle (S402). The occurrence of bit error between each sample can build a probability model by calculating the bit error rate using linear interpolation.

S402 과정에서 구축한 확률 모델을 기반으로, 가상 낸드플래시에 비트 오류를 삽입한다(S403). 가상 낸드플래시의 페이지에 쓰기(Program) 작업을 수행하면 페이지의 지우기(Erase) 횟수 정보를 참조하여, 해당 P/E 사이클에 대한 비트 오류율에 따라 비트 오류를 삽입하도록 한다.Based on the probability model constructed in step S402, a bit error is inserted into the virtual NAND flash (S403). When a program operation is performed on a page of a virtual NAND flash, a bit error is inserted according to the bit error rate for the corresponding P / E cycle by referring to the erase count information of the page.

S403 과정을 거친 가상 낸드플래시에 대해 P/E 사이클에 따른 비트 오류율을 측정하고, S401과정에서 얻은 실제 낸드플래시에 대해 측정한 P/E 사이클에 따른 비트 오류율과의 유사성을 비교한다(S404). 유사성이 일정 수준 이하인 경우, 측정 데이터에서 추가로 샘플을 추출하여 확률 모델을 재구축한다(S405). 유사성이 일정 수준 이하인 P/E 사이클 구간에 대해 측정 데이터에서 추가로 샘플을 추출하고, 추가로 추출한 샘플을 기존의 확률 모델에 추가하여 확률 모델을 재구축할 수 있다.The bit error rate according to the P / E cycle is measured for the virtual NAND flash after the step S403, and the similarity with the bit error rate according to the P / E cycle measured for the actual NAND flash obtained in the step S401 is compared (S404). If the similarity is equal to or less than a certain level, a sample is further extracted from the measurement data to rebuild the probability model (S405). The probability model can be reconstructed by further extracting samples from the measurement data and adding the extracted samples to the existing probability model for the P / E cycle period where the similarity is below a certain level.

도 5는 본 발명의 일 실시예에 따라 구현된 가상 낸드플래시의 P/E 사이클을 측정하고, 실제 낸드플래시의 P/E 사이클과 비교한 결과이다. (a)는 SLC 낸드플래시의 비트 오류율과 가상 SLC 낸드플래시의 비트 오류율을 비교한 것이고, (b)는 MLC 낸드플래시의 비트 오류율과 가상 MLC 낸드플래시의 비트 오류율을 비교한 것이고, (c)는 TLC 낸드플래시의 비트 오류율과 가상 TLC 낸드플래시의 비트 오류율을 비교한 것이다.FIG. 5 is a graph illustrating a result of comparing a P / E cycle of a virtual NAND flash implemented according to an embodiment of the present invention with a P / E cycle of an actual NAND flash. (b) compares the bit error rate of the MLC NAND flash with the bit error rate of the virtual MLC NAND flash, (c) the bit error rate of the SLC NAND flash, The bit error rate of the TLC NAND flash and the bit error rate of the virtual TLC NAND flash are compared.

도시된 바와 같이, 가상 낸드플래시의 비트 오류율과 실제 낸드플래시의 비트 오류율 간에는, 약간의 차이는 있으나, 실제 낸드플래시와 마찬가지로 가상 낸드플래시에서도 P/E 사이클의 증가에 따라 비트 오류율이 증가함을 확인할 수 있다. 이렇게 구현된 가상 낸드플래시를 이용하여 낸드플래시 메모리의 데이터 신뢰성 연구를 위한 다양한 테스트 환경을 구축할 수 있다.As shown, although there is a slight difference between the bit error rate of the virtual NAND flash and the actual bit error rate of the NAND flash, it is confirmed that the bit error rate increases with the increase of the P / E cycle in the virtual NAND flash as in the actual NAND flash . Using this virtual NAND flash, various test environments can be constructed for studying data reliability of NAND flash memory.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present embodiment, and various modifications and changes may be made to those skilled in the art without departing from the essential characteristics of the embodiments. Therefore, the present embodiments are to be construed as illustrative rather than restrictive, and the scope of the technical idea of the present embodiment is not limited by these embodiments. The scope of protection of the present embodiment should be construed according to the following claims, and all technical ideas within the scope of equivalents thereof should be construed as being included in the scope of the present invention.

전술한 바와 같이, 도 2 및 도 5에 기재된 가상 낸드플래시 구현 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 발명의 일 실시예에 따른 유사 수학문제 검색방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.As described above, the virtual NAND flash implementing method described in FIGS. 2 and 5 can be implemented by a program and recorded in a computer-readable recording medium. A program for implementing a similar mathematical problem retrieval method according to an embodiment of the present invention is recorded, and a computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of such computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, etc., and also implemented in the form of a carrier wave (e.g., transmission over the Internet) . The computer readable recording medium may also be distributed over a networked computer system so that computer readable code is stored and executed in a distributed manner. In addition, functional programs, codes, and code segments for implementing the present embodiment can be easily inferred by programmers in the technical field to which the present embodiment belongs.

Claims (11)

P/E 사이클(Program/Erase cycle)의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서,
실제 낸드플래시의 P/E 사이클에 따른 비트 오류율(bit error rate)을 측정한 측정 데이터를 수집하는 과정; 및
상기 측정 데이터를 기반으로, 상기 가상 낸드플래시에 비트 오류를 삽입하는 과정
을 포함하는 가상 낸드플래시 구현 방법.
A method for implementing a virtual NAND flash in which a bit error occurs according to an increase in a P / E cycle (Program / Erase cycle)
Collecting measurement data that measures a bit error rate according to a P / E cycle of an actual NAND flash; And
A step of inserting a bit error into the virtual NAND flash based on the measurement data
Gt; NAND flash < / RTI >
제 1항에 있어서,
상기 비트 오류를 삽입하는 과정은,
상기 가상 낸드플래시의 페이지에서 쓰기(Program) 작업이 수행되는 경우, 상기 페이지의 지우기(Erase) 횟수 정보를 참조하여, 해당 P/E 사이클에 대한 비트 오류율을 기반으로 비트 오류를 삽입하는 것을 특징으로 하는 가상 낸드플래시 구현 방법.
The method according to claim 1,
The step of inserting the bit error comprises:
When a write operation is performed on a page of the virtual NAND flash, a bit error is inserted based on a bit error rate for the P / E cycle with reference to the erase count information of the page How to Implement Virtual NAND Flash.
제 1항에 있어서,
상기 비트 오류를 삽입하는 과정은,
상기 쓰기 작업이 이루어지는 데 사용되는 버퍼에 비트 플립을 시도하고, 상기 버퍼를 상기 페이지에 기록하는 것을 특징으로 하는 가상 낸드플래시 구현 방법.
The method according to claim 1,
The step of inserting the bit error comprises:
The method comprising: attempting a bit flip on a buffer used to perform the write operation; and writing the buffer to the page.
제 1항에 있어서,
상기 비트 오류율은,
상기 실제 낸드플래시의 한 블록 내의 모든 페이지에서 발생하는 오류를 각각 평균한 값을 이용하여 측정하는 것을 특징으로 하는 가상 낸드플래시 구현 방법.
The method according to claim 1,
The bit-
Wherein the measurement is performed using averages of errors occurring in all pages in one block of the NAND flash.
제 1항에 있어서,
상기 비트 오류율은,
상기 P/E 사이클에 따른 상기 실제 낸드플래시를 이루는 각 셀(Cell)의 플로팅 게이트에서 빠져나간 전자량을 이용하여 측정하는 것을 특징으로 하는 가상 낸드플래시 구현 방법.
The method according to claim 1,
The bit-
Wherein the measurement is performed using an amount of electrons that have exited from the floating gate of each cell that constitutes the actual NAND flash according to the P / E cycle.
제 1항에 있어서,
상기 측정 데이터는,
상기 실제 낸드플래시에서 측정을 위한 쓰기 작업이 이루어지는 페이지와 비트 오류가 발생한 셀의 위치의 근접도를 포함하는 것을 특징으로 하는 가상 낸드플래시 구현 방법.
The method according to claim 1,
The measurement data includes:
Wherein the NAND flash memory includes a page in which the write operation is performed for the measurement in the actual NAND flash and a proximity of a position of a cell where a bit error occurs.
P/E 사이클의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서,
실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집하는 과정;
상기 측정 데이터에서 샘플을 추출하여 P/E 사이클 당 비트 오류율에 대한 확률 모델을 구축하는 과정;
상기 확률 모델을 참조하여, 상기 가상 낸드플래시의 페이지에서 쓰기(Program) 작업이 수행되는 경우, 해당 P/E 사이클에 따른 비트 오류율을 기반으로 상기 가상 낸드플래시에 비트 오류를 삽입하는 과정;
상기 가상 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정하고, 상기 측정 데이터와 유사성을 비교하는 과정; 및
상기 유사성이 일정 수준 이하인 경우, 상기 측정 데이터에서 추가로 샘플을 추출하여 상기 확률 모델을 재구축하는 과정
을 포함하는 가상 낸드플래시 구현 방법.
A method for implementing a virtual NAND flash in which a bit error occurs according to an increase in a P / E cycle,
Collecting measurement data of a bit error rate according to a P / E cycle of an actual NAND flash;
Extracting a sample from the measurement data to construct a probability model for a bit error rate per P / E cycle;
Inserting a bit error into the virtual NAND flash based on a bit error rate according to the P / E cycle when a write operation is performed on a page of the virtual NAND flash with reference to the probability model;
Measuring a bit error rate according to a P / E cycle of the virtual NAND flash, and comparing similarity with the measured data; And
A step of extracting a sample from the measurement data and reconstructing the probability model when the similarity is less than a predetermined level
Gt; NAND flash < / RTI >
제 7항에 있어서,
상기 확률 모델을 구축하는 과정은,
각 샘플 사이에서의 비트 오류 발생은 선형보간법을 이용해 비트 오류율을 산정하는 것을 특징으로 하는 가상 낸드플래시 구현 방법.
8. The method of claim 7,
The step of constructing the probability model includes:
Wherein a bit error rate between each sample is calculated using a linear interpolation method.
제 7항에 있어서,
상기 확률 모델을 재구축하는 과정은,
상기 유사성이 일정 수준 이하인 P/E 사이클 구간에 대해 상기 측정 데이터에서 추가로 샘플을 추출하는 것을 특징으로 하는 가상 낸드플래시 구현 방법.
8. The method of claim 7,
The process of reconstructing the probability model comprises:
Wherein a sample is further extracted from the measurement data for a P / E cycle interval in which the similarity is less than or equal to a predetermined level.
프로세서에 의해 실행 가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독 가능한 기록매체에 기록된 시나리오 생성을 위한 컴퓨터 프로그램으로서, 컴퓨팅 장치의 프로세서에 의해 실행되는 경우에 컴퓨팅 장치로 하여금,
실제 낸드플래시의 P/E 사이클에 따른 비트 오류율(bit error rate)을 측정한 측정 데이터를 수집하는 과정; 및
상기 측정 데이터를 기반으로, 가상 낸드플래시에 비트 오류를 삽입하는 과정
을 수행하도록 하는 명령어들을 포함하는 컴퓨터 프로그램.
A computer program for creating a scenario recorded on a computer-readable recording medium including computer program instructions executable by a processor, the computer program causing a computing device, when executed by a processor of the computing device,
Collecting measurement data that measures a bit error rate according to a P / E cycle of an actual NAND flash; And
A process of inserting a bit error into the virtual NAND flash based on the measurement data
The computer program product comprising:
프로세서에 의해 실행 가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독 가능한 기록매체에 기록된 시나리오 생성을 위한 컴퓨터 프로그램으로서, 컴퓨팅 장치의 프로세서에 의해 실행되는 경우에 컴퓨팅 장치로 하여금,
실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집하는 과정;
상기 측정 데이터에서 샘플을 추출하여 P/E 사이클 당 비트 오류율에 대한 확률 모델을 구축하는 과정;
상기 확률 모델을 참조하여, 상기 가상 낸드플래시의 페이지에서 쓰기 작업이 수행되는 경우, 해당 P/E 사이클에 따른 비트 오류율을 기반으로 상기 가상 낸드플래시에 비트 오류를 삽입하는 과정;
상기 가상 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정하고, 상기 낸드플래시의 P/E 사이클에 따른 비트 오류율과의 유사성을 비교하는 과정; 및
상기 유사성이 일정 수준 이하인 경우, 상기 측정 데이터에서 추가로 샘플을 추출하여 상기 확률 모델을 재구축하는 과정
을 수행하도록 하는 명령어들을 포함하는 컴퓨터 프로그램.
A computer program for creating a scenario recorded on a computer-readable recording medium including computer program instructions executable by a processor, the computer program causing a computing device, when executed by a processor of the computing device,
Collecting measurement data of a bit error rate according to a P / E cycle of an actual NAND flash;
Extracting a sample from the measurement data to construct a probability model for a bit error rate per P / E cycle;
Inserting a bit error into the virtual NAND flash based on a bit error rate according to the P / E cycle when a write operation is performed on a page of the virtual NAND flash with reference to the probability model;
Measuring a bit error rate according to a P / E cycle of the virtual NAND flash and comparing similarity with a bit error rate according to a P / E cycle of the NAND flash; And
A step of extracting a sample from the measurement data and reconstructing the probability model when the similarity is less than a predetermined level
The computer program product comprising:
KR1020160133682A 2016-10-14 2016-10-14 Method And Computer Program of Implementing Virtual NAND Flash KR101909929B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160133682A KR101909929B1 (en) 2016-10-14 2016-10-14 Method And Computer Program of Implementing Virtual NAND Flash

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160133682A KR101909929B1 (en) 2016-10-14 2016-10-14 Method And Computer Program of Implementing Virtual NAND Flash

Publications (2)

Publication Number Publication Date
KR20180041473A true KR20180041473A (en) 2018-04-24
KR101909929B1 KR101909929B1 (en) 2018-10-19

Family

ID=62084902

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160133682A KR101909929B1 (en) 2016-10-14 2016-10-14 Method And Computer Program of Implementing Virtual NAND Flash

Country Status (1)

Country Link
KR (1) KR101909929B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109947588A (en) * 2019-02-22 2019-06-28 哈尔滨工业大学 A kind of NAND Flash bit error rate prediction technique based on support vector regression method
KR102076624B1 (en) * 2018-12-06 2020-02-12 한국외국어대학교 연구산학협력단 Storage system based flash memory and error correcting method thereof
CN111859791A (en) * 2020-07-08 2020-10-30 上海威固信息技术股份有限公司 Flash memory data storage error rate simulation method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090027952A (en) * 2007-09-13 2009-03-18 삼성전자주식회사 Memory system with improved reliability and wear-leveling technique thereof
KR20140121159A (en) * 2013-04-05 2014-10-15 삼성전자주식회사 Multi level cell memory system
KR20150144857A (en) * 2014-06-17 2015-12-29 고려대학교 산학협력단 Memory system and operation method of the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090027952A (en) * 2007-09-13 2009-03-18 삼성전자주식회사 Memory system with improved reliability and wear-leveling technique thereof
KR20140121159A (en) * 2013-04-05 2014-10-15 삼성전자주식회사 Multi level cell memory system
KR20150144857A (en) * 2014-06-17 2015-12-29 고려대학교 산학협력단 Memory system and operation method of the same

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Matt Porter, Bill Weinberg, "Optimizing Linux Flash File System Selection with Application Modeling", 2009.02.17. *
강한수 외 3명, "MLC 낸드 플래시 메모리의 P/E cycle에 따른 에러 발생 빈도 측정 및 수학적 모델링 기법", 한국통신학회 2012년도 동계종합학술발표회 논문집, 페이지 9-10, 2012.2. *
논문(2012.02.09) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102076624B1 (en) * 2018-12-06 2020-02-12 한국외국어대학교 연구산학협력단 Storage system based flash memory and error correcting method thereof
CN109947588A (en) * 2019-02-22 2019-06-28 哈尔滨工业大学 A kind of NAND Flash bit error rate prediction technique based on support vector regression method
CN109947588B (en) * 2019-02-22 2021-01-12 哈尔滨工业大学 NAND Flash bit error rate prediction method based on support vector regression method
CN111859791A (en) * 2020-07-08 2020-10-30 上海威固信息技术股份有限公司 Flash memory data storage error rate simulation method
CN111859791B (en) * 2020-07-08 2023-12-26 上海威固信息技术股份有限公司 Flash memory data storage error rate simulation method

Also Published As

Publication number Publication date
KR101909929B1 (en) 2018-10-19

Similar Documents

Publication Publication Date Title
KR101429184B1 (en) Method of adjusting read voltages for a nand flash memory device
US8661318B2 (en) Memory management in a non-volatile solid state memory device
US10552063B2 (en) Background mitigation reads in a non-volatile memory system
KR101578518B1 (en) Read method of non-volatile memory device and memory system having the same
US9159458B2 (en) Flash interface error injector
Xiong et al. Characterizing 3D floating gate NAND flash: Observations, analyses, and implications
US8934284B2 (en) Methods and apparatuses using a transfer function to predict resistance shifts and/or noise of resistance-based memory
Woo et al. Diversifying wear index for MLC NAND flash memory to extend the lifetime of SSDs
US11043275B2 (en) Memory system, read method, program, and memory controller
KR101905266B1 (en) Data retention charge loss sensor
US11557345B2 (en) Dynamic memory programming voltage step for strenuous device conditions
JP2019160355A (en) Memory system, reading method, program and memory controller
KR20160023637A (en) Word line defect detection and handling for a data storage device
US8730724B2 (en) Common line current for program level determination in flash memory
Wu et al. Characterizing 3D charge trap NAND flash: Observations, analyses and applications
CN111341375B (en) Threshold voltage obtaining method for TLC type NAND Flash
KR101909929B1 (en) Method And Computer Program of Implementing Virtual NAND Flash
US8402203B2 (en) Systems and methods for storing data in a multi-level cell solid state storage device
CN109164978B (en) Flash memory management method, flash memory storage device and computer readable storage medium
US10990477B2 (en) Device and method for controlling the data refresh cycles in reprogrammable non-volatile memories
US10628247B2 (en) Flash memory testing according to error type pattern
CN109785891B (en) Method for obtaining shallow erasure characteristic rule of NAND Flash memory
CN112735502B (en) Threshold distribution fitting method, device and system for flash memory
US10656847B2 (en) Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation
CN112732181A (en) Data migration method of SSD and related device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant