KR102248915B1 - 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법 - Google Patents

하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법 Download PDF

Info

Publication number
KR102248915B1
KR102248915B1 KR1020140035146A KR20140035146A KR102248915B1 KR 102248915 B1 KR102248915 B1 KR 102248915B1 KR 1020140035146 A KR1020140035146 A KR 1020140035146A KR 20140035146 A KR20140035146 A KR 20140035146A KR 102248915 B1 KR102248915 B1 KR 102248915B1
Authority
KR
South Korea
Prior art keywords
memory
data
stored
attribute information
response
Prior art date
Application number
KR1020140035146A
Other languages
English (en)
Other versions
KR20150112076A (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 KR1020140035146A priority Critical patent/KR102248915B1/ko
Priority to US14/667,242 priority patent/US9804801B2/en
Publication of KR20150112076A publication Critical patent/KR20150112076A/ko
Application granted granted Critical
Publication of KR102248915B1 publication Critical patent/KR102248915B1/ko

Links

Images

Classifications

    • 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/068Hybrid storage device
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

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

Abstract

본 발명은 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법에 관한 것이다. 본 발명에 의한 하이브리드 메모리 장치는 데이터를 저장하는 제 1 메모리, 상기 제 1 메모리의 동작 속도와는 서로 다른 동작 속도로 억세스되는 제 2 메모리 및 상기 제 1 메모리에 저장된 데이터의 일부를 상기 제 2 메모리에 카피하여 상기 제 1 메모리의 공간을 확보하는 플러쉬 동작을 수행하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 저장 요청된 데이터를 상기 저장 요청된 데이터에 대응되는 속성 정보에 응답하여 복수의 상태들 중 하나로 분류하며, 상기 제 1 메모리에 저장된 데이터의 상태를 판별하고, 상기 제 1 메모리에 저장된 데이터 중 제 1 상태의 데이터가 저장된 공간에 상기 저장 요청된 데이터를 오버라이트하며, 상기 플러쉬 동작시 상기 제 1 메모리에 저장된 데이터 중 제 2 상태의 데이터는 상기 제 1 메모리에 유지한다.

Description

하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법{HYBRID MEMORY, MEMORY SYSTEM INCLUDING THE SAME AND DATA PROCESSING METHOD THEREOF}
본 발명은 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법에 관한 것이다.
컴퓨터 시스템은 다양한 형태의 메모리 시스템을 포함할 수 있다. 메모리 시스템은 데이터를 저장하기 위한 메모리 장치와 메모리 장치의 동작을 제어하는 프로세서를 포함한다. 메모리 장치는 DRAM, SRAM 등과 같은 휘발성(volatile) 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 비휘발성(nonvolatile) 메모리로 분류된다. 휘발성 메모리에 저장된 데이터는 전원 공급이 중단되면 소멸된다. 반면, 비휘발성 메모리에 저장된 데이터는 전원 공급이 중단되더라도 소멸되지 않는다.
메모리 시스템에서 메모리 장치는 메인 메모리로 사용될 수 있다. 메인 메모리는 빠른 액세스 속도로 랜덤하게 쓰여지거나 읽혀지는 랜덤 엑세스 메모리를 포함한다.
본 발명의 목적은 데이터의 속성 정보에 응답하여 데이터 저장 동작을 제어하는 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법을 제공하는 것이다.
본 발명에 의한 하이브리드 메모리 장치는 데이터를 저장하는 제 1 메모리, 상기 제 1 메모리의 동작 속도와는 서로 다른 동작 속도로 억세스되는 제 2 메모리 및 상기 제 1 메모리에 저장된 데이터의 일부를 상기 제 2 메모리에 카피하여 상기 제 1 메모리의 공간을 확보하는 플러쉬 동작을 수행하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 저장 요청된 데이터를 상기 저장 요청된 데이터에 대응되는 속성 정보에 응답하여 복수의 상태들 중 하나로 분류하며, 상기 제 1 메모리에 저장된 데이터의 상태를 판별하고, 상기 제 1 메모리에 저장된 데이터 중 제 1 상태의 데이터가 저장된 공간에 상기 저장 요청된 데이터를 오버라이트하며, 상기 플러쉬 동작시 상기 제 1 메모리에 저장된 데이터 중 제 2 상태의 데이터는 상기 제 1 메모리에 유지한다.
실시 예에 있어서, 상기 메모리 컨트롤러는 상기 제 1 메모리에 저장된 데이터 중 제 3 상태의 데이터를 우선적으로 상기 제 2 메모리에 카피한다.
실시 예에 있어서, 상기 메모리 컨트롤러는 레지스터를 더 포함하며, 상기 레지스터는 상기 저장 요청된 데이터의 분류 결과에 대응되는 플래그 비트를 포함하는 속성 테이블을 저장한다.
실시 예에 있어서, 상기 메모리 컨트롤러는 상기 제 1 메모리에 저장된 데이터의 일부에 대응되는 속성 정보를 수신하고, 수신된 속성 정보에 응답하여 상기 속성 테이블을 갱신한다.
실시 예에 있어서, 상기 플래그 비트는 2 비트로 구성된다.
실시 예에 있어서, 상기 메모리 컨트롤러는 상기 제 1 메모리의 잔여 공간에 따라 상기 제 1 메모리에 저장된 데이터의 일부를 상기 제 2 메모리에 카피한다.
실시 예에 있어서, 상기 메모리 컨트롤러는 외부로부터 제공된 커맨드에 응답하여 상기 제 1 메모리에 저장된 데이터의 일부를 상기 제 2 메모리에 카피한다.
실시 예에 있어서, 상기 커맨드는 비트 세팅 방식으로 제공된다.
실시 예에 있어서, 상기 저장 요청된 데이터는 페이지 단위로 분류된다.
본 발명에 의한 제 1 메모리 및 상기 제 1 메모리와 다른 동작 속도로 억세스되는 제 2 메모리를 포함하는 하이브리드 메모리 장치를 포함하는 메모리 시스템의 데이터 처리 방법은, 운영 체제를 이용하여, 저장 요청된 데이터 및 상기 하이브리드 메모리 장치에 저장된 데이터의 속성 정보를 모니터하는 단계, 상기 저장 요청된 데이터 및 상기 저장 요청된 데이터에 대응되는 속성 정보를 상기 하이브리드 메모리 장치에 제공하는 단계, 상기 저장 요청된 데이터에 대응되는 속성 정보에 응답하여 상기 저장 요청된 데이터를 복수의 상태들 중 하나로 분류하는 단계, 상기 제 1 메모리에 저장된 데이터의 상태에 기초하여 상기 저장 요청된 데이터를 상기 제 1 메모리에 저장하는 단계, 상기 하이브리드 메모리 장치에 저장된 데이터의 속성 정보가 변경되면 상기 변경된 속성 정보를 상기 하이브리드 메모리 장치에 통지하는 단계 및 상기 통지된 속성 정보에 응답하여 상기 하이브리드 메모리 장치에 저장된 데이터를 재분류하는 단계를 포함한다.
실시 예에 있어서, 상기 통지된 속성 정보에 응답하여 상기 하이브리드 메모리 장치에 저장된 데이터를 재분류하는 단계는 상기 통보된 속성 정보에 응답하여 상기 통지된 속성 정보에 대응되는 재분류 데이터를 제 1 내지 제 4 상태 중 하나의 상태로 분류하는 단계이고, 상기 재분류 데이터는 상기 재분류 데이터를 사용하는 프로세스가 종료되면 상기 제 1 상태로 분류된다.
실시 예에 있어서, 상기 제 1 메모리에 저장된 데이터의 상태에 기초하여 상기 저장 요청된 데이터를 상기 제 1 메모리에 저장하는 단계는 상기 저장 요청된 데이터를 상기 제 1 메모리에 저장된 데이터 중 제 1 상태로 분류된다.
실시 예에 있어서, 상기 제 1 메모리에 저장된 데이터 중 제 2 내지 제 4 상태로 분류되는 데이터를 상기 제 2 메모리에 카피하는 단계를 더 포함하되,
상기 제 3 상태로 분류되는 데이터는 상기 제 2 상태로 분류되는 데이터보다 우선적으로 카피되며, 상기 제 2 상태로 분류되는 데이터는 상기 제 4 상태로 분류되는 데이터보다 우선적으로 카피되고, 상기 제 3 상태로 분류되는 데이터는 임시 데이터이다.
실시 예에 있어서, 상기 하이브리드 메모리 장치에 저장된 데이터의 속성 정보가 변경되면 상기 변경된 속성 정보를 상기 하이브리드 메모리 장치에 통지하는 단계는 어플리케이션이 상기 운영 체제에 소정의 데이터의 속성 정보 변경을 통지하는 단계 및 상기 운영 체제가 상기 소정의 데이터가 상기 제 4 상태로 분류되도록 상기 하이브리드 메모리 장치에 변경된 속성 정보를 통지하는 단계를 포함한다.
실시 예에 있어서, 상기 제 1 메모리에 저장된 데이터 중 제 2 내지 제 4 상태로 분류되는 데이터를 상기 제 2 메모리에 카피하는 단계는 주기적으로 수행된다.
본 발명의 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법에 의하면, 데이터 저장 동작이 데이터의 속성 정보에 응답하여 제어되므로 데이터가 효율적으로 저장될 수 있다.
도 1은 본 발명에 의한 메모리 시스템을 도시하는 블록도이다.
도 2는 도 1의 하이브리드 메모리 장치의 일실시예를 설명하기 위한 도면이다.
도 3은 도 2의 하이브리드 메모리 장치의 동작의 일실시예를 설명하기 위한 도면이다
도 4는 도 2의 하이브리드 메모리 장치의 동작의 다른 실시예를 설명하기 위한 도면이다.
도 5는 본 발명의 다른 실시예에 의한 하이브리드 메모리 장치를 도시하는 블록도이다.
도 6은 플래그 비트의 일실시예를 도시하는 표이다.
도 7은 플래그 비트의 다른 실시예를 도시하는 표이다.
도 8은 본 발명의 실시예에 의한 메모리 시스템의 데이터 처리 동작의 실시예를 도시하는 순서도이다.
도 9는 도 8의 데이터 및 속성 정보 제공 동작의 실시예를 도시하는 순서도이다.
도 10은 도 8의 데이터 저장 동작의 실시예를 도시하는 순서도이다.
도 11은 모바일 기기에 적용된 본 발명의 응용 예를 도시한 블록도이다.
도 12는 전자 시스템에 적용된 본 발명의 응용 예를 도시한 블록도이다.
도 13은 휴대용 디바이스에 적용된 본 발명의 응용 예를 도시한 개략적 회로 블록이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예가 첨부된 도면을 참조하여 설명한다. 또한 이하에서 사용되는 용어들은 오직 본 발명을 설명하기 위하여 사용된 것이며 본 발명의 범위를 한정하기 위해 사용된 것은 아니다. 앞의 일반적인 설명 및 다음의 상세한 설명은 모두 예시적인 것으로 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
도 1은 본 발명에 의한 메모리 시스템(10)을 도시하는 블록도이다. 도 1을 참조하면, 메모리 시스템(10)은 제어부(101) 및 하이브리드 메모리 장치(100)를 포함한다.
실시 예에 있어서, 본 발명의 메모리 시스템(10)은 페이지 단위로 데이터를 관리할 수 있다. 페이지는 데이터가 한 번에 이동되고 처리되는 단위이다. 그러나 본 발명의 기술적 특징이 이에 한정되지 않음은 당업자에 의하여 충분히 이해될 것이다. 실시 예에 있어서, 데이터는 복수의 페이지들로 구성된 페이지 그룹(Page Group), 블록(Block), 섹터(Sector) 혹은 클러스터(Cluster) 단위로 관리될 수 있다.
본 발명의 메모리 시스템(10)에서, 제어부(101)는 하이브리드 메모리 장치(100)에 데이터의 속성 정보(Attribution information)를 제공할 수 있다. 하이브리드 메모리 장치(100)는 데이터의 속성 정보에 응답하여 서로 다른 읽기/쓰기 특성을 가지는 복수의 메모리들에 저장되는 데이터를 관리할 수 있다. 메모리 시스템(10)은 데이터의 속성 정보를 이용하여 효율적인 데이터 저장 동작을 수행할 수 있다.
제어부(101)는 메모리 시스템(10)의 전반적인 동작을 제어한다. 제어부(101)는 중앙처리장치(CPU: Central Processing Unit) 혹은 마이크로컨트롤러(Microcontroller)를 포함할 수 있다. 실시 예에 있어서, 제어부(101)는 운영 체제(Operating System: OS) 및 태스크들을 수행하는 소정의 어플리케이션들을 실행할 수 있다. 제어부(101)에 의하여 실행되는 운영 체제 혹은 어플리케이션들은 하이브리드 메모리 장치(100)에 저장될 수 있다.
제어부(101)는 버스(102)를 통하여 하이브리드 메모리 장치(100)와 연결될 수 있다. 실시 예에 있어서, 버스(102)는 어드레스 버스, 제어 버스 및/또는 데이터 버스를 포함할 수 있다. 제어부(101)는 하이브리드 메모리 장치(100)에 대한 데이터 읽기 및 쓰기 동작을 관리하기 위한 메모리 관리부(101a)를 포함한다.
메모리 관리부(101a)는 하이브리드 메모리 장치(100)에 저장된 혹은 저장될 데이터의 속성 정보를 판별한다. 실시 예에 있어서, 속성 정보는 운영 체제(Operating System)의 메모리 관리 기능을 이용하여 판별될 수 있다.
실시 예에 있어서, 속성 정보는 데이터의 사용 완료 여부를 지시하는 정보를 포함할 수 있다. 소정의 데이터를 참조하는 프로세스가 종료되거나 프로세스에 의하여 데이터가 명시적으로 프리(free)된 경우, 해당 데이터는 이후 사용되지 않을 것이라 예측될 수 있다. 메모리 관리부(101a)는 하이브리드 메모리 장치(100)에 저장된 소정의 데이터가 사용 완료되면, 해당 데이터의 사용 완료를 지시하는 속성 정보를 하이브리드 메모리 장치(100)에 제공할 수 있다. 하이브리드 메모리 장치(100)는 속성 정보에 응답하여 해당 데이터를 사용 완료로 마킹할 수 있다.
실시 예에 있어서, 속성 정보는 데이터의 우선도를 지시하는 정보를 포함할 수 있다. 예를 들어, 소정의 데이터가 캐시 데이터로서 사용되는 경우, 다른 저장 공간에 해당 데이터의 원본 데이터가 존재한다. 메모리 관리부(101a)는 이러한 임시적인 데이터에 대하여 낮은 우선도를 지시하는 정보를 하이브리드 메모리 장치(100)에 제공할 수 있다.
한편, 소정의 데이터가 인터럽트 핸들러(Interrupt Handler)에서 사용되는 코드 혹은 데이터인 경우, 해당 데이터에 대한 리드 혹은 라이트 속도는 메모리 시스템(10)의 동작 성능과 밀접한 관련이 있다. 실시 예에 있어서, 메모리 관리부(101a)는 빠른 속도의 읽기/쓰기가 요구되는 높은 중요도를 가지는 데이터들에 대하여 높은 우선도를 지시하는 정보를 하이브리드 메모리 장치(100)에 제공할 수 있다.
또한 메모리 관리부(101a)를 통하여 구동되는 어플리케이션은 각자 자신이 참조 혹은 사용하는 데이터들 중 빠른 응답을 필요로 하는 데이터를 식별할 수 있다. 실시 예에 있어서, 메모리 관리부(101a)는 어플리케이션의 통지에 응답하여, 높은 중요도를 가지는 데이터에 대하여 높은 우선도를 지시하는 정보를 하이브리드 메모리 장치(100)에 제공할 수 있다.
도 1에서 메모리 관리부(101a)는 제어부(101) 내부의 블록으로 도시되었으나, 메모리 관리부(101a)는 다양한 하드웨어 및 소프트웨어의 형태로 구현될 수 있다. 실시 예에 있어서, 메모리 관리부(101a)의 기능은 일부 다른 기능 유닛을 통하여 수행될 수 있다. 실시 예에 있어서, 메모리 관리부(101a)는 제어부(101) 외부의 칩셋으로 구현될 수 있다. 혹은 메모리 관리부(101a)의 일부 기능은 운영체제의 프로그램 코드를 통하여 구현될 수 있다.
하이브리드 메모리 장치(100)는 메모리 시스템(10)의 메인 메모리로서 동작될 수 있다. 메인 메모리는 제어부(101)와 직접 데이터를 교환할 수 있는 메모리이다. 하이브리드 메모리 장치(100)는 제어부(101)의 실행에 요구되는 데이터를 저장할 수 있다.
하이브리드 메모리 장치(100)는 메모리 컨트롤러(110) 및 메모리부(120)를 포함한다. 메모리부(120)는 제 1 및 제 2 메모리(121, 122)를 포함한다. 본 실시예에서 메모리부(120)는 2개의 메모리를 포함하는 것으로 도시되었으나, 본 발명의 기술적 특징이 이에 한정되는 것은 아니다. 실시 예에 있어서, 메모리부(120)는 서로 읽기/쓰기 특성을 가지는 두 개 이상의 메모리들을 포함할 수 있다.
실시 예에 있어서, 제 1 메모리(121)와 제 2 메모리(122)는 서로 다른 동작 속도를 가지는 이종의 메모리이다. 실시 예에 있어서, 제 1 메모리(121)는 제 2 메모리(122)에 비하여 빠른 억세스 속도를 가질 수 있다. 실시 예에 있어서, 제 1 메모리(121)는 제 2 메모리(122)에 비하여 빠른 쓰기 혹은 읽기 속도를 가질 수 있다. 반면 제 2 메모리(122)는 제 1 메모리(121)에 비하여 큰 공간을 가질 수 있다.
실시 예에 있어서, 제 1 메모리(121)는 및 제 2 메모리(122)는 동적 메모리(DRAM: Dynamic Random Access Memory), 강유전체 메모리(FeRAM: Ferroelectric Random Access Memory), 상변화 메모리(PRAM: Phase-change Random Access Memory), 자기 메모리(MRAM: Magnetic Randim Access Memory) 혹은 저항성 메모리(ReRAM: Resistance Random Access Memory)으로 구현될 수 있다.
혹은 실시예에 있어서, 제 1 메모리(121) 및 제 2 메모리(122)는 단일 레벨 셀(SLC) 및 멀티 레벨 셀(MLC)로 구성된 메모리로 구현될 수 있다.
메모리 컨트롤러(110)는 제어부(101)로부터 수신된 데이터 저장 요청에 응답하여, 제 1 메모리(121)에 우선적으로 데이터를 저장할 수 있다. 메모리 컨트롤러(110)는 제 1 메모리(121)의 사용 공간이 소정의 기준값에 도달하면 제 1 메모리(121)에 저장된 데이터를 제 2 메모리(122)에 복사하고 제 1 메모리(121)의 공간을 확보하는 플러쉬 동작을 수행할 수 있다.
한편, 메모리 컨트롤러(110)는 제 1 메모리(121)의 사용 공간이 소정의 기준값에 도달하기 전에도 소정의 조건에서 플러쉬 동작을 수행할 수 있다. 실시 예에 있어서, 메모리 컨트롤러(110)는 주기적으로 제 1 메모리(121)에 저장된 데이터들에 대한 플러쉬 동작을 수행할 수 있다. 다른 실시 예에 있어서, 메모리 컨트롤러(110)는 제어부(101)로부터 데이터 정리 요청이 제공되면 플러쉬 동작을 수행할 수 있다. 데이터 정리 요청은 커맨드(Command), 비트 세팅(Bit Setting)등 다양한 방식으로 제공될 수 있다. 또 다른 실시 예에 있어서, 메모리 컨트롤러(110)는 제어부(101)로부터 제공된 소정의 커맨드를 카운트하고, 커맨드 횟수가 소정의 기준값에 도달하면 플러쉬 동작을 수행할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 제어부(101)로부터 제공된 쓰기 커맨드의 횟수가 소정의 기준값에 도달하면 플러쉬 동작을 수행할 수 있다.
한편, 본 발명의 메모리 컨트롤러(110)는 메모리 관리부(101a)로부터 데이터의 속성 정보를 수신한다. 메모리 컨트롤러(110)는 수신된 데이터 속성 정보에 응답하여 제 1 메모리(121)에 저장된 데이터를 관리할 수 있다.
실시 예에 있어서, 메모리 컨트롤러(110)는 수신된 데이터 속성 정보에 응답하여 제 1 메모리(121)에 저장된 데이터들을 복수의 그룹 중 하나로 분류할 수 있다. 메모리 컨트롤러(110)는 상술된 플러쉬 동작 동안 각 그룹에 속하는 데이터들에 대한 처리 동작을 달리 수행할 수 있다.
더하여, 메모리 컨트롤러(110)는 소정의 그룹으로 분류된 데이터를 사용 완료로 마킹할 수 있다. 메모리 컨트롤러(110)는 사용 완료 처리된 데이터가 저장된 공간을 미사용 공간으로 간주하고, 새로운 데이터를 오버라이트(Overwrite)할 수 있다.
상술된 메모리 시스템(10)은 데이터의 속성 정보를 이용하여 제 1 메모리에 저장되는 데이터를 관리하여, 효율적으로 데이터 저장 동작을 수행할 수 있다.
도 2는 도 1의 하이브리드 메모리 장치의 일실시예를 설명하기 위한 도면이다. 도 2를 참조하면, 하이브리드 메모리 장치(100)는 메모리 컨트롤러(110) 및 메모리부(120)를 포함한다.
메모리 컨트롤러(110)는 속성 매니저(111)를 포함한다. 속성 매니저(111)는 외부로부터 수신된 속성 정보(Attribution Information)에 응답하여 메모리부(120)를 제어한다.
속성 매니저(111)는 속성 정보에 응답하여, 저장된 데이터의 상태를 복수의 그룹들 중 하나로 분류할 수 있다. 속성 매니저(111)는 분류 결과를 소정의 테이블을 이용하여 마킹할 수 있다.
실시 예에 있어서, 속성 매니저(111)는 속성 정보에 응답하여, 사용 완료된 데이터를 사용 완료 상태(Unnecessary)로 마킹할 수 있다. 실시 예에 있어서, 사용 완료 상태로 마킹된 데이터가 저장된 공간은 데이터가 저장되지 않은 공간으로 간주될 수 있다. 속성 매니저(111)는 데이터 저장 요청에 응답하여, 새롭게 저장 요청된 데이터를 사용 완료 상태로 마킹된 데이터가 저장된 공간에 플러쉬 동작 없이 오버라이트(Overwrite)할 수 있다.
실시 예에 있어서, 속성 매니저(111)는 데이터 속성 정보에 응답하여, 낮은 우선도를 가지는 데이터를 임시(Temporary) 상태로 마킹할 수 있다. 임시 상태로 마킹된 데이터는 사용 완료 상태로 마킹된 데이터가 저장된 공간이 부족한 경우 데이터가 저장되지 않은 공간으로 간주될 수 있다. 속성 매니저(111)는 데이터 저장 요청에 응답하여, 사용 완료 상태로 마킹된 데이터가 저장된 공간에 데이터를 오버라이트 한 후, 추가적인 공간이 요구되면 임시 상태로 마킹된 데이터가 저장된 공간에 데이터를 플러쉬 동작 없이 오버라이트 할 수 있다. 실시 예에 있어서, 속성 매니저(111)는 데이터 속성 정보에 응답하여, 높은 우선도를 가지는 데이터를 핀(Pinned) 상태로 마킹할 수 있다. 핀 상태로 마킹된 데이터는 제 1 메모리(121)의 공간을 우선적으로 점유할 수 있다. 실시 예에 있어서, 핀 상태로 마킹된 데이터는 제 1 메모리(121)의 사용 공간이 소정의 기준값에 도달되어도 플러쉬 대상 데이터로 지정되지 않을 수 있다.
도 3은 도 2의 하이브리드 메모리 장치(100)의 동작의 일실시예를 설명하기 위한 도면이다. 도 3을 참조하면, 제 1 메모리(121)의 잔여 공간의 크기에 응답하여 제 1 메모리(121)에 대한 플러쉬 동작이 수행될 수 있다.
외부, 예를 들어 제어부로부터 데이터 저장이 요청된다(①). 하이브리드 메모리 장치(100)는 저장 요청된 데이터를 수신한다.
하이브리드 메모리 장치(100)는 저장 요청된 데이터를 제 1 메모리(121)에 우선적으로 저장한다. 제 1 메모리(121)에 데이터를 저장하기 위하여, 하이브리드 메모리 장치(100)는 제 1 메모리(121)에 데이터를 저장할 수 있는 잔여 공간이 존재하는지 여부를 판별한다(②).
충분한 잔여 공간이 존재하지 않으면, 하이브리드 메모리 장치(100)는 제 1 메모리(121)에 저장된 데이터 중 일부를 제 2 메모리(122)로 카피한다. 이를 플러쉬 동작으로 정의한다. 하이브리드 메모리 장치(100)는 플러쉬 동작을 이용하여 제 1 메모리(121)의 공간을 확보한다. 충분한 잔여 공간이 존재하면, 하이브리드 메모리 장치(100)는 저장 요청된 데이터를 제 1 메모리(121)에 저장한다(④).
상술된 하이브리드 메모리 장치의 동작 방법에 의하면, 제 1 메모리(121)의 잔여 공간 크기에 응답하여 제 1 메모리(121)에 대한 플러쉬 동작이 수행될 수 있다. 한편, 도 1을 참조하여 설명된 바와 같이 제 1 메모리(121)에 대한 플러쉬 동작은 제 1 메모리(121)의 사용 공간이 소정의 기준값에 도달하기 전에도 소정의 조건에서 수행될 수 있다.
도 4는 도 2의 하이브리드 메모리 장치(100)의 동작의 다른 실시예를 설명하기 위한 도면이다. 도 4를 참조하면, 하이브리드 메모리 장치(100)는 외부로부터 데이터의 속성 정보를 수신할 수 있다. 하이브리드 메모리 장치(100)는 수신된 속성 정보에 응답하여 데이터 저장 동작을 보다 효율적으로 수행할 수 있다.
먼저, 외부로부터 데이터 저장이 요청된다(①). 하이브리드 메모리 장치(100)는 저장 요청된 데이터 및 데이터의 속성 정보를 수신한다.
하이브리드 메모리 장치(100)는 저장 요청된 데이터를 제 1 메모리(121)에 우선적으로 저장한다. 제 1 메모리(121)에 데이터를 저장하기 위하여, 하이브리드 메모리 장치(100)는 제 1 메모리(121)에 데이터를 저장할 수 있는 잔여 공간이 존재하는지 여부를 판별한다(②).
제 1 메모리(121)에 충분한 잔여 공간이 존재하면, 하이브리드 메모리 장치(100)는 저장 요청된 데이터를 제 1 메모리(121)에 저장한다(④). 하이브리드 메모리 장치(100)는 데이터를 제 1 메모리(121)에 저장하는 동안, 데이터의 속성 정보에 응답하여 데이터를 소정의 상태로 마킹한다. 실시 예에 있어서, 데이터는 핀 상태, 정상 상태, 임시 상태 및 사용 완료 상태 중 하나로 마킹될 수 있다.
제 1 메모리(121)에 충분한 잔여 공간이 존재하지 않는 경우, 하이브리드 메모리 장치(100)는 사용 완료 상태로 마킹된 데이터가 저장된 공간을 판별한다. 사용 완료 상태로 마킹된 데이터가 존재하면, 하이브리드 메모리 장치(100)는 저장 요청된 데이터를 제 1 메모리(121)의 사용 완료 상태로 마킹된 데이터가 저장된 공간에 저장한다(②).
한편, 사용 완료 상태로 마킹된 데이터가 저장된 공간을 포함하여도 충분한 잔여 공간이 존재하지 않으면, 하이브리드 메모리 장치(100)는 임시 상태로 마킹된 데이터가 저장된 공간을 판별한다. 임시 상태로 마킹된 데이터가 존재하면, 하이브리드 메모리 장치(100)는 저장 요청된 데이터를 제 1 메모리(121)의 임시 상태로 마킹된 데이터가 저장된 공간에 저장한다.
사용 완료 상태 및 임시 상태로 마킹된 데이터가 저장된 공간을 포함하여도 충분한 잔여 공간이 존재하지 않으면, 하이브리드 메모리 장치(100)는 제 1 메모리(121)에 저장된 데이터 중 일부를 제 2 메모리(122)로 카피한다(③). 하이브리드 메모리 장치(100)는 플러쉬 동작을 이용하여 제 1 메모리(121)의 공간을 확보한다.
플러쉬 동작 동안 제 2 메모리(122)로 카피되는 데이터는 데이터의 마킹 상태에 응답하여 선정될 수 있다. 실시 예에 있어서, 하이브리드 메모리 장치(100)는 핀 상태로 마킹된 데이터는 카피 대상 데이터에서 배제하거나 가장 후순위로 선정할 수 있다.
충분한 잔여 공간이 확보되면, 하이브리드 메모리 장치(100)는 저장 요청된 데이터를 제 1 메모리(121)에 저장한다(④).
상술된 실시예에서 하이브리드 메모리 장치(100)의 사용 완료 상태 데이터 판별 동작은 제 1 메모리(121)의 잔여 공간이 판별된 후 실시되었으나 본 발명의 기술적 특징이 이에 한정되는 것은 아니다. 실시 예에 있어서, 하이브리드 메모리 장치(100)는 제 1 메모리(121)의 잔여 공간을 판별하는 동안 사용 완료 상태 데이터가 저장된 공간을 잔여 공간으로 간주하여 함께 판별할 수 있다.
상술된 하이브리드 메모리 장치의 동작 방법에 의하면, 제 1 메모리(121)에 데이터가 저장될 때, 사용 완료된 데이터가 저장된 공간에 플러쉬 동작 없이 새로운 데이터가 오버라이트 될 수 있다. 상술된 동작 방법에 의하면, 데이터의 속성에 기초하여 제 1 메모리(121)에 저장된 데이터가 관리될 수 있으므로 불필요한 데이터의 이동을 감소시킬 수 있어 효율적이다.
도 5는 본 발명의 다른 실시예에 의한 하이브리드 메모리 장치(200)를 도시하는 블록도이다. 도 5를 참조하면, 하이브리드 메모리 장치(200)는 메모리 컨트롤러(210) 및 메모리부(220)를 포함한다.
메모리 컨트롤러(210)는 도 2의 메모리 컨트롤러(110)에서 레지스터(212)를 더 포함한다. 메모리 컨트롤러(210)의 속성 매니저(211)는 외부로부터 수신된 속성 정보에 응답하여, 제 1 메모리(221)에 저장된 데이터의 상태를 마킹하는 속성 테이블(Attribution Table)을 생성 및 갱신할 수 있다. 속성 매니저(211)는 레지스터(212)를 이용하여 속성 테이블(Attribution Table)을 저장할 수 있다.
실시 예에 있어서, 데이터는 페이지 단위로 관리될 수 있다. 혹은 데이터는 복수의 페이지들로 구성된 그룹 단위로 관리될 수 있다. 본 실시예에서, 속성 테이블은 제 1 메모리(221)에 저장된 단위 데이터에 각각 대응되는 플래그 비트(Flag bit)를 포함할 수 있다.
실시 예에 있어서, 제 1 메모리(221)에 저장된 데이터는 정상 및 사용 완료 중 하나의 상태로 마킹될 수 있다. 다른 실시예에 있어서, 제 1 메모리(221)에 저장된 데이터는 핀(Pinned), 정상(Normal), 임시(Temporary) 및 사용 완료(Unnecessary) 중 하나의 상태로 마킹될 수 있다.
도 6은 플래그 비트의 일실시예를 도시하는 표이다. 도 6에서, 각 플래그 비트는 하나의 비트로 구성된다.
속성 매니저(도 5 참조, 211)는 데이터의 속성 정보를 기초로 데이터의 플래그 비트값을 설정한다. 도 6의 표를 참조하면, 속성 매니저(211)는 정상 상태인 데이터에 대응되는 플래그 비트값을 논리값 '0'으로 설정할 수 있다. 속성 매니저(211)는 사용 완료 상태인 데이터에 대응되는 플래그 비트값을 논리값 '1'으로 설정할 수 있다. 그러나 이는 예시적인 것으로 본 발명의 기술적 특징은 상술된 예시에 한정되지 않는다.
도 5를 참조하여 설명된 바와 같이, 속성 매니저(211)는 각 단위 데이터에 대응되는 플래그 비트들을 포함하는 속성 테이블을 생성할 수 있다. 속성 매니저(211)는 외부로부터 새로운 속성 정보가 제공되면, 제공된 속성 정보를 기초로 속성 테이블에 포함된 플래그 비트들의 값을 갱신할 수 있다.
도 7은 플래그 비트의 다른 실시예를 도시하는 표이다. 도 7에서, 플래그 비트는 2비트로 구성된다.
속성 매니저(도 5 참조, 211)는 데이터의 속성 정보를 기초로 데이터의 플래그 비트값을 설정한다. 도 7의 표를 참조하면, 속성 매니저(211)는 정상 상태인 데이터에 대응되는 플래그 비트값을 '00'으로 설정할 수 있다. 속성 매니저(211)는 사용 완료 상태인 데이터에 대응되는 플래그 비트값을 논리값 '01'으로 설정할 수 있다. 속성 매니저(211)는 핀 상태인 데이터에 대응되는 플래그 비트값을 논리값 '10'으로 설정할 수 있다. 또한 속성 매니저(211)는 임시 상태인 데이터에 대응되는 플래그 비트값을 논리값 '11'으로 설정할 수 있다.그러나 이는 예시적인 것으로 본 발명의 기술적 특징은 상술된 예시에 한정되지 않는다.
도 8은 본 발명의 실시예에 의한 메모리 시스템의 데이터 처리 동작의 실시예를 도시하는 순서도이다.
S110 단계에서, 소정의 데이터에 대한 저장 동작이 요청된다. 저장 요청된 데이터는 그에 대응되는 속성 정보와 함께 하이브리드 메모리 장치에 제공된다.
S120 단계에서, 저장 요청된 데이터가 하이브리드 메모리 장치에 포함된 복수의 메모리들 중 제 1 메모리에 저장된다. 제 1 메모리는 복수의 메모리들 중 가장 빠른 동작 속도를 가지는 메모리일 수 있다. 실시 예에 있어서, 제 1 메모리는 DRAM일 수 있다.
한편, 저장 요청된 데이터가 제 1 메모리에 저장되는 동작은 제 1 메모리에 저장된 데이터들의 속성 정보에 기초하여 수행된다. 실시 예에 있어서, 저장 요청된 데이터는 플러쉬 동작 없이 제 1 메모리에 저장될 수 있다. 실시 예에 있어서, 저장 요청된 데이터를 저장하기 위한 플러쉬 동작 수행시, 플러쉬 대상이 되는 데이터는 데이터의 속성 정보에 기초하여 결정될 수 있다.
도 9는 도 8의 데이터 및 속성 정보 제공 동작(S110)의 실시예를 도시하는 순서도이다.
S111 단계에서, 메모리 시스템의 운영 체제를 이용하여 메모리 시스템에서 사용되는 각 데이터의 속성 정보가 모니터된다. 실시 예에 있어서, 데이터의 속성 정보는 페이지 단위로 모니터될 수 있다.
운영 체제는 메모리 관리(Memory Management)를 위한 코드를 포함할 수 있다. 운영 체제는 메모리 관리 코드를 이용하여 데이터의 속성 정보를 모니터할 수 있다. 실시 예에 있어서, 운영 체제는 데이터 페이지 플래그(Page Flag) 혹은 페이지 관리 리스트를 참조하여 속성 정보를 모니터할 수 있다. 운영 체제에 의하여 참조되는 페이지 관리 리스트는 페이지의 최근 최소 사용 리스트(LRU List: Least Recently Used List)를 포함할 수 있다.
실시 예에 있어서, 속성 정보는 데이터의 사용 완료 여부를 지시하는 정보를 포함할 수 있다. 소정의 데이터를 참조하는 프로세스가 종료되거나 프로세스에 의하여 데이터가 명시적으로 프리(free)된 경우, 해당 데이터는 이후 사용되지 않을 것이라 예측될 수 있다.
실시 예에 있어서, 속성 정보는 데이터의 임시성을 지시하는 정보를 포함할 수 있다. 예를 들어, 소정의 데이터가 캐시 데이터로서 사용되는 경우, 해당 데이터는 임시 데이터이므로 해당 데이터의 저장 필요성은 낮아질 수 있다.
한편, 소정의 데이터가 인터럽트 핸들러(Interrupt Handler)에서 사용되는 코드 혹은 데이터인 경우, 해당 데이터에 대한 리드 혹은 라이트 속도는 메모리 시스템(10)의 동작 성능과 밀접한 관련이 있다. 실시 예에 있어서, 빠른 속도의 읽기/쓰기가 요구되는 높은 중요도를 가지는 데이터들에 대하여 높은 우선도를 지시하는 정보가 속성 정보로서 제공될 수 있다.
또한 메모리 시스템 하에서 구동되는 어플리케이션은 각각 자신이 참조 혹은 사용하는 데이터들 중 빠른 응답을 필요로 하는 데이터를 식별할 수 있다. 실시 예에 있어서, 어플리케이션의 통지에 응답하여, 높은 중요도를 가지는 데이터에 대하여 높은 우선도를 지시하는 정보가 속성 정보로서 제공될 수 있다.
S112 단계에서, 모니터 과정에서 소정의 데이터에 대응되는 속성 정보가 변동되었는지 여부가 판별된다. 예를 들어, 프로세스가 종료된 경우 종료된 프로세스에 의하여 참조되는 데이터들 중 사용 완료된 데이터가 존재할 수 있다. 혹은 페이지 속성이 변경되거나 새로운 페이지가 생성되는 경우 데이터의 속성 정보가 변경될 수 있다.
속성 정보가 변동된 데이터가 존재하면, S113 단계에서, 변경된 속성 정보가 메모리 컨트롤러에 통지된다. 그러나 실시 예에 있어서, 속성 정보가 변경되지 않아도 주기적으로 혹은 메모리 컨트롤러의 요청에 응답하여 속성 정보가 메모리 컨트롤러에 통지될 수 있다.
S114 단계에서, 데이터 저장 요청이 수행되어야 하는지 여부가 판별된다. 데이터 저장 요청이 있는 경우, S115 단계에서, 저장 요청된 데이터와 함께 그에 대응되는 속성 정보가 메모리 컨트롤러에 제공된다.
도 10은 도 8의 데이터 저장 동작(S120)의 실시예를 도시하는 순서도이다.
S121 단계에서, 외부로부터 속성 정보 변경이 통지되었는지 여부가 판별된다. 하이브리드 메모리 장치(도 2 참조, 120)에 저장된 데이터 중 속성 정보가 변동된 데이터가 존재하는 경우, 외부로부터 속성 정보 변경이 통지될 것이다.
속성 정보 변경이 통지된 경우, S122 단계에서, 통지된 속성 정보에 응답하여 하이브리드 메모리 장치(120)에 저장된 데이터의 마킹 정보가 변경된다.
S123 단계에서, 데이터 저장이 요청되었는지 여부가 판별된다. 데이터 저장이 요청된 경우, 외부로부터 저장될 데이터 및 그에 대응되는 속성 정보가 제공된다.
S124 단계에서, 제 1 메모리(121)에 저장 요청된 데이터를 저장하기 위한 충분한 공간이 있는지 여부가 판별된다. S124 단계에서, 저장 요청된 데이터를 저장하기 위한 공간에는 사용 완료로 마킹된 데이터가 차지하는 공간이 포함될 수 있다. 또한 S124 단계에서, 저장 요청된 데이터를 저장하기 위한 공간에는 임시 상태로 마킹된 데이터가 차지하는 공간이 포함될 수 있다. 충분한 공간이 존재하면, S127 단계에서, 저장 요청된 데이터가 제 1 메모리(121)에 저장된다.
S125 단계에서, 제 1 메모리(도 2 참조, 121)에 사용 완료로 마킹된 데이터가 존재하는지 여부가 판별된다. 사용 완료로 마킹된 데이터가 차지하는 공간이 저장 요청된 데이터의 크기 이상인 경우, 하이브리드 메모리 장치(120)는 플러쉬 동작 없이 저장 요청된 데이터를 사용 완료로 마킹된 데이터가 저장된 곳에 오버라이트 할 수 있다.
사용 완료로 마킹된 데이터가 차지하는 공간이 저장 요청된 데이터의 크기 미만인 경우, S126 단계에서, 제 1 메모리(121)에 저장된 데이터 중 일부가 제 2 메모리(도 2 참조, 122)로 카피된다. 플러쉬 동작을 이용하여 제 1 메모리(121)의 공간이 확보될 수 있다.
실시 예에 있어서, 플러쉬 동작 동안 제 2 메모리(122)로 카피되는 데이터는 데이터의 마킹 상태에 응답하여 선정될 수 있다. 실시 예에 있어서, 핀 상태로 마킹된 데이터는 카피 대상 데이터에서 배제되거나 가장 후순위로 선정될 수 있다.
S127 단계에서, 저장 요청된 데이터가 공간이 확보된 제 1 메모리(121)에 저장된다.
상술된 데이터 저장 동작에 의하면, 제 1 메모리(121)에 데이터가 저장될 때, 사용 완료된 데이터가 저장된 공간에 플러쉬 동작 없이 새로운 데이터가 오버라이트 될 수 있다. 더하여, 상술된 동작 방법에 의하면, 데이터의 속성에 기초하여 제 1 메모리(121)에 저장된 데이터가 관리될 수 있으므로 불필요한 데이터의 이동이 감소될 수 있다.
도 11은 모바일 기기에 적용된 본 발명의 응용 예를 도시한 블록도이다.
도 11을 참조하면, 모바일 기기(1000), 예를 들어 노트북이나 휴대용 전자기기는 하이브리드 메모리 장치(1100), 마이크로 프로세싱 유닛(MPU: 1200), 인터페이스 유닛(1300), DRAM(1000), 디스플레이(1400) 및 솔리드 스테이트 드라이브(SSD: 1500)를 포함할 수 있다.
실시 예에 있어서, 하이브리드 메모리 장치(1100), MPU(1200) 및 SSD(1500)는 하나의 칩으로 제조 또는 패키징될 수 있다. 하이브리드 메모리 장치(1100) 및 SSD(1500)는 상기 모바일 기기에 임베디드될 수도 있다.
실시 예에 있어서, 모바일 기기는 휴대용 통신 디바이스일 수 있다. 이 경우, 인터페이스 유닛(1300)에는 통신 데이터의 송수신 및 데이터 변복조 기능을 수행하는 모뎀 및 트랜시버가 연결될 수 있다.
하이브리드 메모리 장치(1100)는 MPU(1200)에 연결되며, MPU(1200)의 메인 메모리로서 기능할 수 있다. 하이브리드 메모리 장치(1100)는 도 1의 하이브리드 메모리 장치와 같이 서로 다른 읽기/쓰기 특성을 가지는 복수의 메모리들을 포함할 수 있다. 하이브리드 메모리 장치(1100)는 복수의 메모리들 중 빠른 속도를 가지는 제 1 메모리에 데이터가 저장될 때, 사용 완료된 데이터가 저장된 공간에 플러쉬 동작 없이 새로운 데이터를 오버라이트 할 수 있다. 더하여, 하이브리드 메모리 장치(1100)는 데이터의 속성에 기초하여 제 1 메모리에 저장된 데이터를 관리할 수 있으므로 불필요한 데이터의 이동이 감소될 수 있다.
MPU(1200)는 미리 설정된 프로그램에 따라 상기 모바일 기기의 제반 동작을 제어한다.
디스플레이(1400)는 백라이트를 갖는 액정이나 LED 광원을 갖는 액정 또는 OLED 등의 소자로서 터치 스크린을 가질 수 있다. 디스플레이(1400)는 문자,숫자,그림 등의 이미지를 컬러로 표시하는 출력 소자로서 기능한다.
SSD(1500)는 노아 타입 혹은 낸드 타입 플래시 메모리일 수 있다. 한편, 도 10에서 저장 장치로서 SSD가 채용되어 있으나 이는 예시적인 것으로 본 발명에서 저장 장치의 종류는 이에 한정되지 않는다. 본 발명에서 저장 장치는 다양한 종류의 불휘발성 스토리지를 포함할 수 있다. 상기 불휘발성 스토리지는 텍스트, 그래픽, 소프트웨어 코드 등과 같은 다양한 데이터 형태들을 갖는 데이터 정보를 저장할 수 있다.
실시 예에 있어서, 불휘발성 스토리지는, 예를 들면, EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory), MRAM(Magnetic RAM), 스핀전달토크 MRAM (Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), OUM(Ovonic Unified Memory)라고도 불리는 PRAM(Phase change RAM), 저항성 메모리 (Resistive RAM: RRAM 또는 ReRAM), 나노튜브 RRAM (Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리(Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
상술된 실시 예에서 모바일 기기는 모바일 통신 장치의 위주로 설명되었으나, 필요한 경우에 구성 요소를 가감하여 스마트 카드로서 기능할 수 있다.
실시 예에 있어서, 모바일 기기는 별도의 인터페이스를 통해 외부의 통신 장치와 연결될 수 있다. 통신 장치는 DVD(digital versatile disc) 플레이어, 컴퓨터, 셋 탑 박스(set top box, STB), 게임기, 디지털 캠코더 등일 수 있다.
실시 예에 있어서, 모바일 기기에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있다.
실시 예에 있어서, 모바일 기기를 형성하는 칩들은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 칩들은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등의 패키지로서 단일 패키지화될 수 있다.
도 12는 전자 시스템에 적용된 본 발명의 응용 예를 도시한 블록도이다. 도 12에 도시된 바와 같이, 전자 시스템(2000)은 입력 디바이스(2100), 프로세서(2200), 출력 디바이스(2300) 및 메모리 디바이스(2400)를 포함한다. 메모리 디바이스(2400)는 도 1과 같은 구성을 가지는 하이브리드 메모리 장치(2410)을 포함할 수 있다. 그러나 실시 예에 있어서, 하이브리드 메모리 장치(2410)은 입력 디바이스(2100), 프로세서(2200) 및 출력 디바이스(2300) 중의 임의의 하나에 통합될 수 있다.
도 12의 경우에도, 하이브리드 메모리 장치(2410)는 도 1의 하이브리드 메모리 장치와 같이 서로 다른 읽기/쓰기 특성을 가지는 복수의 메모리들을 포함할 수 있다. 하이브리드 메모리 장치(2410)는 복수의 메모리들 중 빠른 속도를 가지는 제 1 메모리에 데이터가 저장될 때, 사용 완료된 데이터가 저장된 공간에 플러쉬 동작 없이 새로운 데이터를 오버라이트 할 수 있다. 더하여, 하이브리드 메모리 장치(2410)는 데이터의 속성에 기초하여 제 1 메모리에 저장된 데이터를 관리할 수 있으므로 불필요한 데이터의 이동이 감소될 수 있다.
도 13은 휴대용 디바이스에 적용된 본 발명의 응용 예를 도시한 개략적 회로 블록이다.
도 13을 참조하면, 스마트 폰으로 기능할 수 있는 휴대용 디바이스(3000)는 하이브리드 메모리 장치(3100), 제1 프로세서(3200), 제2 프로세서(3300), 디스플레이부(3400), 유저 인터페이스(3500), 카메라 유닛(3600), 및 모뎀(3700)을 포함할 수 있다.
하이브리드 메모리 장치(3100)는 제1-3버스들(B10,B20,B22)과 연결되는 3개의 포트들을 가지며, 제1 프로세서(3200)와 제2 프로세서(3300)에 연결되어 있다. 보다 구체적으로, 하이브리드 메모리 장치(3100)의 제1 포트는 제1 버스(B10)를 통해 베이스밴드 프로세서일 수 있는 제1 프로세서(3200)에 연결되고, 하이브리드 메모리 장치(3100)의 제2 포트는 제2 버스(B20)를 통해 응용 프로세서일 수 있는 제2 프로세서(3300)에 연결된다. 또한, 하이브리드 메모리 장치(3100)의 제3 포트는 제3 버스(B22)를 통해 제2 프로세서(3300)에 연결된다.
하이브리드 메모리 장치(3100)는 도 1의 하이브리드 메모리 장치와 같이 서로 다른 읽기/쓰기 특성을 가지는 복수의 메모리들을 포함할 수 있다. 하이브리드 메모리 장치(3100)는 복수의 메모리들 중 빠른 속도를 가지는 제 1 메모리에 데이터가 저장될 때, 사용 완료된 데이터가 저장된 공간에 플러쉬 동작 없이 새로운 데이터를 오버라이트 할 수 있다. 더하여, 하이브리드 메모리 장치(3100)는 데이터의 속성에 기초하여 제 1 메모리에 저장된 데이터를 관리할 수 있으므로 불필요한 데이터의 이동이 감소될 수 있다.
실시 예에 있어서, 제1 버스(B10)의 인터페이스는 휘발성 메모리 인터페이스일 수 있으며, 제1 포트는 상기 제1 프로세서(3200)로부터 발생된 제1 패킷 데이터를 수신하여 하이브리드 메모리 장치(3100)의 내부 회로블록으로 전달할 수 있다. 또한, 제1 포트는 하이브리드 메모리 장치(3100)의 제1 데이터를 제1 프로세서(3200)로 제공할 수 있다. 이 경우에 제1 데이터는 병렬 데이터일 수 있다.
실시 예에 있어서, 제3 버스(B22)의 인터페이스도 휘발성 메모리 인터페이스일 수 있으며, 제3 포트는 제2 프로세서(3300)로부터 발생된 제3 패킷 데이터를 수신하여 하이브리드 메모리 장치(3100)의 내부 회로블록으로 전달할 수 있다. 또한, 제3 포트는 상기 하이브리드 메모리 장치(3100)의 제3 데이터를 제 2 프로세서(3300)로 제공할 수 있다.
한편, 실시 예에 있어서, 제2 버스(B20)의 인터페이스는 낸드 플래시와 같은 불휘발성 메모리 인터페이스일 수 있으며, 제2 포트는 제2 프로세서(3300)로부터 발생된 제2 패킷 데이터를 수신하여 하이브리드 메모리 장치(3100)의 내부 회로블록으로 전달할 수 있다. 또한, 제2 포트는 하이브리드 메모리 장치(3100)의 제2 데이터를 제2 프로세서(3300)로 제공할 수 있다. 이 경우에 제2 데이터는 직렬 또는 병렬 데이터일 수 있다.
실시 예에 있어서, 버스들의 인터페이스는 USB(Universal Serial Bus), MMC(Multi-Media Card), PCIE(Peripheral Component Interconnect-Express), SAS(Serial-attached SCSI), SATA(Serial Advanced Technology Attachment), PATA(Parallel Advanced Technology Attachment), SCSI(Small Computer System Interface), ESDI(Enhanced Small Disk Interface), 및 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 하나일 수 있다.
실시 예에 있어서, 제1 및 제 2 프로세서(3200, 3300)와 하이브리드 메모리 장치(3100)는 경우에 따라 하나의 칩으로 제조 또는 패키징될 수 있다. 또한 하이브리드 메모리 장치(3100)는 상기 모바일 기기에 임베디드될 수도 있다.
실시 예에 있어서, 휴대용 디바이스가 스마트 폰인 경우에, 제1 프로세서(3200)에는 통신 데이터의 송수신 및 데이터 변복조 기능을 수행하는 모뎀(3700)이 연결될 수 있다.
대용량의 정보 저장을 위해 제1 프로세서(3200) 또는 제2 프로세서(3300)에는 노어 타입 혹은 낸드 타입 플래시 메모리가 추가로 연결될 수 있다.
디스플레이 부(3400)는 백라이트를 갖는 액정이나 LED 광원을 갖는 액정 또는 OLED 등의 소자로서 터치 스크린을 가질 수 있다. 디스플레이 부(3400)는 문자,숫자,그림 등의 이미지를 컬러로 표시하는 출력 소자로서 기능한다.
상술된 실시예에서 휴대용 디바이스(3000)는 스마트 폰 장치의 위주로 설명되었으나, 필요한 경우에 구성 요소를 가감하여 스마트 카드로서 기능할 수 있다.
실시 예에 있어서, 휴대용 디바이스(3000)는 별도의 인터페이스를 통해 외부의 통신 장치와 연결될 수 있다. 상기 통신 장치는 DVD(digital versatile disc) 플레이어, 컴퓨터, 셋 탑 박스(set top box, STB), 게임기, 디지털 캠코더 등일 수 있다. 카메라 유닛(6600)은 카메라 이미지 프로세서(Camera Image Processor: CIS)를 포함하며 제2 프로세서(3300)와 연결될 수 있다.
실시 예에 있어서, 휴대용 디바이스(6000)에는 응용 칩셋(Application chipset)이나 모바일 디램 등이 더 제공될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형될 수 있다. 예를 들어, 제어부, 메모리 관리부, 하이브리드 메모리 장치 및 메모리 컨트롤러의 세부적 구성은 사용 환경이나 용도에 따라 다양하게 변화 또는 변경될 수 있을 것이다. 본 발명에서 사용된 특정한 용어들은 본 발명을 설명하기 위한 목적에서 사용된 것이며 그 의미를 한정하거나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어서는 안되며 후술하는 특허 청구범위 뿐만 아니라 이 발명의 특허 청구범위와 균등한 범위에 대하여도 적용되어야 한다.
10: 메모리 시스템
101: 제어부
101a: 메모리 관리부
100: 하이브리드 메모리 장치
110: 메모리 컨트롤러
120: 메모리부
121: 제 1 메모리
122: 제 2 메모리

Claims (10)

  1. 제 1 속도에 따라 동작하고, 쓰기 데이터 및 속성 정보를 수신 및 저장하도록 구성된 제 1 메모리;
    상기 제 1 메모리의 상기 제 1 속도보다 느린 제 2 속도에 따라 동작하고, 상기 제 1 메모리보다 큰 데이터 저장 공간을 제공하는 제 2 메모리; 및
    메모리 컨트롤러를 포함하고,
    상기 메모리 컨트롤러는:
    상기 제 1 메모리에 저장된 데이터를 상기 제 2 메모리에 복사하여 상기 제 1 메모리의 잔여 공간을 확보하는 플러쉬 동작을 수행하고,
    외부 장치로부터 특정 데이터와 관련된 상기 속성 정보를 수신하며,
    상기 제 1 메모리에 저장된 상기 특정 데이터와 관련된 상기 속성 정보에 응답하여, 상기 제 1 메모리에 저장된 상기 특정 데이터를 복수의 상태들 중 하나의 상태로 분류하고,
    상기 쓰기 데이터를 포함하는 쓰기 데이터 저장 요청이 수신되면, 상기 제 1 메모리에 상기 쓰기 데이터를 저장하는데 충분한 잔여 공간이 존재하는지 여부를 판별하고, 상기 제 1 메모리에 충분한 잔여 공간이 존재하지 않는다고 판별되면, 상기 제1 메모리에 저장된 상기 특정 데이터 중에서, 상기 복수의 상태들 중 가장 낮은 우선도의 상태로 분류된 데이터를 상기 쓰기 데이터로 오버라이트하며,
    상기 제 1 메모리에 저장된 이전의 쓰기 데이터에 대하여 수행된 프로세스의 완료에 응답하여, 상기 제 1 메모리 내에서 상기 이전의 쓰기 데이터가 저장되는 공간은 상기 제 1 메모리로부터 상기 제 2 메모리로 상기 이전의 쓰기 데이터의 복사 없이 오버라이트 될 수 있는 잔여 공간인 것을 나타내도록, 상기 이전의 쓰기 데이터에 할당된 속성 정보를 변경하도록 구성되는 하이브리드 메모리 장치.
  2. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 1 메모리의 잔여 공간이 충분하지 않다고 판별된 것에 응답하여 상기 플러쉬 동작을 수행하도록 더 구성되는 하이브리드 메모리 장치.
  3. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 1 메모리의 잔여 공간이 충분하다고 판별된 것에 응답하여 상기 제 1 메모리에 상기 쓰기 데이터를 즉시 저장하도록 더 구성되는 하이브리드 메모리 장치.
  4. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 속성 테이블을 참조하도록 구성되고,
    상기 제 1 메모리에 저장된 각각의 단위 데이터는 대응되는 플래그 비트들을 포함하고, 상기 속성 테이블 내에서 상기 플래그 비트들은 상기 단위 데이터에 대한 상기 복수의 상태들 중에서 할당된 상태를 지시하는 하이브리드 메모리 장치.
  5. 제 4 항에 있어서,
    상기 메모리 컨트롤러는 상기 프로세스의 완료에 응답하여 상기 속성 테이블을 업데이트하도록 더 구성된 하이브리드 메모리 장치.
  6. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 외부에서 제공되는 명령에 응답하여 상기 플러쉬 동작을 수행하도록 더 구성된 하이브리드 메모리 장치.
  7. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 플러쉬 동작을 주기적으로 수행하도록 더 구성된 하이브리드 메모리 장치.
  8. 메모리 컨트롤러, 제 1 속도에 따라 동작하는 제 1 메모리, 및 상기 제 1 메모리의 상기 제 1 속도보다 느린 제 2 속도에 따라 동작하고 상기 제 1 메모리보다 큰 데이터 저장 공간을 제공하는 제 2 메모리를 포함하는 하이브리드 메모리 장치; 및 제어부를 포함하는 메모리 시스템에서, 저장 동작의 수행 중에 상기 제 1 메모리의 저장 공간을 재할당하는 데이터 처리 방법에 있어서:
    상기 제 1 메모리에 저장된 제 1 데이터, 제 2 데이터, 및 제 3 데이터에 각각 할당된 상태들을 나열하는 속성 테이블을 참조하는 단계;
    제 4 데이터를 포함하는 수신된 쓰기 데이터 저장 요청에 응답하여, 상기 제 1 메모리에 상기 제 4 데이터를 저장할 충분한 잔여 공간이 존재하는지 여부를 판별하는 단계;
    상기 제 1 메모리에 상기 제 4 데이터를 저장할 충분한 잔여 공간이 존재한다고 판별된 것에 응답하여, 상기 제 4 데이터를 상기 제 1 메모리에 저장하는 단계;
    상기 제 1 메모리에 상기 제 4 데이터를 저장할 충분한 잔여 공간이 존재하지 않는다고 판별된 것에 응답하여, 상기 제 3 데이터를 상기 제 4 데이터의 적어도 일부분으로 오버라이트하여 상기 제 1 메모리의 상기 저장 공간을 재할당하는 단계; 및
    상기 제 1 메모리에 저장된 이전의 쓰기 데이터에 대하여 수행된 프로세스의 완료에 응답하여, 상기 제 1 메모리 내에서 상기 이전의 쓰기 데이터가 저장되는 공간은 상기 제 1 메모리로부터 상기 제 2 메모리로 상기 이전의 쓰기 데이터의 복사 없이 오버라이트 될 수 있는 잔여 공간인 것을 나타내도록, 상기 이전의 쓰기 데이터에 할당된 속성 정보를 변경하는 단계를 포함하고,
    상기 제 1 데이터에는 상기 상태들 중에서 제 1 우선도 상태가 할당되고, 상기 제 2 데이터에는 상기 상태들 중에서 상기 제 1 우선도 상태보다 낮은 우선도를 갖는 제 2 우선도 상태가 할당되고, 상기 제 3 데이터에는 상기 상태들 중에서 상기 제 2 우선도 상태보다 낮은 우선도를 갖는 제 3 우선도 상태가 할당되는 데이터 처리 방법.
  9. 제 8 항에 있어서,
    상기 메모리 컨트롤러에서 실행되는 운영 체제를 이용하여 상기 속성 정보를 모니터함으로써, 상기 저장된 제 1 데이터와 관련된 속성 정보를 변경하는, 상기 저장된 제 1 데이터에 대한 상기 메모리 시스템에서 데이터 처리 동작을 완료하는 단계; 및
    상기 저장된 제 1 데이터에 할당된 상기 제 1 우선도 상태를 다른 상태로 변경하는 단계를 더 포함하는 데이터 처리 방법.
  10. 제 8 항에 있어서,
    제 3 데이터를 오버라이트하는 제 4 데이터 이외의 제 4 데이터의 잔여 부분에 대해서, 상기 제 1 메모리에 충분한 잔여 공간이 존재하지 않는다고 판별될 때, 적어도 상기 저장된 제 2 데이터를 상기 제 1 메모리로부터 상기 제 2 메모리로 복사하는 플러쉬 동작을 수행하는 단계; 및
    상기 제 4 데이터의 상기 잔여 부분을 상기 제 1 메모리에 저장하는 단계를 더 포함하는 데이터 처리 방법.
KR1020140035146A 2014-03-26 2014-03-26 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법 KR102248915B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140035146A KR102248915B1 (ko) 2014-03-26 2014-03-26 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법
US14/667,242 US9804801B2 (en) 2014-03-26 2015-03-24 Hybrid memory device for storing write data based on attribution of data stored therein

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140035146A KR102248915B1 (ko) 2014-03-26 2014-03-26 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법

Publications (2)

Publication Number Publication Date
KR20150112076A KR20150112076A (ko) 2015-10-07
KR102248915B1 true KR102248915B1 (ko) 2021-05-07

Family

ID=54190572

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140035146A KR102248915B1 (ko) 2014-03-26 2014-03-26 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법

Country Status (2)

Country Link
US (1) US9804801B2 (ko)
KR (1) KR102248915B1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US8954446B2 (en) 2010-12-14 2015-02-10 Comm Vault Systems, Inc. Client-side repository in a networked deduplicated storage system
US9147464B1 (en) * 2012-05-15 2015-09-29 Adesto Technologies Corporation System architecture with multiple memory types, including programmable impedance memory elements
US9218376B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Intelligent data sourcing in a networked storage system
US9665591B2 (en) 2013-01-11 2017-05-30 Commvault Systems, Inc. High availability distributed deduplicated storage system
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
KR20160049200A (ko) * 2014-10-27 2016-05-09 삼성전자주식회사 데이터 저장 장치의 작동 방법, 이를 포함하는 모바일 컴퓨팅 장치, 및 이의 작동 방법
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) * 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US20170193003A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. Redundant and robust distributed deduplication data storage system
TWI596541B (zh) * 2016-11-30 2017-08-21 財團法人工業技術研究院 資料存取系統、資料存取裝置及資料存取方法
KR20180078512A (ko) 2016-12-30 2018-07-10 삼성전자주식회사 반도체 장치
US10203885B2 (en) * 2017-01-18 2019-02-12 Micron Technology, Inc. Memory device including mixed non-volatile memory cell types
US11397687B2 (en) * 2017-01-25 2022-07-26 Samsung Electronics Co., Ltd. Flash-integrated high bandwidth memory appliance
US10540505B2 (en) * 2017-09-29 2020-01-21 Intel Corporation Technologies for protecting data in an asymmetric storage volume
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
KR102144124B1 (ko) 2019-04-22 2020-08-13 고려대학교 산학협력단 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
KR20210053390A (ko) * 2019-11-01 2021-05-12 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
EP4148588A4 (en) * 2020-05-30 2023-07-12 Huawei Technologies Co., Ltd. DATA STORAGE METHOD AND SYSTEM, AND PROCESSOR
US12045490B2 (en) * 2021-07-21 2024-07-23 Sap Se Transferring data to backup data repositories
US11941281B2 (en) * 2022-04-01 2024-03-26 Nxp B.V. Non-volative memory system configured to mitigate errors in read and write operations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246487A1 (en) 2004-05-03 2005-11-03 Microsoft Corporation Non-volatile memory cache performance improvement
US20060143396A1 (en) 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US20110252201A1 (en) 2010-03-29 2011-10-13 Kaminario Technologies Ltd. Smart flushing of data to backup storage
US20150095589A1 (en) 2013-09-30 2015-04-02 Samsung Electronics Co., Ltd. Cache memory system and operating method for the same

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7143245B2 (en) * 2004-01-20 2006-11-28 Hewlett-Packard Development Company, L.P. System and method for read migratory optimization in a cache coherency protocol
US20050204113A1 (en) 2004-03-09 2005-09-15 International Business Machines Corp. Method, system and storage medium for dynamically selecting a page management policy for a memory controller
US7269708B2 (en) 2004-04-20 2007-09-11 Rambus Inc. Memory controller for non-homogenous memory system
US7574564B2 (en) * 2006-05-11 2009-08-11 Freescale Semiconductor, Inc. Replacement pointer control for set associative cache and method
WO2008055269A2 (en) 2006-11-04 2008-05-08 Virident Systems, Inc. Asymmetric memory migration in hybrid main memory
US8700830B2 (en) 2007-11-20 2014-04-15 Spansion Llc Memory buffering system that improves read/write performance and provides low latency for mobile systems
US8266393B2 (en) 2008-06-04 2012-09-11 Microsoft Corporation Coordination among multiple memory controllers
US8321652B2 (en) 2008-08-01 2012-11-27 Infineon Technologies Ag Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US8219741B2 (en) 2008-10-24 2012-07-10 Microsoft Corporation Hardware and operating system support for persistent memory on a memory bus
WO2010049929A1 (en) 2008-10-27 2010-05-06 Kaminario Tehnologies Ltd. A mass-storage system utilizing solid-state storage and non-solid-state storage
US20110055495A1 (en) 2009-08-28 2011-03-03 Qualcomm Incorporated Memory Controller Page Management Devices, Systems, and Methods
WO2012050934A2 (en) 2010-09-28 2012-04-19 Fusion-Io, Inc. Apparatus, system, and method for a direct interface between a memory controller and non-volatile memory using a command protocol
KR101954995B1 (ko) * 2011-04-27 2019-05-31 시게이트 테크놀로지 엘엘씨 저장 매체에 라이트 된 데이터 머지 방법, 저장 매체에 대한 라이트 동작 제어 방법, 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장 매체
US8554963B1 (en) 2012-03-23 2013-10-08 DSSD, Inc. Storage system with multicast DMA and unified address space
US9256543B2 (en) * 2014-01-15 2016-02-09 Oxide Interactive Llc Method and system for efficient communication and command system for deferred operation
US9813815B2 (en) * 2014-05-20 2017-11-07 Gn Hearing A/S Method of wireless transmission of digital audio
US9524201B2 (en) * 2014-06-19 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Safe and efficient dirty data flush for dynamic logical capacity based cache in storage systems
US9619394B2 (en) * 2015-07-21 2017-04-11 Apple Inc. Operand cache flush, eviction, and clean techniques using hint information and dirty information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050246487A1 (en) 2004-05-03 2005-11-03 Microsoft Corporation Non-volatile memory cache performance improvement
US20060143396A1 (en) 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US20110252201A1 (en) 2010-03-29 2011-10-13 Kaminario Technologies Ltd. Smart flushing of data to backup storage
US20150095589A1 (en) 2013-09-30 2015-04-02 Samsung Electronics Co., Ltd. Cache memory system and operating method for the same

Also Published As

Publication number Publication date
US9804801B2 (en) 2017-10-31
KR20150112076A (ko) 2015-10-07
US20150278104A1 (en) 2015-10-01

Similar Documents

Publication Publication Date Title
KR102248915B1 (ko) 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법
US11086537B2 (en) Method and system to perform urgency level garbage collection based on write history of memory blocks
KR102533072B1 (ko) 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법
US9529708B2 (en) Apparatus for configuring partitions within phase change memory of tablet computer with integrated memory controller emulating mass storage to storage driver based on request from software
TWI468938B (zh) 用於配備具有可組態分區之不變性隨機存取記憶體的平台儲存階層之方法,設備及系統
US10817418B2 (en) Apparatus and method for checking valid data in memory system
US10963175B2 (en) Apparatus and method for searching valid data in memory system
CN110806837B (zh) 数据处理系统及其操作方法
EP3123336B1 (en) Method and apparatus for restricting writes to solid state memory when an end-of-life condition is reached
KR102649131B1 (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
US11157402B2 (en) Apparatus and method for managing valid data in memory system
US20140229659A1 (en) Thin translation for system access of non volatile semicondcutor storage as random access memory
US11656785B2 (en) Apparatus and method for erasing data programmed in a non-volatile memory block in a memory system
CN110806983B (zh) 存储器系统及其操作方法
CN115809018A (zh) 改善系统的读取性能的设备和方法
KR102691776B1 (ko) 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치
US11487439B1 (en) Utilizing host memory buffers for storage device recoveries
US10698621B2 (en) Block reuse for memory operations
KR102702680B1 (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR102708925B1 (ko) 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
US20240232032A1 (en) Stream temperature interleave monitor

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant