KR20140030383A - 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법 - Google Patents

컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법 Download PDF

Info

Publication number
KR20140030383A
KR20140030383A KR1020120093851A KR20120093851A KR20140030383A KR 20140030383 A KR20140030383 A KR 20140030383A KR 1020120093851 A KR1020120093851 A KR 1020120093851A KR 20120093851 A KR20120093851 A KR 20120093851A KR 20140030383 A KR20140030383 A KR 20140030383A
Authority
KR
South Korea
Prior art keywords
random access
access memory
data
nonvolatile
memory
Prior art date
Application number
KR1020120093851A
Other languages
English (en)
Inventor
박영진
정일규
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120093851A priority Critical patent/KR20140030383A/ko
Priority to US14/011,334 priority patent/US20140059269A1/en
Priority to CN201310378896.2A priority patent/CN103631533A/zh
Publication of KR20140030383A publication Critical patent/KR20140030383A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 컴퓨팅 장치에 관한 것이다. 본 발명의 컴퓨팅 장치은, 제 1 랜덤 액세스 메모리, 제 2 랜덤 액세스 메모리, 제 1 및 제 2 랜덤 액세스 메모리들을 제어하도록 구성되는 메모리 컨트롤러, 그리고 메모리 컨트롤러를 통해 제 1 및 제 2 랜덤 액세스 메모리들을 동작 메모리로 사용하는 프로세서로 구성된다. 메모리 컨트롤러는 제 1 및 제 2 랜덤 액세스 메모리들 중 프로세서로부터 전송되는 커맨드에 의해 선택된 메모리를 액세스한다.

Description

컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법{COMPUTING DEVICE AND OPERATING METHOD OF COMPUTING DEVICE}
본 발명은 전자 장치에 관한 것으로, 더 상세하게는 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비소 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다.
통상적인 컴퓨팅 장치는 동작 메모리로 DRAM, SRAM 등과 같은 휘발성 메모리를 사용하고, 스토리지로 HDD, 플래시 메모리와 같은 불휘발성 메모리를 사용한다. 휘발성 메모리는 전원이 차단될 때, 저장하고 있던 데이터를 모두 소실한다. 따라서, 전원 공급이 재개될 때, 컴퓨팅 장치는 휘발성 메모리에 데이터를 다시 저장해야 한다. 컴퓨팅 장치의 성능을 개선하기 위하여, PRAM, MRAM, FeRAM, RRAM 등과 같은 불휘발성 랜덤 액세스 메모리를 컴퓨팅 장치의 동작 메모리로 사용하고자 하는 연구가 진행되고 있다.
본 발명의 목적은 향상된 동작 성능을 갖는 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법을 제공하는 데에 있다.
본 발명의 실시 예에 따른 컴퓨팅 장치은, 제 1 랜덤 액세스 메모리; 제 2 랜덤 액세스 메모리; 상기 제 1 및 제 2 랜덤 액세스 메모리들을 제어하도록 구성되는 메모리 컨트롤러; 그리고 상기 메모리 컨트롤러를 통해 상기 제 1 및 제 2 랜덤 액세스 메모리들을 동작 메모리로 사용하도록 구성되는 프로세서를 포함하고, 상기 메모리 컨트롤러는 상기 제 1 및 제 2 랜덤 액세스 메모리들 중 상기 프로세서로부터 전송되는 커맨드에 의해 선택된 메모리를 액세스하도록 구성된다.
실시 예로서, 상기 제 1 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리이고, 상기 제 2 랜덤 액세스 메모리는 휘발성 랜덤 액세스 메모리이다.
실시 예로서, 상기 프로세서로부터 정상 액세스 커맨드가 전송될 때 상기 메모리 컨트롤러는 상기 제 2 랜덤 액세스 메모리를 액세스하고, 상기 프로세서로부터 불휘발성 액세스 커맨드가 전송될 때 상기 메모리 컨트롤러는 상기 제 1 랜덤 액세스 메모리를 액세스한다.
실시 예로서, 상기 메모리 컨트롤러는, 상기 제 1 랜덤 액세스 메모리에 저장되는 데이터에 대한 정보인 불휘발성 데이터 테이블을 관리하도록 구성된다.
실시 예로서, 상기 불휘발성 데이터 테이블은, 데이터가 저장되는 어드레스, 데이터와 관련된 프로세스, 및 데이터의 식별자에 대한 정보를 포함한다.
실시 예로서, 상기 메모리 컨트롤러는 상기 불휘발성 데이터 테이블을 상기 제 1 랜덤 액세스 메모리에 저장하도록 구성된다.
실시 예로서, 상기 컴퓨팅 장치에 전원이 공급될 때, 상기 메모리 컨트롤러는 상기 제 1 랜덤 액세스 메모리로부터 상기 불휘발성 데이터 테이블을 읽도록 구성된다.
실시 예로서, 상기 제 1 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리의 제 1 부분이고, 상기 제 2 랜덤 액세스 메모리는 상기 불휘발성 랜덤 액세스 메모리의 제 2 부분이다.
실시 예로서, 상기 컴퓨팅 장치에 전원이 공급될 때, 상기 메모리 컨트롤러는 상기 제 2 랜덤 액세스 메모리를 리셋하도록 구성된다.
실시 예로서, 상기 프로세서로부터 정상 리셋 커맨드가 수신될 때, 상기 메모리 컨트롤러는 상기 제 2 랜덤 액세스 메모리를 리셋하도록 구성된다.
실시 예로서, 상기 프로세서로부터 불휘발성 리셋 커맨드가 수신될 때, 상기 메모리 컨트롤러는 상기 제 1 랜덤 액세스 메모리를 리셋하도록 구성된다.
제 1 랜덤 액세스 메모리 및 제 2 랜덤 액세스 메모리를 동작 메모리로 사용하는 본 발명의 실시 예에 따른 컴퓨팅 장치의 동작 방법은, 데이터를 생성하는 단계; 상기 생성된 데이터가 제 1 타입 데이터인지 또는 제 2 타입 데이터인지 판별하는 단계; 그리고 상기 생성된 데이터가 상기 제 1 타입 데이터이면 상기 생성된 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하고, 상기 생성된 데이터가 상기 제 2 타입 데이터이면 상기 생성된 데이터를 상기 제 2 랜덤 액세스 메모리에 저장하는 단계를 포함한다.
실시 예로서, 상기 제 1 타입 데이터는 불휘발성으로 관리되는 데이터이고, 상기 제 2 타입 데이터는 휘발성으로 관리되는 데이터이고, 상기 제 1 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리이고, 상기 제 2 랜덤 액세스 메모리는 휘발성 랜덤 액세스 메모리이다.
실시 예로서, 상기 제 1 타입의 추가 데이터를 생성하는 단계; 상기 제 1 랜덤 액세스 메모리의 자유 저장 용량이 상기 추가 데이터의 용량보다 큰지 판별하는 단계; 그리고 상기 자유 저장 용량이 상기 추가 데이터의 용량보다 크면 상기 추가 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하고, 상기 자유 저장 용량이 상기 추가 데이터의 용량보다 적으면 상기 제 1 랜덤 액세스 메모리에 저장된 데이터 중 콜드 데이터를 스토리지로 이동하고, 상기 추가 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하는 단계를 더 포함한다.
실시 예로서, 상기 제 1 타입의 데이터의 액세스 요청을 생성하는 단계; 상기 액세스 요청에 대응하는 상기 제 1 타입의 데이터가 상기 스토리지에 저장되어 있는지 판별하는 단계; 그리고 상기 제 1 타입의 데이터가 상기 스토리지에 저장되어 있지 않고 상기 제 1 랜덤 액세스 메모리에 저장되어 있으면 상기 제 1 타입의 데이터를 액세스하고, 상기 제 1 타입의 데이터가 상기 스토리지에 저장되어 있으면 상기 제 1 타입의 데이터를 상기 제 1 랜덤 액세스 메모리로 이동하고 상기 제 1 랜덤 액세스 메모리에서 상기 제 1 타입의 데이터를 액세스하는 단계를 더 포함한다.
실시 예로서, 상기 제 1 랜덤 액세스 메모리에 저장된 데이터를 삭제하는 단계; 그리고 상기 삭제에 따라 상기 제 1 랜덤 액세스 메모리의 자유 저장 용량이 기준값 이상이 되면, 상기 스토리지로 이동된 콜드 데이터를 상기 제 1 랜덤 액세스 메모리로 이동하는 단계를 더 포함한다.
실시 예로서, 상기 제 1 타입 데이터는 불휘발성으로 관리되는 데이터이고, 상기 제 2 타입 데이터는 휘발성으로 관리되는 데이터이고, 상기 제 1 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리의 제 1 영역이고, 상기 제 2 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리의 제 2 영역이다.
실시 예로서, 상기 컴퓨팅 장치에 전원이 공급될 때, 상기 제 1 랜덤 액세스 메모리는 리셋되지 않고, 상기 제 2 랜덤 액세스 메모리는 리셋된다.
실시 예로서, 상기 제 1 타입의 추가 데이터를 생성하는 단계; 상기 제 1 랜덤 액세스 메모리의 자유 저장 용량이 상기 추가 데이터의 용량보다 큰지 판별하는 단계; 그리고 상기 자유 저장 용량이 상기 추가 데이터의 용량보다 크면 상기 추가 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하고, 상기 자유 저장 용량이 상기 추가 데이터의 용량보다 적으면 상기 제 2 랜덤 액세스 메모리의 용량을 기준 용량만큼 감소시키고 상기 제 2 랜덤 액세스 메모리의 용량을 상기 기준 용량만큼 증가시키고 상기 추가 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하는 단계를 더 포함한다.
실시 예로서, 상기 제 1 랜덤 액세스 메모리에 저장된 데이터를 삭제하는 단계; 그리고 상기 삭제에 따라 상기 제 1 랜덤 액세스 메모리의 자유 저장 용량이 기준값 이상이 되면, 상기 제 1 랜덤 액세스 메모리의 저장 용량을 상기 기준값 만큼 감소시키고 상기 제 2 랜덤 액세스 메모리의 저장 용량을 상기 기준값 만큼 증가시키는 단계를 더 포함한다.
본 발명의 실시 예들에 따르면, 컴퓨팅 장치의 동작 메모리의 일부는 휘발성으로 관리되고, 일부는 불휘발성으로 관리된다. 주요 데이터는 불휘발성 메모리에서 관리되고, 보조 데이터는 휘발성 메모리에서 관리된다. 따라서, 향상된 동작 성능을 갖는 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법이 제공된다.
도 1은 본 발명의 제 1 실시 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
도 2는 도 1의 컴퓨팅 장치의 동작 방법의 제 1 예를 보여주는 순서도이다.
도 3은 본 발명의 실시 예에 따른 불휘발성 데이터 테이블의 예를 보여준다.
도 4는 응용 프로그램(또는 프로세스)의 코딩 시에 사용되는 함수들의 예를 보여준다.
도 5는 도 1의 컴퓨팅 장치의 동작 방법의 제 2 예를 보여주는 순서도이다.
도 6은 본 발명의 제 2 실시 예에 따른 컴퓨팅 장치를 보여주는 블록도이다.
도 7은 도 6의 컴퓨팅 장치의 동작 방법의 제 1 예를 보여주는 순서도이다.
도 8은 도 6의 컴퓨팅 장치의 동작 방법의 제 2 예를 보여주는 순서도이다.
도 9는 도 1 또는 도 6을 참조하여 설명된 컴퓨팅 장치의 동작 방법의 제 3 예를 보여주는 순서도이다.
도 10은 본 발명의 실시 예에 따른 컴퓨팅 장치에서 구동되는 소프트웨어 계층을 보여주는 블록도이다
도 11은 도 10의 운영 체제가 불휘발성 영역 및 휘발성 영역을 관리하는 방법의 제 1 예를 보여주는 순서도이다.
도 12는 도 10의 운영 체제가 불휘발성 영역 및 휘발성 영역을 관리하는 방법의 제 2 예를 보여주는 순서도이다.
도 13은 도 10의 운영 체제가 불휘발성 영역 및 휘발성 영역을 관리하는 방법의 제 3 예를 보여주는 순서도이다.
도 14는 도 10의 운영 체제가 불휘발성 영역 및 휘발성 영역을 관리하는 방법의 제 4 예를 보여주는 순서도이다.
도 15는 도 10의 운영 체제가 불휘발성 영역 및 휘발성 영역을 관리하는 방법의 제 5 예를 보여주는 순서도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 제 1 실시 예에 따른 컴퓨팅 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 장치(100)는 프로세서(110), 메모리 컨트롤러(120), 불휘발성 랜덤 액세스 메모리(130), 휘발성 랜덤 액세스 메모리(140), 스토리지 컨트롤러(150), 불휘발성 스토리지(160), 모뎀(170), 그리고 사용자 인터페이스(180)를 포함한다.
프로세서(110)는 컴퓨팅 장치(110)의 제반 동작을 제어하도록 구성된다. 프로세서(110)는 논리 연산을 수행할 수 있고, 컴퓨팅 장치(110)의 구성 요소들을 각각 제어할 수 있다. 프로세서(110)는 범용 프로세서, 어플리케이션 프로세서 등을 포함할 수 있다.
메모리 컨트롤러(120)는 프로세서(110)의 제어에 따라 불휘발성 랜덤 액세스 메모리(130) 및 휘발성 랜덤 액세스 메모리(140)를 제어하도록 구성된다. 메모리 컨트롤러(120)는 불휘발성 랜덤 액세스 메모리(130) 및 휘발성 랜덤 액세스 메모리(140)의 쓰기, 읽기 및 소거를 제어할 수 있다. 불휘발성 랜덤 액세스 메모리(130) 및 휘발성 랜덤 액세스 메모리(140)는 프로세서(110)의 동작 메모리일 수 있다.
불휘발성 랜덤 액세스 메모리(130)는 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함할 수 있다. 휘발성 랜덤 액세스 메모리(140)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등을 포함할 수 있다.
메모리 컨트롤러(120)는 아비터(121)를 포함한다. 아비터(121)는 불휘발성 랜덤 액세스 메모리(130) 및 휘발성 랜덤 액세스 메모리(140) 각각의 어드레스 및 용량을 판별하고, 판별 결과에 대한 정보를 프로세서(110)에 전달할 수 있다.
아비터(121)는 프로세서(110)로부터 전달되는 액세스 커맨드에 응답하여, 불휘발성 랜덤 액세스 메모리(130)를 액세스할지 휘발성 랜덤 액세스 메모리를 액세스할지 판별할 수 있다. 예를 들어, 아비터(121)는 프로세서(110)로부터 전달되는 어드레스에 따라, 불휘발성 랜덤 액세스 메모리(130) 및 휘발성 랜덤 액세스 메모리(140) 중 액세스할 메모리를 선택할 수 있다. 아비터(121)는 프로세서(110)로부터 전달되는 커맨드의 종류에 따라, 불휘발성 랜덤 액세스 메모리(130) 및 휘발성 랜덤 액세스 메모리(140) 중 액세스할 메모리를 선택할 수 있다.
메모리 컨트롤러(120)는 불휘발성 데이터 테이블(NDT)을 구동하도록 구성된다. 불휘발성 데이터 테이블(NDT)은 불휘발성 랜덤 액세스 메모리(130)에 저장되는 데이터에 대한 정보를 포함한다.
메모리 컨트롤러(120)는 불휘발성 랜덤 액세스 메모리(130)에 저장된 불휘발성 데이터 테이블(NDT)을 읽고, 읽어진 불휘발성 데이터 테이블(NDT)을 구동할 수 있다. 메모리 컨트롤러(120)에서 갱신되는 불휘발성 데이터 테이블(NDT)은 미리 설정된 조건에 따라 불휘발성 랜덤 액세스 메모리(130)에 저장될 수 있다.
메모리 컨트롤러(120)는 불휘발성 랜덤 액세스 메모리(130)에 저장된 불휘발성 데이터 테이블(NDT)을 읽어 구동하는 대신, 불휘발성 랜덤 액세스 메모리(130)에 저장된 불휘발성 데이터 테이블(NDT)을 직접 액세스하는 방식으로, 불휘발성 데이터 테이블(NDT)을 관리할 수 있다.
스토리지 컨트롤러(150)는 프로세서(110)의 제어에 따라 불휘발성 스토리지(160)를 제어할 수 있다. 스토리지 컨트롤러(150)는 불휘발성 스토리지(160)의 쓰기, 읽기 및 소거를 제어할 수 있다. 불휘발성 스토리지(160)는 컴퓨팅 장치(100)의 보조 기억 장치로 사용될 수 있다. 불휘발성 스토리지(160)는 장기적인 데이터의 저장을 위해 사용될 수 있다. 불휘발성 스토리지(160)는 HDD (Hard Disk Drive), SSD (Solid State Drive), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함할 수 있다.
모뎀(170)은 프로세서(110)의 제어에 따라 외부와 통신을 수행할 수 있다. 모뎀(170)은 이더넷(Ethernet), 블루투스(Bluetooth), WiFi, WiMax, CDMA, LTE, ATDMB, NFC 등의 다양한 통신 표준에 따라 외부와 통신할 수 있다.
사용자 인터페이스(180)는 프로세서(110)의 제어에 따라 외부와 신호를 교환할 수 있다. 사용자 인터페이스(180)는 키보드, 마우스, 터치 패드, 터치 패널, 마이크, 카메라, 센서 등과 같은 사용자 입력 인터페이스를 포함할 수 있다. 사용자 인터페이스(180)는 모니터, 스크린, 스피커, 램프, 모터 등과 같은 사용자 출력 인터페이스를 포함할 수 있다. 사용자 인터페이스(180)는 USB 포트, SATA 포트, SD 포트, SDHC 포트 등과 같은 통신 포트를 포함할 수 있다.
도 2는 도 1의 컴퓨팅 장치(100)의 동작 방법의 제 1 예를 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S110 단계에서, 프로세서(110)는 메모리 컨트롤러(120)에 불휘발성 랜덤 액세스 메모리(130)의 액세스 요청을 전송한다. 액세스 요청은 불휘발성 랜덤 액세스 메모리(130)를 가리키는 어드레스 또는 불휘발성 랜덤 액세스 메모리(130)를 가리키는 커맨드를 포함할 수 있다.
S120 단계에서, 프로세서(110)로부터의 액세스 요청에 따라, 메모리 컨트롤러(120)는 불휘발성 랜덤 액세스 메모리(130)를 액세스한다. 아비터(121)는 액세스 요청에 따라 불휘발성 랜덤 액세스 메모리(130)에 대한 요청임을 판별할 수 있다. 메모리 컨트롤러(120)는 불휘발성 데이터 테이블(NDT)을 참조하여, 불휘발성 랜덤 액세스 메모리(130)를 액세스할 수 있다.
S130 단계에서, 메모리 컨트롤러(120)는 불휘발성 랜덤 액세스 메모리(130)에 저장된 불휘발성 데이터 테이블(NDT)을 갱신한다. 메모리 컨트롤러(120)가 불휘발성 랜덤 액세스 메모리(130)로부터 불휘발성 데이터 테이블(NDT)을 읽어 구동하는 경우, 메모리 컨트롤러(120)는 구동되는 불휘발성 데이터 테이블(NDT)이 갱신될 때마다, 불휘발성 데이터 테이블(NDT)이 미리 정해진 횟수만큼 갱신될 때마다, 불휘발성 데이터 테이블(NDT)이 갱신된 후 미리 정해진 시간이 경과할 때마다, 또는 미리 정해진 스케줄에 따라 불휘발성 데이터 테이블(NDT)을 갱신할 수 있다. 메모리 컨트롤러(120)가 불휘발성 랜덤 액세스 메모리(130)에 저장된 불휘발성 데이터 테이블(NDT)을 직접 액세스하여 관리하는 경우, 메모리 컨트롤러(120)는 불휘발성 랜덤 액세스 메모리(130)의 데이터가 변경될 때마다 불휘발성 데이터 테이블(NDT)을 갱신할 수 있다.
S140 단계에서, 프로세서(110)는 메모리 컨트롤러(120)에 휘발성 랜덤 액세스 메모리(140)의 액세스 요청을 전송한다. 액세스 요청은 휘발성 랜덤 액세스 메모리(140)를 가리키는 어드레스 또는 휘발성 랜덤 액세스 메모리(140)를 가리키는 커맨드를 포함할 수 있다.
S150 단계에서, 메모리 컨트롤러(120)는 휘발성 랜덤 액세스 메모리(140)를 액세스한다. 휘발성 랜덤 액세스 메모리(140)에 저장되는 데이터는 별도의 테이블에 의해 관리되지 않을 수 있다.
본 발명의 실시 예에 따르면, 컴퓨팅 장치(100)의 동작 메모리는 불휘발성 랜덤 액세스 메모리(130) 및 휘발성 랜덤 액세스 메모리(140)를 포함한다. 높은 중요도를 갖는 데이터는 불휘발성 랜덤 액세스 메모리(130)에 저장될 수 있다. 낮은 중요도를 갖는 데이터는 휘발성 랜덤 액세스 메모리(140)에 저장될 수 있다.
예시적으로, 동영상 재생 프로그램, 음악 재생 프로그램과 같이, 동작 데이터의 장기적인 보관이 요구되지 않는 데이터는 휘발성 랜덤 액세스 메모리(140)에 저장될 수 있다.
게임 프로그램의 임시 데이터 중 임시 세이브 데이터는 불휘발성 랜덤 액세스 메모리(130)에 저장되고, 나머지 동작 데이터는 휘발성 랜덤 액세스 메모리(140)에 저장될 수 있다.
모바일 시스템의 동작 데이터 중 절전 모드(sleep mode)와 연관된 동작 데이터는 불휘발성 랜덤 액세스 메모리(130)에 저장되고, 나머지 동작 데이터는 휘발성 랜덤 액세스 메모리(140)에 저장될 수 있다.
인터넷 브라우징 프로그램의 동작 데이터 중 패스워드와 같은 사용자 식별 정보는 불휘발성 랜덤 액세스 메모리(130)에 저장되고, 나머지 동작 데이터는 휘발성 랜덤 액세스 메모리(140)에 저장될 수 있다.
SQL (Structured Query Language)와 연관된 동작 데이터, 데이터 베이스와 연관된 동작 데이터, 오피스 프로그램과 연관된 동작 데이터, 가상화 프로그램과 연관된 동작 데이터, 메일 서버와 연관된 동작 데이터, 바이러스 백신 프로그램과 연관된 동작 데이터와 같이, 시스템의 운영 및 사무와 연관된 프로그램의 동작 데이터는 불휘발성 랜덤 액세스 메모리(130)에 저장될 수 있다.
중요 데이터가 불휘발성 랜덤 액세스 메모리(130)에 저장되면, 컴퓨팅 장치(100)가 오류로 인해 종료되거나, 컴퓨팅 장치(100)에 공급되는 전원이 차단되는 경우에도, 컴퓨팅 장치(100)에서 구동되는 프로그램들의 데이터가 보존된다.
예를 들어, 컴퓨팅 장치(100)가 오류 또는 전원 차단으로 인해 중지된 후 재구동되더라도, 게임 프로그램의 임시 세이브 데이터가 불휘발성 랜덤 액세스 메모리(130)에 저장되어 있으므로, 게임 프로그램은 정상적으로 재개될 수 있다. 마찬가지로, 모바일 시스템의 절전 모드와 연관된 데이터가 불휘발성 랜덤 액세스 메모리(130)에 저장되면, 모바일 시스템이 데이터 손상 없이 복구될 수 있다. 인터넷 브라우징 프로그램의 중요 데이터가 불휘발성 랜덤 액세스 메모리(130)에 저장되면, 마지막으로 방문한 인터넷 위치가 복구될 수 있다. SQL 및 데이터 베이스의 마지막 위치 및 마지막 데이터 또한 복구될 수 있다. 메일 서버의 주요 데이터가 불휘발성 랜덤 액세스 메모리(130)에 저장되면, 전송 중이던 메일의 소실이 방지된다. 가상화 프로그램과 연관된 주요 데이터가 불휘발성 랜덤 액세스 메모리(130)에 저장되면, 가상화 프로그램이 수행하던 마지막 프로세스가 복구될 수 있다. 오피스 프로그램과 연관된 주요 데이터가 불휘발성 랜덤 액세스 메모리(130)에 저장되면, 저장되지 않은 오피스 파일이 소실되는 것이 방지된다. 바이러스 백신 프로그램의 주요 데이터가 불휘발성 랜덤 액세스 메모리(130)에 저장되면, 바이러스의 추적 및 치료가 정상적으로 재개될 수 있다.
도 3은 본 발명의 실시 예에 따른 불휘발성 데이터 테이블의 예를 보여준다. 도 1 및 도 3을 참조하면, 불휘발성 데이터 테이블(NDT)은 어드레스 필드, 프로세스 필드 및 식별자 필드를 포함한다.
어드레스 필드는 데이터가 저장되어 있는 불휘발성 랜덤 액세스 메모리(130)의 어드레스에 대한 정보를 포함한다.
프로세스 필드는 데이터와 연관된 프로세스(예를 들어, 응용 프로그램)에 대한 정보를 포함한다.
식별자 필드 프로세스가 데이터를 식별하기 위해 부여한 고유한 식별자에 대한 정보를 포함한다.
예시적으로, 동작 데이터를 불휘발성 랜덤 액세스 메모리(130)에 저장할 지 또는 휘발성 랜덤 액세스 메모리(140)에 저장할 지의 여부는 응용 프로그램(또는 프로세스)에 의해 결정될 수 있다. 응용 프로그램(또는 프로세스)의 코딩(coding) 시에, 중요한 동작 정보는 불휘발성 랜덤 액세스 메모리(130)에 저장되고 기타 정보는 휘발성 랜덤 액세스 메모리(140)에 저장되도록 응용 프로그램(또는 프로세스)가 코딩될 수 있다.
특정한 응용프로그램(또는 프로세스)가 특정한 식별자를 갖는 변수를 호출할 때, 메모리 컨트롤러(120)는 불휘발성 데이터 테이블(NDT)을 참조하여, 해당 변수가 불휘발성 랜덤 액세스 메모리(130)에 저장되어 있는지 판별할 수 있다. 특정한 프로세스가 특정한 식별자를 갖는 변수를 정의할 때, 불휘발성 데이터 테이블(NDT)은 해당 프로세스, 식별자 및 어드레스를 포함하도록 갱신될 수 있다.
응용 프로그램(또는 프로세스)과 마찬가지로, 운영 체제 또한 동작 데이터를 불휘발성 랜덤 액세스 메모리(130) 및 휘발성 랜덤 액세스 메모리(140)에 나누어 저장하도록 설계될 수 있다. 예를 들어, 응용 프로그램의 백업, 프로그램 설치, 프로그램 삭제, 복구, 업데이트 등과 연관된 동작 데이터는 불휘발성 랜덤 액세스 메모리(130)에 저장될 수 있다.
도 4는 응용 프로그램(또는 프로세스)의 코딩 시에 사용되는 함수들의 예를 보여준다. 도 4를 참조하면, 휘발성 랜덤 액세스 메모리(140)로 정의된 함수들 및 불휘발성 랜덤 액세스 메모리(130)로 정의된 함수들이 사용될 수 있다.
함수(int)는 정수 형태의 변수를 정의하며, 정의된 변수는 휘발성 랜덤 액세스 메모리(140)에 저장된다. 함수(Mint)는 정수 형태의 변수를 정의하며, 정의된 변수는 불휘발성 랜덤 액세스 메모리(130)에 저장된다.
함수(string)은 문자열 형태의 변수를 정의하며, 정의된 변수는 휘발성 랜덤 액세스 메모리(140)에 저장된다. 함수(Mstring)은 문자열 형태의 변수를 정의하며, 정의된 변수는 불휘발성 랜덤 액세스 메모리(130)에 저장된다.
함수(char)는 문자 형태의 변수를 정의하며, 정의된 변수는 휘발성 랜덤 액세스 메모리(140)에 저장된다. 함수(Mchar)는 문자 형태의 변수를 정의하며, 정의된 변수는 불휘발성 랜덤 액세스 메모리(130)에 저장된다.
함수(double)는 소수를 포함하는 수 형태의 변수를 정의하며, 정의된 변수는 휘발성 랜덤 액세스 메모리(140)에 저장된다. 함수(Mdouble)는 소수를 포함하는 수 형태의 변수를 정의하며, 정의된 변수는 불휘발성 랜덤 액세스 메모리(130)에 저장된다.
함수(DataSet)는 SQL의 데이터 셋(DataSet) 형태의 변수를 정의하며, 정의된 변수는 휘발성 랜덤 액세스 메모리(140)에 저장된다. 함수(MDatSet)는 SQL의 데이터 셋(DataSet) 형태의 변수를 정의하며, 정의된 변수는 불휘발성 랜덤 액세스 메모리(130)에 저장된다.
도 4에 도시된 함수들 외에, 응용 프로그램(또는 프로세스)에서 사용되는 다양한 동작 데이터를 정의하는 함수들이 휘발성 랜덤 액세스 메모리(140) 및 불휘발성 랜덤 액세스 메모리(130)를 지정할 수 있도록 설계될 수 있다.
도 5는 도 1의 컴퓨팅 장치(100)의 동작 방법의 제 2 예를 보여주는 순서도이다. 예시적으로, 메모리 컨트롤러(120)의 동작이 도 5에 도시된다.
도 1 및 도 5를 참조하면, S210 단계에서, 컴퓨팅 장치(100)에 전원이 공급된다.
S220 단계에서, 메모리 컨트롤러(120)는 불휘발성 랜덤 액세스 메모리(130)로부터 불휘발성 데이터 테이블(NDT)을 읽는다.
S230 단계에서, 메모리 컨트롤러(120)는 프로세서(110)로부터의 요청에 따라, 불휘발성 데이터 테이블(NDT)을 참조하여 불휘발성 랜덤 액세스 메모리(130)를 액세스하거나 휘발성 랜덤 액세스 메모리(140)를 액세스한다.
S240 단계에서, 메모리 컨트롤러(120)는 미리 정해진 조건에 따라, 불휘발성 랜덤 액세스 메모리(130)에 저장된 불휘발성 데이터 테이블(NDT)을 갱신한다. 미리 정해진 조건은, 메모리 컨트롤러(120)에서 구동되는 불휘발성 데이터 테이블(NDT)이 갱신될 때마다, 불휘발성 데이터 테이블(NDT)이 미리 정해진 횟수만큼 갱신될 때마다, 불휘발성 데이터 테이블(NDT)이 갱신된 후 미리 정해진 시간이 경과할 때마다, 또는 미리 정해진 스케줄을 포함할 수 있다.
메모리 컨트롤러(120)가 불휘발성 랜덤 액세스 메모리(130)에 저장된 불휘발성 데이터 테이블(NDT)을 직접 액세스하여 관리하는 경우, S220 단계는 생략될 수 있다. 그리고, S240 단계의 미리 정해진 조건은 불휘발성 데이터 테이블(NDT)이 갱신될 때마다 일 수 있다.
도 6은 본 발명의 제 2 실시 예에 따른 컴퓨팅 장치(200)를 보여주는 블록도이다. 도 6을 참조하면, 컴퓨팅 장치(200)는 프로세서(210), 메모리 컨트롤러(220), 불휘발성 랜덤 액세스 메모리(230), 스토리지 컨트롤러(250), 불휘발성 스토리지(260), 모뎀(270), 그리고 사용자 인터페이스(280)를 포함한다.
프로세서(210)는 컴퓨팅 장치(200)의 제반 동작을 제어하도록 구성된다.
메모리 컨트롤러(220)는 프로세서(210)의 제어에 따라 불휘발성 랜덤 액세스 메모리(230)를 제어하도록 구성된다. 메모리 컨트롤러(220)는 아비터(221)를 포함한다.
아비터(221)는 불휘발성 랜덤 액세스 메모리(230)에 삭제 영역(DA) 및 비삭제 영역(NDA)을 설정할 수 있다. 삭제 영역(DA)은 프로세서(210)로부터 전송되는 정상 리셋 요청에 따라 리셋되는 영역이다. 비삭제 영역(NDA)은 정상 리셋 요청에 따라 리셋되지 않는 영역이다. 비삭제 영역(NDA)은 별도의 리셋 요청(예를 들어, 불휘발성 리셋 요청)에 따라 리셋되는 영역일 수 있다.
아비터(221)는 프로세서(210)로부터 전달되는 액세스 요청에 따라, 불휘발성 랜덤 액세스 메모리(230)의 삭제 영역(DA) 및 비삭제 영역(NDA) 중 어느 영역을 액세스할 지를 판별할 수 있다. 아비터(221)는 프로세서(210)로부터 전달되는 어드레스 또는 커맨드의 종류에 따라 불휘발성 랜덤 액세스 메모리(230)의 삭제 영역(DA) 및 비삭제 영역(221) 중 어느 영역을 액세스할 지를 판별할 수 있다.
메모리 컨트롤러(220)는 불휘발성 랜덤 액세스 메모리(230)의 용량 또는 어드레스, 삭제 영역(DA)의 용량 또는 어드레스 및 비삭제 영역(NDA)의 용량 또는 어드레스를 프로세서(210)로 전송할 수 있다.
메모리 컨트롤러(220)는 불휘발성 데이터 테이블(NDT)을 구동할 수 있다. 불휘발성 데이터 테이블(NDT)은 비삭제 영역(NDA)에 저장될 수 있다.
메모리 컨트롤러(220)는 비삭제 영역(NDA)에 저장된 불휘발성 데이터 테이블(NDT)을 읽고, 읽어진 불휘발성 데이터 테이블(NDT)을 구동할 수 있다. 메모리 컨트롤러(220)에서 갱신되는 불휘발성 데이터 테이블(NDT)은 미리 설정된 조건에 따라 비삭제 영역(NDA)에 저장될 수 있다.
메모리 컨트롤러(120)는 불휘발성 랜덤 액세스 메모리(130)에 저장된 불휘발성 데이터 테이블(NDT)을 읽어 구동하는 대신, 비삭제 영역(NDA)에 저장된 불휘발성 데이터 테이블(NDT)을 직접 액세스하는 방식으로, 불휘발성 데이터 테이블(NDT)을 관리할 수 있다.
스토리지 컨트롤러(250), 불휘발성 스토리지(260), 모뎀(270) 및 사용자 인터페이스(280)는 도 1을 참조하여 설명된 스토리지 컨트롤러(150), 불휘발성 스토리지(160), 모뎀(170) 및 사용자 인터페이스(180)와 동일하게 구성될 수 있다.
도 7은 도 6의 컴퓨팅 장치(100)의 동작 방법의 제 1 예를 보여주는 순서도이다. 도 6 및 도 7을 참조하면, S310 단계에서, 프로세서(210)는 메모리 컨트롤러(220)에 비삭제 영역(NDA)의 액세스 요청을 전송한다. 액세스 요청은 비삭제 영역(NDA)을 가리키는 어드레스 또는 커맨드를 포함할 수 있다.
S320 단계에서, 메모리 컨트롤러(220)는 비삭제 영역(NDA)을 액세스한다.
S330 단계에서, 메모리 컨트롤러(220)는 불휘발성 데이터 테이블(NDT)을 갱신한다.
S340 단계에서, 프로세서(210)는 메모리 컨트롤러(220)에 삭제 영역(DA)의 액세스 요청을 전송한다.
S350 단계에서, 메모리 컨트롤러(220)는 삭제 영역(DA)을 액세스한다.
불휘발성 랜덤 액세스 메모리(130)가 비삭제 영역(NDA)으로 변경되고, 휘발성 랜덤 액세스 메모리(140)가 삭제 영역(DA)으로 변경되는 것을 제외하면, S310 단계 내지 S350 단계는 도 2의 S110 단계 내지 S150 단계와 동일한 방법으로 수행될 수 있다.
도 8은 도 6의 컴퓨팅 장치(200)의 동작 방법의 제 2 예를 보여주는 순서도이다. 예시적으로, 메모리 컨트롤러(220)의 동작이 도 8에 도시된다.
도 1 및 도 5를 참조하면, S410 단계에서, 컴퓨팅 장치(200)에 전원이 공급된다.
S420 단계에서, 메모리 컨트롤러(220)는 삭제 영역(DA)을 리셋한다. 메모리 컨트롤러(220)는 프로세서(210)의 초기화 요청에 따라, 삭제 영역(DA)을 리셋할 수 있다.
S430 단계에서, 메모리 컨트롤러(220)는 비삭제 영역(NDA)으로부터 불휘발성 데이터 테이블(NDT)을 읽는다.
S440 단계에서, 메모리 컨트롤러(220)는 프로세서(210)로부터의 요청에 따라, 불휘발성 데이터 테이블(NDT)을 참조하여 비삭제 영역(NDA)을 액세스하거나 삭제 영역(DA)을 액세스한다.
S450 단계에서, 메모리 컨트롤러(220)는 미리 정해진 조건에 따라, 비삭제 영역(NDA)에 저장된 불휘발성 데이터 테이블(NDT)을 갱신한다. 미리 정해진 조건은, 메모리 컨트롤러(220)에서 구동되는 불휘발성 데이터 테이블(NDT)이 갱신될 때마다, 불휘발성 데이터 테이블(NDT)이 미리 정해진 횟수만큼 갱신될 때마다, 불휘발성 데이터 테이블(NDT)이 갱신된 후 미리 정해진 시간이 경과할 때마다, 또는 미리 정해진 스케줄을 포함할 수 있다.
메모리 컨트롤러(220)가 비삭제 영역(NDA)에 저장된 불휘발성 데이터 테이블(NDT)을 직접 액세스하여 관리하는 경우, S430 단계는 생략될 수 있다. 그리고, S450 단계의 미리 정해진 조건은 불휘발성 데이터 테이블(NDT)이 갱신될 때마다 일 수 있다.
불휘발성 랜덤 액세스 메모리(130)가 비삭제 영역(NDA)으로 변경되고, 휘발성 랜덤 액세스 메모리(140)가 삭제 영역(DA)으로 변경되고, 그리고 삭제 영역(DA)의 리셋이 추가되는 것을 제외하면, S410 단계 내지 S450 단계는 도 5의 S210 단계 내지 S240 단계와 동일한 방법으로 수행될 수 있다.
도 9는 도 1 또는 도 6을 참조하여 설명된 컴퓨팅 장치(100 또는 200)의 동작 방법의 제 3 예를 보여주는 순서도이다. 도 1, 도 6 및 도 9를 참조하면, S510 단계에서, 메모리 컨트롤러(120 또는 220)는 프로세서(110 또는 210)로부터 불휘발성 랜덤 액세스 메모리(130) 또는 비삭제 영역(NDA)의 데이터의 삭제 요청을 수신한다.
S520 단계에서, 삭제 요청에 따라, 메모리 컨트롤러(120 또는 220)는 불휘발성 랜덤 액세스 메모리(130) 또는 비삭제 영역(NDA)의 데이터를 삭제한다.
S530 단계에서, 삭제된 데이터에 따라, 메모리 컨트롤러(120 또는 220)는 불휘발성 데이터 테이블(NDT)을 갱신한다.
예시적으로, 응용 프로그램(또는 프로세스)가 삭제될 때, 프로세서(110 또는 210)는 삭제되는 응용 프로그램(또는 프로세스)와 연관된 데이터를 삭제할 것을 메모리 컨트롤러(120 또는 220)에 요청할 수 있다. 응용 프로그램(또는 프로세스)에 의해, 데이터의 삭제가 요청될 수 있다. 컴퓨팅 장치(100 또는 200)의 운영 체제에 의해, 데이터의 삭제가 요청될 수 있다. 데이터의 삭제는 휘발성 랜덤 액세스 메모리(140) 또는 삭제 영역(DA)의 삭제 요청과 구분되는 별도의 삭제 요청에 의해 수행될 수 있다. 데이터의 삭제는 불휘발성 랜덤 액세스 메모리(130) 또는 비삭제 영역(NDA)의 리셋을 포함할 수 있다.
예시적으로, 불휘발성 랜덤 액세스 메모리(130) 또는 비삭제 영역(NDA)은 덮어쓰기(overwirte)를 지원할 수 있다. 불휘발성 랜덤 액세스 메모리(130) 또는 비삭제 영역(NDA)이 덮어쓰기를 지원할 때, S520 단계는 생략될 수 있다. 즉, 컴퓨팅 장치(100 또는 200)는 불휘발성 데이터 테이블(NDT)을 갱신하는 것으로, 데이터를 무효화할 수 있다. 이후에 새로운 데이터가 불휘발성 랜덤 액세스 메모리(130) 또는 비삭제 영역(NDA)에 저장될 때, 무효화된 데이터에 덮어쓰기가 수행될 수 있다.
도 10은 본 발명의 실시 예에 따른 컴퓨팅 장치(100 또는 200)에서 구동되는 소프트웨어 계층(300)을 보여주는 블록도이다. 도 1, 도 6 및 도 10을 참조하면, 응용 프로그램(310)은 운영 체제(320)의 지원 하에 동작할 수 있다. 응용 프로그램(310)은 동영상 재생기, 음악 재생기, 게임, 인터넷 브라우저, SQL, 데이터 베이트, 오피스 프로그램, 가상화 프로그램, 바이러스 백신 프로그램 등과 같은 다양한 소프트웨어들을 포함할 수 있다.
운영 체제(320)는 컴퓨팅 시스템(100 또는 200)을 제어할 수 있다. 운영 체제(320)는 응용 프로그램(310)이 구동되도록 컴퓨팅 시스템(100 또는 200)의 자원을 할당 및 관리할 수 있다.
운영 체제(320)는 메모리 관리자(321)를 포함한다. 메모리 관리자(321)는 컴퓨팅 시스템(100 또는 200)의 동작 메모리를 관리할 수 있다. 메모리 관리자(321)는 불휘발성 영역(330) 및 휘발성 영역(340)을 포함한다. 불휘발성 영역(330)은 불휘발성 랜덤 액세스 메모리(130) 또는 비삭제 영역(NDA)을 포함한다. 휘발성 영역(340)은 휘발성 랜덤 액세스 메모리(140) 또는 삭제 영역(DA)을 포함한다.
파일 시스템(350)은 운영 체제(320)의 제어에 따라 스토리지(360)를 제어할 수 있다.
메모리 관리자(321)는 응용 프로그램(310) 또는 운영 체제(320)의 요청에 따라, 불휘발성 영역(330) 또는 휘발성 영역(340)을 액세스할 수 있다. 예시적으로, 메모리 관리자(321)는 메모리 컨트롤러(120 또는 220)로부터 불휘발성 영역(330) 및 휘발성 영역(340)에 대한 정보를 수신할 수 있다. 수신된 정보에 기반하여, 메모리 관리자(321)는 불휘발성 영역(330)을 액세스하는 어드레스 또는 커맨드를 발생하고, 불휘발성 영역(340)을 액세스하는 어드레스 또는 커맨드를 발생할 수 있다.
도 11은 도 10의 운영 체제(320)가 불휘발성 영역(330) 및 휘발성 영역(340)을 관리하는 방법의 제 1 예를 보여주는 순서도이다. 도 10 및 도 11을 참조하면, S610 단계에서, 운영 체제(320)는 메모리 액세스 요청을 수신한다. 운영 체제(320)는 응용 프로그램(310)으로부터 메모리 액세스 요청을 수신할 수 있다. 운영 체제(320)는 미리 정해진 스케줄에 따라 메모리 액세스 요청을 발생할 수 있다. 메모리 액세스 요청은 불휘발성 영역(330)에 대한 액세스 요청인지 또는 휘발성 영역(340)에 대한 액세스 요청인지를 가리키는 정보를 포함할 수 있다.
S620 단계에서, 액세스 요청이 불휘발성 영역(330)에 대한 요청인지 판별된다. 액세스 요청이 휘발성 영역(340)에 대한 요청이면, S630 단계에서 휘발성 영역(340)이 액세스된다. 액세스 요청이 불휘발성 영역(330)에 대한 요청이면, S640 단계가 수행된다.
S640 단계에서, 액세스 요청이 쓰기 요청인지 판별된다. 액세스 요청이 쓰기 요청이 아니면, S670 단계에서 불휘발성 영역(330)이 액세스된다. 액세스 요청이 쓰기 요청이면, S650 단계가 수행된다.
S650 단계에서, 불휘발성 영역(330)의 자유 용량이 충분한지 판별된다. 예를 들어, 불휘발성 영역(330)의 자유 용량이 쓰기 요청된 데이터의 용량보다 큰지 판별될 수 있다. 자유 용량이 충분하면, S670 단계에서 불휘발성 영역이 액세스된다. 자유 용량이 충분하지 않으면, S660 단계가 수행된다.
S660 단계에서, 충분한 자유 용량이 획득될 때까지, 콜드 데이터가 스토리지(360)로 이동된다. 콜드 데이터는 불휘발성 영역(330)에 저장된 데이터 중 액세스 빈도가 기준값보다 낮은 데이터일 수 있다. 콜드 데이터 중 액세스 빈도가 가장 낮은 데이터가 우선적으로 스토리지(360)로 이동될 수 있다. 불휘발성 영역(330)에서 충분한 자유 용량이 확보되면, S670 단계에서 불휘발성 영역(330)이 액세스된다.
운영 체제(320)는 불휘발성 영역(330)에 저장되도록 정의된 데이터 중 스토리지(360)로 이동된 데이터에 대한 정보를 관리할 수 있다.
이 실시 예에 따르면, 불휘발성 영역(330)에 대해 쓰기 요청이 발생하였으나 불휘발성 영역(330)에 자유 용량이 부족한 경우, 불휘발성 영역(330)의 콜드 데이터가 스토리지(360)로 이동된다. 따라서, 불휘발성 영역(330)의 자유 용량이 확보되어, 쓰기 요청이 에러 없이 처리될 수 있다.
도 11의 동작 방법은 불휘발성 영역(330)이 불휘발성 랜덤 액세스 메모리(130)인 경우와 비삭제 영역(NDA)인 경우, 그리고 휘발성 영역(340)이 휘발성 랜덤 액세스 메모리(140)인 경우와 삭제 영역(DA)인 경우 모두에 적용될 수 있다.
도 12는 도 10의 운영 체제(320)가 불휘발성 영역(330) 및 휘발성 영역(340)을 관리하는 방법의 제 2 예를 보여주는 순서도이다. 도 10 및 도 12를 참조하면, S710 단계에서, 운영 체제(320)는 메모리 액세스 요청을 수신한다. 운영 체제(320)는 응용 프로그램(310)으로부터 메모리 액세스 요청을 수신할 수 있다. 운영 체제(320)는 미리 정해진 스케줄에 따라 메모리 액세스 요청을 발생할 수 있다. 메모리 액세스 요청은 불휘발성 영역(330)에 대한 액세스 요청인지 또는 휘발성 영역(340)에 대한 액세스 요청인지를 가리키는 정보를 포함할 수 있다.
S720 단계에서, 액세스 요청이 불휘발성 영역(330)에 대한 액세스 요청인지 판별된다. 액세스 요청이 휘발성 영역(340)에 대한 액세스 요청이면, S730 단계에서 휘발성 영역이 액세스된다. 액세스 요청이 불휘발성 영역(330)에 대한 액세스 요청이면, S740 단계가 수행된다.
S740 단계에서, 요청된 데이터가 스토리지(360)에 저장되어 있는지 판별된다. 요청된 데이터가 스토리지(360)에 저장되어 있지 않으면, S760 단계에서 불휘발성 영역(330)이 액세스된다. 요청된 데이터가 스토리지(360)에 저장되어 있드면, S750 단계가 수행된다.
S750 단계에서, 요청된 데이터가 스토리지(360)로부터 불휘발성 영역(330)으로 이동된다. 이후에, S760 단계에서, 요청된 데이터가 불휘발성 영역(330)에서 액세스된다.
예시적으로, 스토리지(360)에 저장되어 있는 데이터를 불휘발성 영역(330)으로 이동하는 동작은 미리 정해진 조건이 충족될 때 수행될 수 있다. 예를 들어, 기준 시간 동안 데이터가 액세스되는 횟수가 기준값보다 많은 경우, 해당 데이터는 불휘발성 영역(330)으로 이동될 수 있다. 미리 정해진 조건이 충족되지 않는 경우, 데이터의 이동은 수행되지 않을 수 있다. 즉, 불휘발성 영역(330)에 대한 액세스 요청은 스토리지(360)를 액세스함으로써 수행될 수 있다.
도 12의 동작 방법은 불휘발성 영역(330)이 불휘발성 랜덤 액세스 메모리(130)인 경우와 비삭제 영역(NDA)인 경우, 그리고 휘발성 영역(340)이 휘발성 랜덤 액세스 메모리(140)인 경우와 삭제 영역(DA)인 경우 모두에 적용될 수 있다.
도 13은 도 10의 운영 체제(320)가 불휘발성 영역(330) 및 휘발성 영역(340)을 관리하는 방법의 제 3 예를 보여주는 순서도이다. 도 10 및 도 13을 참조하면, S810 단계에서, 운영 체제(320)는 불휘발성 영역(330)의 데이터를 삭제한다. 운영 체제(320)는 응용 프로그램(310)으로부터 삭제 요청을 수신하고, 삭제 요청에 따라 데이터를 삭제할 수 있다. 운영 체제(320)는 응용 프로그램(310)의 삭제를 감지하고, 삭제된 응용 프로그램과 연관된 데이터를 삭제할 수 있다. 운영 체제(320)는 미리 정해진 스케줄에 따라 데이터를 삭제할 수 있다. 삭제는 불휘발성 영역(330)에 저장된 데이터의 삭제 또는 불휘발성 데이터 테이블(NDT)의 갱신을 통한 데이터의 무효화를 포함할 수 있다.
S820 단계에서, 스토리지(360)에 저장되어 있는 콜드 데이터가 존재하고, 불휘발성 영역(330)의 자유 용량이 기준값보다 큰 지 판별된다. 예를 들어, 기준값은 콜드 데이터의 용량일 수 있다. 기준값은 콜드 데이터의 수 배의 용량일 수 있다. 기준값은 불휘발성 영역(330)의 전체 용량의 특정 비율에 해당하는 용량일 수 있다. 조건이 만족되면, S830 단계가 수행된다.
S830 단계에서, 스토리지(360)에 저장되어 있는 콜드 데이터가 불휘발성 영역(330)으로 이동된다.
도 13의 동작 방법은 불휘발성 영역(330)이 불휘발성 랜덤 액세스 메모리(130)인 경우와 비삭제 영역(NDA)인 경우, 그리고 휘발성 영역(340)이 휘발성 랜덤 액세스 메모리(140)인 경우와 삭제 영역(DA)인 경우 모두에 적용될 수 있다.
도 11 내지 도 13에서, 불휘발성 영역(330)의 데이터가 스토리지(360)로 이동되는 예들이 설명되었다. 그러나, 불휘발성 영역(330)의 데이터는 스토리지(360)로 이동되지 않을 수 있다.
예시적으로, 불휘발성 데이터 테이블(NDT)은 중요도 필드를 더 포함할 수 있다. 불휘발성 영역(330)의 자유 용량이 부족한 경우, 중요도 필드에 따라 중요도가 낮은 데이터가 삭제될 수 있다. 데이터의 삭제는 불휘발성 영역(330)에 저장된 데이터의 삭제 또는 불휘발성 데이터 테이블(NDT)의 갱신을 통한 무효화를 포함할 수 있다. 중요도에 따른 불휘발성 데이터의 관리는 메모리 컨트롤러(120 또는 220, 도 1 및 도 6 참조) 또는 운영 체제(320)에 의해 수행될 수 있다.
도 14는 도 10의 운영 체제(320)가 불휘발성 영역(330) 및 휘발성 영역(340)을 관리하는 방법의 제 4 예를 보여주는 순서도이다. 도 10 및 도 14를 참조하면, S910 단계에서, 운영 체제(320)는 메모리 액세스 요청을 수신한다. 운영 체제(320)는 응용 프로그램(310)으로부터 메모리 액세스 요청을 수신할 수 있다. 운영 체제(320)는 미리 정해진 스케줄에 따라 메모리 액세스 요청을 발생할 수 있다. 메모리 액세스 요청은 불휘발성 영역(330)에 대한 액세스 요청인지 또는 휘발성 영역(340)에 대한 액세스 요청인지를 가리키는 정보를 포함할 수 있다.
S920 단계에서, 액세스 요청이 불휘발성 영역(330)에 대한 액세스 요청인지 판별된다. 액세스 요청이 휘발성 영역(340)에 대한 액세스 요청이면, S930 단계에서 휘발성 영역이 액세스된다. 액세스 요청이 불휘발성 영역(330)에 대한 액세스 요청이면, S940 단계가 수행된다.
S940 단계에서, 액세스 요청이 쓰기 요청인지 판별된다. 액세스 요청이 쓰기 요청이 아니면, S970 단계에서 불휘발성 영역(330)이 액세스된다. 액세스 요청이 쓰기 요청이면, S950 단계가 수행된다.
S950 단계에서, 불휘발성 영역(330)의 자유 용량이 충분한지 판별된다. 예를 들어, 불휘발성 영역(330)의 자유 용량이 쓰기 요청된 데이터의 용량보다 큰지 판별될 수 있다. 자유 용량이 충분하면, S970 단계에서 불휘발성 영역이 액세스된다. 자유 용량이 충분하지 않으면, S960 단계가 수행된다.
S960 단계에서, 불휘발성 영역(330)이 증가되고, 휘발성 영역(340)이 감소된다. 예시적으로, 도 6의 메모리 컨트롤러(220)는 불휘발성 랜덤 액세스 메모리(230)의 삭제 영역(DA)의 사이즈를 감소시키고, 비삭제 영역(221)의 사이즈를 증가시킬 수 있다. 이후에, S970 단계에서, 불휘발성 영역(330)이 액세스된다. 불휘발성 영역(330) 및 휘발성 영역(340)의 사이즈는 저장될 데이터의 사이즈에 따라 조절될 수 있다. 불휘발성 영역(330) 및 휘발성 영역(340)의 사이즈는 미리 정해진 값에 따라 조절될 수 있다.
이 실시 예에 따르면, 불휘발성 영역(330)에 대해 쓰기 요청이 발생하였으나 불휘발성 영역(330)에 자유 용량이 부족한 경우, 불휘발성 영역(330)의 콜드 데이터가 스토리지(360)로 이동된다. 따라서, 불휘발성 영역(330)의 자유 용량이 확보되어, 쓰기 요청이 에러 없이 처리될 수 있다.
도 14의 동작 방법은 불휘발성 영역(330)이 불휘발성 비삭제 영역(NDA)인 경우, 그리고 휘발성 영역(340)이 삭제 영역(DA)인 경우에 적용될 수 있다.
도 15는 도 10의 운영 체제(320)가 불휘발성 영역(330) 및 휘발성 영역(340)을 관리하는 방법의 제 5 예를 보여주는 순서도이다. 도 10 및 도 15를 참조하면, S1010 단계에서, 운영 체제(320)는 불휘발성 영역(330)의 데이터를 삭제한다. 운영 체제(320)는 응용 프로그램(310)으로부터 삭제 요청을 수신하고, 삭제 요청에 따라 데이터를 삭제할 수 있다. 운영 체제(320)는 응용 프로그램(310)의 삭제를 감지하고, 삭제된 응용 프로그램과 연관된 데이터를 삭제할 수 있다. 운영 체제(320)는 미리 정해진 스케줄에 따라 데이터를 삭제할 수 있다. 삭제는 불휘발성 영역(330)에 저장된 데이터의 삭제 또는 불휘발성 데이터 테이블(NDT)의 갱신을 통한 데이터의 무효화를 포함할 수 있다.
S1020 단계에서, 불휘발성 영역(330)의 용량이 기준값보다 큰지 판별된다. 예를 들어, 불휘발성 영역(330)의 용량이 초기 사이즈보다 큰지 판별될 수 있다. 예를 들어, 불휘발성 영역(330)의 자유 용량이 기준값보다 큰지 판별될 수 있다. 기준값은 불휘발성 영역(330)의 전체 용량의 특정 비율에 해당하는 용량일 수 있다.
불휘발성 영역(330)의 용량이 기준값보다 크면, S1030 단계에서, 불휘발성 영역(330)이 감소되고 휘발성 영역(340)이 증가된다. 불휘발성 영역(330) 및 휘발성 영역(340)의 사이즈는 삭제된 데이터의 사이즈에 따라 조절될 수 있다. 불휘발성 영역(330) 및 휘발성 영역(340)의 사이즈는 미리 정해진 값에 따라 조절될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100, 200; 컴퓨팅 장치
110, 210; 프로세서 120, 220; 메모리 컨트롤러
121, 221; 아비터
130, 230; 불휘발성 랜덤 액세스 메모리
140; 휘발성 랜덤 액세스 메모리
150, 250; 스토리지 컨트롤러 160, 260; 불휘발성 스토리지
170, 270; 모뎀 180, 280; 사용자 인터페이스
300; 소프트웨어 계층
310; 응용 프로그램 320; 운영 체제
321; 메모리 매니저 330; 불휘발성 영역
340; 휘발성 영역 350; 파일 시스템
360; 스토리지

Claims (20)

  1. 제 1 랜덤 액세스 메모리;
    제 2 랜덤 액세스 메모리;
    상기 제 1 및 제 2 랜덤 액세스 메모리들을 제어하도록 구성되는 메모리 컨트롤러; 그리고
    상기 메모리 컨트롤러를 통해 상기 제 1 및 제 2 랜덤 액세스 메모리들을 동작 메모리로 사용하도록 구성되는 프로세서를 포함하고,
    상기 메모리 컨트롤러는 상기 제 1 및 제 2 랜덤 액세스 메모리들 중 상기 프로세서로부터 전송되는 커맨드에 의해 선택된 메모리를 액세스하도록 구성되는 컴퓨팅 장치.
  2. 제 1 항에 있어서,
    상기 제 1 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리이고, 상기 제 2 랜덤 액세스 메모리는 휘발성 랜덤 액세스 메모리인 컴퓨팅 장치.
  3. 제 2 항에 있어서,
    상기 프로세서로부터 정상 액세스 커맨드가 전송될 때 상기 메모리 컨트롤러는 상기 제 2 랜덤 액세스 메모리를 액세스하고,
    상기 프로세서로부터 불휘발성 액세스 커맨드가 전송될 때 상기 메모리 컨트롤러는 상기 제 1 랜덤 액세스 메모리를 액세스하는 컴퓨팅 장치.
  4. 제 2 항에 있어서,
    상기 메모리 컨트롤러는,
    상기 제 1 랜덤 액세스 메모리에 저장되는 데이터에 대한 정보인 불휘발성 데이터 테이블을 관리하도록 구성되는 컴퓨팅 장치.
  5. 제 4 항에 있어서,
    상기 불휘발성 데이터 테이블은,
    데이터가 저장되는 어드레스, 데이터와 관련된 프로세스, 및 데이터의 식별자에 대한 정보를 포함하는 컴퓨팅 장치.
  6. 제 4 항에 있어서,
    상기 메모리 컨트롤러는 상기 불휘발성 데이터 테이블을 상기 제 1 랜덤 액세스 메모리에 저장하도록 구성되는 컴퓨팅 장치.
  7. 제 6 항에 있어서,
    상기 컴퓨팅 장치에 전원이 공급될 때, 상기 메모리 컨트롤러는 상기 제 1 랜덤 액세스 메모리로부터 상기 불휘발성 데이터 테이블을 읽도록 구성되는 컴퓨팅 장치.
  8. 제 1 항에 있어서,
    상기 제 1 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리의 제 1 부분이고, 상기 제 2 랜덤 액세스 메모리는 상기 불휘발성 랜덤 액세스 메모리의 제 2 부분인 컴퓨팅 장치.
  9. 제 8 항에 있어서,
    상기 컴퓨팅 장치에 전원이 공급될 때, 상기 메모리 컨트롤러는 상기 제 2 랜덤 액세스 메모리를 리셋하도록 구성되는 컴퓨팅 장치.
  10. 제 8 항에 있어서,
    상기 프로세서로부터 정상 리셋 커맨드가 수신될 때, 상기 메모리 컨트롤러는 상기 제 2 랜덤 액세스 메모리를 리셋하도록 구성되는 컴퓨팅 장치.
  11. 제 8 항에 있어서,
    상기 프로세서로부터 불휘발성 리셋 커맨드가 수신될 때, 상기 메모리 컨트롤러는 상기 제 1 랜덤 액세스 메모리를 리셋하도록 구성되는 컴퓨팅 장치.
  12. 제 1 랜덤 액세스 메모리 및 제 2 랜덤 액세스 메모리를 동작 메모리로 사용하는 컴퓨팅 장치의 동작 방법에 있어서:
    데이터를 생성하는 단계;
    상기 생성된 데이터가 제 1 타입 데이터인지 또는 제 2 타입 데이터인지 판별하는 단계; 그리고
    상기 생성된 데이터가 상기 제 1 타입 데이터이면 상기 생성된 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하고, 상기 생성된 데이터가 상기 제 2 타입 데이터이면 상기 생성된 데이터를 상기 제 2 랜덤 액세스 메모리에 저장하는 단계를 포함하는 동작 방법.
  13. 제 12 항에 있어서,
    상기 제 1 타입 데이터는 불휘발성으로 관리되는 데이터이고, 상기 제 2 타입 데이터는 휘발성으로 관리되는 데이터이고,
    상기 제 1 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리이고, 상기 제 2 랜덤 액세스 메모리는 휘발성 랜덤 액세스 메모리인 동작 방법.
  14. 제 12 항에 있어서,
    상기 제 1 타입의 추가 데이터를 생성하는 단계;
    상기 제 1 랜덤 액세스 메모리의 자유 저장 용량이 상기 추가 데이터의 용량보다 큰지 판별하는 단계; 그리고
    상기 자유 저장 용량이 상기 추가 데이터의 용량보다 크면 상기 추가 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하고, 상기 자유 저장 용량이 상기 추가 데이터의 용량보다 적으면 상기 제 1 랜덤 액세스 메모리에 저장된 데이터 중 콜드 데이터를 스토리지로 이동하고, 상기 추가 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하는 단계를 더 포함하는 동작 방법.
  15. 제 14 항에 있어서,
    상기 제 1 타입의 데이터의 액세스 요청을 생성하는 단계;
    상기 액세스 요청에 대응하는 상기 제 1 타입의 데이터가 상기 스토리지에 저장되어 있는지 판별하는 단계; 그리고
    상기 제 1 타입의 데이터가 상기 스토리지에 저장되어 있지 않고 상기 제 1 랜덤 액세스 메모리에 저장되어 있으면 상기 제 1 타입의 데이터를 액세스하고, 상기 제 1 타입의 데이터가 상기 스토리지에 저장되어 있으면 상기 제 1 타입의 데이터를 상기 제 1 랜덤 액세스 메모리로 이동하고 상기 제 1 랜덤 액세스 메모리에서 상기 제 1 타입의 데이터를 액세스하는 단계를 더 포함하는 동작 방법.
  16. 제 14 항에 있어서,
    상기 제 1 랜덤 액세스 메모리에 저장된 데이터를 삭제하는 단계; 그리고
    상기 삭제에 따라 상기 제 1 랜덤 액세스 메모리의 자유 저장 용량이 기준값 이상이 되면, 상기 스토리지로 이동된 콜드 데이터를 상기 제 1 랜덤 액세스 메모리로 이동하는 단계를 더 포함하는 동작 방법.
  17. 제 12 항에 있어서,
    상기 제 1 타입 데이터는 불휘발성으로 관리되는 데이터이고, 상기 제 2 타입 데이터는 휘발성으로 관리되는 데이터이고,
    상기 제 1 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리의 제 1 영역이고, 상기 제 2 랜덤 액세스 메모리는 불휘발성 랜덤 액세스 메모리의 제 2 영역인 동작 방법.
  18. 제 17 항에 있어서,
    상기 컴퓨팅 장치에 전원이 공급될 때, 상기 제 1 랜덤 액세스 메모리는 리셋되지 않고, 상기 제 2 랜덤 액세스 메모리는 리셋되는 동작 방법.
  19. 제 17 항에 있어서,
    상기 제 1 타입의 추가 데이터를 생성하는 단계;
    상기 제 1 랜덤 액세스 메모리의 자유 저장 용량이 상기 추가 데이터의 용량보다 큰지 판별하는 단계; 그리고
    상기 자유 저장 용량이 상기 추가 데이터의 용량보다 크면 상기 추가 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하고, 상기 자유 저장 용량이 상기 추가 데이터의 용량보다 적으면 상기 제 2 랜덤 액세스 메모리의 용량을 기준 용량만큼 감소시키고 상기 제 2 랜덤 액세스 메모리의 용량을 상기 기준 용량만큼 증가시키고 상기 추가 데이터를 상기 제 1 랜덤 액세스 메모리에 저장하는 단계를 더 포함하는 동작 방법.
  20. 제 19 항에 있어서,
    상기 제 1 랜덤 액세스 메모리에 저장된 데이터를 삭제하는 단계; 그리고
    상기 삭제에 따라 상기 제 1 랜덤 액세스 메모리의 자유 저장 용량이 기준값 이상이 되면, 상기 제 1 랜덤 액세스 메모리의 저장 용량을 상기 기준값 만큼 감소시키고 상기 제 2 랜덤 액세스 메모리의 저장 용량을 상기 기준값 만큼 증가시키는 단계를 더 포함하는 동작 방법.
KR1020120093851A 2012-08-27 2012-08-27 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법 KR20140030383A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120093851A KR20140030383A (ko) 2012-08-27 2012-08-27 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법
US14/011,334 US20140059269A1 (en) 2012-08-27 2013-08-27 Computing device and operating method of computing device
CN201310378896.2A CN103631533A (zh) 2012-08-27 2013-08-27 计算装置以及计算装置的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120093851A KR20140030383A (ko) 2012-08-27 2012-08-27 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법

Publications (1)

Publication Number Publication Date
KR20140030383A true KR20140030383A (ko) 2014-03-12

Family

ID=50149068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120093851A KR20140030383A (ko) 2012-08-27 2012-08-27 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법

Country Status (3)

Country Link
US (1) US20140059269A1 (ko)
KR (1) KR20140030383A (ko)
CN (1) CN103631533A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9820231B2 (en) * 2013-06-14 2017-11-14 Microsoft Technology Licensing, Llc Coalescing geo-fence events
US9786389B2 (en) * 2015-10-16 2017-10-10 SK Hynix Inc. Memory system
TWI710903B (zh) * 2016-09-30 2020-11-21 南韓商三星電子股份有限公司 偽主記憶體系統及操作該系統的方法
US10254974B2 (en) * 2016-11-15 2019-04-09 Samsung Electronics Co., Ltd. Storage device, computing device including the same, and operation method of the computing device
US10852968B2 (en) * 2018-05-07 2020-12-01 Apple Inc. Techniques for managing memory allocation within a storage device to improve operation of a camera application

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438668B1 (en) * 1999-09-30 2002-08-20 Apple Computer, Inc. Method and apparatus for reducing power consumption in a digital processing system
US7522468B2 (en) * 2006-06-08 2009-04-21 Unity Semiconductor Corporation Serial memory interface
US7564722B2 (en) * 2007-01-22 2009-07-21 Micron Technology, Inc. Memory system and method having volatile and non-volatile memory devices at same hierarchical level
KR100909965B1 (ko) * 2007-05-23 2009-07-29 삼성전자주식회사 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법
US7715250B2 (en) * 2007-08-16 2010-05-11 Unity Semiconductor Corporation Circuitry and method for indicating a memory
US20110314253A1 (en) * 2010-06-22 2011-12-22 Jacob Yaakov Jeffrey Allan Alon System, data structure, and method for transposing multi-dimensional data to switch between vertical and horizontal filters

Also Published As

Publication number Publication date
CN103631533A (zh) 2014-03-12
US20140059269A1 (en) 2014-02-27

Similar Documents

Publication Publication Date Title
TWI607306B (zh) 用於非揮發性儲存裝置的再編址記憶體
KR102094393B1 (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102011135B1 (ko) 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법
US9323460B2 (en) Assigning priorities to data for hybrid drives
US9626126B2 (en) Power saving mode hybrid drive access management
WO2014109007A1 (ja) ストレージ階層管理システム
JP2012203583A (ja) 情報処理装置およびプログラム
JP2011513805A (ja) 保存耐用年数および速度に基づいたファイル保存のための保存場所の選択
KR20140030383A (ko) 컴퓨팅 장치 및 컴퓨팅 장치의 동작 방법
KR101842321B1 (ko) 세그먼트화된 캐시
US10642493B2 (en) Mobile device and data management method of the same
CN113126910A (zh) 存储设备及其操作方法
US20160342542A1 (en) Delay destage of data based on sync command
JP2017204037A (ja) 情報処理装置、重複除去プログラム、及び重複除去方法
US10073851B2 (en) Fast new file creation cache
US20120036287A1 (en) Storage devices with bi-directional communication techniques and method of forming bi-directional communication layer between them
US20140280396A1 (en) Operating method for user system including host and memory system
KR102123701B1 (ko) 네트워크 부트 시스템
JP6988445B2 (ja) ストレージシステム、制御装置及び制御方法
KR101691091B1 (ko) 컴퓨팅 시스템 및 그것의 하이버네이션 방법
TWI769193B (zh) 記憶體系統的操作方法
KR101718888B1 (ko) 메모리 시스템 및 그것의 가비지 컬렉션 방법
KR101618999B1 (ko) 네트워크 부트 시스템
US11748259B2 (en) System and method to conserve device lifetime for snapshot generation
KR101744401B1 (ko) 컴퓨팅 장치의 시스템 상태 저장, 복원방법 및 이를 위한 컴퓨팅 장치

Legal Events

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