KR20100113994A - 비휘발성 메모리에 기록 및 소거하기 위한 방법 - Google Patents

비휘발성 메모리에 기록 및 소거하기 위한 방법 Download PDF

Info

Publication number
KR20100113994A
KR20100113994A KR1020100034401A KR20100034401A KR20100113994A KR 20100113994 A KR20100113994 A KR 20100113994A KR 1020100034401 A KR1020100034401 A KR 1020100034401A KR 20100034401 A KR20100034401 A KR 20100034401A KR 20100113994 A KR20100113994 A KR 20100113994A
Authority
KR
South Korea
Prior art keywords
erase
time period
command
nonvolatile memory
size
Prior art date
Application number
KR1020100034401A
Other languages
English (en)
Other versions
KR101575369B1 (ko
Inventor
존 루드릭
Original Assignee
존 루드릭
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 존 루드릭 filed Critical 존 루드릭
Publication of KR20100113994A publication Critical patent/KR20100113994A/ko
Application granted granted Critical
Publication of KR101575369B1 publication Critical patent/KR101575369B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

비휘발성 메모리에 기록하고 소거하기 위한 방법이 개시된다. 이 방법은, 비휘발성 메모리에 대한 동일한 시간 주기를 갖는 n개의 기록동작에 사용하기 위한 명령 윈도우의 사이즈를 결정하는 단계를 포함하고 있다. 긴 레이턴시 소거 명령은, 각각이 동일한 시간 주기를 갖는 복수의 소거 슬라이스를 제공하기 위해 n의 인자로 슬라이스된다. 이 방법은, 비휘발성 메모리에 대해 각각이 n개의 기록동작 중의 하나와 복수의 소거 슬라이스 중의 하나의 조합으로 이루어진 n개의 명령을 실행하는 단계를 더 포함하고 있다. 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계는 명령 윈도우의 사이즈보다 작거나 같다.

Description

비휘발성 메모리에 기록 및 소거하기 위한 방법 {METHOD FOR WRITING TO AND ERASING A NON-VOLATILE MEMORY}
본 발명의 실시예는 비휘발성 메모리의 분야에 관한 것으로, 특히 비휘발성 메모리에 기록 및 소거하기 위한 컴퓨터로 구현되는 방법(computer-implemented method: 컴퓨터 구현 방법)에 관한 것이다.
HD-SIM(High-Density Subscriber Identity Module: 고밀도 가입자 식별 모듈) 카드와 같은 몇몇의 비휘발성 메모리 어플리케이션(application)은, 전형적인 플래쉬 장치(flash device), 예컨대 'not OR'(NOR) 장치의 시간보다 충분히 짧은 엄격한 명령 타이밍, 소거동작을 가진다. 추가적으로, 일부 어플리케이션에서는, 관련된 플래쉬 장치로의 전력이 많은 어플리케이션을 위해 전통적으로 수행되는 것과 같은 배경 소거동작을 수행할 기회가 있긴한데 조금밖에 없는 플래쉬 명령 사이에서 제거된다. HD-SIM 카드와 같은 어플리케이션에 더 실용적인 NOR 메모리를 만들기 위해 NOR 소거 시간을 저감하기 위한 시도가 행해진다. 그렇지만, NOR 플래쉬 메모리와 같은 비휘발성 메모리에 기록 및 소거하기 위한 방법의 평가에 있어서는 추가적인 개선이 필요하게 된다.
본 발명은 상기한 바와 같은 사정을 감안해서 이루어진 것으로, 개선된 비휘발성 메모리에 기록 및 소거하기 위한 방법을 제공하는 것을 목적으로 한다.
비휘발성 메모리에 기록 및 소거하기 위한 방법이 여기에 개시된다. 이하의 설명에서는, 본 발명의 실시예의 완벽한 이해를 제공하기 위해 특정의 소거 슬라이스 시간과 같은 많은 세부사항(specific details)이 나열된다. 당업자라면, 본 발명의 실시예가 이들 세부사항 없이도 실시될 수 있다는 것을 이해할 수 있을 것이다. 다른 경우, 비휘발성 메모리 내에서 클린 스페이스(clean space) 대 더티 스페이스(dirty space)를 결정하는 등의 잘 알려진 처리 동작은, 본 발명의 실시예를 불필요하게 불명료하게 하지 않도록 하기 위해 상세히 개시되지 않는다. 더욱이, 도면에 나타낸 각종의 실시예는 실례가 되는 표현으로, 반드시 일정한 비례로 확대[축소]하여 도시되지 않는다.
여기에 개시된 것은, 비휘발성 메모리에 기록하고 소거하기 위한 컴퓨터로 구현되는 방법이다. 하나의 실시예에 있어서, 이 방법은 비휘발성 메모리에 대한 동일한 시간 주기(time period)를 갖는 n개의 기록동작에 사용하기 위한 명령 윈도우(command window)의 사이즈를 결정하는 단계를 포함하고 있다. 긴 레이턴시 소거 명령은, 각각이 동일한 시간 주기를 갖는 복수의 소거 슬라이스를 제공하기 위해 n의 인자(factor)로 슬라이스된다. 이 방법은, 비휘발성 메모리에 대해 각각이 n개의 기록동작 중의 하나와 복수의 소거 슬라이스 중의 하나의 조합으로 이루어진 n개의 명령을 실행하는 단계를 더 포함하고 있다. 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계는 명령 윈도우의 사이즈보다 작거나 같다. 다른 실시예에 있어서, 비휘발성 메모리에 기록하고 소거하기 위한 컴퓨터로 구현되는 방법은, 비휘발성 메모리에 대한 동일한 시간 주기를 갖는 n개의 기록동작에 사용하기 위한 명령 윈도우의 사이즈를 동적으로 결정하는 단계를 포함하고 있다. 각각의 기록동작은 동일한 시간 주기를 갖고, 동적으로 결정하는 단계는 동적 레이턴시 소거 명령에 기초를 두고 있다. 동적으로 긴 레이턴시 소거 명령은, 각각이 동일한 시간 주기를 갖는 복수의 소거 슬라이스를 제공하기 위해 동적으로 긴 레이턴시 소거 명령을 n의 인자로 슬라이스된다. 동적으로 긴 레이턴시 소거 명령은 비휘발성 메모리의 실제 상태에 기초를 두고 있다. 이 방법은, 비휘발성 메모리에 대해 각각이 n개의 기록동작 중의 하나와 복수의 소거 슬라이스 중의 하나의 조합으로 이루어진 n개의 명령을 실행하는 단계를 더 포함하고 있다. 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계는 명령 윈도우의 사이즈보다 작거나 같다.
본 발명의 실시예에 따른 비휘발성 메모리에 기록하고 소거하기 위해 컴퓨터로 구현되는 방법은 보다 짧은 판독 및 기록동작 내에서 긴 레이턴시(latency) 소거동작을 숨기거나 교체할 수 있다. 하나의 실시예에서, 소거동작의 레이턴시는 일반적인 기록 명령의 타이밍 포락선 내에 맞추기 위해 소거동작을 복수의 기록 명령에 더해질 수 있는 시간 슬라이스(slice)로 나눔으로써 극복된다. 하나의 실시예에서, 기록 명령은 더해진 소거 시간에 기인해서 더 길어질 것이나, 실제로는 전형적으로 타이트(tight)한 명령 시간보다 여전히 더 적은 시간이 걸릴 것이다. 그래서, 완전한 소거동작은 다중의 기록 명령 이후에 완료될 수 있고, 레이턴트(latent)한 소거 명령을 떨어내는 능력을 제공한다.
하나의 실시예에서, 소거 슬라이싱(erase slicing)에 의한 접근법을 적용함으로써, NOR 플래쉬는 종래의 긴 소거 시간 때문에 적용될 수 없었던 어플리케이션에서 사용될 수 있다. 예를 들어, NOR 및, 더 좁은 범위로서, 'not AND'(NAND) 소거 시간은 기록 시간보다 전형적으로 더 길다. 이러한 소거 레이턴시를 처리할 수 없는 일부 어플리케이션이 존재할 수 있다. 종래의 접근법에서, 소거는 배경으로 보내져서 수행을 완료하는 것이 허용된다. 그러나, 그러한 접근법은 장치가 켜져 있으면서, 아이들(idle)일 것이 요구될 수 있다. 본 발명의 실시예에 따르면, 소거 슬라이싱에 의한 접근법을 적용함으로써, 아이들 배경 시간을 제공하지 않고, 아이들(idle) 동안 파워를 제공하지 않는 어플리케이션에서 NOR 플래쉬가 사용될 수 있다. 다른 실시예에서, 소거 슬라이싱에 의한 접근법을 적용함으로써, 어떤 플래쉬 메모리 구성은, 종래의 소거 사이클의 레이턴시를 지원하지 않는 명령 타임-아웃(time-out)에 대한 타이트한 타이밍 제약조건을 가지는 시스템에서 구현될 수 있다. 하나의 실시예에서, NOR 플래쉬는 종래의 방식으로 동작하던 플래쉬가 여기서 적용될 수는 없었던 전력 및 명령 타이밍을 적극적으로 제어하는 어플리케이션에서 구현된다.
도 1은 본 발명의 실시예에 따른 비휘발성 메모리에 기록 및 소거하기 위한 컴퓨터로 구현되는 방법에서의 동작을 나타내는 플로우차트이다.
도 2는 본 발명의 실시예에 따른 비휘발성 메모리에 기록 및 소거하기 위한 컴퓨터로 구현되는 방법을 블록 다이어그램 포맷으로 개념적으로 도시한다.
도 3은 본 발명의 실시예에 따른 비휘발성 메모리에 동적으로 기록 및 소거하기 위한 컴퓨터로 구현되는 방법에서의 동작을 나타내는 플로우차트이다.
도 4는 본 발명의 실시예에 따른 비휘발성 메모리에 동적으로 기록 및 소거하기 위한 컴퓨터로 구현되는 방법을 블록 다이어그램 포맷으로 개념적으로 도시한다.
도 5는 본 발명의 실시예에 따른 비휘발성 메모리에 기록 및 소거하거나 또는 비휘발성 메모리에 동적으로 기록 및 소거하기 위해 구성된 컴퓨터 시스템의 일례의 블록도를 도시한다.
컴퓨터로 구현되는 방법은 비휘발성 메모리에 기록하고 소거하기 위해 실행될 수 있다. 도 1은 본 발명의 실시예에 따른 비휘발성 메모리에 기록하고 소거하기 위해 컴퓨터로 구현되는 방법에서 동작을 나타내는 플로우차트(100)를 도시한다.
플로우차트(100)의 동작(102)을 참조하면, 비휘발성 메모리에 기록하고 소거하기 위해 컴퓨터로 구현되는 방법은 비휘발성 메모리를 위해 n개의 기록동작에서 사용하기 위한 명령 윈도우의 사이즈를 결정하는 것을 포함한다. 하나의 실시예에서, 각각의 기록동작은 동일한 시간 주기(time period)를 가진다. 본 발명의 실시예에 따르면, 비휘발성 메모리는 NOR 플래쉬 메모리이다.
플로우차트(100)의 동작(104)을 참조하면, 상기 방법은 복수의 소거 슬라이스를 제공하기 위해 n의 인자로 긴 레이턴시 소거 명령을 슬라이스하는 것을 포함한다. 실시예에서, 각각의 소거 슬라이스는 동일한 시간 주기를 가진다.
플로우차트(100)의 동작(106)을 참조하면, 상기 방법은 비휘발성 메모리로 n개의 명령을 실행하는 것을 포함하고, 각각의 명령은 n개의 기록동작 중의 하나와 소거 슬라이스 중의 하나의 조합으로 구성된다. 하나의 실시예에서, 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계는 명령 윈도우의 사이즈보다 작거나 같다. 하나의 실시예에서, 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계는 명령 윈도우의 사이즈보다 작다. 본 발명의 실시예에 따라서, n은 10이고, 명령 윈도우의 사이즈는 약 72 ms(milliseconds)이며, 하나의 소거 슬라이스의 시간 주기는 약 70 ms이고, 하나의 기록동작의 시간 주기는 약 2 ms이다. 그러나, 슬라이싱 접근법은 이러한 특정 파라미터에 한정되는 것은 아니라는 점을 이해해야 한다. 나아가, 상기 명령은 기록동작에 한정되지 않고, 소거 슬라이스는 예컨대 판독 명령에 대신 더해질 수 있다는 점을 이해해야 한다.
소거 윈도우 슬라이싱 접근법은 타임라인의 관점에서 시각화될 수 있다. 도 2는 본 발명의 실시예에 따른 비휘발성 메모리에 기록하고 소거하기 위해 컴퓨터로 구현되는 방법을 블록 다이어그램 포맷으로 개념적으로 도시한다.
도 2를 참조하면, 블록도 타임라인(200)은 종래의 복사 명령(204) 및 이어지는 종래의 레이턴시를 가지는 소거 명령(206)을 위해 관련된 절대 시간을 근사적으로 나타내는 선형 타임라인(202)을 포함한다. 실시예에서, 종래의 레이턴트한 소거 명령은 복구를 위한 긴 레이턴시 동작이고, 전형적으로 배경 아이들 시간(background idle time)에 수행된다. 그러나, 본 발명의 실시예에 따라서 구현된 소거 슬라이싱 접근법에서는, 소거 슬라이싱이 종래의 레이턴트 소거 명령(206)의 긴 레이턴시 복구 동작을 취하고, 이것을 다중의 기록 (프로그램) 동작들(208)로 슬라이스한다. 따라서, 하나의 실시예에서, 긴 레이턴시 소거 명령(206)을 제거하기 위한 방법은 소거 시간을 기록동작에 더해질 소거 슬라이스로 나눔으로써 수행된다. 하나의 실시예에서, 기록 (프로그램) 명령 윈도우는 예컨대 100 ms이어서, 예컨대 700 ms의 종래의 소거 명령은 단일한 기록 (프로그램) 명령 윈도우에 적합하지 않을 것이다. 그래서, 하나의 실시예에서, 700 ms의 소거 시간은 각각 70 ms의 10개의 슬라이스로 나누어진다. 이 실시예에서, 도 2에서 도시된 바와 같이, 각각 70 ms의 소거 슬라이스는 각 명령을 위한 총 72 ms의 시간을 위해 10개의 대응하는 2 ms 기록 (프로그램) 시간 주기에 더해질 수 있다. 각각의 기록 (프로그램) 명령을 위한 총 72 ms의 시간은 100 ms의 명령 윈도우에 적합하다.
상술한 바와 같이, 예를 들어 NOR 플래쉬와 관련된 긴 레이턴시 소거 시간을 다룰 수 없는 일부 시스템이 있다. 일례로, NOR를 사용하는 HD-SIM 카드는, HD-SIM-타입 어플리케이션과의 호환성을 허용하기 위해 상술한 소거 슬라이싱 접근법을 이용하는 것이 필요할 수 있다. 일 실시예에서, 소거 슬라이싱은 긴 레이턴시 소거동작을, 기록 명령에 더해지는 다중 세그먼트로 나눈다. 상기 실시예에서, 상기 소거 시간은 효과적으로 사라지게 한다. 그러나, 이러한 점에서 기재된 상기 소거 슬라이싱은 고정된 사이즈 소거 슬라이싱에 초점이 맞추어져 온 것에 주목된다. 실시예에서, 동일한 소거 시간 지속이 각 기록 명령에 더해진다. 본 발명의 다른 실시예에서, 후술하는 바와 같이, 상기 소거 시간 슬라이스 사이즈를 변경하여 상기 소거 백로그 시간과 매치시키는 방법이 구현된다. 일 실시예에서, 그러한 동적 접근법은 시스템의 어떤 실제 상태, 일종의 소거 시간 슬라이싱으로의 실시간 접근법에 더 잘 반응한다.
본 발명의 일 실시예에 따르면, 동적 소거 슬라이싱은, 더티 스페이스(dirty space)(소거를 요구하는 스페이스)가 증가함에 따라 소거 슬라이스에 할당된 상기 소거 시간을 증가시킴으로써 구현된다. 일 실시예에서, 상기 동적 접근법은, 동적 소거 시간 슬라이싱을 수행하도록 구성된 비휘발성 메모리를 포함하는 특정 시스템의 수행을 증가시킨다. 일 실시예에서, 동적 접근법은, 조건이 허용되는대로 호스트가 소거에 할당된 시간을 증가시키도록 하거나, 소거 백로그가 증가함에 따라 소거 시간을 자동으로 증가시키거나, 상기 소거 백로그가 증가함에 따라 소거 시간을 증가시키기 위한 호스트에 권고(recommendation)를 제공하는 것과 같은, 상기 소거 시간 슬라이스의 사이즈를 변경하기 위한 기술에 기초를 두고 있지만, 이에 한정되지 않는다. 일 실시예에서, 상술한 고정 사이즈 소거 슬라이싱은 모든 기록 명령에 동일한 소거 시간을 더하도록 구성된다. 그러나, 동적 접근법 하에, 더욱 상세하게 후술하는 바와 같이, 호스트는 상기 소거 백로그가 증가 또는 감소함에 따라 소거 슬라이스의 시간 주기의 사이즈를 증가 또는 감소시키거나 또는 자동으로 증가 또는 감소시킬 수 있다.
일 실시예에서, 비휘발성 메모리에서 관리되는 영역(managed area)의 밀도에 비하여 상당한 양의 프리 스페이스(free space)가 존재할 때, 시스템은 기록 명령의 분명한 수행을 향상시키기 위해 소거 슬라이스 사이즈에 할당된 시간을 감소시킬 수 있다. 이와 달리, 다른 실시예에서는, 비휘발성 메모리에서 관리되는 영역의 밀도에 비하여 프리 스페이스의 양이 작을 때, 시스템은 플래쉬 풀 상황(flash full situation)을 방지하는 것을 돕기 위해 소거 슬라이스 사이즈에 할당된 시간을 증가시킬 수 있다. 따라서, 일 실시예에서, 상술한 고정 소거 시간 슬라이싱과 다른 동적 소거 시간 슬라이싱은 시스템이 NOR 플래쉬 메모리와 같은 비휘발성 메모리의 실제 상태에 응답하는 것을 허용한다. 일 실시예에서, 동적 소거 슬라이싱은 상기 소거 슬라이스 시간이 상기 플래쉬 메모리의 상태에 기초하여 증가되거나 감소되는 것을 허용한다. 특정 실시예에서, 상기 플래쉬 메모리의 상태가 상당한 프리 스페이스를 갖는다면, 상기 소거 시간 슬라이스는 시스템의 수행을 향상시키기 위해 감소될 수 있다. 대조적으로, 대체 가능한 특정 실시예에서, 상기 플래쉬 메모리의 상태가 상당한 더티 스페이스를 갖는다면, 상기 소거 시간 슬라이스는 더 많은 소거 시간을 허용하기 위해 증가될 수 있다. 일 실시예에서, 동적 소거 시간 슬라이싱을 실행하는 것은 명령 동작을 위해 매우 타이트한 윈도우를 갖는 HD-SIM 카드와 같은 어플리케이션에서 소거동작이 에러를 발생시키는 것을 방지하는 것을 돕는다. 일 실시예에서, 소거동작의 긴 레이턴시와 관련된 에러를 방지하는 것을 도움으로써, NOR 플래쉬가, 그렇지 않으면 적절하지 않을 어플리케이션에서 실행될 수 있다.
따라서, 컴퓨터로 구현되는 방법이 비휘발성 메모리에 동적으로 기록하고 비휘발성 메모리를 소거하기 위해 실행될 수 있다. 도 3은 본 발명의 일 실시예에 따른 비휘발성 메모리에 동적으로 기록하고 비휘발성 메모리를 소거하기 위한 컴퓨터로 구현되는 방법에서 동작을 나타내는 플로우차트(300)를 도시한다.
플로우차트(300)의 동작(302)을 참조하면, 비휘발성 메모리에 동적으로 기록하고 비휘발성 메모리를 소거하기 위한 컴퓨터로 구현되는 방법은, 비휘발성 메모리를 위한 n개의 기록동작에서의 사용을 위한 명령 윈도우의 사이즈를 동적으로 결정하는 것을 포함한다. 일 실시예에서, 각 기록동작은 동일한 시간 주기를 가지며, 상기 동적으로 결정하는 것은 동적 레이턴시 소거 명령에 기초를 두고 있다. 본 발명의 일 실시예에 따르면, 상기 비휘발성 메모리는 NOR 플래쉬 메모리이다.
플로우차트(300)의 동작(304)을 참조하면, 상기 방법은 n의 인자에 의해 상기 동적 긴 레이턴시 소거 명령을 슬라이싱하여 복수의 소거 슬라이스를 제공하는 것을 포함하고 있다. 일 실시예에서, 각 소거 슬라이스는 동일한 시간 주기를 가지며, 상기 동적 긴 레이턴시 소거 명령은 상기 비휘발성 메모리의 실제 상태에 기초를 두고 있다. 본 발명의 일 실시예에 따르면, 상기 비휘발성 메모리의 실제 상태는 작은 소거 백로그로 구성되고, 상기 동적 레이턴시 소거 명령은 약 500 ms이다. 본 발명의 다른 실시예에 따르면, 상기 비휘발성 메모리의 실제 상태는 큰 소거 백로그로 구성되고, 상기 동적 레이턴시 소거 명령은 약 1500 ms이다. 일 실시예에서, 액세스 어레이는 상기 비휘발성 메모리의 어느 섹터가 더티한지를 결정하는데 사용되고, 따라서 상기 비휘발성 메모리의 실제 상태를 결정하기 위해 실행된다. 특정 실시예에서, 상기 액세스 어레이는 관련된 랜덤-액세스 메모리(RAM)에 저장된 표에 제공된다. 그러나, 다른 특정 실시예에서, 상기 액세스 어레이는 관련된 RAM 이외의 관련된 장치 또는 영역에 저장된 표에 제공된다.
플로우차트(300)의 동작(306)을 참조하면, 방법은 비휘발성 메모리에 n개의 명령(command)을 실행시키는 것을 포함하고, 각각의 명령은 n개의 기록동작 중 하나와 소거 슬라이스(erase slice) 중의 하나의 조합으로 구성된다. 실시예에 있어서,하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계는 명령 윈도우의 사이즈보다 작거나 같다. 일 실시예에 있어서, 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계는 명령 윈도우의 사이즈보다 작다. 본 발명의 실시예에 따르면, n은 10이고, 명령 윈도우의 크기는 약 52 ms, 하나의 소거 슬라이스의 시간 주기는 약 50 ms, 하나의 기록동작의 시간 주기는 약 2 ms이다. 다른 실시예에 있어서, n은 10이고, 명령 윈도우의 사이즈는 약 152 ms, 하나의 소거 슬라이스의 시간 주기는 약 150 ms, 하나의 기록동작의 시간 사이즈는 약 2 ms이다. 그러나, 슬라이싱 접근법(slicing approach)은 다른 실시예에서 제공된 상세한 파라미터를 제한하지 않는 것으로 이해해야 한다. 더욱이, 명령은 기록동작을 제한하지는 않지만, 소거 슬라이스는 예를 들어 판독 명령(read command) 대신에 더할 수 있다고 이해해야 한다.
동적 소거 윈도우 슬라이싱 접근법(dynamic erase window slicing approach)은 타임라인(timeline)에 관련하여 그려진다. 도 4는 본 발명의 실시예에 따른 비휘발성 메모리를 소거하는 것과 동적으로 기록하는 것을 위한 컴퓨터로 구현되는 방법을, 블록 다이어그램 포맷으로, 개념적으로 도시한다.
도 4를 참조하면, 블록 다이어그램 타임라인(400)은 두 개의 다른 동적인 슬라이싱 실행(slicing implementations: 410 및 420)에 대한 상대적인 절대 시간을 근사적으로 표시하는 선형 타임라인(402)을 포함한다. 도 2로부터 돌아와서, 본 발명의 실시예에 있어서, 소거 슬라이싱 접근법은 형식적으로 레이턴트하는 소거 명령의 긴 레이턴시 재생(reclaim) 동작을 하고 여러 다중 기록(프로그램) 동작을 통해 그것을 슬라이스한다. 본 실시예에 있어서, 슬라이스의 사이즈는 비휘발성 메모리의 실제 상태(예컨대, 더티 스페이스(dirty space)의 양)에 의존하여, 여러 상황 내에서 변화할 것이고 동적으로 결정된다. 그러나, 이런 실시예 중 어느 것에 있어서도, 긴 레이턴시 소거 명령을 제거하는 방법은 기록동작에 더해지는 소거 슬라이스로 소거 시간(erase time)을 분할함으로써 여전히 수행된다.
일 실시예에 있어서, (더티 비휘발성 메모리보다 적은) 500 ms의 소거 시간은 50 ms의 10개의 슬라이스로 각각 분할된다. 실시예에 있어서, 각각의 50 ms 소거 슬라이스는 도 4의 명령 윈도우(410)의 대다수에 묘사된대로, 각각의 명령에 대한 52 ms의 합계 시간에 대해 10개의 대응되는 2 ms 기록(프로그램) 시간 주기에 더해질 수 있다. 다른 실시예에 있어서, (더티 비휘발성 메모리보다 많은) 1500 ms 소거 시간은 150 ms의 10개의 슬라이스로 각각 분할된다. 실시예에 있어서, 각각의 150 ms의 소거 슬라이스는 도 4의 명령 윈도우(420)의 대다수에 묘사된대로, 각각의 명령에 대한 152 ms의 합계 시간에 대해 10개의 대응되는 2 ms 기록(프로그램) 시간 주기에 더해질 수 있다. 따라서, 본 발명의 실시예에 따르면, 다수의 프로그램 윈도우의 각각의 사이즈는 프로그램 명령의 대다수가 적용되는 비휘발성 메모리의 실제 상태를 기초로 하여 동적으로 결정된다. 예컨대, 일 실시예에 있어서는, 작은 소거 백로그(erase backlog)가 있고 슬라이스 시간은 프로그램 명령의 성능에 있어서 인식되는 개선을 제공하기 위해 저감될 수 있다. 다른 실시예에 있어서는, 큰 소거 백로그가 있고 슬라이스 시간은 전경 소거 이벤트(foreground erase event)의 기회를 감소시키기 위해 증가된다.
실시예에 있어서, 본 발명은 본 발명의 실시예에 따라 프로세스를 수행하기 위해 컴퓨터 시스템(또는 다른 전자 장치)을 프로그래밍하기 위해 이용되는 명령을 그 안에 저장하고 있는 머신-판독 가능 매체를 포함하는 컴퓨터 프로그램 제품(product), 또는 소프트웨어 제품으로서 제공된다. 머신-판독 가능 매체는 머신(예컨대, 컴퓨터)에 의해 판독 가능한 형태로 정보를 전송 또는 저장하기 위한 어떠한 메카니즘을 포함할 수 있다. 예컨대, 실시예에 있어서, 머신-판독 가능 (예컨대, 컴퓨터-판독 가능) 매체는 머신(예컨대, 컴퓨터) 저장매체(예컨대, ROM, RAM, 자기 디스크 저장매체, 광학 저장매체, 플래쉬 메모리 장치 등등), 머신(예컨대, 컴퓨터) 판독 가능 전송 매체(전기적, 광학적, 음향적, 또는 전파된 신호(캐리어 웨이브, 적외선 신호, 디지털 신호, 등등)의 다른 형태)등을 포함한다. 실시예에 있어서, 여기서 "컴퓨터로 구현되는"이란 단어의 사용은 "프로세서로 구현되는"을 의미한다. 일 실시예에 있어서, 여기서 묘사된 방법 중의 하나는 컴퓨터 그 자체는 아니지만 프로세서를 구비한 휴대폰과 같은 휴대 장치에서 실행된다.
도 5는 머신이 여기서 언급된 적어도 하나의 어떤 방법론을 수행하기 위한 요인이 되는 한 세트의 명령 내에서 컴퓨터 시스템(500) 형태의 머신이 실행되는 도식적인 표를 도시한다. 예컨대 본 발명의 일 실시예에 따르면, 도 5는 동적으로 기록하고 소거할 수 있는 비휘발성 메모리 또는 기록하고 소거할 수 있는 비휘발성 메모리로 구성된 컴퓨터 시스템에 대한 예시의 블록도를 도시한다. 또 다른 실시예에서, 머신은 랜(LAN), 인트라넷(intranet), 익스트라넷(extranet), 또는 인터넷으로 다른 장치에 연결된다(예컨대, 네트워크된다). 일 실시예에서, 머신은 클라이언트-서버 네트워크 환경에서 서버 장치 또는 클라이언트 장치의 역할로 동작하고, 또는 피어 투 피어(peer to peer)(또는 분산) 네트워크 환경에서 피어 장치(peer device)로써 동작한다. 일 실시예에서, 그 머신은 개인용 컴퓨터(Personal computer: PC), 테이블 PC, 셋톱 박스, PDA, 셀룰러폰, 웹 어플라이언스(web appliance), 서버, 네트워크 라우터, 스위치 또는 브릿지, 또는 머신에 의해서 얻어진 동작을 지정하는 한 세트의 명령을 (순차적으로 또는 그 밖의 다른 방법으로) 처리할 수 있는 어떤 장치 등이다. 더욱이, 오직 단일 머신이 예시된 경우에, "머신"은 여기서 언급하는 어떤 적어도 하나 이상의 방법론을 수행하기 위한 한 세트(또는 다중 세트)의 명령을 개별적으로 또는 공동으로 실행하는 어떤 집단의 장치를 포함하도록 채용될 수도 있다.
컴퓨터 시스템(500)의 예는 버스(530)를 통하여 그 밖의 것들과 각각 통신하는 프로세서(502), 메인 메모리(504)(예컨대, ROM, 플래쉬 메모리, SDRAM이나 RDRAM와 같은 DRAM), 정적 메모리(static memory; 506)(예컨대, 플래쉬 메모리, SRAM), 및 보조 메모리(secondary memory; 518)(예컨대, 데이터 저장 장치) 등이 포함된다.
프로세서(502)는 적어도 하나 이상의 일반 목적의 프로세싱 장치로서, 마이크로 프로세서, 중앙 처리 장치(CPU)와 같은 것이다. 특히, 일 실시예에서, 프로세서(502)는 CISC(Complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(Very long instruction word) 마이크로프로세서, 그 밖의 명령 세트를 실행하는 프로세서, 또는 조합된 명령 세트를 실행하는 프로세서 등이다. 일 실시예에서, 프로세서(502)는 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor), 네트워크 프로세서, 또는 그와 같은 적어도 하나 이상의 특별한 목적의 프로세싱 장치이다. 프로세서(502)는 여기서 언급한 동작을 수행하기 위한 프로세싱 로직(526)을 실행한다.
일 실시예에서, 컴퓨터 시스템(500)은 네트워크 인터페이스 장치(508)을 더 포함한다. 또한, 일 실시예에서 컴퓨터 시스템(500)은 비디오 디스플레이부(video display unit; 510)(예컨대, 액정 표시 장치(LCD), 음극선관(CRT)), 알파뉴메릭(alphanumeric) 입력 장치(512)(예컨대, 키보드), 커서 컨트롤 장치(514)(예컨대, 마우스), 및 신호 발생 장치(516)(예컨대, 스피커)를 포함한다.
일 실시예에서, 보조 메모리(518)는 여기서 설명하는 기능 또는 적어도 하나 이상의 방법을 구체화하는 적어도 하나 이상의 명령 세트를 저장하는 머신 액세서 가능한 저장매체(또는 특히 컴퓨터 판독 가능한 저장매체)를 포함한다. 일 실시예에서, 소프트웨어(522)는 컴퓨터 시스템(500)에 의해 그것의 실행 중에 완전히 또는 최소한 부분적으로 메인 메모리(504) 또는 프로세서(502) 내에, 또한 메인 메모리(504) 및 프로세서(502)가 머신 판독 가능한 저장매체를 구성하는 곳에 존재한다. 일 실시예에서, 소프트웨어(522)는 네트워크 인터페이스 장치(508)를 통해 네트워크(520)로 더 송수신된다.
머신 액세스 가능한 저장매체(531)는 단일 매체로 된 일 실시예에서 나타내어진 반면, "머신 판독 가능한 저장매체"는 하나 이상의 명령 세트를 저장하는 단일 매체 또는 복수 매체(예컨대, 중앙 데이터베이스 또는 분산 데이타베이스, 또는 관련 캐쉬 및 서버)를 포함하도록 채용될 수 있다. 또한, "머신 판독 가능한 저장매체"는 머신이 본 발명의 실시예의 적어도 하나 이상의 방법을 수행하기 위한 원인 및 머신에 의한 실행에서 한 세트의 명령을 저장 또는 엔코딩(encoding)하는 성능의 어떤 매체를 포함하도록 채용될 수 있다. "머신 판독 가능한 저장매체"는 그러한 이유로 고체 상태 메모리, 광학적 및 자기적 매체를 포함할 수 있으나, 이에 한정되지는 않는다.
본 발명의 일 실시예에 따르면, 소프트웨어 층은 기록 명령을 관리하고 각 기록 명령에 소거 슬라이스를 더한다. 또한, 일 실시예에서 소프트웨어 층은 소거 상태 및 과정을 추적한다. 따라서, 일 실시예에서 여기서 설명된 어떤 방법은 기록 명령에 소거 슬라이스를 더함으로써 그리고 소거 상태 및 과정을 추적하는 작업을 수행한다. 일 실시예에서, 그 방법은 기록 명령에 더해지고 관리될 수 있는 슬라이스로 긴 레이턴시 소거 시간(long latency erase time)을 분할함으로써, 긴 레이턴시 소거 시간을 제거한다. 동적 소거 슬라이싱(dynamic erase slicing)과 관련된 실시예에서, 소프트웨어 층은 소거 시간 슬라이스에 할당된 시간을 관리하기 위해 실시될 수 있다. 일 실시예에서, 소프트웨어 층은 증가된 또는 감소된 소거 시간을 허용한다. 특정 실시예에서, 소프트웨어 층은 프리 스페이스 대 더티 스페이스의 현재 플래쉬 상태에 기초하여 자동으로 소거 슬라이스를 증가하거나 감소한다. 일 실시예에서, 소프트웨어 층은 소거 슬라이스 시간을 설정하기 위한 권고를 생성하고, 플래쉬에서 프리 스페이스 대 더티 스페이스를 지시한다. 일 실시예에서, 슬라이싱 명령은 슬라이싱이 적용되는 플래쉬 메모리에 저장되고, 슬라이싱 명령은 플래쉬 메모리에서 실행된다. 또 다른 실시예에서, 슬라이싱 명령은 슬라이싱이 적용되는 플래쉬 메모리에 저장되고, 슬라이싱 명령은 플래쉬 메모리와 관련된 호스트 프로세서의 RAM에서 실행된다.
본 발명의 일 실시예에 따르면, 머신 액세스가능한 저장매체(machine-accessible storage medium)는 그 안에 저장되되 데이터 처리 시스템이 비휘발성 메모리에 기록하고 소거하기 위한 방법을 수행하도록 하는 명령을 가진다. 일 실시예에서는, 상기 방법은 상기 비휘발성 메모리에 대한 동일한 시간 주기를 갖는 n개의 기록동작에 사용하기 위한 명령 윈도우의 사이즈를 결정하는 단계를 포함하고 있다. 상기 방법은, 각각이 동일한 시간 주기를 갖는 복수의 소거 슬라이스를 제공하기 위해 긴 레이턴시 소거 명령을 n의 인자로 슬라이스하는 단계를 더 포함하고 있다. 상기 방법은, 상기 비휘발성 메모리에 대해 각각이 상기 n개의 기록동작 중의 하나와 상기 복수의 소거 슬라이스 중의 하나의 조합으로 이루어진 n개의 명령을 실행하는 단계를 포함하되, 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작거나 같다.
상기 머신 액세스가능한 저장매체의 일 실시예에서는, 상기 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작다. 상기 머신 액세스가능한 저장매체의 일 실시예에서는, 상기 비휘발성 메모리가 NOR 플래쉬 메모리이다. 상기 머신 액세스가능한 저장매체의 일 실시예에서는, n이 10이고, 상기 명령 윈도우의 사이즈가 약 72 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 70 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms이다. 상기 머신 액세스가능한 저장매체의 일 실시예에서는, 상기 명령 윈도우의 사이즈를 결정하는 단계가 동적으로 수행되고 동적 레이턴시 소거 명령에 기초를 두고 있으며, 상기 긴 레이턴시 소거 명령을 슬라이스하는 단계가 동적으로 긴 레이턴시 소거 명령을 슬라이스하는 단계를 구비하고 있고, 상기 동적으로 긴 레이턴시 소거 명령이 상기 비휘발성 메모리의 실제 상태에 기초를 두고 있다. 상기 동적 레이턴시 소거 명령을 포함하는 하나의 그러일 실시예에서는, 상기 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작다. 상기 동적 레이턴시 소거 명령을 포함하는 다른 그러일 실시예에서는, 상기 비휘발성 메모리가 NOR 플래쉬 메모리이다. 하나의 실시예에서는, n이 10이고, 상기 명령 윈도우의 사이즈가 약 52 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 50 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms이다. 다른 실시예에서는, n이 10이고, 상기 명령 윈도우의 사이즈가 약 152 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 150 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms이다. 따라서, 본 발명의 일 실시예에 따르면, 복수의 프로그램 윈도우의 각각의 사이즈는 복수의 프로그램 명령이 인가되는 비휘발성 메모리의 실제 상태에 기초해서 동적으로 결정된다. 예컨대, 하나의 실시예에서는, 작은 소거 백로그(backlog)가 있고 슬라이스 시간은 프로그램 명령의 성능에 있어서 인식되는 개선을 제공하기 위해 저감될 수 있다. 다른 실시예에서는, 큰 소거 백로그가 있고 슬라이스 시간은 전경 소거 이벤트(foreground erase event)의 기회를 줄이기 위해 증가된다.
본 발명의 일 실시예에 따르면, 여기에 개시되는 방법 및 접근법(approach)은, 소거 명령의 긴 레이턴시를 제거하기 위해 NOR 플래쉬와 같은 비휘발성 메모리에 따라 구현될 수 있다. 일 실시예에 있어서, 소거 슬라이싱과 함께 동작하도록 구성된 NOR 플래쉬는, 작은 명령 윈도우, 공격적인 전력 관리를 갖거나, 또는 배경 동작을 위한 시간이 제한되거나 없는 어플리케이션에서의 그러한 플래쉬 메모리의 사용을 가능하게 한다. 하나의 실시예에서는, 고정된 시간 슬라이스가 구현된다. 그렇지만, 다른 실시예에서는, 소거 시간 슬라이스를 플래쉬 메모리의 상태에 매치시키는 것을 용이하게 하는 동적 슬라이싱(dynamic slicing)이 구현된다. 그 실시예에서는, 소거 시간 슬라이스의 사이즈(절대시간의 사이즈)는 필요에 따라 증가되거나 감소된다. 하나의 실시예에 있어서, 소거 시간 슬라이스를 증가시키는 것은 소거에 더 많은 시간을 할당하여 시스템이 고정된 시간 슬라이스보다 더 많은 스페이스를 클린하게 하도록 한다. 다른 실시예에 있어서, 시간 슬라이스를 감소시키는 것은 시스템이 고정된 시간 슬라이스보다 더 잘 시스템에 반응하는 것처럼 보이도록 한다.
따라서, 비휘발성 메모리에 기록하고 소거하기 위한 컴퓨터로 구현되는 방법이 개시된다. 본 발명의 일 실시예에 따르면, 이 방법은, 비휘발성 메모리에 대한 동일한 시간 주기를 갖는 n개의 기록동작에 사용하기 위한 명령 윈도우의 사이즈를 결정하는 단계를 포함하고 있다. 긴 레이턴시 소거 명령은, 각각이 동일한 시간 주기를 갖는 복수의 소거 슬라이스를 제공하기 위해 n의 인자로 슬라이스된다. 이 방법은, 비휘발성 메모리에 대해 각각이 n개의 기록동작 중의 하나와 복수의 소거 슬라이스 중의 하나의 조합으로 이루어진 n개의 명령을 실행하는 단계를 더 포함하고 있다. 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계는 명령 윈도우의 사이즈보다 작거나 같다. 하나의 실시예에서는, 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 명령 윈도우의 사이즈보다 작다. 하나의 실시예에서는, 비휘발성 메모리가 NOR 플래쉬 메모리이다.

Claims (20)

  1. 비휘발성 메모리에 기록하고 소거하기 위한 컴퓨터로 구현되는 방법으로서,
    상기 비휘발성 메모리에 대한 동일한 시간 주기를 갖는 n개의 기록동작에 사용하기 위한 명령 윈도우의 사이즈를 결정하는 단계;
    각각이 동일한 시간 주기를 갖는 복수의 소거 슬라이스를 제공하기 위해 긴 레이턴시 소거 명령을 n의 인자로 슬라이스하는 단계; 및
    상기 비휘발성 메모리에 대해 각각이 상기 n개의 기록동작 중의 하나와 상기 복수의 소거 슬라이스 중의 하나의 조합으로 이루어진 n개의 명령을 실행하는 단계를 구비하되,
    하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작거나 같은 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서, 상기 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작은 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서, 상기 비휘발성 메모리가 NOR 플래쉬 메모리인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 제1항에 있어서, n이 10이고, 상기 명령 윈도우의 사이즈가 약 72 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 70 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 비휘발성 메모리에 기록하고 소거하기 위한 컴퓨터로 구현되는 방법으로서,
    동적 레이턴시 소거 명령에 기초해서, 상기 비휘발성 메모리에 대한 동일한 시간 주기를 갖는 n개의 기록동작에 사용하기 위한 명령 윈도우의 사이즈를 동적으로 결정하는 단계;
    각각이 동일한 시간 주기를 갖는 복수의 소거 슬라이스를 제공하기 위해, 상기 비휘발성 메모리의 실제 상태에 기초를 둔 동적으로 긴 레이턴시 소거 명령을 n의 인자로 슬라이스하는 단계; 및
    상기 비휘발성 메모리에 대해 각각이 상기 n개의 기록동작 중의 하나와 상기 복수의 소거 슬라이스 중의 하나의 조합으로 이루어진 n개의 명령을 실행하는 단계를 구비하되,
    하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작거나 같은 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 제5항에 있어서, 상기 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작은 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 제5항에 있어서, 상기 비휘발성 메모리가 NOR 플래쉬 메모리인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 제5항에 있어서, n이 10이고, 상기 명령 윈도우의 사이즈가 약 52 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 50 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 제5항에 있어서, n이 10이고, 상기 명령 윈도우의 사이즈가 약 152 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 150 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  10. 제5항에 있어서, 상기 비휘발성 메모리의 실제 상태가 작은 소거 백로그를 구비하고 있고, 상기 동적 레이턴시 소거 명령이 약 500 ms인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  11. 제5항에 있어서, 상기 비휘발성 메모리의 실제 상태가 작은 소거 백로그를 구비하고 있고, 상기 동적 레이턴시 소거 명령이 약 1500 ms인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  12. 데이터 처리 시스템이 비휘발성 메모리에 기록하고 소거하기 위한 방법을 수행하도록 하는 명령이 그 안에 저장된 머신 액세스가능한 저장매체로서, 상기 방법이;
    상기 비휘발성 메모리에 대한 동일한 시간 주기를 갖는 n개의 기록동작에 사용하기 위한 명령 윈도우의 사이즈를 결정하는 단계;
    각각이 동일한 시간 주기를 갖는 복수의 소거 슬라이스를 제공하기 위해 긴 레이턴시 소거 명령을 n의 인자로 슬라이스하는 단계; 및
    상기 비휘발성 메모리에 대해 각각이 상기 n개의 기록동작 중의 하나와 상기 복수의 소거 슬라이스 중의 하나의 조합으로 이루어진 n개의 명령을 실행하는 단계를 구비하되,
    하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작거나 같은 것을 특징으로 하는 머신 액세스가능한 저장매체.
  13. 제12항에 있어서, 상기 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작은 것을 특징으로 하는 머신 액세스가능한 저장매체.
  14. 제12항에 있어서, 상기 비휘발성 메모리가 NOR 플래쉬 메모리인 것을 특징으로 하는 머신 액세스가능한 저장매체.
  15. 제12항에 있어서, n이 10이고, 상기 명령 윈도우의 사이즈가 약 72 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 70 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms인 것을 특징으로 하는 머신 액세스가능한 저장매체.
  16. 제12항에 있어서, 상기 명령 윈도우의 사이즈를 결정하는 단계가 동적으로 수행되고 동적 레이턴시 소거 명령에 기초를 두고 있으며, 상기 긴 레이턴시 소거 명령을 슬라이스하는 단계가 동적으로 긴 레이턴시 소거 명령을 슬라이스하는 단계를 구비하고 있고, 상기 동적으로 긴 레이턴시 소거 명령이 상기 비휘발성 메모리의 실제 상태에 기초를 두고 있는 것을 특징으로 하는 머신 액세스가능한 저장매체.
  17. 제16항에 있어서, 상기 하나의 기록동작의 시간 주기에 더해지는 하나의 소거 슬라이스의 시간 주기의 합계가 상기 명령 윈도우의 사이즈보다 작은 것을 특징으로 하는 머신 액세스가능한 저장매체.
  18. 제16항에 있어서, 상기 비휘발성 메모리가 NOR 플래쉬 메모리인 것을 특징으로 하는 머신 액세스가능한 저장매체.
  19. 제16항에 있어서, n이 10이고, 상기 명령 윈도우의 사이즈가 약 52 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 50 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms인 것을 특징으로 하는 머신 액세스가능한 저장매체.
  20. 제16항에 있어서, n이 10이고, 상기 명령 윈도우의 사이즈가 약 152 ms이며, 상기 하나의 소거 슬라이스의 시간 주기가 약 150 ms이고, 상기 하나의 기록동작의 시간 주기가 약 2 ms인 것을 특징으로 하는 머신 액세스가능한 저장매체.
KR1020100034401A 2009-04-14 2010-04-14 비휘발성 메모리에 기록 및 소거하기 위한 방법 KR101575369B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/423,226 2009-04-14
US12/423,226 US8078796B2 (en) 2009-04-14 2009-04-14 Method for writing to and erasing a non-volatile memory

Publications (2)

Publication Number Publication Date
KR20100113994A true KR20100113994A (ko) 2010-10-22
KR101575369B1 KR101575369B1 (ko) 2015-12-09

Family

ID=42932604

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100034401A KR101575369B1 (ko) 2009-04-14 2010-04-14 비휘발성 메모리에 기록 및 소거하기 위한 방법

Country Status (6)

Country Link
US (1) US8078796B2 (ko)
JP (1) JP5624797B2 (ko)
KR (1) KR101575369B1 (ko)
CN (1) CN101866692B (ko)
DE (1) DE102010014781A1 (ko)
SG (1) SG166068A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9612773B2 (en) 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102013031B (zh) * 2010-12-17 2014-05-28 苏州国芯科技有限公司 一种小容量sd卡的读写方法
US10230948B2 (en) * 2016-02-03 2019-03-12 Mediatek Inc. Video transmitting system with on-the-fly encoding and on-the-fly delivering and associated video receiving system
US11366753B2 (en) * 2018-07-31 2022-06-21 Marvell Asia Pte Ltd Controlling performance of a solid state drive

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0663083B1 (en) * 1992-09-29 2000-12-20 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
DE10030990B4 (de) * 2000-06-30 2010-11-25 Robert Bosch Gmbh Verfahren zum Beschreiben und Löschen eines nichtflüchtigen Speicherbereichs
JP2008146341A (ja) * 2006-12-08 2008-06-26 Sharp Corp 不揮発性半導体記憶装置及びその処理方法
JP2008146742A (ja) * 2006-12-08 2008-06-26 Sharp Corp 不揮発性半導体記憶装置及びその処理方法
JP2008192271A (ja) * 2007-02-08 2008-08-21 Nec Electronics Corp 半導体装置及びそのテスト方法
JP2010079758A (ja) * 2008-09-29 2010-04-08 Panasonic Corp 不揮発性メモリの自動書き換え中断方法と不揮発性メモリおよびマイクロコンピュータ
JP2010182216A (ja) * 2009-02-09 2010-08-19 Panasonic Corp メモリコントローラ、不揮発性記憶装置、不揮発性記憶システムおよびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9612773B2 (en) 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof

Also Published As

Publication number Publication date
JP5624797B2 (ja) 2014-11-12
SG166068A1 (en) 2010-11-29
JP2010250932A (ja) 2010-11-04
DE102010014781A1 (de) 2010-11-11
US20100262756A1 (en) 2010-10-14
KR101575369B1 (ko) 2015-12-09
CN101866692B (zh) 2014-11-26
US8078796B2 (en) 2011-12-13
CN101866692A (zh) 2010-10-20

Similar Documents

Publication Publication Date Title
US9141526B2 (en) Reclaiming units by searching units for a predetermined criterion and storing data from a valid subunit
US10303371B2 (en) Data storage device that stabilizes write latency
US9927985B2 (en) Method of dynamic table journaling
US20130007488A1 (en) Power management of a storage device including multiple processing cores
US20070204270A1 (en) Apparatus and method for processing operations of nonvolatile memory in order of priority
JP6677627B2 (ja) 情報処理装置およびメモリアクセス方法
CN105637470B (zh) 用于脏数据管理的方法和计算设备
CN108897492B (zh) 一种数据写入方法和装置
KR20190101095A (ko) 키-밸류 스토리지 장치 및 이의 동작 방법
US10089266B2 (en) Power saving feature for storage subsystems
US20160274819A1 (en) Memory system including host and a plurality of storage devices and data migration method thereof
US11138104B2 (en) Selection of mass storage device streams for garbage collection based on logical saturation
KR101575369B1 (ko) 비휘발성 메모리에 기록 및 소거하기 위한 방법
CN112749101A (zh) 控制器和存储器系统
CN109343796A (zh) 一种数据处理方法和装置
KR101996641B1 (ko) 메모리 오버레이 장치 및 방법
CN113923472B (zh) 视频内容分析方法、装置、电子设备及存储介质
CN110286848B (zh) 数据处理方法及装置
CN112204514A (zh) 用于保留非易失性存储器的预期寿命的技术
US10210097B2 (en) Memory system and method for operating the same
KR20180076276A (ko) 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치
JP2015141545A (ja) ストレージ制御装置、ストレージ制御方法、及び、プログラム
CN112148203B (zh) 存储器管理方法、装置、电子设备及存储介质
CN108984117B (zh) 一种数据读写方法、介质及设备
CN108509295B (zh) 存储器系统的操作方法

Legal Events

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

Payment date: 20181119

Year of fee payment: 4