KR101546707B1 - 하이브리드 메인 메모리 기반의 메모리 접근 관리방법 - Google Patents
하이브리드 메인 메모리 기반의 메모리 접근 관리방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid 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)로 선정하는 선정단계; 및 상기 빅팀 데이터를 상기 비휘발성 메모리에 저장하는 저장단계; 를 포함하고, 상기 선정단계는, 상기 뱅크 상태 모니터링 모듈이 메모리 동작이 일어나고 있지 않은 프리 뱅크를 검색하면, 상기 메모리 버퍼에 저장된 데이터 중 상기 프리 뱅크에 저장될 데이터를 빅팀 데이터로 선정하는 단계이다.
본 발명의 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법은, 뱅크 상태 모니터링 모듈을 이용하여 비휘발성 메모리의 복수의 뱅크의 상태를 검색하는 검색단계; 메모리 버퍼 관리 모듈을 이용하여 메모리 버퍼에 저장된 데이터 중 적어도 하나의 데이터를 빅팀 데이터(victim data)로 선정하는 선정단계; 및 상기 빅팀 데이터를 상기 비휘발성 메모리에 저장하는 저장단계; 를 포함하고, 상기 선정단계는, 상기 뱅크 상태 모니터링 모듈이 메모리 동작이 일어나고 있지 않은 프리 뱅크를 검색하면, 상기 메모리 버퍼에 저장된 데이터 중 상기 프리 뱅크에 저장될 데이터를 빅팀 데이터로 선정하는 단계이다.
Description
본 발명은 하이브리드 메인 메모리 기반의 메모리 접근 관리방법에 관한 것이다.
대규모 컴퓨팅 시스템에서 휘발성 메모리를 메인 메모리(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 실시 형태에 따른 하이브리드 메인 메모리 기반의 메모리 접근 관리방법을 설명하기 위한 도면이다.
도 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: 저장 장치
200: 하이브리드 메인 메모리 210: 메모리 버퍼
220: 비휘발성 메모리 300: 저장 장치
Claims (7)
- 뱅크 상태 모니터링 모듈을 이용하여 비휘발성 메모리의 복수의 뱅크의 상태를 검색하는 검색단계;
메모리 버퍼 관리 모듈을 이용하여 메모리 버퍼에 저장된 데이터 중 적어도 하나의 데이터를 빅팀 데이터(victim data)로 선정하는 선정단계; 및
상기 빅팀 데이터를 상기 비휘발성 메모리에 저장하는 저장단계; 를 포함하고,
상기 선정단계는,
상기 뱅크 상태 모니터링 모듈이 메모리 동작이 일어나고 있지 않은 프리 뱅크를 검색하면, 상기 메모리 버퍼에 저장된 데이터 중 상기 프리 뱅크에 저장될 데이터를 빅팀 데이터로 선정하는 단계인, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법. - 삭제
- 제1항에 있어서,
상기 데이터 저장단계는,
상기 메모리 버퍼의 제1 영역에 저장된 데이터 중 사용한지 가장 오래된 데이터를 제2 영역에 저장하는 단계; 를 더 포함하고,
상기 프리 뱅크에 저장될 데이터는 상기 제2 영역에 저장된 데이터인, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법. - 제1항에 있어서,
상기 프리 뱅크에 저장될 데이터는 더티 데이터인, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법. - 뱅크 상태 모니터링 모듈을 이용하여 비휘발성 메모리의 복수의 뱅크의 상태를 검색하는 검색단계; 및
상기 뱅크 상태 모니터링 모듈이 메모리 버퍼로부터의 메모리 접근이 없는 뱅크를 검색하면, 상기 메모리 접근이 없는 뱅크의 데이터를 페이지 스와핑(swapping) 또는 라인 시프팅(shifting)하는 웨어레벨링 단계; 를 포함하는, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법. - 제5항에 있어서,
상기 페이지 스와핑 또는 상기 라인 시프팅 동작 중에 상기 메모리 버퍼로부터 데이터를 저장하는 단계; 를 더 포함하는, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법. - 제1항 및 제3항 내지 제6항 중 어느 한 항에 있어서,
상기 메모리 버퍼는 디램(Dynamic Random Access Memory, DRAM)인, 하이브리드 메인 메모리 기반의 메모리 접근 관리방법.
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)
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)
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 | 명지대학교 산학협력단 | 하이브리드 메인 메모리와 플래시 메모리 저장 장치의 버퍼 캐시 방법 |
-
2014
- 2014-02-04 KR KR1020140012681A patent/KR101546707B1/ko active IP Right Grant
Patent Citations (2)
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 |