KR101952001B1 - 저장 장치 드라이브 수명 추정 메커니즘을 갖는 전자 시스템 및 그 동작 방법 - Google Patents
저장 장치 드라이브 수명 추정 메커니즘을 갖는 전자 시스템 및 그 동작 방법 Download PDFInfo
- Publication number
- KR101952001B1 KR101952001B1 KR1020167005712A KR20167005712A KR101952001B1 KR 101952001 B1 KR101952001 B1 KR 101952001B1 KR 1020167005712 A KR1020167005712 A KR 1020167005712A KR 20167005712 A KR20167005712 A KR 20167005712A KR 101952001 B1 KR101952001 B1 KR 101952001B1
- Authority
- KR
- South Korea
- Prior art keywords
- age
- drive
- criterion
- storage
- maximum
- 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/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
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)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
Abstract
시스템들, 방법들 및/또는 디바이스들이 저장 장치 드라이브 수명 추정을 가능하게 하는 데 사용된다. 한 양태에서, 이 방법은 (1) 저장 장치 드라이브의 2개 이상의 나이 기준들을 결정하는 단계; 및 (2) 상기 저장 장치 드라이브의 상기 2개 이상의 나이 기준들에 따라 상기 저장 장치 드라이브의 드라이브 나이를 결정하는 단계를 포함한다.
Description
본 발명은 일반적으로 전자 시스템 및 보다 특정적으로 저장 장치 드라이브 수명 추정 메커니즘을 갖는 시스템에 관한 것이다.
모든 전자 시스템들은 어떤 형태의 메모리 또는 저장 장치를 요구한다. 흔히 저장 장치 또는 메모리라고 하는 데이터 저장 장치는 디지털 데이터를 유지하는 컴퓨터 소자들 및 기록 매체를 말한다. 데이터 저장 장치는 소비자 및 산업 전자 장치의 핵심 기능 및 기본 소자, 특히 컴퓨터, 텔레비전, 휴대 전화, 이동 장치, 및 디지털 비디오 카메라와 같은 장치들이다.
최근에, 전기 기계적 하드 디스크들 이외의 장기 저장 장치의 형태가 컴퓨터들에 사용하기 위해 실현 가능하게 되고 있다. 이들 중 하나는 플래시 전기적으로 소거가능한 프로그래머블 리드 온리 메모리(EEPROM)이다. 플래시 EEPROM 메모리는 메모리 셀들로서 배열된 복수의 플로팅-게이트 전계 효과 트랜지스터들을 포함한다. NAND 플래시는 고체 상태 저장 장치들에서 사용된 비휘발성 메모리의 한 형태이다. 메모리 셀들은 개개의 셀들에 액세스하기 위한 회로를 갖는 전형적인 행렬 방식으로 배열된다. 그들 셀의 메모리 트랜지스터들은 단일 레벨 셀(SLC)을 위한 2개의 논리 상태들 또는 멀티 레벨 셀들(MLC)을 위한 2개보다 많은 논리 상태들을 유지하도록 해석될 수 있는 아날로그 값을 저장할 수 있다.
전형적인 EEPROM 셀과 같지만 다이내믹 랜덤 액세스 메모리(DRAM) 메모리와 대조적인 플래시 메모리 셀은 전력이 제거될 때도 정보를 유지한다. 플래시 EEPROM 메모리는 장기 메모리로서 사용하기 위해 그것을 적응시키는, 많은 특성들을 갖는다. 그것은 경량이고, 매우 작은 공간을 차지하고, 전기 기계적 디스크 드라이브들보다 전력을 덜 소비한다. 이런 유형의 메모리를 갖는 저장 시스템의 구성은 전형적인 전기 기계적 디스크 드라이브보다 훨씬 더 높은 대역폭 및 초당 더 높은 입출력 동작들을 가능하게 한다. 보다 중요하게는, 그것은 특히 기복이 심하고 훨씬 더 높은 온도 범위에서 동작할 수 있다. 그것은 각각이 전형적인 전기 기계적 하드 디스크 드라이브를 파괴하는 반복된 저하들에 역효과 없이, 견뎌낼 것이다. 플래시 메모리 및 플래시 메모리로 이루어진 저장 장치들에 의해 나타나는 문제는 그것이 제한된 사용 수명을 갖는 경향이 있다는 것이다.
그러므로, 전자 시스템들의 고장 및 내구성을 고려하기 위해 보다 좋은 저장 수명 추정을 할 필요성이 여전히 남는다. 전자 시스템들의 저장 관리에 대한 요구가 증가하는 점에 비추어서, 이들 문제에 대해 해결책을 찾는 것이 점점 더 중요하게 된다. 점차 커지는 소비자 기대와 시장에서의 의미있는 제품 구별을 하기 위한 줄어드는 기회들과 함께, 계속 증가하는 상업적 경쟁 압력들에 비추어서, 이들 문제들에 대한 해결책을 찾는 것이 중요하게 된다. 부가적으로, 비용을 줄이고, 효율 및 성능을 개선시키고, 경쟁 압력에 부합하기 위해서는 이들 문제들에 대한 해결책들을 찾는 것이 아주 절박하게 필요하다.
이들 문제들에 대한 해결책들을 오랫동안 찾았지만 종래의 개발들은 어떤 해결책을 가르쳐 주거나 제안하지 못했고, 그러므로, 이들 문제들에 대한 해결책들은 오랫동안 본 기술의 통상의 기술자이 생각해 내지 못했다.
도 1은 본 발명의 실시예에 따른 저장 장치 드라이브 수명 추정 메커니즘을 갖는 전자 시스템.
도 2는 메모리 제어기의 예시적인 하드웨어 블록도.
도 3은 드라이브 마모의 함수로서 드라이브 성능을 표시한 차트.
도 4는 저장 장치 드라이브 나이의 함수로서 성장 결함들의 수를 표시한 차트.
도 5는 결함률의 함수로서 드라이브 나이를 표시한 차트.
도 6은 도 1의 전자 시스템의 저장 장치 드라이브 내의 저장 블록들의 예시도.
도 7은 전기 시스템의 도 2의 메모리 제어기의 제어 흐름.
도 8은 전기 시스템의 도 2의 메모리 제어기의 제어 흐름의 제2 예.
도 9는 본 발명의 추가 실시예에서의 도 1의 전자 시스템의 동작의 방법의 플로우 차트.
도 2는 메모리 제어기의 예시적인 하드웨어 블록도.
도 3은 드라이브 마모의 함수로서 드라이브 성능을 표시한 차트.
도 4는 저장 장치 드라이브 나이의 함수로서 성장 결함들의 수를 표시한 차트.
도 5는 결함률의 함수로서 드라이브 나이를 표시한 차트.
도 6은 도 1의 전자 시스템의 저장 장치 드라이브 내의 저장 블록들의 예시도.
도 7은 전기 시스템의 도 2의 메모리 제어기의 제어 흐름.
도 8은 전기 시스템의 도 2의 메모리 제어기의 제어 흐름의 제2 예.
도 9는 본 발명의 추가 실시예에서의 도 1의 전자 시스템의 동작의 방법의 플로우 차트.
여기에 설명된 다양한 구현들은 저장 장치 드라이브 수명 추정을 가능하게 하는 데 사용되는 시스템들, 방법들 및/또는 장치들을 포함한다. 일부 구현들은 저장 장치의 2개 이상의 나이 기준들에 따라, 저장 장치의 드라이브 나이를 결정하는 시스템들, 방법들 및/또는 장치들을 포함한다.
보다 구체적으로, 일부 실시예들은 전자 시스템의 동작 방법을 포함한다. 일부 실시예들에서, 이 방법은 (1) 저장 장치 드라이브(storage drive)의 2개 이상의 나이 기준들(age criteria)을 결정하는 단계; 및 (2) 상기 저장 장치 드라이브의 상기 2개 이상의 나이 기준들에 따라 상기 저장 장치 드라이브의 드라이브 나이를 결정하는 단계를 포함한다.
일부 실시예들에서, 상기 2개 이상의 나이 기준들은 누적된 프로그램/소거(PE) 사이클들의 총수, 성장 결함들의 총수, 결함률, 및 재시도율로 이루어진 그룹으로부터 선택된 적어도 하나의 기준을 포함한다.
일부 실시예들에서, 상기 2개 이상의 나이 기준들은 각각의 나이 기준의 상대적 중요성을 상기 저장 장치 드라이브의 상기 드라이브 나이로 조정하기 위해 각각의 구성가능한 팩터들에 의해 스케일링된다.
일부 실시예들에서, 상기 저장 장치 드라이브의 상기 2개 이상의 나이 기준들에 따라 상기 저장 장치 드라이브의 드라이브 나이를 결정하는 단계는 (1) 제1 구성가능한 팩터에 상기 2개 이상의 나이 기준들 중 제1 나이 기준을 곱함으로써 제1 스케일링된 나이 기준을 결정하는 단계, (2) 상기 드라이브 나이에 상기 저장 장치 드라이브에 대한 제1 최대 나이 기준을 곱함으로써 제1 드라이브 나이 표시자를 결정하는 단계 - 상기 제1 최대 나이 기준은 상기 제1 나이 기준의 최대 값임 -, (3) 상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상인지를 결정하는 단계, (4) 상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상이라는 결정에 따라, 상기 드라이브 나이를 증가시키는 단계, 및 (5) 상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상이 아니라는 결정에 따라, (a) 제2 구성가능한 팩터에 상기 2개 이상의 나이 기준들 중 제2 나이 기준을 곱함으로써 제2 스케일링된 나이 기준을 결정하고, (b) 상기 드라이브 나이에 상기 저장 장치 드라이브에 대한 제2 최대 나이 기준을 곱함으로써 제2 드라이브 나이 표시자를 결정하고 - 상기 제2 최대 나이 기준은 상기 제2 나이 기준의 최대 값임 -, (c) 상기 제2 스케일링된 나이 기준이 상기 제2 드라이브 나이 표시자 이상인지를 결정하고, (d) 상기 제2 스케일링된 나이 기준이 상기 제2 드라이브 나이 표시자 이상이라는 결정에 따라, 상기 드라이브 나이를 증가시키는 것을 포함하는 하나 이상의 동작을 수행하는 단계를 포함한다.
일부 실시예들에서, 상기 드라이브 나이는 단조롭게 비감소한다.
일부 실시예들에서, 상기 드라이브 나이는 정수이다.
일부 실시예들에서, 상기 저장 장치 드라이브는 하나 이상의 플래시 메모리 디바이스를 포함한다.
다른 양태에서, 위에 설명된 방법들 중 어느 것은 전자 시스템에 의해 수행되고, 상기 전자 시스템은 (1) 하나 이상의 프로세서, 및 (2) 상기 하나 이상의 프로세서에 의해 실행될 하나 이상의 프로그램을 저장하는 메모리를 포함하고, 상기 하나 이상의 프로그램은 여기에 설명된 방법들 중 어느 것의 실행을 수행하고 제어하기 위한 명령어들을 포함한다.
또 다른 양태에서, 일부 실시예들은 전자 시스템의 하나 이상의 프로세서에 의해 실행하기 위해 구성된 하나 이상의 프로그램을 저장하는 비일시적 컴퓨터 판독가능 저장 매체를 포함하고, 상기 하나 이상의 프로그램은 여기에 설명된 방법들 중 어느 것의 실행을 수행하고 제어하기 위한 명령어들을 포함한다.
다음의 실시예들은 본 기술의 통상의 기술자가 본 발명을 실시하고 사용하게 하기 위해 충분히 상세하게 설명된다. 다른 실시예들은 본 개시에 기초하여 분명하고, 시스템, 공정, 또는 기계적 변화들이 본 발명의 범위에서 벗어나지 않고서 이루어질 수 있다는 것을 이해하여야 한다.
다음의 설명에서, 많은 특정한 상세들이 본 발명의 철저한 이해를 제공하기 위해 주어진다. 그러나, 본 발명은 이들 특정한 상세들 없이 실시될 수 있다는 것은 명백할 것이다. 본 발명을 불분명하게 하는 것을 피하기 위해, 일부 공지된 회로들, 시스템 구성들, 및 공정 단계들은 상세히 개시되지 않는다.
시스템의 실시예들을 도시한 도면은 반개략적이고 축척에 맞지 않고, 특히 치수들의 일부는 제시의 명확성을 위해 도면에는 과장되게 도시된다. 유사하게, 설명을 용이하게 하기 위해 도면의 뷰들은 일반적으로 유사한 배향들을 도시하지만, 도면의 도시는 보통 임의적이다. 일반적으로, 본 발명은 임의의 배향으로 동작될 수 있다.
다수의 실시예들이 그에 대한 예시, 설명 및 이해의 명료성과 용이성을 위해 공통으로 어떤 특징들을 갖는 것으로 개시되고 설명되는 경우에, 서로 유사하고 동일한 특징들은 유사한 참조 번호들로 통상적으로 설명될 것이다. 실시예들은 설명의 편의상 제1 실시예, 제2 실시예 등으로 번호가 매겨지고 어떤 다른 의미를 갖거나 본 발명을 제한하려는 것은 아니다.
여기서 "모듈"이라고 하는 용어는 이 용어가 사용되는 문맥에 따라 본 발명에서 하드웨어, 하드웨어 상에서 실행하거나 그에 결합된 소프트웨어, 또는 이들의 조합을 포함할 수 있다. 예를 들어, 소프트웨어는 머신 코드, 펌웨어, 내장된 코드, 및 애플리케이션 소프트웨어일 수 있다. 또한 예를 들어, 하드웨어는 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 마이크로전자기계 시스템(MEMS), 수동 장치들, 온도 센서들을 포함하지만, 이에 제한되지 않는 환경 센서들, 또는 이들의 조합일 수 있다.
고체 상태 드라이브들(SSD들)은 장기 사용 및 데이터 저장에 도전들을 제시하는 유한 사용 수명을 갖는다. 궁극적인 교체에 대비하기 위해서, 드라이브 수명의 추정을 결정하는 시스템 및 방법이 필요하다. 저장 장치 드라이브 수명의 추정들은 또한 보증 및 재판매 목적들을 위해 필요하다.
그러므로 이미 사용된 저장 장치 드라이브의 예상된 수명의 퍼센티지를 추정하는 시스템 및 방법을 갖는 것이 바람직할 수 있다. 또한, 이 추정은 비교적 계산하기 쉬우면서 드라이브의 사용 수명의 실제 퍼센티지에 잘 상관하는 것이 바람직할 수 있다. 마지막으로, 측정은 드라이브가 얼마나 마모하였는지를 반영하여, 단조롭게 비감소하고, 가능한 값들이 스킵되지 않는 것이 바람직할 수 있다. 이 방식으로, 측정은 역행하거나 혼란 또는 호도하게 하는 큰 불연속들을 갖는 것으로 나타나지 않을 것이다.
이제 도 1을 참조하면, 본 발명의 실시예에서의 저장 장치 관리 메커니즘을 갖는 전자 시스템(100)이 도시된다. 전자 시스템(100)은 메모리 제어기(104) 및 메모리 어레이(106)를 갖는 메모리 서브시스템(102)을 포함한다. 전자 시스템(100)은 메모리 서브시스템(102)과 통신하는 호스트 시스템(108)을 포함한다.
메모리 제어기(104)는 메모리 어레이(106)의 데이터 제어 및 관리를 제공한다. 메모리 제어기(104)는 호스트 시스템(108)과 인터페이스하고 호스트 시스템(108)과 메모리 어레이(106) 사이에 데이터를 전달하기 위해 메모리 어레이(106)를 제어한다.
메모리 어레이(106)는 플래시 메모리 장치들 또는 비휘발성 메모리 장치들을 포함하는 메모리 장치들(110)의 어레이를 포함한다. 메모리 어레이(106)는 데이터 또는 정보의 페이지들을 포함할 수 있다. 호스트 시스템(108)은 메모리 어레이(106)를 포함하는 저장 장치의 논리 어드레스 공간으로부터 또는 이로 데이터를 판독, 기입, 및 삭제하라고 메모리 제어기(104)에 요구할 수 있다.
메모리 장치들(110)은 메모리 장치들(110)을 인에이블하기 위한 제어 입력들로서 정의된 칩 선택들(112)을 포함할 수 있다. 칩 선택들(112) 각각은 메모리 장치들(110) 중 하나의 동작을 제어하는 데 사용될 수 있다. 칩 선택들(112)이 인에이블될 때, 메모리 장치들(110)은 판독, 기입, 또는 재순환을 포함하는 동작을 위한 활성 상태에 있다. 이것은 또한 하나의 칩 선택에 의해 제어되는 디바이스 내의 서브 어드레스들 LUN들(논리 단위들)에 대해 그렇다.
이제 도 2를 참조하면, 메모리 제어기(104)의 예시적인 하드웨어 블록도가 도시된다. 메모리 제어기(104)는 제어 유닛(202), 저장 유닛(204), 메모리 인터페이스 유닛(206), 및 호스트 인터페이스 유닛(208)을 포함할 수 있다. 제어 유닛(202)은 제어 인터페이스(210)를 포함할 수 있다. 제어 유닛(202)은 메모리 제어기(104)의 지능을 제공하기 위해 저장 유닛(204) 내에 저장된 소프트웨어(212)를 실행할 수 있다.
제어 유닛(202)은 여러 가지 상이한 방식들로 구현될 수 있다. 예를 들어, 제어 유닛(202)은 프로세서, 내장된 프로세서, 마이크로프로세서, 하드웨어 제어 논리, 하드웨어 유한 상태 머신(finite state machine)(FSM), 디지털 신호 프로세서(DSP), 또는 이들의 조합일 수 있다.
제어 인터페이스(210)는 메모리 제어기(104) 내의 제어 유닛(202)과 다른 기능 유닛들 사이의 통신을 위해 사용될 수 있다. 제어 인터페이스(210)는 또한 메모리 제어기(104) 외부의 통신을 위해 사용될 수 있다.
제어 인터페이스(210)는 다른 기능 유닛들로부터 또는 외부 소스들로부터 정보를 수신할 수 있거나, 다른 기능 유닛들 또는 외부 목적지들에 정보를 송신할 수 있다. 외부 소스들 및 외부 목적지들은 메모리 제어기(104) 외부에 있는 소스들 및 목적지들을 말한다.
제어 인터페이스(210)는 어떤 기능 유닛들 또는 외부 유닛들이 제어 인터페이스(210)와 인터페이스하는지에 따라 상이한 방식들로 구현될 수 있고 상이한 구현들을 포함할 수 있다. 예를 들어, 제어 인터페이스(210)는 주문형 집적 회로(ASIC)와 같은 전용 하드웨어, FPGA(필드 프로그래머블 게이트 어레이)와 같은 구성가능한 하드웨어, 분리된 전자 소프트웨어, 또는 이들의 조합으로 구현될 수 있다.
저장 유닛(204)은 하드웨어, 제어 펌웨어, 및 소프트웨어(212)를 포함할 수 있다. 저장 유닛(204)은 휘발성 메모리, 비휘발성 메모리, 내부 메모리, 외부 메모리, 또는 이들의 조합을 포함할 수 있다. 예를 들어, 저장 유닛(204)은 비휘발성 랜덤 액세스 메모리(NVRAM)와 같은 비휘발성 저장 장치, 플래시 메모리, 디스크 저장 장치, 또는 스태틱 랜덤 액세스 메모리(SRAM)와 같은 휘발성 저장 장치일 수 있다.
저장 유닛(204)은 저장 인터페이스(214)를 포함할 수 있다. 저장 인터페이스(214)는 또한 메모리 제어기(104) 외부의 통신을 위해 사용될 수 있다. 저장 인터페이스(214)는 다른 기능 유닛들 또는 외부 소스들로부터 정보를 수신할 수 있거나, 다른 기능 유닛들 또는 외부 목적지들에 정보를 송신할 수 있다. 외부 소스들 및 외부 수신지들은 메모리 제어기(104) 외부에 있는 소스들 및 목적지들을 말한다.
저장 인터페이스(214)는 어떤 기능 유닛들 또는 외부 유닛들이 저장 유닛(204)과 인터페이스하는지에 따라 상이한 구현들을 포함할 수 있다. 저장 인터페이스(214)는 제어 인터페이스(210)의 구현과 유사한 기술들 및 기법들로 구현될 수 있다.
메모리 인터페이스 유닛(206)은 메모리 제어기(104)에 및 그로부터 외부 통신을 가능하게 할 수 있다. 예를 들어, 메모리 인터페이스 유닛(206)은 메모리 제어기(104)가 도 1의 메모리 어레이(106)와 통신하게 할 수 있다.
메모리 인터페이스 유닛(206)은 메모리 인터페이스(216)를 포함할 수 있다. 메모리 인터페이스(216)는 메모리 제어기(104) 내의 메모리 인터페이스 유닛(206)과 다른 기능 유닛들 사이의 통신을 위해 사용될 수 있다. 메모리 인터페이스(216)는 다른 기능 유닛들로부터 정보를 수신할 수 있거나 다른 기능 유닛들에 정보를 송신할 수 있다.
메모리 인터페이스(216)는 어떤 기능 유닛들이 메모리 인터페이스 유닛(206)과 인터페이스하는지에 따라 상이한 구현들을 포함할 수 있다. 메모리 인터페이스(216)는 제어 인터페이스(210)의 구현과 유사한 기술들 및 기법들로 구현될 수 있다.
호스트 인터페이스 유닛(208)은 도 1의 호스트 시스템(108)이 메모리 제어기(104)와 인터페이스하고 상호작용하게 한다. 호스트 인터페이스 유닛(208)은 호스트 인터페이스 유닛(208)과 호스트 시스템(108) 사이의 통신 메커니즘을 제공하기 위해 호스트 인터페이스(218)를 포함한다.
제어 유닛(202)은 메모리 제어기(104)에 의해 발생된 제어 또는 상태 정보를 호스트 시스템(108)에 보내도록 호스트 인터페이스 유닛(208)을 동작시킬 수 있다. 제어 유닛(202)은 또한 메모리 제어기(104)의 다른 기능들을 위한 소프트웨어(212)를 실행할 수 있다. 제어 유닛(202)은 메모리 인터페이스 유닛(206)을 통해 메모리 어레이(106)와 상호작용하기 위해 소프트웨어(212)를 더 실행할 수 있다.
메모리 제어기(104) 내의 기능 유닛들은 다른 기능 유닛들과 개별적으로 및 독립적으로 작업할 수 있다. 예시의 목적들을 위해, 메모리 제어기(104)는 호스트 시스템(108) 및 메모리 어레이(106)를 갖는 메모리 제어기(104)의 동작에 의해 설명된다. 메모리 제어기(104), 호스트 시스템(108), 및 메모리 어레이(106)는 메모리 제어기(104)의 모듈들 및 기능들 중 어떤 것을 동작시킬 수 있다.
이제 도 3을 참조하면, 드라이브 마모의 함수로서 드라이브 성능을 표시한 차트가 도시된다. 전기 시스템은 점진적 마모, 성장 결함들의 수, 성장 결함들의 변화율, 및 판독 재시도들의 수를 포함하는 다수의 메트릭들 및 나이 기준들의 조합을 사용하여 드라이브 나이를 추적할 수 있다.
드라이브 나이는 이미 사용된 저장 장치 드라이브의 예상된 수명의 퍼센티지이다. 예를 들어, 드라이브 나이는 0과 100 사이의 정수로서 표시될 수 있다. 또 하나의 예에서, 드라이브 나이는 0과 10,000 사이, 또는 보다 일반적으로 0과 최대 나이 사이의 정수로서 표시된다. 드라이브 나이는 드라이브 나이에 의해 표시된 최대 나이의 퍼센티지가 고갈된 저장 장치 드라이브의 수명의 퍼센티지에 대응하도록 저장 장치 드라이브의 수명의 "임계값"을 표시한다.
드라이브 나이는 누적된 프로그램/소거 사이클들에 기초한 추정과 같은, 저장 장치 드라이브의 여러 나이 기준들의 최대 추정을 포함할 수 있다. 나이 기준은 프로그램/소거 스케일 팩터가 110인 경우에, 기준이 0 내지 110의 범위(또는 보다 일반적으로 0 내지 최대 나이의 1.1배)이지만 드라이브 나이는 0-100(또는 보다 일반적으로 0 내지 최대 나이)으로 제한되는 것과 같은 보다 큰 범위를 가질 수 있다.
프로그램/소거 사이클은 데이터가 소거 블록 내에서 어떻게 대체되는지의 기본 레벨 동작이다. NAND와 같은 메모리 유형들은 제한된 수의 유용한 프로그램/소거 사이클들 또는 PE 사이클들을 갖는다.
드라이브 나이는 또한 저장 장치 드라이브 내의 성장 결함들의 수의 나이 기준에 기초한 드라이브 수명의 추정을 포함할 수 있다. 성장 결함은 예상된 것보다 적은 프로그램/소거 사이클들 이후에 실패한 소거 블록으로서 정의된다.
예를 들어, 전기 시스템은 데이터를 신뢰성있게 유지하는 드라이브의 능력과 마모된 플래시에 액세스한 것으로부터 비롯된 요구된 배경 작업 및 재시도들을 고려하여 허용가능한 성능 레벨에서 호스트 동작들을 서비스하는 드라이브의 능력 둘 다에 관해 드라이브의 예상된 수명을 추적할 수 있다.
드라이브가 데이터 손실의 위험이 있기 전에 선진의 에러 및 복구 및 플래시 구성으로 인해 성능은 저하하기 시작할 것이다. 성능이 너무 많이 영향을 받을 때 추정하는 것은 저장 장치 드라이브의 계속된 사용 및 신뢰성을 보장하는 데 중요하다. 드라이브 마모의 함수로서의 이 저장 장치 드라이브 성능 거동은 도 3에 나타낸 차트에 의해 예시된다.
예를 들어, 저장 장치 드라이브의 관찰된 성능은 저장 장치 드라이브가 계속 마모함에 따라 감소할 수 있다. 관찰된 성능이 최대 허용가능한 성능 임계값 아래로 떨어질 때, 드라이브 나이는 사용된 수명의 100퍼센트에 있을 수 있다.
저장 장치 드라이브 거동에 기초하여, 드라이브의 예상된 수명의 퍼센티지를 추정하는 방법은 소거 블록의 가끔의 조기 불량으로서 정의된 각각의 프로그램/소거 사이클 및 성장 결함들로 발생하는 점진적 마모에 의존할 수 있다.
관련된 드라이브 기준들 또는 메트릭들과 같은 다른 유형들의 나이 기준들은 성장 결함들의 수 및 저장 장치 드라이브의 판독 재시도들의 수의 변화율을 포함하여 사용될 수 있다. 드라이브 나이는 이들 드라이브 기준 또는 메트릭의 최대를 계산함으로써 추정될 수 있다.
예를 들어, 드라이브 나이는 점진적 마모 식이라고 하는 아래의 식(1)을 사용하여 누적된 프로그램/소거 사이클들에 기초한 추정으로서 계산될 수 있다는 것이 판명되었다:
PE 스케일 팩터 또는 프로그램 소거 사이클 스케일 팩터는 점진적 마모 드라이브 나이 추정에 주어진 상대적 가중으로서 정의된다. 측정된 총 PE는 계산의 시간 동안에 전체 저장 장치 드라이브 상의 각각의 소거 블록 상에 발생한 프로그램/소거 사이클들의 총수로서 정의된다.
소거 블록 수명 PE는 소거 블록이 지속할 수 있는 프로그램/소거 사이클들의 추정된 수로서 정의된다. 총 소거 블록들은 저장 장치 드라이브 내의 소거 블록들의 총수로서 정의된다.
또한, 드라이브 나이는 성장 결함 식이라고 하는 아래의 식(2)를 사용하여 성장 결함들의 수에 기초한 추정으로서 계산될 수 있다는 것이 판명되었다:
결함 스케일 팩터는 성장 결함 추정 또는 성장 결함 나이 기준에 주어진 상대적 가중으로서 정의된다. 성장 결함들의 수는 계산의 현재 시간에서 드라이브 상에 발생한 성장 결함들의 수로서 정의된다.
성장 결함들의 최대 허용된 수는 그것의 수명 중에 저장 장치 드라이브 상에 허용된 성장 결함들의 최대 수이다. 성장 결함들의 최대 허용된 수는 미리 정해진 값일 수 있다.
드라이브 나이는 프로그램/소거 사이클들 및 성장 결함들을 포함하는, 플래시 메모리가 마모하는 방식들에 공동으로 기초한다는 것이 판명되었다. 이 방식으로, 각각의 드라이브는 나이 기준이 그 때 더 우세한 것이 어느 것이든지에 기초하여 현재의 나이를 가질 것이다.
이제 도 4를 참조하면, 저장 장치 드라이브 나이의 함수로서 성장 결함들의 수를 표시한 차트가 도시된다. 단위 시간 당 새로운 또는 성장한 결함들의 수로서 정의된 결함률은 (시간에 따른 드라이브의 비교적 일정한 사용을 가정하여) 저장 장치 드라이브 사용의 함수로서 증가한다는 것이 판명되었다.
예를 들어, 결함률은 어느 주어진 시간에서의 결함률에 기초하여 드라이브 나이의 또 하나의 추정을 제공하는 데 사용될 수 있다. 드라이브 나이의 함수로서의 저장 장치 드라이브 거동은 도 4에 나타낸 차트에 의해 예시된다.
도면에서, 곡선 A는 결함들의 수가 나이에 따라 증가하는 저장 장치 드라이브를 도시한다. 보다 의미있게는, 점선으로 표시된 것과 같은, 곡선 A의 기울기는 결함률을 표시한다. 이것은 시간에 따라 증가하는 것을 알 수 있다.
곡선 B는 더 빠르게 노후되는 또 하나의 저장 장치 드라이브를 표시한다. 피봇 점인, 2개의 곡선들이 발산하는 지점에서, 곡선 B의 기울기는 곡선 A보다 가파르다. 이것은 결함률이 곡선 A보다 곡선 B에 대해 더 높다는 것을 보여준다. 결함률의 이 증가는 드라이브 B가 드라이브 A보다 높은 드라이브 나이를 갖는다는 것으로 표시하는 데 사용될 수 있다.
드라이브 나이는 다중 드라이브들의 드라이브 수명을 비교하기 위해 사용되는 것뿐만 아니라 단일 드라이브의 상태(health)를 모니터하는 데 사용될 수 있다는 것이 판명되었다. 예를 들어, 저장 장치 드라이브 및 또 하나의 저장 장치 드라이브의 드라이브 나이는 각각의 드라이브의 수명 기간을 서로 비교하기 위해 결정될 수 있다. 드라이브 나이는 단일 드라이브의 현재 상태를 표시하는 것뿐만 아니라 다중 드라이브들의 드라이브 수명 또는 나이를 비교하는 데 있어서 균일하고 일관된 메트릭을 제공한다. 드라이브 나이는 저장 장치들의 드라이브 수명을 보존하기 위해 드라이브 스와핑 및 드라이브 나이 레벨링 구성 응용들을 제공한다.
이제 도 5를 참조하면, 결함률의 함수로서 드라이브 나이를 표시한 차트가 도시된다. 이 차트는 결함률이 저장 장치 드라이브의 수명에 걸쳐 상승하고 결함률은 드라이브 나이를 추정하는 데 사용될 수 있다는 것이 판명되었다는 것을 보여준다.
예를 들어, 드라이브 나이는 결함률 식이라고 하는 아래의 식(3)을 사용하여 추정될 수 있다는 것이 판명되었다:
결함률 스케일 팩터는 결함률 드라이브 나이 추정 또는 결함률 나이 기준의 변화에 주어진 상대적 가중으로서 정의된다. 예를 들어, 결함률 스케일 팩터는 100일 수 있고 특정한 퍼센티지로 스케일될 수 있다. 다른 나이 기준들에 대한 다른 스케일 팩터들뿐만 아니라, 결함률 스케일 팩터는 스케일 팩터가 드라이브 나이 또는 나이 추정에 더 높은 영향을 주게 하기 위해 더 높거나 낮은 값으로 설정될 수 있다. 측정된 결함률은 단위 시간당 새로운(성장한) 결함들의 수로서 정의된다.
최대 수명 종료 결함률(max end of life defect rate)은 저장 장치 드라이브가 미리 정해진 요건들에 도달하고 계속 그에 맞는 최대 결함률로서 정의된다. 예를 들어, 드라이브의 수명 종료 성능은 하루 당 저장 장치 드라이브의 소거 블록들의 1 퍼센트이도록 특정될 수 있다.
또한, 판독 재시도율 또는 재시도율 기준에 기초한 추정으로서의 드라이브 나이의 계산은 재시도율 식이라고 하는 아래의 식(4)를 사용하여 결정될 수 있다는 것이 판명되었다:
판독 재시도는 처음에 데이터를 판독할 때 생긴 문제들로 인해 메모리로부터 다시 데이터 바이트들을 판독하는 것으로서 정의된다.
측정된 재시도율(판독 동작들 당 재시도들)은 제출된 판독 동작들 당 초과된 에러 정정 코드(ECC) 제한으로 인한 판독 불량들의 수로서 정의된다.
재시도율 스케일 팩터는 재시도율 드라이브 나이 추정 또는 재시도율 나이 기준에 주어진 상대적 가중으로서 정의된다. 예를 들어, 재시도율 스케일 팩터는 100일 수 있고 재시도율이 드라이브 나이에 더 높거나 낮은 영향을 주게 하기 위해 특정한 더 높거나 낮은 퍼센티지로 스케일될 수 있다.
최대 수명 종료 재시도율(max end of life retry rate)은 저장 장치 드라이브가 성능 요건에 도달하고 계속 그에 맞을 수 있는 최대 재시도율로서 정의된다. 예를 들어, 저장 장치 드라이브의 수명 종료 성능은 수명 개시 성능 사양(begin-of-life performance specification)의 5 퍼센트 내에 머무르도록 특정될 수 있다.
또한, 재시도들에 의해 발생된 시간 오버헤드에 따라, 드라이브가 미리 정해진 사양 요건들에서 동작하고 그 요건들 내에 머무를 수 있는 판독 동작 당 재시도들의 최대 수를 계산하는 것이 가능하다는 것이 판명되었다. 예를 들어, 일부 저장 장치 드라이브들은 성능이 상당히 영향받기 전에 천번의 판독 동작들 당 많아야 1번의 재시도를 허용할 수 있다.
PE 스케일 팩터, 결함 스케일 팩터, 결함률 스케일 팩터, 및 재시도율 스케일 팩터를 포함하는, 나이 기준들의 스케일 팩터들은 스케일 팩터가 드라이브 나이에 더 높은 영향을 주게 하도록 조정될 수 있다는 것이 판명되었다. 예를 들어, 스케일 팩터는 저장 장치 드라이브의 실제 불량 스테이지에 비교하여 드라이브 나이에 대한 에러의 마진을 포함시키는데 사용될 수 있다. 또한 예를 들어, 드라이브 나이는 저장 장치의 실제 불량 스테이지 전의 스케일 팩터의 사용에 의해 100으로 추정될 수 있다. 스케일 팩터에 의해 제공된 에러의 마진은 저장 장치가 드라이브의 실제 불량 전에 신뢰성있고 예측가능하게 계속 수행할 수 있다는 것을 보장한다.
예를 들어, PE 스케일 팩터는 100일 수 있고 결함 스케일 팩터는 110일 수 있다. 이 방식으로, 드라이브 나이는 더 많은 성장 결함들이 여전히 허용되면서 100에 도달할 것이다. 이 마진은 저장 장치 드라이브가 100의 드라이브 나이에 도달한 후에 짧은 시간 동안 여전히 사용될 수 있도록 제공되어, 저장 드라이브 신뢰성을 보장하고, 데이터의 손실을 피하고, 드라이브를 위한 교체 시간을 제공한다.
이제 도 6을 참조하면, 전자 시스템의 저장 장치 드라이브 내의 저장 블록들의 예시도가 도시된다. 이 예는 도 1의 메모리 어레이 내에 하우징될 수 있는, 저장 장치 드라이브 내의 페이지들 및 소거 블록들을 포함한다.
페이지는 소거 블록에서 그로부터 판독되거나 그에 기입될 수 있는 데이터 바이트들의 최소 그룹으로서 정의된다. 소거 블록은 한 번에 소거될 수 있는 페이지들의 최소 수를 포함하는, 페이지들의 그룹이다.
이제 도 7을 참조하면, 전기 시스템의 도 2의 메모리 제어기의 제어 흐름이 도시된다. 메모리 제어기는 저장 장치 드라이브의 다양한 나이 기준들에 기초하여 드라이브 나이를 계산하는 제어 흐름을 실행할 수 있다. 제어 흐름은 "드라이브 나이 = 드라이브 나이 + 1"의 표현들이 드라이브 나이의 변수는 1만큼 증가된다는 것을 의미하도록 의사 코드를 사용할 수 있다.
드라이브 나이는 측정된 총 PE에 기초한 드라이브 나이, 또는 성장 결함들의 수에 기초한 드라이브 나이와 같은, 저장 장치 드라이브의 다양한 근본적인 장치 나이 기준들의 최대이다. 이들 나이 기준 각각은 그 자신의 스케일 팩터를 갖는다. 스케일 팩터는 그 특정한 기준이 [0, 100] 범위의 외부에 있지만 최종 드라이브 나이는 [0, 100]으로 제한되게 할 수 있다.
드라이브 나이는 부동점 표현 또는 소수 부분을 포함하는 고정점 표현에 걸친 계산 및 저장에서의 대응하는 장점들과 함께, 고유한 정수일 수 있다는 것이 판명되었다.
제어 흐름은 "시작"에서 개시하고 제1 드라이브 나이 + 1 단계로 이어질 수 있다. 제1 드라이브 나이 + 1 단계 및 기능은 드라이브 나이 계산들의 개시에서 바이어스를 제공한다. 계산들의 개시에서 바이어스를 제공하고(여기서 드라이브 나이는 근본적인 나이 기준들을 계산하기 전에 1만큼 증가됨), 다음에 그것을 나중에 제거함으로써(여기서 드라이브 나이는 근본적인 나이 기준들을 계산한 후에 1만큼 감소됨), 근본적인 나이 기준들의 계산들이 단순화된다는 것이 판명되었다.
예를 들어, 드라이브 나이는 드라이브의 수명의 1%가 사용될 때까지 0으로 남고, 단지 다음에 1로 증가하는 것이 바람직할 수 있다. 드라이브 나이가 정수 계산으로서 구현되지 않았더라면, 이 거동을 발생하기 위해 계산의 끝에서 플로어 함수를 가졌을 것이다. 그것을 수행하는 방식은 계산들을 위로 바이어스하고 다음에 바이어스를 계산들의 끝에서 제거하는 것이다.
또한, 계산들의 개시에서 한번 드라이브 나이를 바이어스하고, 모든 계산들의 끝에서 바이어스를 제거함으로써, 개별적인 계산들 각각에 대해 이 연산을 수행하여야 하는 단계가 피해진다는 것이 판명되었다. 또한, 드라이브 나이를 바이어스하는 것은 간단히 1만큼 증가하고 나중에 감소하는 것을 포함시킨다. 그러나, 나이 기준 계산들에서 필요로 하는 바이어스는 이 기본 예보다 더 복잡할 것이다.
제어 흐름은 식 1 단계 또는 기능으로 진행할 수 있다. 메모리 제어기는 점진적 마모 또는 누적된 프로그램/소거 사이클들에 기초하여 드라이브 나이를 결정하기 위해 도 3으로부터 식(1)을 실행하거나 계산할 수 있다. 식(1)은 다음과 같이 제산들(division operations)을 피하기 위해 수정될 수 있다:
나이 기준의 계산들을 수정된 식(1)에 현재 나타난 것들로 재배열함으로써 제산들이 요구되지 않는다는 이점이 제공된다는 것이 판명되었다. 가장 분명한 구현들에서 사용되는 제산들은 대부분의 하드웨어 상에서 느리고 번거롭다. 식(2), 식(3), 및 식(4)는 메모리 제어기에 의해 계산들의 처리 속도를 증가시키는, 제산들을 제거하기 위해 동일한 방식으로 재배열될 수 있다.
식(1)이 참인 것으로 판명되면, 제어 흐름은 제2 나이 + 1 단계로 진행할 수 있다. 드라이브 나이가 제2 나이 + 1 단계에 의해 1만큼 증가된 후에, 제어 흐름은 드라이브 나이 - 1 단계로 진행할 수 있다. 식(1)이 거짓인 것으로 판명되면, 제어 흐름은 식(2)로 진행할 수 있다.
메모리 제어기는 성장 결함들의 수에 기초하여 드라이브 나이를 결정하기 위해 식(2)를 실행하거나 계산할 수 있다. 식(2)는 다음과 같이 제산들을 피하기 위해 수정될 수 있다:
식(2)가 참인 것으로 판명되면, 제어 흐름은 제3 드라이브 나이 + 1 단계로 진행할 수 있다. 드라이브 나이가 1만큼 증가된 후에, 제어 흐름은 드라이브 나이 - 1 단계로 진행할 수 있다. 식(2)가 거짓으로 판명되면, 제어 흐름은 식(3)으로 진행할 수 있다.
메모리 제어기는 결함률의 변화에 기초하여 드라이브 나이를 결정하기 위해 식(3)을 실행하거나 계산할 수 있다. 식(3)은 다음과 같이 제산들을 피하기 위해 수정될 수 있다:
식(3)이 참인 것으로 판명되면, 제어 흐름은 제4 드라이브 나이 + 1 단계로 진행할 수 있다. 드라이브 나이가 1만큼 증가된 후에, 제어 흐름은 드라이브 나이 - 1 단계로 진행할 수 있다. 식(3)이 거짓인 것으로 판명되면, 제어 흐름은 식(4)로 진행할 수 있다.
메모리 제어기는 재시도율에 기초하여 드라이브 나이를 결정하기 위해 식(4)를 실행하거나 계산할 수 있다. 식(4)는 다음과 같이 제산들을 피하기 위해 수정될 수 있다:
식(4)가 참인 것으로 판명되면, 제어 흐름은 제5 드라이브 나이 + 1 단계로 진행할 수 있다. 드라이브 나이가 1만큼 증가된 후에, 제어 흐름은 드라이브 나이 - 1 단계로 진행할 수 있다. 식(4)가 거짓인 것으로 판명되면, 제어 흐름은 드라이브 나이 - 1 단계로 진행할 수 있다.
제어 흐름은 제2 드라이브 나이 + 1 단계, 제3 드라이브 나이 + 1 단계, 제4 드라이브 나이 + 1 단계, 또는 제5 드라이브 나이 + 1 단계로부터, 식(4)로부터 드라이브 나이 - 1 단계로 진행할 수 있다. 제어 흐름의 개시에서 포함된 + 1의 바이어스는 드라이브 나이 - 1 단계 동안에 제거된다.
제어 흐름은 드라이브 나이 - 1 단계 이후에 최대 드라이브 나이 단계로 진행할 수 있다. 메모리 제어기는 드라이브 나이를 최대 드라이브 나이와 비교한다. 최대 드라이브 나이는 미리 정해진 값일 수 있다. 예를 들어, 최대 드라이브 나이는 100 또는 99일 수 있다.
드라이브 나이가 최대 드라이브 나이보다 많다면, 저장 장치 드라이브는 최대 드라이브 나이에 도달한다. 이 상황에서, 드라이브 나이는 최대 드라이브 나이와 동일하게 설정된다. 이 상황에 기초하여, 저장 장치 드라이브의 임박한 불량(imminent failure)에 대해 사용자에게 통지 또는 경고가 발생될 수 있고, 제어 흐름은 "완료"에서 끝날 수 있다. 드라이브 나이가 최대 드라이브 나이보다 적으면, 제어 흐름은 "완료"에서 끝날 수 있다.
나이 기준들을 순차적으로 계산하고, 드라이브 나이가 증가되면 나머지 나이 기준들을 넘어 스킵함으로써, 계산들은 절약될 수 있고, 저장 장치 드라이브 나이는 어떤 "미싱 코드들"을 갖지 않을 것이라는(드라이브 나이는 값 [0, 100] 내의 모든 값에 대해 취할 것이다) 것이 판명되었다.
예를 들어, 식(1) 내지 식(4)는 이전의 식이 거짓인 것으로 판명되면 순차적으로 계산된다. 현재의 식이 참인 것으로 판명되면 후속하는 식들은 스킵된다. 식들의 순차적 계산은 또한 시간에 따라, 드라이브 나이로서 보고될, 기준들의 모두의 최대를 자동적으로 선택할 것이라는 것이 발견되었다. 각각의 기준에서 사용된 상대적 스케일 팩터들은 일부 기준들이 결과에서 보다 더 큰 의미를 갖게 한다.
드라이브 나이를 정수 퍼센티지로서 계산하면 드라이브 나이는 단조롭게 비감소하는 값으로서 제공되고; 이것은 단일 드라이브의 수명 동안의 드라이브 나이를 위해, 그리고 다중 저장 장치 드라이브들을 서로 비교하기 위해 바람직한 특성들이라는 것이 또한 판명되었다. 정수 퍼센티지들로서의 드라이브 나이 결과들은 일관성있고 예측가능하며, 이것은 저장 장치 드라이브의 드라이브 수명의 신뢰성 및 예측가능성을 증가시킨다.
각각의 업데이트에 대해 그것을 직접 계산하는 것 대신에 드라이브 나이를 반복적으로 업데이트함으로써, 전자 시스템은 계산적 연산들을 절약하고 단일의 정수 단위 증가들로 인해 단조롭게 비감소하는 것이 보장된 드라이브 나이를 산출한다는 것이 또한 판명되었다.
이제 도 8을 참조하면, 전기 시스템의 도 2의 메모리 제어기의 제어 흐름의 제2 예가 도시된다. 메모리 제어기는 드라이브 나이를 결정하기 위해 제2 제어 흐름을 실행할 수 있다. 제어 흐름은 검출 모듈, 바이어스 모듈, 식 모듈, 증가 모듈, 제거 모듈, 최대 드라이브 모듈, 및 통지 모듈을 포함할 수 있다. 제2 예의 제어 흐름은 단계들 및 기능들이 모듈로 분할된 것을 제외하고 도 7의 제어 흐름과 유사하다.
제어 흐름에서, 예로서, 각각의 모듈은 순서에 의해 표시되고 계속적으로 더 높은 모듈들은 서로를 따른다. 제어 흐름은 명시적으로 다르게 표시되지 않는다면 하나의 모듈로부터 다음의 순차적 모듈로 통과할 수 있다. 도 2의 메모리 제어기는 검출 모듈, 바이어스 모듈, 식 모듈, 증가 모듈, 제거 모듈, 최대 드라이브 모듈, 및 통지 모듈을 실행할 수 있다.
검출 모듈은 추정을 위한 계산 시에 현재의 드라이브 나이를 상기하거나 액세스할 수 있다. 바이어스 모듈은 드라이브 나이를 1만큼 증가시켜서 바이어스를 할당한다.
식 모듈은 드라이브 나이를 결정하기 위해 식(1), 식(2), 식(3), 및 식(4)를 실행할 수 있다. 식들은 제산들을 제거하기 위해 수정될 수 있다. 근본적인 나이 기준들의 계산들을 도 7에 대한 섹션 하에서 나열된 것들로 재배열함으로써, 제산들은 요구되지 않고, 처리 시간이 빨라진다는 것이 판명되었다.
예를 들어, 가장 분명한 구현들에서 사용될 제산들은 대분분의 하드웨어 상에서 느리고 번거롭다. 식(1), 식(2), 식(3), 및 식(4)는 제산들을 제거하기 위해 동일한 방식으로 재배열될 수 있어서, 계산들의 처리 속도를 증가시킨다.
식 모듈은 나이 기준들에 기초하여 식들의 각각에 대한 계산들을 실행하기 위한 서브 모듈들을 포함할 수 있다. 예를 들어, "식 1" 서브 모듈은 식(1)에 대한 계산들을 실행할 수 있고 전기 시스템은 식(2), 식(3), 및 식(4)에 대한 다른 서브 모듈들을 포함할 수 있다.
비교 모듈은 드라이브 나이 추정들 중 최대를 결정하기 위해 각 식에 의해 발생된 메트릭들을 비교할 수 있다. 식(1), 식(2), 식(3), 및 식(4)로부터의 추정들 중 최대는 드라이브 나이로서 사용될 것이다.
증가 모듈은 식 모듈로부터의 식들 중 어느 것이 참인 것으로 판명되면 드라이브 나이를 1만큼 증가시킬 수 있다. 증가 모듈은 식 모듈 및 제거 모듈에 결합될 수 있다.
제거 모듈은 바이어스 모듈에 의해 드라이브 나이에 가산된 바이어스를 제거한다. 제거 모듈은 도 7의 드라이브 나이 - 1 단계를 수행할 수 있다. 제거 모듈은 식 모듈, 증가 모듈, 및 최대 드라이브 모듈에 결합될 수 있다.
최대 드라이브 모듈은 드라이브 나이가 최대 드라이브 나이 또는 최고 드라이브 나이 이상인지를 결정한다. 최대 드라이브 모듈은 드라이브 나이가 최대 드라이브 나이에 도달했는지를 검출할 수 있다. 최대 드라이브 나이는 100 또는 99퍼센트와 같은 미리 정해진 퍼센티지일 수 있다. 최대 드라이브 모듈은 드라이브 나이를 최대 드라이브 나이와 동일하게 설정하기 위한 설정 모듈을 포함할 수 있다.
통지 모듈은 저장 장치 드라이브의 드라이브 나이가 최대 드라이브 나이에 도달했다는 통지 또는 경고를 발생할 수 있다. 이것은 사용자 경고가 정보를 백업하고 저장 장치 드라이브를 제때에 교체하게 한다.
메모리 제어기의 제어 흐름은 예로서 모듈 기능들 및 순서를 설명한다. 모듈들은 다르게 분할될 수 있다. 예를 들어, 도 8에서 설명된 모듈들은 하나의 모듈 또는 더 적은 수의 모듈들로 구현될 수 있다. 모듈들 각각은 다른 모듈들과 개별적으로 및 독립적으로 동작할 수 있다.
도 8의 모듈들은 메모리 제어기 내의 하드웨어 구현들일 수 있거나 전자 시스템 내에 있지만 메모리 제어기 밖에 있는 하드웨어로서 구현될 수 있다. 메모리 제어기의 모듈들은 하드웨어, 하드웨어 상에서 실행하거나 그에 결합된 소프트웨어, 또는 이들의 조합일 수 있다.
이제 도 9를 참조하면, 본 발명의 추가 실시예에서의 도 1의 전자 시스템의 동작의 방법의 플로우 차트가 도시된다. 이 방법은 한 블록에서 나이 기준을 계산하는 단계; 및 다른 블록에서 나이 기준에 기초하여 드라이브 나이를 결정하는 단계를 포함한다.
그러므로, 본 발명의 전자 시스템은 판독 방해 관리 메커니즘(read disturb management mechanism)을 갖는 전자 시스템에 대한 중요하고 지금까지 알려지지 않고 이용가능하지 않은 해결책들, 능력들, 및 기능적 양태들을 제공한다는 것이 발견되었다. 결과적인 방법, 프로세스, 장치, 디바이스, 제품, 및/또는 시스템은 간단하고, 비용 효과적이고, 복잡하지 않고, 고도로 다기능이고, 정확하고, 민감하고, 효과적이고, 용이하고, 효율적이고, 경제적인 제조, 응용, 및 이용을 위해 공지된 구성 소자들을 적응시킴으로써 구현될 수 있다.
본 발명의 또 하나의 중요한 양태는 비용을 줄이고, 시스템을 단순화하고, 성능을 향상시키는 역사적 트렌드를 가치있게 지원하고 서비스하는 것이다. 본 발명의 이들 및 다른 가치있는 양태들은 결과적으로 기술의 상태를 적어도 다음 레벨로 나아가게 한다.
용어 "제1", "제2" 등이 다양한 요소들을 설명하기 위해 여기에 사용될 수 있지만, 이들 요소는 이들 용어에 의해 제한되어서는 안 된다는 것을 이해할 것이다. 이들 용어는 단지 한 요소를 다른 요소와 구별하기 위해 사용된다. 예를 들어, "제1 나이 기준"의 모든 발생들이 일관되게 재명명되고 "제2 나이 기준"의 모든 발생들이 일관되게 재명명되는 한, 본 설명의 의미를 변화시키지 않고서, 제1 나이 기준은 제2 나이 기준이라고 할 수 있고, 유사하게, 제2 나이 기준은 제1 나이 기준이라고 할 수 있다. 제1 나이 기준 및 제2 나이 기준은 둘 다 나이 기준이지만, 이들은 동일한 나이 기준은 아니다.
여기에 사용된 용어는 단지 특정한 실시예를 설명하기 위한 목적을 위한 것이고 청구범위를 제한하려는 것은 아니다. 실시예들의 설명 및 첨부된 청구범위에서 사용된 바와 같이, 문맥이 분명히 달리 표시하지 않는다면, 단수 표현은 역시 복수 형태를 포함하는 것으로 의도된다. 여기에 사용된 것과 같은 표현 "및/또는"은 하나 이상의 관련된 나열된 품목들 중 하나 이상의 어떤 및 모든 가능한 조합들을 의미하고 포함한다는 것을 또한 이해할 것이다. 본 명세서에서 사용될 때, "포함한다" 및/또는 "포함하는"이라는 표현은 기술된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 소자들의 존재를 명시하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 소자들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는다는 것을 더 이해할 것이다.
여기에 사용된 바와 같이, "가정문(if)"은 선행하는 기술된 조건이 문맥에 따라 참인 것으로 "할 때", 또는 "할 시", 또는 "결정하는 것에 응답하여" 또는 "결정에 따라" 또는 "검출하는 것에 응답하여"를 의미하는 것으로 해석될 수 있다. 유사하게, "[선행하는 기술된 조건이 참]이라고 결정된다면" 또는 [선행하는 기술된 조건이 참]이라면" 또는 "[선행하는 기술된 조건이 참일] 때"는 선행하는 기술된 조건이 문맥에 따라 참인 것으로 "결정할 때" 또는 "결정하는 것에 응답하여" 또는 "결정에 따라" 또는 "검출할 때" 또는 "결정하는 것에 응답하여"를 의미하는 것으로 해석된다.
설명의 목적을 위한 상기 설명은 특정한 실시예들을 참조하여 기술되었다. 그러나, 상기 예시적 논의들은 청구범위를 개시된 정밀한 형태로 한정하거나 제한하려는 것은 아니다. 많은 수정들 및 변화들이 상기 교시들에 비추어서 가능하다. 실시예들이 동작의 원리들 및 실제 응용들을 가장 잘 설명하기 위해 선택되어 설명되었고, 그에 의해 본 기술의 통상의 기술자에 의해 가능하게 된다.
Claims (20)
- 전자 시스템의 동작 방법으로서,
저장 장치 드라이브(storage drive)의 2개 이상의 나이 기준들(age criteria)을 결정하는 단계;
제1 구성가능한 팩터에 상기 2개 이상의 나이 기준들 중 제1 나이 기준을 곱함으로써 제1 스케일링된 나이 기준을 결정하고,
상기 저장 장치 드라이브의 드라이브 나이에 상기 저장 장치 드라이브에 대한 제1 최대 나이 기준을 곱함으로써 제1 드라이브 나이 표시자를 결정하고 - 상기 제1 최대 나이 기준은 상기 제1 나이 기준의 최대 값임 -,
상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상이라는 결정에 따라, 상기 드라이브 나이를 증가시키는 것
에 의해 상기 저장 장치 드라이브의 상기 2개 이상의 나이 기준들에 따라 상기 저장 장치 드라이브의 드라이브 나이를 결정하는 단계; 및
상기 드라이브 나이를 결정한 후에, 상기 증가된 드라이브 나이가 상기 제1 나이 기준과 관련된 제1 최대 드라이브 나이 기준 이상이라는 결정에 따라, 상기 저장 장치 드라이브의 상기 드라이브 나이가 상기 제1 최대 드라이브 나이 기준에 도달하였다는 통지 또는 상기 저장 장치 드라이브의 임박한 불량(imminent failure)의 통지를 발생하는 단계
를 포함하는 방법. - 제1항에 있어서, 상기 2개 이상의 나이 기준들은 재시도율(retry rate)을 포함하는 방법.
- 제1항에 있어서, 상기 2개 이상의 나이 기준들은 상기 저장 장치 드라이브의 각각의 나이 기준 각자의 상대적 중요성을 조정하기 위해 각자의 구성가능한 팩터들에 의해 스케일링되는 방법.
- 제1항에 있어서,
상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상이 아니라는 결정에 따라,
제2 구성가능한 팩터에 상기 2개 이상의 나이 기준들 중 제2 나이 기준을 곱함으로써 제2 스케일링된 나이 기준을 결정하고;
상기 드라이브 나이에 상기 저장 장치 드라이브에 대한 제2 최대 나이 기준을 곱함으로써 제2 드라이브 나이 표시자를 결정하고 - 상기 제2 최대 나이 기준은 상기 제2 나이 기준의 최대 값임 -;
상기 제2 스케일링된 나이 기준이 상기 제2 드라이브 나이 표시자 이상이라는 결정에 따라, 상기 드라이브 나이를 증가시키는 것
을 포함하는 하나 이상의 동작을 수행하는 단계를 더 포함하는 방법. - 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 드라이브 나이에 대한 새로운 값을 결정하기 위해 상기 결정된 드라이브 나이를 업데이트하는 단계를 포함하고, 상기 업데이트하는 단계 동안에 상기 드라이브 나이는 감소하지 않는 방법.
- 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 2개 이상의 나이 기준들은 결함률(defect rate)을 포함하는 방법.
- 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 저장 장치 드라이브는 하나 이상의 플래시 메모리 디바이스를 포함하는 방법.
- 전자 시스템으로서,
하나 이상의 프로세서; 및
상기 하나 이상의 프로세서에 의해 실행되는 하나 이상의 프로그램을 저장하는 메모리
를 포함하고, 상기 하나 이상의 프로그램은:
저장 장치 드라이브의 2개 이상의 나이 기준들을 결정하고;
제1 구성가능한 팩터에 2개 이상의 나이 기준들 중 제1 나이 기준을 곱함으로써 제1 스케일링된 나이 기준을 결정하고,
상기 저장 장치 드라이브의 드라이브 나이에 상기 저장 장치 드라이브에 대한 제1 최대 나이 기준을 곱함으로써 제1 드라이브 나이 표시자를 결정하고 - 상기 제1 최대 나이 기준은 상기 제1 나이 기준의 최대 값임 -,
상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상이라는 결정에 따라, 상기 드라이브 나이를 증가시키는 것
에 의해 상기 저장 장치 드라이브의 상기 2개 이상의 나이 기준들에 따라 상기 저장 장치 드라이브의 드라이브 나이를 결정하고; 그리고
상기 드라이브 나이를 결정한 후에, 상기 증가된 드라이브 나이가 상기 제1 나이 기준과 관련된 제1 최대 드라이브 나이 기준 이상이라는 결정에 따라, 상기 저장 장치 드라이브의 상기 드라이브 나이가 상기 제1 최대 드라이브 나이 기준에 도달하였다는 통지 또는 상기 저장 장치 드라이브의 임박한 불량(imminent failure)의 통지를 발생
하기 위한 명령어들을 포함하는 전자 시스템. - 제8항에 있어서, 상기 2개 이상의 나이 기준들은 재시도율을 포함하는 전자 시스템.
- 제8항에 있어서, 상기 2개 이상의 나이 기준들은 상기 저장 장치 드라이브의 각각의 나이 기준 각자의 상대적 중요성을 조정하기 위해 각자의 구성가능한 팩터들에 의해 스케일링되는 전자 시스템.
- 제8항에 있어서, 상기 하나 이상의 프로그램은:
상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상이 아니라는 결정에 따라,
제2 구성가능한 팩터에 상기 2개 이상의 나이 기준들 중 제2 나이 기준을 곱함으로써 제2 스케일링된 나이 기준을 결정하고;
상기 드라이브 나이에 상기 저장 장치 드라이브에 대한 제2 최대 나이 기준을 곱함으로써 제2 드라이브 나이 표시자를 결정하고 - 상기 제2 최대 나이 기준은 상기 제2 나이 기준의 최대 값임 -;
상기 제2 스케일링된 나이 기준이 상기 제2 드라이브 나이 표시자 이상이라는 결정에 따라, 상기 드라이브 나이를 증가시키는 것
을 포함하는 하나 이상의 동작을 수행하기 위한 명령어들을 더 포함하는 전자 시스템. - 제8항 내지 제11항 중 어느 한 항에 있어서, 상기 하나 이상의 프로그램은 상기 드라이브 나이에 대한 새로운 값을 결정하기 위해 상기 결정된 드라이브 나이를 업데이트하는 명령어들을 더 포함하고, 상기 업데이트 동안에 상기 드라이브 나이는 감소하지 않는 전자 시스템.
- 제8항 내지 제11항 중 어느 한 항에 있어서, 상기 2개 이상의 나이 기준들은 결함률을 포함하는 전자 시스템.
- 제8항 내지 제11항 중 어느 한 항에 있어서, 상기 저장 장치 드라이브는 하나 이상의 플래시 메모리 디바이스를 포함하는 전자 시스템.
- 비-일시적 컴퓨터 판독가능 저장 매체로서,
전자 시스템의 하나 이상의 프로세서에 의해 실행되도록 구성된 하나 이상의 프로그램을 저장하고, 상기 하나 이상의 프로그램은:
저장 장치 드라이브(storage drive)의 2개 이상의 나이 기준들(age criteria)을 결정하고;
제1 구성가능한 팩터에 상기 2개 이상의 나이 기준들 중 제1 나이 기준을 곱함으로써 제1 스케일링된 나이 기준을 결정하고,
상기 저장 장치 드라이브의 드라이브 나이에 상기 저장 장치 드라이브에 대한 제1 최대 나이 기준을 곱함으로써 제1 드라이브 나이 표시자를 결정하고 - 상기 제1 최대 나이 기준은 상기 제1 나이 기준의 최대 값임 -,
상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상이라는 결정에 따라, 상기 드라이브 나이를 증가시키는 것
에 의해 상기 저장 장치 드라이브의 상기 2개 이상의 나이 기준들에 따라 상기 저장 장치 드라이브의 드라이브 나이를 결정하고; 그리고
상기 드라이브 나이를 결정한 후에, 상기 증가된 드라이브 나이가 상기 제1 나이 기준과 관련된 제1 최대 드라이브 나이 기준 이상이라는 결정에 따라, 상기 저장 장치 드라이브의 상기 드라이브 나이가 상기 제1 최대 드라이브 나이 기준에 도달하였다는 통지 또는 상기 저장 장치 드라이브의 임박한 불량(imminent failure)의 통지를 발생
하기 위한 명령어들을 포함하는, 비-일시적 컴퓨터 판독가능 저장 매체. - 제15항에 있어서, 상기 2개 이상의 나이 기준들은 재시도율(retry rate)을 포함하는 비-일시적 컴퓨터 판독가능 저장 매체.
- 제15항에 있어서, 상기 2개 이상의 나이 기준들은 상기 저장 장치 드라이브의 각각의 나이 기준 각자의 상대적 중요성을 조정하기 위해 각자의 구성가능한 팩터들에 의해 스케일링되는 비-일시적 컴퓨터 판독가능 저장 매체.
- 제15항에 있어서, 상기 하나 이상의 프로그램은:
상기 제1 스케일링된 나이 기준이 상기 제1 드라이브 나이 표시자 이상이 아니라는 결정에 따라,
제2 구성가능한 팩터에 상기 2개 이상의 나이 기준들 중 제2 나이 기준을 곱함으로써 제2 스케일링된 나이 기준을 결정하고;
상기 드라이브 나이에 상기 저장 장치 드라이브에 대한 제2 최대 나이 기준을 곱함으로써 제2 드라이브 나이 표시자를 결정하고 - 상기 제2 최대 나이 기준은 상기 제2 나이 기준의 최대 값임 -;
상기 제2 스케일링된 나이 기준이 상기 제2 드라이브 나이 표시자 이상이라는 결정에 따라, 상기 드라이브 나이를 증가시키는 것
을 포함하는 하나 이상의 동작을 수행하기 위한 명령어들을 더 포함하는 비-일시적 컴퓨터 판독가능 저장 매체. - 제15항 내지 제18항 중 어느 한 항에 있어서, 상기 하나 이상의 프로그램은 상기 드라이브 나이에 대한 새로운 값을 결정하기 위해 상기 결정된 드라이브 나이를 업데이트하는 명령어들을 더 포함하고, 상기 업데이트 동안에 상기 드라이브 나이는 감소하지 않는 비-일시적 컴퓨터 판독가능 저장 매체.
- 제15항 내지 제18항 중 어느 한 항에 있어서, 상기 2개 이상의 나이 기준들은 결함률을 포함하는 비-일시적 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361863411P | 2013-08-07 | 2013-08-07 | |
US61/863,411 | 2013-08-07 | ||
US14/334,324 | 2014-07-17 | ||
US14/334,324 US9361222B2 (en) | 2013-08-07 | 2014-07-17 | Electronic system with storage drive life estimation mechanism and method of operation thereof |
PCT/US2014/049731 WO2015021020A1 (en) | 2013-08-07 | 2014-08-05 | Electronic system with storage drive life estimation mechanism and method of operation thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160041954A KR20160041954A (ko) | 2016-04-18 |
KR101952001B1 true KR101952001B1 (ko) | 2019-02-25 |
Family
ID=52449615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167005712A KR101952001B1 (ko) | 2013-08-07 | 2014-08-05 | 저장 장치 드라이브 수명 추정 메커니즘을 갖는 전자 시스템 및 그 동작 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9361222B2 (ko) |
KR (1) | KR101952001B1 (ko) |
CN (1) | CN105579970B (ko) |
WO (1) | WO2015021020A1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11335446B2 (en) * | 2002-12-06 | 2022-05-17 | Quality Healthcare Intermediary, Llc | Method of optimizing healthcare services consumption |
US20140200907A1 (en) | 2013-01-16 | 2014-07-17 | American Health Data Institute, Inc. | Method of optimizing healthcare services consumption |
US9507714B2 (en) * | 2014-03-27 | 2016-11-29 | Intel Corporation | Managed runtime extensions to reduce power consumption in devices with hybrid memory |
US20170131947A1 (en) * | 2015-11-06 | 2017-05-11 | Pho Hoang | Data and collection methods to analyze life acceleration of SSD with real usages |
KR102606497B1 (ko) * | 2016-06-27 | 2023-11-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 소거 방법 |
US9678817B1 (en) | 2016-10-28 | 2017-06-13 | International Business Machines Corporation | Lifespan forecast for storage media devices |
CN110473581B (zh) * | 2018-05-09 | 2020-12-29 | 建兴储存科技(广州)有限公司 | 固态储存装置及其相关控制方法 |
JP7183844B2 (ja) * | 2019-02-08 | 2022-12-06 | 株式会社リコー | 情報処理装置、方法、およびプログラム |
US11416161B2 (en) * | 2019-06-28 | 2022-08-16 | Western Digital Technologies, Inc. | Zone formation for zoned namespaces |
WO2021040810A1 (en) * | 2019-08-23 | 2021-03-04 | Futurewei Technologies, Inc. | Device lifetime prediction |
US11494299B2 (en) | 2021-02-18 | 2022-11-08 | Silicon Motion, Inc. | Garbage collection operation management with early garbage collection starting point |
US20220300184A1 (en) * | 2021-03-19 | 2022-09-22 | Silicon Motion, Inc. | Method of performing wear-leveling operation in flash memory and related controller and storage system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100082890A1 (en) | 2008-09-30 | 2010-04-01 | Jin Gyu Heo | Method of managing a solid state drive, associated systems and implementations |
Family Cites Families (298)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4048481A (en) | 1974-12-17 | 1977-09-13 | Honeywell Information Systems Inc. | Diagnostic testing apparatus and method |
US4839587A (en) | 1988-03-29 | 1989-06-13 | Digital Equipment Corporation | Test fixture for tab circuits and devices |
JPH02128522A (ja) | 1988-11-09 | 1990-05-16 | Nakamichi Corp | デグリッチ回路 |
EP1031992B1 (en) | 1989-04-13 | 2006-06-21 | SanDisk Corporation | Flash EEPROM system |
US5210854A (en) | 1989-06-14 | 1993-05-11 | Digital Equipment Corporation | System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US5450354A (en) | 1992-08-31 | 1995-09-12 | Nippon Steel Corporation | Non-volatile semiconductor memory device detachable deterioration of memory cells |
US5311395A (en) | 1992-10-29 | 1994-05-10 | Ncr Corporation | Surface mount heat sink |
US5479638A (en) | 1993-03-26 | 1995-12-26 | Cirrus Logic, Inc. | Flash memory mass storage architecture incorporation wear leveling technique |
KR970008188B1 (ko) | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
CA2121852A1 (en) | 1993-04-29 | 1994-10-30 | Larry T. Jost | Disk meshing and flexible storage mapping with enhanced flexible caching |
JPH07336483A (ja) | 1994-06-03 | 1995-12-22 | Canon Inc | ファクシミリ装置およびメモリ管理方式 |
GB2291991A (en) | 1995-09-27 | 1996-02-07 | Memory Corp Plc | Disk drive emulation with a block-erasable memory |
US5949785A (en) | 1995-11-01 | 1999-09-07 | Whittaker Corporation | Network access communications system and methodology |
JP3197815B2 (ja) | 1996-04-15 | 2001-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 半導体メモリ装置及びその制御方法 |
GB9614551D0 (en) | 1996-07-11 | 1996-09-04 | Memory Corp Plc | Memory system |
US5930504A (en) | 1996-07-22 | 1999-07-27 | Intel Corporation | Dynamic nonvolatile memory update in a computer system |
US6381670B1 (en) | 1997-01-07 | 2002-04-30 | Aplus Flash Technology, Inc. | Flash memory array having maximum and minimum threshold voltage detection for eliminating over-erasure problem and enhancing write operation |
US6034897A (en) | 1999-04-01 | 2000-03-07 | Lexar Media, Inc. | Space management for managing high capacity nonvolatile memory |
JP3321555B2 (ja) | 1997-11-21 | 2002-09-03 | 日本オプネクスト株式会社 | 光伝送用モジュールの製造方法並びにビット・エラーレート特性検査システム |
US6091652A (en) | 1998-12-11 | 2000-07-18 | Lsi Logic Corporation | Testing semiconductor devices for data retention |
US6412080B1 (en) | 1999-02-23 | 2002-06-25 | Microsoft Corporation | Lightweight persistent storage system for flash memory devices |
US7827348B2 (en) | 2000-01-06 | 2010-11-02 | Super Talent Electronics, Inc. | High performance flash memory devices (FMD) |
US7620769B2 (en) | 2000-01-06 | 2009-11-17 | Super Talent Electronics, Inc. | Recycling partially-stale flash blocks using a sliding window for multi-level-cell (MLC) flash memory |
US7333364B2 (en) | 2000-01-06 | 2008-02-19 | Super Talent Electronics, Inc. | Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory |
KR100577380B1 (ko) | 1999-09-29 | 2006-05-09 | 삼성전자주식회사 | 플래시 메모리와 그 제어 방법 |
US6854070B2 (en) | 2000-01-25 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Hot-upgrade/hot-add memory |
US6728913B1 (en) | 2000-02-25 | 2004-04-27 | Advanced Micro Devices, Inc. | Data recycling in memory |
EP1130600A1 (en) | 2000-03-01 | 2001-09-05 | Hewlett-Packard Company, A Delaware Corporation | Data balancing scheme in solid state storage devices |
US20020056025A1 (en) | 2000-11-07 | 2002-05-09 | Qiu Chaoxin C. | Systems and methods for management of memory |
US6249434B1 (en) | 2000-06-20 | 2001-06-19 | Adc Telecommunications, Inc. | Surface mounted conduction heat sink |
US6529997B1 (en) | 2000-08-11 | 2003-03-04 | Storage Technology Corporation | Apparatus and method for writing and reading data to and from a virtual volume of redundant storage devices |
US6552581B1 (en) | 2000-08-25 | 2003-04-22 | Agere Systems Inc. | Current recycling circuit and a method of current recycling |
KR100644602B1 (ko) | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
US6763424B2 (en) | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
US20020174295A1 (en) | 2001-01-29 | 2002-11-21 | Ulrich Thomas R. | Enhanced file system failure tolerance |
US6990667B2 (en) | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US6862692B2 (en) | 2001-01-29 | 2005-03-01 | Adaptec, Inc. | Dynamic redistribution of parity groups |
US7685126B2 (en) | 2001-08-03 | 2010-03-23 | Isilon Systems, Inc. | System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system |
US6948026B2 (en) | 2001-08-24 | 2005-09-20 | Micron Technology, Inc. | Erase block management |
JP3963692B2 (ja) | 2001-10-15 | 2007-08-22 | 富士通株式会社 | 複数の情報処理装置の電源制御方法、その情報処理装置、及びプログラム |
US6618249B2 (en) | 2002-02-05 | 2003-09-09 | Quantum Corporation | Thermal cooling system for densely packed storage devices |
US20030163633A1 (en) | 2002-02-27 | 2003-08-28 | Aasheim Jered Donald | System and method for achieving uniform wear levels in a flash memory device |
WO2004001605A1 (en) | 2002-06-19 | 2003-12-31 | Tokyo Electron Device Limited | Memory device, memory managing method and program |
US7082495B2 (en) | 2002-06-27 | 2006-07-25 | Microsoft Corporation | Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory |
US6871304B2 (en) | 2002-08-12 | 2005-03-22 | Nortel Networks Limited | Method and apparatus for adjusting receiver voltage threshold and phase sampling point using FEC counts |
CA2461446A1 (en) | 2002-08-29 | 2004-03-11 | Matsushita Electric Industrial Co., Ltd. | Semiconductor memory apparatus and method for writing data into the flash memory device |
US7298888B2 (en) | 2002-10-23 | 2007-11-20 | Hamar Laser Instruments, Inc. | Electronic level sensor |
US6831865B2 (en) | 2002-10-28 | 2004-12-14 | Sandisk Corporation | Maintaining erase counts in non-volatile storage systems |
US6868473B2 (en) | 2002-10-30 | 2005-03-15 | Scientific-Atlanta, Inc. | Non-volatile memory access control |
US7350101B1 (en) | 2002-12-23 | 2008-03-25 | Storage Technology Corporation | Simultaneous writing and reconstruction of a redundant array of independent limited performance storage devices |
US6975028B1 (en) | 2003-03-19 | 2005-12-13 | Delta Design, Inc. | Thermal apparatus for engaging electronic device |
US7330927B1 (en) | 2003-05-07 | 2008-02-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Apparatus and methodology for a pointer manager |
ITMI20031126A1 (it) | 2003-06-05 | 2004-12-06 | St Microelectronics Srl | Dispositivo di memoria di massa basato su una memoria |
US20040252670A1 (en) | 2003-06-12 | 2004-12-16 | Nokia Corporation | Adaptive power margin adjustment for a 1xEV-DV system |
US6906961B2 (en) | 2003-06-24 | 2005-06-14 | Micron Technology, Inc. | Erase block data splitting |
US6903972B2 (en) | 2003-07-30 | 2005-06-07 | M-Systems Flash Disk Pioneers Ltd. | Different methods applied for archiving data according to their desired lifetime |
US7116584B2 (en) | 2003-08-07 | 2006-10-03 | Micron Technology, Inc. | Multiple erase block tagging in a flash memory device |
US20050038792A1 (en) | 2003-08-14 | 2005-02-17 | Johnson Ted C. | Apparatus and method for operating circular files |
US7454495B2 (en) | 2003-09-18 | 2008-11-18 | Raritan America, Inc. | Intelligent modular server management system for selectively operating and locating a plurality of computers |
US7012835B2 (en) | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7159068B2 (en) | 2003-12-22 | 2007-01-02 | Phison Electronics Corp. | Method of optimizing performance of a flash memory |
US7139864B2 (en) | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US20050144516A1 (en) | 2003-12-30 | 2005-06-30 | Gonzalez Carlos J. | Adaptive deterministic grouping of blocks into multi-block units |
US20080082736A1 (en) | 2004-03-11 | 2008-04-03 | Chow David Q | Managing bad blocks in various flash memory cells for electronic data flash card |
US7788427B1 (en) | 2005-05-05 | 2010-08-31 | Marvell International Ltd. | Flash memory interface for disk drive |
US7536506B2 (en) | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
KR100858756B1 (ko) | 2004-07-12 | 2008-09-16 | 가부시끼가이샤 도시바 | 저장 디바이스 및 호스트 장치 |
US8607016B2 (en) | 2004-07-21 | 2013-12-10 | Sandisk Technologies Inc. | FAT analysis for optimized sequential cluster management |
US7427027B2 (en) | 2004-07-28 | 2008-09-23 | Sandisk Corporation | Optimized non-volatile storage systems |
KR100622349B1 (ko) | 2004-08-04 | 2006-09-14 | 삼성전자주식회사 | 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법. |
US7693422B2 (en) | 2004-09-28 | 2010-04-06 | Alcatel-Lucent Usa Inc. | Constraint-based design of optical transmission systems |
US20070276973A1 (en) | 2004-09-30 | 2007-11-29 | Intel Corporation | Managing queues |
US7233497B2 (en) | 2004-10-06 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Surface mount heat sink |
JP2006107311A (ja) | 2004-10-08 | 2006-04-20 | Hitachi Ltd | ディスクアレイ装置およびその制御方法 |
US7441067B2 (en) | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
US7464243B2 (en) | 2004-12-21 | 2008-12-09 | Cisco Technology, Inc. | Method and apparatus for arbitrarily initializing a portion of memory |
US7770003B2 (en) | 2004-12-29 | 2010-08-03 | Intel Corporation | Updating firmware securely over a network |
US7509474B2 (en) | 2005-06-08 | 2009-03-24 | Micron Technology, Inc. | Robust index storage for non-volatile memory |
JP4688584B2 (ja) | 2005-06-21 | 2011-05-25 | 株式会社日立製作所 | ストレージ装置 |
KR20060134395A (ko) | 2005-06-22 | 2006-12-28 | 엘지전자 주식회사 | 케이블 방송 수신기 및 펌웨어 업그레이드 방법 |
US7853749B2 (en) | 2005-09-01 | 2010-12-14 | Cypress Semiconductor Corporation | Flash drive fast wear leveling |
KR101215350B1 (ko) | 2005-09-14 | 2012-12-26 | 엘지전자 주식회사 | 케이블 방송 수신기 및 펌웨어 업그레이드 방법 |
US7533215B2 (en) | 2005-09-15 | 2009-05-12 | Intel Corporation | Distributed and packed metadata structure for disk cache |
US7661054B2 (en) | 2005-09-30 | 2010-02-09 | Intel Corporation | Methods and arrangements to remap degraded storage blocks |
US7472292B2 (en) | 2005-10-03 | 2008-12-30 | Hewlett-Packard Development Company, L.P. | System and method for throttling memory power consumption based on status of cover switch of a computer system |
JP4764696B2 (ja) | 2005-10-07 | 2011-09-07 | ルネサスエレクトロニクス株式会社 | 半導体集積回路装置 |
US7516267B2 (en) | 2005-11-03 | 2009-04-07 | Intel Corporation | Recovering from a non-volatile memory failure |
US7620710B2 (en) | 2005-12-19 | 2009-11-17 | Commvault Systems, Inc. | System and method for performing multi-path storage operations |
US7355896B2 (en) | 2005-12-22 | 2008-04-08 | Chartered Semiconductor Manufacturing Ltd. | System for improving endurance and data retention in memory devices |
JP2007193865A (ja) * | 2006-01-17 | 2007-08-02 | Toshiba Corp | 情報記録装置及びその制御方法 |
KR101300683B1 (ko) | 2006-02-06 | 2013-08-26 | 삼성디스플레이 주식회사 | 액정 표시 장치 |
EP2003569B1 (en) | 2006-03-13 | 2010-06-02 | Panasonic Corporation | Flash memory controller |
US7810017B2 (en) | 2006-03-20 | 2010-10-05 | Micron Technology, Inc. | Variable sector-count ECC |
JP2007272635A (ja) | 2006-03-31 | 2007-10-18 | Toshiba Corp | メモリシステム及びコントローラ |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US7568135B2 (en) | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
US7778077B2 (en) | 2006-05-15 | 2010-08-17 | Sandisk Corporation | Non-volatile memory system with end of life calculation |
CN100504795C (zh) * | 2006-06-28 | 2009-06-24 | 联想(北京)有限公司 | 一种计算机raid阵列预警系统及方法 |
US7743216B2 (en) | 2006-06-30 | 2010-06-22 | Seagate Technology Llc | Predicting accesses to non-requested data |
US20080028246A1 (en) | 2006-07-31 | 2008-01-31 | Witham Timothy D | Self-monitoring and self-adjusting power consumption computer control system |
US20080046630A1 (en) | 2006-08-21 | 2008-02-21 | Sandisk Il Ltd. | NAND flash memory controller exporting a logical sector-based interface |
US20080052446A1 (en) | 2006-08-28 | 2008-02-28 | Sandisk Il Ltd. | Logical super block mapping for NAND flash memory |
US7738502B2 (en) | 2006-09-01 | 2010-06-15 | Intel Corporation | Signal noise filtering in a serial interface |
US8117396B1 (en) | 2006-10-10 | 2012-02-14 | Network Appliance, Inc. | Multi-level buffer cache management through soft-division of a uniform buffer cache |
WO2008053472A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7558109B2 (en) | 2006-11-03 | 2009-07-07 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
US7747813B2 (en) | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
US9153337B2 (en) | 2006-12-11 | 2015-10-06 | Marvell World Trade Ltd. | Fatigue management system and method for hybrid nonvolatile solid state memory system |
US8560760B2 (en) | 2007-01-31 | 2013-10-15 | Microsoft Corporation | Extending flash drive lifespan |
JP5283845B2 (ja) | 2007-02-07 | 2013-09-04 | 株式会社メガチップス | ビットエラーの予防方法、情報処理装置 |
JP5026102B2 (ja) | 2007-02-07 | 2012-09-12 | 株式会社日立製作所 | ストレージ制御装置及びデータ管理方法 |
JP4810469B2 (ja) | 2007-03-02 | 2011-11-09 | 株式会社東芝 | 検索支援装置、プログラム及び検索支援システム |
CN101715595A (zh) | 2007-03-12 | 2010-05-26 | 爱诺彼得技术有限责任公司 | 存储器单元读取阈的自适应估计 |
JP2008269363A (ja) | 2007-04-20 | 2008-11-06 | Hitachi Ltd | 記憶制御装置および記憶制御方法 |
KR100909902B1 (ko) | 2007-04-27 | 2009-07-30 | 삼성전자주식회사 | 플래쉬 메모리 장치 및 플래쉬 메모리 시스템 |
US8151171B2 (en) | 2007-05-07 | 2012-04-03 | Broadcom Corporation | Operational parameter adaptable LDPC (low density parity check) decoder |
US8209677B2 (en) | 2007-05-21 | 2012-06-26 | Sony Corporation | Broadcast download system via broadband power line communication |
KR100857761B1 (ko) | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
US8000161B2 (en) | 2007-06-28 | 2011-08-16 | University Of Virginia Patent Foundation | Method and system for encoding to eliminate parasitics in crossbar array memories |
US8041989B2 (en) | 2007-06-28 | 2011-10-18 | International Business Machines Corporation | System and method for providing a high fault tolerant memory system |
US8296534B1 (en) | 2007-06-29 | 2012-10-23 | Emc Corporation | Techniques for using flash-based memory in recovery processing |
US7747903B2 (en) | 2007-07-09 | 2010-06-29 | Micron Technology, Inc. | Error correction for memory |
US7949817B1 (en) | 2007-07-31 | 2011-05-24 | Marvell International Ltd. | Adaptive bus profiler |
US8095851B2 (en) | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
WO2009042298A1 (en) | 2007-09-26 | 2009-04-02 | Rambus Inc. | Flash memory refresh |
US8138803B2 (en) | 2007-09-26 | 2012-03-20 | Intel Corporation | Apparatus and method for selectively enabling and disabling a squelch circuit across AHCI and SATA power states |
TWI366828B (en) | 2007-09-27 | 2012-06-21 | Phison Electronics Corp | Wear leveling method and controller using the same |
KR101403429B1 (ko) | 2007-10-09 | 2014-06-03 | 삼성전자주식회사 | 멀티 비트 프로그래밍 장치 및 방법 |
US7639532B2 (en) | 2007-10-10 | 2009-12-29 | Micron Technology, Inc. | Non-equal threshold voltage ranges in MLC NAND |
KR20090042039A (ko) | 2007-10-25 | 2009-04-29 | 삼성전자주식회사 | 불휘발성 메모리 장치의 데이터 관리 방법 |
TWM332248U (en) | 2007-11-16 | 2008-05-11 | Carry Technology Co Ltd | Display apparatus for phonic recording and playing electronically digital picture |
US8335977B2 (en) | 2007-12-05 | 2012-12-18 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells |
WO2009072102A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices |
JP5207720B2 (ja) | 2007-12-07 | 2013-06-12 | ルネサスエレクトロニクス株式会社 | Oob検出回路およびシリアルataシステム |
US8140746B2 (en) | 2007-12-14 | 2012-03-20 | Spansion Llc | Intelligent memory data management |
KR101498669B1 (ko) | 2007-12-20 | 2015-03-19 | 삼성전자주식회사 | 반도체 메모리 시스템 및 그것의 액세스 방법 |
US8656083B2 (en) | 2007-12-21 | 2014-02-18 | Spansion Llc | Frequency distributed flash memory allocation based on free page tables |
US8245101B2 (en) | 2007-12-27 | 2012-08-14 | Sandisk Enterprise Ip Llc | Patrol function used in flash storage controller to detect data errors |
US20090172248A1 (en) | 2007-12-27 | 2009-07-02 | Guangqing You | Management of a flash memory device |
US9389921B2 (en) | 2008-01-14 | 2016-07-12 | Hewlett Packard Enterprise Development Lp | System and method for flexible device driver resource allocation |
JP5045448B2 (ja) | 2008-01-16 | 2012-10-10 | ソニー株式会社 | 信号処理回路、信号処理方法、再生装置 |
US8095724B2 (en) | 2008-02-05 | 2012-01-10 | Skymedi Corporation | Method of wear leveling for non-volatile memory and apparatus using via shifting windows |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US20090259819A1 (en) | 2008-04-09 | 2009-10-15 | Skymedi Corporation | Method of wear leveling for non-volatile memory |
TWI381390B (zh) | 2008-04-10 | 2013-01-01 | Phison Electronics Corp | 快閃記憶體的損壞區塊辨識方法、儲存系統及其控制器 |
US8028123B2 (en) | 2008-04-15 | 2011-09-27 | SMART Modular Technologies (AZ) , Inc. | Circular wear leveling |
US7830164B2 (en) | 2008-04-22 | 2010-11-09 | Honeywell International Inc. | Ducted test socket |
US20090271562A1 (en) | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
US7957187B2 (en) | 2008-05-09 | 2011-06-07 | Sandisk Corporation | Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution |
KR101506655B1 (ko) | 2008-05-15 | 2015-03-30 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 오류 관리 방법 |
US7925807B2 (en) | 2008-05-27 | 2011-04-12 | Microsoft Corporation | Dynamic microcode for non-volatile memory |
US7679948B2 (en) | 2008-06-05 | 2010-03-16 | Sun Microsystems, Inc. | Write and read assist circuit for SRAM with power recycling |
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 |
US8843691B2 (en) | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
KR100974954B1 (ko) | 2008-06-26 | 2010-08-10 | 에스디씨마이크로 주식회사 | 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법 |
US8010738B1 (en) | 2008-06-27 | 2011-08-30 | Emc Corporation | Techniques for obtaining a specified lifetime for a data storage device |
US20090327581A1 (en) | 2008-06-30 | 2009-12-31 | Coulson Richard L | Nand memory |
US20100017650A1 (en) | 2008-07-19 | 2010-01-21 | Nanostar Corporation, U.S.A | Non-volatile memory data storage system with reliability management |
US7941591B2 (en) | 2008-07-28 | 2011-05-10 | CacheIQ, Inc. | Flash DIMM in a standalone cache appliance system and methodology |
US8213229B2 (en) | 2008-08-22 | 2012-07-03 | HGST Netherlands, B.V. | Error control in a flash memory device |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
JP4769853B2 (ja) | 2008-09-19 | 2011-09-07 | 株式会社日立製作所 | 記憶制御装置及び記憶装置のデータ消去方法 |
US8275933B2 (en) | 2008-11-10 | 2012-09-25 | Fusion-10, Inc | Apparatus, system, and method for managing physical regions in a solid-state storage device |
US7764550B2 (en) | 2008-11-25 | 2010-07-27 | Freescale Semiconductor, Inc. | Method of programming a non-volatile memory |
KR101555022B1 (ko) | 2008-12-02 | 2015-09-23 | 삼성전자주식회사 | 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법 |
US8261009B2 (en) | 2008-12-30 | 2012-09-04 | Sandisk Il Ltd. | Method and apparatus for retroactive adaptation of data location |
US8248831B2 (en) | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US20100174845A1 (en) | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8040744B2 (en) | 2009-01-05 | 2011-10-18 | Sandisk Technologies Inc. | Spare block management of non-volatile memories |
CN102405460B (zh) | 2009-02-11 | 2016-05-04 | 艾梵尼达有限公司 | 虚拟存储系统及其运行方法 |
US8086783B2 (en) | 2009-02-23 | 2011-12-27 | International Business Machines Corporation | High availability memory system |
US9753887B2 (en) | 2009-02-24 | 2017-09-05 | Seagate Technology Llc | Receiver training during a SATA out of band sequence |
JP5268710B2 (ja) | 2009-02-27 | 2013-08-21 | 株式会社東芝 | 半導体記憶装置 |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8239614B2 (en) | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US8095765B2 (en) | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
CN101615156A (zh) * | 2009-03-31 | 2009-12-30 | 杨敬东 | 可实时显示移动储存设备擦写寿命的系统 |
US8166232B2 (en) | 2009-04-02 | 2012-04-24 | Hitachi, Ltd. | Metrics and management for flash memory storage life |
US8572443B2 (en) | 2009-04-08 | 2013-10-29 | International Business Machines Corporation | System, method, and computer program product for determining a retention behavior for at least one block of a memory device having finite endurance and/or retention |
US8380946B2 (en) | 2009-04-08 | 2013-02-19 | International Business Machines Corporation | System, method, and computer program product for estimating when a reliable life of a memory device having finite endurance and/or retention, or portion thereof, will be expended |
US8316173B2 (en) | 2009-04-08 | 2012-11-20 | International Business Machines Corporation | System, method, and computer program product for analyzing monitor data information from a plurality of memory devices having finite endurance and/or retention |
US8219776B2 (en) | 2009-09-23 | 2012-07-10 | Lsi Corporation | Logical-to-physical address translation for solid state disks |
US8051241B2 (en) | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
US8190873B2 (en) | 2009-05-13 | 2012-05-29 | Dell Products L.P. | System and method for optimizing performance of an information handling system component |
US20100318719A1 (en) | 2009-06-12 | 2010-12-16 | Micron Technology, Inc. | Methods, memory controllers and devices for wear leveling a memory |
US8732389B2 (en) | 2009-06-23 | 2014-05-20 | Seagate Technology Llc | Memory wear control |
US20100332726A1 (en) | 2009-06-26 | 2010-12-30 | Solid State System Co., Ltd. | Structure and method for managing writing operation on mlc flash memory |
JP5353494B2 (ja) | 2009-07-03 | 2013-11-27 | 富士通株式会社 | 通信装置、および通信方法 |
US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
US8332578B2 (en) | 2009-07-31 | 2012-12-11 | Intel Corporation | Method and system to improve the performance of a multi-level cell (MLC) NAND flash memory |
US7818525B1 (en) | 2009-08-12 | 2010-10-19 | Texas Memory Systems, Inc. | Efficient reduction of read disturb errors in NAND FLASH memory |
US8072805B2 (en) | 2009-08-18 | 2011-12-06 | Skymedi Corporation | Method and system of finding a read voltage for a flash memory |
US8464106B2 (en) | 2009-08-24 | 2013-06-11 | Ocz Technology Group, Inc. | Computer system with backup function and method therefor |
US8463826B2 (en) | 2009-09-03 | 2013-06-11 | Apple Inc. | Incremental garbage collection for non-volatile memories |
US8289801B2 (en) | 2009-09-09 | 2012-10-16 | Fusion-Io, Inc. | Apparatus, system, and method for power reduction management in a storage device |
US8463983B2 (en) | 2009-09-15 | 2013-06-11 | International Business Machines Corporation | Container marker scheme for reducing write amplification in solid state devices |
EP2333661B1 (en) | 2009-09-18 | 2015-06-10 | Yamaha Corporation | Firmware update apparatus and program |
TW201111986A (en) | 2009-09-29 | 2011-04-01 | Silicon Motion Inc | Memory apparatus and data access method for memories |
US8254172B1 (en) | 2009-09-30 | 2012-08-28 | Western Digital Technologies, Inc. | Wear leveling non-volatile semiconductor memory based on erase times and program times |
US8285956B2 (en) | 2009-10-22 | 2012-10-09 | Symantec Corporation | Efficient logging for asynchronously replicating volume groups |
US8560770B2 (en) | 2009-11-13 | 2013-10-15 | Seagate Technology Llc | Non-volatile write cache for a data storage system |
CN101876949B (zh) | 2009-11-30 | 2012-04-25 | 威盛电子股份有限公司 | 数据储存系统与方法 |
US8589302B2 (en) | 2009-11-30 | 2013-11-19 | Intel Corporation | Automated modular and secure boot firmware update |
US8473669B2 (en) | 2009-12-07 | 2013-06-25 | Sandisk Technologies Inc. | Method and system for concurrent background and foreground operations in a non-volatile memory array |
US20110132000A1 (en) | 2009-12-09 | 2011-06-09 | Deane Philip A | Thermoelectric Heating/Cooling Structures Including a Plurality of Spaced Apart Thermoelectric Components |
US8285918B2 (en) | 2009-12-11 | 2012-10-09 | Nimble Storage, Inc. | Flash memory cache for data storage device |
US8607124B2 (en) | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
US8661184B2 (en) | 2010-01-27 | 2014-02-25 | Fusion-Io, Inc. | Managing non-volatile media |
EP2354864A1 (en) | 2010-01-29 | 2011-08-10 | Eurocopter Deutschland GmbH | Method and system for an optimized utilization of energy resources of an electrical system |
KR101623119B1 (ko) | 2010-02-01 | 2016-05-20 | 삼성전자주식회사 | 솔리드 스테이트 드라이브의 에러 제어 방법 |
US20110191522A1 (en) | 2010-02-02 | 2011-08-04 | Condict Michael N | Managing Metadata and Page Replacement in a Persistent Cache in Flash Memory |
KR101655306B1 (ko) | 2010-02-24 | 2016-09-07 | 삼성전자주식회사 | 메모리 시스템 및 그것의 액세스 방법 |
US8601203B2 (en) | 2010-03-12 | 2013-12-03 | Standard Microsystems Corporation | Firmware flashing of a portable device using a serial bus hub |
US8726126B2 (en) | 2010-03-23 | 2014-05-13 | Apple Inc. | Non-regular parity distribution detection via metadata tag |
CN102201259A (zh) | 2010-03-24 | 2011-09-28 | 建兴电子科技股份有限公司 | 非易失性存储器的平均抹写方法 |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
TWI447733B (zh) | 2010-04-14 | 2014-08-01 | Phison Electronics Corp | 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器 |
US8510637B2 (en) | 2010-04-14 | 2013-08-13 | Phison Electronics Corp. | Data reading method, memory storage apparatus and memory controller thereof |
WO2011132227A1 (en) | 2010-04-22 | 2011-10-27 | Hitachi, Ltd. | System and method of controlling migration of data based on deduplication efficiency |
US8397101B2 (en) | 2010-06-03 | 2013-03-12 | Seagate Technology Llc | Ensuring a most recent version of data is recovered from a memory |
US8799747B2 (en) | 2010-06-03 | 2014-08-05 | Seagate Technology Llc | Data hardening to compensate for loss of data retention characteristics in a non-volatile memory |
WO2011156466A2 (en) | 2010-06-08 | 2011-12-15 | Hewlett-Packard Development Company, L.P. | Storage caching |
US8612669B1 (en) | 2010-06-28 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for performing data retention in solid-state memory using copy commands and validity and usage data |
US8386714B2 (en) | 2010-06-29 | 2013-02-26 | International Business Machines Corporation | Reducing write amplification in a cache with flash memory used as a write cache |
US8467249B2 (en) | 2010-07-06 | 2013-06-18 | Densbits Technologies Ltd. | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
US8737141B2 (en) | 2010-07-07 | 2014-05-27 | Stec, Inc. | Apparatus and method for determining an operating condition of a memory cell based on cycle information |
US8737136B2 (en) | 2010-07-09 | 2014-05-27 | Stec, Inc. | Apparatus and method for determining a read level of a memory cell based on cycle information |
US9069688B2 (en) | 2011-04-15 | 2015-06-30 | Sandisk Technologies Inc. | Dynamic optimization of back-end memory system interface |
US20120023144A1 (en) | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
US8503238B1 (en) | 2010-07-21 | 2013-08-06 | Sk Hynix Memory Solutions Inc. | Error recovery for flash memory |
US9037778B2 (en) | 2010-08-20 | 2015-05-19 | Samsung Electronics Co., Ltd. | Method and apparatus to interface semiconductor storage device and host to provide performance throttling of semiconductor storage device |
KR101702392B1 (ko) | 2010-08-20 | 2017-02-06 | 삼성전자주식회사 | 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법 |
US8832507B2 (en) | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
US8984216B2 (en) | 2010-09-09 | 2015-03-17 | Fusion-Io, Llc | Apparatus, system, and method for managing lifetime of a storage device |
US8363413B2 (en) | 2010-09-13 | 2013-01-29 | Raytheon Company | Assembly to provide thermal cooling |
US20120079348A1 (en) | 2010-09-24 | 2012-03-29 | Helia Naeimi | Data with appended crc and residue value and encoder/decoder for same |
US8627175B2 (en) | 2010-09-27 | 2014-01-07 | Seagate Technology Llc | Opportunistic decoding in memory systems |
US8219724B1 (en) | 2010-09-29 | 2012-07-10 | Emc Corporation | Flexibly managing I/O operations based on application awareness |
US8612804B1 (en) | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US20120254686A1 (en) | 2010-10-01 | 2012-10-04 | SIGLEAD Inc. | Non-volatile semiconductor memory devices and error correction methods |
US8738846B2 (en) | 2010-10-15 | 2014-05-27 | Arkologic Limited | File system-aware solid-state storage management system |
US8694811B2 (en) | 2010-10-29 | 2014-04-08 | Texas Instruments Incorporated | Power management for digital devices |
US8806106B2 (en) | 2010-11-12 | 2014-08-12 | Seagate Technology Llc | Estimating wear of non-volatile, solid state memory |
US8843489B2 (en) | 2010-11-16 | 2014-09-23 | Actifio, Inc. | System and method for managing deduplicated copies of data using temporal relationships among copies |
US8656086B2 (en) | 2010-12-08 | 2014-02-18 | Avocent Corporation | System and method for autonomous NAND refresh |
JP2012129859A (ja) | 2010-12-16 | 2012-07-05 | Nec Corp | 無線アクセスネットワークシステム、遠隔監視装置、アンテナ角度制御方法、及びアンテナ角度制御プログラム |
US8521981B2 (en) | 2010-12-16 | 2013-08-27 | Microsoft Corporation | Memory power tokens |
KR101703106B1 (ko) | 2011-01-04 | 2017-02-06 | 삼성전자주식회사 | 부분-이레이즈 동작을 수행할 수 있는 비휘발성 메모리 장치와 상기 비휘발성 메모리 장치를 포함하는 장치들 |
US8364888B2 (en) | 2011-02-03 | 2013-01-29 | Stec, Inc. | Erase-suspend system and method |
JP2012169006A (ja) | 2011-02-14 | 2012-09-06 | Toshiba Corp | 半導体記憶装置 |
KR101875142B1 (ko) | 2011-02-17 | 2018-07-06 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 읽기 방법 |
US10079068B2 (en) | 2011-02-23 | 2018-09-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices and method for wear estimation based memory management |
EP2498259B1 (en) | 2011-03-08 | 2018-11-07 | Linear Technology Corporation | Methods and system for erasing data stored in nonvolatile memory in low power applications |
US8732518B2 (en) | 2011-04-13 | 2014-05-20 | Netapp, Inc. | Reliability based data allocation and recovery in a storage system |
US8918595B2 (en) | 2011-04-28 | 2014-12-23 | Seagate Technology Llc | Enforcing system intentions during memory scheduling |
US8862804B2 (en) | 2011-04-29 | 2014-10-14 | Western Digital Technologies, Inc. | System and method for improved parity determination within a data redundancy scheme in a solid state memory |
US8656088B2 (en) | 2011-05-20 | 2014-02-18 | International Business Machines Corporation | Optimized flash based cache memory |
TWI479495B (zh) | 2011-06-02 | 2015-04-01 | Phison Electronics Corp | 資料讀取方法、記憶體控制器及記憶體儲存裝置 |
US8806108B2 (en) | 2011-06-07 | 2014-08-12 | Hitachi, Ltd. | Semiconductor storage apparatus and method of controlling semiconductor storage apparatus |
US8719531B2 (en) | 2011-06-14 | 2014-05-06 | Western Digital Technologies, Inc. | System and method for performing data retention that incorporates environmental conditions |
US8694719B2 (en) | 2011-06-24 | 2014-04-08 | Sandisk Technologies Inc. | Controller, storage device, and method for power throttling memory operations |
US8954689B2 (en) | 2011-06-30 | 2015-02-10 | Seagate Technology Llc | Limiting activity rates that impact life of a data storage media |
US8645773B2 (en) | 2011-06-30 | 2014-02-04 | Seagate Technology Llc | Estimating temporal degradation of non-volatile solid-state memory |
CN102279775B (zh) * | 2011-08-19 | 2013-04-17 | 西安交通大学 | 一种Linux系统下的硬盘故障处理方法 |
US9098399B2 (en) | 2011-08-31 | 2015-08-04 | SMART Storage Systems, Inc. | Electronic system with storage management mechanism and method of operation thereof |
US9063844B2 (en) | 2011-09-02 | 2015-06-23 | SMART Storage Systems, Inc. | Non-volatile memory management system with time measure mechanism and method of operation thereof |
US9021231B2 (en) | 2011-09-02 | 2015-04-28 | SMART Storage Systems, Inc. | Storage control system with write amplification control mechanism and method of operation thereof |
US9069468B2 (en) | 2011-09-11 | 2015-06-30 | Microsoft Technology Licensing, Llc | Pooled partition layout and representation |
US9477590B2 (en) | 2011-09-16 | 2016-10-25 | Apple Inc. | Weave sequence counter for non-volatile memory systems |
JP5481453B2 (ja) | 2011-09-21 | 2014-04-23 | 株式会社東芝 | メモリデバイス |
US8760932B2 (en) | 2011-10-18 | 2014-06-24 | Seagate Technology Llc | Determination of memory read reference and programming voltages |
CN103064478A (zh) | 2011-10-19 | 2013-04-24 | 鸿富锦精密工业(深圳)有限公司 | 具有导风罩的电脑系统 |
US8811081B2 (en) | 2011-12-09 | 2014-08-19 | Sandisk Technologies Inc. | Systems and methods of updating read voltages in a memory |
US9141166B2 (en) | 2011-12-13 | 2015-09-22 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains |
US8832506B2 (en) | 2012-01-20 | 2014-09-09 | International Business Machines Corporation | Bit error rate based wear leveling for solid state drive memory |
US8792272B2 (en) | 2012-01-30 | 2014-07-29 | HGST Netherlands B.V. | Implementing enhanced data partial-erase for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding |
US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
US8892811B2 (en) | 2012-03-01 | 2014-11-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Reducing write amplification in a flash memory |
US8935459B2 (en) | 2012-03-08 | 2015-01-13 | Apple Inc. | Heuristics for programming data in a non-volatile memory |
US8760922B2 (en) | 2012-04-10 | 2014-06-24 | Sandisk Technologies Inc. | System and method for micro-tiering in non-volatile memory |
US9116625B2 (en) | 2012-05-11 | 2015-08-25 | Micron Technology, Inc. | Write command overlap detection |
US8793556B1 (en) | 2012-05-22 | 2014-07-29 | Pmc-Sierra, Inc. | Systems and methods for reclaiming flash blocks of a flash drive |
US9058281B2 (en) | 2012-06-01 | 2015-06-16 | Seagate Technology Llc | Allocating memory usage based on quality metrics |
TWI467376B (zh) | 2012-06-11 | 2015-01-01 | Phison Electronics Corp | 資料保護方法、記憶體控制器與記憶體儲存裝置 |
US9064575B2 (en) | 2012-08-03 | 2015-06-23 | Micron Technology, Inc. | Determining whether a memory cell state is in a valley between adjacent data states |
US9405355B2 (en) | 2012-08-21 | 2016-08-02 | Micron Technology, Inc. | Memory operation power management by data transfer time adjustment |
US8862818B1 (en) | 2012-09-27 | 2014-10-14 | Emc Corporation | Handling partial stripe writes in log-structured storage |
US8914670B2 (en) | 2012-11-07 | 2014-12-16 | Apple Inc. | Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks |
US8656135B2 (en) | 2012-11-08 | 2014-02-18 | Concurix Corporation | Optimized memory configuration deployed prior to execution |
US9145311B2 (en) | 2012-12-11 | 2015-09-29 | Anthony Elmer Greene | Apparatus for controlling an electrolytic cell in a water purification system |
US9411718B2 (en) | 2012-12-21 | 2016-08-09 | Seagate Technology Llc | Method to apply fine grain wear leveling and garbage collection |
US8903959B2 (en) | 2013-01-08 | 2014-12-02 | Lyve Minds, Inc. | Storage network data distribution |
US9123445B2 (en) | 2013-01-22 | 2015-09-01 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
US9043668B2 (en) | 2013-02-08 | 2015-05-26 | Seagate Technology Llc | Using ECC data for write deduplication processing |
US8972776B2 (en) | 2013-03-06 | 2015-03-03 | Seagate Technology, Llc | Partial R-block recycling |
US9229525B2 (en) | 2013-06-17 | 2016-01-05 | Apple Inc. | Adaptive latency tolerance for power management of memory bus interfaces |
-
2014
- 2014-07-17 US US14/334,324 patent/US9361222B2/en active Active
- 2014-08-05 CN CN201480052128.0A patent/CN105579970B/zh active Active
- 2014-08-05 KR KR1020167005712A patent/KR101952001B1/ko active IP Right Grant
- 2014-08-05 WO PCT/US2014/049731 patent/WO2015021020A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100082890A1 (en) | 2008-09-30 | 2010-04-01 | Jin Gyu Heo | Method of managing a solid state drive, associated systems and implementations |
Also Published As
Publication number | Publication date |
---|---|
CN105579970A (zh) | 2016-05-11 |
US9361222B2 (en) | 2016-06-07 |
CN105579970B (zh) | 2019-04-30 |
WO2015021020A1 (en) | 2015-02-12 |
US20150046635A1 (en) | 2015-02-12 |
KR20160041954A (ko) | 2016-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101952001B1 (ko) | 저장 장치 드라이브 수명 추정 메커니즘을 갖는 전자 시스템 및 그 동작 방법 | |
US9864525B2 (en) | Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning | |
US9891844B2 (en) | Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices | |
US8719531B2 (en) | System and method for performing data retention that incorporates environmental conditions | |
US9146850B2 (en) | Data storage system with dynamic read threshold mechanism and method of operation thereof | |
CN107526543B (zh) | 形性存储设备 | |
US9298608B2 (en) | Biasing for wear leveling in storage systems | |
US9123445B2 (en) | Storage control system with data management mechanism and method of operation thereof | |
KR101079502B1 (ko) | 메모리 시스템 | |
US8977803B2 (en) | Disk drive data caching using a multi-tiered memory | |
TWI420303B (zh) | 基於寫入頻率將資料寫至記憶體不同部份之方法、非暫態電腦可讀媒體與裝置 | |
EP2024839B1 (en) | Non-volatile memory system with end of life calculation | |
US8296501B2 (en) | Memory management method for non-volatile memory and controller using the same | |
TWI428739B (zh) | 記憶卡之壽命終點恢復及尺寸重整 | |
US20100180068A1 (en) | Storage device | |
JP6119533B2 (ja) | ストレージ装置,ステージング制御方法及びステージング制御プログラム | |
CN106933492B (zh) | 有助于固态硬盘的磨损平衡的方法和装置 | |
US10732856B2 (en) | Erase health metric to rank memory portions | |
CN103176748A (zh) | 基于环境的设备操作 | |
CN112867984B (zh) | 池级存储管理 | |
US11199968B2 (en) | Using recurring write quotas to optimize utilization of solid state storage in a hybrid storage array | |
JP6536614B2 (ja) | ストレージ装置、ストレージ装置の制御方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |