KR20090131142A - Apparatus and method for memory management - Google Patents

Apparatus and method for memory management Download PDF

Info

Publication number
KR20090131142A
KR20090131142A KR1020080056970A KR20080056970A KR20090131142A KR 20090131142 A KR20090131142 A KR 20090131142A KR 1020080056970 A KR1020080056970 A KR 1020080056970A KR 20080056970 A KR20080056970 A KR 20080056970A KR 20090131142 A KR20090131142 A KR 20090131142A
Authority
KR
South Korea
Prior art keywords
request
allocation
memory
space
memory device
Prior art date
Application number
KR1020080056970A
Other languages
Korean (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 KR1020080056970A priority Critical patent/KR20090131142A/en
Publication of KR20090131142A publication Critical patent/KR20090131142A/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: A memory management device and a method thereof are provided to realize a memory manager and a file system, which can manage an integrated memory for performing all functions of a storage unit and an RAM. CONSTITUTION: A memory device comprises as follows. If a program demands allocation of a memory area, an allocation size determination module(610) determines allocation size of the memory area, based on feature of the demand. An allocation module(620) assigns a space corresponding to the determined size. A meta data management module(630) manages meta data for the allocated space. Even though power supply is intercepted, the memory device prevents data loss as a storage class RAM.

Description

메모리 관리 장치 및 방법 {APPARATUS AND METHOD FOR MEMORY MANAGEMENT}Memory Management Device and Method {APPARATUS AND METHOD FOR MEMORY MANAGEMENT}

메모리 관리 장치 및 방법에 관한 것으로서, 스토리지 클래스 램(Storage Class RAM)에 최적화된 파일 시스템을 이용하는 메모리 관리 장치 및 방법에 관한 것이다.The present invention relates to a memory management apparatus and method, and more particularly, to a memory management apparatus and method using a file system optimized for storage class RAM.

본 연구는 지식경제부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행하였다. [2006-S-040-03, Flash Memory 기반 임베디드 멀티미디어 소프트웨어 기술 개발]This study was conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy and ICT R & D. [2006-S-040-03, Development of Embedded Memory Software Technology based on Flash Memory]

컴퓨터 시스템의 성능 향상을 위해 지난 수십 년간 진행된 수많은 연구의 결과로 컴퓨터 시스템의 메모리는 계층 구조(Memory Hierarchy)를 채택하고 있다. 계층 구조에 포함되는 다양한 종류의 메모리 장치들은 메모리 장치들 각각이 가지고 있는 특성에 기초하여 최소의 비용을 통해 최적화되어 사용되고 있다. 컴퓨터 시스템은 최적화된 다양한 종류의 메모리 장치들을 이용하여 최적의 시스템 성능을 얻을 수 있다.As a result of numerous studies conducted over the past decades to improve the performance of computer systems, the memory of computer systems employs a memory hierarchy. Various types of memory devices included in the hierarchical structure are optimized and used at a minimum cost based on characteristics of each of the memory devices. Computer systems can achieve optimal system performance using various types of memory devices that have been optimized.

종래 컴퓨터 시스템의 메모리 계층 구조에 포함되는 메모리 장치는 접근 단위와 휘발성/비휘발성(volatility/non-volatility)에 따라 크게 둘로 구분할 수 있 다. 첫째는 일반적으로 램(RAM, Random Access Memory)이라 불리는 메모리로써 바이트(Byte) 단위로 접근 가능(accessible)하며 접근 속도가 빠르고 휘발성을 가진다. 휘발성은 공급되는 전원이 차단되면 메모리에 저장된 내용을 유실하는 특성을 의미한다.Memory devices included in the memory hierarchy of a conventional computer system may be classified into two types according to access units and volatility / non-volatility. The first is a memory, commonly called random access memory (RAM), which is accessible in byte units, has fast access speed, and is volatile. Volatile means that the data stored in the memory is lost when the power supply is cut off.

RAM에 포함되는 메모리 장치의 예로는 캐시(cache)로 이용될 수 있는 SRAM(Static Random Access Memory), 또는 메인 메모리(main memory)로 이용될 수 있는 DRAM(Dynamic Random Access Memory) 등이 있다. DRAM의 예로는 최근 Synchronous DRAM(SDRAM), Double Data Rate SDRAM(DDR SDRAM) 등이 이용되고 있다.Examples of memory devices included in RAM include static random access memory (SRAM) that can be used as a cache, or dynamic random access memory (DRAM) that can be used as a main memory. Recently, examples of DRAM include synchronous DRAM (SDRAM) and double data rate SDRAM (DDR SDRAM).

두 번째는 스토리지(Storage)로 불리는 메모리 장치로서 블록 단위로 접근 가능하며(accessible) 비교적 접근 속도가 느리고 비휘발성을 가진다. 비휘발성은 공급되는 전원이 차단되어도 메모리에 저장된 내용을 유실하지 않는 특성을 의미한다. 하드 디스크 드라이브(Hard Disk Drive, HDD) 또는 플래시 메모리(Flash memory)등이 이에 속한다. HDD 또는 플래시 메모리는 보조 스토리지(Second Storage)로 자주 이용될 수 있다.The second is a memory device called storage, which is accessible on a block-by-block basis and is relatively slow and nonvolatile. Non-volatile means that the contents stored in the memory are not lost even if the power supply is cut off. This may be a hard disk drive (HDD) or flash memory. HDD or flash memory may be frequently used as secondary storage.

최근에는 RAM의 특성 - 바이트 단위로 접근 가능(accessible)하고 접근 속도가 빠름 - 및 스토리지의 특성 - 비휘발성 - 을 가지는 스토리지 클래스 램(Storage Class RAM)이 차세대 메모리로써 각광받고 있다. 스토리지 클래스 램의 예로는 FRAM(Ferro-electric RAM), MRAM(Magneto-resistive RAM), 및 PRAM(Phase-change RAM)등이 있다.Recently, Storage Class RAM, which has the characteristics of RAM—accessible by byte, fast access speed—and the characteristics of storage—nonvolatile, has been spotlighted as the next generation memory. Examples of storage class RAM include ferro-electric RAM (FRAM), magneto-resistive RAM (MRAM), and phase-change RAM (PRAM).

본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, RAM과 스토리지의 기능을 모두 수행하는 통합 메모리(스토리지)를 관리할 수 있는 파일 시스템 및 메모리 관리자를 제공하는 것을 목적으로 한다.Disclosure of Invention The present invention has been made to solve the problems of the prior art as described above, and an object thereof is to provide a file system and a memory manager capable of managing an integrated memory (storage) that performs both RAM and storage functions. .

본 발명은 사용자에게 영속적인(permanent) 컴퓨팅 환경을 제공하는 것을 목적으로 한다.The present invention aims to provide a permanent computing environment for a user.

본 발명은 메모리 장치의 공간을 낭비하지 않고 다양한 종류의 오브젝트를 관리하는 파일 시스템을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a file system for managing various kinds of objects without wasting space in the memory device.

본 발명은 메모리 계층 구조(memory hierarchy)에 의한 오버헤드를 제거하는 메모리 관리자 및 파일 시스템을 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a memory manager and file system that eliminates the overhead caused by a memory hierarchy.

본 발명은 통합 메모리를 이용하여 부팅 시간을 단축하는 것을 목적으로 한다.An object of the present invention is to shorten the boot time by using the integrated memory.

상기의 목적을 달성하고 종래 기술의 문제점을 해결하기 위하여, 본 발명의 일 실시예에 따른 메모리 관리 장치는 프로그램이 메모리 영역의 할당을 요청하면 상기 요청의 특성에 기초하여 상기 메모리 영역의 할당 크기를 결정하는 할당 크기 결정 모듈, 메모리 장치의 공간 중 상기 결정된 크기에 대응하는 공간을 상기 요청에 할당하는 할당 모듈, 및 상기 요청에 할당된 공간에 대한 메타 데이터를 관리하는 메타 데이터 관리 모듈을 포함할 수 있다.In order to achieve the above object and solve the problems of the prior art, the memory management apparatus according to an embodiment of the present invention is to allocate the size of the memory area based on the characteristics of the request when a program requests allocation of the memory area; An allocation size determining module for determining, an allocation module for allocating a space corresponding to the determined size among spaces of a memory device to the request, and a metadata management module managing metadata for the space allocated to the request. have.

또한, 본 발명의 다른 실시예에 따른 메모리 관리 방법은 프로그램으로부터 메모리 영역의 할당의 요청을 입력 받는 단계, 상기 요청의 특성에 기초하여 상기 메모리 영역의 할당 크기를 결정하는 단계, 메모리 장치의 공간 중 상기 결정된 크기에 대응하는 공간을 상기 요청에 할당하는 단계, 및 상기 요청에 할당된 공간에 대한 메타 데이터를 관리하는 단계를 포함할 수 있다.In addition, the memory management method according to another embodiment of the present invention, the step of receiving a request for allocation of a memory area from a program, determining the allocation size of the memory area based on the characteristics of the request, the space of the memory device The method may include allocating a space corresponding to the determined size to the request, and managing metadata about the space allocated to the request.

본 발명에 따르면 RAM과 스토리지의 기능을 모두 수행하는 통합 메모리(스토리지)를 관리할 수 있는 파일 시스템 및 메모리 관리자의 구현이 가능하다.According to the present invention, it is possible to implement a file system and a memory manager capable of managing integrated memory (storage) that perform both RAM and storage functions.

본 발명은 사용자에게 영속적인(permanent) 컴퓨팅 환경을 제공할 수 있다.The present invention can provide a user with a persistent computing environment.

본 발명은 메모리 장치의 공간을 낭비하지 않고 다양한 종류의 오브젝트를 관리하는 파일 시스템을 제공할 수 있다.The present invention can provide a file system for managing various kinds of objects without wasting space in the memory device.

본 발명은 메모리 계층 구조(memory hierarchy)에 의한 오버헤드를 제거하는 메모리 관리자 및 파일 시스템을 제공할 수 있다.The present invention can provide a memory manager and file system that eliminates the overhead caused by a memory hierarchy.

본 발명은 통합 메모리를 이용하여 부팅 시간을 단축할 수 있다.The present invention can reduce the boot time by using the integrated memory.

이하에서, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in detail. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 도면이다.1 is a diagram illustrating a memory management method according to an embodiment of the present invention.

도 1을 참조하면, 메모리 관리자(110)는 메모리 장치(120)를 메모리 관리 방 법을 이용하여 관리할 수 있다.Referring to FIG. 1, the memory manager 110 may manage the memory device 120 using a memory management method.

메모리 장치(120)는 메모리 계층 구조(memory hierarchy)의 일부일 수도 있으나, 단일 계층을 형성할 수도 있다.The memory device 120 may be part of a memory hierarchy, but may also form a single hierarchy.

프로그램이 malloc 함수(function) 또는 kmalloc 함수를 호출하면, 메모리 관리자(110)는 호출된 malloc 함수 또는 kmalloc 함수에 대응하는 동적 할당 객체(Dynamic Allocate Object)(121)를 메모리 장치(120) 내에 생성할 수 있다.When the program calls the malloc function or the kmalloc function, the memory manager 110 generates a dynamic allocate object 121 in the memory device 120 corresponding to the called malloc function or the kmalloc function. Can be.

프로그램이 create 함수 또는 write 함수를 호출하면, 메모리 관리자(110)는 호출된 create 함수 또는 write 함수에 대응하는 파일 객체(File Object)(122)를 메모리 장치(120) 내에 생성할 수 있다.When the program calls the create function or the write function, the memory manager 110 may create a file object 122 in the memory device 120 corresponding to the called create or write function.

프로그램이 fork 함수를 호출하면, 메모리 관리자(110)는 호출된 fork 함수에 대응하는 프로세스 객체(Process Object)(123)를 메모리 장치(120) 내에 생성할 수 있다.When the program calls the fork function, the memory manager 110 may create a process object 123 corresponding to the called fork function in the memory device 120.

메모리 장치(120)는 종래의 메인 메모리(main memory)에서 처리하던 동적 할당 객체(121) 또는 프로세스 객체(123)를 처리할 수 있고, 종래의 스토리지(storage)에서 처리하던 파일 객체(122)를 처리할 수 있다. 메모리 장치(120)는 종래의 메인 메모리 및 스토리지의 기능을 단일 계층에서 처리함으로써 사용자에게 통합된 컴퓨팅 환경을 제공할 수 있다. 메모리 관리자(110)는 통합된 기능을 수행하는 메모리 장치(120)의 관리에 최적화된 파일 시스템 및 메모리 관리 방법을 제공할 수 있다.The memory device 120 may process the dynamic allocation object 121 or the process object 123 processed in the conventional main memory, and process the file object 122 processed in the conventional storage. Can be processed. The memory device 120 may provide a unified computing environment to a user by processing functions of a conventional main memory and storage in a single layer. The memory manager 110 may provide a file system and a memory management method optimized for management of the memory device 120 performing an integrated function.

메모리 장치(120)의 일 예로는 스토리지 클래스 램(Storage Class RAM, Storage Class Random Access Memory)이 이용될 수 있다. 스토리지 클래스 램은 random accessibility를 제공하며, 비휘발성(non-volatility)도 제공할 수 있다. 메모리 장치(120)가 스토리지 클래스 램인 경우, 공급되는 전원이 차단되어도 메모리 장치(120)에 저장된 데이터 또는 메타 데이터가 유실되지 않으므로 메모리 관리자(110)는 영속적인(permanent) 컴퓨팅 환경을 사용자에게 제공할 수 있다.As an example of the memory device 120, a storage class random access memory (RAM) may be used. Storage class RAM provides random accessibility and can also provide non-volatility. When the memory device 120 is a storage class RAM, data or metadata stored in the memory device 120 are not lost even when the power supply is cut off, so the memory manager 110 may provide a permanent computing environment to the user. Can be.

메모리 관리자(110)는 동적 할당 요청, 프로세스 생성 요청 및 파일 생성 요청에 대응하는 객체(object)들을 메모리 장치(120) 내에 생성하고, 생성된 객체들을 관리할 수 있다. 메모리 관리자(110) 및 메모리 장치(120)를 이용하는 메모리 관리 방법은 컴퓨터 시스템의 상태를 사용(Running) 또는 비사용(Idle) 중 어느 하나로 설정하는 영속적인 컴퓨팅 환경을 제공할 수 있다. 종래의 메모리 관리 방법은 컴퓨터 시스템의 상태를 부팅(Booting), 사용(Running), 또는 종료(Terminating) 중 어느 하나로 설정할 수 있다.The memory manager 110 may create objects corresponding to the dynamic allocation request, the process creation request, and the file creation request in the memory device 120, and manage the created objects. The memory management method using the memory manager 110 and the memory device 120 may provide a persistent computing environment in which the state of the computer system is set to either running or idle. Conventional memory management methods may set the state of the computer system to either booting, running, or terminating.

메모리 관리자(110)는 생성된 객체의 지속 시간(lifetime), 속성(attribute), 및/또는 블록의 크기에 관계 없이 메모리 장치(120)의 공간을 할당할 수 있는 메모리 관리 방법을 제공할 수 있다. 메모리 관리 방법은 가변 속성 및 가변 블록 크기 등의 특성을 가지는 객체를 할당할 수 있도록 설계될 수 있다.The memory manager 110 may provide a memory management method capable of allocating space of the memory device 120 regardless of a lifetime, an attribute, and / or a block size of the created object. . The memory management method may be designed to allocate an object having characteristics such as a variable attribute and a variable block size.

메모리 관리 방법은 운영 체제(Operating System, OS)의 최소 할당 단위의 크기를 가지는 객체를 할당할 수 있고, 파일 시스템의 블록 단위의 크기 또는 그 이상의 크기를 가지는 객체를 할당할 수 있다. 메모리 관리 방법은 메모리 장치(120)의 공간을 낭비하지 않고 객체를 할당할 수 있고, 부가적인 오버헤 드(overhead) 없이 객체 간의 속성을 변경할 수 있다.The memory management method may allocate an object having a size of a minimum allocation unit of an operating system (OS), and allocate an object having a size of a block unit of the file system or more. The memory management method may allocate an object without wasting space of the memory device 120, and may change an attribute between objects without additional overhead.

도 2는 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 도면이다.2 is a diagram illustrating a memory management method according to an embodiment of the present invention.

도 2를 참조하면 메모리 관리자(210)는 메모리 장치(220)를 메모리 관리 방법에 의해 관리한다.Referring to FIG. 2, the memory manager 210 manages the memory device 220 by a memory management method.

프로그램이 malloc (N) 함수를 호출하면, 메모리 관리자(210)는 malloc (N) 함수에 대응하는 N Byte의 메모리 공간을 설정할 수 있다. 메모리 관리자(210)는 상기 설정된 N Byte의 메모리 공간을 이용하여 동적 할당 객체(Dynamic Allocate Object) (221)를 메모리 장치(220) 내에 생성할 수 있다.When the program calls the malloc (N) function, the memory manager 210 may set an N byte memory space corresponding to the malloc (N) function. The memory manager 210 may generate a dynamic allocate object 221 in the memory device 220 using the set N-byte memory space.

메모리 관리자(210)는 상기 설정된 N Byte의 메모리 공간에 대한 포인터(pointer)를 반환(return)할 수 있다.The memory manager 210 may return a pointer to the set N-byte memory space.

도 3은 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 도면이다.3 is a diagram illustrating a memory management method according to an embodiment of the present invention.

도 3을 참조하면 메모리 관리자(310)는 메모리 장치(320)를 메모리 관리 방법에 의해 관리한다.Referring to FIG. 3, the memory manager 310 manages the memory device 320 by a memory management method.

메모리 장치(320)는 malloc (N) 함수에 대응하여 생성된 동적 할당 객체(321)를 저장할 수 있다.The memory device 320 may store the dynamic allocation object 321 generated corresponding to the malloc (N) function.

create ("file") 함수는 "file"이라는 이름을 가지는 파일을 생성하는 함수이다. 프로그램이 create ("file") 함수를 호출하면, 메모리 관리자(310)는 create ("file") 함수에 대응하는 메모리 공간을 설정할 수 있다. 메모리 관리자(310)는 상기 설정된 메모리 공간에 대응하는 메타 데이터를 생성하고, 상기 생성된 메타 데이터를 메모리 장치(320)의 공간의 일부를 이용하여 저장할 수 있다. 메모리 관리자(310)는 상기 설정된 메모리 공간을 이용하여 파일 객체(File Object)(322)를 메모리 장치(320) 내에 생성할 수 있다. 메모리 관리자(310)는 생성된 파일 객체(322)에 파일에 대응하는 데이터를 저장할 수 있다.create ("file") is a function that creates a file named "file". When the program calls the create ("file") function, the memory manager 310 may set a memory space corresponding to the create ("file") function. The memory manager 310 may generate metadata corresponding to the set memory space and store the generated metadata by using a part of the space of the memory device 320. The memory manager 310 may create a file object 322 in the memory device 320 using the set memory space. The memory manager 310 may store data corresponding to a file in the generated file object 322.

메모리 관리자(310)는 파일 시스템의 블록 크기에 기초하여 create ("file") 함수에 대응하는 메모리 공간을 설정할 수 있다. 블록 크기는 OS의 최소 할당 단위에 기초하여 결정될 수 있다. 예를 들어 OS의 최소 할당 단위가 32 Byte 인 경우, 블록 크기는 최소 할당 단위의 16배인 512 Byte 일 수 있다.The memory manager 310 may set a memory space corresponding to the create ("file") function based on the block size of the file system. The block size may be determined based on the minimum allocation unit of the OS. For example, if the minimum allocation unit of the OS is 32 bytes, the block size may be 512 bytes, which is 16 times the minimum allocation unit.

도 4는 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 도면이다.4 is a diagram illustrating a memory management method according to an embodiment of the present invention.

도 4를 참조하면 메모리 관리자(410)는 메모리 장치(420)를 메모리 관리 방법에 의해 관리한다.Referring to FIG. 4, the memory manager 410 manages the memory device 420 by a memory management method.

메모리 장치(420)는 malloc (N) 함수에 대응하여 생성된 동적 할당 객체(421) 및 create ("file") 함수에 대응하여 생성된 파일 객체(422)를 저장할 수 있다.The memory device 420 may store a dynamic allocation object 421 generated in response to a malloc (N) function and a file object 422 generated in response to a create ("file") function.

fork 함수는 새로운 사용자 프로세스 또는 태스크(task)를 생성하는 함수이다. 프로그램이 fork 함수를 호출하면, 메모리 관리자(410)는 fork 함수에 대응하는 메모리 공간을 설정할 수 있다. 메모리 관리자(410)는 상기 설정된 메모리 공간을 이용하여 프로세스 객체(Process Object)(423)를 메모리 장치(420) 내에 생성할 수 있다.The fork function is a function that creates a new user process or task. When the program calls the fork function, the memory manager 410 may set a memory space corresponding to the fork function. The memory manager 410 may create a process object 423 in the memory device 420 using the set memory space.

프로세스 객체(423)에 대응하는 사용자 프로세스가 종료되면 메모리 관리자(410)는 프로세스 객체(423)를 free한 상태로 표시하고, 프로그램으로부터 다른 요청이 있을 때 상기 요청에 할당할 수 있다. 이처럼 특정 요청에 할당된 객체를 free한 상태로 표시하는 동작을 해제라고 하기도 한다.When the user process corresponding to the process object 423 is terminated, the memory manager 410 may mark the process object 423 as free and assign it to the request when there is another request from the program. In such a case, an operation of marking an object allocated to a specific request as free is called release.

프로그램이 동적 할당 객체(421)에 대하여 free 함수를 호출하면 메모리 관리자(410)는 동적 할당 객체(421)를 해제할 수 있다. 해제된 객체에 대응하는 공간은 프로그램으로부터 다른 요청이 있을 때 할당될 수 있다.When the program calls the free function on the dynamic allocation object 421, the memory manager 410 may release the dynamic allocation object 421. The space corresponding to the released object can be allocated when there is another request from the program.

메모리 장치(420)가 스토리지 클래스 램이면, 공급되는 전원이 차단되어도 저장된 객체들을 유실하지 않고 유지할 수 있다. 메모리 관리자(410)는 메모리 장치(420)가 재부팅(reboot)된 경우에도 부가적인 초기화(initialize) 과정 없이 메모리 장치(420)에 저장된 객체들을 이용할 수 있다. 메모리 관리 방법은 부팅 시 초기화 과정을 수행할 필요가 없으므로 부팅 시간을 단축할 수 있다.If the memory device 420 is a storage class RAM, the stored objects may be maintained without being lost even when the power supply is cut off. The memory manager 410 may use the objects stored in the memory device 420 without additional initialization even when the memory device 420 is rebooted. The memory management method can reduce boot time since it does not need to perform an initialization process at boot time.

도 5는 본 발명의 일 실시예에 따른 메모리 관리 방법이 수행되는 메모리 장치(500)의 파일 시스템을 도시하는 도면이다.5 is a diagram illustrating a file system of a memory device 500 in which a memory management method is performed, according to an exemplary embodiment.

도 5를 참조하면 블록 0 (510)은 블록 2 내지 7 (530)의 각 블록이 할당된 상태인지 해제된 상태인지 나타내는 정보를 저장할 수 있다.Referring to FIG. 5, block 0 510 may store information indicating whether each block of blocks 2 to 7 530 is in an allocated state or released state.

블록 1 (520)은 블록 2 내지 7 (530)의 각 블록이 저장하는 객체 또는 데이터의 속성(attribute)에 관련된 정보를 저장할 수 있다.Block 1 520 may store information related to an attribute of an object or data stored by each block of blocks 2 to 7 530.

블록 2 내지 7 (530)의 각 블록은 메모리 관리 방법의 할당의 대상이 될 수 있다. 메모리 관리 방법은 블록 2를 "file"이라는 이름을 가지는 파일 객체로 할당할 수 있다.Each block of blocks 2 to 7 530 may be subjected to allocation of a memory management method. The memory management method may allocate block 2 as a file object named "file".

메모리 관리 방법은 할당되는 객체의 특성에 기초하여 할당되는 객체의 공간 의 크기를 결정할 수 있다. 예를 들어 파일 객체의 경우, 메모리 관리 방법은 파일 시스템의 블록 크기에 기초하여 파일 객체의 공간의 크기를 결정할 수 있다. 객체가 동적 할당 객체 또는 프로세스 객체인 경우, 메모리 관리 방법은 OS의 최소 할당 단위에 기초하여 객체의 공간의 크기를 결정할 수 있다.The memory management method may determine the size of the space of the allocated object based on the characteristics of the allocated object. For example, in the case of a file object, the memory management method may determine the size of the space of the file object based on the block size of the file system. If the object is a dynamic allocation object or a process object, the memory management method may determine the size of the space of the object based on the minimum allocation unit of the OS.

사용자가 동적 할당 객체에 대응하는 데이터를 파일로 생성할 것을 요청한 경우, 메모리 관리 방법은 동적 할당 객체의 속성을 파일 객체로 변경함으로써 부가적인 쓰기 동작 없이 파일 객체를 생성할 수 있다. 사용자가 파일 객체에 대응하는 데이터를 동적 할당 객체로 생성할 것을 요청한 경우, 메모리 관리 방법은 파일 객체의 속성을 동적 할당 객체로 변경할 수 있다.When the user requests to generate data corresponding to the dynamic allocation object to a file, the memory management method may create the file object without additional write operation by changing the attribute of the dynamic allocation object to the file object. When the user requests to generate data corresponding to the file object as the dynamic allocation object, the memory management method may change the attributes of the file object to the dynamic allocation object.

메모리 관리 방법은 실행 파일(execution file)의 빠른 수행을 위하여 서로 다른 두 객체들 간의 매핑(mapping)을 수행할 수도 있다. 본 발명의 메모리 관리 방법은 메모리 관리자(memory manager)에 의하여 수행될 수 있으며, 본 명세서에서는 이러한 메모리 관리자를 통합 스토리지 관리자(Unified Storage Manager, USM)라 명명하기로 한다.The memory management method may perform mapping between two different objects in order to quickly execute an execution file. The memory management method of the present invention may be performed by a memory manager. In the present specification, such a memory manager will be referred to as a unified storage manager (USM).

종래의 메모리 계층 구조 및 파일 시스템에서는 실행 파일을 수행하기 위하여 실행 파일의 내용을 메인 메모리로 카피한 뒤, 태스크 또는 프로세스가 메모리에 저장된 내용을 접근할 수 있도록 페이지 테이블을 구축하고, 페이지 테이블을 이용하여 태스크 또는 프로세스를 메모리 공간과 연결하였다.In the conventional memory hierarchy and file system, in order to execute an executable file, the contents of the executable file are copied to main memory, and then a page table is constructed so that a task or a process can access the contents stored in memory. To associate a task or process with a memory space.

본 발명의 USM은 실행 파일의 내용을 태스크 또는 프로세스의 주소 공간으로 직접적으로 연결함으로써 부가적인 복사 동작 등의 오버헤드 없이 실행 파일을 수 행할 수 있다. 이로 인해 USM에 의하면 execution in place(XIP)의 구현이 가능하다. 또한 부팅에 필요한 코드가 메모리 장치(500)의 특정 블록에 저장되어 있으므로 부팅에 필요한 코드의 수행 시간을 단축할 수 있다.The USM of the present invention can execute the executable file without the overhead of additional copying operation by directly connecting the contents of the executable file to the address space of the task or process. This allows USMs to implement execution in place (XIP). In addition, since the code required for booting is stored in a specific block of the memory device 500, the execution time of the code required for booting can be shortened.

종래의 메모리 계층 구조 및 파일 시스템에서는 태스크 또는 프로세스의 내부에서 파일을 접근하는 경우 스토리지로부터 메인 메모리로 파일을 카피하는 동작이 필요하다. 그러나 USM은 부가적인 오버헤드 없이 데이터를 읽거나 쓸 수 있다.Conventional memory hierarchies and file systems require copying files from storage to main memory when accessing files from within a task or process. However, the USM can read or write data without any additional overhead.

종래의 메모리 계층 구조 및 파일 시스템에서는 컴퓨터 시스템을 종료하기 전에 메인 메모리 상의 데이터를 스토리지로 카피하는 동작이 필요하고, 컴퓨터 시스템을 부팅한 후 스토리지의 데이터의 일부를 메인 메모리로 복사(copy)하는 동작이 필요하다. 그러나 USM은 컴퓨터 시스템을 종료하고 부팅하는 과정에 부가적인 오버헤드가 필요하지 않다. 이로 인해 USM은 영속적인 컴퓨팅 환경을 제공할 수 있다.In the conventional memory hierarchy and file system, an operation of copying data on main memory to storage is required before shutting down the computer system, and copying a part of data of the storage to main memory after booting the computer system. This is necessary. However, USM does not require additional overhead to shut down and boot a computer system. This allows USMs to provide a persistent computing environment.

도 6은 본 발명의 일 실시예에 따른 메모리 관리 장치(600)를 도시하는 도면이다.6 is a diagram illustrating a memory management apparatus 600 according to an embodiment of the present invention.

도 6을 참조하면 메모리 관리 장치(600)는 메모리 장치(640)를 관리할 수 있다. 메모리 관리 장치(600)는 할당 크기 결정 모듈(610), 할당 모듈(620) 및 메타 데이터 관리 모듈(630)을 포함한다.Referring to FIG. 6, the memory management device 600 may manage the memory device 640. The memory management apparatus 600 includes an allocation size determination module 610, an allocation module 620, and a metadata management module 630.

할당 크기 결정 모듈(610)은 프로그램이 메모리 영역의 할당을 요청하면 상기 요청의 특성에 기초하여 상기 메모리 영역의 할당 크기를 결정할 수 있다. 할당 크기 결정 모듈(610)은 상기 요청이 파일 생성 요청인지, 동적 할당 요청인지 또는 프로세스 생성 요청인지에 기초하여 상기 메모리 영역의 할당 크기를 결정할 수 있다.The allocation size determining module 610 may determine the allocation size of the memory area based on the characteristics of the request when the program requests the allocation of the memory area. The allocation size determination module 610 may determine an allocation size of the memory area based on whether the request is a file generation request, a dynamic allocation request, or a process creation request.

할당 모듈(620)은 메모리 장치(640)의 공간 중 상기 결정된 크기에 대응하는 공간을 상기 요청에 할당할 수 있다.The allocation module 620 may allocate a space corresponding to the determined size of the space of the memory device 640 to the request.

메타 데이터 관리 모듈(630)은 상기 요청에 할당된 공간에 대한 메타 데이터를 관리할 수 있다.The metadata management module 630 may manage metadata about the space allocated to the request.

메모리 장치(640)는 바이트 단위로 접근 가능하며, 공급되는 전원이 차단되어도 데이터를 유실하지 않는 스토리지 클래스 램일 수 있다.The memory device 640 may be accessed in units of bytes and may be a storage class RAM that does not lose data even when a power supply is cut off.

메타 데이터 관리 모듈(630)은 메모리 장치(640) 상의 공간을 복수의 블록들로 분할하고, 상기 복수의 블록들 각각에 대한 할당 또는 해제를 표시하는 메타 데이터를 생성할 수 있다.The metadata management module 630 may divide the space on the memory device 640 into a plurality of blocks and generate metadata indicating allocation or release of each of the plurality of blocks.

메타 데이터 관리 모듈(630)은 메모리 장치(640) 상의 공간을 복수의 블록들로 분할하고, 상기 복수의 블록들 각각에 대한 속성 정보를 표시하는 메타 데이터를 생성할 수 있다.The metadata management module 630 may divide the space on the memory device 640 into a plurality of blocks, and generate metadata indicating the attribute information for each of the plurality of blocks.

할당 크기 결정 모듈(610)은 상기 요청이 동적 영역의 할당에 관련된 요청인 경우, OS의 최소 할당 단위에 기초하여 상기 할당 크기를 결정할 수 있다. 이 때 할당 모듈(620)은 동적 할당 객체를 생성하고, 메모리 장치(640) 상의 공간의 일부를 이용하여 동적 할당 객체를 저장할 수 있다.The allocation size determination module 610 may determine the allocation size based on the minimum allocation unit of the OS when the request is a request related to the allocation of the dynamic region. In this case, the allocation module 620 may generate the dynamic allocation object and store the dynamic allocation object by using a part of the space on the memory device 640.

할당 크기 결정 모듈(610)은 상기 요청이 파일의 생성에 관련된 요청인 경우, 최소 할당 단위의 정수 배의 크기를 가지는 블록 단위에 기초하여 상기 할당 크기를 결정할 수 있다. 이 때 할당 모듈(620)은 파일 객체를 생성하고, 메모리 장치(640) 상의 공간의 일부를 이용하여 파일 객체를 저장할 수 있다. 메타 데이터 관리 모듈(630)은 파일 객체가 저장된 공간에 대응하는 메타 데이터를 생성할 수 있다. 메타 데이터 관리 모듈(630)은 생성된 메타 데이터를 메모리 장치(640) 내의 특정 공간에 저장할 수 있다.The allocation size determining module 610 may determine the allocation size based on a block unit having a size of an integer multiple of the minimum allocation unit when the request is a request related to generation of a file. In this case, the allocation module 620 may generate a file object and store the file object using a part of the space on the memory device 640. The metadata management module 630 may generate metadata corresponding to a space where the file object is stored. The meta data management module 630 may store the generated meta data in a specific space in the memory device 640.

할당 크기 결정 모듈(610)은 상기 요청이 프로세스의 생성에 관련된 요청인 경우, 최소 할당 단위에 기초하여 상기 할당 크기를 결정할 수 있다. 이 때 할당 모듈(620)은 프로세스 객체를 생성하고, 메모리 장치(640) 상의 공간의 일부를 이용하여 프로세스 객체를 저장할 수 있다.The allocation size determination module 610 may determine the allocation size based on a minimum allocation unit when the request is a request related to the creation of a process. In this case, the allocation module 620 may generate a process object and store the process object using a part of the space on the memory device 640.

메타 데이터 관리 모듈(630)은 상기 요청의 특성에 기초하여 메모리 장치(640) 상의 공간 중 상기 요청에 대응하는 공간을 탐색하고, 상기 요청의 특성에 기초하여 상기 탐색된 공간의 속성을 변경할 수 있다.The metadata management module 630 may search for a space corresponding to the request among spaces on the memory device 640 based on the characteristics of the request, and change an attribute of the searched space based on the characteristics of the request. .

도 7은 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 동작 흐름도이다.7 is an operation flowchart illustrating a memory management method according to an embodiment of the present invention.

도 7을 참조하면 메모리 관리 방법은 프로그램으로부터 메모리 영역의 할당의 요청을 입력 받는다(S710).Referring to FIG. 7, the memory management method receives a request for allocation of a memory area from a program (S710).

메모리 관리 방법은 상기 요청의 특성에 기초하여 상기 메모리 영역의 할당 크기를 결정한다(S720).The memory management method determines an allocation size of the memory area based on the characteristics of the request (S720).

메모리 관리 방법은 메모리 장치의 공간 중 상기 결정된 크기에 대응하는 공간을 상기 요청에 할당한다(S730).The memory management method allocates a space corresponding to the determined size of the space of a memory device to the request (S730).

메모리 관리 방법은 상기 요청에 할당된 공간에 대한 메타 데이터를 관리한다(S740). 이 때 메모리 관리 방법은 요청에 대응하는 프로그램 시퀀스가 종료되면 상기 요청에 할당된 공간의 해제를 나타내는 메타 데이터를 생성할 수 있다.The memory management method manages metadata about the space allocated to the request (S740). At this time, when the program sequence corresponding to the request is terminated, the memory management method may generate metadata indicating release of space allocated to the request.

본 발명에 따른 메모리 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The memory management method according to the present invention may be embodied in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, although the present invention has been described with reference to limited embodiments and drawings, the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

도 1은 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 도면이다.1 is a diagram illustrating a memory management method according to an embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 도면이다.2 is a diagram illustrating a memory management method according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 도면이다.3 is a diagram illustrating a memory management method according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 도면이다.4 is a diagram illustrating a memory management method according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 메모리 관리 방법이 수행되는 메모리 장치(500)의 파일 시스템을 도시하는 도면이다.5 is a diagram illustrating a file system of a memory device 500 in which a memory management method is performed, according to an exemplary embodiment.

도 6은 본 발명의 일 실시예에 따른 메모리 관리 장치(600)를 도시하는 도면이다.6 is a diagram illustrating a memory management apparatus 600 according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 메모리 관리 방법을 도시하는 동작 흐름도이다.7 is an operation flowchart illustrating a memory management method according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

110: 메모리 관리자110: memory manager

120: 메모리 장치120: memory device

Claims (19)

프로그램이 메모리 영역의 할당을 요청하면 상기 요청의 특성에 기초하여 상기 메모리 영역의 할당 크기를 결정하는 할당 크기 결정 모듈;An allocation size determining module that determines an allocation size of the memory area based on a characteristic of the request when a program requests allocation of a memory area; 메모리 장치의 공간 중 상기 결정된 크기에 대응하는 공간을 상기 요청에 할당하는 할당 모듈; 및An allocation mode for allocating a space corresponding to the determined size of space of a memory device to the request; And 상기 요청에 할당된 공간에 대한 메타 데이터를 관리하는 메타 데이터 관리 모듈A metadata management module that manages metadata about the space allocated to the request 을 포함하는 메모리 관리 장치.Memory management device comprising a. 제1항에 있어서,The method of claim 1, 상기 메모리 장치는 바이트 단위로 접근 가능하며, 공급되는 전원이 차단되어도 데이터를 유실하지 않는 스토리지 클래스 램인 메모리 관리 장치.The memory device is a storage class RAM that is accessible in units of bytes and does not lose data even when a power supply is cut off. 제1항에 있어서,The method of claim 1, 상기 메타 데이터 관리 모듈은The metadata management module 상기 요청에 대응하는 프로그램 시퀀스가 종료되면 상기 요청에 할당된 공간의 해제를 나타내는 메타 데이터를 생성하는 메모리 관리 장치.And generating metadata indicating release of space allocated to the request when the program sequence corresponding to the request ends. 제1항에 있어서,The method of claim 1, 상기 메타 데이터 관리 모듈은The metadata management module 상기 메모리 장치 상의 공간을 복수의 블록들로 분할하고, 상기 복수의 블록들 각각에 대한 할당 또는 해제를 표시하는 메타 데이터를 생성하는 메모리 관리 장치.Dividing a space on the memory device into a plurality of blocks, and generating metadata indicating allocation or release of each of the plurality of blocks. 제1항에 있어서,The method of claim 1, 상기 메타 데이터 관리 모듈은The metadata management module 상기 메모리 장치 상의 공간을 복수의 블록들로 분할하고, 상기 복수의 블록들 각각에 대한 속성 정보를 표시하는 메타 데이터를 생성하는 메모리 관리 장치.And dividing a space on the memory device into a plurality of blocks and generating metadata representing attribute information for each of the plurality of blocks. 제1항에 있어서,The method of claim 1, 상기 메타 데이터 관리 모듈은The metadata management module 상기 요청의 특성에 기초하여 상기 메모리 장치 상의 공간 중 상기 요청에 대응하는 공간을 탐색하고, 상기 요청의 특성에 기초하여 상기 탐색된 공간의 속성을 변경하는 메모리 관리 장치.And searching for a space corresponding to the request among the spaces on the memory device based on the characteristics of the request and changing an attribute of the searched space based on the characteristics of the request. 제1항에 있어서,The method of claim 1, 상기 할당 크기 결정 모듈은The allocation size determination module 상기 요청이 동적 영역의 할당에 관련된 요청인 경우, 최소 할당 단위에 기초하여 상기 할당 크기를 결정하는 메모리 관리 장치.And determine the allocation size based on a minimum allocation unit when the request is a request relating to allocation of a dynamic region. 제1항에 있어서,The method of claim 1, 상기 할당 크기 결정 모듈은The allocation size determination module 상기 요청이 파일의 생성에 관련된 요청인 경우, 최소 할당 단위의 정수 배의 크기를 가지는 블록 단위에 기초하여 상기 할당 크기를 결정하는 메모리 관리 장치.And when the request is a request related to generation of a file, determining the allocation size based on a block unit having a size of an integer multiple of a minimum allocation unit. 제1항에 있어서,The method of claim 1, 상기 할당 크기 결정 모듈은The allocation size determination module 상기 요청이 프로세스의 생성에 관련된 요청인 경우, 최소 할당 단위에 기초하여 상기 할당 크기를 결정하는 메모리 관리 장치.And determine the allocation size based on a minimum allocation unit if the request is a request related to creation of a process. 프로그램으로부터 메모리 영역의 할당의 요청을 입력 받는 단계;Receiving a request for allocation of a memory area from a program; 상기 요청의 특성에 기초하여 상기 메모리 영역의 할당 크기를 결정하는 단계;Determining an allocation size of the memory area based on the characteristics of the request; 메모리 장치의 공간 중 상기 결정된 크기에 대응하는 공간을 상기 요청에 할당하는 단계; 및Allocating a space corresponding to the determined size of space of a memory device to the request; And 상기 요청에 할당된 공간에 대한 메타 데이터를 관리하는 단계Managing metadata for the space allocated to the request 를 포함하는 메모리 관리 방법.Memory management method comprising a. 제10항에 있어서,The method of claim 10, 상기 메모리 장치는 바이트 단위로 접근 가능하며, 공급되는 전원이 차단되어도 데이터를 유실하지 않는 스토리지 클래스 램인 메모리 관리 방법.The memory device is a storage class RAM that is accessible in units of bytes and does not lose data even when a power supply is cut off. 제10항에 있어서,The method of claim 10, 상기 메타 데이터를 관리하는 단계는Managing the metadata is 상기 요청에 대응하는 프로그램 시퀀스가 종료되면 상기 요청에 할당된 공간의 해제를 나타내는 메타 데이터를 생성하는 메모리 관리 방법.And generating metadata indicating release of space allocated to the request when the program sequence corresponding to the request ends. 제10항에 있어서,The method of claim 10, 상기 메타 데이터를 관리하는 단계는Managing the metadata is 상기 메모리 장치 상의 공간을 복수의 블록들로 분할하는 단계; 및Dividing a space on the memory device into a plurality of blocks; And 상기 복수의 블록들 각각에 대한 할당 또는 해제를 표시하는 메타 데이터를 생성하는 단계Generating metadata indicating allocation or freeing of each of the plurality of blocks 를 포함하는 메모리 관리 방법.Memory management method comprising a. 제10항에 있어서,The method of claim 10, 상기 메타 데이터를 관리하는 단계는Managing the metadata is 상기 메모리 장치 상의 공간을 복수의 블록들로 분할하는 단계; 및Dividing a space on the memory device into a plurality of blocks; And 상기 복수의 블록들 각각에 대한 속성 정보를 표시하는 메타 데이터를 생성 하는 단계Generating metadata indicating attribute information about each of the plurality of blocks; 를 포함하는 메모리 관리 방법.Memory management method comprising a. 제10항에 있어서,The method of claim 10, 상기 메타 데이터를 관리하는 단계는Managing the metadata is 상기 요청의 특성에 기초하여 상기 메모리 장치 상의 공간 중 상기 요청에 대응하는 공간을 탐색하는 단계; 및Searching for a space of the space on the memory device corresponding to the request based on a characteristic of the request; And 상기 요청의 특성에 기초하여 상기 탐색된 공간의 속성을 변경하는 단계Changing an attribute of the searched space based on a characteristic of the request 를 포함하는 메모리 관리 방법.Memory management method comprising a. 제10항에 있어서,The method of claim 10, 상기 할당 크기를 결정하는 단계는Determining the allocation size 상기 요청이 동적 영역의 할당에 관련된 요청인 경우, 최소 할당 단위에 기초하여 상기 할당 크기를 결정하는 메모리 관리 방법.And if the request is a request related to allocation of a dynamic region, determining the allocation size based on a minimum allocation unit. 제10항에 있어서,The method of claim 10, 상기 할당 크기를 결정하는 단계는Determining the allocation size 상기 요청이 파일의 생성에 관련된 요청인 경우, 최소 할당 단위의 정수 배의 크기를 가지는 블록 단위에 기초하여 상기 할당 크기를 결정하는 메모리 관리 방법.And determining the allocation size based on a block unit having a size of an integer multiple of a minimum allocation unit when the request is a request related to generation of a file. 제10항에 있어서,The method of claim 10, 상기 할당 크기를 결정하는 단계는Determining the allocation size 상기 요청이 프로세스의 생성에 관련된 요청인 경우, 최소 할당 단위에 기초하여 상기 할당 크기를 결정하는 메모리 관리 방법.And if the request is a request related to the creation of a process, determining the allocation size based on a minimum allocation unit. 제10항 내지 제18항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium in which a program for executing the method of any one of claims 10 to 18 is recorded.
KR1020080056970A 2008-06-17 2008-06-17 Apparatus and method for memory management KR20090131142A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080056970A KR20090131142A (en) 2008-06-17 2008-06-17 Apparatus and method for memory management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080056970A KR20090131142A (en) 2008-06-17 2008-06-17 Apparatus and method for memory management

Publications (1)

Publication Number Publication Date
KR20090131142A true KR20090131142A (en) 2009-12-28

Family

ID=41690432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080056970A KR20090131142A (en) 2008-06-17 2008-06-17 Apparatus and method for memory management

Country Status (1)

Country Link
KR (1) KR20090131142A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120010397A (en) * 2010-07-26 2012-02-03 에스케이 텔레콤주식회사 Cloud storage service apparatus and method
KR20120032892A (en) * 2010-09-29 2012-04-06 에스케이 텔레콤주식회사 Apparatus and method for file storage service
KR20140035416A (en) * 2011-06-20 2014-03-21 마이크로소프트 코포레이션 Memory manager with enhanced application metadata

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120010397A (en) * 2010-07-26 2012-02-03 에스케이 텔레콤주식회사 Cloud storage service apparatus and method
KR20120032892A (en) * 2010-09-29 2012-04-06 에스케이 텔레콤주식회사 Apparatus and method for file storage service
KR20140035416A (en) * 2011-06-20 2014-03-21 마이크로소프트 코포레이션 Memory manager with enhanced application metadata

Similar Documents

Publication Publication Date Title
US11620060B2 (en) Unified hardware and software two-level memory
US11157306B2 (en) Faster access of virtual machine memory backed by a host computing device&#39;s virtual memory
US9836409B2 (en) Seamless application access to hybrid main memory
US9720717B2 (en) Virtualization support for storage devices
US8037279B2 (en) Method and system for cross-domain data sharing
US20170344430A1 (en) Method and apparatus for data checkpointing and restoration in a storage device
US20150067283A1 (en) Image Deduplication of Guest Virtual Machines
US11782828B2 (en) Efficiently purging non-active blocks in NVM regions using virtblock arrays
US11640244B2 (en) Intelligent block deallocation verification
EP3974974A1 (en) Virtualization method and system for persistent memory
US20140082275A1 (en) Server, host and method for reading base image through storage area network
KR20090131142A (en) Apparatus and method for memory management
Badam et al. Better flash access via shape-shifting virtual memory pages
US10691591B2 (en) Efficiently purging non-active blocks in NVM regions using pointer elimination
CN111367836B (en) Processing method and device for database
KR101744401B1 (en) Method for storaging and restoring system status of computing apparatus and computing apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application