KR102032605B1 - 웨어 레벨링 동작들을 수행하기 위한 장치들 및 방법들 - Google Patents

웨어 레벨링 동작들을 수행하기 위한 장치들 및 방법들 Download PDF

Info

Publication number
KR102032605B1
KR102032605B1 KR1020167036706A KR20167036706A KR102032605B1 KR 102032605 B1 KR102032605 B1 KR 102032605B1 KR 1020167036706 A KR1020167036706 A KR 1020167036706A KR 20167036706 A KR20167036706 A KR 20167036706A KR 102032605 B1 KR102032605 B1 KR 102032605B1
Authority
KR
South Korea
Prior art keywords
memory
wear leveling
command
delete delete
block
Prior art date
Application number
KR1020167036706A
Other languages
English (en)
Other versions
KR20170016385A (ko
Inventor
도미니코 몬텔레오네
지아코모 베르나르디
루카 포르지오
그라치아노 미리치그니
스테파노 자나르디
에르미니오 디 마르티노
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20170016385A publication Critical patent/KR20170016385A/ko
Application granted granted Critical
Publication of KR102032605B1 publication Critical patent/KR102032605B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

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

Abstract

본 출원에서는 명령들이 웨어 레벨링(wear leveling) 동작들을 수행하기 위한 장치들 및 방법들이 설명된다. 예시적인 장치는 웨어 레벨링 명령을 수신하도록 그리고 웨어 레벨링 명령에 응답하여 웨어 레벨링 동작을 수행하도록 구성된 메모리를 포함할 수 있다. 메모리는 웨어 레벨링 명령이 전체 기록 카운트가 임계를 초과하는 것에 응답하여 메모리에 제공되기를 추천하도록 더 구성될 수 있다. 전체 기록 카운트는 메모리가 웨어 레벨링 동작을 수행한 이후 메모리에 의해 수행되는 기록 동작들의 수를 나타낼 수 있다.

Description

웨어 레벨링 동작들을 수행하기 위한 장치들 및 방법들{APPARATUSES AND METHODS FOR PERFORMING WEAR LEVELING OPERATIONS}
메모리들은 다양한 장치, 이를테면 컴퓨터 또는 이에 한정되는 것은 아니지만 휴대용 메모리 디바이스, 고체 상태 디바이스, 개인용 디지털 보조기, 음악 플레이어, 카메라, 전화기, 무선 디바이스, 디스플레이, 칩 셋, 셋탑 박스, 게이밍 시스템, 차량, 및 가전 제품을 포함하는, 다른 디바이스에 포함될 수 있다. 메모리들은 데이터를 저장하기 위해 전력이 요구되는, 휘발성, 그리고 전력이 메모리에 제공되지 않는 경우에도 데이터가 저장되는 비-휘발성, 또는 휘발성 및 비-휘발성의 조합들일 수 있다. 그 중에서도, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 동기식 동적 랜덤 액세스 메모리(SDRAM), 플래시 메모리, 및 저항 가변적 메모리을 포함하여 메모리의 많은 상이한 유형의 휘발성 및 비 휘발성 메모리가 존재한다.
메모리들, 이를테면 저항 가변적 메모리 디바이스들은 광범위한 전자 디바이스를 위한 비-휘발성 메모리로서 사용될 수 있다. 저항 가변적 메모리 디바이스들은 그 중에서도, 예를 들어, 상 변화 메모리(PCM) 또는 저항 메모리을 포함할 수 있다. 몇몇 사례에서, 랜덤 액세스 메모리를 구현하기 위해 PCM을 사용하는 것이 바람직할 수 있다. RAM 대체용으로 PCM을 사용하는 것의 제한들의 결과로서, 메모리 시스템들에서의 PCM들의 동작이 한정되고/되거나 동작을 위한 추가 메커니즘들을 필요로 할 수 있다. 예를 들어, PCM들의 블록들은 실현가능한 RAM 대체를 보장하기 위해 RAM에 비해 비교적 적은 수의 기록 동작으로 제한될 수 있으며 추가 하우스키핑 메커니즘들(housekeeping mechanisms)(예를 들어, 웨어 레벨링(wear leveling) 동작들, 복구 동작들)을 필요로 할 수 있다.
웨어 레벨링을 수행하기 위한 장치들 및 방법이 본 출원에 개시된다. 예시적인 장치는 웨어 레벨링 명령을 수신하도록 그리고 상기 웨어 레벨링 명령에 응답하여 웨어 레벨링 동작을 수행하도록 구성될 수 있는 메모리를 포함할 수 있다. 상기 메모리는 웨어 레벨링 명령이 전체 기록 카운트 또는 로컬 기록 카운트 중 적어도 하나가 임계를 초과하는 것에 응답하여 상기 메모리에 제공되기를 추천하도록 더 구성될 수 있고, 상기 전체 기록 카운트는 상기 메모리가 웨어 레벨링 동작을 수행한 이후 상기 메모리에 의해 수행되는 기록 동작들의 수를 나타내며, 그리고 상기 로컬 기록 카운트는 상기 메모리가 웨어 레벨링 동작을 수행한 이후 상기 메모리의 블록 상에서 수행되는 기록 동작들의 수를 나타낸다.
다른 예시적인 장치는 어레이 및 상기 어레이에 결합되는 메모리 제어 유닛을 포함할 수 있다. 상기 메모리 제어 유닛은 웨어 레벨링 명령을 수신하도록 그리고 상기 웨어 레벨링 명령에 응답하여 웨어 레벨링 동작을 수행하도록 구성될 수 있다. 상기 메모리 제어 유닛은 상기 어레이의 최대 사이클 블록과 연관된 논리 어드레스가 상기 어레이의 예비 블록에 할당되도록 그리고 상기 어레이의 최소 사이클 블록과 연관된 논리 어드레스가 상기 어레이의 상기 최대 사이클 블록에 할당되도록 상기 웨어 레벨링 동작을 수행하도록 더 구성될 수 있다.
그리고 장치의 또 다른 예는 웨어 레벨링 동작을 수행한 이후 제1 수의 기록 동작을 수행하는 것 또는 상기 웨어 레벨링 동작을 수행한 이후 상기 메모리의 블록 상에서 제2 수의 기록 동작을 수행하는 것 중 적어도 하나에 응답하여 웨어 레벨링 명령이 상기 메모리에 제공되기를 추천하도록 구성된 메모리를 포함할 수 있다.
웨어 레벨링을 수행하기 위한 예시적인 방법은 전체 기록 카운트 또는 로컬 기록 카운트 중 적어도 하나가 임계를 초과하는지를 결정하는 단계를 포함할 수 있다. 여기서 상기 전체 기록 카운트는 상기 메모리가 웨어 레벨링 동작을 수행한 이후 메모리에 의해 수행되는 기록 동작들의 수를 나타낼 수 있으며, 그리고 상기 로컬 기록 카운트는 상기 메모리가 웨어 레벨링 동작을 수행한 이후 상기 메모리의 블록 상에서 수행되는 기록 동작들의 수를 나타낼 수 있다. 상기 방법은 웨어 레벨링 명령을 수신하는 단계를 더 포함할 수 있다. 상기 방법은 상기 전체 기록 카운트 또는 상기 로컬 기록 카운트 중 상기 적어도 하나가 상기 임계를 초과하지 않는 경우, 상기 웨어 레벨링 명령을 무시하는 단계, 및 상기 전체 기록 카운트 또는 상기 로컬 기록 카운트 중 상기 적어도 하나가 상기 임계를 초과하는 경우, 상기 웨어 레벨링 명령에 따라 웨어 레벨링 동작을 수행하는 단계를 더 포함할 수 있다.
다른 예시적인 방법이 또한 본 출원에 개시될 수 있다. 상기 방법은 웨어 레벨링 명령을 수신하는 단계 및 상기 웨어 레벨링 명령에 응답하여 웨어 레벨링 동작을 선택적으로 수행하는 단계를 포함할 수 있다. 여기서 상기 웨어 레벨링 동작은 어레이의 최대 사이클 블록, 최소 사이클 블록, 및 예비 블록을 식별하는 단계, 상기 최소 사이클 블록의 논리 어드레스를 상기 최대 사이클 블록의 물리 어드레스로 할당하는 단계, 상기 예비 블록의 논리 어드레스를 상기 최소 사이클 블록의 물리 어드레스로 할당하는 단계, 및 상기 최대 사이클 블록의 논리 어드레스를 상기 예비 블록의 물리 어드레스로 할당하는 단계를 포함할 수 있다.
도 1은 본 발명의 실시예에 따른 장치의 블록도이다.
도 2는 본 발명의 실시예에 따른 플래그 상태 레지스터의 예시적인 비트 할당들을 예시하는 테이블이다.
도 3은 본 발명의 실시예에 따른 메모리의 블록도이다.
도 4는 본 발명의 실시예에 따른 웨어 레벨링 동작을 수행하기 위한 방법의 흐름도이다.
도 5a는 본 발명의 실시예에 따른 웨어 레벨링 동작 동안 초기 블록 어드레스 매핑 배열의 개략도이다.
도 5b는 본 발명의 실시예에 따른 웨어 레벨링 동작 동안 중간 블록 어드레스 매핑 배열의 개략도이다.
도 5c는 본 발명의 실시예에 따른 웨어 레벨링 동작 동안 중간 블록 어드레스 매핑 배열의 개략도이다.
도 5d는 본 발명의 실시예에 따른 웨어 레벨링 동작 동안 중간 블록 어드레스 매핑 배열의 개략도이다.
도 5e는 본 발명의 실시예에 따른 웨어 레벨링 동작 동안 중간 블록 어드레스 매핑 배열의 개략도이다.
도 5f는 본 발명의 실시예에 따른 웨어 레벨링 동작 동안 최종 블록 어드레스 매핑 배열의 개략도이다.
본 출원에서는 명령들이 웨어 레벨링 동작들을 수행하기 위한 장치들 및 방법들이 설명된다. 소정의 세부사항들이 본 발명의 실시예들의 충분한 이해를 제공하기 위해 아래에 제시된다. 그러나, 해당 기술분야의 통상의 기술자에게 본 발명의 실시예들이 이들 세부사항들 없이 실시될 수 있다는 것이 명백할 것이다. 게다가, 본 출원에 설명된 본 발명의 특정한 실시예들은 예로서 제공되고 본 발명의 범위가 이들 특정한 실시예로 제한되는 것으로 사용되지 않아야 한다. 다른 사례들에서, 주지된 회로들, 제어 신호들, 타이밍 프로토콜들, 및 소프트웨어 동작들은 본 발명을 불필요하게 애매모호하게 하는 것을 회피하기 위해 상세하게 제시되지 않았다.
도 1은 본 발명의 실시예에 따른 장치(100)의 블록도이다. 장치는 회로, 하나 이상의 반도체 다이, 패키징된 반도체, 그러한 회로, 다이, 또는 패키지를 포함하는 디바이스, 및/또는 그러한 디바이스를 포함하는 시스템을 포함할 수 있다. 장치(100)는 호스트(110)(예컨대, 메모리 제어기) 및 메모리(120)를 포함할 수 있다. 호스트(110) 및 메모리(120)는 명령 및 어드레스(CA) 버스(130) 및 데이터 버스(135)에 의해 결합될 수 있다. 메모리(120)는 CA 버스(130)를 통해 호스트(110)로부터 명령들 및/또는 어드레스들을 수신하도록 구성될 수 있으며, 그리고 메모리는 버스(135)를 통해 정보를 수신하고/하거나 정보를 제공하도록 구성될 수 있다. 버스(135)를 통해 수신 및 제공된 정보는 예를 들어, 메모리(120)에 의해 저장될 그리고/또는 메모리로부터 제공될 데이터를 포함할 수 있다. 호스트(110) 및 메모리(120)가 CA 버스(130) 및 데이터 버스(135)를 통해 신호들을 제공하는 것으로 설명되지만, 몇몇 예에서, 단일 버스가 신호들을 제공하기 위해 사용될 수 있다. 예를 들어, 적어도 하나의 실시예에서, 호스트(110)는 명령들, 어드레스들, 및 데이터를 메모리(120)로 제공하도록 그리고 단일, 공유 버스를 통해, 메모리(120)로부터 데이터를 수신하도록 구성될 수 있다.
메모리(120)는 호스트(110)에 의해 제공되는 수신된 명령들 및/또는 어드레스들에 응답하여 동작들(예컨대, 판독 동작들 또는 기록 동작들)을 수행하도록 구성될 수 있다. 예로서, 메모리(120)는 판독 명령에 응답하여 데이터를 데이터 버스(135)를 통해 호스트(110)로 제공할 수 있으며, 그리고 기록 명령에 응답하여 데이터 버스(135)를 통해 수신된 기록 데이터를 저장할 수 있다. 다른 예로서, 메모리(120)는 아래에 더 설명될, 웨어 레벨링 명령에 응답하여 웨어 레벨링 동작을 수행할 수 있다.
메모리(120)는 데이터 버스(135)를 통해 호스트(110)에 정보를 더 제공할 수 있다. 메모리(120)에 의해 호스트(110)로 제공되는 정보는, 예를 들어, 하나 이상의 명령에 응답하여 호스트(110)로 제공되는 확인 응답에 포함될 수 있다. 확인 응답들은, 예를 들어, 가변 레이턴시 기간 이후에 제공될 수 있다. 도 2를 참조하면, 테이블(200)은 메모리(120)에 의해 호스트(110)로 제공되는 확인 응답들에 대한 예시적인 비트 할당들을 예시한다. 일반적으로, 확인 응답은 대기 상태와 연관된 정보, 예를 들어, 가변 레이턴시가 종료했는지를 포함할 수 있고/있거나, 하나 이상의 현재 지시와 연관된 정보를 포함할 수 있다. 예로서, 확인 응답은 명령, 이를테면 판독 명령 또는 기록 명령이 수용되었음을 그리고 메모리(120)가 명령을 수행할 것임(예를 들어, "001")을 나타낼 수 있다. 확인 응답은 에러, 이를테면, 락 에러(lock error)가 이전 동작 동안 발생했음(예를 들어, "101")을 더 나타낼 수 있다. 추가적으로 또는 대안적으로, 확인 응답은 메모리(120)가 호스트(110)가 웨어 레벨링 명령을 제공하기를 추천함(예를 들어, "011")을 나타낼 수 있다.
몇몇 예에서, 메모리(120)는 메모리(120)에 의해 수행되는 기록 동작들을 추적하도록 구성될 수 있다. 특히, 메모리(120)는 "전체 기록 카운트", 또는 메모리(120)가 웨어 레벨링 동작을 마지막으로 수행한 이후 메모리(120)에 의해 수행되는 기록 동작들의 수를 추적할 수 있다. 전체 기록 카운트가 임계를 초과했다면, 메모리(120)는 호스트(110)가 웨어 레벨링 명령을 제공하기를 추천할 수 있다. 몇몇 사례에서, 메모리(120)는 전체 기록 카운트에 기초하여 웨어 레벨링 명령들을 선택적으로 무시할 수 있다. 메모리(120)는 예를 들어, 전체 기록 카운트가 임계를 초과하지 않는 경우 웨어 레벨링 명령들을 무시할 수 있다.
추가적으로 또는 대안적으로, 몇몇 예에서, 메모리(120)는 메모리(120)와 연관된 어레이의 각 블록 상에서 수행되는 기록 동작들의 수를 추적하도록 구성될 수 있다. 특히, 메모리(120)는 각 블록에 대한 "로컬 기록 카운트", 또는 메모리(120)가 웨어 레벨링 동작을 마지막으로 수행한 이후 각 블록 상에서 메모리(120)에 의해 수행되는 기록 동작들의 수를 추적할 수 있다. 로컬 기록 카운트가 임계를 초과했다면, 메모리(120)는 호스트(110)가 웨어 레벨링 명령을 제공하기를 추천할 수 있으며, 그리고 몇몇 사례에서, 메모리(120)는 로컬 기록 카운트에 기초하여 웨어링 명령들을 선택적으로 무시할 수 있다. 이러한 방법으로, 메모리(120)는 웨어 레벨링 동작을 마지막으로 수행한 이후 특정한 블록에서(예를 들어, 최대 사이클 블록) 특정한 회수로 동작을 수행하는 것에 응답하여 호스트(110)가 웨어 레벨링 명령을 제공하기를 추천할 수 있다.
도 3은 본 발명의 실시예에 따른 메모리(300)의 블록도이다. 메모리(300)는 적어도 부분적으로, 도 1의 메모리(120)를 구현하기 위해 사용될 수 있다. 메모리(300)는 메모리 제어 유닛(310), 버퍼(320), 어레이(330), 및 플래그 상태 레지스터(350)를 포함할 수 있다. 메모리(300)는 도 1의 장치(100)에 대해 이전에 설명되었던 요소들을 포함할 수 있다. 그것들의 요소들은 도 1에 사용된 동일한 참조 부호들을 사용하여 도 3에서 식별되었고 공통 요소들의 동작은 이전에 설명된 바와 같다. 결과적으로, 이들 요소의 동작에 대한 상세한 설명이 간결함을 도모하기 위하여 반복되지 않을 것이다.
메모리 제어 유닛(310)은 메모리(300)의 하나 이상의 구성요소의 동작을 제어하도록 구성될 수 있다. 예로서, 메모리 제어 유닛(310)은 버퍼(320) 및 어레이(330)에 결합될 수 있으며, 그리고 버퍼(320) 및 어레이(330)의 동작을 제어하도록 구성될 수 있다. 메모리 제어 유닛(310)은 CA 버스(130)로부터 명령들 및/또는 어드레스들을 수신하도록 구성될 수 있으며, 그리고 버퍼(320)는 데이터 버스(135)로부터 정보를 수신하고 데이터 버스(135)로 정보를 제공하도록 구성될 수 있다. 메모리 제어 유닛(310)은 명령들 및 어드레스들이 수신되는 것에 응답하여 데이터(예를 들어, 기록 데이터 또는 판독 데이터)가 데이터 버스(340)를 통해 버퍼(320) 및 어레이(330) 사이에 제공되게 하도록 구성될 수 있다. 예를 들어, 기록 명령에 응답하여, 메모리 제어 유닛(310)은 기록 데이터가 버퍼(320)로부터 어레이(330)로 제공되게 할 수 있다. 유사하게, 판독 명령에 응답하여, 메모리 제어 유닛(310)은 판독 데이터가 어레이(330)로부터 버퍼(320)로 제공되게 할 수 있다.
메모리 제어 유닛(310)은 웨어 레벨링 동작들을 수행하도록 더 구성될 수 있다. 일반적으로, 메모리 제어 유닛(310)은 정적 웨어 레벨링, 동적 웨어 레벨링, 또는 이들의 조합에 따라 웨어 레벨링 동작들을 수행하도록 구성될 수 있다. 그에 따라, 웨어 레벨링 동작을 수행하는 것은 메모리 어레이(330)의 다양한 블록 사이에 데이터를 재분배하는 것 및/또는 그에 대응하여 하나 이상의 어드레스(예를 들어, 블록 어드레스)를 재할당하는 것을 포함할 수 있다. 몇몇 예에서, 웨어 레벨링 동작을 수행하는 것은 어드레스들을 하나 이상의 어드레스 레지스터(312)에 저장하는 것을 포함할 수 있다. 어드레스 레지스터들(312)은 휘발성 또는 비-휘발성 레지스터들일 수 있고/있거나, 예시된 바와 같이, 메모리 제어 유닛(310)에 포함될 수 있고/있거나, 메모리(300)의 하나 이상의 다른 구성요소에 위치될 수 있다.
메모리 제어 유닛(310)은 웨어 레벨링 동작을 수행하기 위한 웨어 레벨링 로직(315)을 포함할 수 있다. 웨어 레벨링 로직(315)은 하드웨어, 소프트웨어, 또는 이들의 조합들로 구현될 수 있다. 예로서, 메모리 제어 유닛(310)은 적어도 부분적으로, 제어기를 사용하여 구현될 수 있으며, 웨어 레벨링 로직(315)은 메모리 제어 유닛(310)의 하나 이상의 프로세싱 유닛(예를 들어, 프로세서)에 의해 실행가능한 하나 이상의 컴퓨터-판독가능한 지시로서 제어기의 비-휘발성 메모리에 저장될 수 있다.
몇몇 실시예에서, 메모리 제어 유닛(310)은 레지스터의 하나 이상의 상태 비트를 설정하도록 더 구성될 수 있다. 예를 들어, 메모리 제어 유닛(310)은 플래그 상태 레지스터(350)의 비트가 웨어 레벨링 동작이 수행되고 있는지를 나타내는 로직 상태를 갖게(예를 들어, 플래그 상태 레지스터(350)의 비트가 로직 상태 "1"을 갖게) 설정하도록 구성될 수 있다. 다른 예에서, 메모리 제어 유닛(310)은 플래그 상태 레지스터(350)의 비트가 웨어 레벨링 동작이 추천되는지를 나타내는 로직 상태를 갖게(예를 들어, 플래그 상태 레지스터(350)의 비트가 로직 상태 "1"을 갖게) 설정하도록 구성될 수 있다. 호스트(110)에 제공되는 확인 응답들은 플래그 상태 레지스터의 하나 이상의 비트에 기초할 수 있으며, 그에 따라, 확인 응답이 호스트(110)가 웨어 레벨링 명령을 추천하기를 추천할지는 플래그 상태 레지스터(350)의 비트에 기초할 수 있다. 웨어 레벨링 동작이 추천되는지를 나타내는 플래그 상태 레지스터(350)의 비트는 웨어 레벨링 동작이 마지막으로 수행된 이후 수행되는 기록 명령들의 수에 기초하여 메모리 제어 유닛(310)에 의해 설정될 수 있다. 추가적으로 또는 대안적으로, 메모리 제어 유닛(310)에 의해 기록되는 비트의 로직 상태는 웨어 레벨링 동작이 수행된 이후 시간량에 기초하여 설정될 수 있다. 메모리(110)는 메모리(300)에의 판독 플래그 상태 레지스터(RFSR) 명령에 응답하여 플래그 상태 레지스터(350)의 각 비트의 상태를 나타내는 정보를 제공할 수 있다.
설명된 바와 같이, 메모리(300)는 웨어 레벨링 동작이 메모리(300)에 의해 마지막으로 수행된 이후 메모리(300)에 의해 수행되는 기록 동작들의 수를 나타내는 전체 기록 카운트를 추적(예를 들어, 카운팅)할 수 있고/있거나 메모리(300)와 연관된 어레이, 이를테면 어레이(330)의 각 블록에서 수행되는 기록 동작들의 수를 나타내는 로컬 기록 카운트들을 추적할 수 있다. 예로서, 전체 기록 카운트 및/또는 로컬 기록 카운트들은 메모리 제어 유닛(310)에 위치된 카운터(311)를 사용하여 추적될 수 있다. 전체 기록 카운트 및/또는 로컬 기록 카운트가 임계를 초과하는 것에 응답하여, 메모리 제어 유닛(310)은 호스트(110)가 웨어 레벨링 명령을 제공하기를 추천할 수 있다. 몇몇 예에서, 카운터(311)는 대안적으로 버퍼(320), 또는 메모리(300)의 임의의 다른 구성요소에 저장될 수 있다.
또한, 메모리 제어 유닛(310)은 호스트(110)에 의해 제공되는 명령들에 응답하여 웨어 레벨링 동작들을 수행할 수 있는 한편, 몇몇 사례에서 메모리 제어 유닛(310)은 웨어 레벨링 동작들을 자동으로 수행할 수 있다. 예로서, 메모리 제어 유닛(310)은 전체 기록 카운트가 임계를 초과하는 것에 응답하여 웨어 레벨링 동작을 수행할 수 있다. 메모리 제어 유닛(310)이 웨어 레벨링 동작을 자동으로 수행하게 하는 전체 기록 카운트 임계는 메모리 제어 유닛(310)이 호스트(110)가 웨어 레벨링 명령을 제공하기를 추천하게 하는 전체 기록 카운트 임계를 초과할 수 있다. 예로서, 10,000 기록 동작들의 전체 기록 카운트는 메모리 제어 유닛(310)이 예를 들어 플래그 상태 레지스터(350)의 비트를 적절한 로직 상태를 갖게 설정함으로써, 호스트(110)가 웨어 레벨링 명령을 제공하기를 추천하게 할 수 있으며, 그리고 100,000 기록 동작들의 전체 기록 카운트는 메모리 제어 유닛이 웨어 레벨링 동작을 자동으로 수행하게 할 수 있다. 다른 예로서, 메모리 제어 유닛(310)은 로컬 기록 카운트가 임계를 초과하는 것에 응답하여 웨어 레벨링 동작을 수행할 수 있다. 메모리 제어 유닛(310)이 웨어 레벨링 동작을 자동으로 수행하게 하는 로컬 기록 카운트 임계는 메모리 제어 유닛(310)이 호스트(110)가 웨어 레벨링 명령을 제공하기를 추천하게 하는 로컬 기록 카운트 임계를 초과할 수 있다. 다른 예들에서, 메모리 제어 유닛(310)은 웨어 레벨링 동작들을 자동으로 수행하지 않을 수 있거나, 또는 메모리 제어 유닛(310)은 예를 들어, 호스트(110)에 의해 제공되는 제어 신호 또는 명령에 기초하여, 자동으로 웨어 레벨링 동작들을 선택적으로 수행하도록 구성될 수 있다.
어레이(330)는 현재 또는 미래에, 해당 기술분야에 공지되는 임의의 어레이를 포함할 수 있으며, 그리고 설명된 바와 같이, 블록들로 분할될 수 있다. 어레이(330)는 메모리의 휘발성 부분, 메모리(예를 들어, PCM 메모리)의 비-휘발성 부분, 또는 이들의 조합을 포함할 수 있다. 어레이(330)는 시간이 흐르면서 어레이(330)의 다양한 속성을 추적하기 위한 데이터 구조를 포함할 수 있다. 예로서, 어레이(330)는 어레이(330)의 논리 어드레스들 및 어레이(330)의 물리 어드레스들 간 관계를 명시하는 정보를 포함하는 어레이 맵(332)을 포함할 수 있다. 논리 어드레스들은 호스트에 의해 메모리에 제공되는 어드레스들, 이를테면 판독 명령 및 기록 명령과 연관된 어드레스들과 관련될 수 있다. 다른 예로서, 어레이(330)는 예를 들어, 어레이(330)의 수명 동안, 어레이(330)의 각 블록 상에서 수행되는 기록 동작들의 수를 나타낼 수 있는 정보를 포함하는 기록 카운트 맵(334)을 포함할 수 있다. 몇몇 예에서, 어드레스 맵(332) 및 기록 카운트 맵(334)은 추가적으로 또는 대안적으로 메모리 제어 유닛(310)에 저장될 수 있다. 메모리 제어 유닛(310)은 어드레스 맵(332) 및 기록 카운트 맵(334)을 판독 및/또는 수정하도록 구성될 수 있다.
도 4는 본 발명의 실시예에 따른 웨어 레벨링 동작을 수행하기 위한 방법의 흐름도(400)이다. 방법은 메모리 제어 유닛, 이를테면 도 3의 메모리 제어 유닛(310), 및 어레이, 이를테면 도 3의 어레이(330)를 사용하여 구현될 수 있다. 방법(400)은 웨어 레벨링 동작 동안의 블록 어드레스 매핑 배열들을 더 예시할 수 있는 도 5a 내지 도 5f를 참조하여 본 출원에 설명된다. 도 5a 내지 도 5f의 각각은 어드레스 맵(502), 물리적 어레이(504), 기록 카운트 맵(506), 및 어드레스 레지스터들(508)을 예시한다. 어드레스 맵(502)은 논리 어드레스들(502)(논리0-논리7) 및 관련 물리 어드레스들(502)(물리0-물리7)을 저장한다. 어드레스 맵(502), 기록 카운트 맵(506), 및 레지스터들(508)은 각각, 도 3의 어드레스 맵(332), 기록 카운트 맵(334), 및 어드레스 레지스터들(312)을 구현하기 위해 사용될 수 있다. 예를 들어, 논리 어드레스들(논리4)은 소정의 시간에 이의 기록 카운트가 카운트3에 저장되는 블록3을 가리킬 수 있는 물리 어드레스(물리4)에 대응한다.
단계(405)에서, 메모리 제어 유닛(310)은 어레이(504)의 최대 사이클 블록 및 예비 블록을 식별할 수 있다. 최대 사이클 블록은 기록 카운트 맵(506)에 의해 표시되는 바와 같이 블록 어레이(504)의 최고 기록 카운트를 갖는 블록일 수 있다. 예비 블록은 예비 웨어 레벨링 블록으로서 사용될 수 있는 어레이(504)에서의 임의의 블록일 수 있다. 예비 블록은 어떠한 데이터도 저장하지 않는 임의의 블록 및/또는 지속적인 데이터를 저장하지 않는 것으로 지정되는 블록들일 수 있다.
도 5a를 참조하면, 최대 사이클 블록 및 예비 블록을 식별하는 것은 최대 사이클 블록 및 예비 블록의 각각에 대한 어드레스 맵(502)에서 논리 어드레스 및/또는 물리 어드레스를 식별하는 것을 포함할 수 있다. 예로서, 메모리 제어 유닛(310)은 어레이(504)의 최대 사이클 블록을 식별하기 위해, 기록 카운트 맵(506)에서의 최고 카운트, 기록 카운트(NM)를 식별할 수 있다. 몇몇 예에서, 최대 사이클 블록은 스와프가능한 것으로 지정되는 어레이(504)의 블록들로부터 식별될 수 있다. 블록은 예를 들어, 블록의 "스와프 기록 카운트", 또는 블록이 웨어 레벨링 동작에 따라 새로운 블록 어드레스(예를 들어, 논리 블록 어드레스)를 마지막으로 할당한 이후 블록 상에서 수행되는 기록 동작들의 수에 기초하여, 스와프가능한 것으로 지정될 수 있다. 예로서, 적어도 하나의 실시예에서, 블록은 블록의 스와프 기록 카운트가 임계를 초과할 때 스와프가능한 것으로 지정될 수 있다. 각 블록의 스와프 기록 카운트는 기록 카운트 맵(506) 및/또는하나 이상의 레지스터(미도시)에 저장될 수 있다.
결과적으로, 메모리 제어 유닛(310)은 식별된 최대 사이클 블록과 연관된 어드레스 맵(502)에서의 논리 어드레스(LBAM) 및 물리 어드레스(PBAM)를 식별할 수 있다. 유사하게, 메모리 제어 유닛(310)은 식별된 예비 블록과 연관된 논리 어드레스(예비) 및 물리 어드레스(PBAi)를 식별할 수 있다. 단계(410)에서, 메모리 제어 유닛(310)은 어드레스 레지스터들(508)에 논리 어드레스(LBAM) 및 물리 어드레스(PBAM)를 저장할 수 있다. 도 5a에 예시된 바와 같이, 최대 사이클 블록은 블록0이며 예비 블록은 어레이(504)의 블록6이다.
도 5b 참조하면, 단계(415)에서, 메모리 제어 유닛(310)은 최대 사이클 블록(블록0)에 저장된 데이터를 예비 블록(블록6)으로 복사할 수 있으며, 단계(420)에서, 메모리 제어 유닛(310)은 예비 블록(블록6)과 연관된 기록 카운트(NS)를 업데이트(예를 들어, 증분)할 수 있다.
도 5c를 참조하면, 단계(425)에서, 메모리 제어 유닛(310)은 어드레스 레지스터들(508)에 저장된 어드레스들, 특히, 논리 어드레스(LBAM) 및 물리 어드레스(PBAM)를 할당할 수 있다. 어드레스들은 논리 어드레스(예비)가 물리 어드레스(PBAM)와 연관되도록 그리고 논리 어드레스(LBAM)가 물리 어드레스(PBAi)와 연관되도록 할당될 수 있다. 이러한 방법으로, 논리 어드레스들(LBAM, 예비)에 매핑되는 물리 어드레스들이 도 5a의 배열에 관하여 전환될 수 있다. 그에 따라, 어레이(504)의 최대 사이클 블록(블록0)은 어레이(504)의 예비 블록으로서 할당될 수 있다.
단계(430)에서, 메모리 제어 유닛(310)은 최소 사이클 블록을 식별할 수 있다. 최소 사이클 블록은 기록 카운트 맵(506)에 의해 표시되는 바와 같이 블록 어레이(504)의 블록들(블록0-블록7)의 각각의 최저 기록 카운트를 갖는 블록일 수 있다. 도 5d를 참조하면, 최소 사이클 블록을 식별하는 것은 최소 사이클 블록에 대한 논리 어드레스 및/또는 물리 어드레스를 식별하는 것을 포함할 수 있다. 예로서, 메모리 제어 유닛(310)은 어레이(504)의 최소 사이클 블록을 식별하기 위해, 기록 카운트 맵(506)에서의 최저 카운트, 기록 카운트(Nm)를 식별할 수 있다. 블록3이 도 5d에서 어레이(504)의 최소 사이클 블록으로 식별된다. 결과적으로, 메모리 제어 유닛(310)은 식별된 최소 사이클 블록과 연관된 어드레스 맵(502)에서의 논리 어드레스(LBAm) 및 물리 어드레스(PBAm)를 식별할 수 있다. 단계(435)에서, 메모리 제어 유닛(310)은 어드레스 레지스터들(508)에 논리 어드레스(LBAm) 및 물리 어드레스(PBAm)를 저장할 수 있다.
도 5e 참조하면, 단계(440)에서, 메모리 제어 유닛(310)은 최소 사이클 블록에 저장된 데이터를 예비 블록으로 복사할 수 있으며, 단계(445)에서, 예비 블록과 연관된 기록 카운트(NM)를 업데이트할 수 있다.
도 5f를 참조하면, 단계(450)에서, 메모리 제어 유닛(310)은 어드레스 레지스터들(508)에 저장된 어드레스들, 논리 어드레스(LBAm) 및 물리 어드레스(PBAm)를 할당할 수 있다. 어드레스들은 논리 어드레스(예비)가 물리 어드레스(PBAm)와 연관되도록 그리고 논리 어드레스(LBAm)가 물리 어드레스(PBAM)와 연관되도록 할당될 수 있다. 이러한 방법으로, 논리 어드레스들(LBAm, 예비)에 매핑되는 물리 어드레스들이 도 5d의 배열에 관하여 전환될 수 있다. 그에 따라, 어레이(504)의 최소 사이클 블록(블록3)은 어레이(504)의 예비 블록으로서 할당될 수 있다.
그에 따라, 메모리 제어 유닛(310)은 논리 어드레스(LBAm)가 물리 어드레스(PBAM) 및 그에 따라 어레이(504)의 최대 사이클 블록과 연관될 수 있도록 웨어 레벨링 동작을 수행할 수 있다. 추가적으로, 논리 어드레스(예비)는 물리 어드레스(PBAm) 및 그에 따라 어레이(504)의 최소 사이클 블록(블록3)과 연관될 수 있으며, 논리 어드레스(LBAM)는 물리 어드레스(PBAi)와 연관되고 그에 따라 어레이(504)의 예비 블록이 될 수 있다. 이러한 방법으로 어드레스들을 할당하는 것은, 예를 들어, 어레이(504)의 블록들(블록0-블록7) 중에 기록 동작들을 보다 균일하게 분산시키고 그렇게 함으로써 어레이(504)의 장기적인 동작을 제공할 수 있다.
방법(400)이 특정한 단계들을 특정한 순서로 포함하는 것으로 설명되었지만, 몇몇 예에서, 방법(400)의 단계들은 임의의 순서로 수행될 수 있고 또한 추가적인 단계들을 포함하고/하거나 하나 이상의 설명된 단계를 생략할 수도 있다. 몇몇 예에서, 예를 들어, 최대 및 최소 사이클 블록들은 동시에 식별될 수 있고 최대 및 최소 사이클 블록의 논리 및/또는 물리 어드레스들이 어드레스 레지스터들(508)에 동시에 저장될 수 있다.
상기 내용으로부터 본 발명의 특정 실시예들이 예시의 목적들을 위하여 본 출원에서 설명되었지만, 다양한 변형이 본 발명의 사상 및 범위를 벗어나지 않고 이루어질 수 있다는 것이 인식될 것이다. 그에 따라, 본 발명은 첨부된 청구범위에 의한 것을 제외하고 제한되지 않는다.

Claims (37)

  1. 장치로서,
    호스트(host)로부터 명령 버스를 통해 웨어 레벨링(wear leveling) 명령을 수신하도록 그리고 상기 웨어 레벨링 명령에 응답하여 웨어 레벨링 동작을 수행하도록 구성된 메모리를 포함하고, 상기 메모리는 전체 기록 카운트가 제1 임계를 초과하는 것에 응답하여 웨어 레벨링 명령을 상기 메모리에 제공하라는 추천을 데이터 버스를 통해 상기 호스트에 제공하도록 더 구성되고, 상기 메모리는 로컬 기록 카운트가 제2 임계를 초과하는 것에 응답하여 상기 웨어 레벨링 명령을 상기 메모리에 제공하라는 추천을 상기 데이터 버스를 통해 상기 호스트에 제공하도록 더 구성되고, 상기 전체 기록 카운트는 상기 메모리가 웨어 레벨링 동작을 수행한 이후 상기 메모리에 의해 수행되는 기록 동작들의 총 수를 나타내며, 그리고 상기 로컬 기록 카운트는 상기 메모리가 웨어 레벨링 동작을 수행한 이후 상기 메모리의 임의의 한 블록 상에서 수행되는 기록 동작들의 수를 나타내는, 장치.
  2. 청구항 1에 있어서,
    상기 메모리에 결합되고 상기 웨어 레벨링 명령을 상기 메모리에 제공하라는 상기 메모리로부터의 추천에 응답하여 상기 웨어 레벨링 명령을 제공하도록 구성된 상기 호스트를 더 포함하는, 장치.
  3. 청구항 1에 있어서, 상기 메모리는 확인 응답을 사용하여 상기 웨어 레벨링 명령을 상기 메모리에 제공하라는 추천을 상기 데이터 버스를 통해 상기 호스트에 제공하도록 더 구성되고, 상기 메모리는 메모리 명령에 응답하여 상기 확인 응답을 제공하도록 구성되는, 장치.
  4. 청구항 1에 있어서, 상기 메모리는 정적 웨어 레벨링, 동적 웨어 레벨링, 또는 이들의 조합에 따라 상기 웨어 레벨링 동작을 수행하도록 구성되는, 장치.
  5. 청구항 1에 있어서, 상기 메모리는 상기 전체 기록 카운트가 상기 제1 임계 이상인 제3 임계를 초과하는 것에 응답하여 웨어 레벨링 동작을 자동으로 수행하도록 더 구성되는, 장치.
  6. 청구항 1에 있어서, 상기 메모리는 상기 메모리가 상기 웨어 레벨링 동작을 수행하고 있을 때 플래그 상태 레지스터의 비트의 상태를 제1 상태로 설정하도록 그리고 상기 메모리가 상기 웨어 레벨링 동작을 수행하고 있지 않을 때 상기 플래그 상태 레지스터의 상기 비트의 상기 상태를 제2 상태로 설정하도록 더 구성되는, 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 장치로서,
    웨어 레벨링 동작을 수행한 이후 총 제1 수의 기록 동작을 수행하는 것에 응답하여 웨어 레벨링 명령을 메모리에 제공하라는 추천을 데이터 버스를 통해 호스트에 제공하도록 구성된 상기 메모리를 포함하고, 상기 메모리는 상기 웨어 레벨링 동작을 수행한 이후 상기 메모리의 임의의 한 블록 상에서 제2 수의 기록 동작을 수행하는 것에 응답하여 상기 웨어 레벨링 명령을 상기 메모리에 제공하라는 추천을 상기 데이터 버스를 통해 상기 호스트에 제공하도록 더 구성되는, 장치.
  21. 청구항 20에 있어서, 상기 제1 수의 기록 동작은 상기 제2 수의 기록 동작보다 큰, 장치.
  22. 청구항 20에 있어서,
    상기 메모리에 결합되고, 상기 웨어 레벨링 명령을 상기 메모리에 제공하라는 상기 메모리로부터의 추천에 응답하여 명령 버스를 통해 상기 웨어 레벨링 명령을 제공하도록 구성된 상기 호스트를 더 포함하는, 장치.
  23. 청구항 20에 있어서, 상기 메모리는 확인 응답을 사용하여 상기 웨어 레벨링 명령을 상기 메모리에 제공하라는 추천을 상기 데이터 버스를 통해 상기 호스트에 제공하도록 더 구성되고, 상기 메모리는 명령에 응답하여 상기 확인 응답을 제공하도록 구성되는, 장치.
  24. 청구항 20에 있어서, 상기 임의의 한 블록은 최대 사이클 블록을 포함하는, 장치.
  25. 청구항 20에 있어서, 상기 메모리는 상기 웨어 레벨링 동작을 수행한 이후 상기 메모리에서 총 제3 수의 기록 동작을 수행하는 것에 응답하여 그리고 상기 웨어 레벨링 동작을 수행한 이후 상기 메모리의 상기 임의의 한 블록 상에서 제4 수의 기록 동작을 수행하는 것에 응답하여 상기 웨어 레벨링 동작을 자동으로 수행하도록 더 구성되되,
    상기 제3 수의 기록 동작은 상기 제1 수의 기록 동작보다 크며, 그리고 상기 제4 수의 기록 동작은 상기 제2 수의 기록 동작보다 큰, 장치.
  26. 방법으로서,
    전체 기록 카운트가 제1 임계를 초과하는지 여부를 결정하는 단계 - 상기 전체 기록 카운트는 메모리가 웨어 레벨링 동작을 수행한 이후 상기 메모리에 의해 수행되는 기록 동작들의 총 수를 나타냄 -;
    로컬 기록 카운트가 제2 임계를 초과하는지 여부를 결정하는 단계 - 상기 로컬 기록 카운트는 상기 메모리가 상기 웨어 레벨링 동작을 수행한 이후 상기 메모리의 임의의 한 블록 상에서 수행되는 기록 동작들의 수를 나타냄 -;
    호스트로부터 명령 버스를 통해 상기 메모리의 메모리 제어 유닛에서 웨어 레벨링 명령을 수신하는 단계;
    상기 전체 기록 카운트가 상기 제1 임계를 초과하지 않고 상기 로컬 기록 카운트가 상기 제2 임계를 초과하지 않는 경우, 상기 웨어 레벨링 명령을 무시하는 단계; 및
    상기 전체 기록 카운트가 상기 제1 임계를 초과하거나 상기 로컬 기록 카운트가 상기 제2 임계를 초과하는 경우, 상기 웨어 레벨링 명령에 따라 웨어 레벨링 동작을 수행하는 단계를 포함하는, 방법.
  27. 삭제
  28. 청구항 26에 있어서, 상기 웨어 레벨링 명령에 따라 웨어 레벨링 동작을 수행하는 단계는:
    정적 웨어 레벨링, 동적 웨어 레벨링, 또는 이들의 조합에 따라 상기 웨어 레벨링 동작을 수행하는 단계를 포함하는, 방법.
  29. 청구항 26에 있어서,
    상기 전체 기록 카운트가 상기 제1 임계를 초과하거나 상기 로컬 기록 카운트가 상기 제2 임계를 초과하는 경우, 웨어 레벨링 명령의 상기 메모리로의 제공을 상기 호스트에게 추천하는 단계를 더 포함하는, 방법.
  30. 청구항 29에 있어서, 상기 웨어 레벨링 명령의 상기 메모리로의 제공을 상기 호스트에게 추천하는 단계는:
    상기 메모리의 플래그 상태 레지스터의 비트를 설정하는 단계를 포함하는, 방법.
  31. 청구항 26에 있어서,
    메모리 명령에 응답하여 데이터 버스를 통해 상기 호스트로 확인 응답을 제공하는 단계를 더 포함하되, 상기 확인 응답은 웨어 레벨링 명령을 제공하는 것이 추천되는지 여부를 나타내는, 방법.
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
KR1020167036706A 2014-05-28 2015-04-24 웨어 레벨링 동작들을 수행하기 위한 장치들 및 방법들 KR102032605B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/288,663 2014-05-28
US14/288,663 US10365835B2 (en) 2014-05-28 2014-05-28 Apparatuses and methods for performing write count threshold wear leveling operations
PCT/US2015/027490 WO2015183443A1 (en) 2014-05-28 2015-04-24 Apparatuses and methods for performing wear leveling operations

Publications (2)

Publication Number Publication Date
KR20170016385A KR20170016385A (ko) 2017-02-13
KR102032605B1 true KR102032605B1 (ko) 2019-10-15

Family

ID=54699512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167036706A KR102032605B1 (ko) 2014-05-28 2015-04-24 웨어 레벨링 동작들을 수행하기 위한 장치들 및 방법들

Country Status (4)

Country Link
US (2) US10365835B2 (ko)
KR (1) KR102032605B1 (ko)
CN (2) CN106462500A (ko)
WO (1) WO2015183443A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US11249652B1 (en) * 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
KR102615806B1 (ko) * 2016-05-25 2023-12-21 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
KR20180094391A (ko) 2017-02-15 2018-08-23 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11074018B2 (en) * 2017-04-06 2021-07-27 International Business Machines Corporation Network asset management
US10379757B2 (en) * 2017-04-07 2019-08-13 Micron Technology, Inc. Methods of sketch-based memory management and memory devices utilizing the same
KR20180123385A (ko) * 2017-05-08 2018-11-16 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
US10198195B1 (en) * 2017-08-04 2019-02-05 Micron Technology, Inc. Wear leveling
US11733873B2 (en) 2017-12-01 2023-08-22 Micron Technology, Inc. Wear leveling in solid state drives
KR102534648B1 (ko) * 2018-03-08 2023-05-22 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10846955B2 (en) 2018-03-16 2020-11-24 Micron Technology, Inc. Black box data recorder for autonomous driving vehicle
US10705747B2 (en) * 2018-03-21 2020-07-07 Micron Technology, Inc. Latency-based storage in a hybrid memory system
US11094148B2 (en) 2018-06-18 2021-08-17 Micron Technology, Inc. Downloading system memory data in response to event detection
US10713155B2 (en) * 2018-07-19 2020-07-14 Micron Technology, Inc. Biased sampling methodology for wear leveling
WO2020019255A1 (zh) 2018-07-26 2020-01-30 华为技术有限公司 一种数据块处理的方法及控制器
EP3627308A1 (en) * 2018-09-20 2020-03-25 STMicroelectronics Srl A method of managing memories, corresponding circuit, device and computer program product
US10810119B2 (en) * 2018-09-21 2020-10-20 Micron Technology, Inc. Scrubber driven wear leveling in out of place media translation
US10860219B2 (en) * 2018-10-05 2020-12-08 Micron Technology, Inc. Performing hybrid wear leveling operations based on a sub-total write counter
US11782605B2 (en) * 2018-11-29 2023-10-10 Micron Technology, Inc. Wear leveling for non-volatile memory using data write counters
US11410475B2 (en) 2019-01-31 2022-08-09 Micron Technology, Inc. Autonomous vehicle data recorders
US11373466B2 (en) 2019-01-31 2022-06-28 Micron Technology, Inc. Data recorders of autonomous vehicles
JP6727365B1 (ja) * 2019-03-27 2020-07-22 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN112233715B (zh) * 2019-07-15 2024-06-18 美光科技公司 用于存储器系统的维护操作
CN112230845B (zh) * 2019-07-15 2024-06-14 美光科技公司 存储器子系统中基于子组写计数的损耗均衡
US11481119B2 (en) * 2019-07-15 2022-10-25 Micron Technology, Inc. Limiting hot-cold swap wear leveling
US11748626B2 (en) 2019-08-12 2023-09-05 Micron Technology, Inc. Storage devices with neural network accelerators for automotive predictive maintenance
US11775816B2 (en) 2019-08-12 2023-10-03 Micron Technology, Inc. Storage and access of neural network outputs in automotive predictive maintenance
US11586943B2 (en) 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network inputs in automotive predictive maintenance
US11853863B2 (en) 2019-08-12 2023-12-26 Micron Technology, Inc. Predictive maintenance of automotive tires
US11635893B2 (en) 2019-08-12 2023-04-25 Micron Technology, Inc. Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks
US11586194B2 (en) 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network models of automotive predictive maintenance
US11702086B2 (en) 2019-08-21 2023-07-18 Micron Technology, Inc. Intelligent recording of errant vehicle behaviors
US11361552B2 (en) 2019-08-21 2022-06-14 Micron Technology, Inc. Security operations of parked vehicles
US11498388B2 (en) 2019-08-21 2022-11-15 Micron Technology, Inc. Intelligent climate control in vehicles
US11409654B2 (en) 2019-09-05 2022-08-09 Micron Technology, Inc. Intelligent optimization of caching operations in a data storage device
US11650746B2 (en) 2019-09-05 2023-05-16 Micron Technology, Inc. Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles
US11693562B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Bandwidth optimization for different types of operations scheduled in a data storage device
US11435946B2 (en) * 2019-09-05 2022-09-06 Micron Technology, Inc. Intelligent wear leveling with reduced write-amplification for data storage devices configured on autonomous vehicles
US11436076B2 (en) 2019-09-05 2022-09-06 Micron Technology, Inc. Predictive management of failing portions in a data storage device
US11169713B2 (en) * 2019-10-03 2021-11-09 Landis+Gyr Innovations, Inc. Restricting write cycles to extend the lifetime of nonvolatile memory
US11250648B2 (en) 2019-12-18 2022-02-15 Micron Technology, Inc. Predictive maintenance of automotive transmission
US11709625B2 (en) 2020-02-14 2023-07-25 Micron Technology, Inc. Optimization of power usage of data storage devices
US11531339B2 (en) 2020-02-14 2022-12-20 Micron Technology, Inc. Monitoring of drive by wire sensors in vehicles
US11379156B2 (en) * 2020-08-19 2022-07-05 Micron Technology, Inc. Write type indication command
US11681469B2 (en) * 2021-02-22 2023-06-20 Micron Technology, Inc. Storing and recovering critical data in a memory device
JP2022147574A (ja) 2021-03-23 2022-10-06 キオクシア株式会社 メモリコントローラ、及びメモリシステム
CN117632038B (zh) * 2024-01-25 2024-04-02 合肥兆芯电子有限公司 损耗平衡方法、存储器存储装置及存储器控制电路单元

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161880A1 (en) 2006-12-27 2010-06-24 Guangqing You Flash initiative wear leveling algorithm
US20120173809A1 (en) * 2011-01-05 2012-07-05 Tae-Kyeong Ko Memory Device Having DRAM Cache and System Including the Memory Device

Family Cites Families (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68913695T2 (de) 1988-12-27 1994-10-20 Nippon Electric Co Mikrorechner mit einem elektrisch löschbaren und programmierbaren nichtflüchtigen Speicher.
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5369616A (en) 1992-10-30 1994-11-29 Intel Corporation Method for assuring that an erase process for a memory array has been properly completed
US6201739B1 (en) 1996-09-20 2001-03-13 Intel Corporation Nonvolatile writeable memory with preemption pin
JPH10312684A (ja) 1997-05-13 1998-11-24 Fujitsu Ltd 半導体集積回路
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US5822244A (en) 1997-09-24 1998-10-13 Motorola, Inc. Method and apparatus for suspending a program/erase operation in a flash memory
JP4034923B2 (ja) 1999-05-07 2008-01-16 富士通株式会社 半導体記憶装置の動作制御方法および半導体記憶装置
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
US6314049B1 (en) 2000-03-30 2001-11-06 Micron Technology, Inc. Elimination of precharge operation in synchronous flash memory
US7250093B2 (en) * 2001-02-19 2007-07-31 Basf Aktiengesellschaft Method using a dry fluidised bed for producing thin, absorbent surface structures
JP4762435B2 (ja) 2001-05-09 2011-08-31 富士通セミコンダクター株式会社 内部カウンタを複数備えた不揮発性半導体記憶装置
US20040098549A1 (en) 2001-10-04 2004-05-20 Dorst Jeffrey R. Apparatus and methods for programmable interfaces in memory controllers
JP4077295B2 (ja) 2002-10-23 2008-04-16 株式会社東芝 同期型半導体記憶装置及びその動作方法
JP2004171678A (ja) 2002-11-20 2004-06-17 Sony Corp 情報記憶装置、情報記憶方法、及び情報記憶プログラム
JP4540352B2 (ja) 2003-09-12 2010-09-08 ルネサスエレクトロニクス株式会社 記憶装置
US6996016B2 (en) 2003-09-30 2006-02-07 Infineon Technologies Ag Echo clock on memory system having wait information
CN100437456C (zh) 2003-12-09 2008-11-26 松下电器产业株式会社 电子装置及其控制方法、主机装置及其控制方法
US7680966B1 (en) 2004-06-29 2010-03-16 National Semiconductor Corporation Memory interface including generation of timing signals for memory operation
US7624209B1 (en) 2004-09-15 2009-11-24 Xilinx, Inc. Method of and circuit for enabling variable latency data transfers
US20060069812A1 (en) 2004-09-30 2006-03-30 Osborne Randy B Method to mitigate performance turnaround in a bidirectional interconnect
US7139673B1 (en) 2004-11-05 2006-11-21 Xilinx, Inc. Method of and circuit for verifying a data transfer protocol
JP2006139556A (ja) 2004-11-12 2006-06-01 Toshiba Corp メモリカード及びそのカードコントローラ
JP4734033B2 (ja) 2005-05-30 2011-07-27 株式会社東芝 記憶装置
US7200043B2 (en) 2005-05-31 2007-04-03 Elite Semiconductor Memory Technology, Inc. Nonvolatile memory using a two-step cell verification process
US20070005922A1 (en) 2005-06-30 2007-01-04 Swaminathan Muthukumar P Fully buffered DIMM variable read latency
US7673111B2 (en) 2005-12-23 2010-03-02 Intel Corporation Memory system with both single and consolidated commands
US7571297B2 (en) 2005-12-30 2009-08-04 Intel Corporation Data invalid signal for non-deterministic latency in a memory system
US20070208904A1 (en) 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
KR100816748B1 (ko) 2006-03-16 2008-03-27 삼성전자주식회사 프로그램 서스펜드/리줌 모드를 지원하는 상 변화 메모리장치 및 그것의 프로그램 방법
KR100843546B1 (ko) 2006-11-21 2008-07-04 삼성전자주식회사 멀티 칩 패키지 플래시 메모리 장치 및 그것의 상태 신호독출 방법
US7515500B2 (en) * 2006-12-20 2009-04-07 Nokia Corporation Memory device performance enhancement through pre-erase mechanism
US7913032B1 (en) * 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US20080270811A1 (en) 2007-04-26 2008-10-30 Super Talent Electronics Inc. Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory
US7643334B1 (en) 2007-04-26 2010-01-05 Super Talent Electronics, Inc. High-speed controller for phase-change memory peripheral device
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US8099632B2 (en) 2007-08-08 2012-01-17 Sandisk Technologies Inc. Urgency and time window manipulation to accommodate unpredictable memory operations
JP2009086988A (ja) 2007-09-28 2009-04-23 Toshiba Corp メモリカード
US7865658B2 (en) 2007-12-31 2011-01-04 Sandisk Il Ltd. Method and system for balancing host write operations and cache flushing
US8001331B2 (en) 2008-04-17 2011-08-16 Arm Limited Efficiency of cache memory operations
TWI349179B (en) * 2008-07-03 2011-09-21 Aopen Inc Modularized device and method for assembling the modularized device
US8704772B2 (en) * 2008-07-16 2014-04-22 Enpulz, L.L.C. Writing pad with synchronized background audio and video and handwriting recognition
TWI385669B (zh) 2008-07-23 2013-02-11 Phison Electronics Corp 用於快閃記憶體的平均磨損方法、儲存系統與控制器
US7929356B2 (en) 2008-09-05 2011-04-19 Atmel Corporation Method and system to access memory
KR20100055105A (ko) 2008-11-17 2010-05-26 삼성전자주식회사 상 변화 메모리 장치
JP2010123164A (ja) 2008-11-18 2010-06-03 Elpida Memory Inc 半導体記憶装置及びその制御方法
US8064250B2 (en) 2008-12-16 2011-11-22 Micron Technology, Inc. Providing a ready-busy signal from a non-volatile memory device to a memory controller
US20100161932A1 (en) * 2008-12-18 2010-06-24 Ori Moshe Stern Methods for writing data from a source location to a destination location in a memory device
KR100985410B1 (ko) 2008-12-30 2010-10-06 주식회사 하이닉스반도체 반도체 장치
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US7979759B2 (en) 2009-01-08 2011-07-12 International Business Machines Corporation Test and bring-up of an enhanced cascade interconnect memory system
US8250417B2 (en) * 2009-01-14 2012-08-21 Micron Technology, Inc. Method for detecting flash program failures
US8090899B1 (en) * 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
US8387065B2 (en) 2009-04-16 2013-02-26 International Business Machines Corporation Speculative popcount data creation
CN102598141A (zh) 2009-06-10 2012-07-18 美光科技公司 用于减少存储器阵列中的读取等待时间的存储器操作暂停
US8370712B2 (en) * 2009-07-23 2013-02-05 International Business Machines Corporation Memory management in a non-volatile solid state memory device
US8004884B2 (en) 2009-07-31 2011-08-23 International Business Machines Corporation Iterative write pausing techniques to improve read latency of memory systems
KR20110014923A (ko) 2009-08-06 2011-02-14 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
KR101585213B1 (ko) 2009-08-18 2016-01-13 삼성전자주식회사 라이트 레벨링 동작을 수행하기 위한 메모리 장치의 제어 방법, 메모리 장치의 라이트 레벨링 방법, 및 라이트 레벨링 동작을 수행하는 메모리 컨트롤러, 메모리 장치, 및 메모리 시스템
US8327092B2 (en) 2009-09-21 2012-12-04 Freescale Semiconductor, Inc. Memory device configurable as interleaved or non-interleaved memory
JP2011129192A (ja) * 2009-12-16 2011-06-30 Samsung Electronics Co Ltd 半導体記憶装置
US8327052B2 (en) 2009-12-23 2012-12-04 Spansion Llc Variable read latency on a serial memory bus
TWI447735B (zh) * 2010-02-05 2014-08-01 Phison Electronics Corp 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統
US8291126B2 (en) 2010-03-23 2012-10-16 Spansion Llc Variable read latency on a serial memory bus
US9104546B2 (en) 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US8522067B2 (en) 2010-06-17 2013-08-27 Stmicroelectronics, Inc. Variable latency interface for read/write channels
KR101131560B1 (ko) 2010-07-15 2012-04-04 주식회사 하이닉스반도체 웨어 레벨링을 수행하는 비휘발성 메모리 장치 및 그의 제어 방법
CN101930404B (zh) * 2010-08-27 2012-11-21 威盛电子股份有限公司 存储装置及其操作方法
US9355051B2 (en) 2010-09-10 2016-05-31 Cypress Semiconductor Corporation Apparatus, method, and manufacture for using a read preamble to optimize data capture
KR20120027987A (ko) * 2010-09-14 2012-03-22 삼성엘이디 주식회사 질화갈륨계 반도체소자 및 그 제조방법
US20120117303A1 (en) 2010-11-04 2012-05-10 Numonyx B.V. Metadata storage associated with flash translation layer
US8645637B2 (en) 2010-11-16 2014-02-04 Micron Technology, Inc. Interruption of write memory operations to provide faster read access in a serial interface memory
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
TWI417727B (zh) 2010-11-22 2013-12-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與回應主機指令的方法
KR20120096212A (ko) * 2011-02-22 2012-08-30 삼성전자주식회사 비휘발성 메모리 장치, 메모리 컨트롤러, 및 이들의 동작 방법
US8649210B2 (en) 2011-09-06 2014-02-11 Mediatek Inc. DDR PSRAM and data writing and reading methods thereof
US10079068B2 (en) * 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8762625B2 (en) 2011-04-14 2014-06-24 Apple Inc. Stochastic block allocation for improved wear leveling
US8806171B2 (en) 2011-05-24 2014-08-12 Georgia Tech Research Corporation Systems and methods providing wear leveling using dynamic randomization for non-volatile memory
US8694719B2 (en) * 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
US20130028296A1 (en) * 2011-07-27 2013-01-31 Khandekar Aamod D Chip x2 correlation hypotheses using chip x1 samples
US9104547B2 (en) * 2011-08-03 2015-08-11 Micron Technology, Inc. Wear leveling for a memory device
KR101804521B1 (ko) 2011-08-16 2017-12-07 에스케이하이닉스 주식회사 집적회로 칩, 이를 포함하는 시스템 및 동작방법, 메모리 및 메모리 시스템
EP2761471B1 (en) * 2011-09-30 2017-10-25 Intel Corporation Statistical wear leveling for non-volatile system memory
JP5642649B2 (ja) 2011-10-07 2014-12-17 シャープ株式会社 半導体記憶装置及び半導体装置
US9208070B2 (en) * 2011-12-20 2015-12-08 Sandisk Technologies Inc. Wear leveling of multiple memory devices
US9907699B2 (en) * 2012-07-05 2018-03-06 Domestic Legacy Limited Partnership One step tympanostomy tube and method of inserting same
US20140013028A1 (en) * 2012-07-09 2014-01-09 Hamilton Sundstrand Corporation Hardware flash memory wear monitoring
CN102789423B (zh) 2012-07-11 2014-12-10 山东华芯半导体有限公司 四池闪存磨损均衡方法
TWI483111B (zh) * 2012-09-20 2015-05-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US20140089562A1 (en) 2012-09-27 2014-03-27 Hitachi, Ltd. Efficient i/o processing in storage system
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
US20150363120A1 (en) * 2013-06-25 2015-12-17 Micron Technology, Inc. On demand block management
US9195590B2 (en) * 2013-08-29 2015-11-24 Micron Technology, Inc. Sub-sector wear leveling in memories
US20150095551A1 (en) 2013-09-30 2015-04-02 Micron Technology, Inc. Volatile memory architecutre in non-volatile memory devices and related controllers
US9824004B2 (en) 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
KR102042859B1 (ko) * 2013-10-14 2019-11-08 에스케이하이닉스 주식회사 반도체 장치 및 그 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161880A1 (en) 2006-12-27 2010-06-24 Guangqing You Flash initiative wear leveling algorithm
US20120173809A1 (en) * 2011-01-05 2012-07-05 Tae-Kyeong Ko Memory Device Having DRAM Cache and System Including the Memory Device

Also Published As

Publication number Publication date
CN106462500A (zh) 2017-02-22
US20190347012A1 (en) 2019-11-14
US11347402B2 (en) 2022-05-31
US20150347038A1 (en) 2015-12-03
KR20170016385A (ko) 2017-02-13
US10365835B2 (en) 2019-07-30
WO2015183443A1 (en) 2015-12-03
CN115512754A (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
KR102032605B1 (ko) 웨어 레벨링 동작들을 수행하기 위한 장치들 및 방법들
US10223263B2 (en) Apparatuses and methods for providing data to a configurable storage area
US10445005B2 (en) Memory system and operating method thereof
US9317214B2 (en) Operating a memory management controller
US10083120B2 (en) Memory system, and address mapping method and access method thereof
US20140078344A1 (en) Device and method processing continuous shooting image data
US20190095107A1 (en) Data classification for placement within storage devices
US20170220462A1 (en) Data storage method and system thereof
US20190138453A1 (en) Computer memory content movement
US10156996B2 (en) Memory device and read processing method using read counts, first, second, and third addresses
WO2015156937A1 (en) Multi-level memory hierarchy
JP2020123040A (ja) メモリシステムおよび制御方法
US10019358B2 (en) Bank address remapping to load balance memory traffic among banks of memory
US9529547B2 (en) Memory device and method for organizing a homogeneous memory
US10713159B2 (en) Semiconductor device for managing wear leveling operation of a nonvolatile memory device
JP2016085677A (ja) メモリ管理方法、メモリ管理プログラム及び情報処理装置
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP6339645B2 (ja) メモリデバイスおよび方法
US11226738B2 (en) Electronic device and data compression method thereof
TW201941208A (zh) 記憶體管理方法與儲存控制器
US10445014B2 (en) Methods of operating a computing system including a host processing data of first size and a storage device processing data of second size and including a memory controller and a non-volatile memory
US9886380B2 (en) Method and device of memory space management
US11314650B2 (en) Operating method of memory system that checks stored data that is reused and generating a flag/bit signal

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant