KR101380602B1 - 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템 - Google Patents
하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템 Download PDFInfo
- Publication number
- KR101380602B1 KR101380602B1 KR1020120023455A KR20120023455A KR101380602B1 KR 101380602 B1 KR101380602 B1 KR 101380602B1 KR 1020120023455 A KR1020120023455 A KR 1020120023455A KR 20120023455 A KR20120023455 A KR 20120023455A KR 101380602 B1 KR101380602 B1 KR 101380602B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- nonvolatile memory
- writes
- page
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/068—Hybrid storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
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
본 발명의 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법은 메모리 쓰기 요청된 데이터가 메모리 버퍼에 저장되는 단계; 상기 메모리 버퍼에서 가장 쓰여진지 오래된 위치에 있는 소정 개수의 데이터 중 가장 적게 쓰기된 데이터를 빅팀 데이터로 선정하는 단계; 상기 빅팀 데이터를 비휘발성 메모리에 저장하는 단계를 포함한다.
Description
본 발명은 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 이를 위한 하이브리드 메모리 시스템에 관한 것이다.
대규모 컴퓨팅 시스템에서 휘발성 메모리를 주메모리(main memory)로 사용하는 것은 높은 전력 소모와 집적도의 한계로 인하여 제한이 있다. 휘발성 메모리로는 예컨대 DRAM(Dynamic Random Access Memory)이 있다.
이러한 문제점을 해결하기 위해 최근에 비휘발성 메모리의 개발이 활발히 이루어지고 있다. 비휘발성 메모리로는 예컨대 PRAM(Phase Change Random Access Memory), FRAM(Ferroelectric Random Access Memory) 및 RRAM(Resistive Random Access Memory) 등이 있다. 비휘발성 메모리는 휘발성 메모리에 비해 작은 전력 소모와 높은 집적도를 나타낸다. 그러나, 비휘발성 메모리는 성능 및 쓰기 내구성(write endurance)이 휘발성 메모리보다 낮은 단점을 갖는다.
최근, 휘발성 메모리의 장점과 비휘발성 메모리의 장점을 모두 활용할 수 있는 하이브리드(hybrid) 메모리 구조가 제안되었다. 이와 같은 하이브리드 메모리 구조로서 DRAM과 PRAM을 주메모리로 이용하는 경우와 DRAM을 버퍼 메모리로 사용하고 PRAM을 주메모리로 사용하는 경우가 대표적이다. 전자의 경우 DRAM과 PRAM에 직접 접근이 가능하고 기존의 메모리 제어기와의 호환이 가능하지만 성능 향상을 위해 운영체제의 수정이 필요한 단점이 있으며, 후자의 경우 DRAM을 버퍼 메모리로 이용함으로써 PRAM의 레이턴시(latency)의 영향을 줄일 수 있지만 메모리 제어기가 수정되어야 할 필요성이 있다. 하지만, 상기 두 가지 경우 모두 비휘발성 메모리로의 쓰기 내구성 문제는 해소되지 않는다.
하이브리드 메모리 구조에 대해서 비휘발성 메모리의 쓰기 내구성 문제를 해소하고 비휘발성 메모리의 수명을 늘리 수 있는 웨어레벨링(wear-leveling) 기법에 대한 필요성이 대두되고 있다.
본 발명은 종래의 필요성을 충족시키기 위해 안출된 것으로써, 하이브리드 메모리 시스템에서 비휘발성 메모리로의 쓰기 내구성 문제를 해소하면서 비휘발성 메모리에 대한 효과적인 적응적 웨어레벨링 기법을 제공하기 위한 것이다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 따른 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법은 메모리 쓰기 요청된 데이터가 메모리 버퍼에 저장되는 단계; 상기 메모리 버퍼에서 가장 쓰여진지 오래된 위치에 있는 소정 개수의 데이터 중 가장 적게 쓰기된 데이터를 빅팀 데이터로 선정하는 단계; 상기 빅팀 데이터를 비휘발성 메모리에 저장하는 단계를 포함한다.
본 발명에 따른 하이브리드 메모리 시스템은 메모리 쓰기 요청된 데이터가 저장되는 메모리 버퍼; 상기 메모리 버퍼에서 가장 쓰여진지 오래된 위치에 있는 소정 개수의 데이터 중 가장 적게 쓰기된 데이터인 빅팀 데이터가 저장되는 비휘발성 메모리; 및 상기 비휘발성 메모리의 페이지별 쓰기 횟수 및 라인별 쓰기 횟수를 저장하는 메모리 제어기를 포함한다.
본 발명에 따르면 하이브리드 메모리 시스템에서 비휘발성 메모리로의 쓰기 횟수를 줄일 수 있으며, 비휘발성 메모리로의 접근 특성을 고려하여 적응적으로 라인별 및 페이지별 균등한 쓰기 횟수를 유지함으로써 비휘발성 메모리의 수명을 늘리는 효과를 얻을 수 있다.
도1은 본 발명의 실시예에 따른 비휘발성 메모리의 웨어레벨링 방법이 구현되는 하이브리드 메모리 시스템을 예시한다.
도2a 및 도2b는 본 발명의 실시예에 따른 비휘발성 메모리에서 페이지 기반 데이터 스와핑 및 라인 기반 데이터 스와핑 기법을 설명한다.
도3은 본 발명의 실시예에 따른 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법의 흐름도이다.
도2a 및 도2b는 본 발명의 실시예에 따른 비휘발성 메모리에서 페이지 기반 데이터 스와핑 및 라인 기반 데이터 스와핑 기법을 설명한다.
도3은 본 발명의 실시예에 따른 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법의 흐름도이다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명된다. 그러나, 본 발명의 실시형태는 여러 가지의 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명하는 실시형태로만 한정되는 것은 아니다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있으며, 도면들 중 인용부호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 인용부호들로 표시됨을 유의해야 한다. 참고로 본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도1은 본 발명의 실시예에 따른 비휘발성 메모리의 웨어레벨링 방법이 구현되는 하이브리드 메모리 시스템을 예시한다. 본 발명의 실시예에 따른 하이브리드 메모리 시스템은 메모리 제어기(100), 메모리 버퍼(200) 및 비휘발성 메모리(300)를 포함한다.
도1 내지 도3에서 메모리 버퍼(200)로서 DRAM 메모리 그리고 비휘발성 메모리(300)로 PRAM을 예시하여 본원 발명의 실시예가 설명되나 다른 휘발성 및 비휘발성 메모리가 각각 메모리 버퍼(200) 및 비휘발성 메모리(300)로 이용되는 것도 가능하다.
메모리 쓰기 요청된 데이터는 우선 메모리 버퍼(200)에 저장된다. 메모리 버퍼(200)는 자주 쓰는 데이터가 우선적으로 메모리 버퍼(200)에 저장되도록 함으로써 비휘발성 메모리(300)로의 쓰기 횟수를 줄일 수 있다. 메모리 버퍼(200)가 다 찰 때까지 메모리 쓰기 요청된 데이터는 메모리 버퍼(200)에 저장된다.
이후, 메모리 버퍼(200)가 꽉 찬 경우에 LRW(Least Recent Written) 정책에 따라 메모리 버퍼(200)의 일부 데이터가 비휘발성 메모리(300)로 이동되어 저장된다. 즉, 메모리 버퍼(200)에서 가장 쓰여진지 오래된 데이터가 비휘발성 메모리(300)에 이동되어 저장되고 최근에 쓰여진 데이터는 메모리 버퍼(200)에 오랫동안 저장될 수 있다. 이는 데이터의 집약성(locality)에 기인한 것으로 최근에 쓰여진 데이터가 다음에 쓰여질 확률이 높기 때문이다. 이를 통해 자주 쓰이는 데이터가 메모리 버퍼(200)에 저장되도록 함으로써 비휘발성 메모리(300)로의 쓰기 횟수를 줄일 수 있다.
이때, 본원 발명의 실시예에서는 메모리 버퍼(200)를 이용하여 비휘발성 메모리(300)로의 쓰기 횟수를 균등하게 유지하는데 일조할 수 있다. 이는 메모리 버퍼(200)에서 데이터를 비휘발성 메모리(300)로 이동시킬 때 LRW 정책과 함께 이하의 방법을 적용함으로써 가능하다. 즉, 메모리 버퍼(200)에서 LRW 정책에 따라 가장 쓰여진지 오래된 위치에 있는 N개의 데이터를 선정하고, 이 중 가장 쓰인 횟수가 적은 데이터를 빅팀 데이터(victim data)로 선정할 수 있다. 이렇게 선정된 빅팀 데이터가 비휘발성 메모리(300)로 저장되는 것이다.
이때, N의 값이 크면 비휘발성 메모리(300)로의 쓰기 횟수를 보다 균일하게 유지할 수 있지만 자주 쓰이는 페이지가 빅팀으로 선정될 가능성이 높다. 또한, N의 값이 너무 작으면 쓰기 횟수를 줄일 수는 있지만 쓰기 횟수의 균등화는 저해될 수 있다. 이상에서 살펴본 바와 같이 N의 크기에 따라 트레이드 오프(trade-off)가 존재하기 때문에 N의 최적값은 워크로드(work load)의 특성에 따라 달라질 수 있다. N값은 실시예에 따라 다양하게 설정될 수 있으며, 예컨대 메모리 버퍼 크기의 0.1% 내지 1%에 해당하는 값이 이용될 수 있다. 도1에 도시된 바와 같이 메모리 버퍼(200) 내에서 라인 단위로 가장 쓰여진지 오래된 위치의 데이터 및 쓰기 횟수가 관리될 수 있다.
이때, 메모리 버퍼(200)에서 비휘발성 메모리(300)로 이동되어야 하는 데이터는 쓰기큐(write queue:200)에 보내져 비휘발성 메모리(300)에 저장될 때까지 대기할 수 있다.
메모리 제어기(100)는 비휘발성 메모리(300)인 주메모리의 동작을 관리하는 부분으로써 웨어레벨링 동작을 관리한다. 비휘발성 메모리(300)에 대한 웨어레벨링을 위해서는 쓰기 횟수를 저장할 필요가 있다. 이를 위해 메모리 제어기(100)는 비휘발성 메모리(300)의 라인(line)별로 쓰기 횟수를 저장 및 관리한다. 이는 도면 부호 110으로 표시된다. 이때, 라인은 라스트 레벨 캐시(LLC:Last Level Cache)의 블락 사이즈(block size)를 의미하는바, 비휘발성 메모리(300)인 주메모리로의 쓰기 요청이 상기 라인 단위로 이루어지기 때문이다.
이때, 비휘발성 메모리(300)의 관리 단위는 페이지(page) 단위이며, 페이지는 여러 라인의 집합을 지칭한다. 예컨대, 라인(64B) 64개가 모여 페이지(4KB)를 이룬다. 따라서, 본 발명의 실시예에서 비휘발성 메모리(300)의 쓰기 횟수는 라인별 뿐 아니라 페이지별로도 관리될 필요가 있다. 따라서, 본 발명의 실시예에 따른 메모리 제어기(100)는 비휘발성 메모리(300)의 페이지별로 쓰기 횟수를 저장 및 관리한다. 이는 도면 부호 120으로 표시된다. 여기서, 페이지의 쓰기 횟수는 동일 페이지 내의 라인 중 가장 쓰기 횟수가 높은 라인의 쓰기 횟수로 정의될 수 있다.
본 발명의 실시예에서 비휘발성 메모리(300)는 주메모리(main memory)를 구성한다.
본 발명의 실시예에 따른 비휘발성 메모리(300)는 여러 페이지로 이루어져 있고, 각 페이지는 여러 라인으로 구성이 된다. 또한, 라인은 여러 워드(word)로 구성되며, 워드는 메모리 접근의 최소 단위이다. 본원 발명의 실시예의 비휘발성 메모리(300)에 대한 웨어레벨링 알고리즘의 최소 단위는 라인 단위인바, 이는 비휘발성 메모리(300)인 주메모리에 대한 기본 접근 단위가 LLC의 블락 사이즈, 즉 라인 단위이기 때문이다. 또한, 주메모리에 대한 관리 단위는 페이지 단위이기 때문에 본 발명의 실시예에 따른 웨어레벨링 알고리즘은 페이지 단위로도 수행되도록 설계된다.
본 발명의 실시예에 따른 비휘발성 메모리(300)에서는 라인 기반 및/또는 페이지 기반으로 데이터 스와핑(data swapping)이 이루어진다. 이는 도1에서 도면부호 310으로 표시된다. 이와 같은 데이터 스와핑을 통해 비휘발성 메모리(300)에서의 쓰기 횟수가 균등화될 수 있다.
본 발명의 실시예에 따른 웨어레벨링 알고리즘에서 데이터 스와핑은 페이지 단위로 이루어질 수 있으며, 이는 비휘발성 메모리(300)의 페이지들 사이에서 쓰기 횟수 균등화를 위한 것이다. 또한, 페이지 내의 라인 사이에서도 역시 쓰기 횟수 불균등화가 나타날 수 있으므로 이를 방지하기 위해 본 발명의 실시예에서 라인 단위로도 데이터 스와핑이 이루어질 수 있다.
이러한 데이터 스와핑을 통해 데이터가 저장되는 실제 메모리 위치가 변경되므로, 본 발명의 실시예에 따른 메모리 제어기(100)는 도면 부호 140에 도시된 바와 같은 테이블을 포함할 수 있다. 메모리 제어기(100) 내의 상기 테이블(140)은 기존의 데이터 저장 위치와 함께 페이지 기반 및/또는 라인 기반 데이터 스와핑에 따라 변경된 데이터의 저장 위치를 저장할 수 있다.
이때, 데이터 스와핑시 스와핑이 되는 대상은 쓰기 횟수가 가장 많은 데이터와 가장 적은 데이터이다. 또한, 본 발명의 실시예에서 데이터 스와핑은 한 번에 한 개의 데이터가 아닌 여러 개의 데이터를 스와핑함으로써 웨어레벨링의 효과를 극대화할 수 있다.
도2a 및 도2b는 본 발명의 실시예에 따른 비휘발성 메모리에서 페이지 기반 데이터 스와핑 및 라인 기반 데이터 스와핑 기법을 설명한다. 도2a 및 도2b에 도시된 바와 같이 본 발명의 실시예에 따른 데이터 스와핑은 메모리 쓰기 패턴에 따라 적응적으로 데이터 스와핑 시기가 조절될 수 있다. 즉, 본 발명의 실시예에 따른 데이터 스와핑은 단순히 메모리 쓰기 횟수만을 고려하여 주기적으로 실행되는 것이 아니라 메모리 쓰기 패턴을 고려하여 이루어져 웨어레벨링 효과를 높일 수 있다. 예컨대, 메모리 쓰기가 특정 페이지나 라인에 집중될 때는 데이터 스와핑이 자주 일어날 수 있으며, 그렇지 않은 경우에는 데이터 스와핑이 덜 요구될 수 있다.
도2a에 도시된 바와 같이, 비휘발성 메모리(300)의 페이지 중 가장 높은 페이지 쓰기 횟수(Wpmax)에 대한 비휘발성 메모리(300)에 대한 총 쓰기 횟수(Wptotal)의 비율(Upsw)이 제1임계값(THpsw) 미만일 때 페이지 기반 스와핑이 수행될 수 있다. 상기 제1임계값은 워크로드의 패턴에 따라 결정될 수 있다. 예컨대, 워크로드가 특정 위치에 쓰기되는 패턴이 지속되는 경우 상기 제1임계값을 높여 스와핑이 자주 일어나게 할 수 있다. 그 반대의 경우에는 상기 제1임계값을 낮춰 스와핑이 덜 일어나게 할 수 있다.
도2b에 도시된 바와 같이, 비휘발성 메모리(300)의 소정 페이지의 라인 중 가장 높은 라인 쓰기 횟수(Wlmax)에 대한 상기 소정 페이지에 대한 총 쓰기 횟수(Wltotal)의 비율(Ulsw)이 제2임계값(THlsw) 미만일 때 라인 기반 스와핑이 수행될 수 있다. 상기 제2임계값 또한 워크로드의 패턴에 따라 결정될 수 있다. 예컨대, 워크로드가 특정 위치에 쓰기되는 패턴이 지속되는 경우 상기 제2임계값을 높여 스와핑이 자주 일어나게 할 수 있다. 그 반대의 경우에는 상기 제2임계값을 낮춰 스와핑이 덜 일어나게 할 수 있다.
이와 같이, 데이터 스와핑 시기를 쓰기 횟수에 따라 주기적으로 수행하지 않고 비율에 따라 적응적으로 조절함으로써 비휘발성 메모리(300)에 대한 웨어레벨링 효과를 높일 수 있다. 즉, 본 발명의 실시예에 따라 비율에 따라 페이지 기반 및/또는 라인 기반 데이터 스와핑을 수행함으로써 쓰기 연산이 특정 페이지 및/또는 특정 라인에 집중되는 경우 데이터 스와핑이 이루어질 수 있다.
도3은 본 발명의 실시예에 따른 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법의 흐름도이다.
도3에 도시된 바와 같이, 본 발명의 실시예에 따른 하이브리드 메모리 시스템에서 비휘발성 메모리(300)의 웨어레벨링 방법은 메모리 쓰기 요청된 데이터가 들어와(10S) 메모리 버퍼(200)에 저장되는 단계(20S), 메모리 버퍼(200)에서 가장 쓰여진지 오래된 위치에 있는 소정 개수의 데이터 중 가장 적게 쓰기된 데이터를 빅팀 데이터로 선정하는 단계(40S) 및 상기 빅팀 데이터를 비휘발성 메모리(300)에 저장하는 단계(50S)를 포함할 수 있다. 이때, 메모리 버퍼(200)가 꽉 찰때까지 메모리 쓰기 요청된 데이터는 메모리 버퍼(200)에 지속적으로 저장될 수 있다(30S).
이후, 비휘발성 메모리(300)의 페이지 중 가장 높은 페이지 쓰기 횟수에 대한 상기 비휘발성 메모리에 대한 총 쓰기 횟수의 비율이 제1임계값 미만일 때(60S) 페이지 기반 스와핑을 수행하는 단계(70S)가 수행될 수 있다.
또한, 비휘발성 메모리(300)의 소정 페이지의 라인 중 가장 높은 라인 쓰기 횟수에 대한 상기 소정 페이지에 대한 총 쓰기 횟수의 비율이 제2임계값 미만일 때(61S) 라인 기반 스와핑을 수행하는 단계(71S)가 수행될 수 있다.
이상에서 살펴본 바와 같이, 본 발명의 실시예에 따르면 하이브리드 메모리 시스템에서 비휘발성 메모리로의 쓰기 횟수를 줄일 수 있으며, 비휘발성 메모리로의 접근 특성을 고려하여 적응적으로 라인별 및 페이지별 균등한 쓰기 횟수를 유지함으로써 비휘발성 메모리의 수명을 늘리는 효과를 얻을 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 메모리 제어기
200: 메모리 버퍼
300: 비휘발성 메모리
200: 메모리 버퍼
300: 비휘발성 메모리
Claims (10)
- 삭제
- 메모리 쓰기 요청된 데이터가 메모리 버퍼에 저장되는 단계;
상기 메모리 버퍼에서 가장 쓰여진지 오래된 위치에 있는 소정 개수의 데이터 중 가장 적게 쓰기된 데이터를 빅팀 데이터로 선정하는 단계; 및
상기 빅팀 데이터를 비휘발성 메모리에 저장하는 단계를 포함하며,
상기 비휘발성 메모리의 페이지 중 가장 높은 페이지 쓰기 횟수에 대한 상기 비휘발성 메모리에 대한 총 쓰기 횟수의 비율이 제1임계값 미만일 때 페이지 기반 스와핑을 수행하는 단계를 더 포함하는 것을 특징으로 하는,
하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법. - 메모리 쓰기 요청된 데이터가 메모리 버퍼에 저장되는 단계;
상기 메모리 버퍼에서 가장 쓰여진지 오래된 위치에 있는 소정 개수의 데이터 중 가장 적게 쓰기된 데이터를 빅팀 데이터로 선정하는 단계; 및
상기 빅팀 데이터를 비휘발성 메모리에 저장하는 단계를 포함하며,
상기 비휘발성 메모리의 소정 페이지의 라인 중 가장 높은 라인 쓰기 횟수에 대한 상기 소정 페이지에 대한 총 쓰기 횟수의 비율이 제2임계값 미만일 때 라인 기반 스와핑을 수행하는 단계를 더 포함하는 것을 특징으로 하는,
하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법. - 제2항에 있어서,
상기 페이지 쓰기 횟수는 상기 페이지의 라인 중 가장 쓰기 횟수가 높은 라인의 쓰기 횟수인 것을 특징으로 하는,
하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법. - 제2항 내지 제4항 중 어느 한 항에 있어서,
상기 메모리 버퍼는 DRAM 버퍼이고 상기 비휘발성 메모리는 PRAM인 것을 특징으로 하는,
하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법. - 삭제
- 메모리 쓰기 요청된 데이터가 저장되는 메모리 버퍼;
상기 메모리 버퍼에서 가장 쓰여진지 오래된 위치에 있는 소정 개수의 데이터 중 가장 적게 쓰기된 데이터인 빅팀 데이터가 저장되는 비휘발성 메모리; 및
상기 비휘발성 메모리의 페이지별 쓰기 횟수 및 라인별 쓰기 횟수를 저장하는 메모리 제어기를 포함하며,
상기 비휘발성 메모리의 페이지 중 가장 높은 페이지 쓰기 횟수에 대한 상기 비휘발성 메모리에 대한 총 쓰기 횟수의 비율이 제1임계값 미만일 때 페이지 기반 스와핑이 수행되며,
상기 메모리 제어기는 기존의 데이터 저장 위치와 함께 상기 페이지 기반 스와핑 결과에 따라 변경된 저장 위치를 저장하는 테이블을 포함하는 것을 특징으로 하는,
하이브리드 메모리 시스템. - 메모리 쓰기 요청된 데이터가 저장되는 메모리 버퍼;
상기 메모리 버퍼에서 가장 쓰여진지 오래된 위치에 있는 소정 개수의 데이터 중 가장 적게 쓰기된 데이터인 빅팀 데이터가 저장되는 비휘발성 메모리; 및
상기 비휘발성 메모리의 페이지별 쓰기 횟수 및 라인별 쓰기 횟수를 저장하는 메모리 제어기를 포함하며,
상기 비휘발성 메모리의 소정 페이지의 라인 중 가장 높은 라인 쓰기 횟수에 대한 상기 소정 페이지에 대한 총 쓰기 횟수의 비율이 제2임계값 미만일 때 라인 기반 스와핑이 수행되며,
상기 메모리 제어기는 기존의 데이터 저장 위치와 함께 상기 라인 기반 스와핑 결과에 따라 변경된 저장 위치를 저장하는 테이블을 포함하는 것을 특징으로 하는,
하이브리드 메모리 시스템. - 제7항에 있어서,
상기 페이지 쓰기 횟수는 상기 페이지의 라인 중 가장 쓰기 횟수가 높은 라인의 쓰기 횟수인 것을 특징으로 하는,
하이브리드 메모리 시스템. - 제7항 내지 제9항 중 어느 한 항에 있어서,
상기 메모리 버퍼는 DRAM 버퍼이고 상기 비휘발성 메모리는 PRAM인 것을 특징으로 하는,
하이브리드 메모리 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120023455A KR101380602B1 (ko) | 2012-03-07 | 2012-03-07 | 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120023455A KR101380602B1 (ko) | 2012-03-07 | 2012-03-07 | 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130102309A KR20130102309A (ko) | 2013-09-17 |
KR101380602B1 true KR101380602B1 (ko) | 2014-04-04 |
Family
ID=49452103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120023455A KR101380602B1 (ko) | 2012-03-07 | 2012-03-07 | 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101380602B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9864526B2 (en) | 2015-03-19 | 2018-01-09 | Samsung Electronics Co., Ltd. | Wear leveling using multiple activity counters |
KR20180094372A (ko) | 2017-02-15 | 2018-08-23 | 에스케이하이닉스 주식회사 | 하이브리드 메모리 시스템 및 그 제어 방법 |
US10303394B2 (en) | 2017-02-15 | 2019-05-28 | SK Hynix Inc. | Memory system and operating method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090102767A (ko) * | 2006-12-20 | 2009-09-30 | 모사이드 테크놀로지스 인코퍼레이티드 | 휘발성 및 비휘발성 메모리를 갖는 하이브리드 고체 메모리 시스템 |
US20100287328A1 (en) * | 2009-05-07 | 2010-11-11 | Seagate Technology Llc | Wear leveling technique for storage devices |
-
2012
- 2012-03-07 KR KR1020120023455A patent/KR101380602B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090102767A (ko) * | 2006-12-20 | 2009-09-30 | 모사이드 테크놀로지스 인코퍼레이티드 | 휘발성 및 비휘발성 메모리를 갖는 하이브리드 고체 메모리 시스템 |
US20100287328A1 (en) * | 2009-05-07 | 2010-11-11 | Seagate Technology Llc | Wear leveling technique for storage devices |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9864526B2 (en) | 2015-03-19 | 2018-01-09 | Samsung Electronics Co., Ltd. | Wear leveling using multiple activity counters |
KR20180094372A (ko) | 2017-02-15 | 2018-08-23 | 에스케이하이닉스 주식회사 | 하이브리드 메모리 시스템 및 그 제어 방법 |
US10198211B2 (en) | 2017-02-15 | 2019-02-05 | SK Hynix Inc. | Hybrid memory system and refresh method thereof based on a read-to-write ratio of a page |
US10303394B2 (en) | 2017-02-15 | 2019-05-28 | SK Hynix Inc. | Memory system and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20130102309A (ko) | 2013-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310747B2 (en) | Memory management device and method | |
KR101982251B1 (ko) | 저장 디바이스들이 낮은 과도 공급으로 낮은 기입 증폭을 달성하기 위한 방법 | |
US9098417B2 (en) | Partitioning caches for sub-entities in computing devices | |
EP3121703A1 (en) | Data caching method, cache and computer system | |
US20140181432A1 (en) | Priority-based garbage collection for data storage systems | |
JP2017138852A (ja) | 情報処理装置、記憶装置およびプログラム | |
KR101687502B1 (ko) | 메모리 제어기, 데이터 기억 장치 및 메모리 제어 방법 | |
KR20090105143A (ko) | 메모리 시스템 및 그것의 마모도 관리 방법 | |
JP2011145838A (ja) | 記憶装置管理装置および記憶装置の管理方法 | |
JP2005301591A (ja) | 不揮発性メモリを備えた装置及びメモリコントロ−ラ | |
US10635581B2 (en) | Hybrid drive garbage collection | |
JP2007199905A (ja) | 半導体記憶装置の制御方法 | |
US20140331024A1 (en) | Method of Dynamically Adjusting Mapping Manner in Non-Volatile Memory and Non-Volatile Storage Device Using the Same | |
KR20120136197A (ko) | 비휘발성 메모리에 대한 웨어 레벨링 방법 | |
KR20180123385A (ko) | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 | |
US10235049B2 (en) | Device and method to manage access method for memory pages | |
KR101380602B1 (ko) | 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템 | |
US10606517B2 (en) | Management device and information processing device | |
KR20130063244A (ko) | 비휘발성 메모리 시스템 | |
KR101190001B1 (ko) | 비휘발성 메모리를 포함한 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템 | |
KR20150062039A (ko) | 반도체 장치 및 그 동작 방법 | |
US9846647B2 (en) | Cache device and control method threreof | |
KR101546707B1 (ko) | 하이브리드 메인 메모리 기반의 메모리 접근 관리방법 | |
KR20160121819A (ko) | 이종 메모리 기반 데이터 관리 장치 | |
US11269534B2 (en) | Data storage device and non-volatile memory control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170224 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180226 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190304 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20200302 Year of fee payment: 7 |