KR101721154B1 - 구성가능 에러 문턱값들 및 고장 해석 능력을 지니는 메모리 시스템 - Google Patents
구성가능 에러 문턱값들 및 고장 해석 능력을 지니는 메모리 시스템 Download PDFInfo
- Publication number
- KR101721154B1 KR101721154B1 KR1020157029205A KR20157029205A KR101721154B1 KR 101721154 B1 KR101721154 B1 KR 101721154B1 KR 1020157029205 A KR1020157029205 A KR 1020157029205A KR 20157029205 A KR20157029205 A KR 20157029205A KR 101721154 B1 KR101721154 B1 KR 101721154B1
- Authority
- KR
- South Korea
- Prior art keywords
- nvm
- threshold value
- symbol errors
- invalid
- segments
- 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/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
- G06F11/076—Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
비-휘발성 메모리(non-volatile memory; NVM)에서 고장 허용도를 구성하기 위한 시스템 및 방법은 제1 문턱값을 설정하고, 에러 기준에 기반하여 유효하지 않은 하나 이상의 NVM 부분들을 선언하며, 선언된 유효하지 않은 NVM 부분들의 개수를 추적하고, 추적된 개수가 상기 제1 문턱값을 초과하는 지를 결정하며, 상기 추적된 개수가 상기 제1 문턱값을 초과하는 경우에, 하이브리드 메모리 시스템에서의 경보 발행 또는 휘발성 메모리 데이터의 백업 방지와 같은 하나 이상의 재조정 작업들을 수행하도록 동작가능하다. 백업 고장의 경우에, 상기 백업의 범위는 백업 후에 소거되어 버린 소거된 NVM의 양을 결정함으로써, 또는 실제 엔드포인트와 예측된 백업 엔드포인트를 비교함으로써 여전히 평가될 수 있다.
Description
본 발명은 일반적으로 메모리 시스템들에 관한 것이며, 좀더 구체적으로 기술하면 휘발성 및 비-휘발성 메모리 양자 모두를 지니는 하이브리드 메모리 시스템들과 같은 메모리 시스템들의 성능 향상에 관한 것이다.
하이브리드 메모리 시스템들은 휘발성 및 비-휘발성 메모리 타입들의 혼합체를 지니는 메모리 시스템들이다. 하이브리드 메모리 시스템들은 시스템 고장 또는 전원 고장의 경우에나, 또는 몇몇 기록 또는 프로그래밍 동작들을 포함할 수 있는 사용자 요구들에 따라 휘발성 시스템 데이터를 안전하게 저장하는데 비-휘발성 메모리 구성요소들을 이용한다. 전형적으로는, 하이브리드 메모리 시스템에서 사용된 비-휘발성 메모리는 플래시 메모리이다. 상기 비-휘발성 메모리 구성요소들은 한정된 수명을 지니는 구분 메모리 부분들, 예를 들면 블록들로 형성된다. 이러한 수명들을 지니면, 상기 메모리 부분들은 더 이상 신뢰성 있게 데이터를 저장하는데 사용될 수 없고, 그때 상기 메모리 부분들에 존재하는 임의의 데이터가 신뢰성 있게 접근 또는 복구될 수 없다. 데이터의 손실이라는 결과가 초래되는 메모리 시스템들의 그러한 신뢰도 감소는 전반적인 시스템 성능 또는 동작에 파국적일 수 있다.
하이브리드 메모리 시스템들에서 사용된 비-휘발성 메모리의 한 타입은 NAND 플래시이다. NAND 플래시 기기들은 몇몇 판매업자들로부터 입수가능하며 그들 모두가 유사한 아키텍처를 공유하고 있다. 플래시 메모리의 판매업자들로는 SamsungTM, MicronTM, HynixTM, 및 ToshibaTM이 있다.
도 1을 참조하면, NAND 플래시 기기의 아키텍처는 다음과 같다.
· 각각의 기기는 몇몇 애플리케이션들에서 예를 들면 8,192일 수
있는 (X) 개수의 데이터 블록(data block; BL)들로 형성된다.
도 1에서는, 상기 메모리 기기(100)는 단지 예시만의 목적으로
12개의 블록(X=12)으로 구성되어 있다.
·각각의 블록 BL은 (Y) 개수의 페이지(P)들로 구성된다. Y는 몇몇
애플리케이션에서 128일 수 있다. 도 1에서 Y=4이고, 다시 말하면
또 단지 예시만을 목적으로 하여, 총 4x12=48 페이지에 대하여,
블록당 4 페이지(P)이다.
·각각의 페이지는 예를 들면 몇몇 애플리케이션들에서 8,228일 수
있는, (Z) 개수의 바이트(B)들로 구성된다(단지 예시만을 목적으로,
도 1에는 4개가 개략적으로 도시되어 있다).
NAND 플래시 기기는 페이지들의 단위로 프로그래밍/기록된다. 상기 NAND 플래시 기기는 블록 단위로 소거된다. 정정 불가능한 에러가 주어진 블록의 임의의 페이지에서 생긴 경우에, 전체 블록이 유효하지 않은 것으로 마킹된다.
정정 가능하고 정정 불가능한 에러들은 에러 검출 및 정정 알고리즘의 사용에 의해 검출된다. 데이터 보전성을 보장하기 위해, 상기 NAND 플래시 기기의 데이터는 에러 검출 및 정정 알고리즘에 의해 보호되는 것이 전형적이다.
하이브리드 메모리 시스템들과 같은 메모리 시스템들에 의한 비-휘발성 메모리 관리에 대한 한 가지 일반적인 달성방안은 여러 환경 하에서 정정 불가능한 에러들에 직면하게 될 경우에 메모리의 블록들을 유효하지 않은 것으로 마킹하는 것이다. 특히, 에러 복구가 수행되든 간에, 동작 단계에 따라 상기 에러로 인해, 시스템 데이터의 손실이라는 결과가 초래될 수도 있고 초래되지 않을 수도 있다. 일단 정정 불가능한 에러가 생기는 경우에, 블록이 유효하지 않은 것으로 마킹된다.
도 2를 참조하면, 일반적으로, 여러 에러 검출 및 정정 알고리즘이 이하의 속성들을 지닌다.
· 상기 알고리즘이 (n)개의 심벌들의 세그먼트 상에서 동작함
· 시스템이 비트(들)의 개수에 의해 특정됨
· 상기 알고리즘이 (2t)개의 패리티 심벌들을 계산하고 이를
한 세트의 (k)개의 데이터 심벌들에 가산함으로써 세그먼트(n):
n = k+2t(심벌들)인 관계를 생성함
· 상기 알고리즘이 (k)개의 데이터 심벌에서 (2t)개의 심벌 에러
를 검출할 수 있음
· 상기 알고리즘은 (k)개의 데이터 심벌에서 (t)개의 심벌 에러들
을 정정할 수 있음
(n)개의 심벌들의 세그먼트에서의 에러 개수가 정정된 (t)일 수 있는 개수를 초과하는 경우에, 상기 에러는 정정 불가능하고, 원래의 데이터가 복구될 수 없다.
정정 불가능한 에러가 생길 수 있는 경우를 결정 또는 검출함으로써 비-휘발성 메모리 시스템들의 신뢰도를 제어하고 그럼으로써 상기 비-휘발성 메모리의 부분, 예를 들면 블록 또는 페이지의 신뢰도에 대한 초기 경고를 제공할 수 있는 능력을 높일 필요가 있다. 더군다나, 너무 적은 비-휘발성 메모리 블록들 때문에 특정되거나 필요한 데이터 모두를 백업할 수 없는 경우를 결정할 필요가 있다. 더욱이, 컴퓨터 시스템 또는 최종 사용자에게 전반적인 컴퓨터 시스템, 특정 애플리케이션 사용, 또는 데이터 에러들에 대한 사용자의 위험 허용도에 기반하여 여러 매개변수에 대한 특정 문턱값들을 구성 및 고객맞춤화할 수 있는 프로그램 가능한 능력을 제공할 필요가 있다.
본원 명세서 내에 합체되어 본원 명세서의 일부를 구성하는 첨부도면들에는 실시 예들의 하나 이상의 예들이 예시되어 있으므로 상기 첨부도면들은 대표적인 실시 예들의 설명과 함께 상기 실시 예들의 원리들 및 구현들을 설명하는데 도움이 된다.
도 1은 논리 메모리 부분들의 관계들을 보여주는 개략도이다.
도 2는 메모리 세그먼트에서 에러 검출 및 정정을 예시하는 개략도이다.
도 3은 하이브리드 메모리 시스템의 블록도이다.
도 4는 비-휘발성 메모리와 함께 하이브리드 메모리 제어기를 보여주는 블록도이다.
도 5는 여러 문턱값 간의 관계를 보여주는 쿼리 프로세스의 흐름도이다.
도 6은 백업이 성공했는 지를 결정하기 위한 방법의 흐름도이다.
도 7은 백업 고장 분석에 대한 프로세스의 흐름도이다.
도 8은 백업에 대한 플래그 설정 타이밍을 보여주는 흐름도이다.
도 9는 트리거 상태로 유도된 백업 동작이 수행된 후에 이어지는 프로세스의 흐름도이다.
도 2는 메모리 세그먼트에서 에러 검출 및 정정을 예시하는 개략도이다.
도 3은 하이브리드 메모리 시스템의 블록도이다.
도 4는 비-휘발성 메모리와 함께 하이브리드 메모리 제어기를 보여주는 블록도이다.
도 5는 여러 문턱값 간의 관계를 보여주는 쿼리 프로세스의 흐름도이다.
도 6은 백업이 성공했는 지를 결정하기 위한 방법의 흐름도이다.
도 7은 백업 고장 분석에 대한 프로세스의 흐름도이다.
도 8은 백업에 대한 플래그 설정 타이밍을 보여주는 흐름도이다.
도 9는 트리거 상태로 유도된 백업 동작이 수행된 후에 이어지는 프로세스의 흐름도이다.
대표적인 실시 예들은 본원 명세서에서 메모리 시스템이라는 문맥으로 기재되어 있다. 당업자라면 이하의 기재가 단지 예시적인 것일 뿐이며 어떤 제한적인 방식으로 이루어지는 것으로 의도되지 않음을 인식할 것이다. 본 개시내용의 이점을 가지는 그러한 당업자에게는 다른 실시 예들이 저절로 떠오를 것이다. 지금부터 첨부도면들에 예시되어 있는 바와 같은 대표적인 실시 예들의 구현 예들에 대한 구체적인 참조가 이루어질 것이다. 동일한 참조 표시자들은 첨부도면들 및 이하의 기재 전반에 걸쳐 적용가능한 범위에 이르기까지 동일하거나 유사한 항목들을 언급하는데 사용될 것이다.
명확성을 위해, 본원 명세서에 기재된 구현 예들의 일상적인 특징들 모두가 도시 및 기재되어 있지 않다. 물론, 당업자라면 그러한 임의의 실제 구현 예의 개발시, 다수의 구현 예-특정 결정이 애플리케이션- 및 비즈니스-관련 제약사항들의 준수와 같은 개발자의 특정 목적들을 달성하기 위해 이루어져야 하며 이러한 특정 목적들이 한 구현 예로부터 다른 한 구현 예로 그리고 한 개발자로부터 다른 한 개발자로 변하게 됨을 인식할 것이다. 더욱이, 당업자라면 그러한 개발 노력이 복잡하고 시간 소모적일 수 있지만, 그럼에도 본 개시내용의 이점을 가지는 당업자를 위한 일상적인 공학 프로젝트임을 인식할 것이다.
본 개시내용에 의하면, 본원 명세서에 기재되어 있는 구성요소들, 프로세스 단계들, 그리고/또는 데이터 구조들은 여러 타입의 운영 시스템들, 컴퓨팅 플래폼들, 컴퓨터 프로그램들, 및/또는 범용 머신들을 사용하여 구현될 수 있다. 그 외에도, 당업자라면 하드웨어 기기들, 필드 프로그램가능 게이트 어레이(field programmable gate array; FPGA)들, 주문형 집적회로(application specific integrated circuit; ASIC)들 따위와 같은 적은 범용적 성질의 기기들이 또한 본원 명세서에 개시된 발명 개념의 범위 및 정신으로부터 벗어나지 않고 사용될 수 있다. 일련의 프로세스 단계들을 포함하는 방법이 컴퓨터 또는 머신에 의해 구현되고 그러한 프로세스 단계들이 상기 머신에 의해 판독가능한 일련의 명령어들로서 저장될 수 있는 경우에, 상기 명령어들은 컴퓨터 메모리 기기(예컨대, ROM(Read Only Memory; 판독 전용 메모리), PROM(Programmable Read Only Memory; 프로그램가능한 판독 전용 메모리), EEPROM(Electrically Eraseable Programmable Read Only Memory; 전기적으로 소거가능하고 판독가능한 판독 전용 메모리), FLASH 메모리, 점프 드라이브 등등), 자기 저장 매체(예컨대, 테이프, 자기 디스크 드라이브 ㄷ드등등), 광학 저장 매체(예컨대, CD-ROM, DVD-ROM, 페이퍼 카드, 페이퍼 테이프 등등) 및 다른 타입의 프로그램 메모리와 같은 유형(有形)의 매체 상에 저장될 수 있다.
본원 명세서에서 사용될 때 "대표적인"이라는 용어는 단지 "일 예, 사례 또는 예시로서 제공한 것"을 의미하도록 의도된 것이다. 본원 명세서에서 "대표적인"으로서 사용되는 어떤 실시 예라도 반드시 다른 실시 예들에 비해 바람직하거나 유리한 것으로 해석될 필요가 없다.
본원 명세서에는 고정될 수도 있고 프로그램가능할 수도 있는 사용자 기준, 애플리케이션 기반 성능, 또는 다른 매개변수들에 기반하여 하이브리드 메모리 시스템(hybrid memory system; HMS)의 비-휘발성 메모리 구성요소들의 신뢰도를 관리 및 제어하기 위한 방법들 및 시스템들이 기재되어 있다. 몇몇 실시 예들에서는 상기 비-휘발성 메모리 시스템의 일부(예를 들면, 블록)가 유효하지 않은 것으로 선언되어 데이터를 저장하는데 사용된 비-휘발성 메모리 서브시스템의 일부를 이루지 못할 경우를 컴퓨터 시스템 또는 최종 사용자가 관리하고 제어하는 메커니즘이 제공된다. 몇몇 실시 예들에서는, 상기 하이브리드 메모리 시스템의 일부(또는 전체)가 유용하지 않은 것으로 선언될 것이라는 경고를 상기 하이브리드 메모리 시스템이 발행하게 되기 전에 이르게 될 수 있는 유효하지 않은 블록들에 대한 하나 이상의 문턱값들 또는 매개변수들을 설정하기 위한 능력이 제공된다. 이러한 방식으로, 최종 사용자는 최종 사용자 또는 컴퓨터 시스템의 프로그램가능한 환경설정들 또는 사양들에 따라 상기 하이브리드 메모리 시스템의 블록, 또는 임의 선택된 부분, 또는 상기 하이브리드 메모리 시스템 모두가 서비스로부터 어떻게 제거되는지를 관리 및 제어할 수 있다.
도 3에는 본원 명세서에서의 몇몇 실시 예들에 따른 대표적인 하이브리드 메모리 시스템(HMS)(300)의 블록도가 예시되어 있다. HMS(300)는 호스트 컴퓨터 시스템(도시되지 않음)에 연결되어 있으며 휘발성 메모리 서브시스템(302), 비-휘발성 메모리 서브시스템(304), 및 상기 비-휘발성 메모리 서브시스템(304)에 동작가능하게 연결된 HMS 제어기(306)를 포함할 수 있다. 몇몇 실시 예들에서는, 상기 메모리 시스템(300)이 상기 호스트 및/또는 상기 휘발성 메모리 서브시스템(302)으로부터 상기 HMS 제어기(306)를 선택적으로 동작가능하게 결합해제하도록 구성된 적어도 하나의 회로(308)(분리 및 휘발성 메모리(VM) 제어기)를 포함한다. 그러한 구성에서는, 상기 회로(308)가 상기 호스트, 휘발성 메모리 서브시스템(302), 및 버스(312)로부터 HMS 제어기(306) 및 비-휘발성 메모리 서브시스템(304)을 전기적으로 분리시키고, 그럼으로써 상기 호스트 및 휘발성 메모리 서브시스템(302)이 상기 HMS 제어기(306) 및 비-휘발성 메모리 서브시스템(304)에 의한 간섭이나 영향(예를 들면, 용량성 부하) 없이 서로와의 데이터 교환을 이행할 수 있다. 상기 회로(308)는 또한 상기 HMS 제어기(306) 및 비-휘발성 메모리 서브시스템(304)을 상기 휘발성 메모리 서브시스템(302)과 연결할 수도 있고, 상기 HMS 제어기(306) 및 비-휘발성 메모리 서브시스템(304)을 상기 호스트와 연결할 수도 있으며, 상기 HMS 제어기(306) 및 비-휘발성 메모리 서브시스템(304)을 내부 메모리 버퍼들에 연결할 수도 있도록 구성될 수 있고, 그럼으로써 데이터가 상기 휘발성 메모리 서브시스템(302), 상기 호스트, 및 상기 회로에 내재하는 내부 메모리 버퍼들 중의 임의의 하나 이상 및 상기 비-휘발성 메모리 서브시스템(304) 사이로 교환될 수 있게 한다. 몇몇 실시 예들에서는, 상기 호스트가 상기 휘발성 메모리 서브시스템(302) 및 상기 비-휘발성 메모리 서브시스템(304) 중 하나 이상으로부터 완전히 분리되고, HMS(300)의 제어 및 관리가 오직 상기 회로(308) 및/또는 HMS 제어기(306)에 의해서만 이행된다. 몇몇 실시 예들에서는, 상기 호스트가 예를 들면 트리거 조건에 응답하여 상기 휘발성 메모리 서브시스템(302) 및 상기 비-휘발성 메모리 서브시스템(304)으로부터 완전히 분리되며, HMS(300)는 자율적으로 그리고 상기 호스트와는 무관하게 기능을 수행하는데, 이 경우에 상기 HMS(300)의 제어 및 관리는 오직 상기 회로(308) 및 HMS 제어기(306)에 의해서만 이행된다. 몇몇 실시 예들에서는, 호스트 메모리 액세스 또는 프로그램 동작이 상기 트리거 조건의 명시 및/또는 요구로서 간주한다.
몇몇 실시 예들에서는, HMS(300)가 메모리 모듈을 포함하며, 인쇄-회로 보드(printed-circuit board; PCB) 폼팩터를 지닐 수 있다. 몇몇 실시 예들에서는, HMS(300)가 512-MB, 1-GB, 2-GB, 4-GB, 8-GB, 16-GB, 32-GB 등등의 휘발성 메모리 용량을 지닌다. 다른 휘발성 메모리 용량들은 또한 본원 명세서에 기재되어 있는 몇몇 실시 예들과 호환된다. 몇몇 실시 예들에서는, HMS(300)가 내부 메모리 버퍼를 사용하여 상기 휘발성 메모리 서브시스템(302)을 에뮬레이트하는 것과 같은 상기 회로(308) 내에 일체화되어 있는 휘발성 메모리 서브시스템으로서, 16MB, 32MB, 64MB, 128MB, 256MB, 512-MB, 1-GB, 2-GB 등등의 여러 용량을 지닐 수 있는 휘발성 메모리 서브시스템을 지닌다. 몇몇 실시 예들에서는, HMS(300)가 상기 HMS 제어기(306) 내에 일체화되어 있는 휘발성 메모리 서브시스템을 지닌다. 또 다른 실시 예들에서는, HMS(300)가 상기 HMS 제어기(306) 내에 일체화되어 있는 휘발성 메모리 서브시스템을 지닌다.
몇몇 실시 예들에서는, HMS(300)가 512-MB, 1-GB, 2-GB, 4-GB, 8-GB, 16-GB, 32-GB, 64-GB, 128-GB, 256-GB 등등의 비-휘발성 메모리 용량을 지니거나, 전반적인 시스템 요건에 기반으로 하는 다른 여러 메모리 용량을 지닌다. 다른 비-휘발성 메모리 용량들은 또한 본원 명세서에 기재된 몇몇 실시 예들과 호환된다. 그 외에도, 4 바이트, 8 바이트, 16 바이트, 32 바이트, 또는 32 비트, 64 비트, 128 비트, 256 비트의 폭을 지님과 아울러, (바이트 단위 또는 비트 단위의) 다른 폭들을 지니는 메모리 시스템들은 본원 명세서에 기재되어 있는 실시 예들과 호환된다. 몇몇 실시 예들에서는, HMS(30)의 PCB가 JEDEC 표준들에 의해 특정된 바와 같은 업계 표준의 폼팩터를 지닌다. 예를 들면, 상기 PCB는 30 밀리미터의 높이 및 133.35 밀리미터의 폭을 지니는 저 프로파일(low profile; LP) 폼팩터를 지닐 수 있다. 몇몇 다른 실시 예들에서는, 상기 PCB(20)가 50 밀리미터 이상의 높이를 지니는 초고 프로파일(very high profile; VHP)을 지닌다. 몇몇 실시 예들에서는, 상기 PCB가 18.3 밀리미터의 높이를 지니는 초저 프로파일(very low profile; VLP) 폼팩터를 지닌다. 작은 외형 (SO-DIMM), 버퍼링되지 않는 (UDIMM), 등록된 (RDIMM), 완전히 버퍼링된 (FBDIMM), 미니-DIMM, 미니-RDIMM, VLP 미니-DIMM, 마이크로-DIMM, SRAM DIMM, 및 울트라 DIMM을 포함하지만 이들에 국한되지 않는 다른 폼팩터들이 또한 본원 명세서에 기재된 몇몇 실시 예들에 호환된다. 예를 들면, 다른 실시 예들에서는, 예를 들면 싱글 인라인 메모리 모듈(single in-line memory module; SIMM), 다중-매체 카드(multi-media card; MMC), 및 소형 컴퓨터 시스템 인터페이스와 같은 몇몇 비-DIMM 폼팩터들이 가능하다.
몇몇 실시 예들에서는, HMS(300)가 호스트 시스템(도시되지 않음)과의 전기 통신을 이루고 있다. 다른 실시 예들에서는, HMS(300)가 예를 들면, 다른 통신과 같은 다른 타입의 통신을 사용하여 호스트 시스템과 통신할 수 있다. 호스트 시스템들의 예들에는 브레이드 서버들, IU 서버들, 개인용 컴퓨터(personal computer; PC)들, 및 상기 호스트의 성능 및 신뢰도가 상기 비-휘발성 또는 휘발성 서브시스템들의 성능 및 신뢰도에 의존하는 다른 애플리케이션들이 있지만 이들에 국한되지 않는다. 몇몇 실시 예들에서는, HMS(300)가, 상기 인터페이스(310)가 JEDEC에 의해 특정된 바와 같은 표준 기반 DIMM 인터페이스인 메모리 모듈이다. 몇몇 실시 예들에서는, HMS(300)가 등록된 메모리 모듈(RDIMM)로서 상기 컴퓨터 시스템에 나타나는 하이브리드 메모리 모듈이다. HMS(300)는 예를 들면 컴퓨터 시스템의 디스크 제어기와의 통신을 이룰 수 있다. 상기 호스트 시스템과의 전기 통신을 이루도록 구성된 인터페이스(310)가 제공될 수 있다. 예를 들면, 상기 인터페이스(310)는 상기 호스트 시스템의 상응하는 슬롯 커넥터에 끼워넣는 복수 개의 에지 접속부들을 포함할 수 있으며 그리고/또는 JEDEC 표준들에 의해 특정된 바와 같은 표준 기반의 전기 사양을 완전히 준수할 수 있다. 예를 들면, 상기 인터페이스(310)는 표준 DDR(예컨대, DDR3 또는 DDR4) DIMM, RDIMM, 또는 LRDIMM 에지 커넥터를 포함할 수 있다. 몇몇 실시 예들의 상기 인터페이스(310)는 HMS(300) 및 상기 호스트 시스템 간의 데이터, 어드레스, 및 제어 신호들과 아울러 전원 전압을 위한 전선관을 제공한다. 몇몇 실시 예들에서는, HMS(300)가 HMS 제어기(306), 상기 휘발성 메모리 서브시스템(302), 상기 회로(308), 및 상기 비-휘발성 메모리 서브시스템(304)에 전력을 제어 및 분배하는 전원(309)을 포함한다. 상기 HMS(300)가 자율적으로 그리고 상기 호스트와는 무관하게 기능을 수행할 때 상기 전원(309)이 HMS(300)의 여러 서브시스템 또는 구성요소에 대한 전력 분배를 제어하면서, 상기 호스트로부터 전력을 인출하는 정상 동작시 충전되는, 슈퍼 커패시터들과 같은 에너지 저장 기기들을 상기 전원(309)이 포함할 수 있다. 전원(309)의 몇몇 기능은 몇몇 신뢰도 또는 성능 기준에 따라 상기 호스트 또는 사용자에 의해 제어 또는 프로그램될 수 있다. 상기 전원(309)은 메인 전원 관리 제어기로서 제어 및 수행하며 서로 다른 전원(다시 말하면, 전압 및 전류) 요건을 필요로 하는 HMS(300)의 서로 다른 부분들을 수용하도록 DC-DC 변환과 같은 여러 서브시스템을 포함한다.
상기 휘발성 메모리 서브시스템(302)은 하나 이상의 휘발성 메모리 요소들(303)을 포함하며 상기 비-휘발성 메모리 서브시스템(304)은 하나 이상의 비-휘발성 메모리 요소들(305)을 포함한다. 상기 메모리 서브시스템들(302, 304)이 개별 메모리 요소들 또는 기기들(303, 305)로 각각 물리적으로 구성된 것으로 도시되어 있지만, 당업자라면 다른 구획들 및 그룹화들이 논리적으로 고려된다는 점을 인식할 것이다. 비-휘발성 메모리 서브시스템(302)은 예를 들어 또한 증가하는 크기 순으로 메모리의 세그먼트들, 페이지들, 블록들, 및 슬라이스들로 그룹화될 수 있는 메모리 부분들로 구성된다. 세그먼트 크기의 일 예는 242 바이트이다. ECC(error correction code; 에러 정정 코드) 세그먼트(이하에서 설명됨) 크기는 13 바이트이다. 페이지 크기의 일 예는 8,192 바이트이다. 블록 크기의 일 예는 128 페이지, 또는 1,048,576 바이트이다. 본원 명세서에 기재되어 있는 몇몇 실시 예들은 상기 휘발서 메모리 서브시스템(302)을 통한 고-성능(예컨대, 고속) 저장 외에도 상기 비-휘발성 메모리 서브시스템(304)을 통한 비-휘발성 저장을 유리하게 제공한다. 몇몇 실시 예들에서는, 상기 제1 복수 개의 휘발성 메모리 요소들(303)은 2개 이상의 동적 랜덤-액세스 메모리(dynamic random-access memory; DRAM) 요소들을 포함한다. 본원 명세서에 기재되어 있는 몇몇 실시 예들과 호환되는 DRAM 요소들(303)의 타입들에는 DDR, DDR2, DDR3, 및 동기식 DRAM(synchronous DRAM; SDRAM)이 있지만, 이들에 국한되지 않는다. 상기 휘발성 메모리 요소들(303)은 정적 랜덤-액세스 메모리(static random-access memory; SRAM)와 같은 다른 타입들의 메모리 요소들을 포함할 수 있다. 그 외에도, 4, 8, 16, 32의 비트 폭들과 아울러 다른 비트 폭들을 지니는 휘발성 메모리 요소들(303)은 본원 명세서에 기재되어 있는 몇몇 실시 예들과 호환된다. 본원 명세서에 기재되어 있는 몇몇 실시 예들과 호환되는 휘발성 메모리 요소들(303)은 얇고 작은 외형 패키지(thin small-outline package; TSOP), 볼-그리드 어레이(ball-grid-array; BGA), 미세-피치 BGA(fine-pitch BGA; FBGA), 마이크로 BGA(1.1,BGA), 미니-BGA(mBGA), 및 칩-스케일 패키징(chip-scale packaging; CSP)을 포함하지만 이들에 국한되지 않는 패키징을 지닌다.
몇몇 실시 예들에서는, 상기 복수 개의 비-휘발성 메모리 요소들(305)이 하나 이상의 플래시 메모리 요소들을 포함한다. 본원 명세서에 기재되어 있는 몇몇 실시 예들과 호환된 플래시 메모리의 타입들에는 NOR 플래시, NAND 플래시, 원-NAND(ONE-NAND) 플래시, 및 다중-레벨 셀(multi-level cell; MLC)이 있지만, 이들에 국한되지 않는다. 그 외에도, 4, 8, 16, 32의 비트 폭과 아울러, 다른 비트 폭들을 지니는 비-휘발성 메모리 요소들(305)은 본원 명세서에 기재된 몇몇 실시 예들과 호환된다. 본원 명세서에 기재되어 있는 몇몇 실시 예들과 호환되는 비-휘발성 메모리 요소들(305)은 얇고 작은 외형 패키지(thin small-outline package; TSOP), 볼 그리드 어레이(ball-grid-array; BGA), 미세-피치(fine-pitch) BGA(FBGA), 마이크로-BGA(PGA), 미니-BGA(mini-BGA; mBGA), 및 칩-스케일 패키징(chip-scale packaging; CSP)을 포함하지만, 이들에 국한되지 않는다.
저장 커패시터에 관해서는, 유효하지 않은 블록들의 설명을 위해, HMS(300)는 상기 HMS(300)가 보호해야 할 필요가 있는 휘발성 메모리(302)의 양보다 많은 비-휘발성 메모리(304)를 포함하는 것이 바람직하다. 예를 들면, 상기 HMS 내에는 휘발성 메모리가 (S)양 존재할 경우에, S x F 비-휘발성 메모리가 제공되며, 이 경우에 F는 시스템 설계 요건들에 기반한 오버-프로비저닝 인자(over-provisioning factor)이다. 몇몇 실시 예들에서는, HMS(300)가 휘발성 메모리에 대하여 비-휘발성 메모리 양의 2배, 3배 또는 임의 배수(정수 또는 비-정수)를 포함한다. 몇몇 실시 예들에서는, 상기 오버-프로비저닝 인자(F)가 수 백배일 수 있는데, 일 예로서 상기 비-휘발성 메모리 용량이 500GB이고 상기 휘발성 메모리 용량은 1GB, 2GB, 또는 4GB이다.
도 4에는 통신 제어기(402), 통신 제어기 레지스터 집합(404), 비-휘발성 메모리(non-volatile memory; NVM) 제어기(406), 및 유효하지 않은 부분 테이블(invalid portion table; IPT)(408)을 포함하는 하이브리드 메모리 시스템(hybrid memory system; HMS) 제어기(306)를 좀더 구체적으로 보여주는 블록도가 도시되어 있다. HMS 제어기(306)의 논리 블록 내에 상주하는 것으로 도시되어 있지만, 몇몇 실시 예들에서는, IPT(408) 및 레지스터 집합(404)이 외부 휘발성 또는 비-휘발성 메모리에나 복제물들과 같은 그러한 몇몇 위치들에 상주할 수 있다.
IPT(408)는 NVM 제어기에 의해 유효하지 않은 비-휘발성 메모리 부분들을 추적하는데 사용된다. 이러한 부분들은 이하에서 구체적으로 기재되겠지만, 세그먼트들, 페이지들, 블록들, 또는 메모리 슬라이스들의 증분으로 식별 및 관리될 수 있다. 유효하지 않은 메모리 지정들은 여러 이유 중 어느 하나 때문에 생길 수 있으며, 이하에서 구체적으로 기재되겠지만, 프로그램가능하거나 구성가능한 에러 기준 및 문턱값들의 함수들일 수 있다. 일 예에서, 그리고 비-제한적인 방식에 의하면, NVM 제어기(406)는 비-휘발성 메모리(304)의 한 블록 또는 그의 부분에 대한 접근을 방지하는 블록에서의 제조 에러 때문에 유효하지 않은 비-휘발성 메모리(304)의 한 블록을 지정할 수 있다. 다른 일 예에서는, 판독 또는 기록 동작시 직면하게 되는 에러들과 같은 동작 에러들이 상기 에러들과 연관된 메모리 부분들이 유효하지 않은 것으로 선언하게 할 수 있다. 몇몇 실시 예들에서는, 데이터 에러들에 직면하게 될 경우, 또는 그러한 부분들과 연관된 커맨드 응답 시간들이 특정된 타임 아웃 한도들을 초과할 경우("타임 아웃 에러들") 메모리 부분들이 유효하지 않은 것으로 선언된다. 예를 들면, 판독, 프로그램, 또는 소거 커맨드가 사전에 결정된 시간 길이 내에 완비되어 있지 않은 경우에, 상응하는 블록 또는 블록들은 유효하지 않은 것으로 지정될 수 있다. 몇몇 실시 예들에서는, 메모리 프로그램 동작시, 에러가 검출되는 경우에, 프로그램되고 있는 메모리의 부분은 IPT(408)에서 유효하지 않은 것으로 마킹되며 다음의 유효한 블록에 데이터가 기록된다. 몇몇 실시 예들에서는, 판독 동작시, 에러가 검출되는 경우에, 판독되는, 세그먼트, 페이지, 블록, 또는 슬라이스와 같은 메모리 부분이 IPT(408)에서 유효하지 않은 것으로 마킹된다.
통신 제어기(402)는 상기 호스트 시스템 또는 사용자로부터 구성 정보를 수신하도록 동작가능하다. 상기 통신 제어기(402)는 상기 사용자 또는 호스트 시스템으로 HMS(300) 상태 정보를 전달하도록 또 동작가능하다. 이러한 2-방식 통신은 통신 인터페이스(410)를 통해 이행되는 메시징 프로토콜에 의해 이루어진다. 상기 메시징 프로토콜이 몇몇 실시 예들에서는 상기 통신 제어기(42)의 관리하에서 전기 인터페이스를 통해 전송된다.
상기 메시징 프로토콜 및 통신 인터페이스(410)를 통해 통신 제어기(402)에 의해 수신된 구성 정보는, 문턱값 레지스터들(412; thr), 에러 레지스터들(414; err), 및 상태 레지스터들(416; sta), 및 제어 레지스터들(418; ctrl)을 포함하는, 레지스터 집합(404)의 값들을 판독 또는 기록하기 위해 사용된다.
몇몇 실시 예들에서는, 문턱값 레지스터들(412)에 기록된 값들이 비-휘발성 메모리(304)의 부분들이 유효하지 않은 것으로 선언하기 위한 매개변수들을 정의한다. 상기 문턱값 레지스터들(412)에 기록된 값들을 설정할 수 있는 능력을 가지고, 상기 사용자 또는 시스템은 허용될 유효하지 않은 비-휘발성 메모리의 양, 및 메모리 상태의 점진적인 성능저하로 착수될 수 있는 개선 대책들 및 조치들의 범위를 제어 및 관리할 수 있다. 몇몇 대표적인 실시 들에서는, 상기 사용자 또는 시스템 또는 애플리케이션은 HMS(300) 또는 그의 부분들이 고장이 나거나 고장이 날 예정이거나 신뢰할 수 없거나 안정되지 않을 수 있거나 신뢰할 수 없게 될 것이거나 안정되지 않게 될 것임을 선언하기 전에 허용될 유효하지 않은 비-휘발성 메모리의 양을 관리 및 제어할 수 있는 능력을 획득한다. 몇몇 실시 예들에서는, 상기 문턱값 레지스터들(412)이 디폴트값들을 사용하여 구성가능하거나, 통신 인터페이스(410)를 거쳐 상기 메시징 프로토콜을 통해서나 또는 특정 시간 주기에 걸친 상기 NVM 제어기(406)에 의한 검출 및 학습을 통해서 상기 레지스터들 내에 기록되는 문턱값 매개변수들을 정의한다.
문턱값 매개변수들의 집합은 메모리 세그먼트 레벨, 페이지 레벨, 블록 레벨, 슬라이스 레벨, 시스템 레벨 또는 서브시스템 레벨에 존재하는 문턱값들일 수 있다. 하기 표 1을 참조하면, 각각의 레벨에서, 3개의 후보 문턱값, 고장 문턱값(failure threshold; FT), 에러 문턱값(error threshold; ET), 및 경고 문턱값(warning threshold; WT)이 가능하다. 하기 표 1에서의 첫 번째 칼럼은 세그먼트, 페이지 또는 블록과 같은 메모리의 일부분이 유효하지 않을 것으로 선언되기 전에 생길 수 있는 에러들의 개수에 관한 것일 수 있는, 이하에서 구체적으로 부연하여 기재하는, 구성가능한 에러 기준인, 세트(SET) 문턱값에 관한 것이다. 하기 표 1에서의 나머지 3개의 칼럼은 포함하고 있는 메모리 부분(페이지, 블록 또는 슬라이스)가 유효하지 않은 것으로 선언되기 전에 허용될 수 있는 유효하지 않은 부분들(세그먼트들, 페이지들, 또는 블록들)의 개수에 관한 것이다.
상기 비-휘발성 메모리(304)의 블록에 대한 예를 고려해보면, 한 블록이 유효하지 않은 것으로 선언하기 전이나, 또는 NVM 제어기(406)가 그러한 효과에 대한 경고를 예컨대 상기 호스트에 발행하기 전에 허용될 유효하지 않은 페이지들의 개수는 상기 통신 프로토콜을 사용하여 레지스터들(412)에서 문턱값들(WTB, ETB, FTB)을 설정함으로써 구성가능하다. 특히, 블록 고장 문턱값(FTB)은 한 블록이 유효하지 않은 것으로 선언되기 전에 허용될 블록당 유효하지 않은 페이지들의 최대 개수를 나타낸다. 따라서, FTB보다 많은 유효하지 않은 페이지들이 한 블록 내에 포함되어 있는 경우에 상기 블록이 유효하지 않은 것으로 간주할 수 있다. 더욱이, 그러한 결정이 내려진 페이지는 구성가능한 에러 기준(상기 표 1에서의 '세트' 칼럼)에 기반하여, 예를 들면 그러한 페이지당 에러들, 또는 그러한 페이지에 내재하는 세그먼트당 에러들의 사용자- 또는 시스템-설정가능 문턱값 개수의 발생에 기반하여 유효하지 않은 것으로 간주할 수 있다. 상기 구성가능한 에러 기준은 이하에서 부연하여 논의될 것이다. 상기 블록 에러 문턱값(ETB)은 특정된 애플리케이션 또는 사용자 환경설정에 따라 신뢰성 있게 동작하도록 한 블록에 대한 유효하지 않은 페이지들의 최대 개수를 나타내는데, 이 경우에 이다. ETB가 초과하게 되는 경우에, 에러가 상기 시스템에 보고되고 상기 시스템 또는 상기 사용자는 그러한 블록이 유효하지 않은 것으로 선언된 것으로 선택할 수도 있고 FTB 문턱값에 이르게 될 때까지 상기 블록을 계속 사용할 것을 선택할 수도 있다. 문턱값 WTB를 경고하는 블록은 유효하지 않은 페이지들의 개수를 정의하고 상기 유효하지 않은 페이지들의 개수를 넘어서 일 때 경고가 상기 시스템에 보고되게 된다. WTB는 최종 사용자에게 블록당 유효하지 않은 페이지들의 개수가 임계 레벨, 예컨대 프로그램가능한 문턱값 레벨에 이르렀지만, 상기 HMS(30)가 특정된 애플리케이션 또는 사용자 환경설정에 따라 계속 동작할 수 있다는 초기 표시를 제공하는데 사용된다.
상기 비-휘발성 메모리 서브시스템(304), 또는 비-휘발성 메모리 서브시스템 전체의 슬라이스에 대한 예를 고려해보면, 상기 슬라이스를 선언하기 전이나 또는 NVM 서브시스템 전체가 백업용으로 또는 그러한 효과에 대한 경고들을 발행하는데 유효하지 않거나 더 이상 적합하지 않기 전에 허용될 내부에서 유효하지 않은 블록들의 개수는 상기 통신 프로토콜을 사용하여 레지스터들(412)에서 문턱값들(WTS, ETS, FTS)을 설정함으로써 구성가능하다. 특히, 상기 슬라이스 고장 문턱값(FTS)은 상기 슬라이스를 선언하기 전에나 또는 전체 NVM 서브시스템이 데이터 저장 목적에 적합하지 않거나 신뢰성이 없어지기 전에 허용될 슬라이스(또는 전체 NVM 서브시스템)당 유효하지 않은 블록들의 최대 개수를 나타낸다. 따라서, FTS보다 많은 유효하지 않은 블록들이 한 슬라이스 내에서 직면하게 되는 경우에 한 슬라이스가 유효하지 않은 것으로 간주할 수 있다. 또, 한 블록이 구성가능한 에러 기준(상기 표 1에서의 '세트' 칼럼)에 기반하여, 예를 들면 그러한 블록당 사용자- 또는 시스템-설정가능한 에러들의 문턱값 개수에 기반하거나, 또는 위에 기재한 바와 같이, 그러한 블록당 유효하지 않은 페이지들의 문턱값 개수에 기반하여 유효하지 않은 것으로 간주할 수 있다.
상기 슬라이스 에러 문턱값(ETS)은 특정된 애플리케이션 또는 사용자 환경설정에 따라 신뢰성 있게 동작하도록 한 슬라이스에 대해 유효하지 않은 블록들의 최대 개수를 나타내는데, 이 경우에 이다. ETS가 초과하게 되는 경우에, 에러가 상기 시스템에 보고되고 상기 시스템 또는 사용자는 그러한 슬라이스가 유효하지 않은 것으로 선언된 것으로 선택할 수도 있고 FTS 문턱값에 이르게 될 때까지 그러한 슬라이스를 계속 사용할 것을 선택할 수도 있다. 문턱값 WTS를 경고하는 슬라이스는 유효하지 않은 블록들의 개수를 한정하며 상기 유효하지 않은 블록들의 개수를 넘어서 일 때 경고가 상기 시스템에 보고되게 된다. 상기 WTS는 유효하지 않은 블록들의 개수가 임계 레벨에 이르렀지만 상기 HMS(30)가 특정된 애플리케이션 또는 사용자 환경설정에 따라 계속 동작할 수 있다는 초기 표시를 최종 사용자에게 제공하는데 사용된다. 따라서 상기 슬라이스가 저장되어야 할 데이터에 대해 충분히 크게 취해지는 경우에, 상기 문턱값들(WTS, ETS, FTS)은 상기 슬라이스의 신뢰도가 프로그램된 문턱값 미만으로 떨어졌고, 상기 슬라이스 내의 데이터 저장이 더 이상 가능하지 않게 되어 정정할 수 있을 수도 있고 정정할 수 없을 수도 있는 에러들을 생성할 수 있으며, 그리고 상기 슬라이스에 대한 고장 문턱값에 이르게 되어 데이터 저장이 더 이상 상기 슬라이스에 시도되지 않게 되는 지점들을 나타낼 수 있다. 따라서, 이러한 초기 표시들은 상기 NVM 제어기(406)에 의해 상기 사용자 또는 시스템에 발행될 수 있으며, 그리고/또는 상기 NVM 제어기(406)에 의해 상기 비-휘발성 메모리(304)에 데이터를 저장하기 위한 디폴트 시스템 또는 사용자 특정 기준을 충족하는 사용중에 있는 메모리 공간을 효과적으로 제어 및 관리하는데 사용된다.
상기 비-휘발성 메모리(304)의 페이지에 대한 예를 고려해보면, 문턱값들(WTP, ETP, FTP)은 허용될 수 있는 페이지당 유효하지 않은 세그먼트들의 개수에 관한 것이며 허용될 수 있는 페이지당 유효하지 않은 세그먼트들의 개수를 정의하는, 상기 통신 프로토콜을 사용하여 문턱값 레지스터들(412) 내에 기록되는, 값들이다. 상기 페이지 고장 문턱값(FTP)는 페이지가 유용하지 않거나 유효하지 않은 것으로 선언되기 전에 허용가능한 유효하지 않은 세그먼트들의 최대 개수를 나타낸다. 한 페이지(또는 블록 또는 슬라이스)는 구성가능한 에러 기준(상기 표 1에서의 '세트' 칼럼)에 기반하여, 예를 들면 그러한 페이지당 에러들의 사용자- 또는 시스템-설정가능 문턱값 개수의 발생에 기반하여 유효하지 않을 것으로 간주할 수 있다. 상기 페이지 에러 문턱값(ETP)은 특정된 애플리케이션 또는 사용자 환경설정에 따라 신뢰성 있게 동작하도록 한 페이지에 대한 유효하지 않은 세그먼트들의 최대 개수를 나타내는데, 이 경우에 이다. ETP가 초과하게 되는 경우에, 에러가 상기 시스템에 보고되고 상기 사용자 또는 시스템은 상기 애플리케이션이 종료된 것으로 선택할 수도 있고 문턱값(FTP)에 이르게 될 때까지 계속 동작할 것을 선택할 수도 있다. 문턱값(WTP)을 경고하는 페이지는 유효하지 않은 세그먼트들의 개수를 정의하며 상기 유효하지 않은 세그먼트들의 개수를 넘어서 일 때 경고가 상기 시스템에 보고되게 된다. 상기 WTP는 유효하지 않은 세그먼트들의 개수가 임계 레벨에 이르렀다는 초기 표시를 최종 사용자에게 제공하는데 사용된다.
도 5에는 앞서 언급한 문턱값 간의 흐름 및 관계를 보여주는 개략도가 도시되어 있다. 시스템 쿼리(시스템 또는 애플리케이션에 의해 자동으로 개시될 수도 있고 사용자 인터페이스에 의해 수동으로 개시될 수도 있음)는 위에서 그리고 상기 표 1에 기재되어 있는 바와 같이 상기 비-휘발성 메모리(304)의 고장 문턱값들, 에러 문턱값들, 및 경고 문턱값들 중 임의의 하나 이상에 이르게 되는지를 결정함으로써, 표시, 다시 말하면 경고를 발행하거나 상기 문턱값들에 이르게 되거나 이르게 되지 않게 됨에 따라 쿼리 개시자에게 응답하도록 호출된다.
도 4를 참조하면, 레지스터 집합(404) 내의 상태 레지스터(416) 및 에러 레지스터(414)는 또한 메시징 프로토콜 및 통신 인터페이스(410)를 통해, 호스트, 애플리케이션, 또는 최종 사용자에게 HMS(300) 상태를 전달하는데 이용될 수 있다. 에러 레지스터(414)는 상기 비-휘발성 메모리(304)의 임의의 에러 조건 또는 에러 조건들의 조합을 나타내도록 한 비트 또는 한 세트의 비트들을 포함한다. 예를 들면, 상기 에러 문턱값들(집합적으로는 ET) 중 어느 하나가 초과하게 되는 경우에, 한 에러 비트 또는 한 세트의 비트들이 에러 레지스터(41)에 설정된다. 마찬가지로, 에러 레지스터(414)는 위에서 논의된 고장 조건들을 나타내도록 한 비트 또는 한 세트의 비트들을 포함한다. 고장 문턱값들(집합적으로는, FT) 중 임의의 하나 이상이 초과하게 되는 경우에, 한 고장 비트 또는 한 세트의 비트들이 상기 에러 레지스터(414)에 설정된다. 상태 레지스터(416)는 위에서 논의된 경고 조건들을 나타내도록 한 비트 또한 한 세트의 비트들을 포함한다. 경고 문턱값들(집합적으로는, WT) 중 임의의 하나 이상이 초과하게 되는 경우에, 한 경고 비트 또는 한 세트의 비트들이 상기 상태 레지스터(416)에 설정된다.
제어 레지스터(418)는 데이터가 상기 비-휘발성 메모리(304) 및 상기 호스트 또는 상기 활성 메모리(302) 사이로 교환되는 방식, 예컨대, 비-휘발성 메모리(304)로부터/비-휘발성 메모리(304)로의 데이터 판독 또는 기록, 개시되는 백업 동작, 필요한 백업의 정도 등등과 같은 제어 정보를 저장한다.
몇몇 실시 예들에서는, 레지스터(418) 내의 문턱값들이 상응하는 최소 고장, 에러, 및 경고 문턱값들을 가지고 유효한 비-휘발성 메모리 부분들의 개수에 의해 특정될 수 있다. 더군다나, 상기 문턱값들은 또한 상기 하이브리드 메모리 시스템(HBS)(300)의 전체 용량의 백분율 값, 또는 사용자 또는 시스템 환경설정을 나타내는 다른 어떤 수단으로서 특정될 수 있다.
여기서 상기할 점은 일반적으로 몇몇 에러 검출 및 정정 알고리즘들이 다음과 같은 속성들, 즉
·알고리즘이 (n)개의 심벌들의 세그먼트 상에서 동작하는 속성,
·한 심벌이 비트(들)의 개수에 의해 특정되는 속성,
·알고리즘이 (2t)개의 패리티 심벌들을 계산하고 이들을 한 세트의 (k)개의 데이터 심벌들에 추가하여 세그먼트(n): n= k+2t (심벌들)를 생성하는 속성,
·알고리즘이 (k)개의 데이터 심벌들에서 (2t)개의 심벌 에러들을 검출할 수 있는 속성,
·알고리즘이 (k)개의 데이터 심벌들에서 (t)개의 심벌 에러들을 정정할 수 있는 속성
을 지닌다는 점이다.
(n)개의 심벌들의 세그먼트에서의 에러들의 개수가 정정될 수 있는 개수를 초과하는 경우에, 상기 에러는 정정 불가능하고, 최초 데이터가 복구될 수 없다.
위에서 설명한 바와 같이, 몇몇 실시 예들에서는, 에러 기준이 사용자 또는 시스템에 의해 구성가능할 수 있다(위의 표 1의 첫 번째 칼럼 참조). 이러한 에러 기준은 예를 들면 메모리의 일부가 유효하지 않은 것으로 선언되기 전에 생길 수 있는 정정가능한 에러들의 개수에 관한 것일 수 있다. 이러한 방식으로, 예를 들면, NVM의 세그먼트당, 페이지당, 블록당, 또는 슬라이스당 허용가능한 심벌 에러들의 개수에 관한 심벌 에러 문턱값(세트)(420)이 설정될 수 있다. 몇몇 실시 예들에서는, 세트가 1 및 검출된 (2t) 또는 정정된 (t)일 수 있는 심벌 에러들의 최대 개수 간의 값으로 설정될 수 있다. 심벌 에러들의 개수가 한 세그먼트, 페이지, 또는 슬라이스에서 검출되는 경우에, 그러한 세그먼트,페이지, 블록 또는 슬라이스는 유효하지 않을 것으로 선언된다. 그러므로, 블록 레벨에서, 그리고 예로써 심벌 에러 문턱값(세트)을 구성함으로써, 최종 사용자 또는 시스템은 유효하지 않은 블록을 마크하는데 얼마나 많은 심벌 에러들이 필요한지를 제어할 수 있다. 사용자가 상기 HMS(300)의 성능을 제어할 수 있는 이러한 능력은 충분한 심벌 에러들이 정정 불가능한 에러를 생성하도록 축적하기 전에 유효하지 않은 블록들을 마킹함으로써 데이터 손실 확률을 감소시킨다. 따라서, 상기 HMS(300)를 이용하여 전체 컴퓨터 시스템의 신뢰도 및 성능이 개선된다.
검출된 에러들의 개수에 기반한 경고 에러 및 고장 문턱값의 가능한 집합이 많이 존재한다. 문턱값 매개변수는 한 세그먼트 또는 페이지가 안정되지 않거나 유용하지 않다는 경고 또는 선언 전에 허용될 수 있는 세그먼트당 심벌 에러들의 개수; 한 블록이 안정되지 않거나 유용하지 않다는 경고 또는 선언 전에 허용될 수 있는 세그먼트 또는 페이지당 심벌 에러들의 개수; 비-휘발성 메모리 시스템, 상기 비-휘발성 메모리 시스템의 슬라이스, 또는 하이브리드 메모리 시스템(300)이 전체적으로 데이터 저장 또는 백업 목적에 안정되지 않거나 유용하지 않다는 경고 또는 선언 전에 허용될 수 있는 세그먼트당 또는 페이지 또는 블록당 심벌 에러들의 개수에 관한 것일 수 있다. 특히, 상기 문턱값들은 단위 세그먼트에 기초하여 경고들 및 에러들이 디스플레이되는, 세그먼트당 심벌 에러들의 총 개수; 단위 페이지에 기초하여 경고들 및 에러들이 디스플레이되는, 심벌 에러들의 문턱값보다 많은 문턱값을 지니는 페이지 내의 세그먼트들의 총 개수; 단위 블록에 기초하여 경고들 및 에러들이 디스플레이되는, 심벌 에러들의 문턱값보다 많은 문턱값을 지니는 세그먼트들을 갖는 블록 내의 페이지들의 총 개수; 및 단위 블록 또는 단위 HMS 시스템 또는 HMS 시스템의 슬라이스에 기초하여 경고들 및 에러들이 디스플레이되는, (E)가 또한 구성가능한 문턱값인 (E) 심벌 에러들을 갖는 페이지들의 문턱값보다 많은 문턱값을 지니는 블록들의 총 개수를 포함할 수 있다. 경고들 및 에러들은 또한 다수의 문턱값 레벨들의 조합들에 의해 트리거될 수 있다.
상기 문턱값들은 상기 레지스터 집합(404) 내의 상기 문턱값들 관련 레지스터들에 저장될 수도 있고 상기 HMS(300) 내에서나 또는 상기 HMS(300)를 포함하는 시스템 내에서의 사전에 설정된 메모리 공간에 저장될 수도 있다.
상기 통신 인터페이스 외에도, 상기 HMS(300)는 또한 LED들의 사용 또는 다른 디스플레이 메커니즘, 예컨대 정보가 텍스트 또는 그래픽스로 디스플레이되는 LCD를 통해 에러 및 경고 상태를 시각적으로 디스플레이할 수 있다. 예를 들면, 표시들은 다음과 같이 디스플레이될 수 있다.
1) 하나의 컬러로 이루어진 단일 또는 다수의 LED가 에러를 나타내고 다른 하나의 컬러로 이루어진 단일 또는 다수의 LED가 경고 또는 고장을 나타냄.
2) 단일의 듀얼 컬러로 이루어진 LED가 한 컬러로는 에러들을 나타내고 나머지 컬러로는 경고들을 나타냄.
3) 다수의 단일 또는 3개의 컬러로 이루어진 LED가 여러 에러, 고장 및 경고 조건을 나타냄.
HMS(300) 고장의 경우에, 이러한 시각적 표시들은 서비스 제공 요원이 하나보다 많은 HMS 시스템을 포함하는 호스트 시스템 내에서 HMS를 식별하거나 또는 특정 경고 문턱값에 이르렀을 때를 식별하는 것을 용이하게 한다.
상기 시스템 레벨에서, 고장 문턱값(FT), 에러 문턱값(ET), 및 경고 문턱값(WT)을 구성함으로써, 최종 사용자는 유효하지 않은 블록들의 개수 주위에 보화 대역을 제공함으로써 전반적인 시스템 신뢰도를 향상시키고 HMS(300) 에러로 인한 파국적인 데이터 손실 확률을 감소시킬 수 있다. 상기 사용자는 전반적인 컴퓨터 시스템 구현, 예컨대 미션-크리티컬 동작(mission-critical operation)의 사용에 기반하여 경고, 에러, 및 고장 문턱값에 대한 다양한 허용도 레벨을 맞춤화하거나 조정할 수 있다. 추가로, 최종 사용자는 상기 HMS의 상태에 대한 예비 표시 또는 특정 매개변수가 임계 레벨에 이르렀다는 예비 표시를 수신할 수 있다.
시스템 에러 문턱값을 구성함으로써, 최종 사용자는 세그먼트, 페이지 또는 블록과 같은 메모리 부분을 유효하지 않은 것을 마킹하기 전에 얼마나 많은 시스템 에러들이 필요한지를 관리 및 제어함으로써 전반적인 시스템의 신뢰도를 개선하고 HMS 에러들로 인해 생기는 데이터 손실 확률을 감소시킬 수 있다.
더군다나, 이러한 프로그램가능한 문턱값들 및 그에 따른 결과들을 사용하여 수행될 수 있는 다양한 논리 동작들은 한 애플리케이션에 대한 통계 또는 제어 비트로서 또는 시스템 진단 및 상태 체크의 일부로서 제공될 수 있다. 더욱이, 다수의 판독 또는 기록 동작들과 같은 몇몇 절차들은 예컨대 주어진 개수의 동작들 내에서 생성되는 특정 세그먼트, 페이지, 블록 또는 슬라이스로부터 검출될 에러들의 개수를 확인 또는 체크하도록 특정된 개수의 사이클 동안 계속 실행될 수 있다.
당업자라면 휘발성 및 비-휘발성 메모리 양자 모두를 포함하는 하이브리드 메모리 시스템이라는 문맥으로 기재되어 있지만, 본원 명세서에 기재되어 있는 메모리 모니터링 및 진단 절차들이 전원, 전압, 전류, 온도와 같은 시스템 레벨 매개변수의 성능저하로 인해, 또는 연속적인 사용, 예컨대, 판독 및 기록 동작들을 통한 상기 비-휘발성 메모리(304)의 메모리 셀들의 성능저하로 인해 메모리 부분들에서의 진행성 고장들이 생기는 임의의 메모리 시스템에 적용가능하다. 따라서, 에러들을 허용하고 재조정하는 문턱값들은 주어진 컴퓨터 시스템 또는 의도된 애플리케이션에 대해 허용될 수 있는 유효하지 않은 메모리의 부분들 및 에러들의 양을 통한 제어 및 유연성을 제공하도록 그러한 임의의 시스템, 예를 들면 전용 비-휘발성 메모리 시스템 내에 프로그램될 수 있다.
몇몇 실시 예들에 의하면, 위의 문턱값들 및 제어에도 불구하고, 백업 및 데이터 저장 고장이 여전히 생길 수 있다. 예를 들어, 시스템 백업 또는 데이터 저장은 충분한 비-휘발성 메모리가 유효하지 않은 것으로 선언된 경우에 또는, 전력 손실이 백업 또는 데이터 저장 프로세스를 중단시키거나 또는 내부 코드가 적절하게 실행하지 못한 경우에 고장이 날 수 있다. 이리하여 임의의 중요한 데이터가 손실되었는지, 그리고 어떤 데이터가 손실되었는지를 결정하는 것이 바람직할 수 있다.
도 6에는 백업 또는 데이터 저장 동작이 성공했는지를 결정하는 방법에 대한 흐름도가 예시되어 있다. 몇몇 실시 예들에서는, 방법(600)이 HMS 제어기(306)에 의해 실행된다. 단계 602에서의 트리거 조건의 결정 다음에, 백업이 이루어져야 함을 나타내는 백업 플래그가 단계 604에서 설정된다. 상기 플래그는 NVM(304) 또는 개별 위치에, 예를 들면 HMS 제어기(306)의 논리에 또는 상기 레지스터 집합(404)에, 또는 다수의 위치에 존재할 수 있다. 위에서 논의한 바와 같이, 상기 트리거 조건은 전력 손실의 임박 또는 개시, 또는 상기 호스트로부터의 요구일 수 있다. 단계 606에서, NVM(304)의 백업 개시 지점이 저장된다. 단계 608에서, 비-휘발성 메모리(304)에서 백업되어야 할, 예컨대 휘발성 메모리(302) 또는 상기 호스트로부터의 백업의 크기, 다시 말하면 데이터의 양이 백업의 엔드 포인트(예상된 엔드 포인트)의 표시를 제공하도록 저장된다. 백업의 크기는 위에서 논의한 바와 같은 에러 식별 및 정정과 연관된 추가 데이터, 및 성공적인 데이터 저장 동작을 수행하는데 필요한 다른 어떤 메타데이터를 고려한다. 그리고나서, 상기 NVM 내로 데이터를 기록함으로써 단계 610에서 상기 백업이 수행된다.
상기 백업 또는 데이터 저장 절차가 수행된 후에, 완료를 나타내는 백업 또는 데이터 저장 플래그들이 단계 612에서 업데이트되고, 단계 614에서 상기 백업 또는 데이터 저장 프로세스가 얼마나 진행되었는지(실제의 엔트포인트)를 반영하도록 NVM(304)에서 새로운 포인터가 세이브된다. 단계 616에서는, 상기 새로운 포인터가 단계 608로부터의 백업 또는 데이터 저장의 엔드포인트의 표시와 일치하는지의 결정이 내려진다. 일치(match-up) 실패는 단계 618에서 백업 또는 데이터 저장이 성공적으로 완료되지 않았음을 나타낸다.
몇몇 실시 예들에서는, HMS 제어기(306)가 예를 들면 고장이 난 기록 동작의 범위에 이르기까지를 결정하도록 불완전한 기록 동작 다음에 이루어지는 백업 또는 데이터 저장 고장 해석 프로세스를 수행할 수 있다. 데이터 기록이 개시될 수 있기 전에 데이터를 수신하도록 의도된 NVM 서브시스템(304)의 부분들을 형성하는 전형적으로는 모든 메모리 블록들(또는 다른 부분들)이 먼저 소거되어야 하기 때문에, 백업 다음에 이루어지는 나머지 소거 부분들이 완료해야 할 백업의 고장을 나타내는데 사용될 수 있다. 구체적으로는, 플래시 블록들 특히 (유효하지 않은 것으로 마킹된 부분들만을 스킵하면서) 순차적이고, 그러므로 여전히 소거되는 의도된 기록 영역의 첫 번째 블록은 상기 백업이 완전하지 못한 부분을 지적하게 된다. HMS 제어기(306)는 메모리(304)의 블록들(또는 다른 부분들)이 기록 동작 후에 소거됨으로써 상기 백업의 결과 및 범위를 진단하게 되는지를 그리고 메모리(304)의 어느 블록들(또는 다른 부분들)이 기록 동작 후에 소거됨으로써 상기 백업의 결과 및 범위를 진단하게 되는지를 결정한다.
도 7을 참조하여, 몇몇 실시 예들에 따른 기록 고장 해석을 위한 프로세스(700)가 기재되어 있다. 단계 702에서는, 트리거 조건이 검출된다. 단계 704에서는, 트리거 조건이 이루어진 경우에, 상기 비-휘발성 메모리가 새로운 백업 데이터에 대비하여 소거된다. 단계 706에서는, 상기 휘발성 메모리(302)로부터의 데이터가 상기 비-휘발성 메모리(304) 내로 기록된다. 단계 708에서는, 소거된 NVM 메모리가 남아있는 지를 결정하도록 상기 NVM이 검사된다. 만약 소거된 NVM 메모리가 남아있는 경우에, 단계 710에서 백업이 성공적으로 완료되지 않았다는 표시가 제공된다.
몇몇 실시 예들에서는, HMS 제어기(306)가 위에서 기재한 바와 같은 에러 검출 및 정정에 필요한 추가 데이터 용량을 고려하여, 백업시 휘발성 시스템 데이터 모두를 저장하는데 필요한 NVM(304) 수량의 카운트로 구성된다. 도 8, 및 이하의 표 2를 참조하면, HMS 제어기(306)는 상기 NVM(304)의 상태를 나타내는 2개의 비-휘발성 메모리 플래그를 관리한다. 이러한 플래그들은 전력 공급 초기화 동안에 ㅍ판독되고 시스템 동작 동안 여러 지점에서 기록된다. 메모리 갱신 플래그(memory dirty flag; MDF)(702)는 상기 NVM(304)이 백업 데이터를 가지고 재프로그래밍, 다시 말하면 기록될 수 있기 전에 소거되어야 할 데이터를 상기 NVM(304)이 포함함을 나타낸다. 메모리 승낙 플래그(memory okay flag; MOF)(704)는 NVM(304) 데이터가 유효함을 나타낸다. 플래그 값들에 대한 4개의 관련 조합이 하기 표 2에 도시되어 있는데, 마지막 2가지 시나리오는 사후-백업 진단에 대한 특별한 관심 대상인 것이다.
위에서 설명한 바와 같이, 시스템 고장 또는 전원 고장, 또는 위에 언급한 트리거 조건들 중 어느 하나의 경우에, 백업이 개시되고, HMS 제어기(306)는 상기 휘발성 시스템 데이터 모두가 프로그램될 때까지 휘발성 메모리 서브시스템(302)으로부터의 시스템 데이터를 프로그래밍하거나 이를 비-휘발성 메모리 서브시스템(304) 내에 기록한다. 도 8을 참조하여 기재된 동작들은 다음과 같다.
1. 시스템 고장/전원 고장, 트리거 조건, 사용자 요구(802)를 검출함
2. 상기 비-휘발성 플래그(804)를 설정함
a. TDF는 "1"로 설정되고 MOF는 "0"으로 클리어됨.
b. 저장 고장의 경우에, 이러한 플래그 조건이 상기 고장을 나타내게 됨.
3. 휘발성 시스템 데이터를 비-휘발성 메모리(806) 내에 저장함
4. 저장 동작이 완료된 경우에, 비-휘발성 플래그들(808)을 설정함
a. MOF가 "1"로 설정됨.
b. 이는 저장 동작의 마지막 단계이며 MOF가 설정되기 전에 모든 부속 단계들이 적절히 완료되었음을 보장함.
시스템 고장 또는 전원 고장 후 HMS 전원 공급이 정정된 경우에, 상기 비-휘발성 플래그들이 상기 시스템 상태를 결정하도록 판독되게 된다. 저장 동작이 성공적으로 완료된 경우에, 상기 MDF는 "1"로 설정되게 되고 상기 MOF는 "1"로 설정되게 된다. 그러나, 저장 동작 동안 고장의 경우에, 상기 MDF는 "1"로 설정되게 되고 상기 MOF는 "0"으로 설정되게 된다. 이때, 상기 호스트 시스템은 저장 고장이라는 통지를 받게 된다. 이러한 통지는 다음과 같은 형태들 중의 하나 이상을 취할 수 있다.
1. 에러 레지스트에 설정된 에러 비트.
2. 호스트 시스템에 생성된 인터럽트.
3. 에러 조건을 나타내도록 조명된 LED.
일단 저장 에러가 식별된 경우에, NVM 제어기(406)는 NVM(307)을 판독하여 얼마나 많은 시스템 데이터가 고정 전에 저장되었는지를 결정할 수 있다. 상기 제어기는 소거 상태에 있는 유효한 블록이 발견될 때까지 메모리 어레이로부터의 데이터를 판독하고, "1"로 설정된 모든 비트들은 에러 검출 및 정정 알고리즘에 의해 사용될 수 있는 임의의 비트들을 포함한다. 이는 모두 "1"인 시스템 데이터의 블록 및 소거되는 블록을 구별한다. 상기 제어기는 현재 얼마나 많은 유효한 데이터가 메모리 어레이에 존재하는지를 결정할 수 있다.
이는 시스템 데이터를 포함하는 마지막 블록이 단지 부분적으로만 프로그램될 수 있는 경우일 수 있다. 이는 상기 데이터를 판독하고 존재할 수 있는 임의의 에러들을 검출/정정함으로써 결정될 수 있다.
상기 제어기(406)는 호스트 시스템 접근가능 레지스터에 시스템 데이터를 포함하는 블록들(다른 부분들)의 카운트를 저장함으로써 시스템 데이터를 포함하는 블록들(다른 부분들)의 카운트에 대한 접근을 제공할 수 있다.
일단 에러의 발생 전에 저장된 시스템 데이터의 양 및 저장 에러가 상기 호스트 시스템에 통지된 경우에, 상기 호스트 시스템은 다음 단계들을 결정할 수 있다.
1) 부분적인 데이터를 폐기하고 NVM 어레이를 소거하는 단계
2) 유효한 데이터를 복구하고 NVM 어레이를 소거하는 단계
도 9는 트리거 조건에 의해 유도된 백업 동작이 수행된 후에 이루어지게 되는 프로세스(900)에 관한 것이다. 단계 902에서, 전원이 복구된 경우에 시스템에 다시 전원공급된다. 단계 904에서, 상기 MDF 및 MOF 플래그들이 체크된다. MDF = 1이고 MOF=1인 경우에, 상기 백업이 단계 906에서 성공적으로 완료된 것으로 여겨지고, 그러한 효과에 대한 표시가 제공된다. 그러나, MOF=1이고 MOF=0인 경우에, 백업이 실패된 것으로 여겨지게 되고, 그에 따른 통지가 단계 908에서 발행될 수 있다. 단계 910에서, 고장 해석은 위에 기재한 바와 같이 그리고 예를 들면 도 6에 따라 이행될 수 있다.
지금까지 실시 예들 및 애플리케이션들이 도시되고 기재되었지만, 본 개시내용의 이점을 갖는 당업자에게는 위에 언급한 것보다 많은 수정 예들이 본원 명세서에 개시된 발명 개념들로부터 벗어나지 않고 가능하다는 점이 자명해질 것이다. 그러므로, 본 발명은 첨부된 청구항들의 범위에서만 제외하고 한정되어선 아니 된다.
Claims (16)
- 삭제
- 삭제
- 제어기, 휘발성 메모리 서브시스템 및 비-휘발성 메모리(nonvolatile memory; NVM) 서브시스템을 지니는 하이브리드 메모리 시스템에서 상기 비-휘발성 메모리 서브시스템에서 고장 허용도를 구성하는 방법에 있어서,
상기 고장 허용도의 구성 방법은,
상기 제어기를 사용하여 각각의 NVM 세그먼트가 제1 개수의 심벌들을 지니는 복수 개의 NVM 세그먼트들 상에서 동작하는 단계;
상기 복수 개의 NVM 세그먼트들 중 하나의 NVM 세그먼트가 제1 개수의 심벌 에러들을 포함하는 지를 결정하는 단계로서, 상기 제1 개수의 심벌 에러들은 상기 제1 개수의 심벌들 미만이며, 상기 제1 개수의 심벌 에러들은 1 및 정정될 수 있는 심벌 에러들의 최대 개수 간의 값을 지니는, 단계;
제1 문턱값을 설정하는 단계로서, 상기 제1 문턱값이 정정될 수 있는 심벌 에러들의 개수로 설정되며, 상기 제1 문턱값이 정정될 수 있는 심벌 에러들의 최대 개수보다 작은, 단계;
상기 제1 개수의 심벌 에러들이 상기 제1 문턱값을 초과하는 경우에, 상기 NVM 세그먼트에 대한 경고 조건을 발행하는 단계;
제2 문턱값을 설정하는 단계로서, 상기 제2 문턱값은 정정될 수 있는 심벌 에러들의 최대 개수보다 작거나 같은, 단계; 및
상기 제1 개수의 심벌 에러들이 상기 제2 문턱값을 초과하는 경우에, 에러 조건을 발행하거나 데이터 저장 목적에 유효하지 않은 NVM 세그먼트를 선언하는 단계;
를 포함하는, 고장 허용도의 구성 방법. - 제3항에 있어서,
상기 고장 허용도의 구성 방법은,
제3 문턱값을 설정하는 단계로서, 상기 제3 문턱값은 유효하지 않은 NVM 세그먼트들의 개수로 설정되는, 단계;
복수 개의 NVM 페이지들 중 한 페이지 내에서 선언된 유효하지 않은 세그먼트들의 개수를 추적하는 단계로서, 상기 복수 개의 NVM 페이지들 중 한 페이지가 상기 복수 개의 NVM 세그먼트들을 포함하는, 단계;
상기 유효하지 않은 세그먼트들의 추적된 개수가 상기 제3 문턱값을 초과하는지를 결정하는 단계; 및
상기 유효하지 않은 세그먼트들의 추적된 개수가 상기 제3 문턱값을 초과하는 경우에, 데이터 저장 목적에 유효하지 않은 상기 복수 개의 NVM 페이지들 중 한 페이지를 선언하는 단계;
를 부가적으로 포함하는, 고장 허용도의 구성 방법. - 제4항에 있어서,
상기 고장 허용도의 구성 방법은,
제4 문턱값을 설정하는 단계로서, 상기 제4 문턱값이 유효하지 않은 NVM 페이지들의 개수로 설정되는, 단계;
복수 개의 NVM 블록들 중 하나의 NVM 블록 내에서 선언된 유효하지 않은 페이지의 개수를 추적하는 단계로서, 상기 복수 개의 NVM 블록들 중 하나의 NVM 블록은 상기 복수 개의 NVM 페이지들을 포함하는, 단계;
상기 유효하지 않은 페이지들의 추적된 개수가 상기 제4 문턱값을 초과하는 지를 결정하는 단계; 및
상기 유효하지 않은 페이지들의 추적된 개수가 상기 제4 문턱값을 초과하는 경우에, 데이터 저장 목적에 유효하지 않은 상기 복수 개의 NVM 블록들 중 하나의 NVM 블록을 선언하는 단계;
를 부가적으로 포함하는, 고장 허용도의 구성 방법. - 제어기, 휘발성 메모리 서브시스템 및 비-휘발성 메모리(nonvolatile memory; NVM) 서브시스템을 지니는 하이브리드 메모리 시스템에서 상기 비-휘발성 메모리 서브시스템에서 고장 허용도를 구성하는 방법에 있어서,
상기 고장 허용도의 구성 방법은,
상기 제어기를 사용하여 각각의 NVM 세그먼트가 제1 개수의 심벌들을 지니는 복수 개의 NVM 세그먼트들 상에서 동작하는 단계;
상기 복수 개의 NVM 세그먼트들 중 하나의 NVM 세그먼트가 제1 개수의 심벌 에러들을 포함하는 지를 결정하는 단계로서, 상기 제1 개수의 심벌 에러들은 상기 제1 개수의 심벌들 미만이며, 상기 제1 개수의 심벌 에러들은 1 및 정정될 수 있는 심벌 에러들의 최대 개수 간의 값을 지니는, 단계;
제1 문턱값을 설정하는 단계로서, 상기 제1 문턱값이 정정될 수 있는 심벌 에러들의 개수로 설정되며, 상기 제1 문턱값이 정정될 수 있는 심벌 에러들의 최대 개수보다 작은, 단계;
상기 제1 개수의 심벌 에러들이 상기 제1 문턱값을 초과하는 경우에, 상기 NVM 세그먼트에 대한 경고 조건을 발행하는 단계;
제2 문턱값을 설정하는 단계로서, 상기 제2 문턱값은 정정될 수 있는 심벌 에러들의 최대 개수보다 작거나 같은, 단계; 및
상기 제1 개수의 심벌 에러들이 상기 제2 문턱값을 초과하는 경우에, 데이터 저장 목적에 유효하지 않은, (i) 상기 복수 개의 NVM 세그먼트들 중 하나의 NVM 세그먼트, (ii) 복수 개의 NVM 페이지들 중 제1 NVM 페이지, 또는 (iii) 복수 개의 NVM 블록들 중 제1 NVM 블록; 중 적어도 하나를 선언하는 단계로서, 상기 복수 개의 NVM 페이지들 중 제1 NVM 페이지는 상기 복수 개의 세그먼트들을 포함하고, 상기 복수 개의 NVM 블록들 중 제1 NVM 블록은 상기 복수 개의 NVM 페이지들을 포함하는, 단계;
를 포함하는, 고장 허용도의 구성 방법. - 제5항에 있어서, 상기 제1, 제2, 제3, 및 제4 문턱값들 중 어느 하나가 상기 하이브리드 메모리 시스템에 연결된 호스트 컴퓨터 시스템 또는 사용자에 의해 구성가능한, 고장 허용도의 구성 방법.
- 삭제
- 삭제
- 삭제
- 하이브리드 메모리 시스템에 있어서,
휘발성 메모리 서브시스템;
비-휘발성 메모리(non-volatile memory; NVM) 서브시스템;
각각의 NVM 세그먼트가 제1 개수의 심벌들을 지니는 복수 개의 NVM 세그먼트들 상에서 동작하는 단계를 수행하고,
상기 복수 개의 NVM 세그먼트들 중 하나의 NVM 세그먼트가 제1 개수의 심벌 에러들을 포함하는 지를 결정하는 단계로서, 상기 제1 개수의 심벌 에러들이 상기 제1 개수의 심벌들보다 작고, 상기 제1 개수의 심벌 에러들이 1 및 정정될 수 있는 심벌 에러들의 최대 개수 간의 값을 지니는, 단계를 수행하며,
제1 문턱값을 설정하는 단계로서, 상기 제1 문턱값이 정정될 수 있는 심벌 에러들의 개수로 설정되고, 상기 제1 문턱값은 정정될 수 있는 심벌 에러들의 최대 개수보다 작은, 단계를 수행하고,
상기 제1 개수의 심벌 에러들이 상기 제1 문턱값을 초과하는 경우에, 상기 NVM 세그먼트에 대한 경고 조건을 발행하는 단계를 수행하며,
제2 문턱값을 설정하는 단계로서, 상기 제2 문턱값이 정정될 수 있는 심벌 에러들의 최대 개수보다 작거나 같은, 단계를 수행하고; 그리고
상기 제1 개수의 심벌 에러들이 상기 제2 문턱값을 초과하는 경우에, 데이터 저장 목적에 유효하지 않은 NVM 세그먼트를 선언하거나 에러 조건을 발행하는 단계를 수행함으로써,
상기 휘발성 메모리 서브시스템으로부터 상기 비-휘발성 메모리 서브시스템으로의 데이터의 백업을 관리하도록 동작가능한 하이브리드 메모리 제어기;
를 포함하는, 하이브리드 메모리 시스템. - 제11항에 있어서, 상기 하이브리드 메모리 제어기는,
제3 문턱값을 설정하는 단계로서, 상기 제3 문턱값이 유효하지 않은 NVM 세그먼트들의 개수로 설정되는, 단계를 수행하고;
복수 개의 NVM 페이지들 중 하나의 NVM 페이지 내에서 선언된 유효하지 않은 세그먼트들의 개수를 추적하는 단계로서, 상기 복수 개의 NVM 페이지들 중 하나의 NVM 페이지는 상기 복수 개의 NVM 세그먼트들을 포함하는, 단계를 수행하며;
상기 유효하지 않은 세그먼트들의 추적된 개수가 상기 제3 문턱값을 초과하는 지를 결정하는 단계를 수행하고; 그리고
상기 유효하지 않은 세그먼트들의 추적된 개수가 상기 제3 문턱값을 초과하는 경우에, 데이터 저장 목적에 유효하지 않은 상기 복수 개의 NVM 페이지들 중 하나의 NVM 페이지를 선언하는 단계를 수행하도록 더 동작가능한, 하이브리드 메모리 시스템. - 제12항에 있어서, 상기 하이브리드 메모리 제어기는,
제4 문턱값을 설정하는 단계로서, 상기 제4 문턱값이 유효하지 않은 NVM 페이지들의 개수로 설정되는, 단계를 수행하고;
복수 개의 NVM 블록들 중 하나의 NVM 블록 내에서 선언된 유효하지 않은 페이지들의 개수를 추적하는 단계로서, 상기 복수 개의 NVM 블록들 중 하나의 NVM 블록은 상기 복수 개의 NVM 페이지들을 포함하는, 단계를 수행하며;
상기 유효하지 않은 페이지들의 추적된 개수가 상기 제4 문턱값을 초과하는지를 결정하는 단계를 수행하고;
상기 유효하지 않은 페이지들의 추적된 개수가 상기 제4 문턱값을 초과하는 경우에, 데이터 저장 목적에 유효하지 않은 상기 복수 개의 NVM 블록들 중 하나의 NVM 블록을 선언하는 단계를 수행하도록 더 동작가능한, 하이브리드 메모리 시스템. - 하이브리드 메모리 시스템에 있어서,
휘발성 메모리 서브시스템;
비-휘발성 메모리(non-volatile memory; NVM) 서브시스템;
각각의 NVM 세그먼트가 제1 개수의 심벌들을 지니는 복수 개의 NVM 세그먼트들 상에서 동작하는 단계를 수행하고,
상기 복수 개의 NVM 세그먼트들 중 하나의 NVM 세그먼트가 제1 개수의 심벌 에러들을 포함하는 지를 결정하는 단계로서, 상기 제1 개수의 심벌 에러들이 상기 제1 개수의 심벌들보다 작고, 상기 제1 개수의 심벌 에러들이 1 및 정정될 수 있는 심벌 에러들의 최대 개수 간의 값을 지니는, 단계를 수행하며,
제1 문턱값을 설정하는 단계로서, 상기 제1 문턱값이 정정될 수 있는 심벌 에러들의 개수로 설정되고, 상기 제1 문턱값은 정정될 수 있는 심벌 에러들의 최대 개수보다 작은, 단계를 수행하고,
상기 제1 개수의 심벌 에러들이 상기 제1 문턱값을 초과하는 경우에, 상기 NVM 세그먼트에 대한 경고 조건을 발행하는 단계를 수행하며,
제2 문턱값을 설정하는 단계로서, 상기 제2 문턱값이 정정될 수 있는 심벌 에러들의 최대 개수보다 작거나 동일한, 단계를 수행하고, 그리고
상기 제1 개수의 심벌 에러들이 상기 제2 문턱값을 초과하는 경우에, 데이터 저장 목적에 유효하지 않은, (i) 상기 복수 개의 NVM 세그먼트들 중 하나의 NVM 세그먼트, (ii) 복수 개의 NVM 페이지들 중 제1 NVM 페이지, 또는 (iii) 복수 개의 NVM 블록들 중 제1 NVM 블록; 중 적어도 하나를 선언하는 단계로서, 상기 복수 개의 NVM 페이지들 중 제1 NVM 페이지는 상기 복수 개의 세그먼트들을 포함하고, 상기 복수 개의 NVM 블록들 중 제1 NVM 블록은 상기 복수 개의 NVM 페이지들을 포함하는, 단계를 수행함으로써,
상기 휘발성 메모리 서브시스템으로부터 상기 비-휘발성 메모리 서브시스템으로의 데이터의 백업을 관리하도록 동작가능한 하이브리드 메모리 제어기;
를 포함하는, 하이브리드 메모리 시스템. - 제13항에 있어서, 상기 제1, 제2, 제3, 및 제4 문턱값들 중 어느 하나가 상기 하이브리드 메모리 시스템에 연결된 호스트 컴퓨터 시스템 또는 사용자에 의해 구성가능한, 하이브리드 메모리 시스템.
- 삭제
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361799556P | 2013-03-15 | 2013-03-15 | |
US201361798956P | 2013-03-15 | 2013-03-15 | |
US201361799271P | 2013-03-15 | 2013-03-15 | |
US61/798,956 | 2013-03-15 | ||
US61/799,556 | 2013-03-15 | ||
US61/799,271 | 2013-03-15 | ||
US14/214,652 | 2014-03-14 | ||
US14/214,652 US10372551B2 (en) | 2013-03-15 | 2014-03-14 | Hybrid memory system with configurable error thresholds and failure analysis capability |
PCT/US2014/030050 WO2014145311A2 (en) | 2013-03-15 | 2014-03-15 | Memory system with configurable error thresholds and failure analysis capability |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177007822A Division KR20170036123A (ko) | 2013-03-15 | 2014-03-15 | 구성가능 에러 문턱값들 및 고장 해석 능력을 지니는 메모리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160018462A KR20160018462A (ko) | 2016-02-17 |
KR101721154B1 true KR101721154B1 (ko) | 2017-03-29 |
Family
ID=51534154
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177007822A KR20170036123A (ko) | 2013-03-15 | 2014-03-15 | 구성가능 에러 문턱값들 및 고장 해석 능력을 지니는 메모리 시스템 |
KR1020157029205A KR101721154B1 (ko) | 2013-03-15 | 2014-03-15 | 구성가능 에러 문턱값들 및 고장 해석 능력을 지니는 메모리 시스템 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177007822A KR20170036123A (ko) | 2013-03-15 | 2014-03-15 | 구성가능 에러 문턱값들 및 고장 해석 능력을 지니는 메모리 시스템 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10372551B2 (ko) |
EP (1) | EP2972875A4 (ko) |
KR (2) | KR20170036123A (ko) |
TW (1) | TWI662552B (ko) |
WO (1) | WO2014145311A2 (ko) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9619406B2 (en) | 2012-05-22 | 2017-04-11 | Xockets, Inc. | Offloading of computation for rack level servers and corresponding methods and systems |
US20130318269A1 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Processing structured and unstructured data using offload processors |
US9378161B1 (en) | 2013-01-17 | 2016-06-28 | Xockets, Inc. | Full bandwidth packet handling with server systems including offload processors |
WO2014113055A1 (en) | 2013-01-17 | 2014-07-24 | Xockets IP, LLC | Offload processor modules for connection to system memory |
US10372551B2 (en) | 2013-03-15 | 2019-08-06 | Netlist, Inc. | Hybrid memory system with configurable error thresholds and failure analysis capability |
CN105630599B (zh) * | 2014-10-28 | 2019-02-15 | 龙芯中科技术有限公司 | 基于32/64位混合操作系统的显存分配方法及装置 |
KR20160131359A (ko) * | 2015-05-07 | 2016-11-16 | 에스케이하이닉스 주식회사 | 메모리 모듈, 메모리 모듈의 모듈 콘트롤러 및 메모리 모듈의 동작 방법 |
US9904490B2 (en) * | 2015-06-26 | 2018-02-27 | Toshiba Memory Corporation | Solid-state mass storage device and method for persisting volatile data to non-volatile media |
US9792190B2 (en) * | 2015-06-26 | 2017-10-17 | Intel Corporation | High performance persistent memory |
US10025508B2 (en) | 2015-12-02 | 2018-07-17 | International Business Machines Corporation | Concurrent upgrade and backup of non-volatile memory |
WO2018106441A1 (en) | 2016-12-09 | 2018-06-14 | Rambus Inc. | Memory module for platform with non-volatile storage |
US10558521B2 (en) * | 2017-02-27 | 2020-02-11 | Dell Products, Lp | System and method for providing predictive failure detection on DDR5 DIMMs using on-die ECC |
US10140040B1 (en) | 2017-05-25 | 2018-11-27 | Micron Technology, Inc. | Memory device with dynamic program-verify voltage calibration |
US10452480B2 (en) | 2017-05-25 | 2019-10-22 | Micron Technology, Inc. | Memory device with dynamic processing level calibration |
US10402272B2 (en) * | 2017-05-25 | 2019-09-03 | Micron Technology, Inc. | Memory device with dynamic programming calibration |
JP6814107B2 (ja) * | 2017-08-02 | 2021-01-13 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置、及び半導体記憶装置の制御方法 |
US11288116B2 (en) | 2018-02-15 | 2022-03-29 | Micron Technology, Inc. | End of service life of data storage devices |
US10789130B1 (en) * | 2018-03-09 | 2020-09-29 | Toshiba Memory Corporation | Capacitor energy management for unexpected power loss in datacenter SSD devices |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
US10566063B2 (en) | 2018-05-16 | 2020-02-18 | Micron Technology, Inc. | Memory system with dynamic calibration using a trim management mechanism |
US10664194B2 (en) | 2018-05-16 | 2020-05-26 | Micron Technology, Inc. | Memory system with dynamic calibration using a variable adjustment mechanism |
JP2019207524A (ja) * | 2018-05-29 | 2019-12-05 | セイコーエプソン株式会社 | 回路装置、電気光学装置、電子機器及び移動体 |
CN108829440B (zh) * | 2018-05-31 | 2023-05-02 | 福州谛听科技有限公司 | 一种将逻辑组态数组转为逻辑执行命令的方法和系统 |
US10990466B2 (en) | 2018-06-20 | 2021-04-27 | Micron Technology, Inc. | Memory sub-system with dynamic calibration using component-based function(s) |
US11188416B2 (en) | 2018-07-12 | 2021-11-30 | Micron Technology, Inc. | Enhanced block management for a memory sub-system |
US11113129B2 (en) | 2018-07-13 | 2021-09-07 | Micron Technology, Inc. | Real time block failure analysis for a memory sub-system |
US10936246B2 (en) | 2018-10-10 | 2021-03-02 | Micron Technology, Inc. | Dynamic background scan optimization in a memory sub-system |
CN111512374B (zh) * | 2018-10-16 | 2022-11-11 | 华为技术有限公司 | 一种混合存储设备及访问方法 |
US10949284B2 (en) * | 2018-11-29 | 2021-03-16 | Micron Technology, Inc. | Techniques using nonvolatile memory and volatile memory |
US11138064B2 (en) * | 2018-12-13 | 2021-10-05 | Micron Technology, Inc. | Dynamic control of error management and signaling |
TWI714930B (zh) * | 2018-12-21 | 2021-01-01 | 瑞昱半導體股份有限公司 | 控制系統、控制方法及其非暫態電腦可讀取媒體 |
CN112214158B (zh) * | 2019-07-10 | 2024-03-22 | 慧荣科技股份有限公司 | 主机输出输入命令的执行装置及方法及计算机可读取存储介质 |
US11210183B2 (en) | 2020-01-14 | 2021-12-28 | Western Digital Technologies, Inc. | Memory health tracking for differentiated data recovery configurations |
TWI737262B (zh) * | 2020-04-16 | 2021-08-21 | 晶豪科技股份有限公司 | 用於非揮發性記憶體裝置的錯誤更正的控制驗證操作的方法及非揮發性記憶體裝置 |
CN113821364A (zh) | 2020-06-20 | 2021-12-21 | 华为技术有限公司 | 内存故障的处理方法、装置、设备及存储介质 |
TWI782490B (zh) * | 2020-07-02 | 2022-11-01 | 日商鎧俠股份有限公司 | 接收終端、通訊系統及程式 |
KR102482191B1 (ko) * | 2020-12-23 | 2022-12-27 | 연세대학교 산학협력단 | 하이브리드 메모리 장치 및 이의 관리 방법 |
US11256720B1 (en) * | 2021-03-23 | 2022-02-22 | Efolder Inc. | Hierarchical data structure having tiered probabilistic membership query filters |
TWI779610B (zh) * | 2021-05-17 | 2022-10-01 | 瑞昱半導體股份有限公司 | 偵測快閃記憶體模組的方法及相關的系統晶片 |
CN115378790A (zh) * | 2021-05-20 | 2022-11-22 | 中国移动通信集团辽宁有限公司 | 故障预警方法、装置、电子设备和存储介质 |
KR102514268B1 (ko) * | 2021-07-14 | 2023-03-24 | 연세대학교 산학협력단 | 데이터 마이그레이션 정책 스위칭 방법 및 장치 |
US11609700B2 (en) * | 2021-08-11 | 2023-03-21 | Mellanox Technologies, Ltd. | Pacing in a storage sub-system |
WO2024059132A1 (en) * | 2022-09-13 | 2024-03-21 | Fort Robotics, Inc. | Method for decreasing probability of undetected errors on large messages over a black channel |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090235038A1 (en) * | 2007-07-25 | 2009-09-17 | Agiga Tech Inc. | Hybrid memory system with backup power source and multiple backup an restore methodology |
US20100122200A1 (en) * | 2006-05-08 | 2010-05-13 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
Family Cites Families (112)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2043099A (en) | 1933-10-26 | 1936-06-02 | Gen Electric | Electrical protective system |
US3562555A (en) | 1967-09-01 | 1971-02-09 | Rca Corp | Memory protecting circuit |
US3916390A (en) | 1974-12-31 | 1975-10-28 | Ibm | Dynamic memory with non-volatile back-up mode |
US4234920A (en) | 1978-11-24 | 1980-11-18 | Engineered Systems, Inc. | Power failure detection and restart system |
US4449205A (en) | 1982-02-19 | 1984-05-15 | International Business Machines Corp. | Dynamic RAM with non-volatile back-up storage and method of operation thereof |
US4420821A (en) | 1982-02-19 | 1983-12-13 | International Business Machines Corporation | Static RAM with non-volatile back-up storage and method of operation thereof |
US8027194B2 (en) * | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
US4965828A (en) | 1989-04-05 | 1990-10-23 | Quadri Corporation | Non-volatile semiconductor memory with SCRAM hold cycle prior to SCRAM-to-E2 PROM backup transfer |
GB2256735B (en) | 1991-06-12 | 1995-06-21 | Intel Corp | Non-volatile disk cache |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US5430742A (en) | 1992-10-14 | 1995-07-04 | Ast Research, Inc. | Memory controller with ECC and data streaming control |
KR970008188B1 (ko) | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
US5675725A (en) | 1993-07-19 | 1997-10-07 | Cheyenne Advanced Technology Limited | Computer backup system operable with open files |
US5577213A (en) | 1994-06-03 | 1996-11-19 | At&T Global Information Solutions Company | Multi-device adapter card for computer |
US5519663A (en) | 1994-09-28 | 1996-05-21 | Sci Systems, Inc. | Preservation system for volatile memory with nonvolatile backup memory |
EP0710033A3 (en) | 1994-10-28 | 1999-06-09 | Matsushita Electric Industrial Co., Ltd. | MPEG video decoder having a high bandwidth memory |
US5563839A (en) | 1995-03-30 | 1996-10-08 | Simtek Corporation | Semiconductor memory device having a sleep mode |
US5619644A (en) | 1995-09-18 | 1997-04-08 | International Business Machines Corporation | Software directed microcode state save for distributed storage controller |
US5914906A (en) | 1995-12-20 | 1999-06-22 | International Business Machines Corporation | Field programmable memory array |
US6199142B1 (en) | 1996-07-01 | 2001-03-06 | Sun Microsystems, Inc. | Processor/memory device with integrated CPU, main memory, and full width cache and associated method |
US5890192A (en) | 1996-11-05 | 1999-03-30 | Sandisk Corporation | Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM |
US5870350A (en) | 1997-05-21 | 1999-02-09 | International Business Machines Corporation | High performance, high bandwidth memory bus architecture utilizing SDRAMs |
KR100238188B1 (ko) | 1997-09-12 | 2000-01-15 | 윤종용 | 비디오 콘트롤러에서 메모리클럭 발생방법 및 그 장치 |
US6145068A (en) | 1997-09-16 | 2000-11-07 | Phoenix Technologies Ltd. | Data transfer to a non-volatile storage medium |
US5953215A (en) | 1997-12-01 | 1999-09-14 | Karabatsos; Chris | Apparatus and method for improving computer memory speed and capacity |
US6721860B2 (en) | 1998-01-29 | 2004-04-13 | Micron Technology, Inc. | Method for bus capacitance reduction |
US6158015A (en) | 1998-03-30 | 2000-12-05 | Micron Electronics, Inc. | Apparatus for swapping, adding or removing a processor in an operating computer system |
US6216247B1 (en) | 1998-05-29 | 2001-04-10 | Intel Corporation | 32-bit mode for a 64-bit ECC capable memory subsystem |
US6658507B1 (en) | 1998-08-31 | 2003-12-02 | Wistron Corporation | System and method for hot insertion of computer-related add-on cards |
US6269382B1 (en) | 1998-08-31 | 2001-07-31 | Microsoft Corporation | Systems and methods for migration and recall of data from local and remote storage |
US6336176B1 (en) | 1999-04-08 | 2002-01-01 | Micron Technology, Inc. | Memory configuration data protection |
US6487623B1 (en) | 1999-04-30 | 2002-11-26 | Compaq Information Technologies Group, L.P. | Replacement, upgrade and/or addition of hot-pluggable components in a computer system |
US6336174B1 (en) | 1999-08-09 | 2002-01-01 | Maxtor Corporation | Hardware assisted memory backup system and method |
KR100375217B1 (ko) * | 1999-10-21 | 2003-03-07 | 삼성전자주식회사 | 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러 |
US6591383B1 (en) * | 1999-11-19 | 2003-07-08 | Eci Telecom Ltd. | Bit error rate detection |
JP2001166993A (ja) | 1999-12-13 | 2001-06-22 | Hitachi Ltd | 記憶制御装置およびキャッシュメモリの制御方法 |
US6459647B1 (en) | 2000-02-08 | 2002-10-01 | Alliance Semiconductor | Split-bank architecture for high performance SDRAMs |
US6691209B1 (en) | 2000-05-26 | 2004-02-10 | Emc Corporation | Topological data categorization and formatting for a mass storage system |
US6769081B1 (en) | 2000-08-30 | 2004-07-27 | Sun Microsystems, Inc. | Reconfigurable built-in self-test engine for testing a reconfigurable memory |
US6487102B1 (en) | 2000-09-18 | 2002-11-26 | Intel Corporation | Memory module having buffer for isolating stacked memory devices |
JP3646303B2 (ja) | 2000-12-21 | 2005-05-11 | 日本電気株式会社 | コンピュータシステムとそのメモリ管理方法、及びメモリ管理プログラムを記録した記録媒体 |
US7107480B1 (en) | 2000-12-22 | 2006-09-12 | Simpletech, Inc. | System and method for preventing data corruption in solid-state memory devices after a power failure |
US6662281B2 (en) | 2001-01-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Redundant backup device |
US6816982B2 (en) | 2001-03-13 | 2004-11-09 | Gonen Ravid | Method of and apparatus for computer hard disk drive protection and recovery |
US7228383B2 (en) | 2001-06-01 | 2007-06-05 | Visto Corporation | System and method for progressive and hierarchical caching |
JP4049297B2 (ja) | 2001-06-11 | 2008-02-20 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
TWI240864B (en) | 2001-06-13 | 2005-10-01 | Hitachi Ltd | Memory device |
JP4765222B2 (ja) | 2001-08-09 | 2011-09-07 | 日本電気株式会社 | Dram装置 |
US6799241B2 (en) | 2002-01-03 | 2004-09-28 | Intel Corporation | Method for dynamically adjusting a memory page closing policy |
US20030158995A1 (en) | 2002-02-15 | 2003-08-21 | Ming-Hsien Lee | Method for DRAM control with adjustable page size |
JP4159415B2 (ja) | 2002-08-23 | 2008-10-01 | エルピーダメモリ株式会社 | メモリモジュール及びメモリシステム |
US7111142B2 (en) | 2002-09-13 | 2006-09-19 | Seagate Technology Llc | System for quickly transferring data |
US8412879B2 (en) | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
US6944042B2 (en) | 2002-12-31 | 2005-09-13 | Texas Instruments Incorporated | Multiple bit memory cells and methods for reading non-volatile data |
US7089412B2 (en) | 2003-01-17 | 2006-08-08 | Wintec Industries, Inc. | Adaptive memory module |
US20040163027A1 (en) | 2003-02-18 | 2004-08-19 | Maclaren John M. | Technique for implementing chipkill in a memory system with X8 memory devices |
US20040190210A1 (en) | 2003-03-26 | 2004-09-30 | Leete Brian A. | Memory back up and content preservation |
US7234099B2 (en) | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
US7124332B2 (en) * | 2003-06-30 | 2006-10-17 | Intel Corporation | Failure prediction with two threshold levels |
US7170315B2 (en) | 2003-07-31 | 2007-01-30 | Actel Corporation | Programmable system on a chip |
US20050044302A1 (en) | 2003-08-06 | 2005-02-24 | Pauley Robert S. | Non-standard dual in-line memory modules with more than two ranks of memory per module and multiple serial-presence-detect devices to simulate multiple modules |
US7231488B2 (en) | 2003-09-15 | 2007-06-12 | Infineon Technologies Ag | Self-refresh system and method for dynamic random access memory |
KR100574951B1 (ko) | 2003-10-31 | 2006-05-02 | 삼성전자주식회사 | 개선된 레지스터 배치 구조를 가지는 메모리 모듈 |
US9213609B2 (en) | 2003-12-16 | 2015-12-15 | Hewlett-Packard Development Company, L.P. | Persistent memory device for backup process checkpoint states |
KR100528482B1 (ko) | 2003-12-31 | 2005-11-15 | 삼성전자주식회사 | 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템 |
KR100606242B1 (ko) | 2004-01-30 | 2006-07-31 | 삼성전자주식회사 | 불휘발성 메모리와 호스트간에 버퍼링 동작을 수행하는멀티 포트 휘발성 메모리 장치, 이를 이용한 멀티-칩패키지 반도체 장치 및 이를 이용한 데이터 처리장치 |
JP2007536634A (ja) | 2004-05-04 | 2007-12-13 | フィッシャー−ローズマウント・システムズ・インコーポレーテッド | プロセス制御システムのためのサービス指向型アーキテクチャ |
EP1598831B1 (en) | 2004-05-20 | 2007-11-21 | STMicroelectronics S.r.l. | An improved page buffer for a programmable memory device |
US20060069896A1 (en) | 2004-09-27 | 2006-03-30 | Sigmatel, Inc. | System and method for storing data |
US20060080515A1 (en) * | 2004-10-12 | 2006-04-13 | Lefthand Networks, Inc. | Non-Volatile Memory Backup for Network Storage System |
US7200021B2 (en) | 2004-12-10 | 2007-04-03 | Infineon Technologies Ag | Stacked DRAM memory chip for a dual inline memory module (DIMM) |
KR100666169B1 (ko) | 2004-12-17 | 2007-01-09 | 삼성전자주식회사 | 플래쉬 메모리 데이터 저장장치 |
US7053470B1 (en) | 2005-02-19 | 2006-05-30 | Azul Systems, Inc. | Multi-chip package having repairable embedded memories on a system chip with an EEPROM chip storing repair information |
KR100759427B1 (ko) | 2005-03-17 | 2007-09-20 | 삼성전자주식회사 | 전력 소모가 적은 하드디스크 드라이버 및 이를 구비한 정보처리 시스템, 그리고 그들의 데이터 입출력 방법 |
US7715236B2 (en) | 2005-03-30 | 2010-05-11 | Virage Logic Corporation | Fault tolerant non volatile memories and methods |
US7290185B2 (en) * | 2005-04-28 | 2007-10-30 | International Business Machines Corporation | Methods and apparatus for reducing memory errors |
JP4724461B2 (ja) | 2005-05-17 | 2011-07-13 | Okiセミコンダクタ株式会社 | システムlsi |
US20060294295A1 (en) | 2005-06-24 | 2006-12-28 | Yukio Fukuzo | DRAM chip device well-communicated with flash memory chip and multi-chip package comprising such a device |
US7469368B2 (en) | 2005-11-29 | 2008-12-23 | Broadcom Corporation | Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield |
US20070136523A1 (en) | 2005-12-08 | 2007-06-14 | Bonella Randy M | Advanced dynamic disk memory module special operations |
US7409491B2 (en) | 2005-12-14 | 2008-08-05 | Sun Microsystems, Inc. | System memory board subsystem using DRAM with stacked dedicated high speed point to point links |
JP4780304B2 (ja) | 2006-02-13 | 2011-09-28 | 株式会社メガチップス | 半導体メモリおよびデータアクセス方法 |
US7421552B2 (en) | 2006-03-17 | 2008-09-02 | Emc Corporation | Techniques for managing data within a data storage system utilizing a flash-based memory vault |
US7716411B2 (en) | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
US8407395B2 (en) | 2006-08-22 | 2013-03-26 | Mosaid Technologies Incorporated | Scalable memory system |
JP4437489B2 (ja) | 2006-10-25 | 2010-03-24 | 株式会社日立製作所 | 揮発性キャッシュメモリと不揮発性メモリとを備えたストレージシステム |
KR101533120B1 (ko) | 2006-12-14 | 2015-07-01 | 램버스 인코포레이티드 | 멀티 다이 메모리 디바이스 |
US7752373B2 (en) | 2007-02-09 | 2010-07-06 | Sigmatel, Inc. | System and method for controlling memory operations |
US8874831B2 (en) | 2007-06-01 | 2014-10-28 | Netlist, Inc. | Flash-DRAM hybrid memory module |
US8301833B1 (en) | 2007-06-01 | 2012-10-30 | Netlist, Inc. | Non-volatile memory module |
US8904098B2 (en) | 2007-06-01 | 2014-12-02 | Netlist, Inc. | Redundant backup using non-volatile memory |
US7865679B2 (en) | 2007-07-25 | 2011-01-04 | AgigA Tech Inc., 12700 | Power interrupt recovery in a hybrid memory subsystem |
JP2009087509A (ja) * | 2007-10-03 | 2009-04-23 | Toshiba Corp | 半導体記憶装置 |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8078918B2 (en) * | 2008-02-07 | 2011-12-13 | Siliconsystems, Inc. | Solid state storage subsystem that maintains and provides access to data reflective of a failure risk |
US20090217281A1 (en) * | 2008-02-22 | 2009-08-27 | John M Borkenhagen | Adaptable Redundant Bit Steering for DRAM Memory Failures |
JP4489127B2 (ja) * | 2008-02-29 | 2010-06-23 | 株式会社東芝 | 半導体記憶装置 |
US8706950B2 (en) * | 2008-03-01 | 2014-04-22 | Kabushiki Kaisha Toshiba | Memory system |
TWI473117B (zh) * | 2008-06-04 | 2015-02-11 | A Data Technology Co Ltd | 具資料修正功能之快閃記憶體儲存裝置 |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8478928B2 (en) | 2009-04-23 | 2013-07-02 | Samsung Electronics Co., Ltd. | Data storage device and information processing system incorporating data storage device |
US8312349B2 (en) | 2009-10-27 | 2012-11-13 | Micron Technology, Inc. | Error detection/correction based memory management |
US8411519B2 (en) | 2010-06-04 | 2013-04-02 | Apple Inc. | Selective retirement of blocks |
US8898324B2 (en) | 2010-06-24 | 2014-11-25 | International Business Machines Corporation | Data access management in a hybrid memory server |
US8418026B2 (en) * | 2010-10-27 | 2013-04-09 | Sandisk Technologies Inc. | Hybrid error correction coding to address uncorrectable errors |
JP2012133642A (ja) * | 2010-12-22 | 2012-07-12 | Sony Corp | メモリ装置、メモリ制御方法、およびプログラム |
US8713379B2 (en) | 2011-02-08 | 2014-04-29 | Diablo Technologies Inc. | System and method of interfacing co-processors and input/output devices via a main memory system |
US8640006B2 (en) * | 2011-06-29 | 2014-01-28 | International Business Machines Corporation | Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis |
JP2013222236A (ja) * | 2012-04-13 | 2013-10-28 | Hitachi Ltd | メモリの管理方法、記憶装置およびそれを搭載した計算機 |
US20140059170A1 (en) | 2012-05-02 | 2014-02-27 | Iosif Gasparakis | Packet processing of data using multiple media access controllers |
US9842660B1 (en) * | 2012-12-28 | 2017-12-12 | Virident Systems, Llc | System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory |
US10372551B2 (en) | 2013-03-15 | 2019-08-06 | Netlist, Inc. | Hybrid memory system with configurable error thresholds and failure analysis capability |
-
2014
- 2014-03-14 US US14/214,652 patent/US10372551B2/en active Active
- 2014-03-15 KR KR1020177007822A patent/KR20170036123A/ko not_active Application Discontinuation
- 2014-03-15 WO PCT/US2014/030050 patent/WO2014145311A2/en active Application Filing
- 2014-03-15 KR KR1020157029205A patent/KR101721154B1/ko active IP Right Grant
- 2014-03-15 EP EP14765442.0A patent/EP2972875A4/en not_active Withdrawn
- 2014-03-17 TW TW103109905A patent/TWI662552B/zh not_active IP Right Cessation
-
2019
- 2019-07-19 US US16/517,210 patent/US11200120B2/en active Active
-
2021
- 2021-12-13 US US17/549,251 patent/US20220206905A1/en not_active Abandoned
-
2023
- 2023-01-13 US US18/154,500 patent/US11914481B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100122200A1 (en) * | 2006-05-08 | 2010-05-13 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US20090235038A1 (en) * | 2007-07-25 | 2009-09-17 | Agiga Tech Inc. | Hybrid memory system with backup power source and multiple backup an restore methodology |
Also Published As
Publication number | Publication date |
---|---|
US20220206905A1 (en) | 2022-06-30 |
EP2972875A4 (en) | 2017-03-29 |
US20140281661A1 (en) | 2014-09-18 |
TWI662552B (zh) | 2019-06-11 |
TW201511020A (zh) | 2015-03-16 |
KR20160018462A (ko) | 2016-02-17 |
US20230418712A1 (en) | 2023-12-28 |
WO2014145311A2 (en) | 2014-09-18 |
WO2014145311A3 (en) | 2015-01-29 |
US10372551B2 (en) | 2019-08-06 |
US11914481B2 (en) | 2024-02-27 |
EP2972875A2 (en) | 2016-01-20 |
KR20170036123A (ko) | 2017-03-31 |
US11200120B2 (en) | 2021-12-14 |
WO2014145311A4 (en) | 2015-04-16 |
US20190340080A1 (en) | 2019-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101721154B1 (ko) | 구성가능 에러 문턱값들 및 고장 해석 능력을 지니는 메모리 시스템 | |
US20240020024A1 (en) | Non-volatile memory storage for multi-channel memory system | |
US20120131268A1 (en) | Data storage device | |
US7840836B2 (en) | Storage device and data writing method utilizing the same | |
US9123443B2 (en) | Memory device, memory management device, and memory management method | |
US20160291887A1 (en) | Solid-state drive with non-volatile random access memory | |
KR102574354B1 (ko) | 비정상적 셧다운과 연관된 효율적인 데이터 저장 이용 | |
CN111352756B (zh) | 检测存储器装置中存储的数据的错误的装置及其操作方法 | |
US11803222B2 (en) | Systems and methods for managing reduced power failure energy requirements on a solid state drive | |
US11403041B2 (en) | Memory system and control method thereof | |
US11593242B2 (en) | Method of operating storage device for improving reliability, storage device performing the same and method of operating storage using the same | |
US11537292B2 (en) | Methods and apparatus for enhancing uber rate for storage devices | |
US8583968B2 (en) | Data storage apparatus and method for writing data | |
JP2010086404A (ja) | メモリの管理方法及びフラッシュメモリデバイス | |
US20100037004A1 (en) | Storage system for backup data of flash memory and method for the same | |
JP2010086402A (ja) | メモリの管理方法及びフラッシュメモリデバイス | |
US20240143337A1 (en) | Data Storage With Optimized Boot Files Loading |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
A107 | Divisional application of patent | ||
GRNT | Written decision to grant |