KR20110106058A - 메인 메모리 시스템, 관리방법, 컴퓨터 판독가능매체 - Google Patents

메인 메모리 시스템, 관리방법, 컴퓨터 판독가능매체 Download PDF

Info

Publication number
KR20110106058A
KR20110106058A KR1020100025272A KR20100025272A KR20110106058A KR 20110106058 A KR20110106058 A KR 20110106058A KR 1020100025272 A KR1020100025272 A KR 1020100025272A KR 20100025272 A KR20100025272 A KR 20100025272A KR 20110106058 A KR20110106058 A KR 20110106058A
Authority
KR
South Korea
Prior art keywords
memory
nonvolatile
access frequency
volatile memory
block
Prior art date
Application number
KR1020100025272A
Other languages
English (en)
Other versions
KR101130051B1 (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 KR1020100025272A priority Critical patent/KR101130051B1/ko
Publication of KR20110106058A publication Critical patent/KR20110106058A/ko
Application granted granted Critical
Publication of KR101130051B1 publication Critical patent/KR101130051B1/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements

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)
  • Memory System (AREA)

Abstract

실시예는 메인 메모리 시스템에 관한 것이다.
실시예에 따른 메인 메모리 시스템은, 하나 이상의 휘발성 메모리, 복수의 비휘발성 메모리를 포함하는 비휘발성 메모리 어레이, 및 현재 접근하고자 하는 주소의 메모리 페이지가 비휘발성 메모리 어레이에 존재하는 경우, 비휘발성 메모리 어레이의 접근 빈도수에 따라, 복수의 비휘발성 메모리 중 메모리 페이지가 존재하는 비휘발성 메모리에 워드 단위로 접근하도록 하거나, 복수의 비휘발성 메모리를 병렬적으로 접근하여 메모리 페이지에 존재하는 데이터를 휘발성 메모리에 블록 단위로 마이그레이션(migration)한 후, 마이그레이션된 휘발성 메모리를 워드 단위로 접근하도록 하는 메인 메모리 컨트롤러를 포함한다.

Description

메인 메모리 시스템, 관리방법, 컴퓨터 판독가능매체{A SYSTEM, METHOD AND COMUPUTER READABLE MEDIA FOR MANAGING MAIN MEMORY}
실시예는 메인 메모리 시스템에 관한 것이다.
컴퓨터 시스템의 메인 메모리로 자주 사용되는 휘발성 메모리는, 일반적인 비휘발성 메모리와 비교하여 읽기 및 쓰기를 위한 접근 시간 및 전송 시간이 매우 짧다는 장점이 있다.
반면, 휘발성 메모리는, 메모리로의 전원공급이 차단될 경우, 메모리 내에 저장되어 있는 모든 데이터를 잃게 될 수 있다는 단점이 있다. 이에 따라, 메모리에 전원공급이 차단될 경우 발생할 수 있는 문제를 감수해야 하거나, 이러한 문제를 해결하기 위한 소프트웨어적인 해결방안을 적용시킴으로써 발생할 수 있는 추가적인 시스템 오버헤드를 갖게 된다.
이러한 문제를 해결하기 위해 종래에는, 휘발성 메모리를 1차적인 메인 메모리로 사용하고, 비휘발성 메모리를 2차적인 메인 메모리로 사용하는 이종 메모리를 이용한 2단계의 메인 메모리 구조가 제안되었다. 또한, 종래에는 2단계의 메인 메모리를 구성하고, 메모리들간의 트랜스퍼(transfer)가 가능하도록 인터페이스를 구성하였다. 실제, 종래의 메인 메모리의 입출력은 1차적인 휘발성 메모리에서만 가능하도록 구성되어 있으며, 1차적인 휘발성 메모리에 읽고자 하는 데이터가 없는 경우, 2차적인 비휘발성 메모리에서 데이터를 읽어오며, 1차 휘발성 메모리에 쓰기 공간이 부족한 경우, 2차 비휘발성 메모리로 데이터 트랜스퍼(transfer)가 발생하도록 구성되어 있다. 이러한 종래 기술에서는, 2차적인 비휘발성 메모리로의 직접 접근을 위한 인터페이스가 제시되지 않았으며, 이로 인해, 1차적인 휘발성 메모리로의 접근이 실패될 경우 오버헤드가 존재할 수 있는 문제점을 갖는다.
실시예는 빠른 접근 속도를 가지며, 저전력 및 대용량의 메인 메모리 시스템을 제공함에 목적이 있다.
실시예는 빠른 접근 속도를 가지며, 저전력 및 대용량의 메인 메모리 시스템을 관리하는 방법을 제공함에 목적이 있다.
실시예는 빠른 데이터 접근 속도를 가지며, 저전력 및 대용량의 메인 메모리를 관리하기 위한 컴퓨터 판독가능매체를 제공함에 목적이 있다.
실시예에 따른 메인 메모리 시스템은, 하나 이상의 휘발성 메모리, 복수의 비휘발성 메모리를 포함하는 비휘발성 메모리 어레이, 및 현재 접근하고자 하는 주소의 메모리 페이지가 비휘발성 메모리 어레이에 존재하는 경우, 비휘발성 메모리 어레이의 접근 빈도수에 따라, 복수의 비휘발성 메모리 중 메모리 페이지가 존재하는 비휘발성 메모리에 워드 단위로 접근하도록 하거나, 복수의 비휘발성 메모리를 병렬적으로 접근하여 메모리 페이지에 존재하는 데이터를 휘발성 메모리에 블록 단위로 마이그레이션(migration)한 후, 마이그레이션된 휘발성 메모리를 워드 단위로 접근하도록 하는 메인 메모리 컨트롤러를 포함한다.
메인 메모리 컨트롤러는,
비휘발성 메모리 어레이의 접근 빈도수를 측정하고, 측정된 접근 빈도수 및 기 설정된 기준 접근 빈도수를 비교하는 접근 성능 모니터, 측정된 접근 빈도수가 기 설정된 기준 접근 빈도수보다 낮을 경우, 제1 접근 방식을 선택하고, 측정된 접근 빈도수가 기 설정된 기준 접근 빈도수보다 높을 경우, 제2 접근 방식을 선택하며, 복수의 비휘발성 메모리 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산하는 접근 방식 변환기, 접근 방식 변환기가 제1 접근 방식을 선택할 경우, 복수의 비휘발성 메모리 중 메모리 페이지가 존재하는 비휘발성 메모리를 선택하여 워드 단위로 접근하도록 하는 메모리 선택기, 및 접근 방식 변환기가 제2 접근 방식을 선택할 경우, 복수의 비휘발성 메모리를 병렬적으로 접근하여, 계산된 블록의 주소에 존재하는 데이터를, 휘발성 메모리에 블록 단위로 마이그레이션(migration)하는 마이그레이터(migrator)를 포함하는 것이 바람직하다.
마이그레이터는,
마이그레이션 블록 크기 설정을 위한 요청신호에 따라, 마이그레이션할 블록의 크기를 설정하는 것이 바람직하다.
접근 성능 모니터는,
측정된 접근 빈도수와 타이머를 이용하여, 메인 메모리 컨트롤러가 유휴기간에 진입했는지를 판별하고, 메인 메모리 컨트롤러가 유휴기간에 진입한 경우, 라이트-백(write back) 신호를 마이그레이터로 전송하며,
마이그레이터는,
라이트-백(write back) 신호에 따라, 휘발성 메모리에 저장된 데이터를 비휘발성 메모리 어레이에 기록하는 것이 바람직하다.
실시예에 따른 메인 메모리 관리방법은, 휘발성 메모리와, 복수의 비휘발성 메모리를 포함하는 비휘발성 메모리 어레이로 구성된 메인 메모리를 관리하는 방법으로서, 현재 접근하고자 하는 주소의 메모리 페이지가 휘발성 메모리에 존재하는 경우, 휘발성 메모리를 워드 단위로 접근하는 제1 단계, 현재 접근하고자 하는 주소의 메모리 페이지가 비휘발성 메모리 어레이에 존재하는 경우, 비휘발성 메모리 어레이의 접근 빈도수를 측정하는 제2 단계, 측정된 접근 빈도수 및 기 설정된 기준 접근 빈도수를 비교하는 제3 단계, 측정된 접근 빈도수가 기 설정된 기준 접근 빈도수보다 낮을 경우, 복수의 비휘발성 메모리 중 메모리 페이지가 존재하는 비휘발성 메모리를 선택하여 워드 단위로 접근하는 제4 단계, 측정된 접근 빈도수가 기 설정된 기준 접근 빈도수보다 높을 경우, 복수의 비휘발성 메모리 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산하고, 복수의 비휘발성 메모리를 병렬적으로 접근하여, 계산된 블록의 주소에 존재하는 데이터를, 휘발성 메모리에 블록 단위로 마이그레이션(migration)하는 제5 단계, 및 마이그레이션된 휘발성 메모리를 워드 단위로 접근 하는 제6 단계를 포함한다.
제5 단계는,
마이그레이션 블록 크기 설정을 위한 요청신호가 있을 경우, 마이그레이션할 블록의 크기를 설정하는 단계를 더 포함하는 것이 바람직하다.
측정된 접근 빈도수와 타이머를 이용하여, 비휘발성 메모리 어레이가 유휴기간에 진입했는지를 판별하는 단계, 및 비휘발성 메모리 어레이가 유휴기간에 진입한 경우, 휘발성 메모리에 저장된 데이터를 비휘발성 메모리 어레이에 기록하는 단계를 더 포함하는 것이 바람직하다.
실시예에 따른 컴퓨터 판독가능매체는, 휘발성 메모리와, 복수의 비휘발성 메모리를 포함하는 비휘발성 메모리 어레이로 구성된 메인 메모리를 관리하기 위한 프로그램을 포함하는 컴퓨터 판독가능매체로서, 프로그램은, 현재 접근하고자 하는 주소의 메모리 페이지가 휘발성 메모리에 존재하는 경우, 휘발성 메모리를 워드 단위로 접근하는 제1 단계, 현재 접근하고자 하는 주소의 메모리 페이지가 비휘발성 메모리 어레이에 존재하는 경우, 비휘발성 메모리 어레이의 접근 빈도수를 측정하는 제2 단계, 측정된 접근 빈도수 및 기 설정된 기준 접근 빈도수를 비교하는 제3 단계, 측정된 접근 빈도수가 기 설정된 기준 접근 빈도수보다 낮을 경우, 복수의 비휘발성 메모리 중 메모리 페이지가 존재하는 비휘발성 메모리를 선택하여 워드 단위로 접근하는 제4 단계, 측정된 접근 빈도수가 기 설정된 기준 접근 빈도수보다 높을 경우, 복수의 비휘발성 메모리 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산하고, 복수의 비휘발성 메모리를 병렬적으로 접근하여, 계산된 블록의 주소에 존재하는 데이터를, 휘발성 메모리에 블록 단위로 마이그레이션(migration)하는 제5 단계, 및 마이그레이션된 휘발성 메모리를 워드 단위로 접근 하는 제6 단계를 수행한다.
프로그램은,
마이그레이션 블록 크기 설정을 위한 요청신호가 있을 경우, 마이그레이션할 블록의 크기를 설정하는 단계를 더 수행하는 것이 바람직하다.
프로그램은,
측정된 접근 빈도수와 타이머를 이용하여, 비휘발성 메모리 어레이가 유휴기간에 진입했는지를 판별하는 단계, 및 비휘발성 메모리 어레이가 유휴기간에 진입한 경우, 휘발성 메모리에 저장된 데이터를 비휘발성 메모리 어레이에 기록하는 단계를 더 수행하는 것이 바람직하다.
실시예에 따르면, 빠른 접근 속도를 가지며, 저전력 및 대용량의 메인 메모리 시스템을 제공할 수 있다.
실시예에 따르면, 빠른 접근 속도를 가지며, 저전력 및 대용량의 메인 메모리 시스템을 관리하는 방법을 제공할 수 있다.
실시예에 따르면, 빠른 데이터 접근 속도를 가지며, 저전력 및 대용량의 메인 메모리를 관리하기 위한 컴퓨터 판독가능매체를 제공할 수 있다.
도 1은 실시예에 따른 메인 메모리 시스템의 개략적인 구성을 나타낸 도면.
도 2는 실시예에 따른 메인 메모리 시스템을 이용한 비휘발성 메모리 어레이의 워드 단위 접근 방식을 설명하기 위해 나타낸 도면.
도 3은 실시예에 따른 메인 메모리 시스템을 이용한 비휘발성 메모리 어레이의 블록 단위 접근 방식을 설명하기 위해 나타낸 도면.
도 4는 실시예에 따른 메인 메모리 시스템에서 사용자 요청을 통한 마이그레이션 블록 크기 설정 및 휘발성 메모리의 데이터 일시 교체 동작을 설명하기 위해 나타낸 도면.
도 5는 실시예에 따른 메인 메모리 시스템 상에서 휘발성 메모리의 데이터를 비휘발성 메모리 어레이에 기록하는 방법을 설명하기 위해 나타낸 도면.
도 6은 실시예에 따른 메인 메모리의 관리방법을 설명하기 위해 나타낸 흐름도.
이하 첨부된 도면을 참조하여 실시예에 따른 메인 메모리를 위한 시스템, 관리방법 및 컴퓨터 판독가능매체에 대하여 상세히 설명한다. 다만, 첨부된 도면은 실시예의 내용을 보다 쉽게 개시하기 위하여 설명되는 것일 뿐, 본 발명의 범위가 첨부된 도면의 범위로 한정되는 것이 아님은 이 기술분야의 통상의 지식을 가진 자라면 용이하게 알 수 있을 것이다.
[메인 메모리 시스템]
1. 구성
도 1 내지 도 3은 실시예에 따른 메인 메모리 시스템의 구성을 나타낸 도면이다.
도 1 내지 도 3을 참조하면, 실시예에 따른 메인 메모리 시스템은, 하나 이상의 휘발성 메모리(110), 비휘발성 메모리 어레이(120), 및 메인 메모리 컨트롤러(130)를 포함한다.
비휘발성 메모리 어레이(120)는 복수의 비휘발성 메모리(120a, 120b, 120c, 120d)를 포함한다.
복수의 비휘발성 메모리(120a, 120b, 120c, 120d)는, 하나로 묶여 병렬적으로 접근 가능하도록 구현되어, 비휘발성 메모리 어레이(120)를 하나의 논리적인 메모리로서 동작할 수 있다.
복수의 비휘발성 메모리(120a, 120b, 120c, 120d)는, 휘발성 메모리(110)에서 사용하는 메인 메모리 인터페이스(101)를 통하여, 워드 단위로 접근할 수 있다. 이에 따라, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d)는 컴퓨터 시스템의 메인 메모리로서도 독립적인 사용이 가능하다.
도 2 및 도 3을 참조하면, 메인 메모리 컨트롤러(130)는, 접근 성능 모니터(131), 접근 방식 변환기(133), 메모리 선택기(135), 및 마이그레이터(137)를 포함한다.
접근 성능 모니터(131)는, 비휘발성 메모리 어레이(120)의 메모리 접근 빈도수를 측정하고, 측정된 메모리 접근 빈도수 및 기 설정된 기준 접근 빈도수를 비교한다. 접근 성능 모니터(131)는, 비휘발성 메모리(120a, 120b, 120c, 120d)의 주소당 접근 빈도수를 측정할 수 있다. 접근 방식 변환기(133)는, 측정된 메모리 접근 빈도수들이 기 설정된 기준 접근 빈도수보다 낮을 경우, 제1 접근 방식을 선택한다. 또한, 측정된 메모리 접근 빈도수가 기 설정된 기준 접근 빈도수보다 높을 경우, 제2 접근 방식을 선택하며, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d) 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산하고, 그 계산 결과를 마이그레이터(137)로 전송한다.
메모리 선택기(135)는, 접근 방식 변환기(133)가 제1 접근 방식을 선택할 경우, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d) 중 메모리 페이지가 존재하는 비휘발성 메모리(120b)를 선택하여 워드 단위로 접근하도록 한다. 이때, 메모리 선택기(135)는, 접근하고자 하는 주소의 데이터가 어느 메모리에 존재하는지를 찾아내어 선택하고, 선택된 비휘발성 메모리(120b)에 접근하여 필요한 데이터를 얻을 수 있도록 한다.
마이그레이터(137)는, 접근 방식 변환기(133)가 제2 접근 방식을 선택할 경우, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d)를 병렬적으로 동시에 접근하여, 계산된 블록의 주소 즉 접근 빈도수가 가장 높은 주소에 존재하는 데이터를 휘발성 메모리에 마이그레이션(migration)한다. 이때, 데이터의 마이그레이션은 블록 단위로 진행된다. 최종적으로, 접근 성능 모니터(131)를 통해 측정된 접근 빈도수 중 높은 접근 빈도수를 지니는 주소가 포함된 메모리 블록을 마이그레이션 하게 된다.
이에 따라, 메인 메모리 시스템은, 휘발성 메모리(110)로부터 원하는 주소의 데이터를 가져와서, 블록 내에 필요한 데이터를 워드 단위로 접근할 수 있도록 한다.
2. 동작
실시예에 따른 메인 메모리 시스템은, 현재 CPU가 접근하고자 하는 주소의 메모리 페이지가 휘발성 메모리(110)에 존재하는 경우, 휘발성 메모리(110)를 워드 단위로 직접 접근하여 데이터를 얻어오도록 할 수 있다.
그러나, CPU가 접근하고자 하는 주소의 메모리 페이지가 비휘발성 메모리 어레이(120)에 존재하는 경우, 메인 메모리 컨트롤러(130)는, 비휘발성 메모리 어레이(120)에 대한 접근 워크로드(access work load)에 따라, 단일 비휘발성 메모리에 대한 1)워드 단위 접근 방식, 및 비휘발성 메모리 어레이(120)에 대한 2)블록 단위 병렬 접근 방식 중 하나의 접근 방식을 선택하여 메모리 접근을 수행한다.
이하, 실시예에 따른 메인 메모리 시스템의 동작에 대하여 보다 상세히 설명한다.
1) 워드 단위 접근
도 2는 실시예에 따른 메인 메모리 시스템을 이용한 비휘발성 메모리 어레이의 워드 단위 접근 방식을 설명하기 위해 나타낸 도면이다.
우선, 메인 메모리 컨트롤러(130)는, 접근 성능 모니터(131)를 통하여, 비휘발성 메모리 어레이(120)에 대한 메모리 접근 빈도수를 측정한다.
다음, 측정된 메모리 접근 빈도수가 기 설정된 기준 접근 빈도수보다 낮을 경우, 접근 방식 변환기(133)를 통하여, 워드 단위 접근 방식으로 데이터 접근을 수행할 것을 판명한다.
다음, 메모리 선택기(135)를 통하여, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d) 중 메모리 페이지가 존재하는 하나의 비휘발성 메모리(120b)를 선택하고, 선택된 비휘발성 메모리(120b)를 워드 단위로 직접 접근한다. 이때, 메모리 선택기(135)를 통하여 접근하고자 하는 주소의 데이터가 어느 메모리에 있는지 찾아내어 선택하고, 선택된 비휘발성 메모리(120b)로부터 데이터를 얻어 낼 수 있다.
2) 블록 단위 병렬 접근
도 3은 실시예에 따른 메인 메모리 시스템을 이용한 비휘발성 메모리 어레이의 블록 단위 접근 방식을 설명하기 위해 나타낸 도면이다.
우선, 접근 성능 모니터(131)를 통해 측정된 메모리 접근 빈도수가 기 설정된 기준 접근 빈도수보다 높을 경우, 접근 방식 변환기(133)를 통하여 블록 단위 접근 방식으로 데이터 접근을 수행할 것을 판명하고, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d) 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산한 후, 그 블록 주소 값을 마이그레이터(137)로 전송한다.
다음, 마이그레이터(137)는 복수의 비휘발성 메모리(120a, 120b, 120c, 120d)를 병렬적으로 동시에 접근하여, 전송된 주소에 해당하는 블록을 찾는다. 여기서, 실시예에 따른 메인 메모리 시스템은 휘발성 메모리(110)와 비휘발성 메모리(120a, 120b, 120c, 120d) 사이의 data path(ex. 버스 구조)가 parallel한 접근이 가능하도록 구성될 수 있다.
다음, 마이그레이터(137)는 해당 블록 주소의 데이터를 휘발성 메모리(110)로 마이그레이션한다. 이때, 데이터의 마이그레이션은 블록 단위로 진행될 수 있으며, 블록에 존재하는 데이터가 휘발성 메모리(110)로 옮겨지게 된다.
이에 따라, 휘발성 메모리(110)에 접근할 수 있게 된다. 이때, 휘발성 메모리(110)로의 접근은 워드 단위로 진행될 수 있다.
도 4는 실시예에 따른 메인 메모리 시스템에서 사용자 요청을 통한 마이그레이션 블록 크기 설정 및 휘발성 메모리의 데이터 일시 교체 동작을 설명하기 위해 나타낸 도면이다.
메모리 데이터는 지역성이라는 특성이 있다. 이러한 특성을 이용하여, 메인 메모리 시스템은, 블록 마이그레이션 시 사용자가 원하는 주소에 저장된 데이터(121)뿐만 아니라, 그 주소 주변의 미리 정해진 범위 내의 데이터(123)를 마이그레이션함으로써 메모리 접근 성능을 높일 수 있다.
또한, 접근 성능 모니터(131)은, 사용자로부터 마이그레이션 단위 블록 크기 설정을 요청 받게 되면, 마이그레이터(137)로 마이그레이션 단위 블록 크기 설정 요청 신호를 전송한다. 이에, 마이그레이터(137)는 비휘발성 메모리 어레이(120)에 대한 마이그레이션 단위 블록 크기를 설정한다.
또한, 사용자는, 도 3을 통해 설명한 마이그레이션 방식과 유사하게 비휘발성 메모리 어레이(120)로부터 휘발성 메모리(110)에 데이터를 보내되, 휘발성 메모리(110) 내에 존재하는 모든 데이터를, 비휘발성 메모리 어레이(120)로부터 보내진 블록으로 일시에 바꾸는 일시 교체 동작을 수행할 수도 있다. 이러한 휘발성 메모리 데이터 일시 교체 동작을 통하여, 임의의 시간에 비휘발성 메모리 내의 불필요한 데이터를 빠르게 교체할 수 있다.
도 5는 실시예에 따른 메인 메모리 시스템 상에서 휘발성 메모리의 데이터를 비휘발성 메모리 어레이에 기록하는 방법을 설명하기 위해 나타낸 도면이다.
접근 성능 모니터(131)는, 비휘발성 메모리 어레이(120)에 대한 메모리 접근 빈도수와 타이머 등을 이용하여, 메인 메모리 컨트롤러(130)가 컴퓨터 등의 다른 부분과 데이터 교환과정을 수행하지 않은 유휴기간에 진입하였는지를 판별할 수 있다.
또한, 접근 성능 모니터(131)는, 메인 메모리 컨트롤러(130)가 유휴기간에 진입한 경우, 라이트-백(write-back)을 알리는 신호를 마이그레이터(135)로 전송한다.
이러한 경우, 마이그레이터(135)는, 휘발성 메모리(110)에 기록된 모든 데이터(111)를, 비교적 큰 영역을 갖는 비휘발성 메모리 어레이(120)에 일괄적으로 기록하는 라이트-백 과정을 수행할 수 있다. 여기서, 라이트-백 과정은, 비휘발성 메모리 어레이(120)에서 휘발성 메모리(110)로 데이터를 전송하는 마이그레이션과 같은 데이터 전송 경로를 사용하지만, 데이터 전송 방향이 반대인 동작을 하며, 마이그레이션 과정과 같이 블록 단위로 전송하는 것이 아니라, 휘발성 메모리(110)에 존재하는 모든 데이터를 비휘발성 메모리 어레이(120)로 전송하는 과정을 의미한다.
차후, 마이그레이션 및 기타 동작들에 의해서 휘발성 메모리(110)에 데이터를 기록하고자 할 때, 휘발성 메모리(110)에서 제거될 데이터들에 대한 라이트-백 과정 없이 데이터 기록이 가능하므로, 별도의 시간 소모 없이 휘발성 메모리(110)의 사용이 가능하다.
실시예에 따른 메인 메모리 시스템을 컴퓨터 시스템에 적용할 경우, 휘발성 메모리(110)의 빠른 접근 속도와 비휘발성 메모리 어레이(120)의 큰 용량 특성을 모두 얻을 수 있으므로, 결과적으로, 메인 메모리 시스템은 하나의 큰 휘발성 메모리로서 동작할 수 있게 된다.
실시예에 따른 메인 메모리 시스템은, 비휘발성 메모리의 비휘발성과 저전력 장점을 가지면서, 비휘발성 메모리의 단점인 데이터 접근 속도를 병렬 접근 구성과 휘발성 메모리와의 마이그레이션을 통해 극복함으로써, 효과적인 컴퓨터 시스템 운영을 가능하게 한다.
또한, 접근 워크로드에 따른 적응적인 접근 방식을 통하여 컴퓨터 시스템의 메모리 접근 성능을 최적화시킬 수 있다.
또한, 휘발성 메모리의 전원공급 차단으로부터 발생할 수 있는 시스템 불안정화 현상들을 줄일 수 있다.
또한, 비휘발성 메모리가 휘발성 메모리에 비해, 같은 가격에 더 큰 용량을 가진다는 특성을 이용하여, 비휘발성 메모리의 유휴기간에 휘발성 메모리의 데이터를 비휘발성 메모리로 라이트-백함으로써, 컴퓨터 시스템이, 가상적으로 큰 용량과 휘발성 메모리의 빠른 접근 속도를 모두 지닌 메인 메모리 시스템을 가진 것으로 인식하게 만든다.
실시예에 따른 메인 메모리를 관리를 위한 시스템은 상술한 바와 같이, 별개의 프로세서를 가지는 하드웨어로 구현될 수도 있으나, 반드시 하드웨어적으로 구현되는 것은 아니며, 각각은 소프트웨어 모듈로 구현될 수 있다. 이러한 소프트웨어 모듈은 하나의 프로그램으로서 실시예에 따른 메인 메모리를 관리할 수 있다.
[메인 메모리 관리방법]
도 6은 실시예에 따른 메인 메모리 시스템의 관리방법을 설명하기 위해 나타낸 흐름도이다.
도 6을 참조하면, 실시예에 따른 관리방법은 제1 내지 제7 단계(S610, S620, S630, S640, S650, S660, S670)를 포함한다.
실시예에 따른 관리방법은, 상술한 메인 메모리를 관리하는 방법으로서, 관리방법에 대한 상세한 설명은, 도 1 내지 도 5를 결부하여 설명하도록 한다.
제1 단계( S610 )
제1 단계(S610)에서는, 현재 CPU가 접근하고자 하는 주소의 메모리 페이지가 휘발성 메모리(110)에 존재하는 경우, 휘발성 메모리(110)를 워드 단위로 직접 접근하여 데이터를 얻어오도록 할 수 있다.
제2 단계( S620 )
제2 단계(S620)에서는, CPU가 접근하고자 하는 주소의 메모리 페이지가 비휘발성 메모리 어레이(120)에 존재하는 경우, 비휘발성 메모리 어레이(120)에 대한 메모리 접근 빈도수를 측정한다.
제3 단계( S630 )
제3 단계(S630)에서는, 제2 단계(S620)를 통해 측정된 메모리 접근 빈도수와 기 설정된 기준 접근 빈도수를 비교한다.
제4단계( S640 )
제4단계(S640)에서는, 제3 단계(S630)를 통한 접근 빈도수 비교결과, 측정된 메모리 접근 빈도수가 기 설정된 기준 접근 빈도수보다 낮을 경우, 워드 단위 접근 방식으로 데이터 접근을 수행할 것을 판명한다.
다음, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d) 중 메모리 페이지가 존재하는 하나의 비휘발성 메모리(120b)를 선택하고, 선택된 비휘발성 메모리(120b)를 워드 단위로 직접 접근한다. 이때, 접근하고자 하는 주소의 데이터가 어느 메모리에 있는지 찾아내어, 선택된 비휘발성 메모리(120b)로부터 데이터를 얻어 낼 수 있다.
제5 단계( S650 )
제5 단계(S650)는, 제3 단계(S630)를 통한 접근 빈도수 비교결과, 측정된 메모리 접근 빈도수가 기 설정된 기준 접근 빈도수보다 높을 경우, 블록 단위 접근 방식으로 데이터 접근을 수행할 것을 판명한다.
다음, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d) 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산한다.
다음, 복수의 비휘발성 메모리(120a, 120b, 120c, 120d)를 병렬적으로 동시에 접근하여, 전송된 블록 주소를 찾는다.
다음, 해당 블록 주소의 데이터를 휘발성 메모리(110)에 블록 단위로 마이그레이션한다.
한편, 제5 단계(S650)에서는, 마이그레이션 블록 크기 설정을 위한 요청신호가 있을 경우, 마이그레이션할 블록의 크기를 설정할 수 있다.
제6 단계( S660 )
제6 단계(S660)에서는 휘발성 메모리(110)를 워드 단위로 접근한다.
제7단계( S670 )
제7 단계(S670)에서는, 비휘발성 메모리 어레이(120)에 대한 메모리 접근 빈도수와 타이머 등을 이용하여, 비휘발성 메모리 어레이(120)가 컴퓨터 등의 다른 부분과 데이터 교환을 하지 않은 유휴기간에 진입하였는지를 판별한다.
판별결과, 접근 성능 모니터(131)는, 메인 메모리 컨트롤러(130)가 유휴기간에 진입한 경우, 휘발성 메모리(110)에 기록된 모든 데이터(111)를, 비교적 큰 영역을 갖는 비휘발성 메모리 어레이(120)에 일괄적으로 기록하는 라이트-백 과정을 수행한다.
차후, 마이그레이션 및 기타 동작들에 의해서 휘발성 메모리(110)에 데이터를 기록하고자 할 때, 휘발성 메모리(110)에서 제거될 데이터들에 대한 라이트-백 과정 없이 데이터 기록이 가능하므로, 별도의 시간 소모 없이 휘발성 메모리(110)의 사용이 가능하다.
실시예에 따른 메인 메모리 관리방법은, 상술한 메인 메모리 시스템과 같이, 별개의 프로세서를 가지는 하드웨어를 이용하여 실행할 수도 있으나, 반드시 하드웨어적 구성을 이용하여 실행되는 것은 아니며, 각각은 소프트웨어 모듈을 통해 실행될 수 있다. 이러한 소프트웨어 모듈은 하나의 프로그램으로서 실시예에 따른 메인 메모리를 관리할 수 있다.
메인 메모리의 관리방법에 대한 보다 상세한 설명은 상술한 메인 메모리 시스템에 대한 상세한 설명으로 대체한다.
이상에서 보는 바와 같이, 본 발명이 속하는 기술 분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시 될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시 예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 휘발성 메모리
120: 비휘발성 메모리 어레이
120a, 120b, 120c, 120d: 비휘발성 메모리
130: 메인 메모리 컨트롤러
131: 접근 성능 모니터
133: 접근 방식 변환기
135: 메모리 선택기
137: 마이그레이터

Claims (10)

  1. 하나 이상의 휘발성 메모리;
    복수의 비휘발성 메모리를 포함하는 비휘발성 메모리 어레이; 및
    현재 접근하고자 하는 주소의 메모리 페이지가 상기 비휘발성 메모리 어레이에 존재하는 경우, 상기 비휘발성 메모리 어레이의 접근 빈도수에 따라, 상기 복수의 비휘발성 메모리 중 상기 메모리 페이지가 존재하는 비휘발성 메모리에 워드 단위로 접근하도록 하거나, 상기 복수의 비휘발성 메모리를 병렬적으로 접근하여 상기 메모리 페이지에 존재하는 데이터를 상기 휘발성 메모리에 블록 단위로 마이그레이션(migration)한 후, 상기 마이그레이션된 휘발성 메모리를 워드 단위로 접근하도록 하는 메인 메모리 컨트롤러
    를 포함하는 메인 메모리 시스템.
  2. 제1항에 있어서,
    상기 메인 메모리 컨트롤러는,
    상기 비휘발성 메모리 어레이의 접근 빈도수를 측정하고, 상기 측정된 접근 빈도수 및 기 설정된 기준 접근 빈도수를 비교하는 접근 성능 모니터;
    상기 측정된 접근 빈도수가 상기 기 설정된 기준 접근 빈도수보다 낮을 경우, 제1 접근 방식을 선택하고, 상기 측정된 접근 빈도수가 상기 기 설정된 기준 접근 빈도수보다 높을 경우, 제2 접근 방식을 선택하며, 상기 복수의 비휘발성 메모리 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산하는 접근 방식 변환기;
    상기 접근 방식 변환기가 상기 제1 접근 방식을 선택할 경우, 상기 복수의 비휘발성 메모리 중 상기 메모리 페이지가 존재하는 비휘발성 메모리를 선택하여 워드 단위로 접근하도록 하는 메모리 선택기; 및
    상기 접근 방식 변환기가 상기 제2 접근 방식을 선택할 경우, 상기 복수의 비휘발성 메모리를 병렬적으로 접근하여, 상기 계산된 블록의 주소에 존재하는 데이터를, 상기 휘발성 메모리에 블록 단위로 마이그레이션(migration)하는 마이그레이터(migrator)를 포함하는, 메인 메모리 시스템.
  3. 제2항에 있어서,
    상기 마이그레이터는,
    마이그레이션 블록 크기 설정을 위한 요청신호에 따라, 마이그레이션할 블록의 크기를 설정하는, 메인 메모리 시스템.
  4. 제2항에 있어서,
    상기 접근 성능 모니터는,
    상기 측정된 접근 빈도수와 타이머를 이용하여, 상기 메인 메모리 컨트롤러가 유휴기간에 진입했는지를 판별하고, 상기 메인 메모리 컨트롤러가 유휴기간에 진입한 경우, 라이트-백(write back) 신호를 상기 마이그레이터로 전송하며,
    상기 마이그레이터는,
    상기 라이트-백(write back) 신호에 따라, 상기 휘발성 메모리에 저장된 데이터를 상기 비휘발성 메모리 어레이에 기록하는, 메인 메모리 시스템.
  5. 휘발성 메모리와, 복수의 비휘발성 메모리를 포함하는 비휘발성 메모리 어레이로 구성된 메인 메모리를 관리하는 방법으로서,
    현재 접근하고자 하는 주소의 메모리 페이지가 상기 휘발성 메모리에 존재하는 경우, 상기 휘발성 메모리를 워드 단위로 접근하는 제1 단계;
    현재 접근하고자 하는 주소의 메모리 페이지가 상기 비휘발성 메모리 어레이에 존재하는 경우, 상기 비휘발성 메모리 어레이의 접근 빈도수를 측정하는 제2 단계;
    상기 측정된 접근 빈도수 및 기 설정된 기준 접근 빈도수를 비교하는 제3 단계;
    상기 측정된 접근 빈도수가 상기 기 설정된 기준 접근 빈도수보다 낮을 경우, 상기 복수의 비휘발성 메모리 중 상기 메모리 페이지가 존재하는 비휘발성 메모리를 선택하여 워드 단위로 접근하는 제4 단계;
    상기 측정된 접근 빈도수가 상기 기 설정된 기준 접근 빈도수보다 높을 경우, 상기 복수의 비휘발성 메모리 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산하고, 상기 복수의 비휘발성 메모리를 병렬적으로 접근하여, 상기 계산된 블록의 주소에 존재하는 데이터를, 상기 휘발성 메모리에 블록 단위로 마이그레이션(migration)하는 제5 단계; 및
    상기 마이그레이션된 휘발성 메모리를 워드 단위로 접근하는 제6 단계
    를 포함하는 메인 메모리 관리방법.
  6. 제5항에 있어서,
    상기 제5 단계는,
    마이그레이션 블록 크기 설정을 위한 요청신호가 있을 경우, 마이그레이션할 블록의 크기를 설정하는 단계를 더 포함하는, 메인 메모리 관리방법.
  7. 제5항에 있어서,
    상기 측정된 접근 빈도수와 타이머를 이용하여, 상기 비휘발성 메모리 어레이가 유휴기간에 진입했는지를 판별하는 단계; 및
    상기 비휘발성 메모리 어레이가 유휴기간에 진입한 경우, 상기 휘발성 메모리에 저장된 데이터를 상기 비휘발성 메모리 어레이에 기록하는 단계를 더 포함하는, 메인 메모리 관리방법.
  8. 휘발성 메모리와, 복수의 비휘발성 메모리를 포함하는 비휘발성 메모리 어레이로 구성된 메인 메모리를 관리하기 위한 프로그램을 포함하는 컴퓨터 판독가능매체로서,
    상기 프로그램은,
    현재 접근하고자 하는 주소의 메모리 페이지가 상기 휘발성 메모리에 존재하는 경우, 상기 휘발성 메모리를 워드 단위로 접근하는 제1 단계;
    현재 접근하고자 하는 주소의 메모리 페이지가 상기 비휘발성 메모리 어레이에 존재하는 경우, 상기 비휘발성 메모리 어레이의 접근 빈도수를 측정하는 제2 단계;
    상기 측정된 접근 빈도수 및 기 설정된 기준 접근 빈도수를 비교하는 제3 단계;
    상기 측정된 접근 빈도수가 상기 기 설정된 기준 접근 빈도수보다 낮을 경우, 상기 복수의 비휘발성 메모리 중 상기 메모리 페이지가 존재하는 비휘발성 메모리를 선택하여 워드 단위로 접근하는 제4 단계;
    상기 측정된 접근 빈도수가 상기 기 설정된 기준 접근 빈도수보다 높을 경우, 상기 복수의 비휘발성 메모리 중에서 현재 접근하고자 하는 데이터가 존재하는 블록의 주소를 계산하고, 상기 복수의 비휘발성 메모리를 병렬적으로 접근하여, 상기 계산된 블록의 주소에 존재하는 데이터를, 상기 휘발성 메모리에 블록 단위로 마이그레이션(migration)하는 제5 단계; 및
    상기 마이그레이션된 휘발성 메모리를 워드 단위로 접근하는 제6 단계
    를 수행하는 컴퓨터 판독가능매체.
  9. 제8항에 있어서,
    상기 프로그램은,
    마이그레이션 블록 크기 설정을 위한 요청신호가 있을 경우, 마이그레이션할 블록의 크기를 설정하는 단계를 더 수행하는, 컴퓨터 판독가능매체.
  10. 제8항에 있어서,
    상기 프로그램은,
    상기 측정된 접근 빈도수와 타이머를 이용하여, 상기 비휘발성 메모리 어레이가 유휴기간에 진입했는지를 판별하는 단계; 및
    상기 비휘발성 메모리 어레이가 유휴기간에 진입한 경우, 상기 휘발성 메모리에 저장된 데이터를 상기 비휘발성 메모리 어레이에 기록하는 단계를 더 수행하는, 컴퓨터 판독가능매체.
KR1020100025272A 2010-03-22 2010-03-22 메인 메모리 시스템, 관리방법, 컴퓨터 판독가능매체 KR101130051B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100025272A KR101130051B1 (ko) 2010-03-22 2010-03-22 메인 메모리 시스템, 관리방법, 컴퓨터 판독가능매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100025272A KR101130051B1 (ko) 2010-03-22 2010-03-22 메인 메모리 시스템, 관리방법, 컴퓨터 판독가능매체

Publications (2)

Publication Number Publication Date
KR20110106058A true KR20110106058A (ko) 2011-09-28
KR101130051B1 KR101130051B1 (ko) 2012-03-28

Family

ID=44956142

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100025272A KR101130051B1 (ko) 2010-03-22 2010-03-22 메인 메모리 시스템, 관리방법, 컴퓨터 판독가능매체

Country Status (1)

Country Link
KR (1) KR101130051B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220091023A (ko) * 2020-12-23 2022-06-30 연세대학교 산학협력단 하이브리드 메모리 장치 및 이의 관리 방법
KR20230011787A (ko) * 2021-07-14 2023-01-25 연세대학교 산학협력단 마이그레이션 정책 스위칭 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060095133A (ko) * 2005-02-28 2006-08-31 (주)엠씨에스로직 비휘발성 메모리에 저장된 시스템 프로그램을 구동시키는방법
KR100909902B1 (ko) * 2007-04-27 2009-07-30 삼성전자주식회사 플래쉬 메모리 장치 및 플래쉬 메모리 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220091023A (ko) * 2020-12-23 2022-06-30 연세대학교 산학협력단 하이브리드 메모리 장치 및 이의 관리 방법
KR20230011787A (ko) * 2021-07-14 2023-01-25 연세대학교 산학협력단 마이그레이션 정책 스위칭 방법 및 장치

Also Published As

Publication number Publication date
KR101130051B1 (ko) 2012-03-28

Similar Documents

Publication Publication Date Title
TWI594183B (zh) 基於記憶體系統熱資訊之記憶體系統管理之系統及方法
US9959068B2 (en) Intelligent wide port phy usage
US11960749B2 (en) Data migration method, host, and solid state disk
JP5624583B2 (ja) プログラム、計算処理装置、メモリ管理方法および計算機
EP3663928B1 (en) Data migration method and system and intelligent network card
EP2557494B1 (en) Storage apparatus and data copy method between thin-provisioning virtual volumes
WO2010103569A1 (en) Storage system and control method for the same, and program
US20100312955A1 (en) Memory system and method of managing the same
TW201142591A (en) Semiconductor memory device
JP2019079113A (ja) ストレージ装置、データ管理方法、及びデータ管理プログラム
CN112632069B (zh) 哈希表数据存储管理方法、装置、介质和电子设备
CN104583930A (zh) 数据迁移的方法、控制器和数据迁移装置
US20180285012A1 (en) Apparatus and method for accessing storage system that includes a plurality of storage devices with different access speeds
KR20200110547A (ko) 스토리지 장치 및 스토리지 장치를 포함하는 컴퓨팅 장치
JP2008146141A (ja) ストレージシステムと記憶領域の選択方法並びにプログラム
CN112506438A (zh) 一种映射表管理方法及固态硬盘
US9075606B2 (en) Storage apparatus and method of determining device to be activated
US10872015B2 (en) Data storage system with strategic contention avoidance
KR101130051B1 (ko) 메인 메모리 시스템, 관리방법, 컴퓨터 판독가능매체
JP2015088071A (ja) 情報処理装置、記憶装置制御回路及び記憶装置の制御方法
CN116401043A (zh) 一种计算任务的执行方法和相关设备
US20220300185A1 (en) Storage device, storage system, and control method
JP2020046752A (ja) 記憶装置及び情報処理システム
CN115981559A (zh) 分布式数据存储方法、装置、电子设备和可读介质
JP2002157091A (ja) ストレージサブシステム及びそのシステムに使用する記憶装置

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: 20150226

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee