KR20090131142A - Apparatus and method for memory management - Google Patents
Apparatus and method for memory management Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
Description
메모리 관리 장치 및 방법에 관한 것으로서, 스토리지 클래스 램(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
메모리 장치(120)는 메모리 계층 구조(memory hierarchy)의 일부일 수도 있으나, 단일 계층을 형성할 수도 있다.The
프로그램이 malloc 함수(function) 또는 kmalloc 함수를 호출하면, 메모리 관리자(110)는 호출된 malloc 함수 또는 kmalloc 함수에 대응하는 동적 할당 객체(Dynamic Allocate Object)(121)를 메모리 장치(120) 내에 생성할 수 있다.When the program calls the malloc function or the kmalloc function, the
프로그램이 create 함수 또는 write 함수를 호출하면, 메모리 관리자(110)는 호출된 create 함수 또는 write 함수에 대응하는 파일 객체(File Object)(122)를 메모리 장치(120) 내에 생성할 수 있다.When the program calls the create function or the write function, the
프로그램이 fork 함수를 호출하면, 메모리 관리자(110)는 호출된 fork 함수에 대응하는 프로세스 객체(Process Object)(123)를 메모리 장치(120) 내에 생성할 수 있다.When the program calls the fork function, the
메모리 장치(120)는 종래의 메인 메모리(main memory)에서 처리하던 동적 할당 객체(121) 또는 프로세스 객체(123)를 처리할 수 있고, 종래의 스토리지(storage)에서 처리하던 파일 객체(122)를 처리할 수 있다. 메모리 장치(120)는 종래의 메인 메모리 및 스토리지의 기능을 단일 계층에서 처리함으로써 사용자에게 통합된 컴퓨팅 환경을 제공할 수 있다. 메모리 관리자(110)는 통합된 기능을 수행하는 메모리 장치(120)의 관리에 최적화된 파일 시스템 및 메모리 관리 방법을 제공할 수 있다.The
메모리 장치(120)의 일 예로는 스토리지 클래스 램(Storage Class RAM, Storage Class Random Access Memory)이 이용될 수 있다. 스토리지 클래스 램은 random accessibility를 제공하며, 비휘발성(non-volatility)도 제공할 수 있다. 메모리 장치(120)가 스토리지 클래스 램인 경우, 공급되는 전원이 차단되어도 메모리 장치(120)에 저장된 데이터 또는 메타 데이터가 유실되지 않으므로 메모리 관리자(110)는 영속적인(permanent) 컴퓨팅 환경을 사용자에게 제공할 수 있다.As an example of the
메모리 관리자(110)는 동적 할당 요청, 프로세스 생성 요청 및 파일 생성 요청에 대응하는 객체(object)들을 메모리 장치(120) 내에 생성하고, 생성된 객체들을 관리할 수 있다. 메모리 관리자(110) 및 메모리 장치(120)를 이용하는 메모리 관리 방법은 컴퓨터 시스템의 상태를 사용(Running) 또는 비사용(Idle) 중 어느 하나로 설정하는 영속적인 컴퓨팅 환경을 제공할 수 있다. 종래의 메모리 관리 방법은 컴퓨터 시스템의 상태를 부팅(Booting), 사용(Running), 또는 종료(Terminating) 중 어느 하나로 설정할 수 있다.The
메모리 관리자(110)는 생성된 객체의 지속 시간(lifetime), 속성(attribute), 및/또는 블록의 크기에 관계 없이 메모리 장치(120)의 공간을 할당할 수 있는 메모리 관리 방법을 제공할 수 있다. 메모리 관리 방법은 가변 속성 및 가변 블록 크기 등의 특성을 가지는 객체를 할당할 수 있도록 설계될 수 있다.The
메모리 관리 방법은 운영 체제(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
도 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
프로그램이 malloc (N) 함수를 호출하면, 메모리 관리자(210)는 malloc (N) 함수에 대응하는 N Byte의 메모리 공간을 설정할 수 있다. 메모리 관리자(210)는 상기 설정된 N Byte의 메모리 공간을 이용하여 동적 할당 객체(Dynamic Allocate Object) (221)를 메모리 장치(220) 내에 생성할 수 있다.When the program calls the malloc (N) function, the
메모리 관리자(210)는 상기 설정된 N Byte의 메모리 공간에 대한 포인터(pointer)를 반환(return)할 수 있다.The
도 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
메모리 장치(320)는 malloc (N) 함수에 대응하여 생성된 동적 할당 객체(321)를 저장할 수 있다.The
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
메모리 관리자(310)는 파일 시스템의 블록 크기에 기초하여 create ("file") 함수에 대응하는 메모리 공간을 설정할 수 있다. 블록 크기는 OS의 최소 할당 단위에 기초하여 결정될 수 있다. 예를 들어 OS의 최소 할당 단위가 32 Byte 인 경우, 블록 크기는 최소 할당 단위의 16배인 512 Byte 일 수 있다.The
도 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
메모리 장치(420)는 malloc (N) 함수에 대응하여 생성된 동적 할당 객체(421) 및 create ("file") 함수에 대응하여 생성된 파일 객체(422)를 저장할 수 있다.The
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
프로세스 객체(423)에 대응하는 사용자 프로세스가 종료되면 메모리 관리자(410)는 프로세스 객체(423)를 free한 상태로 표시하고, 프로그램으로부터 다른 요청이 있을 때 상기 요청에 할당할 수 있다. 이처럼 특정 요청에 할당된 객체를 free한 상태로 표시하는 동작을 해제라고 하기도 한다.When the user process corresponding to the
프로그램이 동적 할당 객체(421)에 대하여 free 함수를 호출하면 메모리 관리자(410)는 동적 할당 객체(421)를 해제할 수 있다. 해제된 객체에 대응하는 공간은 프로그램으로부터 다른 요청이 있을 때 할당될 수 있다.When the program calls the free function on the
메모리 장치(420)가 스토리지 클래스 램이면, 공급되는 전원이 차단되어도 저장된 객체들을 유실하지 않고 유지할 수 있다. 메모리 관리자(410)는 메모리 장치(420)가 재부팅(reboot)된 경우에도 부가적인 초기화(initialize) 과정 없이 메모리 장치(420)에 저장된 객체들을 이용할 수 있다. 메모리 관리 방법은 부팅 시 초기화 과정을 수행할 필요가 없으므로 부팅 시간을 단축할 수 있다.If the
도 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
블록 1 (520)은 블록 2 내지 7 (530)의 각 블록이 저장하는 객체 또는 데이터의 속성(attribute)에 관련된 정보를 저장할 수 있다.
블록 2 내지 7 (530)의 각 블록은 메모리 관리 방법의 할당의 대상이 될 수 있다. 메모리 관리 방법은 블록 2를 "file"이라는 이름을 가지는 파일 객체로 할당할 수 있다.Each block of
메모리 관리 방법은 할당되는 객체의 특성에 기초하여 할당되는 객체의 공간 의 크기를 결정할 수 있다. 예를 들어 파일 객체의 경우, 메모리 관리 방법은 파일 시스템의 블록 크기에 기초하여 파일 객체의 공간의 크기를 결정할 수 있다. 객체가 동적 할당 객체 또는 프로세스 객체인 경우, 메모리 관리 방법은 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
도 6을 참조하면 메모리 관리 장치(600)는 메모리 장치(640)를 관리할 수 있다. 메모리 관리 장치(600)는 할당 크기 결정 모듈(610), 할당 모듈(620) 및 메타 데이터 관리 모듈(630)을 포함한다.Referring to FIG. 6, the
할당 크기 결정 모듈(610)은 프로그램이 메모리 영역의 할당을 요청하면 상기 요청의 특성에 기초하여 상기 메모리 영역의 할당 크기를 결정할 수 있다. 할당 크기 결정 모듈(610)은 상기 요청이 파일 생성 요청인지, 동적 할당 요청인지 또는 프로세스 생성 요청인지에 기초하여 상기 메모리 영역의 할당 크기를 결정할 수 있다.The allocation
할당 모듈(620)은 메모리 장치(640)의 공간 중 상기 결정된 크기에 대응하는 공간을 상기 요청에 할당할 수 있다.The
메타 데이터 관리 모듈(630)은 상기 요청에 할당된 공간에 대한 메타 데이터를 관리할 수 있다.The
메모리 장치(640)는 바이트 단위로 접근 가능하며, 공급되는 전원이 차단되어도 데이터를 유실하지 않는 스토리지 클래스 램일 수 있다.The
메타 데이터 관리 모듈(630)은 메모리 장치(640) 상의 공간을 복수의 블록들로 분할하고, 상기 복수의 블록들 각각에 대한 할당 또는 해제를 표시하는 메타 데이터를 생성할 수 있다.The
메타 데이터 관리 모듈(630)은 메모리 장치(640) 상의 공간을 복수의 블록들로 분할하고, 상기 복수의 블록들 각각에 대한 속성 정보를 표시하는 메타 데이터를 생성할 수 있다.The
할당 크기 결정 모듈(610)은 상기 요청이 동적 영역의 할당에 관련된 요청인 경우, OS의 최소 할당 단위에 기초하여 상기 할당 크기를 결정할 수 있다. 이 때 할당 모듈(620)은 동적 할당 객체를 생성하고, 메모리 장치(640) 상의 공간의 일부를 이용하여 동적 할당 객체를 저장할 수 있다.The allocation
할당 크기 결정 모듈(610)은 상기 요청이 파일의 생성에 관련된 요청인 경우, 최소 할당 단위의 정수 배의 크기를 가지는 블록 단위에 기초하여 상기 할당 크기를 결정할 수 있다. 이 때 할당 모듈(620)은 파일 객체를 생성하고, 메모리 장치(640) 상의 공간의 일부를 이용하여 파일 객체를 저장할 수 있다. 메타 데이터 관리 모듈(630)은 파일 객체가 저장된 공간에 대응하는 메타 데이터를 생성할 수 있다. 메타 데이터 관리 모듈(630)은 생성된 메타 데이터를 메모리 장치(640) 내의 특정 공간에 저장할 수 있다.The allocation
할당 크기 결정 모듈(610)은 상기 요청이 프로세스의 생성에 관련된 요청인 경우, 최소 할당 단위에 기초하여 상기 할당 크기를 결정할 수 있다. 이 때 할당 모듈(620)은 프로세스 객체를 생성하고, 메모리 장치(640) 상의 공간의 일부를 이용하여 프로세스 객체를 저장할 수 있다.The allocation
메타 데이터 관리 모듈(630)은 상기 요청의 특성에 기초하여 메모리 장치(640) 상의 공간 중 상기 요청에 대응하는 공간을 탐색하고, 상기 요청의 특성에 기초하여 상기 탐색된 공간의 속성을 변경할 수 있다.The
도 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
도 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)
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)
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 |
-
2008
- 2008-06-17 KR KR1020080056970A patent/KR20090131142A/en not_active Application Discontinuation
Cited By (3)
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'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 |