KR101546707B1 - 하이브리드 메인 메모리 기반의 메모리 접근 관리방법 - Google Patents

하이브리드 메인 메모리 기반의 메모리 접근 관리방법 Download PDF

Info

Publication number
KR101546707B1
KR101546707B1 KR1020140012681A KR20140012681A KR101546707B1 KR 101546707 B1 KR101546707 B1 KR 101546707B1 KR 1020140012681 A KR1020140012681 A KR 1020140012681A KR 20140012681 A KR20140012681 A KR 20140012681A KR 101546707 B1 KR101546707 B1 KR 101546707B1
Authority
KR
South Korea
Prior art keywords
memory
data
bank
buffer
memory buffer
Prior art date
Application number
KR1020140012681A
Other languages
English (en)
Other versions
KR20150091892A (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 한국과학기술원
Priority to KR1020140012681A priority Critical patent/KR101546707B1/ko
Publication of KR20150091892A publication Critical patent/KR20150091892A/ko
Application granted granted Critical
Publication of KR101546707B1 publication Critical patent/KR101546707B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

본 발명의 실시 형태는 하이브리드 메인 메모리 기반의 메모리 접근 관리방법에 관한 것이다.
본 발명의 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은, 뱅크 상태 모니터링 모듈을 이용하여 비휘발성 메모리의 복수의 뱅크의 상태를 검색하는 검색단계; 메모리 버퍼 관리 모듈을 이용하여 메모리 버퍼에 저장된 데이터 중 적어도 하나의 데이터를 빅팀 데이터(victim data)로 선정하는 선정단계; 및 상기 빅팀 데이터를 상기 비휘발성 메모리에 저장하는 저장단계; 를 포함하고, 상기 선정단계는, 상기 뱅크 상태 모니터링 모듈이 메모리 동작이 일어나고 있지 않은 프리 뱅크를 검색하면, 상기 메모리 버퍼에 저장된 데이터 중 상기 프리 뱅크에 저장될 데이터를 빅팀 데이터로 선정하는 단계이다.

Description

하이브리드 메인 메모리 기반의 메모리 접근 관리방법{HYBRID MAIN MEMORY-BASED MEMORY ACCESS CONTROL METHOD}
본 발명은 하이브리드 메인 메모리 기반의 메모리 접근 관리방법에 관한 것이다.
대규모 컴퓨팅 시스템에서 휘발성 메모리를 메인 메모리(main memory)로 사용하는 것은 높은 전력 소모와 집적도의 한계로 인하여 제한이 있다. 휘발성 메모리로는 예컨대 디램(Dynamic Random Access Memory)이 있다.
이러한 문제점을 해결하기 위해 최근에 비휘발성 메모리의 개발이 활발히 이루어지고 있다. 비휘발성 메모리로는 예컨대 상변화 메모리(Phase Change Random Access Memory), 강유전체 메모리(Ferroelectric Random Access Memory) 및 저항 메모리(Resistive Random Access Memory) 등이 있다. 비휘발성 메모리는 휘발성 메모리에 비해 작은 전력 소모와 높은 집적도를 나타낸다. 그러나, 비휘발성 메모리는 성능 및 쓰기 내구성(write endurance)이 휘발성 메모리보다 낮은 단점을 갖는다.
최근, 휘발성 메모리의 장점과 비휘발성 메모리의 장점을 모두 활용할 수 있는 하이브리드(hybrid) 메모리 구조가 제안되었다. 이와 같은 하이브리드 메모리 구조로는 디램을 메모리 버퍼로 사용하고 비휘발성 메모리를 메인 메모리로 사용하는 경우가 대표적이다. 하지만, 종래의 하이브리드 메모리 구조는 메모리 버퍼와 메인 메모리 사이의 충돌로 인해 메모리의 성능이 저하되는 문제가 있었으며, 종래의 하이브리드 메모리 구조는 내구성 문제를 해결하기 위해 웨어레벨링 동작이 수행되기 때문에, 웨어레벨링 동작과 기본 메모리 동작 사이의 충돌이 추가적으로 발생하는 문제가 있었다.
따라서, 메모리 버퍼와 메인 메모리 사이의 충돌을 줄이고, 웨어레벨링 동작을 수행하면서 추가적인 충돌을 줄일 수 있는 메모리 접근 관리방법의 필요성이 증대되고 있다.
본 발명은 메모리 버퍼와 메인 메모리 사이의 충돌을 줄일 수 있는 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 제공한다.
또한, 본 발명은 웨어레벨링 동작으로 인한 메모리 충돌을 줄일 수 있는 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 제공한다.
본 발명의 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은, 뱅크 상태 모니터링 모듈을 이용하여 비휘발성 메모리의 복수의 뱅크의 상태를 검색하는 검색단계; 메모리 버퍼 관리 모듈을 이용하여 메모리 버퍼에 저장된 데이터 중 적어도 하나의 데이터를 빅팀 데이터(victim data)로 선정하는 선정단계; 및 상기 빅팀 데이터를 상기 비휘발성 메모리에 저장하는 저장단계; 를 포함하고, 상기 선정단계는, 상기 뱅크 상태 모니터링 모듈이 메모리 동작이 일어나고 있지 않은 프리 뱅크를 검색하면, 상기 메모리 버퍼에 저장된 데이터 중 상기 프리 뱅크에 저장될 데이터를 빅팀 데이터로 선정하는 단계이다.
삭제
여기서, 상기 데이터 저장단계는, 상기 메모리 버퍼의 제1 영역에 저장된 데이터 중 사용한지 가장 오래된 데이터를 제2 영역에 저장하는 단계; 를 더 포함하고, 상기 프리 뱅크에 저장될 데이터는 상기 제2 영역에 저장된 데이터일 수 있다.
여기서, 상기 프리 뱅크에 저장될 데이터는 더티 데이터일 수 있다.
한편, 본 발명의 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은, 뱅크 상태 모니터링 모듈을 이용하여 비휘발성 메모리의 복수의 뱅크의 상태를 검색하는 검색단계; 및 상기 뱅크 상태 모니터링 모듈이 메모리 버퍼로부터의 메모리 접근이 없는 뱅크를 검색하면, 상기 메모리 접근이 없는 뱅크의 데이터를 페이지 스와핑(swapping) 또는 라인 시프팅(shifting)하는 웨어레벨링 단계; 를 포함한다.
여기서, 상기 페이지 스와핑 또는 상기 라인 시프팅 동작 중에 상기 메모리 버퍼로부터 데이터를 저장하는 단계; 를 더 포함할 수 있다.
여기서, 상기 메모리 버퍼는 디램(Dynamic Random Access Memory, DRAM)일 수 있다.
본 발명의 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 메모리 버퍼와 메인 메모리 사이의 충돌을 줄여서 하이브리드 메인 메모리의 메모리 성능의 저하를 방지할 수 있는 이점이 있다.
또한, 본 발명의 실시 형태는 웨어레벨링 동작과 기본 메모리 동작 사이의 충돌을 방지함으로 인해 하이브리드 메인 메모리의 메모리 성능의 저하를 방지할 수 있는 이점이 있다.
그리고, 본 발명의 실시 형태는 메모리 버퍼를 고려하여 웨어레벨링 동작하기 때문에 중복된 연산을 피함으로써, 하이브리드 메인 메모리의 메모리 성능을 개선할 수 있는 이점이 있다.
도 1은 하이브리드 메인 메모리 기반의 메모리 접근 관리 시스템의 개념도이다.
도 2는 웨어레벨링을 설명하기 위한 도면이다.
도 3은 제1 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 설명하기 위한 도면이다.
도 4는 제2 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 설명하기 위한 도면이다.
도 5는 메모리 접근이 없을 때 웨어레벨링 동작이 수행되는 것을 보여주기 위한 도면이다.
도 6은 제3 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 설명하기 위한 도면이다.
도면에서 각층의 두께나 크기는 설명의 편의 및 명확성을 위하여 과장되거나 생략되거나 또는 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제크기를 전적으로 반영하는 것은 아니다.
본 발명에 따른 실시 형태의 설명에 있어서, 어느 한 element가 다른 element의 " 상(위) 또는 하(아래)(on or under)"에 형성되는 것으로 기재되는 경우에 있어, 상(위) 또는 하(아래)(on or under)는 두 개의 element가 서로 직접(directly)접촉되거나 하나 이상의 다른 element가 상기 두 element사이에 배치되어(indirectly) 형성되는 것을 모두 포함한다. 또한 “상(위) 또는 하(아래)(on or under)”으로 표현되는 경우 하나의 element를 기준으로 위쪽 방향뿐만 아니라 아래쪽 방향의 의미도 포함할 수 있다.
도 1은 하이브리드 메인 메모리 기반의 메모리 접근 관리 시스템의 개념도이다.
도 1을 참조하면 메인 메모리 기반의 메모리 접근 관리 시스템은 중앙처리장치(CPU, 100), 하이브리드 메인 메모리(200) 및 저장 장치(300)를 포함할 수 있다.
중앙처리장치(100)는 메모리 컨트롤러(110), 코어(120), L1 캐시(level one cache, 130) 및 L2 캐시(level two cache, 140)를 포함할 수 있다.
메모리 컨트롤러(110)는 하이브리드 메인 메모리(200)의 동작을 관리할 수 있다. 구체적으로 메모리 컨트롤러(110)는 메모리 버퍼 관리 모듈(111), 뱅크 상태 모니터링 모듈(112), 스와핑 모듈(113) 및 시프팅 모듈(114)을 포함할 수 있다.
메모리 버퍼 관리 모듈(111)은 뱅크 상태 모니터링 모듈(112)를 활용하여 비휘발성 메모리(220)의 뱅크의 상태를 파악함으로써 메모리 버퍼(210)의 데이터 중 하나이상의 데이터를 빅팀 데이터(Victim data)로 선정한다.
도 2를 참조하면, 스와핑 모듈(113)은 페이지 스와핑(swapping)을 담당한다. 페이지 스와핑은 가장 많이 쓰인 페이지의 데이터와 가장 적게 쓰인 페이지의 데이터를 교환해줌으로써 비휘발성 메모리(220) 내 모든 페이지의 쓰기 횟수를 균등하게 하기 위한 동작이다.
시프팅 모듈(114)은 라인 시프팅(shifting)을 담당한다. 라인 시프팅은 페이지 내 라인 별 쓰기 횟수를 균등하게 하기 위한 동작으로 주기적으로 페이지 내 라인 단위로 시프팅하는 동작이다.
스와핑 모듈(113) 및 시프팅 모듈(114)은 메모리 버퍼(210)의 사용량에 따라 동작 시기가 동적으로 결정이 되며, 동작 시에는 메모리 버퍼(110)를 고려한 동작이 이루어지게 된다.
코어(120)는 중앙처리장치(100)안에 하나 이상일 수 있다. 구체적으로, 코어가 1개이면 싱글코어, 코어가 2개이면 듀얼코어, 코어가 8개이면 옥타코어일 수 있다.
L1 캐시(130)는 상위 캐시 메모리이다. 여기서, L1 캐시(130)는 코어(120)와 나뉘어 진 것으로 도시되었지만 반드시 이에 한정되는 것은 아니며 코어(120)내에 포함될 수 있다.
L2 캐시(140)는 보조 캐시 메모리이다. 여기서, L2 캐시(140)는 LLC(last level cache)일 수 있다.
하이브리드 메인 메모리(200)는 메모리 버퍼(210) 및 비휘발성 메모리(220)를 포함한다. 하이브리드 메인 메모리(200)는 중앙처리장치(100)과 저장 장치(300) 사이에 배치될 수 있다.
메모리 버퍼(210)는 L2 캐시(140)의 블락 사이즈인 라인 단위로 관리된다. 메모리 버퍼(210)는 디램(Dynamic Random Access Memory, DRAM)을 포함할 수 있다.
비휘발성 메모리(220)는 메모리 시스템의 관리 단위가 페이지이기 때문에, 페이지 단위로 관리가 되게 된다. 비휘발성 메모리(220)는 복수의 페이지로 이루어지고, 각 페이지는 여러 라인으로 구성되어 데이터를 관리한다. 여기서, 64개의 라인(64B)은 하나의 페이지(4KB)일 수 있다.
비휘발성 메모리(220)에서는 페이지 기반으로 페이지 스와핑이 이루어질 수 있다. 이와 같은 페이지 스와핑을 통해 쓰기 횟수가 가장 많은 페이지와 쓰기 횟수가 가장 적은 페이지의 데이터를 교환해줌으로써 비휘발성 메모리(220) 내의 모든 페이지들의 쓰기 횟수를 균등화할 수 있다.
또한, 비휘발성 메모리(220)에서는 라인 기반으로 라인 시프팅이 이루어질 수 있다. 이와 같은 라인 시프팅을 통해 페이지 내의 라인들의 쓰기 횟수를 균등하게 할 수 있다.
비휘발성 메모리(220)는 상변화 메모리(Phase-Change Random Access Memory, PRAM), 강유전체 메모리(Ferroelectric Random Access Memory, FRAM), 저항 메모리(Resistive Random Access Memory, RRAM), 자기저항 메모리(Spin Transfer Torque-Magnetic Random Access Memory, STT-MRAM) 등을 포함할 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 설명한다.
<제1 실시 형태>
도 3은 제1 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 설명하기 위한 도면이다.
도 1 및 도 3을 참조하면, 메모리 쓰기 요청된 데이터는 우선 메모리 버퍼(210)에 저장된다. 메모리 버퍼(210)는 자주 쓰는 데이터가 우선적으로 메모리 버퍼(210)에 저장되도록 함으로써 비휘발성 메모리(220)로의 쓰기 횟수를 줄일 수 있다. 메모리 쓰기 요청된 데이터는 메모리 버퍼(210)가 가득 찰 때까지 메모리 버퍼(210)에 저장된다.
또한, 메모리 읽기 요청된 데이터는 우선 메모리 버퍼(210)에서 읽기 요청된 데이터를 검색한다. 이때, 읽기 요청된 데이터가 메모리 버퍼(210)에 존재하면, 메모리 버퍼(210)에서 데이터를 읽는다.
반면, 읽기 요청된 데이터가 메모리 버퍼(210)에 데이터가 존재하지 않으면, 비휘발성 메모리(220)에서 읽기 요청된 데이터를 검색한 후, 읽기 요청된 데이터가 존재하면, 비휘발성 메모리(220)에서 메모리 버퍼(210)로 읽기 요청된 데이터가 저장된 후, 메모리 버퍼(210)에서 읽기 요청된 데이터를 읽는다.
구체적으로, 메모리 버퍼(210)는 제1 영역 및 제2 영역으로 나누어 데이터를 관리한다.
제1 영역에서는 클린 데이터와 더티 데이터를 MRU(Most Recently Used) 및 LRU(Least Recently Used)로 배열하여 관리한다. 여기서, 더티 데이터는 메모리 쓰기 요청에 의해 메모리 버퍼(210)에 저장된 데이터이고, 클린 데이터는 메모리 읽기 요청에 의해 비휘발성 메모리(220)에서 메모리 버퍼(210)로 저장된 데이터이다.
메모리 버퍼(210)는 제1 영역에서 사용한지 가장 오래된 데이터를 빅팀 데이터(Victim data)로 선정할 수 있다. 구체적으로, 메모리 버퍼 관리 모듈(111)에 의해 빅팀 데이터가 선정된다. 이렇게 선정된 빅팀 데이터는 제2 영역으로 전송된다. 이는 데이터의 집약성(locality)에 기인한 것으로 최근에 쓰여진 데이터가 다음에 쓰여질 확률이 높기 때문에 메모리 버퍼(210)는 메모리 버퍼(210)에서의 적중률(Hit Ratio)을 높일 수 있다.
제2 영역에서는 클린 데이터 영역과 더티 데이터 영역을 나누어 관리한다.
메모리 버퍼(210)가 가득 차게 되면, 메모리 버퍼(210)는 제2 영역의 클린 데이터 영역에서 하나 이상의 데이터를 빅팀 데이터로 선정한다. 이때, 상기 클린 데이터는 비휘발성 메모리(220)에 저장되는 데이터이기 때문에 상기 클린 데이터에서 선정된 빅팀 데이터는 추가적인 동작 없이 제거될 수 있다.
반면, 메모리 버퍼(210)는 제2 영역의 클린 데이터가 없으면, 더티 데이터 중 하나의 데이터를 빅팀 데이터로 선정한다. 이때, 상기 빅팀 데이터로 선정되는 데이터는 비휘발성 메모리(220)의 프리 뱅크(free bank)에 저장될 데이터일 수 있다. 여기서, 프리 뱅크는 메모리 동작이 일어나고 있지 않은 뱅크일 수 있고, 비지 뱅크(busy bank)는 기본 메모리 접근 또는 웨어레벨링(페이지 스와핑 또는 라인 시프팅) 동작에 의해 메모리 동작이 일어나고 있는 뱅크일 수 있다. 여기서, 비지 뱅크와 프리 뱅크는 뱅크 상태 모니터링 모듈(112)에 의해 검색될 수 있다.
이와 같이, 제1 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 비휘발성 메모리(220)의 뱅크의 상태를 고려하여 빅팀 데이터를 선정할 수 있으므로, 메모리 버퍼(210)와 비휘발성 메모리(220) 사이의 접근 충돌을 방지하고, 비휘발성 메모리(220)의 메모리 성능을 개선할 수 있는 이점이 있다.
<제2 실시 형태>
도 4는 제2 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 설명하기 위한 도면이고, 도 5는 메모리 접근이 없을 때 웨어레벨링 동작이 수행되는 것을 보여주기 위한 도면이다.
도 4을 참조하면, 제2 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 메모리 버퍼(210)가 가득차면, 비휘발성 메모리(220)의 메모리 요청을 대비하여 버퍼 내의 데이터와 연관되지 않은 뱅크에 대해서 웨어레벨링 동작을 하고, 버퍼 내의 데이터와 연관된 뱅크에 대해서는 웨어레벨링 동작을 하지 않는다.
또한, 메모리 버퍼(210)가 여유 있으면, 모든 뱅크에서 웨어레벨링 동작을 한다. 여기서, 상기 웨어레벨링 동작은 프리 뱅크에서만 이루어질 수 있다.
도 5를 참조하면, 제2 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 메모리 접근(Memory Access)이 있을 때 웨어레벨링 동작을 하지 않고, 메모리 접근이 없을 때 웨어레벨링 동작을 함으로써 메모리 접근과 웨어레벨링 동작 사이의 충돌을 방지하여 상기 충돌로 인한 하이브리드 메인 메모리(200)의 성능 저하를 방지할 수 있는 이점이 있다.
이와 같이, 제2 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 메모리 버퍼(210)의 사용량과 메모리 버퍼(210) 내의 뱅크의 상태를 활용하여 웨어레벨링 동작 시기를 결정함으로써 웨어레벨링 동작과 기본 메모리 동작 사이의 충돌을 피할 수 있기 때문에 메인 메모리의 성능 개선을 가져올 수 있는 이점이 있다.
<제3 실시 형태>
도 6은 제3 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 설명하기 위한 도면이다.
도 6을 참조하면, 비휘발성 메모리(220)는 2가지 쓰기 연산을 수행할 수 있다. 먼저 첫 번째는 메모리 버퍼(210)의 제2 영역의 더티 데이터 영역에서 빅팀 데이터가 선정되었을 때 비휘발성 메모리(220)는 쓰기 연산을 수행할 수 있다.
또한, 두 번째는 비휘발성 메모리(220)는 스와핑 및 시프팅에 의한 쓰기 연산이 수행될 수 있다.
따라서, 상기 2가지 쓰기 연산은 따로 수행될 시 중복된 연산으로 인해 불필요한 2번의 연산이 수행된다. 따라서, 이러한 2번의 중복된 연산을 한번에 수행할 수 있다.
하나의 예를 들어 설명하면, 먼저 페이지 스와핑에 의해 페이지(LN0~LN63)와 페이지(LN192~LN255)가 교환될 수 있다. 구체적으로, 페이지 스와핑 동작은 스와핑 모듈(113)에 의해 수행될 수 있다. 이때, 비휘발성 메모리(220)에 메모리 버퍼(210)의 라인(LN192)의 쓰기 연산이 수행될 수 있다.
또한, 라인 시프팅에 의해 라인(LN318)이 쓰기 연산을 수행될 수 있다. 구체적으로, 시프팅 모듈(114)에 의해 수행될 수 있다. 이때, 비휘발성 메모리(220)에 메모리 버퍼(210)의 라인(LN318)의 쓰기 연산이 수행될 수 있다.
여기서, 메모리 버퍼(210)의 라인(LN192) 및 라인(LN318)은 비휘발성 메모리(220)에 저장되었기 때문에 클린 데이터로 바뀌게 된다. 따라서, 메모리 버퍼(210) 내에 라인(LN192) 및 라인(LN318)이 클린 데이터로 남게 되기 때문에 메모리 버퍼(210)의 적중률을 유지할 수 있다.
이와 같이, 제3 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 페이지 스와핑 또는 라인 시프팅을 수행하는 중에 메모리 버퍼(210)로부터 데이터를 저장을 동시에 수행함으로 메모리의 성능을 개선할 수 있는 이점이 있다.
도 1 내지 도 6에 도시된 바와 같이, 제1 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 비휘발성 메모리(220)의 뱅크 상태를 고려하여 메모리 버퍼(210)에서 빅팀 데이터를 선정하기 때문에, 메모리 버퍼(210)와 비휘발성 메모리(220) 사이의 충돌을 방지하여 하이브리드 메인 메모리의 성능 저하를 방지할 수 있는 이점이 있다.
또한, 제2 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 메모리 버퍼(210)의 정보를 활용하여 동적 웨어레벨링 동작 시기를 결정하기 때문에 웨어레벨링 동작과 기본 메모리 동작 사이의 충돌을 방지함으로 인해 하이브리드 메인 메모리의 성능 저하를 방지할 수 있는 이점이 있다.
그리고, 제3 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은 메모리 버퍼(210)를 고려하여 웨어레벨링 동작하기 때문에 중복된 연산을 피함으로써, 하이브리드 메인 메모리의 메모리 성능을 개선할 수 있는 이점이 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시 형태를 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시 형태의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 형태에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
100: 중앙처리장치 110: 메모리 컨트롤러
200: 하이브리드 메인 메모리 210: 메모리 버퍼
220: 비휘발성 메모리 300: 저장 장치

Claims (7)

  1. 뱅크 상태 모니터링 모듈을 이용하여 비휘발성 메모리의 복수의 뱅크의 상태를 검색하는 검색단계;
    메모리 버퍼 관리 모듈을 이용하여 메모리 버퍼에 저장된 데이터 중 적어도 하나의 데이터를 빅팀 데이터(victim data)로 선정하는 선정단계; 및
    상기 빅팀 데이터를 상기 비휘발성 메모리에 저장하는 저장단계; 를 포함하고,
    상기 선정단계는,
    상기 뱅크 상태 모니터링 모듈이 메모리 동작이 일어나고 있지 않은 프리 뱅크를 검색하면, 상기 메모리 버퍼에 저장된 데이터 중 상기 프리 뱅크에 저장될 데이터를 빅팀 데이터로 선정하는 단계인, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 데이터 저장단계는,
    상기 메모리 버퍼의 제1 영역에 저장된 데이터 중 사용한지 가장 오래된 데이터를 제2 영역에 저장하는 단계; 를 더 포함하고,
    상기 프리 뱅크에 저장될 데이터는 상기 제2 영역에 저장된 데이터인, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법.
  4. 제1항에 있어서,
    상기 프리 뱅크에 저장될 데이터는 더티 데이터인, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법.
  5. 뱅크 상태 모니터링 모듈을 이용하여 비휘발성 메모리의 복수의 뱅크의 상태를 검색하는 검색단계; 및
    상기 뱅크 상태 모니터링 모듈이 메모리 버퍼로부터의 메모리 접근이 없는 뱅크를 검색하면, 상기 메모리 접근이 없는 뱅크의 데이터를 페이지 스와핑(swapping) 또는 라인 시프팅(shifting)하는 웨어레벨링 단계; 를 포함하는, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법.
  6. 제5항에 있어서,
    상기 페이지 스와핑 또는 상기 라인 시프팅 동작 중에 상기 메모리 버퍼로부터 데이터를 저장하는 단계; 를 더 포함하는, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법.
  7. 제1항 및 제3항 내지 제6항 중 어느 한 항에 있어서,
    상기 메모리 버퍼는 디램(Dynamic Random Access Memory, DRAM)인, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법.
KR1020140012681A 2014-02-04 2014-02-04 하이브리드 메인 메모리 기반의 메모리 접근 관리방법 KR101546707B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140012681A KR101546707B1 (ko) 2014-02-04 2014-02-04 하이브리드 메인 메모리 기반의 메모리 접근 관리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140012681A KR101546707B1 (ko) 2014-02-04 2014-02-04 하이브리드 메인 메모리 기반의 메모리 접근 관리방법

Publications (2)

Publication Number Publication Date
KR20150091892A KR20150091892A (ko) 2015-08-12
KR101546707B1 true KR101546707B1 (ko) 2015-08-24

Family

ID=54056594

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140012681A KR101546707B1 (ko) 2014-02-04 2014-02-04 하이브리드 메인 메모리 기반의 메모리 접근 관리방법

Country Status (1)

Country Link
KR (1) KR101546707B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282108B2 (en) 2016-08-31 2019-05-07 Micron Technology, Inc. Hybrid memory device using different types of capacitors
US11094358B2 (en) 2016-09-30 2021-08-17 Intel Corporation Semiconductor chip manufacturing process for integrating logic circuitry, embedded DRAM and embedded non-volatile ferroelectric random access memory (FERAM) on a same semiconductor die
WO2018063370A1 (en) * 2016-09-30 2018-04-05 Intel Corporation Semiconductor chip manufacturing process for integrating logic circuitry, embedded dram and embedded non-volatile resistive random access memory (rram) on a same semiconductor die

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176785A (ja) * 2007-01-16 2008-07-31 Samsung Electronics Co Ltd ハイブリッドハードディスクドライブ、ハイブリッドハードディスクドライブを内蔵するコンピュータシステム、そしてハイブリッドハードディスクドライブのフラッシュメモリdma回路
KR101443678B1 (ko) 2013-06-04 2014-09-26 명지대학교 산학협력단 하이브리드 메인 메모리와 플래시 메모리 저장 장치의 버퍼 캐시 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176785A (ja) * 2007-01-16 2008-07-31 Samsung Electronics Co Ltd ハイブリッドハードディスクドライブ、ハイブリッドハードディスクドライブを内蔵するコンピュータシステム、そしてハイブリッドハードディスクドライブのフラッシュメモリdma回路
KR101443678B1 (ko) 2013-06-04 2014-09-26 명지대학교 산학협력단 하이브리드 메인 메모리와 플래시 메모리 저장 장치의 버퍼 캐시 방법

Also Published As

Publication number Publication date
KR20150091892A (ko) 2015-08-12

Similar Documents

Publication Publication Date Title
EP3121703B1 (en) Data caching method, cache and computer system
US10572150B2 (en) Memory network with memory nodes controlling memory accesses in the memory network
US8615634B2 (en) Coordinated writeback of dirty cachelines
US8954672B2 (en) System and method for cache organization in row-based memories
US8645627B2 (en) Memory bus write prioritization
US20090144503A1 (en) Method and system for integrating sram and dram architecture in set associative cache
KR102453192B1 (ko) 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체
US10761989B2 (en) Method of storage management, storage system and computer program product
US11093410B2 (en) Cache management method, storage system and computer program product
CN105103235A (zh) 具有用于更高性能和能量效率的去耦比特的非易失性多级单元存储器
US20140237190A1 (en) Memory system and management method therof
CN109739696B (zh) 一种双控存储阵列固态硬盘缓存加速方法
CN108572799B (zh) 一种双向哈希链表的异构内存系统数据页迁移方法
KR101546707B1 (ko) 하이브리드 메인 메모리 기반의 메모리 접근 관리방법
KR101351550B1 (ko) 비휘발성 메인 메모리 기반을 위한 이중 버퍼 구조 및 데이터 운영 방식
KR20160121819A (ko) 이종 메모리 기반 데이터 관리 장치
US8874827B2 (en) Page merging for buffer efficiency in hybrid memory systems
JP5992592B1 (ja) キャッシュメモリシステム
KR101380602B1 (ko) 하이브리드 메모리 시스템에서 비휘발성 메모리의 웨어레벨링 방법 및 하이브리드 메모리 시스템
US9092344B2 (en) Solid state drive
KR101502998B1 (ko) 메모리 시스템 및 그 관리 방법
KR101831226B1 (ko) 차세대 메모리로 구성된 캐시의 제어 장치 및 그 방법
JP5953245B2 (ja) 情報処理システム
US9760488B2 (en) Cache controlling method for memory system and cache system thereof
KR102014723B1 (ko) 하이브리드 메모리 시스템의 버퍼 효율성을 위한 페이지 병합 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180725

Year of fee payment: 4