KR101104361B1 - Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법 - Google Patents

Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법 Download PDF

Info

Publication number
KR101104361B1
KR101104361B1 KR1020090132736A KR20090132736A KR101104361B1 KR 101104361 B1 KR101104361 B1 KR 101104361B1 KR 1020090132736 A KR1020090132736 A KR 1020090132736A KR 20090132736 A KR20090132736 A KR 20090132736A KR 101104361 B1 KR101104361 B1 KR 101104361B1
Authority
KR
South Korea
Prior art keywords
processes
computing system
scm
computing
persistent
Prior art date
Application number
KR1020090132736A
Other languages
English (en)
Other versions
KR20110076116A (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 KR1020090132736A priority Critical patent/KR101104361B1/ko
Publication of KR20110076116A publication Critical patent/KR20110076116A/ko
Application granted granted Critical
Publication of KR101104361B1 publication Critical patent/KR101104361B1/ko

Links

Images

Classifications

    • 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/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

컴퓨팅 시스템이 제공된다. 상기 컴퓨팅 시스템은 복수 개의 프로세스에 대한 컴퓨팅 연산을 수행하는 프로세서, 메인 메모리의 적어도 일부로서 동작하는 SCM(Storage Class Memory), 상기 SCM과 함께 상기 메인 메모리의 다른 일부로서 동작하는 휘발성 메모리를 포함할 수 있다.
영속적 프로세싱, 비휘발성 램, 스토리지 클래스 메모리, SCM, NVRAM, Persistent processing

Description

NVRAM과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법 {COMPUTING SYSTEM AND METHOD USING NVRAM AND VOLATILE RAM TO IMPLEMENT PROCESS PERSISTENCE SELECTIVELY}
컴퓨팅 시스템 및 컴퓨팅 방법에 연관되며, 보다 특정하게는 복수 개의 프로세스에 대해 선택적으로 프로세스 영속성(process persistence)을 구현하는 컴퓨팅 시스템 및 방법에 연관된다.
비휘발성 램(Non-volatile Random Access Memory, 이하에서는 NVRAM이라고 한다)은, 전원의 차단에도 불구하고 데이터를 소실하지 않는 특성을 갖는 램이다.
NVRAM에는 배터리에 의해 비휘발성이 유지되는 Battery backed RAM과, 전원 공급 없이도 소자 특성 상 전원 공급 없이도 저장된 데이터를 유지하는 스토리지 클래스 메모리 등이 있다.
스토리지 클래스 메모리(Storage Class Memory, 이하에서는 SCM이라고 한다)는, 비휘발성 램 (Non-Volatile Random Access Memory, NVRAM)의 한 형태로서, 메모리 셀(memory cell)이 스스로 비휘발성을 띄고, 빠른 속도로 바이트 단위의 주소 접근이 가능하다.
현재 상용화 되었거나 또는 상용화가 예상되는 SCM에는, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 등이 있다. 특히, FeRAM은 Ramtron 사(社)에서 출시하여 상용화 되었으며, 고집적성의 강점이 있는 PCRAM 또한 인텔, 삼성 등의 회사들이 상용화에 근접하였다.
한편, 이 SCM은 시스템 계층 구조상에서 저장장치, 디스크 캐시 등으로 활용되는 방향으로 연구가 진행되어 왔다.
개별 프로세스들의 소스 코드를 변경하지 않고도, 선택되는 일부의 개별 프로세스들의 영속성(persistence)을 구현하는 컴퓨팅 시스템 및 컴퓨팅 방법이 제공된다.
또한, 프로세스의 실행 중에 예기치 못한 전원 공급의 차단이 발생되더라도, 선택된 일부 프로세스들 및 시스템 운영을 위한 일부 정보의 영속성이 유지되는 컴퓨팅 시스템 및 컴퓨팅 방법이 제공된다.
본 발명의 일측에 따르면, 복수 개의 프로세스에 대한 컴퓨팅 연산을 수행하는 프로세서, 메인 메모리의 적어도 일부로서 동작하는 NVRAM, 상기 NVRAM과 함께 상기 메인 메모리의 다른 일부로서 동작하는 휘발성 메모리, 및 상기 NVRAM 및 상기 휘발성 메모리 중 적어도 하나를 제어하는 메모리 제어부를 포함하는, 컴퓨팅 시스템이 제공된다.
본 발명의 일 실시예에 따르면, 상기 NVRAM은 SCM(Storage Class Memory)일 수 있다. 이하에서는 SCM의 경우를 예시적으로 설명하지만, 이러한 예시적 설명에 의해 NVRAM의 다른 형태 이를 테면, Battery backed RAM 등의 실시예가 배제되는 것은 아니다.
여기서 상기 SCM은 상기 복수 개의 프로세스 중, 영속적 프로세스로 선택된 적어도 일부의 프로세스에 연관된 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행하고, 상기 휘발성 메모리는 상기 복수 개의 프로세스 중, 영속적 프로세스로 선택되지 않은 다른 일부의 프로세스에 연관된 컴퓨팅 연산에 있어서 메인 메모리의 역할을 수행할 수 있다.
본 발명의 일 실시예에 따르면, 상기 복수 개의 프로세스 이외에 새로운 제1 프로세스가 실행되는 경우, 상기 복수 개의 프로세스 중 상기 제1 프로세스에 연관된 프로세스가 존재한다면 상기 제1 프로세스는 상기 연관된 프로세스로부터 영속성을 상속받을 수 있다.
한편, 상기 컴퓨팅 시스템은, 상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 상기 프로세스 및 상기 SCM에 임계 시간 동안 전원을 공급하는 임시 전원 공급부를 더 포함할 수 있다.
이 경우, 상기 컴퓨팅 시스템의 전원 공급이 차단되면, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부가 상기 임계시간 내에 상기 SCM에 저장된다.
이 때, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부는, 상기 SCM 내의 기설정된 제1 주소에 저장될 수 있다.
그리고 상기 전원 공급 차단 이후에 상기 컴퓨팅 시스템의 전원 공급이 재개되는 경우, 상기 SCM 내의 기설정된 제1 주소로부터, 상기 프로세서의 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보 중 적어도 하나가 복구(restore)된다.
본 발명의 일 실시예에 따르면, 상기 SCM은, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 중 적어도 하나이다.
한편, 상기 메모리 제어부는, 상기 복수 개의 프로세스에 대한 컴퓨팅 연산 과정에서 생성되는 슬랩 캐시(Slab. Cache) 및 파일 페이지를 상기 SCM 내에 저장한다.
그리고, 상기 메모리 제어부는, 상기 컴퓨팅 시스템의 부팅 과정에서 상기 DRAM에 대한 페이징 공간을 할당하고, 지역 기술자(zone descriptor)및 페이지 기술자의 배열을 통해 상기 DRAM을 관리할 수 있다.
또한, 상기 메모리 제어부는, 상기 컴퓨팅 시스템이 턴 온 되거나 또는 턴 오프 되는 경우, 상기 복구 개의 프로세스 중 영속적 프로세스로 선택되지 않은 일부의 프로세스에 대한 컴퓨팅 연산 과정에서 생성되어 상기 SCM에 저장된 슬랩 캐시(Slab Cache) 및 파일 페이지를 상기 SCM으로부터 삭제할 수 있다.
본 발명의 다른 일측에 따르면, SCM(Storage Class Memory)을 메인 메모리로 활용하여, 복수 개의 프로세스 중 영속적 프로세스로 선택된 적어도 일부의 프로세스에 연관된 컴퓨팅 연산을 수행하는 단계, 및 휘발성 메모리를 메인 메모리로 활용하여, 상기 복수 개의 프로세스 중 영속적 프로세스로 선택되지 않은 다른 일부의 프로세스에 연관된 컴퓨팅 연산을 수행하는 단계를 포함하는, 컴퓨팅 방법이 제공된다.
프로세스의 영속성을 동적으로 또는 탄력적으로(flexible) 지정하여, 사용자에 맞는 영속적 컴퓨팅 환경이 구현될 수 있다.
프로세스의 영속성을 구현하기 위한 저장 공간 오버헤드(storage overhead) 또는 동작 시간 오버헤드가 최소화될 수 있다.
또한, 프로세스의 영속성 유지를 위해 시스템이 중지(freezing)될 필요가 없으므로, 시스템 안정성이나 일관성(consistence)을 보장하면서도 실행이 지속될 수 있다.
이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)을 도시한다.
컴퓨팅 시스템(100)은 복수 개의 프로세스를 처리하는 프로세서(110), 메인 메모리(120), 메모리 제어부(Memory controller)(130) 및 저장부(Storage)(140)를 포함한다.
본 발명의 일 실시예에 따르면, 메인 메모리(120)는 상기 복수 개의 프로세 스 중 적어도 일부에 대한 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 SCM(Storage Class Memory)(121), 상기 복수 개의 프로세스 중 다른 일부에 대한 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 DRAM(Dynamic Random Access Memory)(122)를 포함한다. 여기서 DRAM(122)은 메인 메모리로서 동작할 수 있는 휘발성 메모리(volatile memory)의 일 예이며, 다른 종류로 대체될 수 있음은 물론이다. 또한, 상기한 바와 같이, SCM은 NVRAM의 일 형태일 뿐이며, SCM 이외의 다른 NVRAM의 예시들이 본 발명으로부터 배제되는 것은 아니다. 이하 같다.
메인 메모리(120)는 프로세서(110)가 처리하는 복수 개의 프로세스에 대한 컴퓨팅 연산을 위해, 저장부(140)로부터 필요한 파일을 독출하여 임시로 저장하고, 프로세스에 대한 컴퓨팅 연산의 종료 등의 원인에 의해 저장부(140)로 데이터가 옮겨지기 전까지 상기 프로세스에 대한 컴퓨팅 연산 도중의 데이터, 결과 데이터를 저장한다.
종래에 휘발성 메모리, 이를테면 DRAM만을 컴퓨팅 연산의 메인 메모리로서 사용한 컴퓨팅 시스템에서는, 갑작스러운 전원 차단으로 인한 데이터 손실이 문제되었다.
이러한 데이터 손실에 대한 해결방법으로서, 체크 포인팅(Check pointing)을 기반으로 하는 연구들이 수행되었다. 체크 포인팅은 메인 메모리에 있는 프로세스의 실행 이미지를 저장장치(storage)에 주기적으로 저장하는 기법이다.
그러나, 이러한 체크 포인팅 기법은, 공간 오버헤드와 실행 시간 오버헤드가 커서 효율성이 낮다. 뿐만 아니라, 이러한 체크 포인팅 기법은 연속적으로 데 이터를 백업하지 않아서, 데이터 백업 시점들 사이에 인터벌(interval)이 존재하며, 따라서 데이터 백업 시점들 사이에 변경된 데이터는 손실될 수 있다.
또한 체크 포인팅 기법에 의한 데이터 백업 작업 중에 데이터 일관성(consistency)을 유지하기 위해, 프로세스가 처리될 수 없으므로, 프리징(freezing)이 발생된다.
따라서, 갑작스러운 전원 차단 등의 이벤트에도 데이터 손실이 없도록 하기 위해서는 메인 메모리를 비휘발성 메모리(Non-volatile memory), 이를테면 비휘발성 램(Non-volatile RAM; NVRAM)로 채택하는 시도가 요구된다.
그러나, 메인 메모리 전체를 비휘발성 메모리로만 구성하는 것보다, 비휘발성 메모리와 휘발성 메모리를 함께 사용하여 구성하면 두 가지 메모리 특성의 장점을 모두 활용하면서도 단점이 보완될 수 있으며, 메모리 공간 분리를 통해 신뢰성(reliability) 및 가용성(availability) 측면에서의 향상을 도모할 수 있다.
본 발명의 일 실시예에 따르면, 컴퓨팅 시스템에서 수행되는 복수 개의 프로세스는 영속적 프로세스(persistent process)와 비영속적 프로세스(non-persistent process)로 구별된다.
여기서 영속적 프로세스는, 프로세스에 대한 컴퓨팅 연산의 실행 중 발생되는 모든 데이터와 상태가 컴퓨팅 시스템의 전원 오프(power off) 시에도 보존되며, 때문에 시스템이 다시 파워 온(power on)되는 경우 컴퓨팅 연산의 실행이 지속되는 프로세스이다.
한편, 비영속적 프로세스는, 프로세스에 대한 컴퓨팅 연산의 실행 중 발생 되는 데이터와 상태가 컴퓨팅 시스템의 전원 오프에 의해 보존되지 않는 프로세스이다.
본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)의 메인 메모리(120)는 영속적 프로세스에 대한 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 SCM(121) 및 비영속적 프로세스에 대한 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 DRAM(122)를 포함한다.
상기한 바와 같이, SCM(121)에는, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 등의 예가 있다. 다만, 이는 예시적인 것에 불과하며, 본 발명은 일부 실시예에 의해 한정되지 않는다.
그리고, 이러한 SCM(121) 및 DRAM(122)은 메모리 제어부(130)에 의해 제어될 수 있다.
컴퓨팅 시스템(100)에서 처리되는 복수 개의 프로세스 중, 사용자에 의해 설정되는, 및/또는 시스템 운영 체제에 의해 선택되는 적어도 일부의 프로세스가 영속적 프로세스로 선택된다.
여기서 특정 프로세스가 영속적 프로세스로 선택되는지의 여부를 프로세스의 영속성(persistence) 설정이라 한다.
이 영속성의 설정은 컴퓨팅 시스템의 유저에 따라 다른 기준을 적용 받을 수도 있다. 이를테면 그래픽 디자이너의 컴퓨팅 시스템에서는 이미지 편집 프로세스가 영속적 프로세스로 설정될 수 있으며, 작가의 컴퓨팅 시스템에서는 워드 프로세서가 영속적 프로세스로 설정될 수 있다.
이러한 영속성의 설정 기준 및/또는 개별적인 프로세스들에 대한 구체적인 영속성 설정 값은, 임의의 시점에 동적으로 변경될 수도 있다. 이를테면 컴퓨팅 시스템의 동작 중에 유저에 의해, 또는 시스템에 의해 일부 프로세스가 임시적으로 또는 지속적으로 영속적 프로세스로 설정될 수도 있다.
한편, 새로운 프로세스가 실행되는 경우, 사용자 또는 시스템에 의해 상기 새로운 프로세스의 영속성이 설정될 수 있다. 여기서 시스템에 의한 영속성의 설정은, 컴퓨팅 시스템 내에서 미리 확립된 상기 영속성의 설정 기준에 의해 상기 새로운 프로세스의 영속성이 설정되는 것이다.
그리고, 이 경우 사용자에 의한 프로세스의 영속성 설정과, 시스템에 의한 프로세스의 영속성 설정 간에는 어느 하나가 우선순위가 높은 것으로 지정될 수 있다. 이를테면, 컴퓨팅 시스템(100)에서 새로운 프로세스가 실행되는 경우, 컴퓨팅 시스템(100)은 상기 새로운 프로세스를 영속적 프로세스로 설정할 것인지의 여부에 관한 답을 사용자로부터 입력 받을 수 있다. 그리고, 이렇게 입력 받은 답은 시스템 스스로 확립한 다른 기준에 의한 영속성 설정 결과에 우선할 수 있다.
그리고 상기한 바와 같이, 개별적인 프로세스에 대해 사용자가 영속성을 설정할 수 있도록, 설정 프로그램이 컴퓨팅 시스템(100)에 포함될 수 있다.
한편, 본 발명의 일 실시예에 의하면, 상기 새로 실행되는 프로세스가 다른 프로세스에 연관되어 있는 경우, 연관된 프로세스의 영속성을 상속받는 것도 가능하다.
이를 테면, 상기 새로 실행되는 프로세스가 다른 프로세스의 연관 어플리케 이션이거나, 종속적 프로세스인 경우, 그 프로세스가 영속적 프로세스이면 상기 새로 실행되는 프로세스도 영속적 프로세스로 결정하는 방식이다.
물론, 운영체제의 쉘(Shell)과 같은 프로세스의 경우, 다른 대부분의 프로세스와 연관되어 있으므로, 상기 운영체제의 커널 프로세스 및 쉘 등은 무조건 영속적 프로세스로 설정하되, 다른 연관 프로세스들에 이러한 영속성이 상속되지 않도록 예외 설정을 하는 것도 가능하다.
따라서, 본 발명의 실시예들에 의하면, 복수 개의 프로세스들은 선택적으로 영속적 프로세스 또는 비영속적 프로세스로 선택되고, 상기 각 경우에 있어서 SCM(121) 또는 DRAM(122)이 메인 메모리로서 동작하게 된다.
영속적 프로세스 또는 비영속적 프로세스가 컴퓨팅 시스템(100)에 의해 처리되는 과정은 도 2 이하를 참조하여 보다 상세히 후술한다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)에서 영속적 프로세스의 처리 방법을 설명하기 위한 개념도(200)이다.
본 발명의 일 실시예에 따르면 컴퓨팅 시스템(100)의 경우, 메인 메모리로서 SCM(121)과 DRAM(122)을 동시에 인식할 수 있다. 이 경우는 SCM(121)에서는 영속적 프로세스에 대해, 그리고 DRAM(122)에는 비영속적 프로세스에 대해, 각각 종래의 메인 메모리에서와 동일한 방식으로 캐싱이나 페이징이 수행될 수 있다.
이러한 실시예에서는, 컴퓨팅 시스템(100) 및 메모리 제어부(130)에 의해 SCM(121) 및 DRAM(122) 모두가 인식되고 동작하므로, SCM(121) 및 DRAM(122)이 병렬적으로, 및/또는 상호 보완적으로 동작한다. 따라서, SCM(121) 및 DRAM(122) 사 이의 시스템 상 레이어 또는 우선 순위에 차이가 없다.
그러나, 경우에 따라서는 하드웨어적인 스펙의 한계 때문에, 또는 다른 어떤 이유에 의해서 상기 SCM(121) 또는 DRAM(122) 중 어느 하나가 우선 순위가 높은 기본 메모리로 기능하도록 선택되고 나머지 하나는 별도의 보조적 메모리로 기능하도록 선택될 수도 있다.
이하에서는, 본 발명의 일부 실시예에 따라, SCM(121) 또는 DRAM(122) 중 어느 하나가 우선 순위가 높은 기본 메모리로 기능하도록 선택되고 나머지 하나는 별도의 보조적 메모리로 기능하도록 선택되는 실시예를 설명하지만, 본 발명이 이러한 형태에 의해 제한적으로 해석되어서는 안 된다. 특히, 상기한 바와 같이, 컴퓨팅 시스템(100) 및 메모리 제어부(130)에 의해 SCM(121) 및 DRAM(122) 모두가 인식되고 동작하는 경우의 실시예가 배제되어서는 안 된다.
다시, SCM(121) 또는 DRAM(122) 중 어느 하나가 우선 순위가 높은 기본 메모리로 기능하도록 선택되고 나머지 하나는 별도의 보조적 메모리로 기능하도록 선택되는 실시예를 설명한다.
본 실시예에 따르면, SCM(121)이 컴퓨팅 시스템(100)의 기본 메모리로서 커널(210)에 의해 인식될 수 있다. 이 경우, 커널(210)이 접근하는 메모리 제어부(130) 및 인터페이스를 통해 SCM(121)에 대한 접근이 이루어진다.
그리고, 종래의 커널에 대한 수정을 최소화 하고, 구동 효율성을 높이기 위해 프로세스의 영속성에 상관 없이 커널(210), 영속적 프로세스들(220) 및 비영속적 프로세스들 전체의 슬랩 캐시(Slab Cache)(230)는 모두 기본 메모리인 SCM(121) 에 저장될 수 있다.
그리고 파일 페이지(250)의 경우도 커널(210), 영속적 프로세스들(220) 및 비영속적 프로세스들 전체가 기본 메모리인 SCM(121)에 저장될 수 있다.
익명 페이지(240)의 경우는 영속적 프로세스들(220)의 것만이 SCM(121)에 저장된다.
SCM 관리자가 상기 내용들에 대한 관리를 수행하고, 데이터가 SCM 셀(270)에 저장되는 내용은 통상의 메인 메모리의 경우와 같다.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 시스템(100)에서 비영속적 프로세스의 처리 방법을 설명하기 위한 개념도(310)이다.
상기한 바와 같이, 컴퓨팅 시스템(100)의 경우, 메인 메모리로서 SCM(121)과 DRAM(122)을 동시에 인식할 수 있는 실시예에서는 SCM(121)과 DRAM(122)은 각각 영속적 프로세스와 비영속적 프로세스에 대해 별도의 메인 메모리 역할을 수행한다.
그러나, 도 2를 참조하여 상술한 실시예에서는, DRAM(122)이 보조적 메모리이므로, DRAM(122)을 인식하기 위해 기본적 메모리를 인식하는 메모리 제어부(130)의 구조가 변경되어 DRAM(122)을 인식하거나, 또는 DRAM(122) 인식 및 구동을 위한 별도의 관리자와 인터페이스가 컴퓨팅 시스템(100)에 구비될 수 있다.
이 때, 비영속적 프로세스들(310)의 슬랩 캐시(Slab. Cache)(230) 및 파일 맵핑된 페이지들(250)의 경우 SCM(121)에 저장되고, 이는 도 2의 개념도에서 설명한 바와 같다.
한편, 파일 페이지에 대하여 메모리에 로드된 후 내용이 변경된 더티(dirty) 페이지는 SCM에 저장하고, 내용 변경이 없는 클린(clean) 페이지는 DRAM에 저장할 수도 있다.
그리고, 비영속적 프로세스들의 익명 페이지(Anonymous page)(320)은 DRAM(122) 내에 저장된다. 다만, DRAM(122)이 기본 메모리인 SCM(121)의 보조적 메모리인 실시예이므로, DRAM 관리자(330)가 이러한 페이징을 DRAM 셀(340)에 수행하는 과정은 통상적인 메인 메모리에서와 다르게 설정될 수 있다.
본 발명의 일부 실시예에서는 이러한 구현을 위해 리눅스 커널 2.6.21 기반으로 약간의 코드가 수정된 커널을 통해 메모리 제어부(130)가 SCM(121) 및 DRAM(122)을 관리한다.
다만, 본 발명이 일부의 운영 체제 커널 환경, 이를테면 리눅스 커널에 의해 구현되는 것으로 제한 해석되어서는 안 되며, 상기 리눅스 커널 2.6.21 기반의 구현은 일부 실시예에 불과하다.
이하에서는 리눅스 커널 2.6.21 기반의 구현을 설명하고, 다른 실시예에 의한 구현의 설명은 생략한다.
본 실시예에서, 커널(210)은 부팅 과정에서 ioremap()으로 DRAM(121)을 인식하고 그 리턴 값으로 받는 가상 주소를 시작으로 하는 공간에 대해 페이징을 수행한다.
본 실시예에서 추가적, 보조적으로 인식된 DRAM(122)은 vrzoone 이라는 지역(zone) 기술자(descriptor)와 vrzone_mem_map_t 라는 페이지 기술자의 배열에 의 해 관리된다. 이러한 vrzone 또는 vrzone_mem_map_t 자료구조 자체는 부팅 과정에서 초기화되므로, SCM(121) 상에 존재할 수 있다.
한편, 도 2 내지 도 3을 참조하여 서술한 실시예에서, SCM(121) 내에는 비영속적 프로세스의 슬랩 캐시, 파일 페이지 등이 저장되는데, 컴퓨팅 시스템(100)의 전원이 꺼졌다 켜지는 경우 이러한 것들을 제거될 수 있다. 즉, 비영속적 프로세스의 메타 데이터(meta data) 등 잔재가 소거될 수 있다.
물론 이러한 비영속적 프로세스의 잔재 소거 과정은, 컴퓨팅 시스템의 전원이 꺼지는 시점, 또는 전원이 다시 켜지는 시점, 또는 다른 특정한 임의의 시점으로 설정될 수 있다.
도 4는 본 발명의 일 실시예에 따른 컴퓨팅 시스템 내에서 SCM(121)과 DRAM(122)을 인식하는 예시적 물리 메모리 맵(Physical memory map) (400)을 도시한다.
본 실시예에서는 DRAM(122)에 대해 커널(210)이 접근할 수 있도록 DRAM(122)에 대한 주소 변환 방법이 제공된다.
커널에서는 물리 주소와 가상 주소, 페이지 테이블 엔트리(PTE), 페이지 기술자의 주소, 물리 페이지 프레임 번호(PFN) 등의 여러 값들이 메모리 엑세스(memory access)를 위해 서로 변환되어 사용될 수 있다.
그리고 커널이 DRAM(122)에 접근할 때에도, 이러한 값들이 서로 변환되어 사용된다. 여기서 기본적인 주소 변환 방법에 대응되는 매크로/함수들은 접두어 "vr_"을 붙여서 표시되었다.
이를 테면, 물리 주소를 가상 주수로 변환할 때 사용하는 page_addess()는 vr_page_address() 등으로 대응되도록 설정된다.
다만, 상기 PTE와 상기 PFN 사이의 변환은 DRAM(122)을 위한 별도의 추가적 변환 방법은 요구되지 않는다.
DRAM을 관리하기 위한 DRAM 관리자(도 3의 330)는 리눅스의 버디(Buddy) 시스템 코드를 활용할 수 있다. 비록 상기 실시예에서는 비영속적 프로세스들(310)의 익명 페이지(320)에 대해 한해서 DRAM(122)이 사용된다. 그러나, 이는 본 발명의 구현을 위한 일 실시예에 불과하고, SCM(121)과 DRAM(122)을 동시에 인식하고 구현하는 컴퓨팅 시스템에서는 비영속적 프로세스들(310)에 대한 슬랩 캐시(Slab. Cache)(230) 및 파일 페이지(250)들에 대해서도 DRAM(122)이 사용될 수 있음은 상기한 바와 같다.
한편, DRAM 페이지 할당과 해제를 위한 인터페이스도 접두어 "vr_"을 붙인 이름으로 표시된다. 이를테면 alloc_pages() 함수는 vr_alloc_pages()에 대응된다. DRAM 페이지는 비영속적 프로세스의 익명 페이지에서 사용되며, 페이지 폴트(fault) 루틴에 vr_do_wp_page(), vr_do_no_page(), vr_do_anonymous_page() 함수가 추가되어 익명 페이지(320)에 대한 요청이 발생할 때 할당이 이루어진다.
도 5는 본 발명의 일 실시예에 따른 컴퓨팅 방법을 도시한다.
임의의 프로세스가 프로세서에 의해 처리되는 경우, 단계(S510)에서 상기 프로세스가 영속적 프로세스인지 여부가 식별된다.
다만, 상기한 바와 같이 상기 프로세스의 영속성이 미리 지정되어 있지 않 은 경우는, 사용자에 의해 지정될 수 있도록 유저 인터페이스를 통해 사용자 입력을 받아서 영속성을 결정할 수 있다.
또한, 새로 시작되는 프로세스의 경우, 연관 프로세스가 있다면 그 연관 프로세스의 영속성을 상속받는 것도 가능하다.
영속성의 상속에 관한 정책은 다양하게 확립될 수 있으며, 이를테면 비영속적 프로세스의 자식 프로세스(child process, or dependent process, 이하 같다)는 비영속적 프로세스로 결정될 수 있다.
영속적 프로세스 중, 커널 프로세스 및 유저에 의해 영속성을 지정 받은 프로세스는 자식 프로세스에게 영속성을 상속할 수 있다.
다만, 상술한 바와 같이, 일부의 영속적 프로세스는 자식 프로세스에 영속성을 상속하지 않는다. 이를테면, 컴퓨팅 시스템의 부팅 중에 생성되는 쉘(shell)은 모든 프로세스의 부모 프로세스(parent process)가 되므로, 자식 프로세스에게 영속성을 상속하게 되면 컴퓨팅 시스템에서 처리되는 모든 프로세스가 영속성을 갖게 되므로, 이러한 경우에는 영속성을 상속하지 않도록 지정되는 것이다.
한편, 이러한 프로세스의 영속성은, 별도의 자료구조 내의 영속성 필드(persistence field in a data structure)에 저장되어 관리될 수도 있다. 이러한 필드에서 비영속적 프로세스는, 이를테면 영속성의 식별 값이 0으로 설정될 수 있고, 영속적 프로세스이고 자식 프로세스에게 영속성을 상속하는 프로세스는 1, 영속적 프로세스이지만 자식 프로세스에게 영속성을 상속하지 않는 프로세스는 2로 각각 식별 값이 설정될 수 있다.
이 경우, 상기한 바와 같이, 프로세서의 영속성이 지정되거나 도중에 해제되는 경우에는 이러한 영속성 필드 값이 변경되는 과정이 수행된다.
비영속적 프로세스에 대해 영속성을 지정하게 되면, DRAM(122)에 할당되었던 페이지들을 SCM(121)으로 옮기고 이 과정을 성공적으로 마친 경우, 상기한 영속성 필드 값을 0에서 1로 변경한다.
구체적으로는, DRAM(122)에 할당된 페이지들을 프로세스의 영역 기술자(region describer)인 vm_area_struct 자료구조의 리스트를 통해 찾고, DRAM(122)의 페이지의 내용을 SCM(121) 내에 새로 할당되는 페이지에 복사하고, 이에 대한 PTE를 수정한다. 이러한 과정에서 메모리 부족 등의 이유로 영속성 지정 과정이 실패되면, DRAM(122)으로 페이지들을 복구시키고, 영속성 지정 실패 보고를 리턴한다.
영속적 프로세스로 지정되었던 프로세스에 대한 영속성의 해제 과정은 상기 내용과 반대이다.
다시 도 5를 참조하여 컴퓨팅 방법을 설명하면, 이렇게 단계(S510)에서 임의의 프로세스에 대해 영속적 프로세스인지의 여부가 식별되고, 만약 영속적 프로세스인 경우에는 단계(S520)에서 SCM(121)을 메인 메모리로 선택하여 프로세스가 수행되며(S540), 그렇지 않고 비영속적 프로세스라면 단계(S530)에서 DRAM(122)을 메인 메모리로 선택하여 프로세스가 수행된다(S540).
도 6은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 있어서, 새로운 프로세스가 실행되는 경우, 영속적 프로세스인지의 여부를 판단하는 과정을 도시한다.
단계(S610)에서 새로운 프로세스가 실행되는 경우, 단계(S620)에서 상기 새로운 프로세스에 대한 영속성이 이미 지정되어 있는지, 즉 영속성 지정이 이미 존재하는 지의 여부가 판단된다. 만약 영속성이 이미 지정되어 있다면, 도 5의 단계(S510) 이하가 수행된다.
그러나, 영속성이 미리 지정되지 않았다면, 단계(S630)에서 상기 새로 실행되는 프로세스에 연관된 프로세스가 존재하는 지의 여부가 판단된다. 연관된 프로세스가 존재한다면, 단계(S640)에서 연관 프로세서의 영속성을 상속하고 다시 도 5의 단계(S510) 이하가 수행된다.
그렇지 않고, 단계(S630)에서 연관 프로세서가 존재하지 않는 것으로 판단되면, 사용자 인터페이스를 통해 영속성 지정 입력을 수신한 후(S650), 도 5의 단계(S510)이하가 수행된다.
상세한 내용은 도 2 내지 도 5를 참조하여 상술한 바와 같다.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 있어서, 컴퓨팅 시스템의 전원이 차단되는 경우의 처리 방법을 도시한다.
컴퓨팅 시스템(100)에서 프로세스들이 수행되는 도중, 시스템 전원의 차단이 감지되는 경우(S710), 컴퓨팅 시스템(100)에 포함되는 임시 전원 공급부(도시 되지 않음)로부터 임계 시간 동안 전원이 공급된다.
그러면, 단계(S720)에서, 상기 임계 시간 내에 프로세서의 레지스터, 캐시 데이터, 컴퓨팅 시스템의 디바이스 정보 등, 시스템 재구동을 위한 필요 정보들이 SCM(121)으로 백업된다.
여기서, 상기 임시 전원 공급부는, 특정의 물리적 장치로 한정되는 것이 아니라, 시스템 내에 간단히 삽입될 수 있는 축전지(battery), 무정전 전원 공급 시스템(UPS), 듀얼 전원 공급 라인 등 어떤 형태가 될 수도 있다.
그리고, 상기 임계 시간은 설정에 의해 다르게 지정될 수 있으나, 통상적으로 수 밀리 세컨드 내지 수십 밀리 세컨드 수준에서 지정될 수 있다.
이러한 백업 과정을 통해, 임의 시점의 갑작스러운 전원 차단 이벤트에서도 영속적 프로세스에 관한 모든 데이터 및 시스템 재가동 시 필요한 데이터들이 손실되지 않는 것이 보장된다.
실시예에 따라서는, 컴퓨팅 시스템에 오류가 발생되는 경우 사용자에 의해 강제로 시스템이 리셋 되고, 그러면 상기 과정을 통해 시스템이 오류 전의 상태로 복구되는 응용도 가능하다.
한편, 상기 단계(720)의 백업 과정에서는, SCM(121) 내의 임의의 주소에 백업되는 것도 가능하나, 본 발명의 일 실시예에 따르면, 그러한 백업을 위한 공간을 미리 지정해 두고, 전원 차단 등의 이벤트가 감지되면 항상 지정된 곳에 상기 백업을 하는 것도 가능하다.
도 8은 본 발명의 일 실시예에 따라, 도 7의 전원 공급 차단 이벤트 이후에 컴퓨팅 시스템에 전원 공급이 재개되는 경우의 처리 방법을 도시한다.
컴퓨팅 시스템에 전원 공급이 재개되면, 단계(S810)에서는, 도 7의 단계(S720)에서 백업되었던 프로세서 레지스터, 캐시 데이터, 디바이스 정보 등의 데이터를 다시 원위치로 복구(restore)한다.
상기한 바와 같이 단계(S720)의 백업 과정에서 SCM(121) 내에 백업을 위한 전용 공간이 지정되어 있던 경우라면, 이러한 복구 과정에서 상기 전용 공간의 어드레스로 바로 접근하여 데이터를 복구할 수 있을 것이다.
시스템 재가동 이후에는 단계(S510) 이하의 프로세스 수행이 계속된다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 시스템을 도시한다.
도 2는 본 발명의 일 실시예에 따른 컴퓨팅 시스템에서 영속적 프로세스의 처리 방법을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 컴퓨팅 시스템에서 비영속적 프로세스의 처리 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 컴퓨팅 시스템 내에서 SCM과 DRAM을 인식하는 물리 메모리 맵을 도시한다.
도 5는 본 발명의 일 실시예에 따른 컴퓨팅 방법을 도시한다.
도 6은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 있어서, 새로운 프로세스가 실행되는 경우, 영속적 프로세스인지의 여부를 판단하는 과정을 도시한다.
도 7은 본 발명의 일 실시예에 따른 컴퓨팅 방법에 있어서, 컴퓨팅 시스템의 전원이 차단되는 경우의 처리 방법을 도시한다.
도 8은 본 발명의 일 실시예에 따라, 컴퓨팅 시스템에 전원 공급이 재개되는 경우의 처리 방법을 도시한다.

Claims (17)

  1. 복수 개의 프로세스에 대한 컴퓨팅 연산을 수행하는 프로세서;
    상기 복수 개의 프로세스 중 영속적 프로세스로 지정된 적어도 일부의 프로세스에 연관된 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 NVRAM;
    상기 복수 개의 프로세스 중 영속적 프로세스로 지정되지 않은 다른 일부의 프로세스에 연관된 컴퓨팅 연산에 있어서 메인 메모리로서 동작하는 휘발성 메모리; 및
    상기 NVRAM 및 상기 휘발성 메모리 중 적어도 하나를 제어하는 메모리 제어부
    를 포함하는, 컴퓨팅 시스템.
  2. 제1항에 있어서,
    상기 NVRAM은 SCM(Storage Class Memory)인, 컴퓨팅 시스템.
  3. 삭제
  4. 제1항에 있어서,
    상기 복수 개의 프로세스 외에 새로운 제1 프로세스가 실행되는 경우,
    상기 복수 개의 프로세스 중 상기 제1 프로세스에 연관된 프로세스가 존재한다면 상기 제1 프로세스는 상기 연관된 프로세스로부터 영속성 - 상기 영속성은 영속적 프로세스로 지정된 것인지 영속적 프로세스로 지정되지 않은 것인지의 여부에 대응하는 프로세스의 속성임 - 을 상속받는, 컴퓨팅 시스템.
  5. 제1항에 있어서,
    상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 상기 프로세서 및 상기 NVRAM 에 임계 시간 동안 전원을 공급하는 임시 전원 공급부를 더 포함하고,
    상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부가 상기 임계시간 내에 상기 NVRAM에 저장되는, 컴퓨팅 시스템.
  6. 제5항에 있어서,
    상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 상기 프로세서의 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보 중 적어도 일부는, 상기 NVRAM 내의 기설정된 제1 주소에 저장되는, 컴퓨팅 시스템.
  7. 제6항에 있어서,
    상기 컴퓨팅 시스템의 전원 공급이 재개되는 경우, 상기 NVRAM 내의 기설정된 제1 주소로부터, 상기 프로세서의 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보 중 적어도 하나가 복구(restore)되는, 컴퓨팅 시스템.
  8. 제2항에 있어서,
    상기 SCM은, PCRAM(Phase change RAM), MRAM(Magnetroresistive RAM), FeRAM(Ferroelectric RAM) 중 적어도 하나인, 컴퓨팅 시스템.
  9. 제2항에 있어서,
    상기 메모리 제어부는, 상기 복수 개의 프로세스에 대한 컴퓨팅 연산 과정에서 생성되는 슬랩 캐시(Slab Cache) 및 파일 페이지를 상기 SCM 내에 저장하는, 컴퓨팅 시스템.
  10. 제9항에 있어서,
    상기 메모리 제어부는, 상기 컴퓨팅 시스템의 부팅 과정에서 상기 휘발성 메모리에 대한 페이징 공간을 할당하고, 지역 기술자(zone descriptor)및 페이지 기술자의 배열을 통해 상기 휘발성 메모리를 관리하는, 컴퓨팅 시스템.
  11. 제9항에 있어서,
    상기 메모리 제어부는, 상기 컴퓨팅 시스템이 턴 온 되거나 또는 턴 오프되는 경우, 상기 복수 개의 프로세스 중 영속적 프로세스로 선택되지 않은 일부의 프로세스에 대한 컴퓨팅 연산 과정에서 생성되어 상기 SCM에 저장된 슬랩 캐시(Slab Cache) 및 페이지 관련 데이터를 상기 SCM으로부터 삭제하는, 컴퓨팅 시스템.
  12. 컴퓨팅 시스템의 프로세서가 SCM(Storage Class Memory)을 메인 메모리로 활용하여, 복수 개의 프로세스 중 영속적 프로세스로 지정된 적어도 일부의 프로세스에 연관된 컴퓨팅 연산을 수행하는 단계; 및
    상기 프로세서가 휘발성 메모리를 메인 메모리로 활용하여, 상기 복수 개의 프로세스 중 영속적 프로세스로 지정되지 않은 다른 일부의 프로세스에 연관된 컴퓨팅 연산을 수행하는 단계
    를 포함하는, 컴퓨팅 방법.
  13. 제12항에 있어서,
    상기 복수 개의 프로세스 이외에 새로운 제1 프로세스가 실행되는 경우, 상기 복수 개의 프로세서 중 상기 제1 프로세스에 연관된 프로세스가 영속적인 프로세스로 선택된 것인지의 여부에 기초하여 상기 제1 프로세스의 영속성 - 상기 영속성은 영속적 프로세스로 지정된 것인지 영속적 프로세스로 지정되지 않은 것인지의 여부에 대응하는 프로세스의 속성임 - 을 판단하는 단계
    를 더 포함하는, 컴퓨팅 방법.
  14. 제12항에 있어서,
    상기 컴퓨팅 시스템의 전원 공급이 차단되는 경우, 임시 전원 공급부로부터 임계 시간 동안 전원을 공급받아, 상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부를 상기 SCM에 저장하는 단계
    를 더 포함하는, 컴퓨팅 방법.
  15. 제14항에 있어서,
    상기 프로세서의 레지스터, 캐시 데이터 및 디바이스 상태 정보 중 적어도 일부는, 상기 SCM 내의 기설정된 제1 주소에 저장되는, 컴퓨팅 방법.
  16. 제15항에 있어서,
    상기 컴퓨팅 시스템의 전원 공급이 재개되는 경우, 상기 SCM 내의 기설정된 제1 주소로부터, 상기 프로세서의 레지스터, 상기 캐시 데이터 및 상기 디바이스 상태 정보 중 적어도 하나를 복구(restore)하는 단계
    를 더 포함하는 컴퓨팅 방법.
  17. 제12항 내지 제16항 중 어느 한 항의 방법을 수행하기 위한 프로그램이 기록되어 있는 컴퓨터 판독 가능 기록 매체.
KR1020090132736A 2009-12-29 2009-12-29 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법 KR101104361B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090132736A KR101104361B1 (ko) 2009-12-29 2009-12-29 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090132736A KR101104361B1 (ko) 2009-12-29 2009-12-29 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20110076116A KR20110076116A (ko) 2011-07-06
KR101104361B1 true KR101104361B1 (ko) 2012-01-16

Family

ID=44916056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090132736A KR101104361B1 (ko) 2009-12-29 2009-12-29 Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101104361B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101443678B1 (ko) 2013-06-04 2014-09-26 명지대학교 산학협력단 하이브리드 메인 메모리와 플래시 메모리 저장 장치의 버퍼 캐시 방법
US10884655B2 (en) 2018-10-24 2021-01-05 Samsung Electronics Co., Ltd. Storage modules, methods of operating a storage module, and methods of operating a host controlling a storage module

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320135A (ja) * 1997-01-30 1998-12-04 Aiwa Co Ltd 適応型電力障害リカバリシステム
KR20000013018A (ko) * 1998-08-04 2000-03-06 윤종용 메모리의 데이터 관리장치
JP2001142600A (ja) 1999-11-15 2001-05-25 Canon Inc 多国語表示切替装置およびその切替方法
KR20070033916A (ko) * 2005-09-22 2007-03-27 산요덴키가부시키가이샤 제어 장치 및 휴대 단말기

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320135A (ja) * 1997-01-30 1998-12-04 Aiwa Co Ltd 適応型電力障害リカバリシステム
KR20000013018A (ko) * 1998-08-04 2000-03-06 윤종용 메모리의 데이터 관리장치
JP2001142600A (ja) 1999-11-15 2001-05-25 Canon Inc 多国語表示切替装置およびその切替方法
KR20070033916A (ko) * 2005-09-22 2007-03-27 산요덴키가부시키가이샤 제어 장치 및 휴대 단말기

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101443678B1 (ko) 2013-06-04 2014-09-26 명지대학교 산학협력단 하이브리드 메인 메모리와 플래시 메모리 저장 장치의 버퍼 캐시 방법
US10884655B2 (en) 2018-10-24 2021-01-05 Samsung Electronics Co., Ltd. Storage modules, methods of operating a storage module, and methods of operating a host controlling a storage module

Also Published As

Publication number Publication date
KR20110076116A (ko) 2011-07-06

Similar Documents

Publication Publication Date Title
US9946610B2 (en) Memory device and method for saving and restoring data using nonvolatile memory
CN110795206B (zh) 用于促进集群级缓存和内存空间的系统和方法
EP3502877B1 (en) Data loading method and apparatus for virtual machines
JP4683218B2 (ja) 高速再起動方法および情報処理装置ならびにプログラム
US8433888B2 (en) Network boot system
WO2011033600A1 (ja) 仮想記憶管理装置
KR20100091544A (ko) 메모리 시스템 및 그 마모도 관리 방법
US20080082745A1 (en) Storage system for virtualizing control memory
US11640244B2 (en) Intelligent block deallocation verification
US11836381B2 (en) Memory system and method of controlling nonvolatile memory using namespace attributes
US20190324868A1 (en) Backup portion of persistent memory
KR101104361B1 (ko) Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
US8478956B2 (en) Computing system and method controlling memory of computing system
CN107832097B (zh) 数据加载方法及装置
US10936045B2 (en) Update memory management information to boot an electronic device from a reduced power mode
US9063656B2 (en) System and methods for digest-based storage
WO2011081232A1 (ko) Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
US11995318B2 (en) Deallocated block determination
JP5161600B2 (ja) 情報処理装置およびデータ復旧方法
KR101151434B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 동작 방법
JPH10124359A (ja) キャッシュ選択方法およびデータ処理システム
US20230409490A1 (en) Data security when tiering volatile and non-volatile byte-addressable memory
KR20180082232A (ko) 비휘발성 메모리를 이용하는 영속적 dram 스토리지 및 그 작동 방법
KR101218865B1 (ko) 컴퓨팅 시스템 및 방법
WO2018075676A1 (en) Efficient flash management for multiple controllers

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160105

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171212

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181227

Year of fee payment: 8