KR20150095781A - 메모리 리클레임 방법 및 장치 - Google Patents

메모리 리클레임 방법 및 장치 Download PDF

Info

Publication number
KR20150095781A
KR20150095781A KR1020157018254A KR20157018254A KR20150095781A KR 20150095781 A KR20150095781 A KR 20150095781A KR 1020157018254 A KR1020157018254 A KR 1020157018254A KR 20157018254 A KR20157018254 A KR 20157018254A KR 20150095781 A KR20150095781 A KR 20150095781A
Authority
KR
South Korea
Prior art keywords
memory
reclaim
nvm
page
inactive
Prior art date
Application number
KR1020157018254A
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 KR20150095781A publication Critical patent/KR20150095781A/ko

Links

Images

Classifications

    • 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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명의 실시예들은 메모리 리클레임 방법 및 장치를 제공한다. 메모리 리클레임 방법은: 메모리 리클레임 요청 메시지를 수신하는 단계 - 메모리 리클레임 요청 메시지는 리클레임 식별자를 포함하고, 리클레임 식별자는 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용됨 -; 및 리클레임 식별자에 따라 비휘발성 메모리의 비활성 메모리 페이지를 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계를 포함한다. 본 발명의 실시예들에서의 메모리 리클레임 방법 및 장치에 따르면, 비휘발성 메모리의 비활성 메모리 페이지가 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임되어, NVM의 상대적으로 적은 양의 비활성 메모리 페이지 기록 횟수를 가지는 페이지가 먼저 리클레임되고, NVM의 상대적으로 큰 양의 비활성 메모리 페이지 기록 횟수를 가지는 페이지는 나중에 리클레임된다. 그러므로, NVM의 웨어 레벨링이 달성되고, 저장 유닛의 안정성과 신뢰성이 향상된다.

Description

메모리 재활용 방법 및 장치{MEMORY RECYCLING METHOD AND DEVICE}
본 출원은 "MEMORY RECLAMATION METHOD AND APPARATUS"로 명명되어 2013년 2월 22일에 중국전리청에 출원된 중국전리신청 제201310057351.1호에 대한 우선권을 주장하며, 그 전체 내용은 참조에 의해 본 명세서에 병합된다.
본 발명의 실시예들은 컴퓨터 기술 분야에 관한 것이며, 구체적으로는 메모리 리클레임 방법 및 장치에 관한 것이다.
메모리 유닛으로 구성되는 메모리 장치는 대체로 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, 약어로 DRAM)과 비휘발성 메모리(Non-Volatile Memory, 약어로 NVM)를 포함한다. DRAM에 의해 발생할 수 있는 기록 횟수의 양(quantity of write times)은 크지만, 집적 수준은 낮아서, 집적되는 저장 공간이 한정될 수 있다. NVM의 집적 수준은 더 높아서, NVM은 큰 메모리 용량을 가지는 메모리 유닛을 통합할 수 있으나, NVM에 의해 발생할 수 있는 기록 횟수의 양이 상대적으로 낮다. 사람들은 저장 장치의 메모리 용량에 대해 점점 증가하는 더 높은 요구를 가지고 있고, 저장 장치의 메모리 용량이 더 크고, 더 안정적이고, 더 신뢰할 수 있기를 원하고 있는데, DRAM과 NVM을 포함하는 혼합 구조로 메모리 유닛을 통합하면, DRAM과 NVM을 함께 사용함으로써 저장 장치의 저장 용량을 향상시킬 수 있다.
종래기술에서는, DRAM과 NVM의 혼합 구조인 저장 장치의 운영 시스템이 페이지 리클레임 동작(page reclaiming operation)을 수행하는 경우, 최소 최근 사용(Least Recently Used, 약어로 LRU) 알고리즘이 이용되어, 리클레임을 위해 비활성 NVM 페이지의 링크된 리스트의 헤드들로부터 대응하는 양의 페이지를 선택한다. 이러한 방법은 많은 양의 기록 횟수를 가지는 NVM 페이지가 먼저 리클레임되도록 할 수 있고, 이어서 많은 양의 기록 횟수를 가지는 NVM 페이지가 심각하게 훼손되며, 전제 저장 유닛의 안정성과 신뢰성이 영향을 받는다.
본 발명의 실시예들의 목적은 NVM의 메모리 페이지의 불균형적 웨어(wear)라는 문제를 해결하는데 중점을 둔 메모리 리클레임 방법을 제공하는 것이다.
제1 태양에 따르면, 본 발명은 메모리 리클레임 방법을 제공하며,
메모리 리클레임 요청 메시지(memory reclamation request message)를 수신하는 단계 - 상기 메모리 리클레임 요청 메시지는 리클레임 식별자를 포함하고, 상기 리클레임 식별자는 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용됨 -; 및
상기 리클레임 식별자에 따라 비휘발성 메모리(non-volatile memory, NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계를 포함한다.
제1 태양을 참고하여, 제1 태양의 가능한 제1 구현 방식에서는, 상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계 이전에, 상기 방법은:
상기 NVM의 비활성 메모리 페이지의 기록 횟수를 판정하는 단계; 및
상기 NVM의 비활성 메모리 페이지의 기록 횟수에 따라, 상기 비활성 메모리 페이지의 링크된 리스트의 대응하는 세그먼트 내에 상기 NVM의 비활성 메모리 페이지를 저장하는 단계 - 상기 비활성 메모리 페이지의 링크된 리스트는 복수의 세그먼트를 포함하고, 각각의 세그먼트는 기록 횟수의 설정 범위 내에서 상기 NVM의 비활성 메모리 페이지를 저장하는데 이용됨 -를 더 포함한다.
제1 태양의 가능한 제1 구현 방식을 참고하여, 제1 태양의 가능한 제2 구현 방식에서는, 상기 비활성 메모리 페이지의 링크된 리스트에 포함된 복수의 세그먼트가, 상기 비활성화 메모리 페이지의 링크된 리스트 내에서, 대응하는 기록 횟수의 설정 범위의 오름차순으로 분류된다.
제1 태양의 가능한 제1 구현 방식 또는 제1 태양의 가능한 제2 구현 방식을 참고하여, 제1 태양의 가능한 제3 구현 방식에서는, 상기 리클레임 식별자에 따라 상기 NVM의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계는:
상기 비활성 메모리 페이지의 링크된 리스트 내에서 상기 기록 횟수의 설정 범위의 오름차순으로, 하나 이상의 세그먼트 내에 있는 상기 NVM의 비활성 메모리 페이지를 상기 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치(match)하는 양만큼 리클레임하는 단계를 포함한다.
제1 태양을 참고하여, 제1 태양의 가능한 제4 구현 방식에서는, 상기 리클레임 식별자에 따라 상기 NVM의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계 이전에, 상기 방법은:
상기 NVM의 비활성 메모리 페이지의 기록 횟수를 판정하는 단계; 및
상기 비활성 메모리 페이지의 링크된 리스트 내의 최후 페이지 그룹(last page group) 내에 상기 NVM의 비활성 메모리 페이지를 저장하는 단계 - 페이지 리스트는 복수의 페이지 그룹을 포함하고, 각각의 페이지 그룹은 기록 횟수의 오름차순으로 분류되는 상기 NVM의 비활성 메모리 페이지의 설정된 양을 포함함 -를 더 포함한다.
제1 태양의 가능한 제4 구현 방식을 참고하여, 제1 태양의 가능한 제5 구현 방식에서는, 상기 비활성 메모리 페이지의 링크된 리스트 내에 포함된 복수의 페이지 그룹이, 비활성 메모리 페이지의 링크된 리스트 내에서 구축 시간의 순서로 분류된다.
제1 태양의 가능한 제4 구현 방식 또는 제1 태양의 가능한 제5 구현 방식을 참고하여, 제1 태양의 가능한 제6 구현 방식에서는, 상기 리클레임 식별자에 따라 상기 NVM의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계는:
상기 비활성 메모리 페이지의 링크된 리스트 내에서 상기 구축 시간의 순서로, 하나 이상의 페이지 그룹 내에 있는 상기 NVM의 비활성 메모리 페이지를 상기 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하는 단계를 포함한다.
제2 태양에 따르면, 본 발명의 일 실시예는 메모리 리클레임 장치를 제공하며:
메모리 리클레임 요청 메시지를 수신하도록 구성된 수신 모듈 - 상기 메모리 리클레임 요청 메시지는 리클레임 식별자를 포함하고, 상기 리클레임 식별자는 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용됨 -; 및
상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하도록 구성된 메모리 리클레임 모듈을 포함한다.
제2 태양을 참고하여, 제2 태양의 가능한 제1 구현 방식에서는, 상기 장치는:
상기 메모리 리클레임 모듈이 상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하기 전에, 상기 NVM의 비활성 메모리 페이지의 기록 횟수를 판정하도록 구성된 판정 모듈; 및
상기 NVM의 비활성 메모리 페이지의 기록 횟수에 따라, 상기 비활성 메모리 페이지의 링크된 리스트의 대응하는 세그먼트 내에 상기 NVM의 비활성 메모리 페이지를 저장하도록 구성된 제1 삽입 모듈 - 상기 비활성 메모리 페이지의 링크된 리스트는 복수의 세그먼트를 포함하고, 각각의 세그먼트는 기록 횟수의 설정 범위 내에서 상기 NVM의 비활성 메모리 페이지를 저장하는데 이용됨 -을 더 포함한다.
제2 태양의 가능한 제1 구현 방식을 참고하여, 제2 태양의 가능한 제2 구현 방식에서는, 상기 비활성 메모리 페이지의 링크된 리스트에 포함된 복수의 세그먼트가, 상기 비활성화 메모리 페이지의 링크된 리스트 내에서, 대응하는 기록 횟수의 설정 범위의 오름차순으로 분류된다.
제2 태양의 가능한 제1 구현 방식 또는 제2 태양의 가능한 제2 구현 방식을 참고하여, 제2 태양의 가능한 제3 구현 방식에서는,
상기 메모리 리클레임 모듈은 구체적으로, 상기 비활성 메모리 페이지의 링크된 리스트 내에서 상기 기록 횟수의 설정 범위의 오름차순으로, 하나 이상의 세그먼트 내에 있는 상기 NVM의 비활성 메모리 페이지를 상기 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하도록 구성된다.
제2 태양을 참고하여, 제2 태양의 가능한 제4 구현 방식에서는, 상기 장치는:
상기 메모리 리클레임 모듈이 상기 리클레임 식별자에 따라 상기 NVM의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하기 이전에, 상기 NVM의 비활성 메모리 페이지의 기록 횟수를 판정하도록 구성된 판정 모듈; 및
상기 비활성 메모리 페이지의 링크된 리스트 내의 최후 페이지 그룹 내에 상기 NVM의 비활성 메모리 페이지를 저장하도록 구성된 제2 삽입 모듈 - 페이지 리스트는 복수의 페이지 그룹을 포함하고, 각각의 페이지 그룹은 기록 횟수의 오름차순으로 분류되는 상기 NVM의 비활성 메모리 페이지의 설정된 양을 포함함 -을 더 포함한다.
제2 태양의 가능한 제4 구현 방식을 참고하여, 제2 태양의 가능한 제5 구현 방식에서는, 상기 비활성 메모리 페이지의 링크된 리스트 내에 포함된 복수의 페이지 그룹이, 비활성 메모리 페이지의 링크된 리스트 내에서 구축 시간의 순서로 분류된다.
제2 태양의 가능한 제4 구현 방식 또는 제2 태양의 가능한 제5 구현 방식을 참고하여, 제2 태양의 가능한 제6 구현 방식에서는,
상기 메모리 리클레임 모듈은 구체적으로, 상기 비활성 메모리 페이지의 링크된 리스트 내에서 상기 구축 시간의 순서로, 하나 이상의 페이지 그룹 내에 있는 상기 NVM의 비활성 메모리 페이지를 상기 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하도록 구성된다.
본 실시예에서의 메모리 리클레임 방법 및 장치에 따르면, 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용되는 리클레임 식별자를 포함하는 메모리 리클레임 요청 메시지가 수신되고, 이 리클레임 식별자에 따라, NVM의 비활성 메모리 페이지가 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임된다. 이 방법에서는, NVM의 비활성 메모리 페이지들 중에서 상대적으로 적은 양의 기록 횟수를 가지는 페이지가 먼저 리클레임되고, NVM의 비활성 메모리 페이지들 중에서 상대적으로 큰 양의 기록 횟수를 가지는 페이지는 나중에 리클레임된다. 그러므로, NVM의 웨어 레벨링(wear leveling)이 달성되고, 저장 유닛의 안정성과 신뢰성이 향상된다.
본 발명의 실시예들 및 종래기술에서의 기술적 해결수단을 더욱 명확하게 설명하기 위해, 이하에서는 본 실시예들 또는 종래기술을 설명하기 위해 필요한 첨부한 도면들을 간략하게 소개한다. 분명한 것은, 이하의 설명에서의 첨부한 도면들은 단지 본 발명의 일부 실시예들만 보여주는 것이며, 통상의 기술자라면 창작적 노력이 없이도 첨부한 도면들로부터 다른 도면들을 충분히 이끌어낼 수 있다는 것이다.
도 1은 본 발명에 따른 메모리 리클레임 방법의 실시예 1의 흐름도이다.
도 2는 본 발명에 따른 NVM의 비활성 메모리 페이지의 링크된 리스트의 조직 형태의 실시예 1의 개략도이다.
도 3은 본 발명에 따른 메모리 리클레임 방법의 실시예 2의 흐름도이다.
도 4는 본 발명에 따른 NVM의 비활성 메모리 페이지의 링크된 리스트의 조직 형태의 실시예 2의 개략도이다.
도 5는 본 발명에 따른 메모리 리클레임 방법의 실시예 3의 흐름도이다.
도 6은 본 발명에 따른 메모리 리클레임 장치의 실시예 1의 흐름도이다.
본 발명의 목적, 기술적 해결수단, 및 장점들을 더욱 명확하게 하기 위해, 이하에서는 본 발명의 기술적 해결수단들을 본 발명의 첨부한 도면들을 참고하여 명확하고 완전하게 설명한다. 분명한 것은, 설명된 실시예들은 본 발명의 실시예들의 전부가 아닌 일부에 불과하다는 것이다. 통상의 기술자가 창작적 노력 없이 본 발명의 실시예들에 기초하여 획득하는 모든 다른 실시예들은 본 발명의 보호범위 내에 포함되어야 한다.
본 발명의 실시예들에서의 메모리 리클레임 방법은 혼합-유형 메모리 모듈을 가지는 메모리 리클레임 장치에 적용될 수 있다는 것, 즉 메모리 리클레임 장치의 메모리 모듈은 동적 랜덤 액세스 메모리(Dynamic Random Access Memory, 약어로 DRAM)와 비휘발성 메모리(Non-Volatile Memory, 약어로 NVM)를 포함한다는 것; 그리고 NVM을 포함하는 메모리 모듈을 가지는 메모리 리클레임 장치에도 적용될 수 있다는 것을 알아야 한다. 혼합-유형 메모리 모듈을 가지는 메모리 리클레임 장치에 있어서, 메모리 리클레임이 수행되는 경우, DRAM 내의 비활성 메모리 페이지가 먼저 리클레임될 수 있고; DRAM 내의 비활성 메모리 페이지의 양이 리클레임 조건을 만족시키지 못하는 경우에는, NVM 내의 메모리 페이지가 리클레임된다. 본 발명의 실시예들에 따른 메모리 리클레임 방법은 NVM 내의 메모리 페이지를 리클레임하기 위한 방법으로서 이용될 수 있다.
본 실시예에서의 메모리 리클레임 방법은 메모리 리클레임 장치를 이용함으로써 구현될 수 있는데, 이 메모리 리클레임 장치는 하드웨어나 소프트웨어의 방식으로 구현될 수 있다. 메모리 리클레임 장치는 일반적으로는 CPU와 같은, 처리 기능을 가지고 이동 전화나 컴퓨터와 같은 단말 장치 내에 있는 구성요소일 수 있고, 이 구성요소는 단말 장치 내에서 메모리 리클레임 방법을 구현하도록 구성될 수 있다.
도 1은 본 발명에 따른 메모리 리클레임 방법의 실시예 1의 흐름도이다. 도 1에 도시된 것처럼, 본 실시예의 메모리 리클레임 방법은 다음을 포함한다:
S101: 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용되는 리클레임 식별자를 포함하는 리클레임 요청 메시지를 수신한다.
구체적으로, 예를 들면, 프로그램이 실행될 때, 메모리 리클레임 장치는 처리를 위해 메모리 공간을 할당해야 하고; 이 경우, 유휴(idle) 메모리가 불충분하다면, 운영 시스템은 메모리 관리 모듈에 메모리 리클레임 요청 메시지를 송신하고, 메모리 관리 모듈은 메모리 리클레임 요청 메시지를 수신하는데, 이 메모리 리클레임 요청 메시지는 리클레임 식별자를 포함하고, 이 리클레임 식별자는 운영 시스템에 의해 요청된 메모리 페이지의 양을 나타내는데 이용되는 식별자일 수 있는데, 이는 운영 시스템이 메모리 관리 모듈에 메모리 페이지의 할당을 요청하고, 그 메모리 페이지의 양은 리클레임 식별자에 의해 식별된다는 것이며; 메모리 관리 모듈은 메모리 리클레임 요청 메시지에 따라 NVM의 비활성 메모리 페이지의 링크된 리스트 내의 대응하는 양의 메모리 페이지를 리클레임하여 운영 시스템의 요구를 충족시킨다.
S102: 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임한다.
구체적으로, 메모리 관리 모듈은 이어서, NVM의 비활성 메모리 페이지의 링크된 리스트 내의 비활성 메모리 페이지의 기록 횟수에 따라, 비활성 메모리 페이지의 기록 횟수의 오름차순으로 비활성 메모리 페이지를 리클레임하는데, 이 비활성 메모리 페이지의 양은 리클레임 식별자에 대응하고 있다. 이 방법에서는, 적은 양의 기록 횟수를 가지는, NVM의 비활성 메모리 페이지의 링크된 리스트 내의 NVM 비활성 메모리 페이지가 먼저 리클레임된다. 리클레임된 비활성 메모리 페이지의 기록 횟수의 양이 다음 리클레임 중에도 계속 작다면, 적은 양의 기록 횟수를 가지는 비활성 메모리 페이지가 계속하여 리클레임된다. 이 방법에서는, 메모리 페이지 리클레임의 처리에서, 적은 양의 기록 횟수를 가지는 비활성 메모리 페이지가 항상 먼저 리클레임되므로, 이에 따라 메모리 리클레임 장치의 메모리 모듈이 일부 메모리 페이지의 많은 양의 기록 횟수에 의해 먼저 손상되기 때문에 전체 메모리 모듈의 안정성과 신뢰성에 영향을 주는 것을 회피할 수 있게 되고, NVM의 메모리 페이지의 웨어 밸런스(wear balance)를 향상시키게 된다.
본 발명의 본 실시예에서의 메모리 리클레임 방법에 따르면, 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용되는 리클레임 식별자를 포함하는 메모리 리클레임 요청 메시지가 수신되고, 이 리클레임 식별자에 따라, NVM의 비활성 메모리 페이지가 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임된다. 이 방법에서는, NVM의 비활성 메모리 페이지들 중에서 상대적으로 적은 양의 기록 횟수를 가지는 페이지가 먼저 리클레임되고, NVM의 비활성 메모리 페이지들 중에서 상대적으로 큰 양의 기록 횟수를 가지는 페이지는 나중에 리클레임된다. 그러므로, NVM의 웨어 레벨링이 달성되고, 저장 유닛의 안정성과 신뢰성이 향상된다.
전술한 실시예에 기초하여, 추가로, 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계 이전에, 상기 방법은: NVM의 비활성 메모리 페이지의 기록 횟수를 판정하는 단계; 및 NVM의 비활성 메모리 페이지의 기록 횟수에 따라, 비활성 메모리 페이지의 링크된 리스트의 대응하는 세그먼트 내에 NVM의 비활성 메모리 페이지를 저장하는 단계를 포함하는데, 여기서 비활성 메모리 페이지의 링크된 리스트는 복수의 세그먼트를 포함하고, 각각의 세그먼트는 기록 횟수의 설정 범위 내에서 NVM의 비활성 메모리 페이지를 저장하는데 이용된다.
구체적으로, 리클레임 식별자에 따라 NVM의 비활성 메모리 페이지를 비휘발성 메모리(NVM)의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하기 전에, 메모리 관리 모듈은 NVM의 비활성 메모리 페이지의 기록 횟수를 먼저 추가로 판정할 수 있는데, 예를 들면 메모리 관리 모듈은, 메모리 제어기 캐시 내에 기록되어 있는 NVM의 비활성 메모리 페이지의 기록 횟수에 따라, 비활성 메모리 페이지의 기록 횟수를 획득할 수 있다는 것이며, 메모리 제어기 캐시가 대응하는 비활성 메모리 페이지의 기록 횟수에 관한 어떠한 기록도 가지지 않는다면, 대응하는 비활성 메모리 페이지의 기록 횟수는 NVM의 카운터로부터 추가로 획득될 수 있다. 메모리 제어기 내에 메모리 제어기 캐시를 배치함으로써 메모리 제어기 캐시 내에 비활성 메모리 페이지의 기록 횟수를 기록하는 것은, NVM의 액세스 횟수의 양을 감소시킬 수 있다. 메모리 관리 모듈은 추가로, NVM의 카운터 내로, 메모리 제어기 캐시 내에 기록되어 있는 비활성 메모리 페이지의 기록 횟수를 주기적으로 리프레시(refresh)할 수 있으며, NVM 내의 모든 메모리 페이지의 기록 횟수는 NVM의 카운터 내에 기록된다.
전술한 실시예에 기초하여, 비활성 메모리 페이지의 링크된 리스트 내에 포함되어 있는 복수의 세그먼트는, 비활성화 메모리 페이지의 링크된 리스트 내에서, 대응하는 기록 횟수의 설정 범위의 오름차순으로 분류된다.
구체적으로, 도 2는 본 발명에 따른 NVM의 비활성 메모리 페이지의 링크된 리스트의 조직 형태의 실시예 1의 개략도이다. 도 2에 도시된 것처럼, NVM의 비활성 메모리 페이지의 링크된 리스트는 NVM의 비활성 메모리 페이지의 링크된 리스트의 복수의 세그먼트를 포함하고, NVM의 비활성 메모리 페이지의 링크된 리스트의 각각의 세그먼트의 헤드는 수치적 값 범위를 포함하는데, 이 수치적 값 범위는, 예를 들면 NVM의 비활성 메모리 페이지의 링크된 리스트의 세그먼트 A 내의 모든 메모리 페이지의 기록 횟수가 0부터 100을 범위로 한다는 것처럼 세그먼트 내의 모든 메모리 페이지의 기록 횟수의 범위를 나타내며, NVM의 비활성 메모리 페이지의 링크된 리스트의 세그먼트 A 내의 0부터 100까지의 범위의 기록 횟수를 가지는 모든 메모리 페이지는 링크된 리스트 내에서 기록 횟수의 오름차순으로 분류된다.
NVM의 새로운 비활성 메모리 페이지가 NVM의 비활성 메모리 페이지들의 링크된 리스트 내로 이동되는 경우, NVM의 삽입될 비활성 메모리 페이지(M)의 기록 횟수의 양이 30인 것으로 결정함으로써, NVM의 비활성 메모리 페이지(M)가 0에서 100의 범위의 기록 횟수를 가지는 NVM의 비활성 메모리 페이지의 링크된 리스트의 세그먼트 A에 삽입되는, 구체적으로는 링크된 리스트의 세그먼트 A에서 20과 50의 기록 횟수를 가지는 비활성 메모리 페이지들 사이에 삽입되어, 이에 따라 삽입 이후에 링크된 리스트의 세그먼트 A 내의 메모리 페이지가 기록 횟수의 오름차순으로 계속 분류되도록 함으로써, 페이지가 리클레임될 때, NVM의 비활성 메모리 페이지의 링크된 리스트 내의 페이지들이 기록 횟수의 오름차순으로 항상 리클레임될 수 있음을 보장 가능하게 된다.
전술한 실시예에 기초하여, 리클레임 식별자에 따라 상기 NVM의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계는: 비활성 메모리 페이지의 링크된 리스트 내에서 기록 횟수의 설정 범위의 오름차순으로, 하나 이상의 세그먼트 내에 있는 NVM의 비활성 메모리 페이지를 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하는 단계를 포함한다.
구체적으로, 도 3은 본 발명에 따른 메모리 리클레임 방법의 실시예 2의 흐름도이다. 도 3에 도시된 것처럼, 본 실시예에서 제공되는 메모리 리클레임 방법에 따르면, 비활성 메모리 페이지의 링크된 리스트가 복수의 세그먼트로 분할되어 이를 포함할 수 있고, 각각의 세그먼트는 NVM의 비활성 메모리 페이지를 기록 시간의 설정 범위 내에서 저정하는데 이용되며, 비활성 메모리 페이지의 링크된 리스트 내에 포함된 복수의 세그먼트는 비활성 메모리 페이지의 링크된 리스트 내에서 대응하는 기록 횟수의 설정 범위의 오름차순으로 분류되고; 메모리 관리 모듈은 이하의 단계들에 따라 NVM의 비활성 메모리 페이지를 리클레임 할 수 있다:
301: 가장 작은 범위의 기록 횟수를 가지는 세그먼트를 NVM의 비활성 메모리 페이지의 링크된 리스트로부터 선택한다.
메모리 관리 모듈은, NVM의 비활성 메모리 페이지의 링크된 리스트로부터, NVM의 비활성 메모리 페이지의 링크된 리스트 내에 있고 가장 작은 범위의 기록 횟수를 가지는 NVM의 비활성 메모리 페이지의 링크된 리스트의 세그먼트를 선택한다.
302: NVM의 비활성 메모리 페이지의 링크된 리스트의 선택된 세그먼트의 헤드로부터 비활성 메모리 페이지를 리클레임한다.
비활성 메모리 페이지의 링크된 리스트의 선택된 세그먼트의 헤드로부터 시작하여, 특정된 양의 메모리 페이지가 비활성 메모리 페이지의 기록 횟수의 오름차순으로 선택되고, 선택된 메모리 페이지가 리클레임되어, 리클레임된 메모리 페이지가 유휴 페이지가 되어 재사용될 수 있도록 할 수 있는데, 여기서 위 특정된 양은 운영 시스템에 의해 설정될 수 있다.
303: 특정된 양의 메모리 페이지가 리클레임되는지를 판정하고, yes라면, 304를 수행하고; no라면 305를 수행한다.
선택된 메모리 페이지의 양이 운영 시스템의 요구를 충족시킬 수 있으면, 메모리 리클레임 동작은 완료되고; 선택된 메모리 페이지의 양이 운영 시스템의 요구를 충족시키지 않으면, NVM의 비활성 메모리 페이지의 링크된 리스트 내의 다른 세그먼트로부터 메모리 페이지가 리클레임된다.
304: 종료한다.
305: 301에서 선택된 세그먼트가 NVM의 비활성 메모리 페이지의 링크된 리스트의 최후 세그먼트인지를 판정하고, yes라면 304를 수행하며; 아니라면 306을 수행한다.
전술한 301에서 NVM의 비활성 메모리 페이지의 링크된 리스트의 선택된 세그먼트가 NVM의 비활성 메모리 페이지의 링크된 리스트의 최후 링크된 리스트 세그먼트라면, 이 메모리 리클레임 동작은 완료되고; 아니라면, NVM의 비활성 메모리 페이지의 링크된 리스트 내의 다른 세그먼트로부터 메모리 페이지가 리클레임된다.
306: NVM의 비활성 메모리 페이지의 링크된 리스트로부터, 제2의 가장 작은 범위의 기록 횟수를 가지는 세그먼트를 선택한다.
NVM의 비활성 메모리 페이지의 링크된 리스트로부터, 전술한 301에서 선택된 세그먼트의 기록 횟수의 범위와 근접하면서 더 작은 기록 횟수의 범위를 가지는 세그먼트가 선택되었고, 이후 302가 수행된다.
선택적으로, 메모리 리클레임 방법의 실시예 1에 기초하여, 리클레임 식별자에 따라 NVM의 비활성 메모리 페이지를 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하기 전에, 본 실시예에서의 메모리 리클레임 방법은: NVM의 비활성 메모리 페이지의 기록 횟수를 판정하는 단계; 및 비활성 메모리 페이지의 링크된 리스트 내의 최후 페이지 그룹 내에 NVM의 비활성 메모리 페이지를 저장하는 단계를 더 포함하는데, 여기서 페이지 리스트는 복수의 페이지 그룹을 포함하고, 각각의 페이지 그룹은 기록 횟수의 오름차순으로 분류되는 NVM의 비활성 메모리 페이지의 설정된 양을 포함한다.
구체적으로, NVM의 비활성 메모리 페이지를 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계 이전에, 메모리 관리 모듈은 추가로 NVM의 비활성 메모리 페이지의 기록 횟수를 먼저 판정할 수 있는데, NVM의 비활성 메모리 페이지의 기록 횟수를 판정하는 구체적인 처리는 전술한 실시예에서의 처리와 동일하므로, 여기서 다시 설명되지는 않는다.
메모리 관리 모듈은 추가로, 비활성 메모리 페이지의 링크된 리스트 내의 최후 페이지 그룹 내에 NVM의 비활성 메모리 페이지를 저장할 수 있는데, 여기서 페이지 리스트는 복수의 페이지 그룹을 포함하고, 각각의 페이지 그룹은 기록 횟수의 오름차순으로 분류되는 NVM의 비활성 메모리 페이지의 설정된 양을 포함한다.
전술한 실시예에 기초하여, 비활성 메모리 페이지의 링크된 리스트 내에 포함된 복수의 페이지 그룹은, 비활성 메모리 페이지의 링크된 리스트 내에서 구축 시간의 순서로 분류된다.
구체적으로, 도 4는 본 발명에 따른 NVM의 비활성 메모리 페이지의 링크된 리스트의 조직 형태의 실시예 2의 개략도이다. 도 4에 도시된 것처럼, NVM의 비활성 메모리 페이지의 링크된 리스트는 복수의 페이지 그룹을 포함하고, 각각의 페이지 그룹은 구축 시간의 순서로 페이지 링크된 리스트 내에서 분류되는데, 예를 들면, 페이지 그룹(O) 내에 포함된 NVM의 비활성 메모리 페이지의 설정된 양이 링크된 리스트 내에 삽입된 시간은 페이지 그룹(P) 내에 포함된 NVM의 비활성 메모리 페이지의 설정된 양이 링크된 리스트에 삽입된 시간보다 상대적으로 빠르고(earlier), 페이지 그룹(P)에 포함된 NVM의 비활성 메모리 페이지의 설정된 양이 링크된 리스트에 삽입되는 시간은 페이지 그룹(Q)에 포함된 NVM의 비활성 메모리 페이지의 설정된 양이 링크된 리스트에 삽입되는 시간보다 상대적으로 빠르다.
페이지 그룹(O), 페이지 그룹(P), 및 페이지 그룹(Q)에 포함된 설정된 양의 NVM의 비활성 메모리 페이지는 계속하여 비활성 메모리 페이지의 기록 시간의 오름차순으로 분류된다. 새로운 NVM의 비활성 메모리 페이지(N)가 비활성 메모리 페이지의 링크된 리스트 내에 이동되는 경우, 삽입될 NVM의 비활성 메모리 페이지의 기록 횟수가 30인 것으로 결정함으로써, NVM의 비활성 메모리 페이지(N)기 NVM의 비활성 메모리 페이지의 링크된 리스트의 맨 뒤에서 페이지 그룹(Q) 내에 삽입, 구체적으로는 55와 20의 기록 횟수를 가지는 페이지 그룹(Q)의 비활성 메모리 페이지 사이에 삽입되어, 이에 따라 삽입 이후에, 링크된 리스트의 세그먼트 A 내의 메모리 페이지가 기록 횟수의 오름차순으로 계속 분류된다. 이 방법에서는, 하나의 페이지 그룹 내의 페이지들이 페이지 리클레임 중에 기록 횟수의 오름차순으로 항상 리클레임될 수 있음이 보장될 수 있다.
전술한 실시예에 기초하여, 리클레임 식별자에 따라 NVM의 비활성 메모리 페이지를 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계는: 비활성 메모리 페이지의 링크된 리스트 내에서 구축 시간의 오름차순으로, 하나 이상의 페이지 그룹 내에 있는 NVM의 비활성 메모리 페이지를 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하는 단계를 포함한다.
구체적으로, 도 5는 본 발명에 따른 메모리 리클레임 방법의 실시예 3의 흐름도이다. 도 5에 도시된 것처럼, 본 실시예에서 제공되는 메모리 리클레임 방법에 따라, 페이지 리스트는 복수의 페이지 그룹을 포함할 수 있고, 각각의 페이지 그룹은 기록 횟수의 오름 차순으로 분류되는 NVM의 비활성 메모리 페이지의 설정된 양을 포함하며, 페이지 링크된 리스트 내에 포함된 복수의 페이지 그룹은 구축 시간의 순서로 페이지 링크된 리스트 내에서 분류된다. 메모리 관리 모듈은 이하의 단계들에 따라 NVM의 비활성 메모리 페이지를 리클레임 할 수 있다:
501: NVM의 비활성 메모리 페이지의 링크된 리스트에서 구축 시간이 가장 빠른 페이지 그룹에서부터 비활성 메모리 페이지의 리클레임을 시작한다.
메모리 관리 모듈은, NVM의 비활성 메모리 페이지의 링크된 리스트의 세그먼트의 헤드로부터 비활성 메모리 페이지의 기록 횟수의 오름 차순으로, 특정된 양의 메모리 페이지를 선택하고, 선택된 메모리 페이지를 리클레임하여, 이에 따라 리클레임된 메모리 페이지가 유휴 페이지가 되어 재이용될 수 있도록 할 수 있는데, 위 특정된 양은 운영 시스템의 요구에 따라 결정될 수 있다.
502: 특정 양의 메모리 페이지가 리클레임되는지를 판정한다.
선택된 메모리 페이지의 양이 운영 시스템의 요구를 충족시킬 수 있으면, 이 메모리 리클레임 동작은 완료되고; 선택된 메모리 페이지의 양이 운영 시스템의 요구를 충족시키지 않으면, NVM의 비활성 메모리 페이지의 링크된 리스트 내의 다른 페이지 그룹으로부터 메모리 페이지가 리클레임된다.
503: 종료한다.
504: NVM의 비활성 메모리 페이지의 링크된 리스트의 맨 뒤에 도달하였는지를 판정한다.
NVM의 비활성 메모리 페이지의 링크된 리스트의 맨 뒤에 도달하였으면, 이 메모리 리클레임 동작은 완료되고; 그렇지 않으면, NVM의 비활성 메모리 페이지의 링크된 리스트의 다른 페이지 그룹으로부터 메모리 페이지가 리클레임된다.
505: NVM의 비활성 메모리 페이지의 링크된 리스트로부터 두 번째로 빠른 구축 시간을 가지는 페이지 그룹으로부터 비활성 메모리 페이지의 리클레임을 시작한다.
전술한 501에서 선택된 페이지 그룹의 구축 시간보다 늦으면서 가까운 구축 시간을 가지는, NVM의 비활성 메모리 페이지 내의 링크된 리스트 내에 있는 페이지 그룹이 선택되고, 메모리 페이지들은, 리클레임된 메모리 페이지들이 운영 시스템의 요구를 충족시킬 때까지 비활성 메모리 페이지의 기록 시간의 오름차순으로, 선택된 페이지 그룹으로부터 리클레임된다.
통상의 기술자라면, 전술한 방법 실시예들을 구현하기 위한 단계들의 전부 또는 일부가, 관련 하드웨어에 명령을 내리는 프로그램에 의해 구혀뇔 수 있다는 것을 이해할 수 있다. 이 프로그램은 컴퓨터 판독 가능형 저장 매체에 저장될 수 있다. 이 프로그램이 실행되면, 방법 실시예를 포함하는 단계들이 수행된다. 저장 매체는 ROM, RAM, 자기 디스크, 또는 광 디스크와 같은, 프로그램 코드를 저장할 수 있는 임의의 매체일 수 있다.
도 6은 본 발명에 따른 메모리 리클레임 장치의 실시예 1의 흐름도이다. 도 6에 도시된 것처럼, 본 실시예에서의 메모리 리클레임 장치(600)는: 수신 모듈(601)과 메모리 리클레임 모듈(602)을 포함하는데,
수신 모듈(601)은 메모리 리클레임 요청 메시지를 수신하도록 구성될 수 있는데, 여기서 메모리 리클레임 요청 메시지는 리클레임 식별자를 포함하고, 리클레임 식별자는 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용되며;
메모리 리클레임 모듈(602)은 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하도록 구성될 수 있다.
본 실시예에서의 메모리 리클레임 장치는 메모리 리클레임 방법의 실시예 1에서의 메모리 리클레임 방법을 수행하도록 구성될 수 있다. 구체적인 수행 처리에 대해서는, 메모리 리클레임 방법의 실시예 1이 참고될 수 있으므로, 상세한 내용을 여기에서 다시 설명하지는 않는다.
본 실시예에서의 메모리 리클레임 장치에 따르면, 수신 모듈은 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용되는 리클레임 식별자를 포함하는 메모리 리클레임 요청 메시지가 수신하고, 메모리 리클레임 모듈은 리클레임 식별자에 따라, NVM의 비활성 메모리 페이지가 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하여, NVM의 비활성 메모리 페이지들 사이에서 상대적으로 적은 양의 기록 횟수를 가지는 페이지가 먼저 리클레임되고, NVM의 비활성 메모리 페이지들 중에서 상대적으로 큰 양의 기록 횟수를 가지는 페이지는 나중에 리클레임되도록 할 수 있다. 그러므로, NVM의 웨어 레벨링이 달성되고, 저장 유닛의 안정성과 신뢰성이 향상된다.
전술한 실시예들에 기초하면, 메모리 리클레임 장치(600)는: 판정 모듈과 제1 삽입 모듈을 더 포함할 수 있는데,
판정 모듈은: 메모리 리클레임 모듈이 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 비활성화 메모리(NVM)의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하기 전에, NVM의 비활성 메모리 페이지의 기록 횟수를 판정하도록 구성될 수 있고;
제1 삽입 모듈은: NVM의 비활성 메모리 페이지의 기록 횟수에 따라, 비활성 메모리 페이지의 링크된 리스트의 대응하는 세그먼트 내에 NVM의 비활성 메모리 페이지를 저장하도록 구성될 수 있으며, 여기서 비활성 메모리 페이지의 링크된 리스트는 복수의 세그먼트를 포함하고, 각각의 세그먼트는 기록 횟수의 설정 범위 내에서 NVM의 비활성 메모리 페이지를 저장하는데 이용된다.
전술한 실시예들에 기초하면, 비활성 메모리 페이지의 링크된 리스트에 포함된 복수의 세그먼트는, 비활성화 메모리 페이지의 링크된 리스트 내에서, 대응하는 기록 횟수의 설정 범위의 오름차순으로 분류된다.
전술한 실시예들에 기초하면, 메모리 리클레임 모듈은 구체적으로, 비활성 메모리 페이지의 링크된 리스트 내에서 기록 횟수의 설정 범위의 오름차순으로, 하나 이상의 세그먼트 내에 있는 NVM의 비활성 메모리 페이지를 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하도록 구성될 수 있다.
선택적으로, 메모리 리클레임 장치의 실시예 1에 기초하여, 메모리 리클레임 장치(600)는 판정 모듈과 제2 삽입 모듈을 더 포함할 수 있는데:
판정 모듈은, 메모리 리클레임 모듈이 리클레임 식별자에 따라 NVM의 비활성 메모리 페이지를 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하기 이전에, NVM의 비활성 메모리 페이지의 기록 횟수를 판정하도록 구성될 수 있고;
제2 삽입 모듈은, 비활성 메모리 페이지의 링크된 리스트 내의 최후 페이지 그룹 내에 NVM의 비활성 메모리 페이지를 저장하도록 구성될 수 있으며, 여기서 페이지 리스트는 복수의 페이지 그룹을 포함하고, 각각의 페이지 그룹은 기록 횟수의 오름차순으로 분류되는 NVM의 비활성 메모리 페이지의 설정된 양을 포함한다.
전술한 실시예들에 기초하면, 비활성 메모리 페이지의 링크된 리스트 내에 포함된 복수의 페이지 그룹은, 비활성 메모리 페이지의 링크된 리스트 내에서 구축 시간의 순서로 분류된다.
전술한 실시예들에 기초하면, 메모리 리클레임 모듈은 구체적으로, 비활성 메모리 페이지의 링크된 리스트 내에서 구축 시간의 오름차순으로, 하나 이상의 페이지 그룹 내에 있는 NVM의 비활성 메모리 페이지를 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하도록 구성될 수 있다.
전술한 실시예들은 단지 본 발명의 기술적 해결수단들을 설명하기 위해 의도된 것일 뿐, 본 발명을 한정하는 것이 아님을 알아야만 한다. 본 발명이 전술한 실시예들을 참고하여 설명되었지만, 통상의 기술자라면, 본 발명의 실시예들의 기술적 해결수단의 범위로부터 벗어남이 없이, 전술한 실시예들에서 설명되는 기술적 해결수단에 대한 수정 내지 일부 기술적 특징들에 대한 동등물 대체가 충분히 가능하다는 것을 이애하여야 한다.

Claims (14)

  1. 메모리 리클레임 방법으로서,
    메모리 리클레임 요청 메시지(memory reclamation request message)를 수신하는 단계 - 상기 메모리 리클레임 요청 메시지는 리클레임 식별자를 포함하고, 상기 리클레임 식별자는 리클레임되도록 요청된 메모리 페이지의 양(quantity)을 나타내는데 이용됨 -; 및
    상기 리클레임 식별자에 따라 비휘발성 메모리(non-volatile memory, NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계
    를 포함하는 메모리 리클레임 방법.
  2. 제1항에 있어서,
    상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계 이전에,
    상기 NVM의 비활성 메모리 페이지의 기록 횟수를 판정하는 단계; 및
    상기 NVM의 비활성 메모리 페이지의 기록 횟수에 따라, 상기 비활성 메모리 페이지의 링크된 리스트의 대응하는 세그먼트 내에 상기 NVM의 비활성 메모리 페이지를 저장하는 단계 - 상기 비활성 메모리 페이지의 링크된 리스트는 복수의 세그먼트를 포함하고, 각각의 세그먼트는 기록 횟수의 설정 범위 내에서 상기 NVM의 비활성 메모리 페이지를 저장하는데 이용됨 -
    를 더 포함하는 메모리 리클레임 방법.
  3. 제2항에 있어서,
    상기 비활성 메모리 페이지의 링크된 리스트에 포함된 복수의 세그먼트는, 상기 비활성화 메모리 페이지의 링크된 리스트 내에서, 대응하는 기록 횟수의 설정 범위의 오름차순으로 분류되는, 메모리 리클레임 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계는,
    상기 비활성 메모리 페이지의 링크된 리스트 내에서 상기 기록 횟수의 설정 범위의 오름차순으로, 하나 이상의 세그먼트 내에 있는 상기 NVM의 비활성 메모리 페이지를 상기 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치(match)하는 양만큼 리클레임하는 단계를 포함하는, 메모리 리클레임 방법.
  5. 제1항에 있어서,
    상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계 이전에,
    상기 NVM의 비활성 메모리 페이지의 기록 횟수를 판정하는 단계; 및
    상기 비활성 메모리 페이지의 링크된 리스트 내의 최후 페이지 그룹(last page group) 내에 상기 NVM의 비활성 메모리 페이지를 저장하는 단계 - 페이지 리스트는 복수의 페이지 그룹을 포함하고, 각각의 페이지 그룹은 기록 횟수의 오름차순으로 분류되는 상기 NVM의 비활성 메모리 페이지의 설정된 양을 포함함 -
    를 더 포함하는 메모리 리클레임 방법.
  6. 제5항에 있어서,
    상기 비활성 메모리 페이지의 링크된 리스트 내에 포함된 복수의 페이지 그룹은, 비활성 메모리 페이지의 링크된 리스트 내에서 구축 시간의 순서로 분류되는, 메모리 리클레임 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하는 단계는,
    상기 비활성 메모리 페이지의 링크된 리스트 내에서 상기 구축 시간의 순서로, 하나 이상의 페이지 그룹 내에 있는 상기 NVM의 비활성 메모리 페이지를 상기 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하는 단계를 포함하는, 메모리 리클레임 방법.
  8. 메모리 리클레임 장치로서,
    메모리 리클레임 요청 메시지를 수신하도록 구성된 수신 모듈 - 상기 메모리 리클레임 요청 메시지는 리클레임 식별자를 포함하고, 상기 리클레임 식별자는 리클레임되도록 요청된 메모리 페이지의 양을 나타내는데 이용됨 -; 및
    상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하도록 구성된 메모리 리클레임 모듈
    을 포함하는 메모리 리클레임 장치.
  9. 제8항에 있어서,
    상기 메모리 리클레임 모듈이 상기 리클레임 식별자에 따라 비휘발성 메모리(NVM)의 비활성 메모리 페이지를 상기 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하기 전에, 상기 NVM의 비활성 메모리 페이지의 기록 횟수를 판정하도록 구성된 판정 모듈; 및
    상기 NVM의 비활성 메모리 페이지의 기록 횟수에 따라, 상기 비활성 메모리 페이지의 링크된 리스트의 대응하는 세그먼트 내에 상기 NVM의 비활성 메모리 페이지를 저장하도록 구성된 제1 삽입 모듈 - 상기 비활성 메모리 페이지의 링크된 리스트는 복수의 세그먼트를 포함하고, 각각의 세그먼트는 기록 횟수의 설정 범위 내에서 상기 NVM의 비활성 메모리 페이지를 저장하는데 이용됨 -
    을 더 포함하는 메모리 리클레임 장치.
  10. 제9항에 있어서,
    상기 비활성 메모리 페이지의 링크된 리스트에 포함된 복수의 세그먼트는, 상기 비활성화 메모리 페이지의 링크된 리스트 내에서, 대응하는 기록 횟수의 설정 범위의 오름차순으로 분류되는, 메모리 리클레임 장치.
  11. 제9항 또는 제10항에 있어서,
    상기 메모리 리클레임 모듈은 구체적으로, 상기 비활성 메모리 페이지의 링크된 리스트 내에서 상기 기록 횟수의 설정 범위의 오름차순으로, 하나 이상의 세그먼트 내에 있는 상기 NVM의 비활성 메모리 페이지를 상기 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하도록 구성되는, 메모리 리클레임 장치.
  12. 제8항에 있어서,
    상기 메모리 리클레임 모듈이 상기 리클레임 식별자에 따라 상기 NVM의 비활성 메모리 페이지를 상기 비휘발성 메모리의 비활성 메모리 페이지의 기록 횟수의 오름차순으로 리클레임하기 이전에, 상기 NVM의 비활성 메모리 페이지의 기록 횟수를 판정하도록 구성된 판정 모듈; 및
    상기 비활성 메모리 페이지의 링크된 리스트 내의 최후 페이지 그룹 내에 상기 NVM의 비활성 메모리 페이지를 저장하도록 구성된 제2 삽입 모듈 - 페이지 리스트는 복수의 페이지 그룹을 포함하고, 각각의 페이지 그룹은 기록 횟수의 오름차순으로 분류되는 상기 NVM의 비활성 메모리 페이지의 설정된 양을 포함함 -
    을 더 포함하는 메모리 리클레임 장치.
  13. 제12항에 있어서,
    상기 비활성 메모리 페이지의 링크된 리스트 내에 포함된 복수의 페이지 그룹은, 상기 비활성 메모리 페이지의 링크된 리스트 내에서 구축 시간의 순서로 분류되는, 메모리 리클레임 장치.
  14. 제12항 또는 제13항에 있어서,
    상기 메모리 리클레임 모듈은 구체적으로, 상기 비활성 메모리 페이지의 링크된 리스트 내에서 상기 구축 시간의 순서로, 하나 이상의 페이지 그룹 내에 있는 상기 NVM의 비활성 메모리 페이지를 상기 리클레임 식별자에 의해 리클레임되도록 요청된 메모리 페이지의 양과 매치하는 양만큼 리클레임하도록 구성되는, 메모리 리클레임 장치.
KR1020157018254A 2013-02-22 2014-01-13 메모리 리클레임 방법 및 장치 KR20150095781A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310057351.1A CN104008061B (zh) 2013-02-22 2013-02-22 内存回收方法及装置
CN201310057351.1 2013-02-22
PCT/CN2014/070515 WO2014127684A1 (zh) 2013-02-22 2014-01-13 内存回收方法及装置

Publications (1)

Publication Number Publication Date
KR20150095781A true KR20150095781A (ko) 2015-08-21

Family

ID=51368721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157018254A KR20150095781A (ko) 2013-02-22 2014-01-13 메모리 리클레임 방법 및 장치

Country Status (6)

Country Link
US (1) US20150317246A1 (ko)
EP (1) EP2921963B1 (ko)
JP (1) JP6014925B2 (ko)
KR (1) KR20150095781A (ko)
CN (1) CN104008061B (ko)
WO (1) WO2014127684A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157024B2 (en) 2016-12-28 2018-12-18 SK Hynix Inc. Memory system and operating method thereof
KR20190073017A (ko) * 2017-12-18 2019-06-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
WO2020086743A1 (en) * 2018-10-25 2020-04-30 Micron Technology, Inc. Two-stage hybrid memory buffer for multiple streams
US11488648B2 (en) 2017-12-18 2022-11-01 SK Hynix Inc. Data storage device and operating method thereof

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294189B (zh) * 2015-05-25 2020-09-25 中兴通讯股份有限公司 内存碎片整理方法及装置
CN105159777B (zh) * 2015-08-03 2018-07-27 中科创达软件股份有限公司 进程的内存回收方法及装置
CN105404589B (zh) * 2015-10-29 2019-04-30 天脉聚源(北京)教育科技有限公司 一种垃圾回收方法及装置
CN107885666B (zh) 2016-09-28 2021-07-20 华为技术有限公司 一种内存管理方法和装置
KR20180059208A (ko) * 2016-11-25 2018-06-04 삼성전자주식회사 리클레임 제어부를 갖는 메모리 콘트롤러 및 그에 따른 동작 제어 방법
CN106843756B (zh) * 2017-01-13 2019-12-31 中国科学院信息工程研究所 基于页面分类的内存页面回收方法及系统
KR20180123385A (ko) * 2017-05-08 2018-11-16 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
US20190012259A1 (en) * 2017-07-06 2019-01-10 Futurewei Technologies, Inc. Lba eviction in pcm media
CN109388520B (zh) * 2017-08-08 2022-02-15 深圳大心电子科技有限公司 数据备份方法、数据恢复方法以及存储控制器
CN108228343B (zh) * 2017-08-21 2020-11-17 珠海市魅族科技有限公司 内存回收方法及装置、计算机装置及计算机可读存储介质
CN108228344B (zh) * 2017-08-22 2021-08-10 珠海市魅族科技有限公司 多进程内存处理方法及装置、计算机装置及可读存储介质
CN109992402B (zh) * 2017-12-29 2021-07-09 Oppo广东移动通信有限公司 内存处理方法和装置、电子设备、计算机可读存储介质
CN111324284B (zh) * 2018-12-14 2024-02-23 兆易创新科技集团股份有限公司 一种存储器
CN111324288B (zh) * 2018-12-14 2024-02-23 兆易创新科技集团股份有限公司 一种存储器
CN110532198B (zh) * 2019-09-09 2023-08-08 成都西山居互动娱乐科技有限公司 一种存储空间分配的方法及装置
CN115757193B (zh) * 2019-11-15 2023-11-03 荣耀终端有限公司 一种内存的管理方法及电子设备
CN113392037B (zh) * 2020-03-12 2024-06-18 深圳市万普拉斯科技有限公司 内存回收方法、装置、计算机设备和存储介质
CN111782559A (zh) * 2020-07-06 2020-10-16 Oppo广东移动通信有限公司 一种页面管理方法、装置及计算机可读存储介质
CN112181863B (zh) * 2020-10-19 2024-06-14 Oppo广东移动通信有限公司 页面回收方法、装置、终端及存储介质
CN113778662B (zh) * 2021-07-28 2022-12-06 荣耀终端有限公司 内存回收方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5577246A (en) * 1992-09-25 1996-11-19 Lucent Technologies Inc. Database memory compaction and reclamation method
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP3389186B2 (ja) * 1999-04-27 2003-03-24 松下電器産業株式会社 半導体メモリカード及び読み出し装置
US6654855B1 (en) * 2000-10-26 2003-11-25 Emc Corporation Method and apparatus for improving the efficiency of cache memories using chained metrics
KR100526190B1 (ko) * 2004-02-06 2005-11-03 삼성전자주식회사 플래시 메모리의 재사상 방법
KR100869675B1 (ko) * 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
US7903486B2 (en) * 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
CN100590609C (zh) * 2008-02-22 2010-02-17 浙江大学 一种基于非连续页的动态内存管理方法
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
JP4666080B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8447915B2 (en) * 2009-07-23 2013-05-21 Hitachi, Ltd. Flash memory device for allocating physical blocks to logical blocks based on an erase count
US8402242B2 (en) * 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
CN101833512A (zh) * 2010-04-22 2010-09-15 中兴通讯股份有限公司 一种内存回收方法及其装置
US9026716B2 (en) * 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
CN102508783B (zh) * 2011-10-18 2014-04-09 深圳市共进电子股份有限公司 一种避免数据混乱的内存回收方法
CN102880555B (zh) * 2012-07-28 2016-02-24 福州大学 面向实时系统的内存算法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157024B2 (en) 2016-12-28 2018-12-18 SK Hynix Inc. Memory system and operating method thereof
KR20190073017A (ko) * 2017-12-18 2019-06-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11488648B2 (en) 2017-12-18 2022-11-01 SK Hynix Inc. Data storage device and operating method thereof
WO2020086743A1 (en) * 2018-10-25 2020-04-30 Micron Technology, Inc. Two-stage hybrid memory buffer for multiple streams
US11188250B2 (en) 2018-10-25 2021-11-30 Micron Technology, Inc. Two-stage hybrid memory buffer for multiple streams
US11829638B2 (en) 2018-10-25 2023-11-28 Micron Technology, Inc. Two-stage hybrid memory buffer for multiple streams

Also Published As

Publication number Publication date
US20150317246A1 (en) 2015-11-05
JP6014925B2 (ja) 2016-10-26
EP2921963A1 (en) 2015-09-23
CN104008061B (zh) 2018-01-23
CN104008061A (zh) 2014-08-27
EP2921963B1 (en) 2020-12-02
JP2016507830A (ja) 2016-03-10
EP2921963A4 (en) 2015-10-28
WO2014127684A1 (zh) 2014-08-28

Similar Documents

Publication Publication Date Title
KR20150095781A (ko) 메모리 리클레임 방법 및 장치
US11531625B2 (en) Memory management method and apparatus
US9483396B2 (en) Control apparatus, storage device, and storage control method
KR20160124794A (ko) Dram 결함들의 커널 마스킹
US7937522B2 (en) Method for flash memory data management
US8261098B2 (en) Method and apparatus for encrypting and processing data in flash translation layer
CN101981551B (zh) 用于高速缓存利用的设备和方法
US9977598B2 (en) Electronic device and a method for managing memory space thereof
CN103150257A (zh) 一种内存管理方法和装置
EP3196767B1 (en) Method for writing data into flash memory device, flash memory device and storage system
CN109343796B (zh) 一种数据处理方法和装置
CN103455284A (zh) 一种读写数据的方法及装置
CN111831691B (zh) 一种数据读写方法及装置、电子设备、存储介质
CN101799832A (zh) 巨量数据一次性快速写入数据库的方法
US10860472B2 (en) Dynamically deallocating memory pool subinstances
CN116340198B (zh) 固态硬盘的数据写入方法、其装置及固态硬盘
CN115437579B (zh) 一种元数据管理方法、装置、计算机设备及可读存储介质
US20190004708A1 (en) Electronic device and data compression method thereof
US9990278B2 (en) Overlaid erase block mapping
CN113608679A (zh) 一种文件存储方法、装置、设备及计算机可读存储介质
US20090055574A1 (en) NAND Flash Memory Device And Related Method Thereof
KR20060007667A (ko) 플래시 메모리 관리 방법과 장치 및 그 구조
KR101101324B1 (ko) Hdd를 제어하는 스토리지 제어 장치를 포함하는 모바일 장치 및 스토리지 제어 방법
CN108845959A (zh) 一种内存数据处理方法、装置和电子设备
CN108196790B (zh) 数据管理方法、存储设备及计算机可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application