KR101909929B1 - 가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램 - Google Patents
가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR101909929B1 KR101909929B1 KR1020160133682A KR20160133682A KR101909929B1 KR 101909929 B1 KR101909929 B1 KR 101909929B1 KR 1020160133682 A KR1020160133682 A KR 1020160133682A KR 20160133682 A KR20160133682 A KR 20160133682A KR 101909929 B1 KR101909929 B1 KR 101909929B1
- Authority
- KR
- South Korea
- Prior art keywords
- nand flash
- bit error
- cycle
- error rate
- virtual
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/25—Testing 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
가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램을 개시한다.
본 발명의 일 실시예에 의하면, P/E 사이클(Program/Erase cycle)의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서, 실제 낸드플래시의 P/E 사이클에 따른 비트 오류율(bit error rate)을 측정한 측정 데이터를 수집하는 과정; 및 상기 측정 데이터를 기반으로, 상기 가상 낸드플래시에 비트 오류를 삽입하는 과정을 포함하는 가상 낸드플래시 구현 방법을 제공한다.
본 발명의 일 실시예에 의하면, P/E 사이클(Program/Erase cycle)의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서, 실제 낸드플래시의 P/E 사이클에 따른 비트 오류율(bit error rate)을 측정한 측정 데이터를 수집하는 과정; 및 상기 측정 데이터를 기반으로, 상기 가상 낸드플래시에 비트 오류를 삽입하는 과정을 포함하는 가상 낸드플래시 구현 방법을 제공한다.
Description
본 발명은 가상 낸드플래시의 구현 방법에 관한 것이다. 보다 상세하게는 실제 낸드플래시와 유사한 비트 오류 발생이 가능한 가상 낸드플래시를 구현하기 위한 방법 및 이를 기록한 컴퓨터 프로그램에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
낸드플래시(NAND flash) 메모리는 비휘발성이며, 전력 소모가 낮고, 충격에 강하며, 사이즈가 작고, 랜덤 I/O가 가능하다는 장점 때문에, 많은 임베디드 시스템에서 저장 매체로 사용되고 있다.
낸드플래시에서 데이터를 저장하는 최소 단위인 셀(cell)은 플로팅 게이트 트랜지스터(Floating-gate transistor)로 구성된다. 낸드플래시 메모리는 이러한 셀을 직렬로 연결한 구조를 갖는다. 플로팅 게이트 트랜지스터에 전압을 인가하여 전자를 채워 넣는 것이 데이터의 쓰기(Program) 작업, 전자를 비우는 것이 지우기(Erase) 작업에 해당한다. 읽기(Read) 작업은 트랜지스터의 전압을 측정하는 방식으로 이루어진다. 낸드플래시 메모리는 트랜지스터에 채워진 전자의 양을 이용해 이진 데이터를 표현한다. 하나의 셀의 한 비트를 저장하는 SLC(Single-Level-Cell) 방식에서부터, 레벨을 늘려 하나의 셀에 세비트를 저장하는 TLC(Triple-Level-Cell) 방식까지 발전하였다. TLC방식은 SLC방식과 비교해 단위 면적 용량이 4배에 해당한다.
그러나 낸드플래시의 물리적 특성상 이러한 단일 셀 다중 전압 레벨을 이용한 방식에는 용량 증가에 따른 문제점이 존재한다. 하나의 셀을 복수의 전압 레벨로 나누다 보니 전압 레벨 간 명확한 구분이 되지 못하고, 반복된 읽기 또는 쓰기 작업으로 셀 간의 간섭이 일어나 비트 오류(bit error)가 발생하기도 한다. 이러한 비트 오류는 낸드플래시 기반 저장 매체의 수명에 영향을 준다.
메모리 영역은 시스템 내에서 차지하는 비중이 크고, 시스템의 안정성과 신뢰도에 큰 영향을 준다. 따라서, 낸드플래시 메모리의 테스트에 대한 중요성이 커지고 있으며, 낸드플래시의 안정성을 높이기 위한 연구가 끊임없이 진행되고 있다. 이러한 연구는 기본적으로 실제 낸드플래시 하드웨어를 이용하여 이루어진다. 실제 하드웨어를 사용한 연구 실험 환경에서는 특정 낸드플래시 테스트 환경에서 다른 낸드플래시 테스트 환경으로의 전환이 어려우며, 병렬적으로 여러 테스트 환경을 구축하는 데에 추가적인 시간과 비용을 필요로 한다.
본 실시예는, 낸드플래시를 소프트웨어적으로 테스트하는 방법을 제공한다. 낸드플래시와 같이 P/E 사이클(Program/Erase cycle)에 따라 비트 오류가 발생하는 가상 낸드플래시의 구현 방법 및 이를 기록한 컴퓨터 프로그램을 제공하는데 주된 목적이 있다.
본 발명의 일 실시예에 의하면, P/E 사이클(Program/Erase cycle)의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서, 실제 낸드플래시의 P/E 사이클에 따른 비트 오류율(bit error rate)을 측정한 측정 데이터를 수집하는 과정 및 측정 데이터를 기반으로, 가상 낸드플래시에 비트 오류를 삽입하는 과정을 포함하는 가상 낸드플래시 구현 방법을 제공한다.
상기 가상 낸드플래시 구현 방법의 실시예들은 다음의 특징을 하나 이상 더 포함할 수 있다.
본 발명의 다른 실시예에 의하면, 비트 오류를 삽입하는 과정은, 가상 낸드플래시의 페이지에서 쓰기(Program) 작업이 수행되는 경우, 페이지의 지우기(Erase) 횟수 정보를 참조하여, 해당 P/E 사이클에 대한 비트 오류율을 기반으로 비트 오류를 삽입하는 것을 특징으로 한다.
본 발명의 다른 실시예에 의하면, 비트 오류를 삽입하는 과정은, 쓰기 작업이 이루어지는데 사용되는 버퍼에 비트 플립을 시도하고, 버퍼를 가상 낸드플래시 디바이스의 페이지에 기록하는 것을 특징으로 한다.
본 발명의 다른 실시예에 의하면, P/E 사이클의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서, 실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집하는 과정, 측정 데이터에서 샘플을 추출하여 P/E 사이클 당 비트 오류율에 대한 확률 모델을 구축하는 과정, 확률 모델을 참조하여, 가상 낸드플래시에서 쓰기 작업이 수행되는 경우, 해당 P/E 사이클에 따른 비트 오류율을 기반으로 비트 오류를 삽입하는 과정, 가상 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정하고, 측정 데이터와 유사성을 비교하는 과정 및 유사성이 일정 수준 이하인 경우, 측정 데이터에서 추가로 샘플을 추출하여 확률 모델을 재구축하는 과정을 포함하는 가상 낸드플래시 구현 방법을 제공한다.
본 실시예에 따르면, 실제 낸드플래시에서 발생하는 비트 오류율을 수집하여 소프트웨어적인 가상 낸드플래시를 구현함으로써, 낸드플래시 하드웨어를 필요로 하지 않는 테스트 환경을 제공할 수 있으며, 테스트 환경의 전환이나 병렬적인 테스트 환경의 구축을 용이하게 하는 효과가 있다.
또한, 여러 타입의 낸드플래시에 대해 가상 낸드플래시를 구현함으로써, 다양한 낸드플래시에 대한 테스트 환경을 제공할 수 있는 효과가 있다.
도 1은 낸드플래시 메모리의 기본 구조를 개념적으로 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 가상 낸드플래시에서 비트 오류를 삽입하는 방법을 설명한 예시도이다.
도 4는 본 발명의 다른 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 구현된 가상 낸드플래시의 P/E 사이클을 측정하고, 실제 낸드플래시의 P/E 사이클과 비교한 결과이다.
도 2는 본 발명의 일 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 가상 낸드플래시에서 비트 오류를 삽입하는 방법을 설명한 예시도이다.
도 4는 본 발명의 다른 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 구현된 가상 낸드플래시의 P/E 사이클을 측정하고, 실제 낸드플래시의 P/E 사이클과 비교한 결과이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
도 1은 낸드플래시 메모리의 기본 구조를 개념적으로 도시한 것이다.
낸드플래시 메모리는 다수 개의 블록으로 구성되고, 블록은 다수 개의 페이지로 구성된다. 데이터를 저장하는 최소 단위인 셀이 모여 페이지를 구성하며, 데이터의 읽기 및 쓰기 연산은 페이지 단위로 이루어지고, 지우기 연산은 블록 단위로 이루어진다. 낸드플래시 메모리는 그 특성상 한번 쓴 영역에 대해서, 재차 쓰기 연산을 수행하기 위해서는 지우기 연산이 먼저 이루어져야 한다. 이러한 쓰기 및 지우기 과정에서 낸드플래시의 물리적 구조로 인해서 다양한 패턴의 비트 오류가 발생한다.
발생 가능한 비트 오류 패턴은 다음과 같다. 리텐션 오류(retention error)는 낸드플래시 메모리의 플로팅 게이트에 데이터를 저장한 뒤 오랜 시간이 지나 전하 누설(charge loss)이 생겨 해당 셀의 데이터가 다른 데이터로 인식되는 경우를 말한다. 시간과 P/E 사이클(Program/Erase cycle)에 의해 좌우되며, 낸드플래시 내 가장 많은 비트 오류를 발생시킨다. 쓰기 간섭 오류(Program interference Error)는 낸드플래시의 공정이 작아지고 셀 밀집도가 높아짐에 따라 쓰기 작업에 관여되는 페이지와 밀접한 셀이 간섭을 받아 플로팅 게이트 내 잔류 전자량이 변하는 경우이다. 또한, P/E 사이클이 증가함에 따라 플로팅 게이트를 둘러싼 산화막에 전자가 축적되어 지우기/읽기 작업시 잔류 전자가 실제 데이터와 상이하게 되며, 반복적인 작업에 의해 이러한 차이가 축적되어 결과적으로 셀의 수명이 다하는 경우에도 비트 오류가 발생한다.
이러한 낸드플래시 메모리의 특성을 소프트웨어적으로 구현한 것이 낸드플래시 시뮬레이터이다. 본 발명의 일 실시예에서는 낸드플래시 시뮬레이터로 NANDSim을 이용한다. NANDSim은 리눅스 커널에서 제공하는 낸드플래시 시뮬레이터이다. NANDSim은 가상 낸드플래시에서 페이지 쓰기 작업이 발생하면 해당 페이지가 속한 블록에 대한 지우기 횟수 정보를 가진 노드를 생성하고, 이를 연결리스트를 통해 관리한다. 연결 리스트를 통해 추후 지우기 횟수가 낸드플래시 타입에 따른 P/E 사이클(Program/Erase cycle) 문턱 값을 넘어서면 오류를 발생시키도록 되어 있다. 하지만 실제 낸드플래시는 P/E 사이클의 문턱 값에 도달하기 이전에도 비트 오류가 발생한다. 본 발명의 일 실시예에서는 실제 낸드플래시와 같이 P/E 사이클의 문턱 값에 도달하기 이전이라도 비트 오류를 발생시켜 낸드플래시의 신뢰성 테스트용으로 적합한 가상 낸드플래시 메모리를 구현하는 방법을 제시한다.
도 2는 본 발명의 일 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 가상 낸드플래시에서 비트 오류를 삽입하는 방법을 설명한 예시도이다.
실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집한다(S201). 실제 낸드플래시란 물리적으로 존재하는 하드웨어 낸드플래시를 말한다. P/E 사이클이 증가함에 따라 낸드플래시에서 발생하는 비트 오류율의 변화를 페이지 단위로 측정한다. 낸드플래시의 한 블록 내 전체 페이지에 임의로 생성된 데이터를 쓰고 읽은 후 해당 블록을 소거하는 일련의 과정을 반복하면서 읽혀진 데이터와 실제로 요청된 데이터를 비교하는 방법으로 비트 오류율을 측정할 수 있다. 지우기 작업은 블록 단위로 이루어지므로 한 블록 내의 모든 페이지에서 발생하는 비트 오류를 각각 평균하여 이용해 비트 오류율을 측정할 수 있다.
보다 세밀한 낸드플래시 실험 환경을 제공하기 위해 실제 낸드플래시에서 발생하는 비트 오류를 패턴 별로 나누어 데이터를 수집하고 이를 바탕으로 패턴별 적용이 가능한 모델을 구현할 수 있다.
예컨대, P/E 사이클에 따른 상기 실제 낸드플래시를 이루는 각 셀(Cell)의 플로팅 게이트에서 빠져나간 전자량을 이용하여 비트 오류율을 측정하면, 리텐션 오류에 의한 비트 오류 패턴을 파악할 수 있는 가상 낸드플래시를 구현할 수 있다. 또한, 실제 낸드플래시에서 측정을 위한 쓰기 작업이 이루어지는 페이지와 비트 오류가 발생한 셀의 위치의 근접도를 측정한 데이터를 이용하면, 쓰기 간섭 오류에 의한 비트 오류 패턴을 파악할 수 있는 가상 낸드플래시를 구현할 수 있다.
낸드플래시의 타입에 따라 P/E 사이클에 따른 비트 오류율이 다른 점을 고려하여 SLC, MLC, TLC 타입 각각에 대해 S201의 과정을 수행한다. 각각의 비트 오류율을 이용하면, 다양한 낸드플래시 타입에 대응되는 가상 낸드플래시를 구현할 수 있다.
S201과정에서 얻은 측정 데이터를 기반으로, 가상 낸드플래시에 비트 오류를 삽입한다(S202). 가상 낸드플래시의 페이지에서 쓰기(Program) 작업이 수행되는 경우, 그 페이지의 지우기(Erase) 횟수 정보를 참조하여, 해당 P/E 사이클에 대한 비트 오류율에 따라 비트 오류를 삽입하도록 한다. 도 3을 참조하면, 페이지에 쓰기 작업이 수행되는 경우, 해당 페이지의 P/E 사이클을 확인하고, 수집한 P/E 사이클에 대한 비트 오류율에 따라 비트 오류를 발생시키는 루틴인 ns_flip을 가상 낸드플래시에 추가한다. 추가된 루틴인 ns_flip은 가상 낸드플래시에서 페이지 쓰기 작업이 발생하면, 해당 페이지의 지우기 횟수 정보를 참조하여 이에 상응하는 P/E 사이클에 따른 비트 오류율에 따라 버퍼에 비트 플립을 시도하고, 버퍼를 가상 낸드플래시 디바이스의 페이지에 기록한다.
도 4는 본 발명의 다른 실시예에 따른 가상 낸드플래시 구현 방법을 설명하기 위한 흐름도이다.
실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집한다(S401). P/E 사이클이 증가함에 따라 낸드플래시에서 발생하는 비트 오류율의 변화를 페이지 단위로 측정한다. 낸드플래시의 한 블록 내 전체 페이지에 임의로 생성된 데이터를 쓰고 읽은 후 해당 블록을 소거하는 일련의 과정을 반복하면서 읽혀진 데이터와 실제로 요청된 데이터를 비교하는 방법으로 비트 오류율을 측정할 수 있다. 지우기 작업은 블록 단위로 이루어지므로 한 블록 내의 모든 페이지에서 발생하는 비트 오류를 각각 평균하여 이를 이용해 비트 오류율을 측정할 수 있다.
S401과정에서 얻은 측정 데이터에서 일정 개수의 샘플을 추출하여 P/E 사이클 당 비트 오류율에 대한 확률 모델을 구축한다(S402). 각 샘플 사이에서의 비트 오류 발생은 선형보간법을 이용해 비트 오류율을 산정하여 확률 모델을 구축할 수 있다.
S402 과정에서 구축한 확률 모델을 기반으로, 가상 낸드플래시에 비트 오류를 삽입한다(S403). 가상 낸드플래시의 페이지에 쓰기(Program) 작업을 수행하면 페이지의 지우기(Erase) 횟수 정보를 참조하여, 해당 P/E 사이클에 대한 비트 오류율에 따라 비트 오류를 삽입하도록 한다.
S403 과정을 거친 가상 낸드플래시에 대해 P/E 사이클에 따른 비트 오류율을 측정하고, S401과정에서 얻은 실제 낸드플래시에 대해 측정한 P/E 사이클에 따른 비트 오류율과의 유사성을 비교한다(S404). 유사성이 일정 수준 이하인 경우, 측정 데이터에서 추가로 샘플을 추출하여 확률 모델을 재구축한다(S405). 유사성이 일정 수준 이하인 P/E 사이클 구간에 대해 측정 데이터에서 추가로 샘플을 추출하고, 추가로 추출한 샘플을 기존의 확률 모델에 추가하여 확률 모델을 재구축할 수 있다.
도 5는 본 발명의 일 실시예에 따라 구현된 가상 낸드플래시의 P/E 사이클을 측정하고, 실제 낸드플래시의 P/E 사이클과 비교한 결과이다. (a)는 SLC 낸드플래시의 비트 오류율과 가상 SLC 낸드플래시의 비트 오류율을 비교한 것이고, (b)는 MLC 낸드플래시의 비트 오류율과 가상 MLC 낸드플래시의 비트 오류율을 비교한 것이고, (c)는 TLC 낸드플래시의 비트 오류율과 가상 TLC 낸드플래시의 비트 오류율을 비교한 것이다.
도시된 바와 같이, 가상 낸드플래시의 비트 오류율과 실제 낸드플래시의 비트 오류율 간에는, 약간의 차이는 있으나, 실제 낸드플래시와 마찬가지로 가상 낸드플래시에서도 P/E 사이클의 증가에 따라 비트 오류율이 증가함을 확인할 수 있다. 이렇게 구현된 가상 낸드플래시를 이용하여 낸드플래시 메모리의 데이터 신뢰성 연구를 위한 다양한 테스트 환경을 구축할 수 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
전술한 바와 같이, 도 2 및 도 5에 기재된 가상 낸드플래시 구현 방법은 프로그램으로 구현되고 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 본 발명의 일 실시예에 따른 가상 낸드플래시 구현 방법을 구현하기 위한 프로그램이 기록되고 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인(Functional) 프로그램, 코드 및 코드 세그먼트들은 본 실시예가 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있을 것이다.
Claims (11)
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- P/E 사이클의 증가에 따라 비트 오류가 발생하는 가상 낸드플래시 구현 방법에 있어서,
실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집하는 과정;
상기 측정 데이터에서 샘플을 추출하여 P/E 사이클 당 비트 오류율에 대한 확률 모델을 구축하는 과정;
상기 확률 모델을 참조하여, 상기 가상 낸드플래시의 페이지에서 쓰기(Program) 작업이 수행되는 경우, 해당 P/E 사이클에 따른 비트 오류율을 기반으로 상기 가상 낸드플래시에 비트 오류를 삽입하는 과정;
상기 가상 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정하고, 상기 측정 데이터와 유사성을 비교하는 과정; 및
상기 유사성이 일정 수준 이하인 경우, 상기 측정 데이터에서 추가로 샘플을 추출하여 상기 확률 모델을 재구축하는 과정
을 포함하는 가상 낸드플래시 구현 방법. - 제 7항에 있어서,
상기 확률 모델을 구축하는 과정은,
각 샘플 사이에서의 비트 오류 발생은 선형보간법을 이용해 비트 오류율을 산정하는 것을 특징으로 하는 가상 낸드플래시 구현 방법. - 제 7항에 있어서,
상기 확률 모델을 재구축하는 과정은,
상기 유사성이 일정 수준 이하인 P/E 사이클 구간에 대해 상기 측정 데이터에서 추가로 샘플을 추출하는 것을 특징으로 하는 가상 낸드플래시 구현 방법. - 삭제
- 프로세서에 의해 실행 가능한 컴퓨터 프로그램 명령어들을 포함하는 컴퓨터 판독 가능한 기록매체에 기록된 시나리오 생성을 위한 컴퓨터 프로그램으로서, 컴퓨팅 장치의 프로세서에 의해 실행되는 경우에 컴퓨팅 장치로 하여금,
실제 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정한 측정 데이터를 수집하는 과정;
상기 측정 데이터에서 샘플을 추출하여 P/E 사이클 당 비트 오류율에 대한 확률 모델을 구축하는 과정;
상기 확률 모델을 참조하여, 가상 낸드플래시의 페이지에서 쓰기 작업이 수행되는 경우, 해당 P/E 사이클에 따른 비트 오류율을 기반으로 상기 가상 낸드플래시에 비트 오류를 삽입하는 과정;
상기 가상 낸드플래시의 P/E 사이클에 따른 비트 오류율을 측정하고, 상기 낸드플래시의 P/E 사이클에 따른 비트 오류율과의 유사성을 비교하는 과정; 및
상기 유사성이 일정 수준 이하인 경우, 상기 측정 데이터에서 추가로 샘플을 추출하여 상기 확률 모델을 재구축하는 과정
을 수행하도록 하는 명령어들을 포함하는 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160133682A KR101909929B1 (ko) | 2016-10-14 | 2016-10-14 | 가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160133682A KR101909929B1 (ko) | 2016-10-14 | 2016-10-14 | 가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180041473A KR20180041473A (ko) | 2018-04-24 |
KR101909929B1 true KR101909929B1 (ko) | 2018-10-19 |
Family
ID=62084902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160133682A KR101909929B1 (ko) | 2016-10-14 | 2016-10-14 | 가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101909929B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102076624B1 (ko) * | 2018-12-06 | 2020-02-12 | 한국외국어대학교 연구산학협력단 | 플래시 메모리 기반의 저장 시스템 및 이의 에러 보정 방법 |
CN109947588B (zh) * | 2019-02-22 | 2021-01-12 | 哈尔滨工业大学 | 一种基于支持向量回归法的NAND Flash位错误率预测方法 |
CN111859791B (zh) * | 2020-07-08 | 2023-12-26 | 上海威固信息技术股份有限公司 | 一种闪存数据保存错误率仿真方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101413736B1 (ko) * | 2007-09-13 | 2014-07-02 | 삼성전자주식회사 | 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 |
KR102102171B1 (ko) * | 2013-04-05 | 2020-05-29 | 삼성전자 주식회사 | 멀티 레벨 셀 메모리 시스템 |
KR101628925B1 (ko) * | 2014-06-17 | 2016-06-10 | 고려대학교 산학협력단 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
-
2016
- 2016-10-14 KR KR1020160133682A patent/KR101909929B1/ko active IP Right Grant
Non-Patent Citations (2)
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.* |
Also Published As
Publication number | Publication date |
---|---|
KR20180041473A (ko) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8661318B2 (en) | Memory management in a non-volatile solid state memory device | |
KR101429184B1 (ko) | 낸드 플래시 메모리 장치의 독출 전압 조정 방법 | |
US9378830B2 (en) | Partial reprogramming of solid-state non-volatile memory cells | |
US9159458B2 (en) | Flash interface error injector | |
US20140075252A1 (en) | Erased Page Confirmation in Multilevel Memory | |
US10552063B2 (en) | Background mitigation reads in a non-volatile memory system | |
US20160148708A1 (en) | Defect Logging in Nonvolatile Memory | |
CN108475530A (zh) | 用于在储存体装置的编程之前进行擦除检测的***和方法 | |
US9594615B2 (en) | Estimating flash quality using selective error emphasis | |
KR101905266B1 (ko) | 데이터 보유 충전 손실 센서 | |
US11043275B2 (en) | Memory system, read method, program, and memory controller | |
KR101891429B1 (ko) | 임계 전압 분석 | |
KR20130088061A (ko) | 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 읽기 구현 | |
KR20110004100A (ko) | 불휘발성 메모리 장치의 읽기 방법 및 그것을 포함하는 메모리 시스템 | |
US8730724B2 (en) | Common line current for program level determination in flash memory | |
KR20130088066A (ko) | 임계 전압 드리프트 또는 저항 드리프트 내성의 이동 기선 메모리 데이터 부호화를 이용한 멀티레벨 셀(mlc) 메모리의 향상된 데이터 부분 소거 구현 | |
KR101909929B1 (ko) | 가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램 | |
US11557345B2 (en) | Dynamic memory programming voltage step for strenuous device conditions | |
JP2019160355A (ja) | メモリシステム、読み出し方法、プログラムおよびメモリコントローラ | |
KR20160023637A (ko) | 워드라인 결함 검출 및 데이터 저장 디바이스의 핸들링 | |
Wu et al. | Characterizing 3D charge trap NAND flash: Observations, analyses and applications | |
US20140043897A1 (en) | Aggregating data latches for program level determination | |
CN109164978B (zh) | 闪存管理方法、闪存存储设备及计算机可读存储介质 | |
CN114756179B (zh) | 基于模拟eeprom的数据写入、读取及管理方法 | |
US10990477B2 (en) | Device and method for controlling the data refresh cycles in reprogrammable non-volatile memories |
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 |