KR20200089338A - 다중 레벨 어드레싱 - Google Patents

다중 레벨 어드레싱 Download PDF

Info

Publication number
KR20200089338A
KR20200089338A KR1020207020187A KR20207020187A KR20200089338A KR 20200089338 A KR20200089338 A KR 20200089338A KR 1020207020187 A KR1020207020187 A KR 1020207020187A KR 20207020187 A KR20207020187 A KR 20207020187A KR 20200089338 A KR20200089338 A KR 20200089338A
Authority
KR
South Korea
Prior art keywords
segment
address
level
segments
address level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
KR1020207020187A
Other languages
English (en)
Inventor
지안프랑코 페랑테
디오니시오 미노폴리
Original Assignee
마이크론 테크놀로지, 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크 filed Critical 마이크론 테크놀로지, 인크
Publication of KR20200089338A publication Critical patent/KR20200089338A/ko
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

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

Abstract

일례로, 다중 레벨 어드레싱 기법을 사용하여 초기화 프로세스 동안 비휘발성 저장 메모리 내 특정 정보의 위치에 대응하는 시작 어드레스가 결정된다. 다중 레벨 어드레싱 기법을 사용하는 단계는 특정 정보의 위치에 대응하는 시작 어드레스를 결정하기 위해 각각의 어드레스 레벨들에서 저장 메모리의 다중 판독을 수행하는 단계를 포함할 수 있다.

Description

다중 레벨 어드레싱
본 개시는 개괄적으로 저장 시스템들과 같은 장치 및 그것들의 작동, 특히 다중 레벨 어드레싱에 관한 것이다.
저장 시스템들은 컴퓨터들, 휴대 전화들, 휴대용 전자 디바이스들 등과 같은 전자 시스템들에서 구현될 수 있다. 고체 상태 드라이브들(SSD)과 같은 일부 저장 시스템은 호스트로부터의 사용자 데이터를 저장하기위한 비휘발성 저장 메모리들을 포함할 수 있다. 비휘발성 저장 메모리들은 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영구적인 데이터를 제공하고 수명 전체에 걸쳐 특정 횟수로 기록될 수 있는 다른 유형들의 메모리 중에서 크로스 포인트 메모리, NAND 플래시 메모리를 포함할 수 있다. 스토리지 시스템들은 통상적으로 저장 시스템들의 작동에 필수적인 정보의 위치를 찾기 위한 초기화 절차를 수행한다.
도 1a는 본 개시의 다수의 실시 예에 따른 장치의 블록도이다.
도 1b는 본 개시의 다수의 실시 예에 따른 다중 레벨 어드레싱 기법에 따른 저장 메모리의 다중 판독의 일례를 도시한다.
도 2는 본 개시의 다수의 실시예에 따른 필수 정보의 위치를 찾는 방법의 흐름도이다.
도 3a는 본 개시의 다수의 실시예에 따른 저장 메모리의 단편의 일례이다.
도 3b는 본 개시의 다수의 실시예에 따른 저장 메모리의 단편의 웨어 레벨링의 일례를 도시한다.
일례에서, 다중 레벨 어드레싱 기법을 사용하여 초기화 프로세스 동안 비휘발성 저장 메모리 내 특정 정보의 위치에 대응하는 시작 어드레스가 결정된다. 다중 레벨 어드레싱 기법을 사용하는 단계는 특정 정보의 위치에 대응하는 시작 어드레스를 결정하기 위해 각각의 어드레스 레벨들에서 저장 메모리의 다중 판독을 수행하는 단계를 포함할 수 있다.
이전 접근법들에서, 저장 시스템의 작동에 필수적인 초기화 정보(예를 들어, 필수 정보)와 같은 특정 정보가 저장되는 저장 시스템의 저장 메모리 내 실제 위치는 초기화 동안 직접적으로 어드레싱될 수 있었다. 예를 들어, 이전 접근법들에서, 초기화는 필수 정보의 실제 물리적 위치의 어드레스를 지정할 수 있는 펌웨어와 같은 명령들을 실행하는 것에 응답하여 수행될 수 있다. 예를 들어, 이전 접근법들은 필수 정보의 위치를 찾기 위해 단일 레벨의 직접 어드레싱을 사용할 수 있었다.
일부 이전 접근법은, 저장 시스템에 전원이 차단될 때마다, 이를테면 매 전원 차단 동안 새로운 필수 정보를 메모리의 단일 어드레스 레벨의 위치에 기록함으로써, 그 위치에 새로운 필수 정보를 저장할 수 있다. 예를 들어, 그 위치에 이전에 기록된 필수 정보는 새로운 필수 정보로 겹쳐 쓰기될 수 있다.
그러나, 저장 메모리들에서의 메모리 셀들은 메모리 셀들의 수명 동안 특정 횟수로 기록될 수 있고, 전원 차단 횟수는 특정 횟수보다 수 자릿수(예를 들어, 다섯 자릿수) 더 클 수 있다. 예를 들어, 이전 접근법들에서, 저장 시스템들은 그 위치에서 메모리 셀들의 수명 동안 단일 어드레스 레벨의 위치가 기록될 수 있는 것보다 더 많은 횟수로 그 위치에 필수 정보를 기록할 필요가 있을 수 있다.
본 개시의 실시 예들은 다중 레벨 간접 어드레싱을 수행함으로써, 저장 메모리에서의, 저장 디바이스의 초기화 동안 어드레스에 의해 직접 지정되는 단일 어드레스 레벨의 위치에 기록하는 문제를 해결함으로써 이전 접근법들에 비해 기술적 이점을 제공한다. 예를 들어, 여기에 개시되는 실시 예들은, 저장 메모리의 다중 판독을 수행하는 것을 포함할 수 있는 다중 레벨 어드레싱 기법을 사용하여 장치의 초기화 동안 비휘발성 저장 메모리 내 필수 정보의 위치에 대응하는 시작 어드레스를 결정한다.
저장 시스템은 장치의 수명 전체에 걸쳐 각 초기화 동안 필수 정보의 위치를 간접적으로 어드레싱하는 동일한 초기 어드레스를 사용할 수 있다. 일부 예에서, 개시된 저장 시스템은 초기 어드레스 레벨의 초기 어드레스를 갖는 위치로부터 중간 어드레스를 판독하고 중간 어드레스 레벨의 중간 어드레스의 위치로부터 필수 정보의 위치의 어드레스를 판독하여 최종 어드레스 레벨의 필수 정보의 위치를 결정할 수 있다.
일부 실시 예에서, 초기 어드레스를 갖는 위치의 중간 어드레스는 중간 어드레스가 변경될 때마다 변경되고, 중간 어드레스는 필수 정보의 위치가 변경될 때마다 변경된다. 예를 들어, 중간 어드레스가 변경되는 횟수 및 필수 정보의 위치가 변경되는 횟수는 저장 디바이스의 수명 동안 초기 어드레스를 갖는 위치의 변경 횟수가 임계 횟수 미만으로 유지되도록 선택될 수 있다. 예를 들어, 임계 횟수는 초기 어드레스를 갖는 위치의 메모리 셀들이 그것들의 수명 전체에 걸쳐 기록될 수 있는 횟수일 수 있으며, 이는 초기 어드레스가 저장 디바이스의 수명 동안 동일하게 유지될 수 있음을 의미한다.
이하의 상세한 설명에서, 이의 부분을 형성하고 예로서 구체적인 예들이 도시되는 첨부 도면들이 참조된다. 도면들에서 같은 부호들은 몇몇 도면 전반에 걸쳐 실질적으로 유사한 구성요소들을 기술한다. 본 개시의 범위에서 벗어나지 않고 다른 예들이 이용될 수 있고 구조적 그리고 전기적 변경이 이루어질 수 있다. 따라서, 이하의 상세한 설명은 제한하는 의미로 취해지지 않으며, 본 개시의 범위는 단지 첨부된 청구항들 및 그것들의 균등물들에 의해서만 정의된다.
도 1a는 본 개시의 다수의 실시예에 따른 컴퓨팅 시스템(100) 형태의 장치의 블록도이다. 컴퓨팅 시스템(100)은 예를 들어, 고체 상태 드라이브(SSD)일 수 있는 저장 시스템(102)을 포함한다. 도 1a의 예에서, 저장 시스템(102)은 호스트(104)에 연결되고 크로스-포인트 메모리(예를 들어, 3-차원(3D) 크로스-포인트 메모리)와 같은 비휘발성 메모리일 수 있는 저장 메모리(106)를 포함한다. 메모리(106)에는 처리 디바이스와 같은 제어기(108)(예를 들어, SSD 제어기)가 연결된다. 여기서 사용될 때, 저장 시스템(예를 들어, 102), 제어기(예를 들어, 108) 및/또는 저장 메모리(예를 들어, 106)는 별도로 "장치(apparatus)"로 고려될 수 있다.
일부 예에서, 저장 메모리(1006)는 셀들에 액세스하는데 사용되는 제1 및 제2 신호 라인들의 교차점들(예를 들어, 워드 라인들 및 비트 라인들의 교차점들)에 위치된 3D 크로스-포인트 메모리 셀들과 같은 크로스-포인트 메모리 셀들을 포함할 수 있는 3D 크로스-포인트 메모리일 수 있다. 일부 크로스-포인트 메모리 셀은 예를 들어, 상태(예를 들어, 저장된 데이터 값)가 메모리 셀의 프로그램된 저항에 의존하는 저항 가변 메모리 셀들일 수 있다. 예를 들어, 메모리 셀들은 먼저 소거되지 않고, 개별적으로 오버라이팅될 수 있는 저항-가변 메모리 셀들일 수 있다. 메모리 셀들은 상이한 데이터 상태들로 프로그램 가능한 재료를 포함할 수 있다.
일부 저항 가변 메모리 셀은 저장 요소(예를 들어, 상 변화 재료, 금속 산화물 재료 및/또는 상이한 저항 레벨들로 프로그램 가능한 일부 다른 재료)와 직렬로 선택 요소(예를 들어, 다이오드, 트랜지스터 또는 다른 스위칭 디바이스)를 포함할 수 있다. 자기-선택 메모리 셀들로 지칭될 수 있는 일부 가변 저항 메모리 셀은 메모리 셀에 대한 선택 요소 및 저장 요소 양자로서의 역할을 할 수 있는 단일 재료를 포함한다. 일부 예에서, 각각의 메모리 셀들은 선택기 재료(예를 들어, 스위칭 재료)로서 작용할 수 있는 재료 및 저장 재료를 포함할 수 있어서, 각 메모리 셀은 선택기 디바이스 및 메모리 요소 양자로서 작용할 수 있게 된다. 예를 들어, 각 메모리 셀은 다양한 도핑되거나 도핑되지 않은 재료로 형성될 수 있고/거나, 상 변화 재료일 수도 있고 아닐 수도 있고/거나, 메모리 셀을 판독 및/또는 기록하는 동안 상 변화를 겪을 수도 있고 겪지 않을 수도 있는 칼코겐 화합물 재료를 포함할 수 있다. 일부 예에서, 각 메모리 셀은 셀레늄(Se), 비소(As) 및 게르마늄(Ge)을 포함할 수 있는 3원 조성, 실리콘(Si), Se, As 및 Ge을 포함할 수 있는 4원 조성 등을 포함할 수 있다. 일부 예에서, 저장 메모리(106)는 단일 계층(예를 들어, 데크)의 메모리 셀들 또는 다중 계층의 메모리 셀들로 배열될 수 있다.
일부 예에서, 제어기(108)는 상태 기계, 시퀀서, 및/또는 일부 다른 유형의 제어 회로를 포함할 수 있으며, 이는 인쇄 회로 기판에 연결되는 주문형 집적 회로(ASIC)의 형태로 구현될 수 있다. 제어기(108)는 초기화 구성요소(110), 판독 전용 메모리(ROM)(114),웨어 레벨링 구성요소(116), 및 논리 어드레스 대 물리 어드레스(예를 들어, L2P) 매핑 구성요소(118)와 같은 매핑 구성요소를 포함한다. 일례에서, ROM(114)은 저장 시스템(102)의 초기화 동안 실행될 수 있는 명령들을 포함하는 하드웨어 구성요소일 수 있다. 제어기(108)는 랜덤 액세스 메모리(RAM)(112)와 같은 휘발성 메모리에 연결된다.
제어기(108)는 다수의 실시 예에 따라, 저장 시스템(102)을 초기화하는 것과 같이 여기에 개시된 방법들을 수행하도록 구성된다. 예를 들어, 초기화 구성요소(110)는 저장 시스템(102)의 초기화 동안 방법들을 수행한다. 초기화 구성요소(110)는 저장 메모리(106)를 판독하기 위해 다중 레벨 어드레싱 기법을 사용하여 저장 시스템(102)의 작동에 필수적인 저장 메모리(106) 내 필수 정보의 위치에 대응하는 논리 대 물리 매핑 정보의 시작 어드레스와 같은 시작 어드레스를 결정함으로써 저장 시스템(102)을 초기화할 수 있다. 예를 들어, 초기화 구성요소(110)는 다중 레벨 어드레싱 기법을 사용하면서 저장 메모리(106)의 다중 판독을 수행함으로써 필수 정보의 위치를 간접적으로 결정할 수 있다. 일부 예에서, 초기화 동안, 저장 시스템(102)은 호스트(104)로부터 판독 및 기록 명령들과 같은 명령들을 수용할 준비가 되지 않을 수 있다. 초기화가 완료되면, 저장 시스템(102)은 호스트(104)에 저장 시스템(102)이 호스트(104)로부터 명령들을 수용할 준비가 되었음을 나타내기 위한 준비 신호를 전송할 수 있다.
일부 예에서, 초기화 구성요소(110)는 저장 메모리(106)에 저장된 명령들(예를 들어, 펌웨어 코드)를 실행하는 것에 응답하여 저장 시스템(102)을 초기화할 수 있다. 예를 들어, 초기화 구성요소(110)는 저장 메모리(106)로부터 RAM(112)으로 명령들을 판독하고 RAM(112)으로부터 명령들을 실행할 수 있다.
일부 예에서, 초기화 구성요소(110)는 초기화 동안 저장 메모리(106)에서 명령들의 위치를 찾을 수 있다. 예를 들어, 초기화 구성요소(110)는 다중 레벨 어드레싱 기법을 사용하여 명령들의 위치를 결정할 수 있다. 예를 들어, 초기화 구성요소(110)는 다중 레벨 어드레싱 기법을 사용하면서 저장 메모리(106)의 다중 판독을 수행함으로써 명령들의 위치를 결정할 수 있다. 일부 예에서, 초기화 구성요소(110)는 ROM(114)에 저장된 ROM(예를 들어, 하드웨어) 코드와 같은 명령들을 실행하는 것에 응답하여 다중 판독을 수행할 수 있다.
도 1b는 본 개시의 다수의 실시 예에 따른 다중 레벨 어드레싱 기법에 따른 저장 메모리(106)의 다중 판독의 일례를 도시한다. 예를 들어, 제어기(108)는 다수의 상이한 어드레스 레벨을 저장 메모리(106)의 부분들에 부여할 수 있다.
저장 메모리(106)의 일 부분(122)에 초기(예를 들어, 최고) 어드레스 레벨(120)이 부여된다. 저장 메모리(106)의 일 부분(128)에는 최종(예를 들어, 최저) 어드레스 레벨(124)이 부여된다. 초기 어드레스 레벨(120)과 최종 어드레스 레벨(124) 사이에는 다수(예를 들어, 하나 이상)의 중간 어드레스 레벨이 부여된다. 예를 들어, 중간 어드레스 레벨(130) 및 중간 어드레스 레벨(132)이 저장 메모리(106)의 일 부분(134)에 부여된다. 예를 들어, 어드레스 레벨(130)은 어드레스 레벨(132)보다 높은 어드레스 레벨일 수 있다.
부분(134)은 저장 시스템(102)의 초기화 동안 L2P 매핑 구성요소(118)로 로딩될 수 있는 L2P 테이블들과 같은 L2P 매핑 정보를 저장하는데 사용될 수 있다. 일례에서, 호스트(104)는 저장 시스템(120)에 기록될 또는 그로부터 판독될 사용자 데이터(예를 들어, 호스트 데이터)와 같은 데이터에 대응하는 논리 어드레스를 제어기(108)에 전송할 수 있다. 그 다음 L2P 매핑 구성요소(118)는 논리 어드레스를 부분(128)과 같은 저장 메모리(106)에서의 물리적 위치에 대응하는 물리 어드레스에 매핑할 수 있다.
저장 메모리(106)는 메모리 셀들의 세그먼트들을 포함한다. 세그먼트는 저장 메모리(106)에 액세스할 때 어드레싱 가능한 가장 작은 단위이다. 일부 예에서, 일부 세그먼트는 특히, 16 바이트 또는 64 바이트일 수 있다. 또한, 메모리(106)는 호스트(104)로부터의 호스트 데이터 및/또는 필수 정보와 같은 사용자 데이터를 저장하기 위해 512 바이트 또는 4 킬로바이트 세그먼트들 등과 같은 세그먼트를 포함할 수 있다.
부분(128)은 어드레싱 가능한 세그먼트들(135)을 포함한다. 예를 들어, 최종 어드레스 레벨(124)의 세그먼트(135) 집합은 필수 정보 및/또는 사용자 데이터를 저장하는데 사용되고, 세그먼트들(135)은 다중 레벨 어드레싱의 최종 어드레스들 및/또는 L2P 매핑들로부터의 물리적 어드레스들을 사용하여 어드레싱된다. 예를 들어, L2P 매핑 구성요소(118)는 L2P 매핑 정보를 사용하여 논리 데이터를 사용자 데이터 및/또는 필수 정보를 저장하는데 사용되는 세그먼트(135)의 물리적 어드레스에 매핑할 수 있다. 그에 따라, 세그먼트들(135)은 물리적 블록들로 지칭될 수 있다. 일부 예에서, 세그먼트들(135)은 호스트(104)에 의해 사용되는 가장 작은 어드레싱 가능한 단위일 수 있고 512 바이트 또는 4 킬로바이트 등일 수 있다. 그러나, 세그먼트들(137, 138 및 139)과 같은 부분(134)에서의 세그먼트들 및 부분(122)에서의 세그먼트들(140)은 16 바이트, 64 바이트 등일 수 있고, 가장 작은 어드레싱 가능한 단위들일 수 있다. 따라서, 도 1b에 도시된 다중 레벨 어드레싱 기법은 예를 들어, 어드레스 레벨들(120, 130 및 132)과 상이한 크기의 어드레스 레벨(124)의 어드레싱 가능한 단위들을 사용할 수 있다.
부분(134)은 중간 어드레스 레벨(130)의 어드레싱 가능한 세그먼트들(137) 및 중간 어드레스 레벨(132)의 어드레싱 가능한 세그먼트들(138)을 포함한다. 예를 들어, 세그먼트(138) 집합은 최종 어드레스 레벨(124)의 세그먼트들(135)의 최종 어드레스들을 저장하는 데 사용된다. 예를 들어, 세그먼트(138) 집합의 세그먼트(138T)는 필수 정보를 저장하는 세그먼트(135T)의 최종 어드레스를 저장할 수 있다.
세그먼트(137) 집합은 세그먼트들(138)의 중간 어드레스들을 저장하는데 사용된다. 예를 들어, 세그먼트(137) 집합의 세그먼트(137T)는 어드레스 레벨(132)의 세그먼트(138T)의 중간 어드레스를 저장할 수 있다. 일부 예에서, 부분(134)은 L2P 매핑 정보를 저장하기 위한 세그먼트(139) 집합을 포함할 수 있다.
부분(122)은 세그먼트들(140)을 포함한다. 예를 들어, 세그먼트들(140)은 세그먼트들(137)의 중간 어드레스들을 저장하는데 사용된다. 예를 들어, 세그먼트(140T)는 세그먼트(137T)의 중간 어드레스를 저장할 수 있다. 일부 예에서, 세그먼트(140B)는 세그먼트(140T)에 저장된 중간 어드레스의 카피(예를 들어, 백업 카피)를 포함할 수 있다. 일례에서, 중간 어드레스 레벨(130)은 생략될 수 있으며, 이 경우 세그먼트(140T)가 세그먼트(138T)의 중간 어드레스를 저장할 수 있다. 다른 예들에서는, 중간 어드레스 레벨들(130 및 132) 외에 부분(134)에 부여되는 다른 중간 어드레스 레벨들이 있을 수 있다.
세그먼트(140T)의 어드레스는 다중 어드레싱 기법의 초기 어드레스일 수 있다. 초기 어드레스, 그리고 그에 따라 세그먼트(140T)는 저장 시스템(102)의 수명 동안 고정될 수 있다. 예를 들어, 초기 어드레스는 구성요소(110)의 레지스터(111)에 저장되거나 이를테면 펌웨어 코드로 저장 메모리(106)에 저장될 수 있다. 초기 어드레스는 초기화 구성요소(110)에 의해 저장 시스템(102)의 수명 전체에 걸쳐 저장 시스템(102)이 초기화 될 때마다 세그먼트(140T)의 위치를 결정하는데 사용될 수 있다. 예를 들어, 초기 어드레스는 다수의 어드레스 레벨(120, 130 및 132)을 통해 세그먼트(135T)를 간접적으로 어드레싱(예를 들어, 그것의 위치를 간접적으로 결정)하는데 사용될 수 있다.
세그먼트(140T)에 저장되고 중간 어드레스 레벨(130)의 세그먼트들(137)을 어드레싱하는데 사용되는 중간 어드레스들은 그것들이 다른 세그먼트(137)를 사용하는 것에 응답하여 변경될 수 있다는 점에서 가변적일 수 있다. 세그먼트(137)에 저장되고 중간 어드레스 레벨(132)의 세그먼트들(138)을 어드레싱하는데 사용되는 중간 어드레스들은 그것들이 다른 세그먼트(138)를 사용하는 것에 응답하여 변경될 수 있다는 점에서 가변적일 수 있다. 세그먼트(138)에 저장되고 최종 어드레스 레벨(124)의 세그먼트들(135)을 어드레싱하는데 사용되는 최종 어드레스들은 그것들이 다른 세그먼트(135)를 사용하는 것에 응답하여 변경될 수 있다는 점에서 가변적일 수 있다.
초기화 구성요소(110)는 저장 시스템(102)을 초기화할 수 있다. 초기화 동안, 초기화 구성요소(110)는 필수 정보를 결정하기 위해 도 2의 흐름도에 도시된 방법(250)을 수행할 수 있다. 블록(252)에서 초기화 구성요소(110)는 초기 어드레스에 응답하여 세그먼트(140T)로부터 세그먼트(137T)의 어드레스를 판독한다. 블록(254)에서, 초기화 구성요소(110)는 세그먼트(137T)로부터 세그먼트(138T)의 어드레스를 판독한다. 블록(256)에서, 초기화 구성요소(110)는 필수 정보의 위치를 찾기 위해 세그먼트(138T)로부터 세그먼트(135T)의 어드레스를 판독한다. 블록(256)에서, 초기화 구성요소(110)는 세그먼트(135T)로부터 필수 정보를 판독한다.
필수 정보는 L2P 매핑 정보의 시작 어드레스일 수 있다. 예를 들어, 시작 어드레스는 부분(134)에서의 세그먼트(139S)의 어드레스일 수 있다. 그 다음 초기화 구성요소(110)는 시작 어드레스에서 시작하는 L2P 매핑 정보를 RAM(112)으로 판독할 수 있다.
초기화 구성요소(110)는 어드레스 레벨(124)의 세그먼트(135) 집합과 같은 저장 메모리(106)에 저장된 명령들에 응답하여 필수 정보를 결정하기 위한 방법(250)과 같은 방법을 수행할 수 있다. 초기화의 부분으로서, 초기화 구성요소(110)는 명령들의 위치를 찾는데 도 1b에서의 다중 판독을 사용할 수 있다.
초기화 구성요소(110)는 초기화 동안 어드레스 레벨(124)의 명령들의 위치를 찾기 위해 ROM(114)에서 명령들을 실행할 수 있다. 예를 들어, ROM(114)에서의 초기 어드레스가 세그먼트(140)를 어드레싱할 수 있다. 초기화 구성요소(110)는 세그먼트(140)로부터 세그먼트(137)의 어드레스를 판독할 수 있다. 초기화 구성요소(110)는 세그먼트(137)로부터 세그먼트(138)의 어드레스를 판독한 다음, 세그먼트(138)로부터 명령들을 포함할 수 있는 세그먼트(135)의 어드레스를 판독할 수 있다. 초기화 구성요소(110)는 전술한 바와 같이, 필수 정보의 위치를 찾기 위해 명령들을 실행할 수 있다. 일부 예에서, 제어기(108)는 세그먼트(135)에서 명령들을 업데이트할 수 있어, 초기화 구성요소는 전술한 바와 같이, 다중 어드레싱을 사용하여 업데이트된 명령들을 검색할 수 있게 된다.
도 1b와 관련하여 전술된 세그먼트들을 그 후 다른 세그먼트들로 대체될 수 있는 수명 동안 임계 횟수만큼 기록될 수 있다. 예를 들어, 세그먼트에서의 메모리 셀들, 그리고 그에 따라 세그먼트는 그것들이 임계 횟수만큼 기록될 때까지, 먼저 소거 및/또는 이동되지 않고, 직접 오버라이팅될 수 있다.
세그먼트(135T)와 같은 세그먼트(135)에서의 필수 정보는 저장 시스템(102)의 수명 전체에 걸쳐 저장 시스템(102)의 매 전원 차단 동안 또는 연속적인 전원 차단들 사이에 여러 번 기록될 수 있다. 또한, 사용자 데이터는 연속적인 전원 차단들 사이에 세그먼트(135)에 기록될 수 있다. 그러나, 전원 차단 횟수가 세그먼트(135)가 기록될 수 있는 임계 횟수보다 클 수 있다. 그에 따라, 저장 시스템(102)의 수명 동안 필수 정보 및 사용자 데이터가 기록되는 횟수는 세그먼트(135)가 기록될 수 있는 임계 횟수보다 훨씬 더, 이를테면 수 자릿수(예를 들어, 약 5 자릿수 이상) 더 클 것으로 예상된다. 그에 따라, 가각 필수 펌웨어 정보와 같은 필수 정보 또는 사용자 데이터를 특정 횟수만큼 세그먼트(135T)에 기록하는 것에 응답하여, 세그먼트(135T)의 어드레스는 세그먼트(135T)의 어드레스를 현재 L2P 매핑 정보를 저장하는 세그먼트(138T) 또는 세그먼트(139) 집합의 세그먼트들 중 하나에서의 새로운 어드레스로 오버라이팅함으로써 새로운 세그먼트(135)의 새로운 어드레스로 변경(예를 들어, 업데이트)될 수 있다. 새로운 세그먼트(135)는 새로운 세그먼트(135)가 특정 횟수만큼 기록될 때(이때 새로운 세그먼트(135)의 어드레스를 새로운 세그먼트가 현재 L2P 매핑 정보를 저장하는 세그먼트(138T) 또는 세그먼트(139) 집합의 세그먼트들에서의 상이한 새로운 세그먼트(135)의 상이한 새로운 어드레스로 오버라이팅함으로써 상이한 새로운 세그먼트로 변경됨)필수 정보 또는 사용자 데이터를 저장하는데 사용될 수 있다.
제어기(108)는 저장 시스템(102)의 수명 동안 필수 정보 및 사용자 데이터가 기록되는 예상 횟수보다 큰 조합된 잠재적 기록 횟수를 갖도록 어드레스 레벨(124)의 다수의 세그먼트(135)를 할당할 수 있다. 예를 들어, 할당된 세그먼트(135) 수는 적어도 저장 시스템(102)의 수명 동안 필수 정보 및 사용자 데이터가 기록되는 예상 횟수를 각각의 세그먼트(135)의 수명 동안 각각의 세그먼트(135) 각각이 기록될 것으로 예상되는 횟수로 나눈 값보다 클 수 있다. 제어기(108)는 저장 시스템(102)의 수명 전체에 걸쳐 어드레스 레벨(124)의 세그먼트(135) 수를 고정되게 유지시킬 수 있다. 예를 들어, 제어기(108)는 세그먼트(135) 수를 정적으로 할당할 수 있다.
세그먼트(138T)는 임계 횟수가 기록될 때까지 오버라이팅될 수 있다. 그에 따라, 세그먼트(138T)에 임계 횟수만큼 기록하는 것에 응답하여, 세그먼트(137T)에서의 세그먼트(138T)의 어드레스는 세그먼트(138T)의 어드레스를 새로운 어드레스로 오버라이팅하는 것에 의해, 세그먼트(138T)로부터 새로운 세그먼트(138)로 변경함으로써 새로운 세그먼트(138)의 새로운 어드레스로 변경될 수 있다.
제어기(108)는 저장 시스템(102)의 수명 동안 필수 정보 및 사용자 데이터가 기록되는 예상 횟수보다 큰 조합된 잠재적 기록 횟수를 갖도록 어드레스 레벨(130)의 세그먼트(137) 집합의 다수의 세그먼트(137), 어드레스 레벨(132)의 세그먼트(138) 집합의 다수의 세그먼트(138) 및 부분(134)에서의 세그먼트(139) 집합의 다수의 세그먼트(139)를 할당할 수 있다. 예를 들어, 제어기(108)는 필수 정보를 저장하는데 사용되는 세그먼트(135) 수보다 큰 조합된 잠재적 기록 횟수를 갖도록 부분(134)에서의 세그먼트(138) 집합의 세그먼트(138) 수를 할당할 수 있다. 예를 들어, 집합에서의 세그먼트(138) 수는 적어도 Fw 필수 정보를 저장하는데 사용되는 세그먼트(135) 수를 각각의 세그먼트(138)의 수명 동안 각각의 세그먼트(138) 각각이 기록될 것으로 예상되는 횟수로 나눈 값보다 큰 것으로 결정될 수 있다. 제어기(108)는 저장 시스템(102)의 수명 전체에 걸쳐 어드레스 레벨(132)의 세그먼트(138) 수를 고정되게 유지시킬 수 있다. 예를 들어, 제어기(108)는 세그먼트(138) 수를 정적으로 할당할 수 있다.
세그먼트(137T)는 임계 횟수가 기록될 때까지 오버라이팅될 수 있다. 그에 따라, 세그먼트(137T)에 임계 횟수만큼 기록하는 것에 응답하여, 세그먼트(140T)에서의 세그먼트(137T)의 어드레스는 세그먼트(137T)의 어드레스를 새로운 어드레스로 오버라이팅하는 것에 의해, 세그먼트(137T)로부터 새로운 세그먼트(137)로 변경함으로써 새로운 세그먼트(137T)의 새로운 어드레스로 변경될 수 있다. 세그먼트(140T)에서의 이전에 기록된 세그먼트(137)의 이전 어드레스는 예를 들어, 세그먼트(140T)에서의 이전 어드레스를 새로운 어드레스로 오버라이팅함으로써 새로운 세그먼트(137)가 사용될 때마다 새로운 세그먼트(137)의 새로운 어드레스로 변경될 수 있다. 그러나, 전술한 바와 같이 다중 어드레스 레벨을 사용하면 세그먼트(140T)에 대한 기록 횟수를 세그먼트(140T)가 기록될 수 있는 임계 횟수 미만으로 유지시킬 수 있음으로써, 저장 시스템(102)의 수명 동안 세그먼트(140T)가 사용될 수 있게 한다.
일부 예에서, 제어기(108)는 세그먼트들(135, 137, 138 및 140)에 또는 세그먼트들(135, 137, 138 및 140)에 대응하는 테이블(이 테이블은 저장 메모리(106)에 저장될 수 있음)에서의 엔트리들에 저장될 수 있는 기록 카운트를 유지함으로써 세그먼트들(135, 137, 138 및 140)이 기록된 횟수를 추적할 수 있다.
일부 예에서, 제어기(108)는 어드레스 레벨(130)의 다수의 세그먼트(137) 집합의 세그먼트(137) 집합(예를 들어, 단편들) 및 어드레스 레벨(132)의 다수의 세그먼트(138) 집합의 세그먼트(138) 집합(예를 들어, 단편들)을 동적으로 부여할 수 있다. 예를 들어, 초기화 구성요소(110)는 백그라운드 동작들 동안 저장 메모리(106)의 다른 웨어 레벨링을 수행하는 웨어 레벨링 구성요소(116) 외에 백그라운드 동작들 동안 수행되지 않는 웨어 레벨링의 부분으로서 초기화 동안 세그먼트(137) 집합들 및/또는 세그먼트(138) 집합들을 동적으로 부여할 수 있다. 일부 예에서, 초기화 구성요소(110)는 이전에 동적으로 할당된 세그먼트 집합이 웨어 레벨링되고 해제되는 것에 응답하여 상이한 세그먼트 집합을 동적으로 부여할 수 있다. 예를 들어, 세그먼트 집합은 세그먼트들이 공통(예를 들어, 동일한) 횟수만큼 기록되었을 때 웨어 레벨링될 수 있다.
도 3a는 세그먼트들(362-0 내지 362-N)과 같은 세그먼트들(362)의 단편(360)의 일레를 도시한다. 단편(360)은 백그라운드 동작들 동안 수행되지 않는 웨어 레벨링의 부분으로서 초기화 동안 초기화 구성요소(110)에 의해 어드레스 레벨(130) 및/또는 어드레스 레벨(132)과 같은 중간 어드레스 레벨에서 동적으로 부여될 수 있다. 예를 들어, 단편(360)은 어드레스 레벨(130)의 다수의 단편 중 하나일 수 있고/있거나 어드레스 레벨(132)의 다수의 단편 중 하나일 수 있다.
각각의 세그먼트(362) 각각은 저장 영역(367)을 포함한다. 예를 들어, 세그먼트들(362-0 내지 362-N)은 각각 저장 영역들(367-0 내지 367-N)을 포함한다. 각각의 세그먼트(362) 각각은 기록 카운트(WrtCnt)를 저장하도록 구성된 기록 카운트 영역(369)을 포함한다. 예를 들어, 세그먼트들(362-0 내지 362-N)은 각각 기록 카운트들(WrtCnt(0) 내지 WrtCnt(N))를 저장하도록 구성된 기록 카운트 영역들(369-0 내지 369-N)을 포함한다.
세그먼트들(362)은 보다 높은 어드레스 레벨에 저장되는 어드레스들에 의해 어드레싱될 수 있다. 저장 영역(367)은 하위 어드레스 레벨의 어드레스를 저장할 수 있고 먼저 소거 또는나 이동되지 않고 새로운 어드레스로 오버라이팅될 수 있다. 일부 예에서, 각각의 세그먼트(362)는 단편 어드레스 및 보다 높은 어드레스 레벨에 저장되는 각각의 오프셋에 의해 어드레싱될 수 있다.
각각의 기록 카운트(WrtCnt)는 각각의 세그먼트에 관해 수행되는 기록 횟수일 수 있다. 예를 들어, 각각의 기록 카운트들(WrtCnt(0) 내지 WrtCnt(N))은 각각의 세그먼트들(362-0 내지 362-N)에 관해 수행되는 각각의 기록 횟수일 수 있다. 일부 예에서, 제어기(108)는 각각의 저장 영역(367)이 오버라이팅될 때마다 각각의 기록 카운트(WrtCnt)를 증분시킬 수 있다. 다른 예들에서, 제어기(108)는 저장 시스템(102)이 초기화될 때와 전원이 차단되려는 사이에 각각의 저장 영역(367)의 오버라이트 횟수를 추적할 수 있고, 매 전원 차단 동안 각각의 기록 카운트(WrtCnt)를 오버라이트 횟수만큼 증분시킬 수 있다. 일례에서, 기록 카운트(WrtCnt)는 세그먼트(362)로부터 생략될 수 있고 제어기(108)는 저장 메모리(106)에 저장될 수 있는 테이블에 각 세그먼트(362)에 대한 기록 카운트를 저장할 수 있다.
일부 예에서, 단편(360)은 이전에 단편(360)이 기록되기 전에 동적으로 부여될 수 있다. 그러한 예들에서, 각 세그먼트는 동일한 미리 결정된 횟수만큼 기록될 수 있고 각 세그먼트가 동일한 미리 결정된 횟수만큼 기록될 때 해제될 수 있다. 단편(360)의 각 세그먼트가 동일한 미리 결정된 횟수만큼 기록되는 것에 응답하여 단편(360)을 대체하도록 다른 단편이 동적으로 부여될 수 있다.
다른 예들에서, 단편(360)은 이전에 단편(360)이 기록된 후에, 예를 들어 세그먼트들(362-0 내지 362-N)이 이전에 각각의 상이한 횟수만큼 각각 기록된 후에 동적으로 부여될 수 있다. 도 3b는 본 개시의 다수의 실시예에 따른 (저장 메모리(102)의 초기화 동안) 단편(360)의 웨어 레벨링의 일례를 도시한다.
도 3b는 단편(360)이 처음 동적으로 할당될 때 단편(360)의 초기 상태 및 세그먼트들(362-0 내지 362-N) 각각의 기록 카운트들(WrtCnt(0) 내지 WrtCnt(N))의 대응하는 초기 값들을 도시한다. 예를 들어, 기록 카운트들의 각각의 초기 값들은 부여시에 각각의 세그먼트들(362-0 내지 362-N)이 이전에 기록된 횟수이다. 도 3b의 예에서, 기록 카운트들(WrtCnt(0) 내지 WrtCnt(N))의 초기 값들은 각각 M, P 및 m이다.
도 3b는 단편(360)의 웨어-레벨링된 상태 및 기록 카운트들(WrtCnt(0) 내지 WrtCnt(N))의 대응하는 공통 웨어-레벨링된 값을 도시한다. 예를 들어, 웨어-레벨링된 상태에서, 기록 카운트들(WrtCnt(0) 내지 WrtCnt(N))은 모두 동일한 웨어-레벨링된 값을 갖고 단편(360)은 해제되어 그 후 다른 단편(360)으로 대체될 것이다. 예를 들어, 웨어-레벨링된 값은 세그먼트들이 그것들의 수명 동안 기록될 수 있는 임계 횟수 미만일 수 있다.
도 3b의 예에서 웨어 레벨링은 제어기(108)가 웨어-레벨링된 상태에 대한 기록 카운트들의 공통 웨어-레벨링된 값을 결정하는 것을 포함한다. 제어기(108)는 단편(360)의 어느 세그먼트(362)가 이전에 가장 많이 기록되었는지를 결정함으로써 공통 웨어-레벨링된 값을 결정할 수 있다. 예를 들어, 제어기(108)는 (예를 들어, 각각의 기록 카운트 영역들(369)로부터) 기록 카운트들의 초기 값들을 판독하고 기록 카운트들의 초기 값들의 최대 값을 결정할 수 있다. 예를 들어, 제어기(108)는 M, P 및 m 중 최대(예를 들어, M) 및 대응하는 세그먼트(예를 들어, 세그먼트 362-0)를 결정할 수 있다.
그 다음 제어기(108)는 공통 웨어-레벨링된 값이 M + Fixed(여기서 Fixed는 웨어 레벨링 동안 세그먼트(362-0)가 오버라이팅될 횟수)가 되도록 정수 "Fixed"를 M에 추가함으로써 공통 웨어-레벨링된 값을 결정할 수 있다. 일부 예에서, 정수는 웨어-레벨 단편(360)이 그것이 해제된 후 동적으로 재할당될 수 있도록(예를 들어, 중간 레벨의 어드레스들을 저장하기 위해) 공통 웨어-레벨링된 값 M + Fixed가 세그먼트들이 그것들의 수명 동안 기록될 수 있는 임계 횟수 미만이도록 선택된다.
그 다음 제어기(108)는 웨어 레벨링 동안 각각의 나머지 세그먼트들(362-1 내지 362-N) 각각이 오버라이팅될 횟수를 결정할 수 있다. 예를 들어, 각각의 나머지 세그먼트 각각이 오버라이팅될 각각의 횟수는 공통 횟수에서 각각의 나머지 세그먼트의 기록 카운트의 각각의 초기 값을 뺀 값이다. 예를 들어, 세그먼트(326-1)는 Fixed + M - P 횟수만큼 오버라이팅될 수 있고, 세그먼트(326-N)는 Fixed + M - m 횟수만큼 오버라이팅될 수 있다. 각각의 나머지 세그먼트 각각의 각각의 기록 카운트 각각의 웨어-레벨링된 값은 각각의 나머지 세그먼트의 각각의 기록 카운트의 초기 값에 각각의 나머지 세그먼트가 오버라이팅될 각각의 횟수를 더한 값임에 유의한다. 예를 들어, 세그먼트(362-1)의 기록 카운트(WrtCnt(1))의 웨어-레벨링된 값은 P + Fixed + M - P = Fixed + M이고, 세그먼트(362-N)의 기록 카운트(WrtCnt(N))의 웨어-레벨링된 값은 m + Fixed + M - m = Fixed + M이다.
여기에 구체적인 예들이 도시되고 설명되었지만, 해당 기술분야의 통상의 기술자들은 동일한 결과들을 달성하도록 계산된 배열이 제시된 구체적인 실시 예들을 대체할 수 있음을 이해할 것이다. 본 개시는 본 개시의 하나 이상의 실시예의 개조 또는 변형을 커버하도록 의도된다. 상기한 설명은 제한적인 방식이 아니라 예시적인 방식으로 이루어진 것으로 이해되어야 한다. 본 개시의 하나 이상의 예의 범위는 첨부된 청구범위를 참조하여, 그러한 청구범위가 권리를 가지는 균등물들의 전체 범위와 함께 결정되어야 한다.

Claims (22)

  1. 다중 레벨 어드레싱 기법을 사용하여 초기화 프로세스 동안 장치의 비휘발성 저장 메모리 내 특정 정보의 위치에 대응하는 시작 어드레스를 결정하는 단계를 포함하되, 다중 레벨 어드레싱 기법을 사용하는 단계는:
    상기 특정 정보의 상기 위치에 대응하는 상기 시작 어드레스를 결정하기 위해 각각의 어드레스 레벨들에서 상기 저장 메모리의 다중 판독을 수행하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 초기화 프로세스 동안, 상기 특정 정보를 상기 시작 어드레스에 의해 어드레싱된 상기 저장 메모리에서의 상기 위치로부터 휘발성 메모리로 판독하는 단계를 더 포함하는, 방법.
  3. 청구항 1 또는 2에 있어서, 상기 다중 레벨 어드레싱 기법은 초기 어드레스 레벨, 최종 어드레스 레벨 및 상기 초기 어드레스 레벨과 상기 최종 어드레스 레벨 사이의 적어도 하나의 중간 어드레스 레벨을 포함하되, 상기 특정 정보의 상기 위치에 대응하는 상기 시작 어드레스는 상기 최종 어드레스 레벨에 있는, 방법.
  4. 청구항 3에 있어서, 다중 판독을 수행하는 단계는:
    상기 적어도 하나의 중간 어드레스 레벨의 세그먼트의 어드레스를 결정하기 위해 상기 초기 어드레스 레벨의 세그먼트의 판독을 수행하는 단계; 및
    상기 최종 어드레스 레벨의 세그먼트의 어드레스를 결정하기 위해 상기 적어도 하나의 중간 어드레스 레벨의 상기 세그먼트의 판독을 수행하는 단계로서, 상기 최종 어드레스 레벨의 상기 세그먼트는 상기 특정 정보의 상기 위치에 대응하는 상기 시작 어드레스를 나타내는, 상기 적어도 하나의 중간 어드레스 레벨의 상기 세그먼트의 판독을 수행하는 단계를 포함하는, 방법.
  5. 청구항 4에 있어서, 상기 초기 어드레스 레벨의 상기 세그먼트의 어드레스는 고정되고 상기 장치의 각 초기화 동안 사용되는, 방법.
  6. 청구항 4에 있어서,
    임계 횟수만큼 상기 특정 정보를 저장하는데 사용되는 세그먼트를 오버라이팅하는 것에 응답하여:
    상기 특정 정보를 저장하는데 사용되는 상기 세그먼트를 상이한 시작 어드레스를 갖는 상이한 세그먼트로 변경하는 단계; 및
    상기 최종 어드레스 레벨의 상기 세그먼트를 그것이 상기 상이한 시작 어드레스를 나타내도록 업데이트하는 단계; 및
    임계 횟수만큼 상기 최종 어드레스 레벨의 상기 세그먼트를 업데이트하는 것에 응답하여:
    상기 최종 어드레스 레벨의 상기 세그먼트를 상기 최종 어드레스 레벨의 상이한 세그먼트로 변경하는 단계; 및
    상기 적어도 하나의 중간 레벨의 상기 세그먼트를 그것이 상기 최종 어드레스 레벨의 상기 상이한 세그먼트의 어드레스의 표시를 저장하도록 업데이트하는 단계를 더 포함하는, 방법.
  7. 청구항 6에 있어서, 임계 횟수만큼 상기 특정 정보를 저장하는데 사용되는 상기 세그먼트를 오버라이팅하는 단계 및 임계 횟수만큼 상기 최종 어드레스 레벨의 상기 세그먼트를 업데이트하는 단계는 동일한 횟수만큼 상기 특정 정보를 저장하는데 사용되는 상기 세그먼트를 오버라이팅하고 상기 최종 어드레스 레벨의 상기 세그먼트를 업데이트하는 단계를 포함하는, 방법.
  8. 청구항 3에 있어서, 상기 초기화 프로세스 동안 상기 다중 레벨 어드레싱 기법을 사용하는 부분으로서 상기 적어도 하나의 중간 어드레스 레벨에 대응하는 세그먼트들의 웨어 레벨링을 수행하는 단계를 더 포함하는, 방법.
  9. 청구항 8에 있어서, 상기 적어도 하나의 중간 어드레스 레벨의 상기 웨어 레벨링을 수행하는 단계는 각각의 횟수만큼 상기 적어도 하나의 중간 어드레스 레벨에 대응하는 복수의 세그먼트의 각각의 세그먼트 각각을 상기 각각의 세그먼트들이 동일한 횟수만큼 기록되도록 오버라이팅하는 단계를 포함하되, 상기 적어도 하나의 중간 레벨에 대응하는 상기 복수의 세그먼트 중 적어도 하나는 상기 특정 정보를 저장하는데 사용되는 세그먼트가 변경되는 때마다 오버라이팅되는, 방법.
  10. 청구항 1 또는 2에 있어서, 다중 판독을 수행하는 단계는:
    상기 저장 메모리의 제1 부분에서의 제1 어드레스 레벨의 제1 세그먼트 집합의 세그먼트의 어드레스를 상기 저장 메모리의 제2 부분에서의 초기 어드레스 레벨의 세그먼트로부터 판독하는 단계;
    상기 저장 메모리의 상기 제1 부분에서의 제2 어드레스 레벨의 제2 세그먼트 집합의 세그먼트의 어드레스를 상기 제1 세그먼트 집합의 상기 세그먼트로부터 판독하는 단계; 및
    상기 최종 어드레스 레벨의 상기 특정 정보의 상기 위치를 결정하기 위해 상기 저장 메모리의 제3 부분에서의 최종 어드레스 레벨의 세그먼트 집합의 세그먼트의 어드레스를 판독하는 단계를 포함하는, 방법.
  11. 청구항 10에 있어서, 상기 시작 어드레스는 논리 대 물리 매핑 정보의 시작 어드레스를 포함하며, 상기 방법은:
    상기 논리 대 물리 매핑 정보의 상기 시작 어드레스를 최종 어드레스 레벨의 상기 세그먼트 집합의 상기 세그먼트로부터 판독하는 단계; 및
    상기 시작 어드레스를 사용하여 상기 제1 부분에서의 제3 세그먼트 집합의 세그먼트에서의 논리 대 물리 매핑 정보에 액세스하는 단계를 더 포함하는, 방법.
  12. 청구항 11에 있어서, 상기 논리 대 물리 매핑 정보를 사용하여 호스트로부터의 사용자 데이터에 대응하는 논리 어드레스를 상기 제3 부분에서의 추가 세그먼트의 물리 어드레스에 매핑하는 단계를 더 포함하는, 방법.
  13. 청구항 12에 있어서, 상기 추가 세그먼트에 사용자 데이터를 저장하는 단계를 더 포함하는, 방법.
  14. 청구항 10에 있어서, 상기 제1 세그먼트 집합의 상기 제1 세그먼트의 상기 어드레스의 카피를 상기 제2 부분에서의 상기 초기 어드레스 레벨의 추가 세그먼트에 기록하는 단계를 더 포함하는, 방법.
  15. 장치로서,
    초기 어드레스 레벨, 최종 어드레스 레벨 및 상기 초기 어드레스 레벨과 상기 최종 어드레스 레벨 사이의 적어도 하나의 중간 어드레스 레벨을 포함하는 비휘발성 저장 메모리; 및
    상기 저장 메모리에 연결되는 제어기로서, 상기 장치의 초기화 동안 초기화 정보의 위치를 결정하기 위해 다중 레벨 어드레싱 기법에 따라 다중 판독을 수행하도록 구성된, 상기 제어기를 포함하되, 상기 다중 판독은:
    상기 초기 어드레스 레벨의 초기 어드레스로부터 중간 어드레스를 판독하는 것; 및
    상기 초기화 정보의 상기 위치를 결정하기 위해 상기 적어도 하나의 중간 어드레스 레벨의 상기 중간 어드레스로부터 최종 어드레스를 판독하는 것을 포함하는, 장치.
  16. 청구항 15에 있어서, 상기 정보는 논리 대 물리 매핑 테이블의 시작 어드레스를 포함하는, 장치.
  17. 청구항 15에 있어서,
    상기 제어기가 상기 다중 판독을 수행하도록 구성되는 것은 상기 제어기가 상기 저장 메모리에 저장된 명령들에 응답하여 상기 다중 판독을 수행하도록 구성되는 것을 포함하고;
    상기 제어기는 상기 명령들을 업데이트하도록 구성되는, 장치.
  18. 청구항 15 내지 17 중 어느 한 항에 있어서, 상기 초기 어드레스는 상기 중간 어드레스 레벨의 세그먼트 집합의, 상기 중간 어드레스를 저장하는 세그먼트의 어드레스이되, 상기 제어기는 상기 세그먼트 집합을 상기 장치의 수명 전체에 걸쳐 중간 어드레스들을 저장하기 위한 상기 중간 어드레스 레벨에 할당하도록 구성되는, 장치.
  19. 청구항 15 내지 17 중 어느 한 항에 있어서, 상기 초기 어드레스는 특정 세그먼트 집합의, 상기 중간 어드레스를 저장하는 세그먼트의 어드레스이되, 상기 제어기는 특정 세그먼트 집합의 각 세그먼트가 동일한 특정 횟수만큼 기록될 때까지 상기 특정 세그먼트 집합을 중간 어드레스들을 저장하기 위한 상기 중간 어드레스 레벨에 할당하도록 그리고 상기 특정 세그먼트 집합의 각 세그먼트가 상기 동일한 특정 횟수만큼 기록되는 것에 응답하여 다른 세그먼트 집합을 중간 어드레스들을 저장하기 위한 상기 중간 어드레스 레벨에 할당하도록 구성되는, 장치.
  20. 장치로서,
    비휘발성 저장 메모리;
    상기 메모리에 연결되는 제어기로서, 상기 장치의 초기화 동안, 상기 장치의 작동에 필수적인 정보를 저장하는 상기 메모리 내 위치를 찾기 위해 다중 레벨 어드레싱을 구현하도록 구성된, 상기 제어기를 포함하되, 상기 제어기는:
    상기 메모리의 제1 부분을 초기 어드레스를 저장하도록 구성된 초기 어드레스 레벨에 부여하는 것;
    상기 메모리의 제2 부분을 상기 위치를 포함하는 최종 어드레스 레벨에 부여하는 것; 그리고
    상기 복수의 세그먼트 집합의 각각의 이전 세그먼트 집합의 각 세그먼트가 동일한 횟수만큼 기록되는 것에 응답하여, 상기 메모리의 제3 부분의 복수의 세그먼트 집합의 상이한 세그먼트 집합을 상기 초기 어드레스 레벨과 상기 최종 어드레스 레벨 사이의 중간 어드레스 레벨에 동적으로 할당하는 것에 의해 상기 다중 레벨 어드레싱을 구현하도록 구성되되, 상기 복수의 세그먼트 집합의 각 세그먼트는 상기 초기 어드레스에 의해 어드레싱되도록 구성되고 상기 위치의 어드레스를 저장하도록 구성되는, 장치.
  21. 청구항 20에 있어서, 상기 제어기는:
    이전에 가장 많은 횟수만큼 기록되었던 상기 각각의 이전 세그먼트 집합의 특정 세그먼트를 결정하기 위해 상기 각각의 이전 세그먼트 집합의 각각의 세그먼트 각각이 이전에 기록된 횟수를 결정하는 것; 그리고
    상기 동일한 횟수를 상기 가장 많은 횟수 및 상기 특정 세그먼트가 오버라이팅될 고정 횟수의 합으로 결정하는 것에 의해 상기 동일한 횟수를 결정하도록 구성되는, 장치.
  22. 청구항 21에 있어서, 상기 제어기는 상기 각각의 이전 세그먼트 집합의 각각의 세그먼트 각각에 저장된 각각의 기록 카운트를 판독함으로써 상기 각각의 이전 세그먼트 집합의 각각의 세그먼트 각각이 이전에 기록된 상기 횟수를 결정하도록 구성되는, 장치.
KR1020207020187A 2017-12-14 2018-11-15 다중 레벨 어드레싱 Abandoned KR20200089338A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/841,378 2017-12-14
US15/841,378 US10860474B2 (en) 2017-12-14 2017-12-14 Multilevel addressing
PCT/US2018/061201 WO2019118125A1 (en) 2017-12-14 2018-11-15 Multilevel addressing

Publications (1)

Publication Number Publication Date
KR20200089338A true KR20200089338A (ko) 2020-07-24

Family

ID=66816044

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207020187A Abandoned KR20200089338A (ko) 2017-12-14 2018-11-15 다중 레벨 어드레싱

Country Status (6)

Country Link
US (2) US10860474B2 (ko)
EP (1) EP3724769A4 (ko)
JP (1) JP6908789B2 (ko)
KR (1) KR20200089338A (ko)
CN (1) CN111433748A (ko)
WO (1) WO2019118125A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10732881B1 (en) * 2019-01-30 2020-08-04 Hewlett Packard Enterprise Development Lp Region cloning for deduplication
TWI761748B (zh) * 2020-01-06 2022-04-21 慧榮科技股份有限公司 多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法
CN113535089B (zh) * 2020-05-22 2024-05-17 长江存储科技有限责任公司 用于ssd的映射表的刷新方法
US11487456B1 (en) 2021-04-23 2022-11-01 Vmware, Inc. Updating stored content in an architecture utilizing a middle map between logical and physical block addresses
US11579786B2 (en) * 2021-04-23 2023-02-14 Vmware, Inc. Architecture utilizing a middle map between logical to physical address mapping to support metadata updates for dynamic block relocation
CN114448890B (zh) * 2021-12-22 2023-10-10 天翼云科技有限公司 寻址方法、装置、电子设备及存储介质
US11797214B2 (en) * 2022-01-04 2023-10-24 Vmware, Inc. Micro-batching metadata updates to reduce transaction journal overhead during snapshot deletion

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
JP4129381B2 (ja) * 2002-09-25 2008-08-06 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
WO2007013372A1 (ja) * 2005-07-29 2007-02-01 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
JPWO2008013227A1 (ja) 2006-07-26 2009-12-17 パナソニック株式会社 不揮発性記憶装置、アクセス装置、及び不揮発性記憶システム
JP4349532B2 (ja) 2007-04-11 2009-10-21 エヌイーシーコンピュータテクノ株式会社 メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
US20090089515A1 (en) * 2007-10-02 2009-04-02 Qualcomm Incorporated Memory Controller for Performing Memory Block Initialization and Copy
WO2009090692A1 (ja) * 2008-01-16 2009-07-23 Panasonic Corporation 半導体記録装置及び半導体記録システム
US8166277B2 (en) 2008-02-01 2012-04-24 International Business Machines Corporation Data prefetching using indirect addressing
KR101548175B1 (ko) * 2008-11-05 2015-08-28 삼성전자주식회사 싱글 레벨 메모리 셀 블락과 멀티 레벨 메모리 셀 블락을 포함하는 불휘발성 메모리 장치의 마모 레벨링 방법
US8180995B2 (en) * 2009-01-21 2012-05-15 Micron Technology, Inc. Logical address offset in response to detecting a memory formatting operation
US8566511B2 (en) * 2009-07-23 2013-10-22 Stec, Inc. Solid-state storage device with multi-level addressing
US20110283048A1 (en) 2010-05-11 2011-11-17 Seagate Technology Llc Structured mapping system for a memory device
US8341340B2 (en) 2010-07-21 2012-12-25 Seagate Technology Llc Multi-tier address mapping in flash memory
US8417914B2 (en) * 2011-01-06 2013-04-09 Micron Technology, Inc. Memory address translation
US8631212B2 (en) * 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
CN103946811B (zh) 2011-09-30 2017-08-11 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法

Also Published As

Publication number Publication date
EP3724769A4 (en) 2021-09-08
US20190188124A1 (en) 2019-06-20
CN111433748A (zh) 2020-07-17
US20210089443A1 (en) 2021-03-25
JP2021507373A (ja) 2021-02-22
EP3724769A1 (en) 2020-10-21
US11461228B2 (en) 2022-10-04
US10860474B2 (en) 2020-12-08
WO2019118125A1 (en) 2019-06-20
JP6908789B2 (ja) 2021-07-28

Similar Documents

Publication Publication Date Title
US11461228B2 (en) Multilevel addressing
US9842030B2 (en) Data storage device and flash memory control method
KR100914089B1 (ko) 비휘발성 저장 시스템의 소거 카운트 유지 방법 및 장치
KR101110785B1 (ko) 프로그램 가능한 내구력을 가진 플래시 메모리
US7120729B2 (en) Automated wear leveling in non-volatile storage systems
JP4588431B2 (ja) 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作
KR100910680B1 (ko) 소거 카운트 블록을 유지하는 방법 및 장치
US7441067B2 (en) Cyclic flash memory wear leveling
US5835935A (en) Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US20100125696A1 (en) Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
JPWO2016088234A1 (ja) ストレージ装置、ストレージ装置の制御方法、及びプログラムを記憶するコンピュータ読み取り可能な不揮発性記憶媒体
US20080250188A1 (en) Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Control Method
EP1713085A1 (en) Automated wear leveling in non-volatile storage systems
CN107301015B (zh) 用于减少存储器设备上的压力的系统和方法
JP2007164318A (ja) 記憶装置
JP4488048B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US12393512B2 (en) Data storage device and non-volatile memory control method
JP4558054B2 (ja) メモリシステム
KR20110015280A (ko) 플래시 메모리에서 각 블록에 대한 블록 정보를 기록하는 방법

Legal Events

Date Code Title Description
A201 Request for examination
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PC1904 Unpaid initial registration fee

St.27 status event code: A-2-2-U10-U14-oth-PC1904

St.27 status event code: N-2-6-B10-B12-nap-PC1904