KR101061483B1 - Memory circuit and memory circuit access method, memory management system and memory management method - Google Patents

Memory circuit and memory circuit access method, memory management system and memory management method Download PDF

Info

Publication number
KR101061483B1
KR101061483B1 KR1020090060371A KR20090060371A KR101061483B1 KR 101061483 B1 KR101061483 B1 KR 101061483B1 KR 1020090060371 A KR1020090060371 A KR 1020090060371A KR 20090060371 A KR20090060371 A KR 20090060371A KR 101061483 B1 KR101061483 B1 KR 101061483B1
Authority
KR
South Korea
Prior art keywords
memory
dram
page
nonvolatile memory
access
Prior art date
Application number
KR1020090060371A
Other languages
Korean (ko)
Other versions
KR20110002742A (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 KR1020090060371A priority Critical patent/KR101061483B1/en
Publication of KR20110002742A publication Critical patent/KR20110002742A/en
Application granted granted Critical
Publication of KR101061483B1 publication Critical patent/KR101061483B1/en

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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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 (AREA)

Abstract

본 발명은 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법에 관한 것이다.The present invention relates to a memory circuit, an access method of the memory circuit, a memory management system, and a memory management method.

본 발명에 따른 메모리 회로는, DRAM, 비휘발성 메모리, DRAM 및 비휘발성 메모리와 프로세서 사이에 연결되어, 프로세서가 DRAM 및 비휘발성 메모리에 동일한 방식으로 엑세스하도록 구성된 공유 메모리 인터페이스를 포함한다.The memory circuit according to the present invention includes a shared memory interface coupled between a DRAM, a nonvolatile memory, a DRAM and a nonvolatile memory, and a processor, the processor configured to access the DRAM and the nonvolatile memory in the same manner.

본 발명에 따른 메모리 회로에 의하면, DRAM과 비휘발성 메모리를 동일한 메모리 인터페이스로 연결하고, 프로세서의 메인 메모리 물리 주소에 맵핑하여 프로세서가 DRAM과 비휘발성 메모리를 직접 접근할 수 있다.According to the memory circuit according to the present invention, the DRAM and the nonvolatile memory are connected to the same memory interface and mapped to the main memory physical address of the processor so that the processor can directly access the DRAM and the nonvolatile memory.

하이브리드 메모리, 비휘발성 메모리, DRAM, 메인 메모리 관리 Hybrid Memory, Nonvolatile Memory, DRAM, Main Memory Management

Description

메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법{MEMORY CIRCUIT AND METHOD FOR ACCESSING MEMORY CIRCUIT, SYSTEM AND METHOD FOR MANAGING MEMORY}MEMORY CIRCUIT AND METHOD FOR ACCESSING MEMORY CIRCUIT, SYSTEM AND METHOD FOR MANAGING MEMORY}

본 발명은 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법에 관한 것이다. The present invention relates to a memory circuit, an access method of the memory circuit, a memory management system, and a memory management method.

상변화 메모리(PCM: Phase Change Memory), 강유전성 메모리(FRAM: Ferroelectric Random Access Memory), 자기 메모리(MRAM: Magnetoresistive Random Access Memory)와 같은 비휘발성 메모리는, 비휘발성인 특징을 가지고, 또한 DRAM과 같이 바이트 또는 워드 레벨로 접근이 가능하기 때문에, DRAM과 같이 단독으로 메인 메모리로써 사용될 수 있다. 또한, 각각의 비휘발성 메모리의 특징에 따라서 DRAM에 대비하여 용량 대비 비용 또는 저전력 동작과 같은 장점을 가지고 있다. 그러나, 비휘발성 메모리는 DRAM에 비해 접근 속도가 떨어지는 단점을 가지고 있기 때문에, 비휘발성 메모리를 단독으로 메인 메모리로써 사용할 경우, DRAM을 메인 메모리로써 사용하는 경우에 비해 성능이 떨어지는 단점이 있다. Nonvolatile memories, such as phase change memory (PCM), ferroelectric random access memory (FRAM), and magnetoresistive random access memory (MRAM), have non-volatile characteristics, and like DRAM, Because it is accessible at the byte or word level, it can be used alone as a main memory like a DRAM. In addition, depending on the characteristics of each nonvolatile memory has advantages such as cost versus capacity or low power operation compared to DRAM. However, since the non-volatile memory has a disadvantage in that the access speed is lower than that of the DRAM, when using the non-volatile memory alone as the main memory, the performance is lower than when using the DRAM as the main memory.

이에 관한 종래 기술로서, 한국공개특허공보 제10-2007-0080844호(비휘발성 메모리 제어기 및 휘발성 메모리에 엑세스하는 방법 및 시스템, 비휘발성 메모리 제어기 및 휘발성 메모리), 한국공개특허공보 제10-2005-0042183호(램과 비휘발성 램을 포함하는 메모리 회로), 한국공개특허공보 제10-2008-7029847호(하이브리드 메모리 장치를 위한 방법 및 시스템) 등은 휘발성 메모리(RAM)과 비휘발성 메모리를 하이브리드 방식으로 구성하는 방법에 관한 문헌들이다. 즉, 비휘발성 메모리를 휘발성 메모리 인터페이스를 통하여 연결하는 방법에 관련된 기술이다. As a related art, Korean Patent Laid-Open Publication No. 10-2007-0080844 (a method and system for accessing a nonvolatile memory controller and a volatile memory, a nonvolatile memory controller and a volatile memory), and Korean Patent Publication No. 10-2005- 0042183 (memory circuit including a RAM and a nonvolatile RAM), Korean Patent Laid-Open No. 10-2008-7029847 (method and system for a hybrid memory device), etc., a hybrid method of volatile memory (RAM) and nonvolatile memory Documents on how to configure. That is, the present invention relates to a method of connecting a nonvolatile memory through a volatile memory interface.

한편, 종래의 플래시와 같은 비휘발성 메모리는 블록 단위의 지움(Erase) 연산이 필요하기 때문에 바이트 단위로 데이터를 액세스할 수 없다. 따라서, SRAM 버퍼와 비휘발성 메모리 관리모듈 등을 통해 비휘발성 메모리 인터페이스를 기존의 메모리 인터페이스로 변환 가능한 방법을 제시하였다. 그러나, 비휘발성 메모리와 같이 프로세서(Processor)가 직접 접근 가능한 메모리의 경우에는 종래의 인터페이스 변환 방식의 사용이 불필요하다. On the other hand, a nonvolatile memory such as a conventional flash requires erasing operations in units of blocks, and thus data cannot be accessed in units of bytes. Therefore, a method of converting a nonvolatile memory interface into an existing memory interface through an SRAM buffer and a nonvolatile memory management module is proposed. However, in the case of a memory directly accessible to a processor such as a nonvolatile memory, use of a conventional interface conversion method is unnecessary.

또한, 종래 기술로서, 미국특허공보US5269013(Adaptive memory management method for coupled memory multiprocessor systems), 미국특허공보 US5918249(Promoting local memory accessing and data migration in non-uniform memory access system architectures) 등은 다수의 프로세서와 다수의 메모리가 존재하는 상황에서 메모리를 관리하는 방법에 관한 기술이다. 즉, 다수의 프로세서가 접근하는 메모리의 위치에 따라 메모리를 관리하는 방법에 관한 기술이다. 그러나, DRAM과 비휘발성 메모리와 같이 물리적 특성이 다른 메모리에 대한 관하여 각 메모리의 메모리 접근 방식 추적하는 방법과 이를 통한 메모리 페이지 관리방법은 제안 되어 있지 않다.In addition, as the prior art, US Patent Publication US5269013 (Adaptive memory management method for coupled memory multiprocessor systems), US Patent Publication US5918249 (Promoting local memory accessing and data migration in non-uniform memory access system architectures), etc. Is a technique for managing memory in the presence of memory. That is, the present invention relates to a method of managing memory according to a location of memory accessed by a plurality of processors. However, a method of tracking the memory access method of each memory with respect to memory having different physical characteristics such as DRAM and nonvolatile memory and a memory page management method through the memory are not proposed.

따라서, 상기와 같은 문제점을 해결하기 위하여, 본 발명은, DRAM과 비휘발성 메모리를 동일한 메모리 인터페이스로 연결하고, 프로세서의 메인 메모리 물리 주소에 맵핑하여 프로세서가 DRAM과 비휘발성 메모리를 직접 접근할 수 있는 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법을 제공하는 것을 그 목적으로 한다.Accordingly, in order to solve the above problem, the present invention connects the DRAM and the nonvolatile memory to the same memory interface and maps the main memory physical address of the processor so that the processor can directly access the DRAM and the nonvolatile memory. It is an object of the present invention to provide a memory circuit, an access method of the memory circuit, a memory management system, and a memory management method.

또한, 본 발명은, 메모리 회로 상에서 메모리 페이지를 DRAM과 비휘발성 메모리의 특성에 맞도록 할당, 회수, 교환하여 메모리 접근 성능을 최적화할 수 있는 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법을 제공하는 것을 그 목적으로 한다.In addition, the present invention provides an access method of a memory circuit and a memory circuit, a memory management system, and a memory capable of optimizing memory access performance by allocating, retrieving, and exchanging memory pages in accordance with characteristics of DRAM and nonvolatile memory on the memory circuit. Its purpose is to provide a management method.

또한, 본 발명은, 메모리 접근 성능을 최적화하는 것에 의하여, 컴퓨터 시스템의 대용량 메인 메모리를 구현할 수 있는 메모리 회로 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법을 제공하는 것을 그 목적으로 한다. In addition, an object of the present invention is to provide a memory circuit memory circuit, an access method of a memory circuit, a memory management system, and a memory management method capable of implementing a large-capacity main memory of a computer system by optimizing memory access performance. do.

또한, 본 발명은, DRAM과 비휘발성 메모리로 구성된 하이브리드 메모리 구조를 통하여 DRAM과 비휘발성 메모리를 동시에 사용하는 대용량 메모리를 구성할 수 있어 메인 메모리의 모자람에 전체 컴퓨터 시스템의 성능 저하를 막을 수 있는 메모리 회로 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법을 제공하는 것을 그 목적으로 한다.In addition, the present invention can be configured a large-capacity memory using a DRAM and a non-volatile memory at the same time through a hybrid memory structure consisting of a DRAM and a non-volatile memory to prevent performance degradation of the entire computer system in the absence of main memory It is an object of the present invention to provide a circuit memory circuit, an access method of a memory circuit, a memory management system, and a memory management method.

또한, 본 발명은, DRAM 하이브리드 메모리 관리방법을 통하여 자주 접근되는 페이지를 속도가 빠른 DRAM을 통하여 접근할 수 있게 하는 것에 의하여, 같은 용량의 DRAM만으로 이루어진 시스템과 견주어 비슷한 성능을 보장하면서도 메인 메모리 구축 비용 및 메인 메모리 전력 소비 면에서 이득을 얻을 수 있는 메모리 회로 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법을 제공하는 것을 그 목적으로 한다.In addition, the present invention provides a main memory construction cost while guaranteeing similar performance as compared to a system consisting of DRAMs of the same capacity by enabling accessing frequently accessed pages through a fast DRAM through a DRAM hybrid memory management method. And a memory circuit memory circuit and an access method, a memory management system, and a memory management method which can benefit from main memory power consumption.

청구항 1에 관한 발명인 메모리 회로는, DRAM, 비휘발성 메모리, DRAM 및 비휘발성 메모리와 프로세서 사이에 연결되어, 프로세서가 DRAM 및 비휘발성 메모리에 동일한 방식으로 엑세스하도록 구성된 공유 메모리 인터페이스를 포함하고, 프로세서는 DRAM 및 비휘발성 메모리를 각각 다른 물리 메모리 주소에 매핑하여 DRAM 및 비휘발성 메모리로의 엑세스를 조절할 수 있다.The memory circuit of the invention according to claim 1 comprises a shared memory interface coupled between a DRAM, a nonvolatile memory, a DRAM and a nonvolatile memory, and a processor, the processor configured to access the DRAM and the nonvolatile memory in the same manner, the processor comprising: DRAM and nonvolatile memory can be mapped to different physical memory addresses to control access to DRAM and nonvolatile memory.

삭제delete

청구항 3에 관한 발명인 메모리 회로의 엑세스 방법은, DRAM 및 비휘발성 메모리를 동일한 공유 메모리 인터페이스를 통하여 프로세서와 연결하고, 프로세서가 DRAM 및 비휘발성 메모리를 각각 다른 물리 메모리 주소에 매핑하는 단계, 프로세서가 공유 메모리 인터페이스를 통하여 물리 메모리 주소를 선택하여 DRAM 또는 비휘발성 메모리로의 엑세스를 조절하는 단계를 포함한다.A method of accessing a memory circuit of the present invention according to claim 3, comprising: connecting the DRAM and the nonvolatile memory to the processor through the same shared memory interface, and the processor mapping the DRAM and the nonvolatile memory to different physical memory addresses, respectively, shared by the processor. Selecting a physical memory address through the memory interface to regulate access to the DRAM or non-volatile memory.

청구항 4에 관한 발명인 메모리 관리 시스템은, 복수의 프로세스를 포함하는 사용자 프로세스가 DRAM 및 비휘발성 메모리를 포함하는 메인 메모리로의 엑세스되 도록 운영제어부를 통하여 조절되는 메모리 관리 시스템으로서, 운영 제어부는, 복수의 프로세스에 각각 대응되는 가상 메모리 부, 복수의 프로세스가 가상 메모리 부에 접근하는 때, 가상 메모리 주소를 메인 메모리의 물리 페이지로 매핑하는 페이지 테이블, DRAM 및 비휘발성 메모리에 따라 메모리 페이지를 할당, 회수, 이동시키며, 이를 통해 페이지 테이블을 변경하여 사용자 프로세스가 DRAM 및 비휘발성 메모리 중 어느 하나를 결정하도록 제어하는 하이브리드 메모리 관리모듈을 포함한다.The memory management system according to claim 4 is a memory management system in which a user process including a plurality of processes is controlled through an operation control unit so that a user process including a plurality of processes is accessed to a main memory including a DRAM and a nonvolatile memory. Allocating and retrieving memory pages according to the virtual memory unit corresponding to each of the processes, the page table mapping the virtual memory address to the physical page of the main memory, DRAM and nonvolatile memory when a plurality of processes access the virtual memory unit. It includes a hybrid memory management module that moves, and changes the page table to control the user process to determine either DRAM or non-volatile memory.

청구항 5에 관한 발명인 메모리 관리 시스템은, 청구항 4에 관한 발명인 메모리 관리 시스템에 있어서, 하이브리드 메모리 관리모듈은, DRAM 및 비휘발성 메모리에 대한 접근정보를 수집하고, 메인 메모리로의 메모리 페이지를 회수, 교환시키고, 메모리 페이지의 위치에 따라 페이지 정보 테이블 정보를 변경하고, 유지시키는 강제 페이지 폴트 핸들러, DRAM 및 비휘발성 메모리에 소정시간동안 메모리 접근정보가 수집되지 않은 때, 주기적으로 메모리 접근정보를 수집하도록 제어하는 강제 페이지 폴트 생성기, 새로운 DRAM 및 비휘발성 메모리를 사용하고자 하는 때, 현재 사용되고 있지 않은 프리 페이지가 할당되도록 제어하는 메모리 페이지 할당 모듈을 포함한다.The memory management system of the present invention of claim 5 is the memory management system of the invention of claim 4, wherein the hybrid memory management module collects access information for DRAM and nonvolatile memory, and retrieves and exchanges memory pages to main memory. Control to collect memory access information periodically when memory access information is not collected for a predetermined time in a forced page fault handler, DRAM, and nonvolatile memory, which changes and maintains page information table information according to the location of memory pages. And a memory page allocation module that controls when a forced page fault generator, a new DRAM, and a nonvolatile memory are to be used, a free page that is not currently being used is allocated.

청구항 6에 관한 발명인 메모리 관리 시스템은, 청구항 5에 관한 발명인 메모리 관리 시스템은, 강제 페이지 폴트 핸들러는, DRAM 및 비휘발성 메모리에 잘못 접근하여 페이지 폴트가 발생하는 때, 이전 페이지 폴트로부터 현재까지 접근한 메모리 페이지 정보를 수집하는 메모리 접근 정보 수집 모듈, DRAM 및 비휘발성 메모 리에 남아있는 프리 페이지가 부족한 경우에, DRAM 및 비휘발성 메모리의 사용되지 않은 메모리 페이지를 회수하는 하이브리드 메모리 페이지 회수 모듈, DRAM 및 비휘발성 메모리의 페이지들 중 페이지 접근 빈도수의 차이가 많은 페이지들의 경우 메모리 페이지를 교환하는 하이브리드 메모리 페이지 교환 모듈을 포함한다.The memory management system of the present invention according to claim 6, the memory management system of the invention according to claim 5, the forced page fault handler is to access from the previous page fault to the present time when a page fault occurs due to improper access to DRAM and nonvolatile memory Memory access information collection module for collecting memory page information, hybrid memory page retrieval module for reclaiming unused memory pages of DRAM and nonvolatile memory in the event that there are not enough free pages remaining in DRAM and nonvolatile memory. Among the pages of the volatile memory, a page having a large difference in page access frequency includes a hybrid memory page exchange module for exchanging memory pages.

청구항 7에 관한 발명인 메모리 관리방법은, 복수의 프로세스를 포함하는 사용자 프로세스가 DRAM 및 비휘발성 메모리를 포함하는 메인 메모리로 엑세스되도록 운영제어부를 통하여 조절되는 메모리 관리방법으로서, (a) 사용자 프로세스로부터 DRAM 및 비휘발성 메모리 페이지 접근이 있을 경우, 먼저 접근 하고자 하는 메모리 페이지가 현재 할당되어 있는지 확인하는 단계; (b) 메모리 페이지가 이미 할당되어 있는 경우에는 메모리 페이지 접근 정보 수집을 위한 주기를 체크하여, 메모리 페이지 접근 정보 수집이 필요한 경우에는 강제 페이지 폴트를 생성하여 페이지 폴트를 강제로 발생시키는 단계, (c) DRAM 및 비휘발성 메모리 페이지에 대한 접근 정보를 수집하고, 그 수집된 정보를 바탕으로 DRAM 또는 비휘발성 메모리에 사용되지 않는 페이지 숫자가 많거나 남아 있는 프리 페이지 숫자가 적은 경우에, 메모리 페이지 회수를 수행하는 단계, (d) 회수된 DRAM이 존재하면, DRAM을 이용하여 현재 자주 접근되는 비휘발성 메모리 상의 페이지를 DRAM으로 이동시키는 단계, (e) 메모리 페이지의 이동이나 메모리 페이지간의 교환이 이루어진 경우 교환 및 이동이 이루어진 메모리 페이지의 숫자를 피드백 하여 메모리 페이지 교환 주기를 조절하는 단계, (f) 메모리 페이지의 할당, 회수 및 교환이 일어난 경우에는 페이지 테이블의 페이지 맵핑 정보를 갱신하고, 매 페이지 접근 시마다 페이지 접근 정보를 갱 신하여 페이지 회수 및 교환이 가능하도록 추후 페이지 접근 정보를 수집하는 단계를 포함한다.The memory management method according to claim 7 is a memory management method which is controlled through an operation control unit such that a user process including a plurality of processes is accessed to a main memory including a DRAM and a nonvolatile memory, the method comprising: (a) a DRAM from a user process And if there is a nonvolatile memory page access, first checking whether a memory page to be accessed is currently allocated; (b) checking a cycle for collecting memory page access information when the memory page is already allocated, and forcibly generating a page fault by generating a forced page fault when it is necessary to collect the memory page access information, (c ) Collect access information for DRAM and nonvolatile memory pages, and based on the collected information, if the number of pages not used for DRAM or nonvolatile memory is high or the number of free pages remaining is small, Performing (d) if recovered DRAM exists, moving pages on non-volatile memory that are currently frequently accessed using DRAM to the DRAM; and (e) swapping when memory pages are moved or swapped between memory pages. Memory page exchange cycle by feeding back the number of memory pages (F) if the allocation, retrieval, and exchange of memory pages occurs, the page mapping information of the page table is updated, and the page access information is updated for each page access, so that future pages can be retrieved and exchanged. Collecting access information.

청구항 8에 관한 발명인 메모리 관리방법은, 청구항 7에 관한 발명인 메모리 관리방법은, (b) 단계는, 현재 할당되지 않은 메모리 접근에 대해서는 자연히 페이지 폴트가 발생하게 되고, DRAM과 비휘발성 메모리 중 선택 적으로 할당하는 단계를 더 포함한다.In the memory management method of the invention according to claim 8, the memory management method of the invention according to claim 7, In step (b), page faults are naturally generated for memory accesses that are not currently allocated, and the DRAM and nonvolatile memory are selectively selected. It further comprises the step of assigning.

청구항 9에 관한 발명인 메모리 관리방법은, 청구항 7에 관한 발명인 메모리 관리방법에 있어서, (c) 단계는, 메모리 회수가 필요 없는 경우에, DRAM과 비휘발성 메모리의 접근 숫자를 비교하여 접근 숫자의 차이가 크면, 즉 DRAM에 있는 메모리 페이지보다 비휘발성 메모리에 있는 페이지가 더 자주 접근 되는 경우 DRAM 및 비휘발성 메모리 사이의 메모리 페이지를 교환한다.In the memory management method of the inventor of claim 9, the memory management method of the invention of claim 7, wherein in step (c), when the number of memories is not necessary, the access number of the DRAM and the nonvolatile memory is compared and the access number is different. If large, that is, pages in nonvolatile memory are accessed more frequently than memory pages in DRAM, memory pages are swapped between DRAM and nonvolatile memory.

상기한 바와 같이, 본 발명에 의하면, DRAM과 비휘발성 메모리를 동일한 메모리 인터페이스로 연결하고, 프로세서의 메인 메모리 물리 주소에 맵핑하여 프로세서가 DRAM과 비휘발성 메모리를 직접 접근할 수 있다.As described above, according to the present invention, the DRAM and the nonvolatile memory are connected to the same memory interface and mapped to the main memory physical address of the processor so that the processor can directly access the DRAM and the nonvolatile memory.

또한, 본 발명에 의하면, 메모리 회로 상에서 메모리 페이지를 DRAM과 비휘발성 메모리의 특성에 맞도록 할당, 회수, 교환하여 메모리 접근 성능을 최적화할 수 있다.In addition, according to the present invention, memory access performance may be optimized by allocating, retrieving, and exchanging memory pages in accordance with characteristics of DRAM and nonvolatile memory on a memory circuit.

또한, 본 발명에 의하면, 메모리 접근 성능을 최적화시키고 있기 때문에, 컴퓨터 시스템의 대용량 메인 메모리를 구현할 수 있다.In addition, according to the present invention, since the memory access performance is optimized, a large main memory of a computer system can be implemented.

또한, 본 발명에 의하면, DRAM과 비휘발성 메모리로 구성된 하이브리드 메모리 구조를 통하여 DRAM과 비휘발성 메모리를 동시에 사용하는 대용량 메모리를 구성할 수 있기 때문에, 메인 메모리의 모자람에 전체 컴퓨터 시스템의 성능 저하를 막을 수 있다.In addition, according to the present invention, a large-capacity memory using both DRAM and non-volatile memory can be configured through a hybrid memory structure composed of DRAM and non-volatile memory, thereby preventing performance degradation of the entire computer system from running out of main memory. Can be.

또한, 본 발명에 의하면, DRAM 하이브리드 메모리 관리방법을 통하여 자주 접근되는 페이지를 속도가 빠른 DRAM을 통하여 접근할 수 있게 하기 때문에, 같은 용량의 DRAM만으로 이루어진 시스템과 견주어 비슷한 성능을 보장하면서도 메인 메모리 구축 비용 및 메인 메모리 전력 소비 면에서 이득을 얻을 수 있다. In addition, according to the present invention, since a frequently accessed page can be accessed through a fast DRAM through the DRAM hybrid memory management method, the main memory construction cost can be guaranteed while comparable performance with that of a system having only DRAM of the same capacity. And main memory power consumption.

이상과 같은 본 발명에 대한 해결하고자 하는 과제, 과제 해결 수단, 효과 외의 구체적인 사항들은 다음에 기재할 실시예 및 도면들에 포함되어 있다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Specific matters other than the problem to be solved, the problem solving means, and the effects of the present invention as described above are included in the following embodiments and the drawings. Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. Like reference numerals refer to like elements throughout.

이하 본 발명의 실시예에 대하여 첨부한 도면을 참조하여 상세하게 설명하기로 한다. 다만, 첨부된 도면은 본 발명의 내용을 보다 쉽게 개시하기 위하여 설명되는 것일 뿐, 본 발명의 범위가 첨부된 도면의 범위로 한정되는 것이 아님은 이 기술분야의 통상의 지식을 가진 자라면 용이하게 알 수 있을 것이다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the accompanying drawings are only described in order to more easily disclose the contents of the present invention, but the scope of the present invention is not limited to the scope of the accompanying drawings that will be readily available to those of ordinary skill in the art. You will know.

도 1은 본 발명의 일 실시예에 따른 하이브리드 메모리 회로의 구성을 나타내는 블록도이다.1 is a block diagram illustrating a configuration of a hybrid memory circuit according to an exemplary embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 하이브리드 메모리 회로는, 프로세서(101), 공유 메모리 인터페이스(102, ADR/DATA), DRAM(103), 비휘발성 메모리(104)를 포함한다.As shown in FIG. 1, a hybrid memory circuit according to an embodiment of the present invention includes a processor 101, a shared memory interface 102 (ADR / DATA), a DRAM 103, and a nonvolatile memory 104. do.

프로세서(101)는, 공유 메모리 인터페이스(102)를 통하여 DRAM(103)과 비휘발성 메모리(104)와 연결된다. 따라서, 프로세서(101) 입장에서는 DRAM(103) 접근과 비휘발성 메모리(104) 접근 방식에 차이가 없으므로, 하나의 단일 메모리를 이용하는 것과 같은 효과를 얻을 수 있다. 예를 들면, DRAM(103)과 비휘발성 메모리(104)를 각기 다른 물리 메모리 주소(105)에 맵핑함으로써, 프로세서(101)가 0x000000000부터 0x03FFFFFFF 의 물리 주소에 접근할 때는 DRAM(103)를 접근하는 것이며, 0x03FFFFFFF부터 0x1FFFFFFFF의 물리 주소(105)에 접근할 때는 비휘발성 메모리(104)를 접근하게 된다. 따라서, 본 발명에서의 프로세서(101)가 접근하는 물리 주소(105) 맵핑을 조절함으로써, 프로세서(101)가 접근하는 페이지를 DRAM(103) 또는 비휘발성 메모리(104)로 변경할 수 있다. The processor 101 is connected to the DRAM 103 and the nonvolatile memory 104 through the shared memory interface 102. Accordingly, since there is no difference between the approach of the DRAM 103 and the approach of the nonvolatile memory 104, the processor 101 may have the same effect as using a single memory. For example, by mapping the DRAM 103 and the nonvolatile memory 104 to different physical memory addresses 105, the processor 101 accesses the DRAM 103 when accessing the physical address from 0x000000000 to 0x03FFFFFFF. When accessing the physical address 105 from 0x03FFFFFFF to 0x1FFFFFFFF, the nonvolatile memory 104 is accessed. Thus, by adjusting the mapping of the physical address 105 accessed by the processor 101 in the present invention, the page accessed by the processor 101 can be changed to the DRAM 103 or the nonvolatile memory 104.

도 2는 본 발명의 다른 실시예에 따른 메모리 관리 시스템의 구조를 나타내는 도면이다.2 is a diagram illustrating a structure of a memory management system according to another exemplary embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 메모리 관리 시스템은, 사용자 프로세스(201), 운영제어부(202), 메인 메모리(204)를 포함한다. 여기서, 본 발명의 다른 실시예에 따른 메모리 관리 시스템은, 기본적으로 일반적 메모리 관리 시스템에서 사용되는 가상 메모리 관리방법을 이용하였다. As shown in FIG. 2, a memory management system according to another exemplary embodiment of the present invention includes a user process 201, an operation controller 202, and a main memory 204. Here, the memory management system according to another embodiment of the present invention basically uses a virtual memory management method used in a general memory management system.

사용자 프로세스(201, User Process)는 각각 자신 만의 가상 메모리 부(208) 를 가지고 각 프로세스(프로세스 1, 프로세스 2, 프로세스 3...)가 가상 메모리 부(208)를 접근하게 되면, 운영제어부(202)는 내부의 페이지 테이블(207)을 통해서 가상 메모리 주소를 실제 하이브리드 메인 메모리(204)의 물리 페이지로 맵핑하게 된다. 이 때, 운영제어부(202)가 내부의 페이지 테이블(207)을 통하여 가상 메모리 주소를 어떠한 물리 메모리 주소에 맵핑하느냐에 따라, DRAM(205) 또는 비휘발성 메모리(206)에 접근하는지가 결정되게 된다. 또한, 운영제어부(202)의 하이브리드 메모리 관리모듈(203)은 DRAM(205)과 비휘발성 메모리(206) 특징에 따라서, 메모리 페이지를 할당, 회수, 이동시킨다. 이를 통해, 페이지 테이블(207)을 변경함으로써, 사용자 프로세스(201)가 DRAM(205)과 비휘발성 메모리(206) 중 어떠한 메모리를 사용하는 지를 결정할 수 있게 된다. 이때, 사용자 프로세스(201)는 자신이 접근하는 가상 메모리부(202)에 대한 정보만을 알 수 있다. 또한, 하이브리드 메인 메모리(204) 상에서 DRAM(205)이나 비휘발성 메모리(206) 중 어떠한 메모리를 사용할 것인가에 대한 결정은 사용자 프로세스(201)와 관계없이 전적으로 운영제어부(202)의 하이브리드 메모리 관리모듈(203)의 판단에 의해 이루어지게 된다. When the user process 201 has its own virtual memory unit 208 and each process (process 1, process 2, process 3 ...) approaches the virtual memory unit 208, the operation control unit ( 202 maps the virtual memory address to the physical page of the actual hybrid main memory 204 through the internal page table 207. At this time, it is determined whether the operation controller 202 approaches the DRAM 205 or the nonvolatile memory 206 according to which physical memory address the virtual memory address is mapped to via the internal page table 207. In addition, the hybrid memory management module 203 of the operation control unit 202 allocates, retrieves, and moves memory pages according to the features of the DRAM 205 and the nonvolatile memory 206. In this way, by changing the page table 207, the user process 201 can determine which of the DRAM 205 and the nonvolatile memory 206 to use. In this case, the user process 201 may know only information about the virtual memory unit 202 to which the user process 201 accesses. In addition, the determination of which of the DRAM 205 or the nonvolatile memory 206 to use on the hybrid main memory 204 is entirely determined by the hybrid memory management module of the operation controller 202 regardless of the user process 201. 203).

도 3은 본 발명의 다른 실시예에 따른 하이브리드 메모리 관리모듈의 구조를 나타내는 도면이다.3 is a diagram illustrating a structure of a hybrid memory management module according to another embodiment of the present invention.

도 3에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 하이브리드 메모리 관리 시스템의 하이브리드 메모리 관리모듈(304)은 운영제어부 내부에서 메인 메모리(308)의 메모리 페이지를 할당, 회수, 교환하는 역할을 한다. 또한, 메모리 페이지 위치에 따라 페이지 테이블(301) 정보를 변경하고 유지하는 역할을 한다. As shown in FIG. 3, the hybrid memory management module 304 of the hybrid memory management system according to another exemplary embodiment allocates, retrieves, and exchanges memory pages of the main memory 308 within the operation controller. do. It also serves to change and maintain page table 301 information according to memory page locations.

하이브리드 메모리 관리모듈(304)은 DRAM(307)과 비휘발성 메모리(308)의 메모리 페이지를 관리하기 위하여 각각의 메모리에 대한 접근 정보를 수집한다. 그러나, 모든 메모리 액세스 마다 접근 정보를 수집하고 관리하는 것은, 많은 오버헤드가 따른다. 따라서, 하이브리드 메모리 관리모듈(304)은, 잘못된 페이지를 접근하여 페이지 폴트(page fault)가 발생하였을 때에만, 메모리 접근 정보 수집 모듈(312)을 통하여 이전 페이지 폴트부터 현재까지 접근한 메모리 페이지 정보를 수집하고 관리하게 된다. 다만, 정상적인 메모리 접근의 경우에는, 페이지 폴트가 발생하지 않아 너무 오랫동안 메모리 접근 정보가 수집되지 못하는 문제를 발생한다. 이를 방지하기 위하여, 강제 페이지 폴트 생성기(303)를 통해서 주기적으로 페이지 폴트 핸들러(302)를 호출하고, 메모리 접근 정보 수집 모듈(312)을 동작시켜 메모리 접근 정보를 수집한다.     The hybrid memory management module 304 collects access information for each memory in order to manage memory pages of the DRAM 307 and the nonvolatile memory 308. However, collecting and managing access information for every memory access involves a lot of overhead. Accordingly, the hybrid memory management module 304 may access the memory page information accessed from the previous page fault to the present through the memory access information collection module 312 only when a page fault occurs due to a bad page access. Will be collected and managed. However, in the case of normal memory access, a page fault does not occur, which causes a problem that memory access information cannot be collected for too long. To prevent this, the page fault handler 302 is periodically called through the forced page fault generator 303 and the memory access information collecting module 312 is operated to collect memory access information.

운영제어부 또는 사용자 프로세스에서 새롭게 메모리를 사용할 필요가 있을 경우, 하이브리드 메모리 관리모듈(304) 내의 메모리 페이지 할당 모듈(309)에 의해서 현재 사용되고 있지 않는 프리 페이지(free page)가 운영제어부 또는 사용자 프로세스에 할당된다. 이때, 수집된 메모리 접근 정보(312)와, DRAM(307) 및 비휘발성 메모리(308)상의 프리 페이지 숫자 정보에 기초하여 DRAM(307) 및 비휘발성 메모리(308)로부터 선택적으로 할당되는데 오랫동안 사용되고 있는 메모리 페이지 수가 많고, 각 메모리에 남아 있는 프리 페이지 수가 많은 경우에, 이에 비례하여 더 많은 메모리를 할당한다. 그런 다음, 메모리가 할당된 이후에는 가상 메모리 주소를 통하여 할당된 물리 메모리 주소를 접근할 수 있도록, 페이지 테이블(301) 정 보를 수정한다. When a new memory is required to be used in the operation control unit or the user process, a free page which is not currently being used by the memory page allocation module 309 in the hybrid memory management module 304 is allocated to the operation control unit or the user process. do. At this time, based on the collected memory access information 312 and the free page number information on the DRAM 307 and the nonvolatile memory 308, it has been used for a long time to be selectively allocated from the DRAM 307 and the nonvolatile memory 308. When the number of memory pages is large and the number of free pages remaining in each memory is large, more memory is allocated in proportion thereto. After the memory is allocated, the page table 301 information is modified to access the allocated physical memory address through the virtual memory address.

페이지 폴트 핸들러(302)에서 페이지 폴트를 처리하는 과정에서 DRAM(307) 또는 비휘발성 메모리(308)에 남아 있는 프리 페이지가 부족한 경우, 페이지 회수 모듈(311)에 의해서 메인 메모리(306)의 사용되지 않는 메모리 페이지를 회수하게 된다. 메모리 페이지 회수 이후, 회수된 DRAM(307) 또는 비휘발성 메모리(308) 페이지는 프리페이지로써 남게 된다. 이때, 기존의 비휘발성 메모리(308)상에 자주 접근 되었던 메모리를 곧바로 DRAM(307)의 새로 만들어진 프리 페이지로 이동함으로써, 자주 접근되는 페이지를 접근 시간이 빠른 DRAM(307)을 이용해서 접근할 수 있도록 한다. 페이지 회수 이후에는 페이지 할당할 때와 마찬가지로, 페이지 테이블(301)을 수정하여 프리 페이지에 대한 표시를 하거나, 비휘발성 메모리(308)에서 DRAM(307)으로 이동된 페이지에 대해서 가상 메모리 주소에 대한 물리 메모리 주소 맵핑을 변경해 준다. When the page fault handler 302 processes the page fault, if the free page remaining in the DRAM 307 or the nonvolatile memory 308 is insufficient, the page recall module 311 does not use the main memory 306. Memory pages are retrieved. After memory page reclamation, the recovered DRAM 307 or nonvolatile memory 308 page remains as a free page. At this time, by moving the memory that was frequently accessed on the existing nonvolatile memory 308 directly to the newly created free page of the DRAM 307, the frequently accessed page can be accessed using the fast access time DRAM 307. Make sure After page retrieval, as with page allocation, the page table 301 is modified to display free pages, or the physical address of the virtual memory address is stored for pages moved from nonvolatile memory 308 to DRAM 307. Change the memory address mapping.

또한, 하이브리드 메인 메모리(306)에서 자주 접근되는 페이지가 접근 속도가 느린 비휘발성 메모리(308)에 존재하고, 반대로 자주 접근되지 않는 페이지가 DRAM(307)에 있는 경우에, 평균 메인 메모리(306) 접근 속도가 떨어지게 된다. 따라서, 페이지 폴트 핸들러(302)에서 페이지 폴트를 처리 하는 과정에서, DRAM(307)과 비휘발성 메모리(308)의 메모리 페이지들 중 페이지 접근 빈도수의 차이가 많은 페이지들의 경우에, 메모리 페이지 교환 모듈(310)을 통해 메모리 페이지를 교환하여 준다. 이를 통해 자주 접근 되는 페이지는, DRAM(307)에서 접근되기 때문에, 결과적인 평균 메인 메모리(307) 접근성능이 증가하는 효과를 가져오게 된다. 그러 나, DRAM(307)과 비휘발성 메모리(308)사이의 페이지 교환은, 페이지 단위의 데이터 카피(data copy)를 필요로 하기 때문에, 페이지 교환이 너무 자주 이루어지는 경우 오히려 페이지 교환 오버헤드로 인하여 평균 메모리 접근 성능이 떨어질 수 있다. Also, if pages frequently accessed in hybrid main memory 306 are present in non-volatile memory 308 with slow access, and conversely, pages that are not frequently accessed are in DRAM 307, average main memory 306 Approach speed will slow down. Therefore, in the process of processing the page fault in the page fault handler 302, in the case of pages with a large difference in page access frequency among the memory pages of the DRAM 307 and the nonvolatile memory 308, the memory page swap module ( The memory page is exchanged through 310. As a result, the frequently accessed pages are accessed in the DRAM 307, resulting in an increase in the average performance of the main memory 307. However, page exchanges between DRAM 307 and non-volatile memory 308 require page-by-page data copies, so if page exchanges occur too often, they are averaged due to page exchange overhead. Memory access performance may be degraded.

따라서, 본 발명에서는 과거에 교환된 메모리 페이지 숫자를 피드백 받아서 메모리 페이지 교환 주기를 조절함으로써, 페이지 교환이 많이 필요한 경우에는 자주 페이지 교환을 수행한다. 또한, 반대의 경우에는 페이지 교환 횟수를 줄임으로써, 필요한 경우에만 최적 페이지 교환을 수행하도록 한다. 그리고, 페이지 교환 이후에는, 교환된 페이지들에 대해서 페이지 테이블(301)상의 맵핑 정보도 교환해 줌으로써, 사용자 프로세스가 추후 필요한 메모리 페이지를 접근하는 경우에도 교환된 페이지를 접근할 수 있도록 한다. Therefore, in the present invention, the memory page exchange period is adjusted by receiving feedback of the number of memory pages exchanged in the past, so that page exchange is frequently performed when many page exchanges are necessary. In the opposite case, the number of page exchanges is reduced, so that only optimal page exchanges are performed when necessary. After the page exchange, the exchanged pages are also exchanged with mapping information on the page table 301 so that the exchanged page can be accessed even if the user process needs to access a memory page later.

도 4는 본 발명의 다른 실시예에 따른 메모리 관리방법의 순서를 나타내는 순서도이다.4 is a flowchart illustrating a procedure of a memory management method according to another embodiment of the present invention.

도 4에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 하이브리드 메모리 관리모듈은, 우선 메모리 페이지 접근이 있을 경우에 접근하고자 하는 물리 메모리가 현재 할당되어 있는지 확인한다(401). As shown in FIG. 4, the hybrid memory management module according to another embodiment of the present invention first checks whether a physical memory to be accessed is currently allocated when there is a memory page access (401).

이때, 현재 할당되지 않은 메모리 접근에 대해서는 자연히 페이지 폴트가 발생하게 되고(405), 메모리 페이지 할당 모듈에 의하여 DRAM과 비휘발성 메모리 중 선택적으로 할당한다(406). At this time, a page fault naturally occurs for the memory access that is not currently allocated (405), and selectively allocated between DRAM and nonvolatile memory by the memory page allocation module (406).

또한, 접근 페이지가 이미 할당되어 있는 경우에는, 페이지 접근 정보 수집 을 위한 주기를 체크한다(402). 이때, 페이지 접근 정보 수집이 필요한 경우에는 강제 페이지 폴트를 생성하여(403), 페이지 폴트를 강제로 발생 시킨다(404). 그런 다음, DRAM과 비휘발성 메모리 페이지에 대한 접근 정보를 수집한다(407). 수집된 정보를 바탕으로 DRAM 또는 비휘발성 메모리에 사용되지 않는 페이지 숫자가 많거나, 남아있는 프리 페이지 숫자가 적은 경우(410), 메모리 페이지 회수를 수행한다(409). 그런 다음, 회수된 DRAM 메모리가 존재하면(408), 이를 통하여 현재 자주 접근되는 비휘발성 메모리 상의 페이지를 DRAM으로 이동시킨다(411). In addition, if the access page has already been allocated, the period for collecting page access information is checked (402). In this case, when collection of page access information is required, a forced page fault is generated (403), and a page fault is forcibly generated (404). Then, access information for DRAM and nonvolatile memory pages is collected (407). On the basis of the collected information, if the number of pages not used in the DRAM or nonvolatile memory is large or the number of free pages remaining is small (410), memory page retrieval is performed (409). Then, if there is a recovered DRAM memory (408), it moves the page on the currently frequently accessed non-volatile memory to the DRAM (411).

반면에, 메모리 회수가 필요없는 경우에는, DRAM과 비휘발성 메모리의 접근 숫자를 비교하여 접근 숫자의 차이가 크면(413), 즉 DRAM에 있는 메모리 페이지보다 비휘발성 메모리에 있는 페이지가 더 자주 접근 되는 경우, DRAM과 비휘발성 메모리 사이의 메모리 페이지를 교환한다(412).On the other hand, when memory reclamation is not needed, if the access numbers of the DRAM and the nonvolatile memory are compared and the difference in access numbers is large (413), that is, the pages in the nonvolatile memory are accessed more frequently than the memory pages in the DRAM. In operation 412, memory pages between the DRAM and the nonvolatile memory are exchanged.

메모리 페이지의 이동이나 메모리 페이지간의 교환이 이루어진 경우에는, 교환 및 이동이 이루어진 메모리 페이지의 숫자를 피드백하여 메모리 페이지 교환 주기를 조절한다(415). 또한, 메모리 페이지 할당, 회수 및 교환이 일어난 경우에는, 페이지 테이블의 페이지 맵핑 정보를 갱신하고(414), 모든 페이지를 접근 할 때마다, 페이지 접근 정보를 갱신한다(416). 그런 다음, 추후 페이지 접근 정보를 수집함으로써, 페이지 회수 및 교환이 가능하도록 한다.When the memory page is shifted or exchanged between the memory pages, the memory page exchange cycle is adjusted by feeding back the number of memory pages exchanged and moved (step 415). In addition, when memory page allocation, retrieval, and exchange have occurred, the page mapping information of the page table is updated (414), and the page access information is updated (416) every time all pages are accessed. Then, later page access information is collected to enable page retrieval and exchange.

상기와 같은 본 발명에 따른 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법에 따르면, DRAM과 비휘발성 메모리를 동일한 메모리 인터페이스로 연결하고, 프로세서의 메인 메모리 물리 주소에 맵핑하여 프 로세서가 DRAM과 비휘발성 메모리를 직접 접근할 수 있다. 또한, 본 발명에 의하면, 메모리 회로 상에서 메모리 페이지를 DRAM과 비휘발성 메모리의 특성에 맞도록 할당, 회수, 교환하여 메모리 접근 성능을 최적화할 수 있고, 메모리 접근 성능을 최적화하는 것에 의하여, 컴퓨터 시스템의 대용량 메인 메모리를 구현할 수 있다.According to the memory circuit and the method of accessing the memory circuit, the memory management system and the memory management method according to the present invention as described above, the DRAM and the nonvolatile memory is connected to the same memory interface, the processor is mapped to the main memory physical address of the processor Directly access DRAM and nonvolatile memory. In addition, according to the present invention, memory pages can be allocated, retrieved, and exchanged on memory circuits to match the characteristics of DRAM and nonvolatile memory, thereby optimizing memory access performance, and optimizing memory access performance. Large main memory can be implemented.

또한, 본 발명에 따르면, DRAM과 비휘발성 메모리로 구성된 하이브리드 메모리 구조를 통하여 DRAM과 비휘발성 메모리를 동시에 사용하는 대용량 메모리를 구성할 수 있어 메인 메모리의 모자람에 전체 컴퓨터 시스템의 성능 저하를 막을 수 있고, DRAM 하이브리드 메모리 관리방법을 통하여 자주 접근되는 페이지를 속도가 빠른 DRAM을 통하여 접근할 수 있게 하기 때문에, 같은 용량의 DRAM만으로 이루어진 시스템과 견주어 비슷한 성능을 보장하면서도 메인 메모리 구축 비용 및 메인 메모리 전력 소비 면에서 이득을 얻을 수 있다.In addition, according to the present invention, it is possible to configure a large-capacity memory using both DRAM and non-volatile memory through a hybrid memory structure consisting of DRAM and non-volatile memory to prevent performance degradation of the entire computer system in the absence of main memory. In addition, the DRAM hybrid memory management method allows frequently accessed pages to be accessed through fast DRAMs, which guarantees comparable performance compared to a system with only DRAM of the same capacity, while maintaining main memory construction cost and main memory power consumption. You can benefit from

이와 같이, 상술한 본 발명의 기술적 구성은 본 발명이 속하는 기술분야의 당업자가 본 발명의 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.As such, the technical configuration of the present invention described above can be understood by those skilled in the art that the present invention can be implemented in other specific forms without changing the technical spirit or essential features of the present invention.

그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타나며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Therefore, the exemplary embodiments described above are to be understood as illustrative and not restrictive in all respects, and the scope of the present invention is indicated by the following claims rather than the detailed description, and the meaning and scope of the claims and their All changes or modifications derived from equivalent concepts should be construed as being included in the scope of the present invention.

도 1은 본 발명의 일 실시예에 따른 하이브리드 메모리 회로의 구성을 나타내는 블록도.1 is a block diagram showing a configuration of a hybrid memory circuit according to an embodiment of the present invention.

도 2는 본 발명의 다른 실시예에 따른 메모리 관리 시스템의 구조를 나타내는 도면.2 is a diagram illustrating a structure of a memory management system according to another embodiment of the present invention.

도 3은 본 발명의 다른 실시예에 따른 하이브리드 메모리 관리모듈의 구조를 나타내는 도면. 3 is a diagram illustrating a structure of a hybrid memory management module according to another embodiment of the present invention.

도 4는 본 발명의 다른 실시예에 따른 메모리 관리방법의 순서를 나타내는 순서도.4 is a flowchart illustrating a procedure of a memory management method according to another embodiment of the present invention.

Claims (9)

DRAM;DRAM; 비휘발성 메모리; 및Nonvolatile memory; And 상기 DRAM 및 상기 비휘발성 메모리와 프로세서 사이에 연결되어, 상기 프로세서가 상기 DRAM 및 상기 비휘발성 메모리에 동일한 방식으로 엑세스하도록 구성된 공유 메모리 인터페이스;A shared memory interface coupled between the DRAM and the nonvolatile memory and a processor, the processor configured to access the DRAM and the nonvolatile memory in the same manner; 를 포함하고,Including, 상기 프로세서는, 상기 DRAM 및 상기 비휘발성 메모리를 각각 다른 물리 메모리 주소에 매핑하여 상기 DRAM 및 상기 비휘발성 메모리로의 엑세스를 조절할 수 있는, The processor may control access to the DRAM and the nonvolatile memory by mapping the DRAM and the nonvolatile memory to different physical memory addresses, respectively. 메모리 회로.Memory circuits. 삭제delete DRAM 및 비휘발성 메모리를 동일한 공유 메모리 인터페이스를 통하여 프로세서와 연결하고, 상기 프로세서가 상기 DRAM 및 상기 비휘발성 메모리를 각각 다른 물리 메모리 주소에 매핑하는 단계; 및Coupling a DRAM and a nonvolatile memory with a processor through the same shared memory interface, wherein the processor maps the DRAM and the nonvolatile memory to different physical memory addresses; And 상기 프로세서가 상기 공유 메모리 인터페이스를 통하여 상기 물리 메모리 주소를 선택하여 상기 DRAM 또는 상기 비휘발성 메모리로의 엑세스를 조절하는 단 계;The processor selecting the physical memory address through the shared memory interface to regulate access to the DRAM or nonvolatile memory; 를 포함하는, 메모리 회로의 엑세스 방법.Comprising a; a method of accessing a memory circuit. 복수의 프로세스를 포함하는 사용자 프로세스가 DRAM 및 비휘발성 메모리를 포함하는 메인 메모리로의 엑세스되도록 운영제어부를 통하여 조절되는 메모리 관리 시스템으로서,A memory management system in which a user process including a plurality of processes is controlled through an operation control unit to access a main memory including a DRAM and a nonvolatile memory. 상기 운영 제어부는,The operation control unit, 상기 복수의 프로세스에 각각 대응되는 가상 메모리 부;A virtual memory unit corresponding to each of the plurality of processes; 상기 복수의 프로세스가 상기 가상 메모리 부에 접근하는 때, 가상 메모리 주소를 상기 메인 메모리의 물리 페이지로 매핑하는 페이지 테이블; 및A page table for mapping a virtual memory address to a physical page of the main memory when the plurality of processes access the virtual memory unit; And 상기 DRAM 및 상기 비휘발성 메모리에 따라 메모리 페이지를 할당, 회수, 이동시키며, 이를 통해 상기 페이지 테이블을 변경하여 상기 사용자 프로세스가 상기 DRAM 및 상기 비휘발성 메모리 중 어느 하나를 결정하도록 제어하는 하이브리드 메모리 관리모듈;A hybrid memory management module for allocating, retrieving, and moving memory pages according to the DRAM and the nonvolatile memory, and changing the page table to control the user process to determine one of the DRAM and the nonvolatile memory. ; 을 포함하는, / RTI > 메모리 관리 시스템.Memory management system. 제4항에 있어서,5. The method of claim 4, 상기 하이브리드 메모리 관리모듈은,The hybrid memory management module, 상기 DRAM 및 상기 비휘발성 메모리에 대한 접근정보를 수집하고, 상기 메인 메모리로의 메모리 페이지를 회수, 교환시키고, 상기 메모리 페이지의 위치에 따라 상기 페이지 정보 테이블 정보를 변경하고, 유지시키는 강제 페이지 폴트 핸들러;A forced page fault handler that collects access information about the DRAM and the nonvolatile memory, retrieves and exchanges memory pages to the main memory, and changes and maintains the page information table information according to the location of the memory pages. ; 상기 DRAM 및 상기 비휘발성 메모리에 소정시간동안 메모리 접근정보가 수집되지 않은 때, 주기적으로 메모리 접근정보를 수집하도록 제어하는 강제 페이지 폴트 생성기; 및A forced page fault generator which controls to periodically collect memory access information when the memory access information is not collected in the DRAM and the nonvolatile memory for a predetermined time; And 새로운 상기 DRAM 및 상기 비휘발성 메모리를 사용하고자 하는 때, 현재 사용되고 있지 않은 프리 페이지가 할당되도록 제어하는 메모리 페이지 할당 모듈;A memory page allocation module that controls when a new DRAM and the nonvolatile memory are to be used, a free page that is not currently being used is allocated; 을 포함하는, 메모리 관리 시스템.Including, a memory management system. 제5항에 있어서,The method of claim 5, 상기 강제 페이지 폴트 핸들러는, The forced page fault handler is 상기 DRAM 및 상기 비휘발성 메모리에 잘못 접근하여 페이지 폴트가 발생하는 때, 이전 페이지 폴트로부터 현재까지 접근한 메모리 페이지 정보를 수집하는 메모리 접근 정보 수집 모듈;A memory access information collection module for collecting memory page information accessed from a previous page fault to the present when a page fault occurs due to an erroneous access to the DRAM and the nonvolatile memory; 상기 DRAM 및 상기 비휘발성 메모리에 남아있는 프리 페이지가 부족한 경우에, 상기 DRAM 및 상기 비휘발성 메모리의 사용되지 않은 메모리 페이지를 회수하는 하이브리드 메모리 페이지 회수 모듈; 및A hybrid memory page retrieval module for reclaiming unused memory pages of the DRAM and the nonvolatile memory when the free pages remaining in the DRAM and the nonvolatile memory are insufficient; And 상기 DRAM 및 상기 비휘발성 메모리의 페이지들 중 페이지 접근 빈도수의 차이가 많은 페이지들의 경우 메모리 페이지를 교환하는 하이브리드 메모리 페이지 교환 모듈;A hybrid memory page exchange module for exchanging memory pages in a case of pages having a large difference in page access frequency among pages of the DRAM and the nonvolatile memory; 을 포함하는, 메모리 관리 시스템.Including, a memory management system. 복수의 프로세스를 포함하는 사용자 프로세스가 DRAM 및 비휘발성 메모리를 포함하는 메인 메모리로 엑세스되도록 운영제어부를 통하여 조절되는 메모리 관리방법으로서,A memory management method in which a user process including a plurality of processes is controlled through an operation controller to access a main memory including a DRAM and a nonvolatile memory. (a) 상기 사용자 프로세스로부터 상기 DRAM 및 상기 비휘발성 메모리 페이지 접근이 있을 경우, 먼저 접근 하고자 하는 메모리 페이지가 현재 할당되어 있는지 확인하는 단계;(a) if there is access to the DRAM and the nonvolatile memory page from the user process, first checking whether a memory page to be accessed is currently allocated; (b) 상기 메모리 페이지가 이미 할당되어 있는 경우에는 상기 메모리 페이지 접근 정보 수집을 위한 주기를 체크하여, 상기 메모리 페이지 접근 정보 수집이 필요한 경우에는 강제 페이지 폴트를 생성하여 페이지 폴트를 강제로 발생시키는 단계;(b) checking the period for collecting the memory page access information when the memory page is already allocated, and forcibly generating a page fault by generating a forced page fault when the memory page access information collection is necessary; ; (c) 상기 DRAM 및 상기 비휘발성 메모리 페이지에 대한 접근 정보를 수집하고, 그 수집된 정보를 바탕으로 상기 DRAM 또는 상기 비휘발성 메모리에 사용되지 않는 페이지 숫자가 많거나 남아 있는 프리 페이지 숫자가 적은 경우에, 메모리 페이지 회수를 수행하는 단계;(c) collecting access information about the DRAM and the nonvolatile memory page, and based on the collected information, the number of unused pages or the number of free pages remaining in the DRAM or the nonvolatile memory is small. Performing memory page retrieval; (d) 상기 회수된 DRAM이 존재하면, 상기 DRAM을 이용하여 현재 자주 접근되는 비휘발성 메모리 상의 페이지를 상기 DRAM으로 이동시키는 단계;(d) if the recovered DRAM is present, moving pages on nonvolatile memory that are currently frequently accessed using the DRAM to the DRAM; (e) 상기 메모리 페이지의 이동이나 상기 메모리 페이지간의 교환이 이루어진 경우 교환 및 이동이 이루어진 메모리 페이지의 숫자를 피드백 하여 메모리 페 이지 교환 주기를 조절하는 단계; 및(e) adjusting a memory page exchange cycle by feeding back the number of memory pages exchanged and moved when the memory page is moved or the memory page is exchanged; And (f) 상기 메모리 페이지의 할당, 회수 및 교환이 일어난 경우에는 페이지 테이블의 페이지 맵핑 정보를 갱신하고, 페이지 접근 시마다 페이지 접근 정보를 갱신하여 페이지 회수 및 교환이 가능하도록 추후 페이지 접근 정보를 수집하는 단계;(f) when the allocation, retrieval, and exchange of memory pages have occurred, updating page mapping information of a page table, and collecting page access information at a later time to enable page retrieval and exchange by updating page access information for each page access. ; 를 포함하는, 메모리 관리방법.Including, the memory management method. 제7항에 있어서,The method of claim 7, wherein 상기 (b) 단계는, 현재 할당되지 않은 메모리 접근에 대해서는 자연히 페이지 폴트가 발생하게 되고, 상기 DRAM과 비휘발성 메모리 중 선택 적으로 할당하는 단계를 더 포함하는,In the step (b), a page fault is naturally generated for a memory access that is not currently allocated, and further includes selectively allocating one of the DRAM and the nonvolatile memory. 메모리 관리방법.Memory management method. 제7항에 있어서,The method of claim 7, wherein 상기 (c) 단계는, In step (c), 메모리 회수가 필요 없는 경우에, 상기 DRAM과 상기 비휘발성 메모리의 접근 숫자를 비교하여 접근 숫자의 차이가 크면, 상기 DRAM 및 상기 비휘발성 메모리 사이의 메모리 페이지를 교환하는,When the number of times of memory is not necessary, the number of accesses of the DRAM and the nonvolatile memory are compared, and if a difference in the number of accesses is large, the memory pages between the DRAM and the nonvolatile memory are exchanged. 메모리 관리방법.Memory management method.
KR1020090060371A 2009-07-02 2009-07-02 Memory circuit and memory circuit access method, memory management system and memory management method KR101061483B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090060371A KR101061483B1 (en) 2009-07-02 2009-07-02 Memory circuit and memory circuit access method, memory management system and memory management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090060371A KR101061483B1 (en) 2009-07-02 2009-07-02 Memory circuit and memory circuit access method, memory management system and memory management method

Publications (2)

Publication Number Publication Date
KR20110002742A KR20110002742A (en) 2011-01-10
KR101061483B1 true KR101061483B1 (en) 2011-09-02

Family

ID=43610906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090060371A KR101061483B1 (en) 2009-07-02 2009-07-02 Memory circuit and memory circuit access method, memory management system and memory management method

Country Status (1)

Country Link
KR (1) KR101061483B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454496B2 (en) 2013-03-14 2016-09-27 Samsung Electronics Co., Ltd. Memory system
US9740630B2 (en) 2014-02-11 2017-08-22 Samsung Electronics Co., Ltd. Method of mapping address in storage device, method of reading data from storage devices and method of writing data into storage devices

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101420963B1 (en) * 2013-01-15 2014-07-17 홍익대학교 산학협력단 Computing system and method
CN103092534B (en) * 2013-02-04 2016-01-27 中国科学院微电子研究所 A kind of dispatching method of internal storage structure and device
US11436025B2 (en) * 2020-07-09 2022-09-06 Numem Inc. Smart compute resistive memory
US11443802B2 (en) 2020-07-09 2022-09-13 Numem Inc. Adaptive memory management and control circuitry
CN112363957A (en) * 2020-11-20 2021-02-12 中国科学院微电子研究所 Mixed storage-level memory and wear leveling method thereof
US20220382478A1 (en) * 2021-06-01 2022-12-01 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for page migration in memory systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454496B2 (en) 2013-03-14 2016-09-27 Samsung Electronics Co., Ltd. Memory system
US9740630B2 (en) 2014-02-11 2017-08-22 Samsung Electronics Co., Ltd. Method of mapping address in storage device, method of reading data from storage devices and method of writing data into storage devices

Also Published As

Publication number Publication date
KR20110002742A (en) 2011-01-10

Similar Documents

Publication Publication Date Title
KR101061483B1 (en) Memory circuit and memory circuit access method, memory management system and memory management method
US11748256B2 (en) Memory system and method for controlling nonvolatile memory
KR101465789B1 (en) Write and merge methods in memory card systems for reducing the number of page copies
US11797436B2 (en) Memory system and method for controlling nonvolatile memory
CN105677578B (en) A kind of control method and control system of 3D flash memories
TW201729105A (en) Method and apparatus for providing hybrid mode to access SSD drive
US11237756B2 (en) System and method of writing to nonvolatile memory using write buffers
US10402338B2 (en) Method and apparatus for erase block granularity eviction in host based caching
KR20140003892A (en) Method for managing non-volatile memory device, and non-volatile memory device
JP7353934B2 (en) Memory system and control method
WO2015053966A9 (en) Memory system with shared file system
KR20160105624A (en) Data processing system and operating method thereof
JP2021033848A (en) Memory system and control method
KR101190001B1 (en) Virtual memory system for supporting file system access in non-volatile main memory
CN116364148A (en) Wear balancing method and system for distributed full flash memory system
US20130138910A1 (en) Information Processing Apparatus and Write Control Method
CN116795735B (en) Solid state disk space allocation method, device, medium and system
US20230333779A1 (en) Memory system with controller to write data to memory based on lifetime information in write command
KR100780963B1 (en) Memory card and driving method thereof
US11698739B2 (en) Memory system and operating method thereof
JP7167295B2 (en) Memory system and control method
TWI724550B (en) Data storage device and non-volatile memory control method
JP2022179798A (en) Memory system and control method
Seo et al. Efficient Page Collection Scheme for QLC NAND Flash Memory using Cache
JP2020042627A (en) Information processing apparatus, memory control method, and program

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee