KR20140065196A - 메모리 시스템 및 그 구동 방법 - Google Patents

메모리 시스템 및 그 구동 방법 Download PDF

Info

Publication number
KR20140065196A
KR20140065196A KR1020120132444A KR20120132444A KR20140065196A KR 20140065196 A KR20140065196 A KR 20140065196A KR 1020120132444 A KR1020120132444 A KR 1020120132444A KR 20120132444 A KR20120132444 A KR 20120132444A KR 20140065196 A KR20140065196 A KR 20140065196A
Authority
KR
South Korea
Prior art keywords
data
area
memory
loaded
main memory
Prior art date
Application number
KR1020120132444A
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 삼성전자주식회사
Priority to KR1020120132444A priority Critical patent/KR20140065196A/ko
Priority to US14/082,938 priority patent/US20140143518A1/en
Publication of KR20140065196A publication Critical patent/KR20140065196A/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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/205Hybrid memory, e.g. using both volatile and non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

메모리 시스템 및 그 구동 방법이 제공된다. 메모리 시스템은, 중앙처리장치, 중앙처리장치로부터 가상 주소를 제공받고, 이를 물리 주소로 변환하는 메모리 관리 유닛, 메모리 관리 유닛에 의해 변환된 물리 주소로 억세스되고 중앙처리장치의 연산에 이용되는 데이터를 저장하는 메인 메모리로서, 파일 데이터 중에서 제1 특성을 갖는 제1 데이터가 로딩되며 비휘발성 메모리로 구현된 제1 영역과, 파일 데이터 중에서 제1 특성과 다른 제2 특성을 갖는 제2 데이터가 로딩되며 휘발성 메모리로 구현된 제2 영역을 포함하는 메인 메모리, 및 메인 메모리의 제1 및 제2 영역 중에서 제1 영역 만을 별도로 관리하는 관리 테이블을 포한한다.

Description

메모리 시스템 및 그 구동 방법{Memory system and method for operating the same}
본 발명은 메모리 시스템 및 그 구동 방법에 관한 것이다.
컴퓨터 핵심 구성 요소 중의 하나인 메인 메모리로 사용되고 있는 디램(DRAM)과 관련하여, 용량의 지속적인 증가에 따른 전력 소모(특별히 대기 전력) 증가, 휘발성인 DRAM에 저장된 정보의 손실을 방지하기 위한 스토리지로의 백업의 중요성 증가, 장기적으로 DRAM의 비트 성장 지속 가능성에 대한 의문 등 메모리 및 메모리 시스템 관련 다양한 논의가 진행되고 있다.
본 발명이 해결하고자 하는 기술적 과제는 페이지 스왑 시간이 최소화되어 고속 동작이 가능한 메모리 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 페이지 스왑 시간이 최소화되어 고속 동작이 가능한 메모리 시스템의 구동 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 메모리 시스템은, 중앙처리장치, 중앙처리장치로부터 가상 주소를 제공받고, 이를 물리 주소로 변환하는 메모리 관리 유닛, 메모리 관리 유닛에 의해 변환된 물리 주소로 억세스되고 중앙처리장치의 연산에 이용되는 데이터를 저장하는 메인 메모리로서, 파일 데이터 중에서 제1 특성을 갖는 제1 데이터가 로딩되며 비휘발성 메모리로 구현된 제1 영역과, 파일 데이터 중에서 제1 특성과 다른 제2 특성을 갖는 제2 데이터가 로딩되며 휘발성 메모리로 구현된 제2 영역을 포함하는 메인 메모리, 및 메인 메모리의 제1 및 제2 영역 중에서 제1 영역 만을 별도로 관리하는 관리 테이블을 포한한다.
본 발명의 몇몇 실시예에서, 상기 제1 특성은 리드-온리(read-only) 특성을 포함하고, 상기 제2 특성은 리드-라이트(read-write) 특성을 포함할 수 있다. 이 때, 상기 제1 데이터는 상기 파일 데이터의 코드 영역을 포함하고, 상기 제2 데이터는 상기 파일 데이터의 데이터 영역 및 BSS 영역을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 관리 테이블은 상기 제1 영역에 로딩된 제1 데이터가 유효 데이터인지 여부를 구분할 수 있는 플래그와, 상기 제1 영역에 로딩된 제1 데이터가 스토리지에 저장된 데이터와 동일한 데이터인지 여부를 구분할 수 있는 부가 정보를 포함할 수 있다. 이 때, 상기 부가 정보는, 파일 저장 시간 및 파일 크기를 포함하는 파일 정보와, 상기 제1 데이터로부터 연산한 미리 정한 연산값을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 관리 테이블은 TLB(Transition Lookaside Buffer) 내에 구비되거나, 상기 메모리 시스템의 동작을 제어하는 운영 체제(Operating System)에 의해 관리될 수 있다.
본 발명의 몇몇 실시예에서, 상기 비휘발성 메모리는 MRAM(Magnetic Random Access Memory)를 포함하고, 상기 휘발성 메모리는 DRAM(Dynamic Random Access Memory)를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 메모리 시스템의 초기 구동 시, 상기 메인 메모리의 상기 제1 영역에는 스토리지에 저장된 n(n은 자연수)개의 상기 제1 데이터 중, 미리 정한 m(m은 자연수) 개의 상기 제1 데이터가 로딩될 수 있다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 메모리 시스템의 구동 방법은, 파일 데이터 중에서 제1 특성을 갖는 제1 데이터가 로딩되며 비휘발성 메모리로 구현된 제1 영역과, 파일 데이터 중에서 제1 특성과 다른 제2 특성을 갖는 제2 데이터가 로딩되며 휘발성 메모리로 구현된 제2 영역을 포함하는 메인 메모리와, 메인 메모리의 제1 및 제2 영역 중에서 제1 영역 만을 별도로 관리하는 관리 테이블을 제공하고, 제1 및 제2 데이터에 대한 페이지 스왑 아웃 수행 시, 제1 데이터에 대해서는 제1 영역에 로딩된 제1 데이터를 삭제하지 않고 관리 테이블에 포함된 미리 정한 플래그를 변경함으로써 페이지 스왑 아웃을 수행하고, 제2 데이터에 대해서는 제2 영역에 로딩된 제2 데이터를 삭제함으로써 페이지 스왑 아웃을 수행하는 것을 포함한다.
본 발명의 몇몇 실시예에서, 상기 메모리 시스템의 구동 방법은, 상기 제1 및 제2 데이터에 대한 페이지 스왑 인 수행 시, 상기 제1 데이터에 대해서는 상기 관리 테이블에 포함된 정보를 고려하여 상기 제1 영역에 상기 제1 데이터를 로딩하지 않고 미리 정한 플래그를 변경함으로써 상기 페이지 스왑 인을 수행하고, 상기 제2 데이터에 대해서는 상기 제2 영역에 상기 제2 데이터를 로딩함으로써 상기 페이지 스왑 인을 수행하는 것을 더 포함할 수 있다. 이 때, 상기 관리 테이블에 포함된 정보를 고려하는 것은 상기 관리 테이블에 포함된 제1 데이터에 대한 파일 정보와 상기 스토리지에 저장된 제1 데이터에 대한 파일 정보를 비교하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 제1 특성은 리드-온리(read-only) 특성을 포함하고, 상기 제2 특성은 리드-라이트(read-write) 특성을 포함할 수 있다. 이 때, 상기 제1 데이터는 상기 파일 데이터의 코드 영역을 포함하고, 상기 제2 데이터는 상기 파일 데이터의 데이터 영역 및 BSS 영역을 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 비휘발성 메모리는 MRAM(Magnetic Random Access Memory)를 포함하고, 상기 휘발성 메모리는 DRAM(Dynamic Random Access Memory)를 포함할 수 있다.
본 발명의 몇몇 실시예에서, 상기 메모리 시스템의 구동 방법은, 상기 메모리 시스템의 초기 구동 시, 상기 메인 메모리의 상기 제1 영역에 스토리지에 저장된 n(n은 자연수)개의 상기 제1 데이터 중, 미리 정한 m(m은 자연수) 개의 상기 제1 데이터를 로딩시키는 것을 더 포함할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 구성을 도시한 블록도이다.
도 2는 도 1의 메인 메모리의 구성을 설명하기 위한 도면이다.
도 3은 도 1의 관리 테이블의 구성을 설명하기 위한 도면이다.
도 4 내지 도 6은 본 발명의 실시예들에 따른 메모리 시스템의 구동 방법을 설명하기 위한 도면들이다.
도 7은 본 발명의 다른 실시예에 따른 메모리 시스템의 구성을 도시한 블록도이다.
도 8은 본 발명의 실시예들에 따른 메모리 시스템이 채용될 수 있는 컴퓨팅 시스템의 구성을 도시한 블록도이다.
도 9는 본 발명의 실시예들에 따른 메모리 시스템이 채용될 수 있는 전자 시스템의 구성을 도시한 블록도이다.
도 10은 도 9의 전자 시스템이 스마트 폰에 적용되는 예를 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 표시된 구성요소의 크기 및 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭하며, "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
비록 제1, 제2 등이 다양한 소자나 구성요소들을 서술하기 위해서 사용되나, 이들 소자나 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자나 구성요소를 다른 소자나 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자나 구성요소는 본 발명의 기술적 사상 내에서 제2 소자나 구성요소 일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
이하, 도 1 내지 도 3을 참조하여, 본 발명의 일 실시예에 따른 메모리 시스템에 대해 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 구성을 도시한 블록도이다. 도 2는 도 1의 메인 메모리의 구성을 설명하기 위한 도면이다. 도 3은 도 1의 관리 테이블의 구성을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템은 메인 메모리(10), 관리 테이블(20), 메모리 관리 유닛(40, MMU; Memory Management Unit), 및 중앙처리장치(60, CPU: Central Processing Unit)를 포함한다.
메인 메모리(10)는 중앙처리장치(60)의 연산에 이용되는 데이터를 저장하는 역할을 하며, 파일 데이터 중에서 제1 특성을 갖는 제1 데이터가 로딩되며 비휘발성 메모리로 구현된 제1 영역(11)과, 파일 데이터 중에서 제1 특성과 다른 제2 특성을 갖는 제2 데이터가 로딩되며 휘발성 메모리로 구현된 제2 영역(12)을 포함할 수 있다.
구체적으로, 도 1 및 도 2를 참조하면, 프로세스(71)에 의해 중앙처리장치(60)가 동작 시, 메인 메모리(10)의 제1 영역(11)에는 파일 데이터(2) 중에서 프로세스(71) 동작에 필요한 리드-온리(read-only) 특성을 갖는 영역이 로딩되며, 메인 메모리(10)의 제2 영역(12)에는 파일 데이터(2) 중에서 리드-라이트(read-write) 특성을 갖는 영역이 로딩될 수 있다. 더욱 구체적으로, 프로세스(71)에 의해 중앙처리장치(60)가 동작 시, 메인 메모리(10)의 제1 영역(11)에는 파일 데이터(2) 중에서 리드-온리(read-only) 특성을 갖는 코드 영역이 제1 데이터로 로딩되며, 메인 메모리(10)의 제2 영역(12)에는 파일 데이터(2) 중에서 리드-라이트(read-write) 특성을 갖는 데이터, BSS 영역과 OS(70)가 할당하는 HEAP, STACK 영역 등이 제2 데이터로 로딩될 수 있다.
이렇게 비휘발성 메모리로 구현된 제1 영역(11)을 구현하는 비휘발성 메모리의 예시로는, MRAM(Magnetic Random Access Memory), PRAM(Phase-change random Access Memory), FRAM(Ferroelectric Random Access Memory) 등을 들 수 있으며, 휘발성 메모리로 구현된 제2 영역(12)을 구현하는 메모리의 예시로는, DRAM(Random Access Memory)을 들 수 있다. 특히, 본 실시예에서, 메인 메모리(10)의 제1 영역(11)은 MRAM(Magnetic Random Access Memory)으로 구현될 수 있으며, 메인 메모리(10)의 제2 영역(12)은 DRAM(Random Access Memory), SRAM(Static Random Access Memory), Embedded RAM으로 구현될 수 있다.
이처럼 메인 메모리(10)의 저장 공간을 비휘발성 메모리(예를 들어, MRAM)로 구현된 제1 영역(11)과, 휘발성 메모리(예를 들어, DRAM)로 구현된 제2 영역(12)으로 나누고, 각 영역(11, 12)에 서로 다른 특성을 갖는 데이터를 로딩하여 프로세스(71)가 수행되게 되면, 페이지 스왑 시간이 최소화되어 고속 동작이 가능할 수 있다. 이에 관한 보다 구체적인 설명은 후술하도록 한다.
관리 테이블(20)은 메인 메모리(10)의 제1 및 제2 영역(11, 12) 중에서 제1 영역(11) 만을 별도로 관리하는 역할을 할 수 있다. 구체적으로, 도 1 및 도 3을 참조하면, 관리 테이블(20)은, 각 페이지 별로 제공 받은 가상 주소(virtual address)와 메인 메모리(10) 상의 물리 주소(physical address)를 매칭시키기 위한 가상 주소(21) 및 물리 주소(22)와, 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터가 유효 데이터인지 여부를 구분할 수 있는 플래그(23)와, 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터가 스토리지(80)에 저장된 데이터와 동일한 데이터인지 여부를 구분할 수 있는 부가 정보(24, 25) 등을 포함할 수 있다.
후술하겠지만, 본 실시예에 따른 메모리 시스템에서는 페이지 스왑 아웃 시, 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터를 삭제하지 않고 관리 테이블(20)에 포함된 플래그(23)를 변경함으로써 페이지 스왑 아웃을 수행한다. 따라서, 관리 테이블(20)에 포함된 플래그(23)가 유효(V; Valid)일 경우, 이는 메인 메모리(10)의 제1 영역(11)에 해당 데이터가 로딩이 되어 있고 페이지 테이블(50) 등을 통해 메모리 관리 유닛(40)은 이를 참조할 수 있는 상태를 의미하며, 관리 테이블(20)에 포함된 플래그(23)가 무효(I; Invalid)일 경우, 이는 메인 메모리(10)의 제1 영역(11)에는 해당 데이터가 삭제되지 않고 남아 있으나, 메모리 관리 유닛(40)이 페이지 테이블(50) 등을 통해 이를 참조할 수 없는 상태를 의미한다.
한편, 부가 정보(24, 25)는 파일 정보(24)와 CRC 값(25)을 포함할 수 있다. 이러한 부가 정보(24, 25)는 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터가 스토리지(80)에 저장된 데이터와 동일한 데이터인지 여부를 구분할 수 있게 해주는 역할을 할 수 있다. 구체적으로, 파일 정보(24)는 파일 저장 시간 및 파일 크기 등을 포함할 수 있으며, CRC 값(25)은 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터의 CRC 값일 수 있다. 한편, 도 3에서는, 부가 정보(24, 25)의 한 예로, 파일 정보(24)와 CRC 값(25)만 도시하였으나, 본 발명이 이러한 예시에 제한되는 것은 아니다. 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터가 스토리지(80)에 저장된 데이터와 동일한 데이터인지 여부를 구분할 수 있는 역할만 할 수 있다면, 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터에 관한 기타 다른 정보와 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터로부터 연산한 미리 정한 기타 다른 연산값들은 모두 이러한 부가 정보(24, 25)가 될 수 있다. 이러한 부가 정보(24, 25)가 사용되는 예시에 관해서는 후술하도록 한다.
한편, 이러한 관리 테이블(20)은 필요에 따라 다양한 방법으로 구현될 수 있다. 일 예로, 관리 테이블(20)은 TLB(Transition Lookaside Buffer) 내에 구비될 수 있으며, 다른 예로, 관리 테이블(20)은 OS(70)가 직접 관리할 수도 있다. 즉, 본 실시예에 따른 메모리 시스템에서, 관리 테이블(20)이 구현되는 방법은 제한되지 않는다.
다시, 도 1을 참조하면, OS(70)는 스토리지(80)에 저장된 파일 데이터를 실행하기 위해 필요한 프로세스(71)를 생성할 수 있다. 이렇게 생성된 프로세스(71)는 중앙처리장치(CPU; Central Processing Unit)(60)에 가상 주소(VA; Virtual Address)로 어드레싱된 데이터를 연산 및 처리하도록 명령할 수 있으며, 이에 따라 중앙처리장치(60)는 연산 및 처리에 필요한 데이터의 가상 주소를 메모리 관리 유닛(40)에 제공할 수 있다.
이렇게 중앙처리장치(60)로부터 가상 주소를 제공받은 메모리 관리 유닛(MMU; Memory Management Unit)(40)은 중앙처리장치(60)로부터 제공 받은 가상 주소를 페이지 테이블(50) 등을 참조하여 메인 메모리(10) 상에서 직접 참조 할 수 있는 물리 주소(PA; Physical Address)로 변환하는 역할을 할 수 있다. 비록 도 1에서는, 페이지 테이블(50)이 메인 메모리(10)와 서로 분리되어 있는 것으로 도시되어 있으나, 이는 설명의 편의를 위하여 도시된 것에 불과하며, 본 발명의 몇몇 실시예에서, 페이지 테이블(50)은 메인 메모리(10) 내에 저장될 수 있다.
스토리지(80)는 메인 메모리(10)에 비해 대용량 저장 공간을 구비할 수 있다. 이러한 스토리지(80)는 예를 들어, 비휘발성 메모리(non-volatile memory), HDD(Hard Disk Drive), SSD(Solid State Driver) 등으로 이루어질 수 있으나, 본 발명이 이에 제한되는 것은 아니다.
본 실시예에서, 스토리지(80)의 저장 공간 중 일부 영역은 가상 메모리(virtual memory)(81)로 사용될 수 있다. 이러한 가상 메모리(81)는 스토리지(80)의 저장 공간 중 일부 영역을 마치 메인 메모리(10)와 같이 사용하는 영역으로써, 멀티 미디어 환경 등으로 메모리 시스템에서 처리해야하는 프로세스의 양이 많아지면서 메인 메모리(10) 내에 필요한 데이터를 모두 수용할 수 없게 되는 경우 이러한 가상 메모리(81)가 필요할 수 있다.
하지만, 이러한 가상 메모리(81)에 저장된 데이터로 중앙처리장치(60) 등이 연산을 수행하기 위해서는 연산 시 마다 스토리지(80)에 억세스 해야 하는데, 스토리지(80)의 억세스 속도는 일반적으로 메인 메모리(10)의 억세스 속도보다 늦기 때문에, 실제 중앙처리장치(60)가 연산을 원활하게 수행하기 위해서는 가상 메모리(81)에 저장된 데이터를 메인 메모리(10)에 로딩하는 과정이 필수적이다. 따라서 이 경우, 가상 메모리(81)와 메인 메모리(10)간 페이지 스와핑(page swapping)이 빈번하게 일어나게 되며, 이는 전체 시스템의 성능 저하로 이어질 수 있게 된다.
본 실시예에 따른 메모리 시스템은, 이러한 가상 메모리(81)와 메인 메모리(10)간 페이지 스와핑(page swapping)을 최소화하고, 페이지 스왑 시간 또한 최소화 시킴으로써, 시스템의 성능을 향상시킬 수 있다. 이하, 도 4 내지 도 6을 참조하여 이에 대해 보다 구체적으로 설명하도록 한다.
도 4 내지 도 6은 본 발명의 실시예들에 따른 메모리 시스템의 구동 방법을 설명하기 위한 도면들이다.
먼저, 도 4를 참조하여, 메인 메모리(10)로부터 스토리지(80, 예를 들어, 가상 메모리(81))에 페이지 스왑 아웃이 일어나는 동작에 대해 설명하도록 한다.
앞서, 설명한 것과 같이 본 명세서에서는, 메인 메모리(10) 상에 로딩된 복수의 페이지 중 적어도 하나의 페이지가 스토리지(80)로 이동될 경우, 이를 페이지 스왑 아웃(page swap out)이라고 정의하며, 반대로, 스토리지(80) 내에 저장된 복수의 페이지 중 적어도 하나의 페이지가 메인 메모리(10)로 이동될 경우 이를 페이지 스왑 인(page swap in)이라고 정의한다.
먼저, 메인 메모리(10)로부터 스토리지(80)로 페이지 스왑 아웃을 수행한다(S11).
이 때, 메인 메모리(10)의 제1 영역(11)에 저장된 제1 데이터에 대해서는 제1 영역(11)에 로딩된 제1 데이터(예를 들어, 코드 영역)를 삭제하지 않고 스토리지(80)에 제1 데이터를 저장하며, 제2 영역(12)에 로딩된 제2 데이터(예를 들어, 스택 영역 등)에 대해서는 제2 영역(12)에 로딩된 제2 데이터를 삭제(또는 제2 데이터를 삭제하지 않고 관리를 해제하거나 다른 필요한 제2 데이터를 오버 라이트)한 후 스토리지(80)에 제2 데이터를 저장한다. 즉, 본 실시예에서, 메인 메모리(10)의 제1 영역(11)에 로드된 제1 데이터는 페이지 스왑 아웃이 수행되더라도 메인 메모리(10)의 제1 영역(11)에서 삭제되지 않고 남아 있게 된다.
다음, 이러한 페이지 스왑 아웃에 따른 데이터 변경 사항을 바탕으로 페이지 테이블(50)을 업데이트 한다(S12).
이렇게 페이지 테이블(50)이 업데이트되게 되면, 메모리 관리 유닛(40)은 OS(70) 등에 의해 페이지 테이블(50)이 새로 갱신되지 않는 이상, 페이지 테이블(50)을 참조하여 스왑 아웃된 페이지들을 참조할 수 없게 된다.
다음, 메인 메모리(10)의 제1 영역(11)에 대한 페이지 스왑 아웃에 따른 데이터 변경 사항을 바탕으로 관리 테이블(20)을 업데이트 한다(S13).
구체적으로, 메인 메모리(10)의 제1 영역(11)에 로딩된 제1 데이터 중에서 페이지 스왑 아웃이 수행된 페이지들에 대한 플래그(도 3의 23)를 무효(I)로 변경한다.
즉, 정리하면, 본 실시예에 따른 메모리 시스템에서는, 메인 메모리(10)의 제1 및 제2 영역(11, 12)에 각각 로딩된 제1 및 제2 데이터에 대한 페이지 스왑 아웃 수행 시, 제1 데이터에 대해서는 제1 영역(11)에 로딩된 제1 데이터를 삭제하지 않고 관리 테이블(20)에 포함된 플래그(도 3의 23)를 변경함으로써 페이지 스왑 아웃을 수행하고, 제2 데이터에 대해서는 제2 영역(12)에 로딩된 제2 데이터를 삭제함으로써 페이지 스왑 아웃을 수행한다.
다음, 도 5 및 도 6을 참조하여, 프로세스(71)의 요청에 따라 중앙처리장치(60)가 연산을 수행하는 동작에 대해 설명하도록 한다. 이 때, 메인 메모리(10)에 중앙처리장치(60)가 요청하는 데이터가 로드되어 있는 경우에는 스토리지(80)로부터의 페이지 스왑 인이 수행될 필요가 없지만, 메인 메모리(10)에 중앙처리장치(60)가 요청하는 데이터가 로드되어 있지 않은 경우에는 스토리지(80)로부터의 페이지 스왑 인이 수행될 필요가 있다. 이하에서는, 먼저 도 5를 참조하여, 페이지 스왑 인이 수행될 필요가 없는 경우에 대해 설명하고, 이어서, 도 6을 참조하여, 페이지 스왑 인이 수행될 필요가 있는 경우에 대해 설명하도록 한다.
먼저, 도 5를 참조하면, OS(70)가 중앙처리장치(60)에 프로세스(71) 실행에 필요한 연산 수행을 요청한다(S21). 이어서, 중앙처리장치(60)는 연산에 필요한 데이터의 가상 주소(VA)를 메모리 관리 유닛(40)에 전송한다(S22).
중앙처리장치(60)로부터 가상 주소(VA)를 제공받은 메모리 관리 유닛(40)은 페이지 테이블(50)을 참조하여(S23), 가상 주소(VA)에 대응되는 물리 주소(PA)를 얻는다(S24). 그 후, 메모리 관리 유닛(S24)은 물리 주소(PA)로 메인 메모리(10)를 검색하고(S25), 물리 주소(PA)로 어드레싱되는 데이터를 중앙처리장치(60)에 제공한다(S26). 이에 따라 중앙처리장치(60)는 제공된 데이터로 프로세스(71) 실행에 필요한 연산을 수행한다.
다음, 도 6을 참조하면, OS(70)가 중앙처리장치(60)에 프로세스(71) 실행에 필요한 연산 수행을 요청한다(S31). 이어서, 중앙처리장치(60)는 연산에 필요한 데이터의 가상 주소(VA)를 메모리 관리 유닛(40)에 전송한다(S32).
중앙처리장치(60)로부터 가상 주소(VA)를 제공받은 메모리 관리 유닛(40)은 페이지 테이블(50)을 참조한다(S23). 그런데, 이 경우, 중앙처리장치(60)로부터 제공 받은 가상 주소(VA)에 대응하는 물리 주소(PA)가 페이지 테이블(50)에 존재하지 않으므로, 메모리 관리 유닛(40)은 중앙처리장치(60)로부터 제공 받은 가상 주소(VA)에 대응하는 물리 주소(PA)를 얻을 수 없게 된다(S34). 따라서, 메모리 관리 유닛(40)은 예를 들어, 인터럽트(interrupt)를 발생시키고, OS(70)에 이를 알린다(S35).
여기서, 메인 메모리(10)에 로딩되지 않은 데이터가 메인 메모리(10)의 제1 영역(11)에 로딩되어야할 제1 데이터라면, OS(70)는 관리 테이블(20)을 참조한다(S36).
참조 결과, 해당 페이지가 관리 테이블(20)에는 존재하나 그 플래그(도 3의 23)가 무효(I)로 설정되어 있다면, 해당 페이지의 부가 정보(24, 25)를 이용하여 스토리지(80)(예를 들어, 가상 메모리(81))에 저장된 데이터와 동일한 상태(예를 들어, 파일이 메인 메모리(10)에 로딩된 후, 추가적으로 변경되지 않았는지)인지 확인한다(S37). 확인 결과, 동일한 상태라면, 페이지 스왑 아웃 시, 메인 메모리(10)에서 삭제되지 않고 남아있는 페이지를 그대로 사용해도 되는 경우이므로, 스토리지(80)로부터 해당 페이지를 메인 메모리(10)에 로딩하지 않고, 페이지 테이블(50)과 관리 테이블(20)을 업데이트 한 후(S39, S40), 해당 페이지의 물리 주소(도 3의 22)를 리턴한다. 만약, 확인 결과, 동일한 상태가 아니라면, 페이지 스왑 아웃 시, 메인 메모리(10)에서 삭제되지 않고 남아있는 페이지는 그 내용이 변경되어 더 이상 사용하지 못하게 되었으므로, 스토리지(80)로부터 해당 페이지를 메인 메모리(10)에 로딩하고(S38), 페이지 테이블(50)과 관리 테이블(20)을 업데이트 한다(S39, S40).
한편 이와 다르게, 참조 결과, 해당 페이지가 관리 테이블(20)에 존재하지 않는다면, 이는 해당 페이지가 메인 메모리(10)의 제1 영역(11)에 아직 로딩되지 않는 페이지임을 의미하므로, 스토리지(80)로부터 해당 페이지를 메인 메모리(10)의 제1 영역(11)에 로딩한다(S37, S38). 그리고, 그에 따라 페이지 테이블(50)을 업데이트 하고(S39), 관리 테이블(20)을 업데이트 한다(S40).
한편, 본 실시예에 따른 메모리 시스템에서는 앞서 설명한 것과 같이, 페이지 스왑 아웃 시 제1 영역(11)에 로딩된 제1 데이터가 삭제되지 않기 때문에, 제1 영역(11)의 모든 저장 공간이 제1 데이터로 가득 찰 수 있다. 이렇게 될 경우, 스토리지(80)로부터 페이지 스왑 인을 수행하는데 문제가 발생될 수 있으므로, 본 실시예에서는 LRU(Least Recent Used) 방식에 따라 가장 오래 전에 참조된 제1 데이터를 삭제하여 빈 저장 공간을 확보하고, 페이지 스왑 인을 수행할 수 있다. 하지만, 이러한 방법은 하나의 예시에 불과할 뿐이며, 본 발명이 이러한 예시에만 제한되는 것은 아니다. 즉, 본 발명의 몇몇 실시예에서는 FIFO(First In First Out) 방식에 따라 가장 오래 전에 로딩된 제1 데이터를 삭제하여 빈 저장 공간을 확보하고, 페이지 스왑 인을 수행할 수도 있다.
다시 도 6을 참조하면, 메인 메모리(10)에 로딩되지 않은 데이터가 메인 메모리(10)의 제2 영역(12)에 로딩되어야할 제2 데이터라면, OS(70)는 관리 테이블(20)을 참조하는 단계(S36)를 생략하고, 스토리지(80)로부터 해당 페이지를 메인 메모리(10)의 제2 영역(12)에 로딩한다(S37, S38). 그리고, 그에 따라 페이지 테이블(50)을 업데이트 하고(S39), 관리 테이블(20)을 업데이트 한다(S40).
이제, 어떠한 경우이던 간에, 가상 주소(VA)로 어드레싱되는 페이지의 대응되는 물리 주소(PA)를 알 수 있게 되었으므로, 메인 메모리(10)에 로딩된 데이터는 중앙처리장치(60)에 제공될 수 있다(S41). 따라서, 중앙처리장치(60)는 제공된 데이터로 프로세스(71) 수행에 필요한 연산을 수행한다.
이처럼 본 실시예에 따른 메모리 시스템은, 메인 메모리(10)를 예를 들어, MRAM으로 구현된 제1 영역(11)과 예를 들어, DRAM으로 구현된 제2 영역(12)으로 구분하고, 제1 영역(11)에 로딩되는 페이지들의 스왑 동작을 최소화시킴으로써 MRAM의 단점인 라이트 동작을 최소화할 수 있어, 전체 시스템이 고속으로 동작할 수 있게 된다.
다음 도 7을 참조하여, 본 발명의 다른 실시예에 따른 메모리 시스템에 대해 설명하도록 한다.
도 7은 본 발명의 다른 실시예에 따른 메모리 시스템의 구성을 도시한 블록도이다. 이하에서는 앞서 설명한 실시예와 중복된 설명은 생략하도록 하고, 그 차이점을 위주로 설명하도록 한다.
도 7을 참조하면, 메모리 시스템은 메인 메모리(30), 관리 테이블(20), 메모리 관리 유닛(40), 및 중앙처리장치(60)를 포함한다.
메인 메모리(30)는 중앙처리장치(60)의 연산에 이용되는 데이터를 저장하는 역할을 하며, 파일 데이터 중에서 제1 특성을 갖는 제1 데이터가 로딩되며 비휘발성 메모리로 구현된 제1 영역(31)과, 파일 데이터 중에서 제1 특성과 다른 제2 특성을 갖는 제2 데이터가 로딩되며 휘발성 메모리로 구현된 제2 영역(32)을 포함할 수 있다.
특히, 본 실시예에서 메인 메모리(30)의 제1 영역(31)에는, 메모리 시스템의 초기 구동 시, 스토리지(80)에 저장된 n(n은 자연수)개의 제1 데이터 중, 미리 정한 m(m은 자연수) 개의 제1 데이터가 로딩될 수 있다. 즉, 메모리 시스템의 초기 구동 시, 본 실시예에서 메인 메모리(30)의 제1 영역(31)에는 그 실행을 위한 프로세스(71)가 생성되어 있는지와 무관하게, 미리 정한 m 개의 제1 데이터가 미리 로딩될 수 있다.
여기서, m 개의 제1 데이터는, 시스템의 초기 설정 등을 통해 사용자가 자주 사용하는 프로그램을 선택함으로써 이를 결정할 수도 있고, 시스템이 운용되는 상황을 반영하여 OS(70) 등이 이들을 결정할 수도 있다.
이처럼, 예를 들어, 자주 사용하는 프로그램과 관련된 미리 정한 m 개의 제1 데이터(예를 들어, 코드 영역)가 시스템 초기 구동 시에, 메인 메모리(30)의 제1 영역(31)에 미리 로드될 경우, 페이지 스왑 인 또는 스왑 아웃 횟수가 보다 감소할 수 있어, 시스템의 동작 성능이 보다 향상될 수 있다.
기타 다른 사항 들에 대해서는 앞서 충분히 설명한 바, 여기서는 중복된 설명은 생략하도록 한다.
다음, 도 8을 참조하여, 본 발명의 실시예들에 따른 메모리 시스템이 채용될 수 있는 컴퓨팅 시스템에 대해 설명하도록 한다.
도 8은 본 발명의 실시예들에 따른 메모리 시스템이 채용될 수 있는 컴퓨팅 시스템의 구성을 도시한 블록도이다.
도 8을 참조하면, 컴퓨팅 시스템(101)은 중앙처리장치(Central Processing Unit, 100), AGP 장치(Accelerated Graphics Port, 110), 메인 메모리(200), 스토리지(예컨대, SSD, HDD 등, 140), 노오스 브리지(120), 사우스 브리지(130), 키보드 컨트롤러(160), 및 프린터 컨트롤러(150) 등을 포함한다.
도 8에 도시된 컴퓨팅 시스템(101)은 개인용 컴퓨터 또는 노트북 컴퓨터의 블록도일 수 있다. 그러나 본 발명이 이에 제한되는 것은 아니며, 컴퓨팅 시스템(101)의 예시는 얼마든지 변형될 수 있다.
컴퓨팅 시스템(101)에서 중앙처리장치(100), AGP 장치(110), 및 메인 메모리(130) 등은 노오스 브리지(120)에 접속될 수 있다. 그러나, 본 발명이 이에 제한되는 것은 아니며, 노오스 브리지(120)는 중앙처리장치(100)에 포함된 형태로 변형될 수도 있다.
AGP(110)는 3차원 그래픽 표현을 빠르게 구현할 수 있게 해주는 버스 규격일 수 있으며, AGP 장치(110)에는 모니터 이미지를 재생하는 비디오 카드 등이 포함될 수 있다.
중앙처리장치(100))는 컴퓨팅 시스템(101)의 구동에 필요한 각종 연산을 수행하고, 또한 OS 및 응용 프로그램을 실행할 수 있다.
메인 메모리(200)는 스토리지(140)로부터 중앙처리장치(100)의 동작을 수행하는데 필요한 데이터를 로딩하여 저장할 수 있다. 본 실시예에 따른, 메인 메모리(200)는, 앞서 설명한 것과 같이, 중앙처리장치(100)의 연산에 이용되는 데이터를 저장하는 역할을 하며, 스토리지(140)에 저장된 파일 데이터 중에서 제1 특성을 갖는 제1 데이터(예를 들어, 코드 영역)가 로딩되며 비휘발성 메모리로 구현된 제1 영역(도 1의 11, 도 7의 31)과, 스토리지(140)에 저장된 파일 데이터 중에서 제1 특성과 다른 제2 특성을 갖는 제2 데이터(예를 들어, 데이터 영역 또는 BSS 영역)가 로딩되며 휘발성 메모리로 구현된 제2 영역(도 1의 12, 도 7의 32)을 포함할 수 있다.
이러한 제1 영역(도 1의 11, 도 7의 31)을 구현하는 비휘발성 메모리의 예시로는, MRAM(Magnetic Random Access Memory), PRAM(Phase-change random Access Memory), FRAM(Ferroelectric Random Access Memory) 등을 들 수 있으며, 휘발성 메모리로 구현된 제2 영역(도 1의 12, 도 7의 32)을 구현하는 메모리의 예시로는, DRAM(Random Access Memory)을 들 수 있으나, 본 발명이 이러한 예시에 제한되는 것은 아니다.
스토리지(140), 키보드 컨트롤러(160), 프린터 컨트롤러(150), 및 각종 주변 장치들(미도시) 등은 사우스 브리지(130)에 접속될 수 있다.
스토리지(140)는 파일 데이터 등을 저장하는 대용량 데이터 저장 장치로서, 예를 들어, HDD, SSD 등으로 구현될 수 있으나, 본 발명이 이러한 예시에 제한되는 것은 아니다.
또한, 본 실시예에 따른 컴퓨팅 시스템(101)에서는 스토리지(140)가 사우스 브리지(130)에 접속되는 구조를 도시하고 있으나, 본 발명이 이에 제한되는 것은 아니며, 스토리지(140)가 노스 브리지(120)에 연결되거나, 중앙처리장치(100)에 직접 연결되는 구조로 변형될 수도 있다.
다음 도 9를 참조하여, 본 발명의 실시예들에 따른 메모리 시스템이 채용될 수 있는 전자 시스템에 대해 설명하도록 한다.
도 9는 본 발명의 실시예들에 따른 메모리 시스템이 채용될 수 있는 전자 시스템의 구성을 도시한 블록도이다.
도 9를 참조하면, 전자 시스템(900)은 앞서 설명한 본 발명의 실시예들에 따른 메모리 시스템을 채용할 수 있다. 구체적으로, 전자 시스템(900)은 메모리 시스템(912), 프로세서(914), 램(916), 및 유저인터페이스(918)를 포함할 수 있다.
이러한, 메모리 시스템(912), 프로세서(914), 램(916), 및 유저인터페이스(918)는 버스(Bus, 920)를 이용하여 서로 데이터 통신을 할 수 있다.
프로세서(914)는 프로그램을 실행하고 전자 시스템(900)을 제어하는 역할을 할 수 있으며, 램(916)은 프로세서(914)의 동작 메모리로서 사용될 수 있다. 여기서, 전자 시스템(900)이 앞서 설명한 본 발명의 실시예들에 따른 메모리 시스템을 채용했을 경우, 프로세서(914)는 앞서 설명한 중앙처리장치(60)에 대응되고, 램(916)은 메인 메모리(도 1의 10, 도 7의 30)에 대응될 수 있다. 이러한, 프로세서(914) 및 램(916)은 하나의 반도체 소자 또는 반도체 패키지로 패키징되어 구현될 수 있다.
유저 인터페이스(918)는 전자 시스템(900)에 데이터를 입력 또는 출력하는데 이용될 수 있다. 메모리 시스템(912)은 프로세서(914)의 동작을 위한 코드, 프로세서(914)에 의해 처리된 데이터 또는 외부에서 입력된 데이터를 저장할 수 있다. 전자 시스템(900)이 앞서 설명한 본 발명의 실시예들에 따른 메모리 시스템을 채용했을 경우, 메모리 시스템(912)는 앞서 설명한 스토리지(80)에 대응될 수 있다.
이러한 메모리 시스템(912)은 구동을 위한 별도의 컨트롤러를 포함할 수 있으며, 오류 정정 블록을 추가적으로 포함하도록 구성될 수도 있다. 오류 정정 블록은 오류 정정 코드(ECC)를 이용하여 메모리 시스템(912)에 저장된 데이터의 오류를 검출하고, 정정하도록 구성될 수 있다.
메모리 시스템(912)은 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 메모리 시스템(912)은 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 메모리 시스템(912)은 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
도 9에 도시된 전자 시스템(900)은 다양한 전자기기들의 전자 제어 장치에 적용될 수 있다. 도 10은 도 9의 전자 시스템이 스마트 폰에 적용되는 예를 도시한 도면이다. 이처럼 전자 시스템(도 9의 900)이 스마트 폰(1000)에 적용되는 경우, 이러한 전자 시스템(도 9의 900)은 예를 들어, AP(Application Processor) 시스템일 수 있다.
그 밖에, 전자 시스템(도 9의 900)은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10, 30: 메인 메모리 20: 관리 테이블
40: 메모리 관리 유닛 50: 페이지 테이블
60: 중앙처리장치 70: OS
80: 스토리지

Claims (10)

  1. 중앙처리장치;
    상기 중앙처리장치로부터 가상 주소를 제공받고, 이를 물리 주소로 변환하는 메모리 관리 유닛;
    상기 메모리 관리 유닛에 의해 변환된 물리 주소로 억세스되고 상기 중앙처리장치의 연산에 이용되는 데이터를 저장하는 메인 메모리로서, 파일 데이터 중에서 제1 특성을 갖는 제1 데이터가 로딩되며 비휘발성 메모리로 구현된 제1 영역과, 상기 파일 데이터 중에서 상기 제1 특성과 다른 제2 특성을 갖는 제2 데이터가 로딩되며 휘발성 메모리로 구현된 제2 영역을 포함하는 메인 메모리; 및
    상기 메인 메모리의 제1 및 제2 영역 중에서 상기 제1 영역 만을 별도로 관리하는 관리 테이블을 포함하는 메모리 시스템.
  2. 제 1항에 있어서,
    상기 제1 특성은 리드-온리(read-only) 특성을 포함하고,
    상기 제2 특성은 리드-라이트(read-write) 특성을 포함하는 메모리 시스템.
  3. 제 2항에 있어서,
    상기 제1 데이터는 상기 파일 데이터의 코드 영역을 포함하고,
    상기 제2 데이터는 상기 파일 데이터의 데이터 영역 및 BSS 영역을 포함하는 메모리 시스템.
  4. 제 1항에 있어서,
    상기 관리 테이블은 상기 제1 영역에 로딩된 제1 데이터가 유효 데이터인지 여부를 구분할 수 있는 플래그와, 상기 제1 영역에 로딩된 제1 데이터가 스토리지에 저장된 데이터와 동일한 데이터인지 여부를 구분할 수 있는 부가 정보를 포함하는 메모리 시스템.
  5. 제 4항에 있어서,
    상기 부가 정보는,
    파일 저장 시간 및 파일 크기를 포함하는 파일 정보와,
    상기 제1 데이터로부터 연산한 미리 정한 연산값을 포함하는 메모리 시스템.
  6. 파일 데이터 중에서 제1 특성을 갖는 제1 데이터가 로딩되며 비휘발성 메모리로 구현된 제1 영역과, 상기 파일 데이터 중에서 상기 제1 특성과 다른 제2 특성을 갖는 제2 데이터가 로딩되며 휘발성 메모리로 구현된 제2 영역을 포함하는 메인 메모리와, 상기 메인 메모리의 제1 및 제2 영역 중에서 상기 제1 영역 만을 별도로 관리하는 관리 테이블을 제공하고,
    상기 제1 및 제2 데이터에 대한 페이지 스왑 아웃 수행 시, 상기 제1 데이터에 대해서는 상기 제1 영역에 로딩된 상기 제1 데이터를 삭제하지 않고 상기 관리 테이블에 포함된 미리 정한 플래그를 변경함으로써 상기 페이지 스왑 아웃을 수행하고, 상기 제2 데이터에 대해서는 상기 제2 영역에 로딩된 상기 제2 데이터를 삭제함으로써 상기 페이지 스왑 아웃을 수행하는 것을 포함하는 메모리 시스템의 구동 방법.
  7. 제 6항에 있어서,
    상기 제1 및 제2 데이터에 대한 페이지 스왑 인 수행 시, 상기 제1 데이터에 대해서는 상기 관리 테이블에 포함된 정보를 고려하여 상기 제1 영역에 상기 제1 데이터를 로딩하지 않고 미리 정한 플래그를 변경함으로써 상기 페이지 스왑 인을 수행하고, 상기 제2 데이터에 대해서는 상기 제2 영역에 상기 제2 데이터를 로딩함으로써 상기 페이지 스왑 인을 수행하는 것을 더 포함하는 메모리 시스템의 구동 방법.
  8. 제 7항에 있어서,
    상기 관리 테이블에 포함된 정보를 고려하는 것은 상기 관리 테이블에 포함된 제1 데이터에 대한 파일 정보와 상기 스토리지에 저장된 제1 데이터에 대한 파일 정보를 비교하는 것을 포함하는 메모리 시스템의 구동 방법.
  9. 제 6항에 있어서,
    상기 비휘발성 메모리는 MRAM(Magnetic Random Access Memory)를 포함하고,
    상기 휘발성 메모리는 DRAM(Dynamic Random Access Memory)를 포함하는 메모리 시스템의 구동 방법.
  10. 제 6항에 있어서,
    상기 메모리 시스템의 초기 구동 시, 상기 메인 메모리의 상기 제1 영역에 스토리지에 저장된 n(n은 자연수)개의 상기 제1 데이터 중, 미리 정한 m(m은 자연수) 개의 상기 제1 데이터를 로딩시키는 것을 더 포함하는 메모리 시스템의 구동 방법.
KR1020120132444A 2012-11-21 2012-11-21 메모리 시스템 및 그 구동 방법 KR20140065196A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120132444A KR20140065196A (ko) 2012-11-21 2012-11-21 메모리 시스템 및 그 구동 방법
US14/082,938 US20140143518A1 (en) 2012-11-21 2013-11-18 Memory system and method for operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120132444A KR20140065196A (ko) 2012-11-21 2012-11-21 메모리 시스템 및 그 구동 방법

Publications (1)

Publication Number Publication Date
KR20140065196A true KR20140065196A (ko) 2014-05-29

Family

ID=50729079

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120132444A KR20140065196A (ko) 2012-11-21 2012-11-21 메모리 시스템 및 그 구동 방법

Country Status (2)

Country Link
US (1) US20140143518A1 (ko)
KR (1) KR20140065196A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019164172A1 (ko) * 2018-02-23 2019-08-29 삼성전자 주식회사 메모리를 제어하는 전자 장치 및 제어 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157008B2 (en) * 2015-04-29 2018-12-18 Qualcomm Incorporated Systems and methods for optimizing memory power consumption in a heterogeneous system memory
KR102353058B1 (ko) * 2016-02-02 2022-01-20 삼성전자주식회사 시스템 온 칩 및 그것의 동작 방법
KR20180044095A (ko) 2016-10-21 2018-05-02 삼성전자주식회사 전자 시스템 및 그것의 동작 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10127198A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
JP4078360B2 (ja) * 2004-12-24 2008-04-23 キヤノン株式会社 電子機器、データ処理方法、及びコンピュータプログラム
US8930659B2 (en) * 2005-03-31 2015-01-06 Nec Corporation Computer system, memory management method and program thereof
KR101449524B1 (ko) * 2008-03-12 2014-10-14 삼성전자주식회사 스토리지 장치 및 컴퓨팅 시스템
WO2011033600A1 (ja) * 2009-09-21 2011-03-24 株式会社 東芝 仮想記憶管理装置
KR101713051B1 (ko) * 2010-11-29 2017-03-07 삼성전자주식회사 하이브리드 메모리 시스템, 및 그 관리 방법
US8423740B2 (en) * 2011-02-01 2013-04-16 Wind River Systems, Inc. System and method for fast boot from non-volatile memory
JP5754264B2 (ja) * 2011-06-24 2015-07-29 富士ゼロックス株式会社 プログラム実行装置、画像処理装置およびプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019164172A1 (ko) * 2018-02-23 2019-08-29 삼성전자 주식회사 메모리를 제어하는 전자 장치 및 제어 방법
KR20190101837A (ko) * 2018-02-23 2019-09-02 삼성전자주식회사 메모리를 제어하는 전자 장치 및 제어 방법
US11237741B2 (en) 2018-02-23 2022-02-01 Samsung Electronics Co., Ltd. Electronic device and control method for controlling memory

Also Published As

Publication number Publication date
US20140143518A1 (en) 2014-05-22

Similar Documents

Publication Publication Date Title
US10331364B2 (en) Method and apparatus for providing hybrid mode to access SSD drive
KR102094393B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
US20190121732A1 (en) Persistent content in nonvolatile memory
US20120151127A1 (en) Method of storing data in a storing device including a volatile memory device
US11513971B2 (en) Address mapping method and operation method of storage device
TWI596541B (zh) 資料存取系統、資料存取裝置及資料存取方法
JP2013137770A (ja) Lbaビットマップの使用
US20070005625A1 (en) Storage architecture for embedded systems
US11907129B2 (en) Information processing device, access controller, information processing method, and computer program for issuing access requests from a processor to a sub-processor
KR20200116704A (ko) 메모리 시스템 및 그것의 동작방법
US20130268725A1 (en) Nonvolatile memory wear management
CN105608016A (zh) Dram与mram结合的固态硬盘及使用mram的存储卡
US20190042415A1 (en) Storage model for a computer system having persistent system memory
KR20140065196A (ko) 메모리 시스템 및 그 구동 방법
US20170161203A1 (en) Increased memory capacity
KR20140073955A (ko) 메모리 시스템 및 그 구동 방법
CN104205229A (zh) 功率损耗恢复中的固态驱动器管理
US11216383B2 (en) Storage device providing a virtual memory region, electronic system including the same, and method of operating the same
CN103229150A (zh) 数据控制方法及系统
US20140059269A1 (en) Computing device and operating method of computing device
US11835992B2 (en) Hybrid memory system interface
US20090031100A1 (en) Memory reallocation in a computing environment
US6804754B1 (en) Space management in compressed main memory
KR102353859B1 (ko) 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈
US10572382B2 (en) Method of operating data storage device and method of operating data processing system including the same

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid