KR101184953B1 - 플래시 메모리 타이밍 사전-특성화 - Google Patents

플래시 메모리 타이밍 사전-특성화 Download PDF

Info

Publication number
KR101184953B1
KR101184953B1 KR1020107015353A KR20107015353A KR101184953B1 KR 101184953 B1 KR101184953 B1 KR 101184953B1 KR 1020107015353 A KR1020107015353 A KR 1020107015353A KR 20107015353 A KR20107015353 A KR 20107015353A KR 101184953 B1 KR101184953 B1 KR 101184953B1
Authority
KR
South Korea
Prior art keywords
memory
transaction
time
flash memory
unit
Prior art date
Application number
KR1020107015353A
Other languages
English (en)
Other versions
KR20110043517A (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 KR20110043517A publication Critical patent/KR20110043517A/ko
Application granted granted Critical
Publication of KR101184953B1 publication Critical patent/KR101184953B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

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

Abstract

본 개시물은 디바이스, 블록 또는 페이지와 같이, 플래시 메모리 서브디비전과 연관된 예상 트랜잭션 시간을 정확히 결정하는 방법을 제공한다. 이러한 각 유닛의 각 비트를 프로그래밍하는 테스트 트랜잭션을 수행함으로써, 각 유닛의 최대 예상 프로그래밍 시간은 스케줄링 목적을 위해 미리 결정 및 이용될 수도 있다. 예를 들어, 직접적인 구현예에서, 비교적 정확하고 경험적으로 측정된 시간 제한은 응답이 늦은 페이지에 기록하려는 궁극적인 해결을 대기하지 않고 플래시 메모리 트랜잭션을 효율적으로 관리 및 스케줄링하기 위해 식별 및 이용될 수도 있다. 이 개시물은 또한 다수의 메모리 모드 및 우선화된 메모리를 통하는 것을 포함하여, 경험적으로 측정된 최대 플래시 메모리 트랜잭션 시간의 다른 이용을 제공하는데; 예를 들어, 높은 수행 모드가 요구되면, 플래시 메모리 트랜잭션 시간의 낮은 편차가 허용될 수도 있고, 이들 원리를 만족하지 않은 유닛은 비교적 신속하게 마킹될 수도 있다. 이전에 마킹된 메모리를 재교정하기 위한 메커니즘도 제공된다. 가변성을 최소화함으로써, 플래시 메모리는 보다 넓은 범위의 설계 그리고 잠재적으로 보다 넓은 메인 메모리 애플리케이션 세트에 적용될 수 있다.

Description

플래시 메모리 타이밍 사전-특성화{FLASH MEMORY TIMING PRE-CHARACTERIZATION}
본 개시물은 플래시 메모리의 타이밍 최적화에 관한 것이다. 더 상세하게는, 본 개시물은 플래시 메모리 트랜잭션을 사전-특성화하는 방법을 제공한다.
배경기술
현대적인 형태의 메인 메모리는 종래에 "DRAM (dynamic random access)" 기술에 기초한다. DRAM 이 다른 타입의 메모리보다 많은 이점을 제공하지만, 그 비용, 폼 팩터, 전력 요건 및 열 특성은 일정 등급의 디바이스, 그 중에서도 일정한 휴대용 또는 낮은 비용 디바이스에 대해서는 용인될 수 없다. 비용, 폼 팩터, 전력 요건 및 열 특성이 가장 중요한 문제인 디바이스의 예는 셀폰, PDA (personal data assistant) 및 많은 다른 형태의 휴대용 또는 특수 목적용 시스템을 포함한다. 덜 비싸고, 보다 휴대용이거나 보다 긴 배터리 수명이 용이한 메모리 설계 대안을 갖는 것이 요구된다.
플래시 메모리는 이들 기준을 만족하는 메모리의 하나의 형태이지만; 플래시 메모리는 종래에 사용이 한정된 수개의 제한을 나타낸다. 이러한 하나의 제한은 플래시 메모리가 다수의 메모리 셀로 각각 구성되는 "블록" 또는 "페이지"의 유닛으로 보통 삭제 또는 프로그래밍된다는 것이다. 개별 메모리 셀의 삭제 및 프로그램 시간의 편차로 인해, 이러한 디바이스는 종종 메모리 위치별로 차이가 있는 가변 삭제 및 프로그램 지연을 경험한다. 메모리 유닛의 매스-프로그래밍 또는 삭제의 요건은 프로그래밍 또는 삭제 완료 시간을 예측하기 어렵게 하며, 이는 몇몇 애플리케이션에서 종래에 플래시 메모리의 이용을 억제한다. 예를 들어, 데이터 및 명령 턴오버가 높을 수 있는 메인 메모리 애플리케이션에서, 메모리 트랜잭션과 연관된 시간 지연은 어려운 스케줄링 문제를 나타낼 수 있다. 특히 이들 제한은 몇몇 애플리케이션에서 플래시 메모리의 광범위한 사용을 억제하여 왔다.
플래시 메모리와 연관되고 스케줄링 문제와 연관된 가변 지연을 처리하는 방식이 필요하다. 이상적으로는, 메모리 트랜잭션 시간이 예측가능한 방식으로 관리될 수 있으면, 플래시 메모리는 보다 넓은 범위의 애플리케이션에 적용될 수 있고; 이에 의해 생각컨대 전력 특성을 개선하고 많은 등급의 디바이스의 가격 책정을 개선할 수 있다. 하나의 실시예를 제공하기 위해, 이들 지연의 가변성을 더 잘 관리할 수 있으면, 메인 메모리 애플리케이션에 대한 플래시 메모리의 광범위한 적용을 잠재적으로 용이하게 하여, 이에 의해 더 낮은 비용, 보다 소형이고 보다 휴대용인 범용 컴퓨팅 플랫폼을 용이하게 할 수 있다.
도 1 은 메모리 트랜잭션과 연관하여 시간을 측정하는 것을 도시한 것을 나타낸 블록도를 제공한다. 제 1 점선 블록으로 표시된 바와 같이, 이 방법은 기존의 디폴트 제한 (예를 들어, 프로세스 타임-아웃) 을 업데이트하는데 옵션적으로 채용될 수도 있고, 두번째 점선 블록으로 표시된 바와 같이, 이 방법은 또한 동일한 메모리를 수반하는 후속 트랜잭션을 관리하는데 채용될 수도 있다.
도 2 는 플래시 메모리 시스템의 블록도를 제공한다. 더 상세하게는, 도 2 는 버퍼 또는 레지스터가 플래시 메모리 타이밍에 대응하는 적어도 하나의 제한을 저장하는 시스템을 도시한다. 이 제한은, 메모리의 어떤 유닛 (디바이스, 블록, 페이지 등) 이 메모리 이용의 하나 이상의 모드에서 이용가능한지를 나타내는 테이블을 생성하도록 적용될 수도 있다.
도 3 은 측정된 시간을 이용하여 메모리를 관리하는 방법의 도면이다. 특히, 도 3 의 점선 블록은 각각 도 3 의 점선 블록 309, 311 및 313 으로 표시된 바와 같이, 제어기가 (1) 단순히 연관된 시간 제한 내에 이전의 트랜잭션의 성공적인 완료를 가정하거나, (2) 트랜잭션의 끝에서 검증 기능을 수행하여, 시간 제한에 기초하여 성공을 검사하거나, 또는 (3) 다음 트랜잭션으로 진행하고 제외 프로세싱 (예를 들어, 인터럽트 프로세싱) 에 의존하여 이전의 트랜잭션에서의 문제를 식별할 수도 있는 실시형태를 소개하는데 이용된다.
도 4 는 명령의 일부로서 메모리 디바이스 (405) 에 시간 제한을 제공하도록 구성된 메모리 시스템 (401) 의 블록도이다.
도 5 는 프로그램-검증 사이클 카운트를 저장하는 온보드 레지스터 셋팅을 포함하는 플래시 메모리 디바이스의 도면이다. 비교기는, 레지스터 셋팅에 의해 나타낸 임의의 특정 메모리 모드가 주어질 때 메모리가 "불량"으로 마킹될 수도 있는지 여부를 평가하는데 이용된다.
도 6 은 메모리의 개별 유닛에 대한 최대 메모리 트랜잭션 시간을 측정하는 방법의 블록도이다. 도 6 에서, 예약된 메모리 영역 (605) 에서의 레지스터 셋팅은 임의의 측정된 값 또는 임의의 디바이스 (603) 를 저장하는데 이용될 수도 있다.
도 7 은, 메모리 트랜잭션의 성공을 효율적으로 검증하고, 트랜잭션이 시간 제한 내에 성공적이라고 검증될 수 없으면 유닛을 마킹하기 위해 측정된 시간이 런-타임 동안 이용될 수도 있는 방법을 도시한 블록도이다.
도 8 은, 메모리의 각 블록 또는 페이지와 같이, 시간 제한이 각 메모리 유닛을 위해 정의 및 저장될 수 있는 시스템을 도시한다. 도 8 에서, 테이블 (807) 은 메모리 유닛 (804) 에 대한 최대 트랜잭션 제한에 각각 대응하는 시간 (예를 들어, 클록 사이클, 프로그램-검증 사이클 또는 측정치의 다른 유닛) 을 저장하는데 이용될 수 있다. 점선 블록 817 로 표시된 바와 같이, 이 테이블은 (예를 들어, 온보드 제어기 메모리에서) 메모리 제어기 (813)에 의해 옵션적으로 유지될 수도 있다. 일 실시형태에서, 이는 또한 각 메모리 디바이스에서 비휘발성 방식으로 보유되고, 실제의 사용에서 제어기로 카피되고 운영 체제에 의해 모니터링될 수도 있다.
도 9 는 원하는 시스템 성능에 기초하여 메모리 모드를 선택하고 (하나 이상의 제한은 각 메모리 모드에 대해 채용됨), 선택된 모드에 의존하여 메모리를 구조화하기 위해, 마스터 시스템, 메모리 서브시스템 또는 애플리케이션 소프트웨어에 의해 이용될 수도 있는 방법을 도시한다. 예를 들어, 빠른 메모리 성능이 요구되면, 비교적 작은 시간 제한이 선택될 수도 있다 (메모리 유닛은 모드에 기초하여 선택된 시간 제한을 이용하여 프로세싱됨).
도 10 은 선택된 모드에 기초하여 이용 테이블을 만드는, 제어기로 구현되는 방법을 도시한다. 특히, 파워-업 또는 교정 인터벌 동안에, 제어기는 각각의 가능한 모드 (1007, 1009 및 1011) 의 특성을 식별하고, 대응하는 모드와 관련하여 런-타임 동안의 이용을 위해 대응하는 메모리 이용 테이블 (1017, 1018 및 1019) 을 만든다.
도 11 은, 메모리 유닛이 최대 예상 트랜잭션 시간에 따라서 우선될 수 있는 시스템에 관한 것이다.
도 12 는 예시적인 우선화 테이블을 도시한다.
도 13 은, 예를 들어, 파워-업 동안에, 교정 인터벌로, 또는 메모리 유닛이 다른 (비수행 (non-performance)) 메모리 모드에서 채용될 수도 있는지를 결정하는 특수 프로세스와 관련하여, 제한된 이용을 위해 이전에 마킹된 메모리 유닛이 이후 재평가될 수 있는 방법을 도시한다.
본 명세서에서 논의된 원리의 다양한 구현예를 생산 및 사용할 수 있게 이하에 개시된 하나 이상의 특정 실시형태의 이러한 설명은 열거된 청구항을 제한하려는 의도가 아니며, 일정한 방법 및 디바이스에 대해 그 적용을 예시하려는 의도이다. 이하에 개시된 설명은 메모리 트랜잭션을 관리하는데 이용하기 위해 저장되는 측정된 트랜잭션 시간으로 교정될 수도 있는 플래시 디바이스에 대한 적용을 예시한다. 이후, 이 디바이스는, (메모리의 페이지 또는 블록과 같은) 메모리 유닛을 "불량"으로 효율적으로 마킹하거나, 소프트웨어 또는 제어기에 의해 선택될 수도 있는 다수의 이용 모드에 대해 메모리를 구성하거나, 또는 플래시 메모리 이용을 우선화하는 것을 포함하여, 수개의 방식으로 관리될 수도 있다. 그러나, 본 명세서에서 논의된 원리는 또한 다른 방법 및 디바이스에도 적용될 수도 있다.
Ⅰ. 원리 부분의 소개
본 명세서에서 논의된 원리는 삭제 트랜잭션, 프로그래밍 트랜잭션 또는 판독 트랜잭션과 같이, 플래시 메모리 트랜잭션과 연관된 최대 예상 시간을 경험적으로 측정하는 방법에서 구현될 수도 있다. 각 특정 플래시 메모리 디바이스 (또는 플래시 메모리 디바이스의 그룹) 는 미리 결정된 메모리 트랜잭션을 수행하고 성공적인 완료에 필요한 시간을 경험적으로 측정함으로써 사전-특성화된다. 메모리 트랜잭션이 발생할 때 이를 단순히 관찰하고 교정 파라미터를 업데이트함으로써, 또는 이들의 조합에 의해, 미리 결정된 교정 인터벌로 머신이 파워-업될 때마다 이 테스팅은, 예를 들어, 제조 시에 수행된다. 디바이스 또는 칩, 블록, 페이지, 또는 어떤 다른 레벨을 포함하는 메모리의 임의의 서브디비전 (subdivision) 또는 "유닛"으로 교정이 수행될 수도 있다.
종래의 방식을 이용하여 획득될 수 있는 것보다 더 우수한 메모리 관리의 입도 (granularity) 를 획득할 목적으로, 최대 예상 트랜잭션 시간 (예를 들어, 프로그래밍 또는 삭제) 을 측정하기 위해 사전-특성화가 수행될 수도 있다.
이들 기능을 수행하기 위해, 미리 결정된 트랜잭션은 임의의 유사한 트랜잭션의 가장 긴 시간량이 걸리는 것으로 예상되는 트랜잭션으로 선택될 수도 있다. 예를 들어, 고려 대상인 메모리에 대한 최대 삭제 시간을 측정하는 것이 요구되면, 고려 대상인 메모리의 모든 비트를 토글 (toggle) 하여 (예를 들어, 칩, 블록, 페이지, 또는 메모리 서브디비전의 다른 유닛에 대해) 그 메모리를 삭제하기 위해 트랜잭션이 선택될 수 있고; 유사하게, 특히, NAND-기반 플래시 메모리에 대한 최대 프로그래밍 시간을 결정하는 것이 요구되면, 하나의 적절한 교정 트랜잭션이 고려 대상인 메모리의 모든 비트를 토글하여, (예를 들어, 삭제된 상태로부터) 이들 비트를 프로그래밍한다. 이들은 선택될 수도 있는 단 하나의 트랜잭션이 아니며, 예를 들어, 최대값을 선택하기 위해 데이터를 기록 및 삭제하는데 있어서 패턴들 또는 패턴들의 조합을 이용하는 것이 가능하다. 예를 들어, 생각컨대 0-1 패턴을 프로그래밍한 후, 이 패턴을 거꾸로 하여 1-0 패턴을 프로그래밍하고 최대값을 취할 수도 있다. 당업자에게는 많은 다른 가능성이 또한 존재할 것이다. 트랜잭션 시간은 프로그래밍 또는 삭제될 수 있는 메모리 셀 각각에 따라 달라지므로, 모든 비트를 변경하는데 필요한 최대 시간, 및 이에 따른 모든 메모리 셀의 모든 특징을 효과적으로 측정함으로써, 트랜잭션에 의해 영향을 받는 가장 느린 멤버 셀의 프로그래밍 또는 삭제를 반드시 포함하여, 메모리 트랜잭션에 걸린다고 예상될 수도 있는 최대 시간의 측정치를 획득하는 것이 가능하다. 이 최대 시간은, 플래시 메모리에 "어크로스-더-보드 (across-the-board)" 기반으로 적용될 수도 있는 일반 타임-아웃 또는 최대 프로그램 검증 사이클 카운트보다 더 정확하고 더 작은 것으로 예상된다. 시간은 클록 사이클, 프로그램 검증 사이클의 표현으로, 또는 몇몇 다른 적절한 측정치를 이용하여 측정될 수 있고, 또한 오버-프로그래밍을 피하기 위해 제어 전압이 규칙적인 스텝형인 시스템에서 최대 인가된 전압의 표현으로 측정될 수 있다.
사전-특성화 (또는 교정) 가 측정된 데이터를 기초로 하기 때문에, 그럼에도 불구하고 여전히, 메모리의 "저속 (slow)" 유닛, 즉, 종래에 "불량 (bad)"으로 마킹 (mark) 되는 메모리의 페이지 또는 블록이 잠재적으로 이용될 수 있다. 메모리를 교정함으로써 (특히 다수의 시간 제한이 이용되는 경우), 본 명세서에서 개시된 실시형태는 다수의 트랜잭션 모드를 가능하게 할 수 있는데, 여기서 "저속" 유닛은 (운영 체제 또는 특정 용도 요건에 의해 결정될 수도 있는 것과 같이) 시간-성능이 중요하지 않은 모드에서 아마 여전히 이용될 수 있다.
플래시 메모리의 프로그래밍 또는 삭제에서의 시간 편차의 문제, 및 메모리 제어기에 의해 큰 타임아웃 시간이 이용되는 이유는 플래시 메모리를 프로그래밍 및 삭제하는데 통상적으로 이용되는 단계 및 플래시 메모리의 설계의 아티팩트이다. 이와 관련하여, 플래시 메모리는 일반적으로 청크 단위로 프로그래밍 또는 삭제되고; NOR-기반 플래시 메모리는 통상적으로 "블록" 단위로 삭제되고 다수의 바이트 증분 단위로 프로그래밍되는 반면, NAND-기반 플래시 메모리는 통상적으로 블록 단위로 삭제되고 "페이지" 단위로 프로그래밍되는데, 여기서 각 페이지는 블록의 추가 서브디비전이다. 이들 트랜잭션은 보통, 제어 전압을 인가하여 전극과 플로팅 게이트 사이에서 전자가 터널링되게 함으로써 수행된다. 오버-프로그래밍으로 알려진 상태를 피하기 위해, 셀은 통상적으로 반복된 프로그램 검증 사이클 (즉, 다수의 반복) 에서 프로세싱되고; 처음에는, 제어 게이트에 비교적 작은 전압이 인가되고, 각 셀에 대해 정확한 삭제 또는 프로그래밍이 검사되며; 성공이 검사되지 않은 셀에 대해서는, 이후 제어 전압이 증가하고, 요청된 비트 모두가 프로그래밍될 때까지 임의의 이전 사이클 동안에 올바르게 삭제 또는 프로그래밍되지 않은 셀에 대해 이 프로세스는 반복된다. 최대 전압에 도달하고, 몇몇 셀이 올바르게 프로그래밍되지 않으면, 메모리의 유닛 (예를 들어, 블록 또는 페이지) 은 때때로 "불량"으로 마킹되어 바이패스된다. 요청되는 반복 횟수 (즉, 프로그램 검증 사이클) 및 요청되는 프로그래밍 시간은 메모리 셀 별로, 그리고 이에 따라 페이지별로, 블록별로, 및 디바이스별로 다르고; 각 셀의 트랜잭션 및 오차가 임의의 주어진 디바이스 내에서 상이하기 때문에, 그리고 모델 및 제조자에 따라 설계가 달라지기 때문에, 이 편차가 발생한다.
동작 시에, 트랜잭션의 시간 편차는 보통, 트랜잭션이 완료되는 경우에 레지스터 값 또는 "판독/비지 (read/busy)" 핀의 값을 변경함으로써 처리되는데, 그 이유는 트랜잭션이 완료되었거나, 최대 수의 트랜잭션 사이클이 발생하였기 때문이며; 메모리 디바이스는 다른 특정 레지스터 비트를 종종 설정하여 메모리 트랜잭션의 성공 검사를 표시할 수도 있다. 이들 값은 메모리 제어기에 의해 모니터링되며, 이후 문제의 검출 시에 고려 대상인 메모리를 "불량"으로 마킹할 수도 있다. [유닛을 "불량"으로 마킹하는 것은 반드시 이 유닛이 기능 장애인 것을 표시하는 것이 아니며, 단순히 제어기가 그 유닛을 스킵하여야 하거나 특별히 이를 프로세싱하여야 하는 것을 표시한다.] 디바이스와 특정 메모리 서브디비전은 서로보다 개별적으로 신속할 수도 있는데, 그 결과 플래시 메모리는 적절히 관리되면 보다 더 효율적인 동작이 가능할 수도 있다.
그러나, 교정된 통계가 메모리를 위해 저장되고 알려지면, 제어기는 보다 더 정확한 시간 추정치를 획득할 수도 있는데, 이에 의해 성공적인 삭제 트랜잭션 또는 프로그래밍 트랜잭션 (또는 판독 트랜잭션과 같은 다른 메모리 트랜잭션) 이 완료되어야 하며, 그것에 의해 보다 효율적인 스케줄링 및 플래시 메모리의 사용을 가능하게 한다.
도 1 에서 볼 수 있는 바와 같이, 일 실시형태가 플래시 메모리 디바이스를 교정하는 방법을 제공한다. 방법 (101) 은, 메모리 칩과 같은 적어도 각 개별 메모리 디바이스에 대해 수행되고, 삭제 트랜잭션 또는 프로그래밍 트랜잭션과 같은 런-타임 메모리 트랜잭션의 수행 동안에 애드-혹, 미리 결정된 교정 인터벌, 시스템 파워-업, 또는 디바이스 제조의 시간에 수행될 수도 있다. 이상적으로, 교정에 이용되는 메모리 트랜잭션은 (단일 또는 멀티-레벨 셀 형태로든지 간에) 고려 대상인 메모리와 연관된 각 비트의 값을 변경하는 삭제 트랜잭션 또는 프로그래밍 트랜잭션과 같이 미리 결정된 특정 트랜잭션이다. 상기에서 표시된 바와 같이, 고려 대상인 메모리와 연관된 모든 비트를 변경하는 것은 생각컨대 임의의 유사한 트랜잭션 (예를 들어, 메모리 셀 전부 또는 이보다 적은 메모리 셀이 영향을 받는 블록 또는 페이지에 대한 임의의 다른 프로그래밍 트랜잭션) 과 연관된 최대 개수의 프로그램 검증 사이클 및 최대 시간량을 수반할 것이다. 도 1 의 블록 103 에 의해 표시된 바와 같이, 트랜잭션이 개시되고, 도 1 의 기능 블록 105, 107 및 109 에 의해 표시된 바와 같이, 타이머는 검사된 성공적인 트랜잭션의 수행에 필요한 시간 주기 (예를 들어, 트랜잭션의 결과로서 올바르게 변경된 모든 비트) 를 측정한다. 일단 테스팅이 완료되면, 참조부호 111 및 113 으로 표시된 바와 같이, 방법 (101) 은 측정된 시간 주기에 기초하여 시간 제한을 저장하고, 이 시간 제한을 동일한 메모리를 수반하는 후속 트랜잭션에 이용한다. 본 명세서에서 이용되는 바와 같이, "시간 제한"은 프로그래밍 트랜잭션, 삭제 트랜잭션 또는 (판독 트랜잭션과 같은) 다른 메모리 트랜잭션과 같은 메모리 트랜잭션의 동작을 측정 또는 바운딩하는 임의의 메커니즘을 지칭할 수 있다.
도 1 의 옵션 블록 105 로 표시된 바와 같이, 요청되면, 플래시 메모리 디바이스는, 예를 들어, 제어 동작을 위해 예약된 판독 전용 또는 다른 공간에서 디폴트 시간 제한으로 사전-프로그래밍될 수도 있으며; 이러한 값은, 예를 들어, 디바이스 제조자에 의해 공급될 수도 있다. 이러한 값이 디바이스에 제공되면, 방법 (101) 은 적절히 그 값에 작용하거나 그 값을 교체할 수 있거나, 또는 방법 (101) 은 이 값을 다른 메모리 (예를 들어, 휘발성 메모리) 로 카피하고 그 카피에만 작용하여, 장래의 사용을 위해 (예를 들어, 다음의 파워-업을 위해) 오리지널 값을 보유할 수도 있다. 일 실시형태에서, 각 타입의 메모리 트랜잭션에 별개 시간 제한, 예를 들어, 프로그래밍 트랜잭션에 시간 제한이, 삭제 트랜잭션에 시간 제한이, 그리고 판독 또는 다른 트랜잭션에 시간 제한이 제공되며, 각 제한은 본 명세서에서 논의된 원리에 따라 업데이트 및 조정된다. 이하 논의되는 실시형태 중 수개의 실시형태에서, 이해의 편의를 위해, 하나의 이러한 제한만이 프로그래밍 동작 또는 삭제 동작 중 어느 하나에 작용하지만, 본 명세서에서 논의된 원리는 그리 제한되지 않는다.
도 2 는 플래시 메모리에서의 트랜잭션 시간을 측정하는 시스템 (201) 을 도시한다. 더 상세하게는, 플래시 메모리 공간 (203) 은 참조부호 204 로 나타낸 바와 같이 수개의 서브디비전 유닛, 예를 들어, 블록 또는 페이지 또는 다른 유닛을 포함할 수도 있다. 트랜잭션 타이머 (205) 는 메모리 공간을 수반하는 적어도 하나의 타입의 트랜잭션의 시간을 재기 위해 플래시 메모리 공간과 동작가능하게 커플링된다. 이 타이머에 의해 계산된 값은, 비교기 (209) 를 이용하여 연관된 메모리 공간에 대해 버퍼 또는 레지스터 (207) 에 의해 보유된 값과 비교될 수도 있다. 일 실시형태에서, 이 레지스터는 각 메모리 유닛 (204) 에 대한 전용 값을 보유할 수도 있으며, 이때 각 개별 메모리 유닛에 대해 이들 트랜잭션이 수행된다.
도 2 는 또한 이용가능한 메모리 유닛을 식별하는 테이블 (211) 을 도시하며; 이와 관련하여, 임의의 트랜잭션의 타이밍이 미리 결정된 시간 제한을 초과하면, 임의의 연관된 메모리 서브디비전 유닛 (204) 은 제한된 사용을 위해 마킹되므로, 이용가능한 메모리로서 테이블에서 효과적으로 식별되지 않을 수도 있다. 도 2 는 도 2 의 엘리먼트 중 많은 엘리먼트가 단일 디바이스 또는 칩 내부에 집적될 수도 있다는 것을 나타내는 점선 블록 (213) 을 도시하고; 다시 말해, 도 2 에서, 참조부호 213 으로 표시된 바와 같이, 메모리 칩은 단순히 플래시 메모리 공간 (203) 을 포함할 수도 있으며 (이때 다른 엘리먼트는 제어기 및 오프-칩 메모리에서와 같이 다른 곳에서 구현됨), 또는 엘리먼트 중 일부 또는 전부가 옵션으로 단일 칩에 하우징될 수도 있다. 이러한 실시형태에서, (도 2 에 도시되지 않은) 메모리 제어기는 블록 213 과 상호작용하여 칩에 저장된 임의의 시간 값을 검색하고 이 시간 값을 제어기의 메모리에 카피하여, 이용가능한 메모리 유닛을 식별하는 오프칩 테이블을 정의할 수도 있다. 컴퓨터 운영 체제에 의한 이들 기능 중 많은 기능의 수행을 포함하여, 도 2 에 보이는 엘리먼트의 다른 레이아웃이 또한 가능하다.
도 3 은 측정된 시간을 이용하여 메모리를 관리하는 방법을 소개하는데 이용되는 도면이다. 특히, 참조부호 303 및 305 로 표시된 바와 같이, 도 3 은, 제어기가 시간 제한을 검색하고 메모리 트랜잭션을 개시할 수도 있는 방법 (301) 을 도시한다. 도 3 과 연관된 특정 실시형태에서, 제어기는 제어기의 관점에서 측정된 시간을 이용하여 메모리 트랜잭션의 스케줄링을 개선하고, 참조부호 307 에 의하여, 이에 따라 트랜잭션에 의해 영향을 받는 메모리 디바이스가 시간 제한 내에 트랜잭션을 완료하기를 기대한다. 이 기능은 수개의 방식으로 실현되고 명백하게 될 수도 있다; 예를 들어, 도 3 에서 이용된 점선 블록 309, 311 및 313 은, 제어기가 (1) 단순히 연관된 시간 제한 내에 이전의 트랜잭션의 성공적인 완료를 가정하거나, (2) 트랜잭션의 끝에서 검증 기능을 수행하여, 시간 제한에 기초하여 성공을 검사하거나, 또는 (3) 다음 트랜잭션으로 진행하고 제외 프로세싱 (예를 들어, 인터럽트 프로세싱) 에 의존하여 이전의 트랜잭션에서의 문제를 식별할 수도 있다. 또한, 옵션인 (점선) 기능 블록 315 및 317 로 표시된 바와 같이, 메모리 트랜잭션은 디바이스에서의 트랜잭션 시간의 능동적인 관리를 통해, 또는 메모리 디바이스에 의해 적용되는 특정 시간 제한을 메모리 명령을 통해 지정함으로써 모니터링될 수도 있으며; 이러한 실시형태에서, 제어기는 메모리 디바이스에 의존하여 연관된 시간 제한 내에 트랜잭션을 핸들링할 수도 있고, 제어기는 성공적인 프로세싱을 능동적으로 확인할 수도 있거나 메모리 디바이스에 의존하여, 예를 들어, 블록 313 에 의한 핸들링을 통해 제외 프로세싱 절차를 통해 문제를 리포팅할 수도 있다.
도 4 는 제어기 (401) 가 명령의 일부로서 메모리 디바이스 (405) 에 미리 결정된 트랜잭션 시간 제한을 제공하도록 허가하는 메모리 시스템 (401) 의 블록도이다. 도 4 에 하나의 메모리 디바이스 (405) 만이 도시되었지만, 수개의 메모리 디바이스가 제어기에 의해 관리될 수도 있다는 것을 이해하여야 한다. 특히, 도 4 는 이들 개념상 상이한 메모리 명령, 또는 아마 더 잘 기재한다면, 다수의 교호 명령을 통해 통신되는 특정 메모리 트랜잭션을 각각 나타내는 수개의 신호 라인 (407) 을 도시하며, 각각은 연관된 상이한 시간 제한을 갖고; 예를 들어, 도 4 의 제어기는 메모리 명령의 일부로서 메모리 디바이스에 수개의 프로그램 검증 사이클을 지정할 수도 있다. 이들 달라지는 명령을 프로세싱하기 위해, 메모리 디바이스 (405) 는 메모리 디바이스로 하여금 대응하는 수의 프로그램 검증 사이클로 그 동작을 제한하게 하는 온보드 명령 로직을 가질 수도 있다. 상술한 바와 같이, 메모리 디바이스는 "준비/비지 (ready/busy)" 핀의 출력을 변경함으로써 성공적인 완료를 리포팅할 수도 있거나, 레지스터 (413) 를 변경하여, 제어기 또는 제외 핸들링 회로에 의해 모니터링될 수도 있는 값 (415) 을 명확하게 저장할 수도 있다. 도 4 는 또한 시간 제한을 저장하기 위해 디바이스에 의해 이용될 수도 있는 테이블 (417) 을 도시한다. 예를 들어, 다른 실시형태의 논의와 관련하여 언급한 바와 같이, 시간 제한은 제어기 (403) 또는 운영 체제에 의한 능동적인 관리를 위해 검색되고 메모리 디바이스 (405) 를 온보드하는 비휘발성 방식으로 저장될 수도 있다. 다른 동작도 가능하며, 예를 들어, 일단 계산된 시간 제한은 임의의 수의 메모리 위치에 저장될 수도 있고, 구현예에 따라 메모리 디바이스, 제어기, 운영 체제 (또는 애플리케이션) 에 의해 이용될 수도 있다.
도 5 는, 플래시 메모리 디바이스 (예를 들어, 플래시 메모리 칩)(503) 가 측정된 파라미터를 이용하여 온보드 타임-아웃 기능을 구현하기 위해 런-타임 동안 메모리 트랜잭션을 모니터링할 수 있는 시스템 (501) 을 도시한다. 하나의 플래시 메모리 디바이스만이 도 5 에 보이지만, 실제로, 이러한 시스템은 (디바이스 (503) 와 일치하는) 수개의 유사한 디바이스, 및 이들 디바이스를 위한 메모리 트랜잭션을 관리 및 제어하는 플래시 메모리 제어기 (513) 를 포함할 것이라는 것을 주의하여야 한다. 뚜렷하게, 도 5 의 실시형태는 NAND-기반 플래시 메모리에 대해 프로그램 검증 사이클의 유닛으로 시간을 모니터링하는 것으로 보인다. 각 디바이스 (503) 는 플래시 메모리 공간 (505), 시간 제한을 저장하는 레지스터 (507), 트랜잭션 타이머 (509), 및 비교기 (511) 를 포함할 수도 있다. 이 플래시 메모리 공간은 플래시 메모리 제어기 (513) 의 감독 하에서 데이터 또는 명령을 저장하는데 이용되는 메모리 페이지 (506) 로 조직화될 수 있다. 페이지 사이즈는 설계 선택이지만, 종래에는 4 kbyte 정도의 단위로 메모리를 조직하는데 이용되며, 그 결과 2 기가바이트 메모리 디바이스는 통상적으로 수백천 페이지 정도를 가진다. 제어기에 의해 요구되는 트랜잭션 각각에 대해 (또는 특정 타입의 트랙잭션, 예를 들어, NAND 플래시 메모리의 페이지의 프로그램에 대해), 트랜잭션 타이머 (509) 는 고려 대상인 페이지에 필요한 프로그램 검증 사이클의 수를 모니터링하고, 그 출력을 비교기 (511) 에 제공한다. 프로그램-검사 사이클이 레지스터 (507) 로부터 세팅에 의해 제공되는 경험적으로 결정된 시간 제한을 초과한다고 비교기가 결정하면, 비교기는 제어기 (513) 에 통지하는 에러 조건 (512) 를 어서트한다. 이 신호에 응답하여, 제어기는 또한, 메모리 이용 테이블 (515) 에 적절한 값을 기록함으로써 특정 페이지를 "불량"으로 마킹할 수 있거나, 또는 제어기는 (이하 더 논의되는) 특별한 프로세싱을 위해 이를 플래깅한다.
레지스터 (507) 에 저장된 시간 제한의 계산은 도 6 을 참조하여 설명된다. 특히, 도 6 은 플래시 메모리를 테스팅하고 이후의 이용을 위해 시간 제한을 계산하는 방법 (601) 을 도시한다. 도 6 의 좌측에 보이는 플래시 메모리 디바이스 (603) 는 수개의 메모리 유닛 (604) 을 포함하고, 플래시 메모리 디바이스 (603) 는 또한 계산된 시간 제한을 저장하는데 이용되는 레지스터 (605) 를 포함할 수도 있다. 각 메모리 유닛 (604) 에 대해, 메모리 제어기는 연관된 유닛의 각 비트를 토글하는 미리 결정된 메모리 트랜잭션 (또는 일련의 트랜잭션) 을 개시한다. 예를 들어, 제어기는 먼저 메모리를 소거한 후, 연관된 메모리 유닛의 모든 셀의 모든 비트를 프로그래밍하는 트랜잭션을 개시할 수 있다. 트랜잭션이 개시될 때마다, 참조부호 607, 609, 및 611 로 표시된 바와 같이 (도 6 에 보이지 않는) 트랜잭션 타이머는 프로그램 검증 사이클의 수를 저장하고 성공적인 완료를 위해 모니터링한다. 이 패턴은 미리 결정된 최대값 (예를 들어, 제조자에 의해 지정된 일반 타임-아웃 값) 까지 계속되고, 트랜잭션이 이 최대값 내에서 수행될 수 없으면, 도 6 의 기능 블록 613 으로 표시된 바와 같이, 특정 메모리 유닛은 "불량"으로 마킹될 수 있고, 시스템은 다음 유닛으로 진행할 수 있으며; 메모리의 일정 엘리먼트가 정확히 올바르게 프로그래밍되지 않았으면, 기능 블록 615 및 616 으로 표시된 바와 같이, 관련 셀에 대한 제어 전압이 증가될 수도 있고, 프로그래밍 트랜잭션이 다시 시도될 수도 있다. 그러나, 표시된 최대값 내에서 트랜잭션이 성공적이면, 시스템은 기능 블록 617 에 의해 도 6 에서 표시된 바와 같이 메모리 유닛과 연관된 새로운 값을 저장하고, (도 6 의 실시형태에서) 이 새로운 값이 메모리 유닛에 대한 제한으로서 이용되어야 하는지 여부를 판정한다. 예를 들어, 메모리 디바이스에 대해 단일 시간 제한이 계산되는 실시형태에서, 시스템은 측정된 시간이 "불량"으로 마킹되지 않은 유닛 중에서 최대 시간을 나타내는지 여부를 판정할 수 있고; 시스템이 모든 메모리 유닛을 프로세싱하였으면, 블록 619 로 표시된 바와 같이, 이 값은 새로운 레지스터 셋팅으로 저장될 수 있다. 다른 메모리 유닛이 교정된 채로 있으면, 참조부호 621 로 표시된 바와 같이, 시스템은 다음 유닛으로 진행한다. 보다 복잡한 다른 시간 제한 계산 알고리즘은 시스템 제약에 기초하여 가능하고, 모든 메모리 유닛이 사전-특성화된 후에 옵션으로 수행될 수도 있다. 예를 들어, 플래시 메모리 시스템은 미리 결정된 최대값까지의 범위 내에서 시간 제한의 선택을 허가하는 알고리즘을 이용하도록 프로그래밍될 수도 있다. 다른 방법으로는, 이 시스템은 통계적 접근을 채용 (시간 제한이 디바이스에 대해 경험적으로 측정된 시간의 범위보다 더 큰 표준 편차가 되도록 선택) 하도록 프로그래밍될 수 있다. 점선 기능 617 및 619 로 표시된 바와 같이, 시간 값은 옵션으로 메모리 디바이스 내에 또는 이에 근접한 레지스터 대신 메모리 제어기에 의해 저장될 수도 있다.
도 7 은 런-타임에 단일 시간 제한의 하나의 적용 방법을 도시한다. 특히, 방법 (701) 은 메모리 트랜잭션에 이용되는 경험적으로 측정된 시간 제한을 계산하며, 여기서 시간 제한은 시스템 통합자 또는 메모리 제조자에 의해 공급된 일반 타이밍 정보보다 더 정확하다. 런-타임 동안에, 기능 블록 703 으로 표시된 바와 같이, 각각의 새로운 메모리 트랜잭션 (예를 들어, NAND 페이지의 프로그램, 또는 블록의 소거) 이 타이밍된다. 이 시스템에서, 각 플래시 메모리 디바이스 (705) 는 블록 또는 페이지 (709) 에 대해 수행된 런-타임 트랜잭션에 필요한 임의의 시간 값을 저장하는 예약된 영역 (707) 을 포함한다. 부호 710 및 711 로 표시된 바와 같이, 적절한 시간 제한, 예를 들어, 이전에 결정된 시간 제한은 검사중인 트랜잭션의 시간과의 비교를 위해 비교 기능에 제공될 수 있다. 트랜잭션 타이머가 시간 제한을 초과하면, 블록 713, 715 및 719 로 표시된 바와 같이, 검사 중인 페이지 또는 블록은 특정 모드에 대해 "불량"으로 마킹될 수 있고, (도 7 에 보이지 않는) 제어기는 적절하다면 새로운 블록을 시도할 수 있다. 다른 방법으로는, 시간 제한이 초과하였고 트랜잭션이 아직 성공적이지 않았으면, 블록 717 로 표시된 바와 같이, 다음 프로그램 검증 사이클이 개시될 수 있다. 본 명세서에서 이용되는 바와 같이, "제한된 이용"은 적어도 몇몇 메모리 트랜잭션에 대해 메모리가 이용되지 않는 것을 의미하는데, 그 이유는 메모리 또는 메모리 유닛이 "불량"으로 마킹되기 때문이거나 (즉, 모든 목적에 대해, 또는 주어진 동작 모드에 대해), 또는 메모리가 하나의 메모리 모드에서 사용되는 것으로부터 제외되기 때문이다 (그러나, 다른 모드, 예를 들어, 비수행 모드 또는 낮은 우선 순위 메모리 트랜잭션에서 이용가능할 수도 있다).
도 8 로 도시된 다른 실시형태에서, 특정 시간 제한은 또한 좀더 우수한 성능의 입도를 위해 각 개별 메모리 유닛 (804) 에 대해 선택될 수도 있다. 도 8 은 도 1 에 도시되 것과 유사한 시스템 (801) 을 도시하지만, 이는 수개의 시간 제한 (808) 을 저장하는 버퍼 또는 레지스터 (807) 를 특징으로 한다. 각 시간 제한은 메모리 (803) 의 유닛 (804) 에 대응하고, 수개의 프로그램 검증 사이클 또는 몇몇 다른 시간 측정량으로 표현될 수도 있다. 상기 도 5 와 관련하여 설명된 구조와 유사하게, 연관된 시간 내에 주어진 메모리 유닛 (804) 을 수반하는 각 메모리 트랜잭션의 완료를 효과적으로 모니터링하는데 트랜잭션 타이머 또는 등가의 메커니즘 (809) 이 이용될 수 있다. 이후, 타이머의 출력 (810) 은 비교기 (811) 에 제공될 수 있는데, 이는 관련 시간 제한 내에 메모리 유닛에 대한 런-타임 트랜잭션이 성공적으로 완료하지 않았다고 제어기 (813) 에 시그널링하거나 통지하고; 예를 들어, 이 비교기는, 플래시 메모리 제어기 (813) 로 하여금 메모리 이용 테이블 (815) 에 특정 유닛을 마킹하게 하는 에러 신호 (812) 를 발생시킬 수도 있다. 도 8 의 점선 블록 803 은 이들 기능 중 많은 기능이 단일 플래시 메모리 디바이스, 예를 들어, 메모리 칩 상에 집적될 수도 있다는 것을 나타내고; 다른 방법으로는, 메모리 이용 테이블 (815) 과 같은 기능이 시스템의 다른 곳에, 예를 들어, 제어기 (813) 에 전용되는 메모리 내에, 예약된 페이지의 영역에, 확장된 페이지 영역에, SPD 모듈에, 하드 디스크 상에, 소프트웨어 버퍼에, 또는 몇몇 다른 메커니즘을 통해 저장될 수도 있다.
런-타임 모드에서 이용되는 유닛당 시간 제한의 계산이 또한 도 6 을 참조하여 설명된다. 특히, 도 6 은 블록 617 에서 각 시간 값이 버퍼 또는 레지스터 셋팅 (605) 에 저장될 수도 있다는 것을 표시하고; 유닛당 시간 제한을 계산하는 것이 요구되면, 점선 기능 블록 619 는 기능 블록 617 의 기능과 결합되어, 어떠한 최대값-결정 스레드 (thread) 도 채용되지 않는다. 다시 말해, 미리 결정된 "테스트" 트랜잭션의 결과로서 계산된 각 시간 값은 단순히 대응하는 메모리 유닛에 대한 시간 제한으로 이용된다.
상기 언급한 바와 같이, 메모리 교정은 수개의 방식으로 이용될 수도 있다.
먼저, 상기에서 도 7 과 관련하여 소개되었던 바와 같이, 플래시 메모리 디바이스에 대한 단일 제한이 런-타임 동안 계산 및 이용되어, 메모리 트랜잭션이 너무 오래 걸리는지 여부를 판정할 수도 있고; 다른 방법으로는, 메모리 동작을 스케줄링하는 데 있어 측정된 시간이 제어기에 의해 이용될 수 있는데, 이때 도 3 및 도 4 를 참조하여 상술된 바와 같이, 제어기는 임의의 트랜잭션이 연관된 제한 내에 완료되었다고 효과적으로 가정한다. 도 8 를 참조하여 상기에서 바로 표시된 바와 같이, 수개의 상이한 메모리 서브디비전 각각에 지정하여 다수의 시간 제한이 계산될 수도 있다. 상기에서 언급된 애플리케이션에서, 이들 실시형태의 각각은 메모리 트랜잭션을 더욱 일정하게 스케줄링하고, 예상된 주기 내에 메모리 트랜잭션이 완료되었다는 컨피던스 (confidence) 를 획득하며, 예상되고 경험적으로 결정된 제한 내에 트랜잭션이 완료되지 않으면 유닛을 마킹하는데 적용될 수도 있다. 몇몇 실시형태에서, 마킹된 유닛은 특정 동작 모드에 대해 "불량"으로 간주될 수도 있거나, 특별히, 예를 들어, 연관된 시간 제한을 단순히 증분함으로써, 단순히 프로세싱될 수도 있다. 그러나, 교정된 메모리의 다른 이용이 가능하고, 이를 위해, 다음의 도면 및 설명에 수개의 실시형태가 제시될 것이다.
도 9 및 도 10 에 도시된 일 실시형태에서, 다수의 제한이 계산될 수도 있고, 다수의 메모리 모드들 사이에서 운영 체계 또는 애플리케이션이 선택되며, 각각은 연관된 제한을 가진다. 이와 관련하여, 상기에서 언급된 몇몇 실시형태가 경험적으로 결정된 제한에 기초하여 이용가능하거나 "불량"으로 각 메모리 유닛을 판단하는 동안, 경험적으로 측정된 파라미터도 메모리 유닛을 우선시키거나 정렬하는데 이용될 수도 있다. 도 9 및 도 10 의 실시형태에서, 예를 들어, 통계적 파라미터에 기초하여, 2 개 이상의 제한이 계산될 수도 있다. 하나의 가설적 구현예에서, 하나의 제한은 메모리 유닛의 적어도 70% 에 의한 성공적인 트랜잭션 프로세싱과 연관된 예상 프로세싱 시간을 나타내는 것으로 선택될 수도 있고, 제 2 시간 제한은 이 유닛의 적어도 90% 에 의한 예상되는 성공적인 트랜잭션 프로세싱을 선택하는 것으로 선택될 수도 있다. 이후, 메모리 유닛의 특정 서브세트는 선택된 특정 메모리 모드에 따라 이용가능한 것으로 정의될 수도 있다. 예를 들어, 성능이 긴 프로그래밍 시간에 대한 낮은 허용 오차를 권고하는 팩터이면, (도 2 의 테이블 (211) 과 같은) 메모리 테이블은 전체 메모리의 최고 신속한 70% 인 이러한 메모리 유닛만을 식별할 수도 있다 (그리고, 제한된 사용을 위해 예약된 것만큼 느린 다른 메모리 유닛, 즉, 수행 모드에 대해서는 "불량"이지만 아마 다른 모드에서는 불량이 아닌 것으로 식별한다). 다른 방법으로는, 운영 체계 또는 소프트웨어가 성능이 덜 중요한 모드를 채용하면, 메모리 유닛을 이용가능하거나 "불량"으로 판단하기 위해 더 큰 시간 제한을 적용할 수 있는데, 이후, 메모리 테이블은 보다 많은 수의 블록을 이용가능한 것으로 식별한다.
도 11 및 도 12 로 나타낸 또 다른 실시형태에서, 최대 트랜잭션 제한은 각 메모리 유닛에 대해 계산된 후, 각 메모리 유닛의 선택을 우선시키는데 이용될 수도 있다. 예를 들어, 몇몇 메모리 유닛이 특히 우수한 성능을 갖는 것으로 측정되면, 전체 시스템 용량에 대한 영향을 또한 최소화하는 방식으로, 이들 유닛은 더욱 빈번한 트랜잭션이 전체 시스템 성능을 향상시키는 것을 요구하는 것으로 예상되는 메모리에 이용될 수도 있는 반면, 더 느린 메모리 유닛은 성능에 대한 영향을 최소화하는데 덜 빈번한 트랜잭션에서 이용될 수도 있다.
마지막으로, 메모리의 교정은 반복될 수도 있는 것이며, 상이한 동작 모드에서 잠재적으로 허용가능한 것으로 하나의 동작 모드에서 무시된 페이지 또는 블록을 재정의하는데 이용된다. 도 13 은 이전에 "불량"으로 마킹된 메모리 유닛을 재교정하는 방법을 도시한다.
이와 같이 제시된 원리 부분에 의해, 이하, 상기에서 논의된 방법 및 디바이스의 수개의 추가 이용이 소개될 것이다.
Ⅱ. 다수의 플래시 메모리 모드의 이용
실제로, 적은 수의 메모리 유닛만이 상기에서 표시된 대로 마킹될 것이라는 것이 예상된다. 그럼에도 불구하고, 플래시 메모리 스케줄링의 목적을 위해, 특히 메인 메모리와 같은 높은 턴오버 애플리케이션을 위해, 메모리 트랜잭션 스케줄링의 목적을 위해 가능한 최고 수준의 예측가능성 및 일관성을 갖는 것이 요구된다. 이를 위해, 비교적 소량의 가변성도 플래시 메모리의 이용에 대한 장애가 될 수 있다. 상기 논의된 실시형태가 플래시 메모리 실시형태에서 메모리 트랜잭션의 보다 효율적인 이용 및 스케줄링을 제공하지만, 이 실시형태는 플래시 메모리의 이용에 있어서 가변성을 완벽하게 제거하지 못한다.
따라서, 일 실시형태는 다수의 메모리 모드를 가능하게 하도록 상술된 구조 및 방법을 이용한다. 예를 들어, 상기에서 논의된 사전-특성화 방법을 이용하여, 트랜잭션 시간에 따라 메모리를 조직화하는 것이 가능하다. 일 모드에서, 메모리 트랜잭션 시간의 편차에 대한 매우 작은 허용 오차를 갖는 성능이 강조될 수 있다. 예를 들어, 상기에서 논의한 교정 방법 및 메모리 유닛당 (예를 들어, 페이지당 또는 블록 최대 트랜잭션 시간당) 측정을 이용하여, "가장 신속한" 메모리 유닛을 식별하고, 이들 유닛에만 프로세싱을 한정하는 것이 가능하여, 그 특정 동작 모드에 대한 나머지 유닛을 "불량"으로 마킹한다. [일찍이 언급된 바와 같이, 하나의 동작 모드에 대한 유닛을 "불량"으로 마킹하는 것은, 그 유닛이 특수 목적을 위해 또는 다른 모드에서 이용가능할 수도 있다는 것을 암시하는 "많아야 제한된 이용"을 위해 유닛을 마킹하는 언어로 완수된다.] 반대로, 성능이 중요하지 않으면, 예를 들어, 플래시 메모리가 2차 저장을 위해서만 이용되면, 트랜잭션 시간의 광범위한 편차를 허용하는 것이 가능하다. 본 명세서에서 언급된 교정 방법이 플래시 메모리를 이용하는 상이한 모드의 이용을 용이하게 함으로써, 플래시 메모리의 적용 및 잠재적 시장을 개선시킨다. 임의의 수의 모드, 또는 모드들을 구별하는 기준이 원하는 구현예에 적절하게 기술이 좋은 설계자에 의해 선택될 수도 있다.
도 9 는 다수의 모드 시스템의 런-타임 방법 (901) 의 블록도를 도시한다. 특히, 참조부호 903 에 의하여, 동작 모드는 먼저 메모리 제어기, 애플리케이션, 운영 체게, 또는 몇몇 다른 제어 메커니즘에 의해 선택된다. 도 9 에서, "N"개의 상이한 모드는 참조부호 905, 906 및 907 로 식별된다. 이해의 단순화를 위해, 이하의 설명을 위해, 높은 수행 모드 (여기서 짧은 시간 제한은 메모리 트랜잭션 시간의 낮은 가변성 및, 이에 따른 스케줄링에 있어서의 더 우수한 예측가능성을 허락하는 것으로 정의된다) 및 높은 저장 용량 모드를 포함하여 정확히 2 개의 상이한 모드가 채용된다는 것을 가정하여야 하며, 여기서 가변성이 더 중요하고 단순히 제어기 오버헤드를 최소화하는 방식으로 블록 또는 페이지를 "불량"으로 임시적으로 마킹하는 것이 요구된다. 선택된 모드에 따라, 기능 블록 909 에 의해 나타낸 바와 같이, 적절한 시간 제한이 선택된다. 일찍이 설명된 방식과 유사하게, 각 시간 제한은 메모리 디바이스 (911) 의 보호 부분 또는 레지스터 (910) 에서 요구되면 저장될 수도 있고, 메모리 제어기는 어떤 모드를 적용할지를 플래시 메모리 디바이스에만 알려줄 필요가 있으며; 다른 방법으로는 (도 9 에서 보이지 않은) 플래시 메모리 제어기는 시간 제한을 계산 및 저장하여 관련 시간 제한으로 각 메모리 디바이스 (911) 에서 레지스터 셋팅을 프로그래밍할 수도 있다. 일찍이 설명된 바와 동일한 방식으로, 타이머 (913) 또는 균등한 메커니즘은 각 메모리 트랜잭션 중에 메모리 트랜잭션 시간을 측정하는데 이용될 수도 있는데, 이때 트랜잭션 시간은 기능 블록 917 로 표시된 바와 같이, 관련 시간 제한에 반해 측정된다. 수행 모드가 선택되면, 시간 제한은 더 작아질 것이고, 용량 모드가 선택되면, 시간 제한은 보다 더 관대한 것으로 선택된다. 또한, 이전에 언급하였던 바와 같이, 시간은 수개의 프로그램 검증 사이클, 클록 사이클, 또는 요청된 제어 전압과 같은 몇몇 다른 측정치를 이용하는 것을 포함하는 임의의 적절한 유닛을 이용하여 선택될 수 있다. 기능 블록 919 및 921 로 표시된 바와 같이, 경험적으로 결정된 "수행 모드" 시간 제한에 대하여, 메모리 트랜잭션이 타임-아웃되면, 연관된 유닛은 "불량"으로 마킹되고, 제어기는 상이한 블록 또는 페이지를 시도한다. "불량"으로 마킹된 유닛 (915) 이 요구되면, 점선의 옵션 블록 923 으로 표시된 바와 같이, 낮은 차수 모드로 가능한 이용을 위해 이어마킹 (earmark) 될 수 있으며; 예를 들어, 시스템은 수행 모드 메모리 이용 테이블에서 "불량"으로 특정 메모리 유닛을 마킹할 수 있고, 유사하게 다음으로 낮은 차수 메모리 이용 테이블 (예를 들어, 2 개의 모드가 이용되면, 용량 모드에 대한 메모리이용 테이블) 에서 특정 메모리 유닛을 이용가능하다고 마킹할 수 있다. 그러나, 메모리 트랜잭션의 수행이 성공적으로 검증되면, 시스템은 메모리 트랜잭션을 끝내고, 예를 들어, 블록 925 및 927 로 표시된 바와 같이, 다음의 대기 메모리 트랜잭션으로 진행한다.
전술한 설명으로부터 인식하여야 하는 바와 같이, 다수의 모드의 이용은 프로그래머 또는 시스템 설계자가 플래시 메모리를 관리함에 있어서 트레이드오프를 고려할 수 있게 하거나, 그 메모리를 동적으로 적용할 수 있게 한다. 개별 메모리 유닛의 성능을 경험적으로 측정 및 사전-특성화함으로써, 이들 유닛은 상이한 동작 모드에 할당될 수 있고, 이에 의해 일반 프로세서 타임-아웃에 단순히 의존함으로써 획득되지 않는 방식으로 효율적인 스케줄링 및 시스템 관리를 용이하게 한다.
도 10 은 다수 모드로 이용하기 위해 플래시 메모리를 구성하는 제어기로 구현되는 방법 (1001) 을 도시한다. 특히, (도 10 에 도시되지 않은) 하나 이상의 플래시 디바이스와 연관된 각 메모리 유닛은 참조 블록 1003 으로 표시된 바와 같이, 이전에 설명되었던 바와 같이 교정 및 특성화된다. 다시 말해, 각 유닛은 (ⅰ) 이 유닛이 종래의 일반 타임-아웃을 위반하기 때문에 이 유닛이 "불량"인지 여부를 판정하고, (ⅱ) 또한 "불량"으로 초기에 마킹되지 않은 유닛이 더 신속한 동작을 할 수 있는지 여부를 판정하는 미리 결정된 트랜잭션을 경험한다. 이 방법은 도 6 과 관련하여 설명된 바와 같이, 각 유닛에 대한 최대 트랜잭션 시간을 경험적으로 측정한다. 일단 이들 시간이 획득되면, 기능 블록 1011 로 표시된 바와 같이, 이 방법은 각 모드를 고유하게 특성화하는 특성을 식별한다. 예를 들어, 각 모드는 연관된 기준 세트를 갖는 것으로 도 10 에 도시된다; 제 1 모드 (1005) 는 이 "수행 모드"에 대해 메모리 유닛의 "최고 고속" 절반만이 선택될 것이라는 것을 표시하는 "50%"로 라벨링된다. 유사하게, 제 2 모드 (1007) 는 이 모드에 대해 유닛의 "최고 고속" 70% 가 선택되어야 한다는 것을 표시하는 70% 로 라벨링되고; 유사하게, N번째 모드는 n i 기준이 이 모드를 특성화하도록 적용되는 것을 표시하는 n i 로 라벨링된다. [그 중에서도, 이들 값은 설명을 목적으로 이용된 가설일 뿐이고 - 실제로, 메모리 유닛은 평균적으로 분포된 프로그래밍 시간을 가지지 않을 것이어서, 퍼센트 기반 접근법은 최적 미만일 수도 있고; 매우 다양한 통계적 접근법들을 포함하는 다른 접근법들은 효율적인 플래시 메모리 애플리케이션에 보다 적절할 수도 있고, 디지털 설계의 당업자에 의해 설계 목적에 따라 쉽게 선택될 수도 있다.]
각 모드에 있어서, 참조부호 1013-1023 으로 표시된 바와 같이, 이 방법 (1001) 은 이후 모드 특성을 적용하여 메모리 이용 테이블을 만든다. 이 테이블은 특정 모드와 관련하여 이용될 수도 있는 메모리 유닛을 표시하며, 반대로 이 메모리 유닛은 특정 모드에 대하여 "불량"으로 마킹된다. 일단 각 메모리 모드에 대해 테이블이 생성되면, 시스템은 런-타임 동작, 예를 들어, 도 9 에 도시된 방법에 의해 이용될 수도 있다.
Ⅲ. 플래시 내의 상대적 우선순위를 생성하기 위한 교정의 이용
플래시 메모리의 미리 구성된 모드를 이용하는 것에 더해, 본 명세서에서 논의된 방법 및 장치는 또한 메모리 이용을 우선시키는데 채용될 수도 있다. 방금 표시된 바와 같이, 평균 실시에서, 대부분의 플래시 메모리 유닛이 비교적 신속하게 수행될 것이고, 느리거나 "불량"한 유닛은 극도의 소수 집단에 있을 것이라는 것을 알 수 있다. 그 결과, 선택가능한 모드에 따라 메모리를 조직화하는 대신, 우선순위의 관점에서 메모리를 랭크하는 것도 가능하다. 예를 들어, 다수의 메모리 유닛이 모두 프로그래밍에 필요한 비교적 낮은 수의 특정 프로그램-검증 사이클에 의해 특성화되면, 이들 유닛은 "최고 고속" 메모리로 랭크될 수도 있으며, 이때 메모리 트랜잭션은 이들 유닛에 스큐 (skew) 된다. 예를 들어, "고속" 유닛은 비교적 빈번한 턴오버를 수반하는 메모리 트랜잭션으로 이어마킹될 수 있고, 이에 이해 전체 시간을 최소화할 수 있으며; 이들 유닛은 또한 보다 중요한 데이터의 저장을 위해 이어마킹될 수 있다. 우선순위에 따라 플래시를 조직화하는 것은 일찍이 설명된 방법과 유사하고, 도 11 및 도 12 를 참조하여 설명된다.
도 11 은 일찍이 설명된 방법을 이용하여 플래시 메모리 디바이스 (1103) 의 최대 트랜잭션 시간을 측정하는 방법 (1101) 을 도시한다. 특히, 기능 블록 1105 로 표시된 바와 같이, 메모리의 서브디비전 (1104) 은 미리 결정된 메모리 트랜잭션을 이용하여 교정될 수도 있다. [이 방법이 요구되면, 이 방법은 또한 메모리 유닛으로서 개별 플래시 메모리 디바이스를 이용하여 채용될 수도 있고; 예를 들어, 다중 모드 애플리케이션과 이 방법을 결합할 때, 하나의 플래시 메모리 디바이스는 다른 것보다 우선순위가 주어질 수도 있고, 플래시 이용의 다중 모드가 플래시 디바이스의 서브세트에서, 또는 특정 레벨의 우선순위를 갖는 플래시 메모리에만 구현될 수 있다.] 일찍이 설명된 방법의 경우에서와 같이, 미리 결정된 메모리 트랜잭션은 이상적으로, 메모리 유닛과 연관된 모든 비트를 삭제된 상태에서 프로그래밍된 상태로 (또는 삭제 동작의 경우에 프로그래밍된 상태에서 삭제된 상태로) 변경하는 트랜잭션과 같이, 가능한 최대 수의 셀을 프로그래밍 또는 삭제하는 것을 필요로 하는 것으로 선택된다. 이후, 이 방법은 이전에 결정된 제한 (예를 들어, 이전의 교정 동안에 계산된 유닛 특정 시간 제한) 또는 일반 타임아웃, 또는 둘 다와 프로그램-유효성을 비교할 수도 있다. 적절하다면 (즉, 유닛이 최대 시간 내에 검증될 수 없다면), 응답이 늦은 메모리 유닛은 "불량"으로 마킹된다. 이들 기능은 참조부호 1107, 1109, 1111 및 1113 으로 표시된다. 검증된 트랜잭션이 블록 1111 에 의해 나타낸 최대 타임 아웃 주기를 초과하지 않으면, 참조부호 1115 및 1116 으로 표시된 바와 같이, 새롭게 교정된 제한은 디바이스 메모리의 예약된 부분에 저장될 수도 있다. 기능 블록 1117 및 1118 로 표시된 바와 같이, 이 방법 (1101) 은 이후 고려 대상인 모든 플래시 메모리 유닛이 프로세싱될 때까지 계속된다.
일단 메모리의 교정이 완료되면, 각각 기능 블록 1119 및 1121 로 표시된 바와 같이, 시스템은 이후 교정된 플래시 메모리를 우선시키고 적절한 메모리 이용 테이블을 만들도록 진행할 수도 있다. 거의 임의의 원하는 우선화 방식이 설계 환경에 적절하게 구현될 수도 있다. 예를 들어, 플래시 메모리의 "최고 고속" 수개의 에셀론 (echelon) 은 각각 자신의 우선순위를 수신할 수도 있거나, 몇몇 다른 방식이 이용될 수도 있다.
도 12 는 가설적 우선화 방식 (1201) 을 도시한다. 특히, 각 테이블은 매칭 우선순위를 갖는 메모리 유닛을 표시하는 우선순위 표시자 및 테이블로 구성될 수도 있다. 도 12 에서, 3 개의 우선순위 레벨, 1203, 1205 및 1207 이 표시되며, 각각 "N" 개의 메모리 유닛을 그 들 사이에 분배하는 매칭 테이블 1203, 1205 및 1207 을 가진다. 도 12 에 도시된 바와 같은 우선순위는 적은 수의 유닛만을 지칭하는 것으로 보이지만, 실제로 "N"의 값은, 예를 들어, 메모리 디바이스에서 잠재적으로 많은 수천의 페이지와 함께 수천 또는 수백만에 있을 수 있다고 관찰되어야 한다. 일찍이 설명되었던 바와 같이, 메모리는 주기적으로 재교정되어, 유닛의 우선순위의 결과적인 변경과 함께, 메모리 유닛의 우선순위의 재할당을 야기할 수도 있다. 런-타임 동안, 운영 체제 또는 애플리케이션 소프트웨어는 우선순위에 따라 메모리를 부킹할 수도 있거나, 메모리 트랜잭션에 이용될 최소 또는 최대 우선순위를 명기할 수도 있다.
Ⅳ. 이전에 마킹된 유닛의 재교정
특히 플래시 메모리의 다중 모드에 의존하는 시스템에서 또는 플래시 메모리의 유닛이 우선되는 경우에, (예를 들어, 일 모드에서 "불량"으로) 마킹된 메모리 유닛은 상이한 모드에서 이용가능할 수도 있다. 도 13 은 어떻게 이전에 마킹된 메모리 유닛이 재교정되고 잠재적으로 이득이 있게 채용될 수도 있는지를 설명하는데 이용된다.
도 13 에 표시된 바와 같이, 블록 1303 으로 표시된 바와 같이, 교정 방법 (1301) 은 하나 이상의 제어기 이용 테이블에 접근하여 이전에 마킹된 블록들을 식별한다. 슬립핑 (slipping) 성능으로 인해서만 유닛이 마킹될 수도 있기 때문에, 연관된 메모리 유닛은 여전히 더 큰 제한 내에서 신뢰성 있는 동작을 할 수 있다. 따라서, 참조부호 1305 로 표시된 바와 같이, 방법 (1301) 은 최대, 일반 타임-아웃으로 임의의 적용가능한 시간 제한을 정한다. 이 방법은 이후 각각의 식별된 메모리 공간에 대해 미리 결정된 트랜잭션이 수행되고; 채용된 특정 트랜잭션은 다시, 임의의 메모리 유닛 프로그래밍 트랜잭션 또는 삭제 트랜잭션과 연관된 최대 시간을 이상적으로 측정하는 트랜잭션이다. 트랜잭션이 타임-아웃되면, 블록 1309 및 1311 에 의하여, 이 시스템은 특정 유닛을 "불량"으로 다시 마킹한 후, 재교정될 다음 유닛에서 계속될 수 있고; 트랜잭션이 타임-아웃되지 않으면, 이 방법은 공지된 방법을 이용하여 트랜잭션의 성공적인 수행을 검증하도록 진행할 수 있다 (즉, 블록 1313 에 의해 암시된 바와 같이, 이 방법은 트랜잭션의 성공이 검사될 수 없으면 다음 프로그램-검증 사이클로 계속된다). 일단 트랜잭션이 성공적이면, 이 방법은 경험적으로 측정된 시간과 플래시 메모리 (1315) 에 저장된 임의의 이전의 값을 비교하고; 프로세싱 중인 각 유닛은 몇몇 초기 동작에서 마킹되었을 것이고, 기능 블록 1317 로 표시된 바와 같이, 이러한 임의의 마킹 (및 임의의 이전에 결정된 값) 은 새롭고 경험적으로 측정된 값으로 대체된다. 이 방법은 이러한 방식으로 진행되어, 참조부호 1319 로 표시된 바와 같이, 재교정이 요구되는 각 유닛을 프로세싱하고 메모리 이용 테이블을 적절하게 수정한다. 일단 모든 메모리 유닛이 프로세싱되었으면, 재교정은 완료된 것으로 간주될 수 있다.
제한적인 이용을 위해 이전에 마킹된 메모리 유닛을 효과적으로 재고려하는 메커니즘을 제공함으로써, 방법 (1301) 은 플래시 메모리의 이용을 확장하는 방법을 제공하고, 다른 제한된 목적을 위해 또는 더 낮은 차수 모드로 퇴화 (degenerate) 된 메모리의 이용을 가능하게 한다. 방법 (1301) 은, 구체적으로 특정 모드에 대한 재교정된 유닛의 할당을 야기할 필요가 없으며, 예를 들어, 예약된 메모리로서의 이용, 또는 다른 이용과 같은 특수 목적 애플리케이션에 재교정된 유닛을 재할당하는 것이 가능할 수도 있다. 또한, 완료된 메모리 동작을 경험하지 않은 유닛은 "불량"으로 마킹될 필요가 없으며, 예를 들어, 연관된 시간 제한을 증분함으로써 (예를 들어, 1 만큼, 그리고 (적절하다면) 다시 메모리를 교정함으로써) 이들 유닛에 대한 다른 형태의 특수 핸들링을 제공하는 것이 또한 가능하다. 그러나, 설명된 방법은 명백하여야 하는 바와 같이, 플래시 메모리의 이용을 개선하고 잠재적 이용을 확장하여야 하는 플렉시빌리티를 제공한다.
Ⅴ. 결론
플래시 메모리와 연관된 예상 트랙잭션 시간을 경험적으로 측정하는 방법을 제공함으로써, 본 명세서에서 설명된 방법 및 시스템은 플래시 메모리가 적용될 수 있는 애플리케이션을 잠재적으로 개선한다. 예를 들어, 플래시 메모리가 매력적인 비용, 폼 팩터, 전력 특성 및 열 특성을 나타내지만, 플래시 메모리의 고유 제한은 수개의 애플리케이션에 대한 플래시 메모리의 이용을 방해한다는 것을 이전에 언급하였다. 경험적으로 측정된 데이터의 이용을 통해 플래시 메모리의 보다 신뢰성 있는 스케줄링을 용이하게 함으로써, 그리고 우선화 방식 및 메모리 동작의 다중 모드에서의 이용 및 플래시 메모리의 재교정을 허용하는 방법을 제시함으로써, 상기에서 논의된 실시형태는 플래시 메모리의 지금의 시장을 나타내는 다른 애플리케이션 또는 메인 메모리를 잠재적으로 포함하여, 보다 넓은 스케일의 플래시 메모리의 이용을 잠재적으로 용이하게 한다.
이와 같이 설명된 수개의 예시적인 구현예를 가지지만, 다양한 변형, 수정, 및 개선이 당업자에게는 손쉽게 발생할 것이라는 것이 명백할 것이다. 플래시 메모리 시스템 이외의 시스템에 대한 본 명세서에서 설명한 원리의 적용은 당업자에게는 손쉽게 발생할 것이다. 또한, 상기에서 암시했던 바와 같이, 숙련된 설계자는, 예를 들어, 디바이스 스케일, 블록, 페이지 또는 다른 스케일을 포함하여 임의의 레벨의 입도를 이용하여 상술한 방법 및 시스템을 구현할 수도 있다. 유사하게, 프로그래밍 트랜잭션은 교정될 수 있는 단 하나의 트랜잭션이 아니며, 특정 타입의 메모리 트랜잭션만을 위한 제한을 계산하는 것에 제한되지 않고; 상술한 방법은 트랜잭션 차입 (예를 들어, 삭제 트랜잭션 대 판독 트랜잭션 대 프로그래밍 트랜잭션 대 다른 트랜잭션) 에 대한 시간을 계산하는데 적용될 수도 있거나, 다른 방법으로는, 단 하나의 비교적 시간 소비적인 트랜잭션 (예를 들어, 프로그래밍 트랜잭션) 에 대해 모든 목적을 위해 이용되는 시간 제한을 기초로 할 수도 있다. 또한, 셀을 프로그래밍하는데 이용되는 제어 전압이 계단 방식으로 상승하는 시스템에서, 클록 또는 프로그램-검증 사이클 대신에, 유사하게 프로그램 전압을 모니터링함으로써 허용된 시간을 최소로 할 수도 있다. 상기에 명시적으로 제시된 것 이외에 플래시 메모리 교정의 다른 잠재적인 애플리케이션이 있을 수도 있다. 또한, 상기의 설명은 테이블이 플래시 메모리의 레지스터에 저장되는 것으로 언급하지만, 이들 테이블 및 연관된 값은 또한 플래시 어레이, 플래시 제어기에, 운영 체계에 의해, 또는 임의의 다른 형태의 메모리에 (예를 들어, DRAM 또는 하드 디스크 상에) 저장될 수도 있다는 것을 이해하여야 한다. 이러한 변경, 수정, 및 개선이 상기에서 확실히 설명되지 않더라도, 이들은 본 개시물의 범위 및 사상 내에서 의도되고 포함된다.
따라서, 전술한 논의는 예시적이고, 메모리 시스템을 구성하는 하나의 특정 방법 및 시스템의 예를 제공하는 것으로 의도되고; 본 개시물의 범위 및 사상 내에 있는 다른 설계, 이용, 대안, 수정 및 개선은 또한 당업자에게 발생할 것이며, 이는 다음의 청구범위 및 그 균등물에 의해서만 제한 및 정의된다.

Claims (35)

  1. 플래시 메모리 디바이스를 이용하는 방법으로서,
    상기 플래시 메모리 디바이스는 복수의 페이지를 포함하고,
    상기 방법은,
    상기 페이지 중 적어도 하나의 페이지에 대한 트랜잭션 시간을 특성화하는 단계; 및
    제한에 기초하여 상기 적어도 하나의 페이지를 수반하는 메모리 트랜잭션을 스케줄링하는 단계를 포함하며,
    상기 특성화하는 단계는,
    상기 페이지 중 상기 적어도 하나의 페이지의 메모리 셀에 대해 메모리 동작을 수행하는 단계로서, 상기 메모리 동작은 상기 메모리 셀이 프로그래밍된 상태 또는 삭제된 상태 중 하나에 있을 때까지 프로그램-검증 사이클의 시퀀스를 수행하는 것을 포함하는, 상기 메모리 동작 수행 단계;
    상기 프로그램-검증 사이클의 시퀀스와 연관된 시간 지연을 측정하는 단계; 및
    상기 측정된 시간 지연에 기초하여 상기 제한을 저장하는 단계로서, 상기 제한은 상기 적어도 하나의 페이지에 대한 트랜잭션 시간에 대응하는, 상기 저장 단계를 포함하는, 플래시 메모리 디바이스의 이용 방법.
  2. 제 1 항에 있어서,
    상기 방법은,
    상기 적어도 하나의 페이지에 대한 상기 트랜잭션 시간을 주기적으로 재특성화함으로써, 상기 제한을 재결정하는 단계; 및
    상기 재결정된 제한에 기초하여 상기 적어도 하나의 페이지를 수반하는 후속 메모리 트랜잭션을 스케줄링하는 단계를 더 포함하는, 플래시 메모리 디바이스의 이용 방법.
  3. 제 2 항에 있어서,
    상기 주기적으로 재특성화하는 단계는 (ⅰ) 디지털 시스템 파워-업, (ⅱ) 미리 결정된 교정 인터벌, (ⅲ) 프로그래밍 트랜잭션의 수행, 또는 (ⅳ) 삭제 트랜잭션의 수행 중 적어도 하나 동안에 수행되는, 플래시 메모리 디바이스의 이용 방법.
  4. 제 1 항에 있어서,
    상기 측정하는 단계는 상기 메모리 셀 중 임의의 메모리 셀에 대한 메모리 동작의 완료를 위한 최대 개수의 프로그램-검증 사이클에 기초하여 상기 시간 지연을 측정하는, 플래시 메모리 디바이스의 이용 방법.
  5. 제 4 항에 있어서,
    복수의 페이지 중에서 상이한 페이지에 대하여 상이한 제한을 저장하는 단계; 및
    상기 복수의 페이지 중 특정 페이지에 대해 후속 메모리 트랜잭션이 수행되는 경우, 연관된 제한을 검색하고 상기 연관된 제한 내에 상기 복수의 페이지 중 상기 특정 페이지에 대해 상기 후속 메모리 트랜잭션이 완료되지 않으면 이에 응답하여 상기 복수의 페이지 중 상기 특정 페이지를 마킹하는 단계를 더 포함하는, 플래시 메모리 디바이스의 이용 방법.
  6. 제 4 항에 있어서,
    상기 적어도 하나의 페이지는 제 1 개수의 페이지 중 하나이고;
    상기 방법은,
    상기 제 1 개수의 페이지보다 큰 제 2 개수의 페이지에 대한 제 2 트랜잭션 시간을 특성화하는 단계로서, 상기 제 2 개수의 페이지 중 적어도 하나는 상기 제 1 개수의 페이지 중 하나인, 상기 특성화 단계;
    상기 제 2 트랜잭션 시간에 기초하여, 처음에 언급된 상기 제한보다 긴 제 2 제한을 저장하는 단계;
    애플리케이션이 메모리 용량을 초과하는 성능을 요구하는지 여부에 기초하여 처음에 언급된 상기 제한 또는 제 2 제한 중 하나를 선택하는 단계; 및
    상기 제 1 개수의 페이지 또는 상기 제 2 개수의 페이지 중 특정 페이지에 대해 후속 트랜잭션이 수행되는 경우, 상기 선택된 제한 내에 상기 후속 트랜잭션이 완료되지 않으면 이에 응답하여 상기 특정 페이지를 마킹하는 단계를 더 포함하는, 플래시 메모리 디바이스의 이용 방법.
  7. 제 1 항에 있어서,
    상기 방법은,
    상기 적어도 하나의 페이지에 대한 트랜잭션 시간을 주기적으로 재특성화함으로써, 상기 제한을 재결정하는 단계를 더 포함하며,
    상기 주기적으로 재특성화하는 것은 컴퓨터 운영 체계에 의해 수행되는, 플래시 메모리 디바이스의 이용 방법.
  8. 플래시 메모리의 서브디비전의 복수의 유닛 중 각각의 유닛과 최대 시간을 연관시키는 단계; 및
    상기 서브디비전의 유닛들 중 적어도 하나의 유닛에 대해:
    상기 적어도 하나의 유닛의 메모리 셀에 대해 메모리 동작의 수행을 시도하는 단계로서, 상기 메모리 동작은 상기 메모리 셀이 프로그래밍된 상태 또는 삭제된 상태 중 하나에 있을 때까지 프로그램-검증 사이클의 시퀀스를 수행하는 것을 포함하는, 상기 메모리 동작의 수행 시도 단계;
    상기 메모리 동작의 정확한 수행을 검사하는 단계;
    상기 적어도 하나의 유닛과 연관된 적어도 상기 최대 시간까지, 상기 메모리 동작의 정확한 수행과 연관된 시간 주기를 측정하는 단계;
    상기 시간 주기가 상기 최대 시간 미만이면, 상기 시간 주기를 새로운 최대 시간으로 저장하는 단계; 및
    상기 시간 주기가 상기 최대 시간보다 크면, 상기 적어도 하나의 유닛을 마킹하는 단계를 포함하는, 방법.
  9. 제 8 항에 있어서,
    상기 플래시 메모리에 대해 수행될 새로운 메모리 트랜잭션을 개시하는 단계; 및
    상기 유닛이 마킹되는지 여부에 기초하여 상기 복수의 유닛으로부터 상기 새로운 메모리 트랜잭션을 수행하게 될 상기 유닛 중 하나를 선택하는 단계를 더 포함하는, 방법.
  10. 제 9 항에 있어서,
    상기 시도하는 단계는 상기 적어도 하나의 유닛의 메모리 셀의 전체를 프로그래밍하는 것 또는 삭제하는 것 중 하나를 포함하고,
    상기 방법은 상기 적어도 하나의 유닛의 상기 메모리 셀의 임의의 개수에 대해 후속 메모리 동작을 수행하기 위해 최대 시간을 교정하도록 구성되는, 방법.
  11. 제 8 항에 있어서,
    상기 적어도 하나의 유닛을 마킹하는 단계는 불량으로 상기 적어도 하나의 유닛을 마킹하는 것 또는 특수 프로세싱을 위해 상기 적어도 하나의 유닛을 마킹하는 것 중 적어도 하나를 포함하는, 방법.
  12. 제 8 항에 있어서,
    상기 유닛의 일부는 제한된 이용을 위해 마킹되고,
    상기 방법은,
    이전에 마킹된 각 유닛을 식별하는 단계;
    제한된 이용을 위해 이전에 마킹된 각 유닛에 대해 새롭고 더 큰 최대 시간을 정의하는 단계; 및
    대응하는 새롭고 더 큰 최대 시간을 이용하여 제한된 이용을 위해 이전에 마킹된 각 유닛에 대해 상기 시도, 검사 및 측정을 수행하고,
    상기 시간 주기가 상기 새로운 최대 시간 미만이면, 정확한 수행을 위해 상기 메모리 동작의 정확한 수행이 검사되는 경우에 각 유닛에 대한 새로운 최대 시간으로서 상기 측정된 시간 주기를 정의하며,
    상기 시간 주기가 상기 새로운 최대 시간보다 크면, 상기 유닛을 불량으로 마킹하는 단계를 더 포함하는, 방법.
  13. 제 8 항에 있어서,
    상기 연관시키는 단계는 예약된 메모리 영역으로부터 이전에 저장된 최대 시간을 검색하는 것을 포함하고;
    상기 저장하는 단계는 상기 예약된 메모리 영역, 하드 디스크, 플래시 메모리 디바이스의 연장된 페이지, 직렬 프레즌스 검출 유닛, 비휘발성 메모리, 플래시 메모리 칩의 온보드 레지스터, 또는 메모리 시스템 제어기로부터 선택된 위치에 각 시간 주기를 저장하는 것을 포함하는, 방법.
  14. 제 8 항에 있어서,
    상기 플래시 메모리에 대해 수행될 새로운 메모리 트랜잭션을 개시하는 단계; 및
    상기 유닛과 연관된 최대 시간에 의존하여 상기 복수의 유닛으로부터 상기 새로운 메모리 트랜잭션을 수행하게 될 플래시 메모리의 유닛 중 하나를 선택하는 단계를 더 포함하는, 방법.
  15. 플래쉬 메모리 디바이스로서,
    플래쉬 메모리;
    상기 플래쉬 메모리의 올바른 프로그래밍과 연관되고 프로그램가능하게 정의된 메모리 트랜잭션 시간을 나타내는 값을 홀딩하는 로직; 및
    상기 프로그램가능하게 정의된 메모리 트랜잭션 시간 내에 메모리 트랜잭션이 올바르게 프로그래밍되어 완료되었는지를 표시하는 출력을 제공하도록 구성된 레지스터 셋팅을 포함하고,
    상기 로직은 상기 프로그램가능하게 정의된 메모리 트랜잭션 시간으로 상기 플래쉬 메모리에 있어서의 프로그래밍 동작을 제한하도록 구성되는, 플래쉬 메모리 디바이스.
  16. 제 15 항에 있어서,
    상기 로직은 프로그램-검증 사이클의 개수로서 상기 프로그램가능하게 정의된 메모리 트랜잭션 시간을 해석하고, 상기 프로그램-검증 사이클의 개수로 프로그래밍 동작을 제한하도록 구성되고,
    상기 로직은, 상기 프로그래밍 동작이 상기 프로그램-검증 사이클의 개수 내에 성공적으로 완료되는지 여부에 기초하여 상기 레지스터 셋팅을 변경하도록 또한 동작하는, 플래시 메모리 디바이스.
  17. 제 15 항에 있어서,
    수개의 최대 프로그래밍 동작 시간을 저장하는 비휘발성 기억장치를 더 포함하며,
    각 시간은 메모리 서브디비전의 하나 이상의 유닛과 연관되고 선택적인 외부 검색 및 이용을 위해 구성되는, 플래시 메모리 디바이스.
  18. 레지스터 값을 홀딩하도록 구성된 레지스터;
    플래시 메모리;
    플래시 메모리의 지정된 부분에 대한 프로그램-검증 동작의 완료 시에 수반되는 시간을 측정하도록 구성된 타이머로서, 상기 측정된 시간은 타이머 값을 포함하는, 상기 타이머;
    상기 레지스터 값과 타이머 값을 비교하도록 상기 타이머 및 상기 레지스터에 동작가능하게 커플링된 비교기;
    플래시 메모리의 각 부분에 대해, 상기 타이머 값이 이전 트랜잭션에 대한 레지스터 값을 초과하지 않는 부분을 적어도 식별하는 테이블; 및
    선택된 트랜잭션이 성공적으로 완료되는 경우, 상기 타이머 값이 상기 레지스터 값 미만이면 상기 레지스터 값을 재정의하는 로직을 포함하는, 장치.
  19. 제 18 항에 있어서,
    적어도 하나의 플래시 메모리 디바이스 및 플래시 메모리 제어기를 갖는 메모리 시스템으로 구현되는, 장치.
  20. 제 19 항에 있어서,
    각 디바이스는 상기 타이머 값이 상기 디바이스에 대응하는 유닛에 대해 이전 트랜잭션에 대한 상기 레지스터 값을 초과하였는지 여부를 식별하는 제 2 테이블을 포함하는, 장치.
  21. 제 19 항에 있어서,
    불량으로 이전에 마킹된 유닛을 재교정하는 수단을 더 포함하는, 장치.
  22. 삭제
  23. 머신 판독가능 매체에 저장된 명령을 포함하는 장치로서,
    상기 명령은 실행되는 경우에 머신으로 하여금,
    플래시 메모리와 연관된 디폴트 제한을 검색하고;
    상기 플래시 메모리의 부분에 대해 미리 결정된 트랜잭션을 수행하며, 상기 미리 결정된 트랜잭션은 (ⅰ) 상기 부분의 모든 메모리 컨텐츠를 삭제하는 삭제 트랜잭션 또는 (ⅱ) 상기 부분과 연관된 모든 비트를 프로그래밍하는 프로그래밍 트랜잭션 중 하나인 것으로 선택되고;
    상기 미리 결정된 트랜잭션의 성공적인 완료와 연관된 시간을 측정하며;
    상기 미리 결정된 트랜잭션을 경험한 상기 부분과 연관되어 상기 시간을 저장함으로써, 상기 부분에 대해 메모리 트랜잭션의 장래의 수행에 대한 새로운 제한을 확립하게 하는, 장치.
  24. 제 23 항에 있어서,
    상기 명령은 또한, 머신으로 하여금 상기 새로운 제한 내에 메모리 트랜잭션의 장래의 수행이 완료되지 않으면 많아야 제한된 이용을 위해 상기 플래시 메모리의 부분을 마킹하게 하도록 구성되는, 장치.
  25. 제 23 항에 있어서,
    상기 명령은 또한 머신으로 하여금 많아야 제한된 이용을 위해 이전에 마킹된 메모리의 부분을 식별하게 하며, 적어도 이러한 식별된 부분에 대해,
    각 부분에 대해 상기 미리 결정된 메모리 트랜잭션을 수행하는 것을 시도하고;
    상기 미리 결정된 트랜잭션의 성공적인 완료와 연관된 새로운 제한을 설정하며;
    상기 미리 결정된 트랜잭션의 성공적이지 않은 완료와 연관된 각 부분을 불량으로 마킹하는, 장치.
  26. 제 24 항에 있어서,
    각 부분은 메모리 페이지 또는 메모리 블록 중 하나인 메모리 서브디비전의 유닛인, 장치.
  27. 머신 판독가능 매체에 저장된 명령을 포함하는 장치로서,
    상기 명령은 실행되는 경우에 머신으로 하여금,
    수행 모드 및 메모리 용량 모드를 포함하는 선택 세트로부터 원하는 메모리 이용 모드를 선택하고;
    플래시 메모리와 연관된 미리 결정된 값의 세트를 문의하되, 각각의 미리 결정된 값은 메모리의 특정 서브디비전에 대한 트랜잭션과 연관된 제한을 나타내며;
    메모리 트랜잭션을 관리하는데 이용하기 위해 구성된 메모리 테이블을 정의하되, 메모리 서브디비전 각각에 대한 이용가능한 메모리로서 테이블에서의 식별은 상기 미리 결정된 값 및 상기 선택된 모드에 의존하여 결정되는, 장치.
  28. 제 27 항에 있어서,
    상기 명령은 머신으로 하여금, 상기 수행 모드의 선택에 응답하여, 연관된 제한이 임계값 미만이면 상기 테이블에서 특정 메모리 서브디비전을 식별하게 하도록 구성되는, 장치.
  29. 제 28 항에 있어서,
    머신 판독가능 매체에 저장된 명령을 더 포함하며,
    상기 명령은 실행되는 경우에 머신으로 하여금, 연관된 제한에 기초하여 메모리 서브디비전을 우선화하고 상기 테이블에 우선화 결과를 저장하게 하는, 장치.
  30. 플래쉬 메모리 디바이스로서,
    임의의 프로그램 트랜잭션에 이용될 최대 프로그램-검증 사이클을 나타내는 값을 저장하는 레지스터;
    프로그램 트랜잭션이 레지스터 값에 의해 지정된 사이클 카운트를 초과하면 상기 프로그램 트랜잭션이 정지하는 경우에, 상기 레지스터 값에 의해 지정된 것보다 많은 사이클을 프로그램 트랜잭션이 수행하였는지 여부를 평가하는 비교기; 및
    프로그램 트랜잭션에 이용될 프로그램-검증 사이클의 개수를 카운팅하는 타이머를 포함하고,
    상기 레지스터는 상기 타이머에 동작가능하게 커플링되며, 프로그램 트랜잭션이 이전의 레지스터 값에 의해 나타낸 것보다 더 적은 시간에 성공적으로 완료되면 최대 프로그램-검증 사이클을 타이머 컨텐츠와 교체하도록 구성되는, 플래시 메모리 디바이스.
  31. 삭제
  32. 제 30 항에 있어서,
    상기 레지스터는 다수의 위치를 포함하며, 각각의 위치는 상기 플래시 메모리 디바이스의 메모리의 페이지에 대응하는, 플래시 메모리 디바이스.
  33. 플래시 메모리 디바이스를 교정하는 방법으로서,
    상기 플래시 메모리 디바이스는 적어도 하나의 페이지를 포함하며,
    상기 방법은,
    특성화 모드에서,
    상기 적어도 하나의 페이지를 삭제하는 단계;
    상기 삭제의 완료를 검사하는 단계;
    상기 삭제 및 상기 검사와 연관된 시간을 측정하는 단계; 및
    상기 측정된 시간에 기초하여 제한을 저장하는 단계를 포함하는, 플래시 메모리 디바이스의 교정 방법.
  34. 제 33 항에 있어서,
    표준 모드에서,
    상기 제한에 기초하여 상기 적어도 하나의 페이지를 수반하는 트랜잭션을 스케줄링하는 단계를 더 포함하는, 플래시 메모리 디바이스의 교정 방법.
  35. 제 33 항에 있어서,
    상기 삭제하는 단계는 페이지와 연관된 각 비트를 변경하는 미리 결정된 메모리 트랜잭션을 수행하는 단계를 포함하고;
    상기 측정하는 단계는 상기 연관된 페이지의 임의의 비트에 대한 상기 트랜잭션의 완료를 위해 최대 개수의 프로그램-검증 사이클에 기초하여 상기 시간을 측정하는 단계를 포함하는, 플래시 메모리 디바이스의 교정 방법.
KR1020107015353A 2007-12-21 2008-12-23 플래시 메모리 타이밍 사전-특성화 KR101184953B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US872407P 2007-12-21 2007-12-21
PCT/US2008/088223 WO2009086417A1 (en) 2007-12-21 2008-12-23 Flash memory timing pre-characterization for use in ormal operation

Publications (2)

Publication Number Publication Date
KR20110043517A KR20110043517A (ko) 2011-04-27
KR101184953B1 true KR101184953B1 (ko) 2012-10-02

Family

ID=40459781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107015353A KR101184953B1 (ko) 2007-12-21 2008-12-23 플래시 메모리 타이밍 사전-특성화

Country Status (5)

Country Link
US (3) US8484407B2 (ko)
EP (1) EP2286412A1 (ko)
JP (1) JP5603778B2 (ko)
KR (1) KR101184953B1 (ko)
WO (1) WO2009086417A1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484407B2 (en) 2007-12-21 2013-07-09 Rambus Inc. Flash memory timing pre-characterization
US8825940B1 (en) 2008-12-02 2014-09-02 Siliconsystems, Inc. Architecture for optimizing execution of storage access commands
US9176859B2 (en) * 2009-01-07 2015-11-03 Siliconsystems, Inc. Systems and methods for improving the performance of non-volatile memory operations
US10079048B2 (en) * 2009-03-24 2018-09-18 Western Digital Technologies, Inc. Adjusting access of non-volatile semiconductor memory based on access time
TWI486966B (zh) * 2010-02-04 2015-06-01 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與寫入管理方法
JP2012027964A (ja) * 2010-07-20 2012-02-09 Panasonic Corp メモリ装置及びcpuの制御方法
US8499201B1 (en) * 2010-07-22 2013-07-30 Altera Corporation Methods and systems for measuring and presenting performance data of a memory controller system
US8806106B2 (en) * 2010-11-12 2014-08-12 Seagate Technology Llc Estimating wear of non-volatile, solid state memory
IT1403667B1 (it) * 2011-01-31 2013-10-31 St Microelectronics Srl Dispositivo di memoria con misurazione interna di parametri funzionali
US8659954B1 (en) * 2011-09-14 2014-02-25 Adesto Technologies Corporation CBRAM/ReRAM with improved program and erase algorithms
KR101949671B1 (ko) * 2012-06-28 2019-04-25 삼성전자 주식회사 라이프 싸이클을 증가시킬 수 있는 저장 장치 및 그 동작 방법
KR20140130309A (ko) * 2013-04-30 2014-11-10 삼성전자주식회사 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
US9442842B2 (en) 2013-08-19 2016-09-13 Sandisk Technologies Llc Memory system performance configuration
KR102187643B1 (ko) 2013-12-04 2020-12-08 삼성전자주식회사 메모리 시스템 및 그것을 포함하는 유저 장치
CN106909318B (zh) * 2013-12-23 2020-05-08 华为技术有限公司 固态硬盘使用方法及装置
US9442734B2 (en) * 2014-02-11 2016-09-13 Apple Inc. Completion time determination for vector instructions
US9632775B2 (en) 2014-02-11 2017-04-25 Apple Inc. Completion time prediction for vector instructions
KR102192242B1 (ko) 2014-02-24 2020-12-17 삼성전자주식회사 메모리로 커맨드를 이슈하는 커맨드 이슈 방법 및 메모리의 커맨드 처리 방법
US9632706B2 (en) * 2015-01-04 2017-04-25 Apple Inc. Ordering of parallel data storage based on die programming durations
US10289327B2 (en) * 2015-06-05 2019-05-14 Western Digital Technologies, Inc. Scheduling scheme(s) for a multi-die storage device
US10146671B2 (en) * 2015-09-25 2018-12-04 International Business Machines Corporation Testing of software upgrade
JP2018041154A (ja) * 2016-09-05 2018-03-15 東芝メモリ株式会社 ストレージシステムおよび処理方法
JP6356837B1 (ja) * 2017-01-13 2018-07-11 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法
US10002649B1 (en) * 2017-02-23 2018-06-19 Sandisk Technologies Llc Preliminary ready indication for memory operations on non-volatile memory
JP6414297B1 (ja) * 2017-08-18 2018-10-31 富士通株式会社 メモリコントローラ、情報処理システム、及び不揮発性メモリの不良判断方法
US11307909B2 (en) * 2017-08-29 2022-04-19 SK Hynix Inc. System for slowdown status notification and operating method thereof
US10936205B2 (en) 2017-10-05 2021-03-02 International Business Machines Corporation Techniques for retention and read-disturb aware health binning
US10824352B2 (en) 2017-12-06 2020-11-03 International Business Machines Corporation Reducing unnecessary calibration of a memory unit for which the error count margin has been exceeded
US11029879B2 (en) 2018-01-29 2021-06-08 Samsung Electronics Co., Ltd Page size synchronization and page size aware scheduling method for non-volatile memory dual in-line memory module (NVDIMM) over memory channel
US10852968B2 (en) * 2018-05-07 2020-12-01 Apple Inc. Techniques for managing memory allocation within a storage device to improve operation of a camera application
US10453537B1 (en) 2018-05-10 2019-10-22 International Business Machines Corporation Techniques for reducing read voltage threshold calibration in non-volatile memory
US10699791B2 (en) 2018-08-24 2020-06-30 International Business Machines Corporation Adaptive read voltage threshold calibration in non-volatile memory
CN115552383A (zh) * 2020-08-03 2022-12-30 华为技术有限公司 闪存数据管理方法、存储设备控制器及存储设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060104115A1 (en) * 2004-11-18 2006-05-18 Chun Dexter T Robust and high-speed memory access with adaptive interface timing
US20070266276A1 (en) * 2006-04-12 2007-11-15 Micron Technology, Inc. Memory block testing

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3736882C2 (de) * 1987-10-30 1997-04-30 Gao Ges Automation Org Verfahren zur Echtheitsprüfung eines Datenträgers mit integriertem Schaltkreis
JP3135673B2 (ja) * 1992-05-08 2001-02-19 株式会社東芝 メモリのデータ書き込み装置
JPH0714392A (ja) * 1993-06-14 1995-01-17 Toshiba Corp 不揮発性半導体メモリおよびそれを使用した半導体ディスク装置
JPH08221993A (ja) * 1994-03-25 1996-08-30 Seiko Instr Inc 半導体集積回路装置、その製造方法及びその駆動方法
US5610906A (en) 1994-06-29 1997-03-11 Interdigital Technology Corporation Spread-spectrum changeable base station
JPH0969294A (ja) * 1995-08-31 1997-03-11 Sanyo Electric Co Ltd 不揮発性多値メモリ装置
EP0867887A3 (en) * 1997-03-14 1998-11-25 Texas Instruments Incorporated Memory access time measurement circuit and method
JP3995768B2 (ja) * 1997-10-02 2007-10-24 株式会社ルネサステクノロジ 不良解析方法及びその装置
JPH11144481A (ja) * 1997-11-04 1999-05-28 Hitachi Ltd 半導体不揮発性メモリ
US6519716B1 (en) * 1999-09-22 2003-02-11 International Business Machines Corporation Electronic device initialization with dynamic selection of access time for non-volatile memory
US6205055B1 (en) 2000-02-25 2001-03-20 Advanced Micro Devices, Inc. Dynamic memory cell programming voltage
US6246611B1 (en) 2000-02-28 2001-06-12 Advanced Micro Devices, Inc. System for erasing a memory cell
JP4729179B2 (ja) * 2000-05-24 2011-07-20 株式会社アドバンテスト メモリ試験方法・メモリ試験装置
US6515909B1 (en) * 2001-10-05 2003-02-04 Micron Technology Inc. Flash memory device with a variable erase pulse
US6870770B2 (en) * 2001-12-12 2005-03-22 Micron Technology, Inc. Method and architecture to calibrate read operations in synchronous flash memory
JP2003233999A (ja) * 2002-02-07 2003-08-22 Hitachi Ltd 半導体集積回路及び半導体集積回路の製造方法
JP3866627B2 (ja) * 2002-07-12 2007-01-10 株式会社東芝 不揮発性半導体メモリ
TWI229343B (en) * 2002-11-27 2005-03-11 Univ Tsinghua Embedded memory access time measurement method and device
JP2004241045A (ja) * 2003-02-06 2004-08-26 Matsushita Electric Ind Co Ltd 不揮発性半導体記憶装置
US6940773B2 (en) 2003-04-02 2005-09-06 Infineon Technologies Ag Method and system for manufacturing DRAMs with reduced self-refresh current requirements
US7095669B2 (en) 2003-11-07 2006-08-22 Infineon Technologies Ag Refresh for dynamic cells with weak retention
KR100719380B1 (ko) * 2006-03-31 2007-05-18 삼성전자주식회사 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템
JP2005190604A (ja) * 2003-12-26 2005-07-14 Toshiba Corp 半導体不良解析装置及びそれを用いた不良モード分類方法
US7120888B2 (en) * 2004-07-12 2006-10-10 International Business Machines Corporation Method, system and storage medium for determining circuit placement
US7366013B2 (en) * 2005-12-09 2008-04-29 Micron Technology, Inc. Single level cell programming in a multiple level cell non-volatile memory device
JP2008146740A (ja) * 2006-12-08 2008-06-26 Sharp Corp 半導体記憶装置
US8484407B2 (en) 2007-12-21 2013-07-09 Rambus Inc. Flash memory timing pre-characterization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060104115A1 (en) * 2004-11-18 2006-05-18 Chun Dexter T Robust and high-speed memory access with adaptive interface timing
US20070266276A1 (en) * 2006-04-12 2007-11-15 Micron Technology, Inc. Memory block testing

Also Published As

Publication number Publication date
WO2009086417A1 (en) 2009-07-09
KR20110043517A (ko) 2011-04-27
US20110191526A1 (en) 2011-08-04
US9934866B2 (en) 2018-04-03
US20150162092A1 (en) 2015-06-11
JP5603778B2 (ja) 2014-10-08
JP2012513652A (ja) 2012-06-14
US8484407B2 (en) 2013-07-09
EP2286412A1 (en) 2011-02-23
US20140006691A1 (en) 2014-01-02
US8990485B2 (en) 2015-03-24

Similar Documents

Publication Publication Date Title
KR101184953B1 (ko) 플래시 메모리 타이밍 사전-특성화
JP5629391B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
TWI623878B (zh) 資料讀取方法以及儲存控制器
US10592126B2 (en) Memory management method, memory storage device and memory control circuit unit
US8645770B2 (en) Systems and methods for proactively refreshing nonvolatile memory
US8347024B2 (en) Memory system monitoring data erasing time or writing time
US20100199020A1 (en) Non-volatile memory subsystem and a memory controller therefor
US10628257B2 (en) Memory management method and storage controller
US7877668B2 (en) Memory access system
US20190066811A1 (en) Managing refresh for flash memory
JP2008123330A (ja) 不揮発性半導体記憶装置
US9881682B1 (en) Fine grained data retention monitoring in solid state drives
TWI650757B (zh) 解碼方法以及儲存控制器
TWI536386B (zh) 記憶體程式化方法、記憶體控制電路單元與記憶體儲存裝置
TWI651726B (zh) 解碼方法以及儲存控制器
TWI651721B (zh) 解碼方法以及儲存控制器
US11494123B2 (en) Memory system and control method thereof
JP5447617B2 (ja) フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリ制御方法
US10614892B1 (en) Data reading method, storage controller and storage device
US11710515B2 (en) Memory system
US11450397B2 (en) Memory system
CN109273037B (zh) 数据读取方法以及存储控制器
US10636493B2 (en) Relaxed erase parameters for block erasures in non-volatile storage media

Legal Events

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

Payment date: 20150904

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160905

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170908

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180904

Year of fee payment: 7