KR20100086776A - 복합 메모리 장치 및 이를 이용한 i/o 처리 방법 - Google Patents

복합 메모리 장치 및 이를 이용한 i/o 처리 방법 Download PDF

Info

Publication number
KR20100086776A
KR20100086776A KR20090006178A KR20090006178A KR20100086776A KR 20100086776 A KR20100086776 A KR 20100086776A KR 20090006178 A KR20090006178 A KR 20090006178A KR 20090006178 A KR20090006178 A KR 20090006178A KR 20100086776 A KR20100086776 A KR 20100086776A
Authority
KR
South Korea
Prior art keywords
random access
access memory
nonvolatile random
memory
request
Prior art date
Application number
KR20090006178A
Other languages
English (en)
Other versions
KR101573047B1 (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 KR1020090006178A priority Critical patent/KR101573047B1/ko
Priority to US12/533,433 priority patent/US8880777B2/en
Publication of KR20100086776A publication Critical patent/KR20100086776A/ko
Application granted granted Critical
Publication of KR101573047B1 publication Critical patent/KR101573047B1/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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

비휘발성의 대용량 메모리 및 이러한 메모리를 이용한 I/O 처리 방법이 개시된다. 본 발명의 일 양상에 따른 메모리 장치는 비휘발성 RAM과 플래시 메모리를 포함하는 스토리지와 요청된 I/O를 처리하기 위해 스토리지를 제어하는 컨트롤러를 포함할 수 있다. 이에 의하면, 각 용도에 맞게 별도로 사용하던 플래시 메모리, DRAM 등의 시스템 메모리를 하나로 통합하여 사용하는 것이 가능하다.
메모리, FRAM, MRAM, PRAM, NAND 플래시, I/O 처리

Description

복합 메모리 장치 및 이를 이용한 I/O 처리 방법{Complex memory device and I/O processing method using these}
시스템 메모리와 관련된다. 특히 대용량의 비휘발성 메모리의 구성 및 이를 이용한 I/O 처리 방법과 관련된다.
현재 임베디드 시스템의 메모리로는 소프트웨어 구동을 위한 주 메모리로써의 DRAM, Code 저장 및 수행 영역으로써의 NOR 플래시 메모리, 그리고 사용자 데이터 저장을 위한 NAND Flash 등이 있다.
DRAM은 가장 빠른 Read/Write 속도 및 Byte Access가 가능한 특성을 가지고 있지만, 휘발성이라는 단점을 가지고 있으며 주기적인 Refreshing 때문에 전력 소모가 많은 단점을 가지고 있다. 이와 같은 특성 때문에 주로 소프트웨어의 R/W Data를 저장하는 용도로 사용되고 있다.
NOR Flash 메모리는 비휘발성의 특징과 Byte Access가 가능한 특성 및 빠른 Read속도를 가지고 있지만, 느린 Write 속도 및 Erase-Before-Write가 필요한 단점을 가지고 있어, 주로 갱신이 필요 없는 코드의 저장 및 XIP (Execute In Place)용도로 사용되고 있다.
NAND Flash 메모리는 Page (Usually 2KB) 단위 I/O 만을 지원하는 단점 때문에 소프트웨어 Code 수행이나 소프트웨어 R/W Data 저장용도로는 사용이 힘들지만, 대용량 데이터 전송 시 빠른 R/W 속도와, 저렴한 비용과 대용량의 특성으로 사용자 데이터를 저장하는 용도로 주로 사용이 된다.
이렇게 각각의 용도에 맞게 개별적으로 메모리를 사용하기 때문에, 시스템적인 관점에서 보면 시스템 디자인 복잡도가 높아 지고, Form factor가 증대되고, 무엇보다 칩의 개수 증가로 인한 비용 증대의 문제점이 있다.
본 명세서에서는, 각 용도에 맞게 개별적으로 사용되던 시스템 메모리를 하나로 통합하기 위한 기술이 개시된다.
보다 구체적으로, 본 발명의 일 양상에 따른 복합 메모리 장치는 비휘발성 랜덤 엑세스 메모리와 플래시 메모리를 포함하는 스토리지, 및 호스트의 I/O 요청을 처리하고, 비휘발성 랜덤 엑세스 메모리와 플래시 메모리가 계층적으로 동작하도록 이들을 제어하며, I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부에 따라 듀얼 인터페이스를 제공하는 컨트롤러를 포함할 수 있다.
본 발명의 일 양상에 따라, 컨트롤러는 호스트 또는 호스트의 OS에게 논리 주소 공간을 제공하는 것이 가능하다. 또한, 호스트의 I/O 요청을 수행하기 위해 주소 변환 및 비휘발성 랜덤 엑세스 메모리와 플래시 메모리 사이에서의 요구 페이징(demand paging) 등을 수행할 수 있다.
또한, 본 발명의 일 양상에 따라, 컨트롤러는 I/O 요청이 바이트 단위인 경우, 1차적으로 비휘발성 랜덤 엑세스 메모리로부터 상기 I/O 요청을 처리하고, 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하고 있지 아니한 경우 2차적으로 상기 플래시 메모리로부터 요청된 데이터를 비휘발성 랜덤 엑세스 메모리로 로드한 후 I/O 요청을 처리하는 것이 가능하다. 그리고, 요청된 데이터를 비휘발성 랜덤 엑세스 메모리로 로드할 때 비휘발성 랜덤 엑세스 메모리에 저장 공간이 부족 한 경우, 비휘발성 랜덤 엑세스 메모리에 저장된 데이터의 일부를 플래시 메모리로 플러시(flush)하여 저장 공간을 확보하는 것이 가능하다.
또한, 본 발명의 일 양상에 따라, 컨트롤러는 I/O 요청이 블록 단위인 경우, 비휘발성 랜덤 엑세스 메모리를 거치지 아니하고 플래시 메모리로부터 I/O 요청을 직접 처리하는 것이 가능하다. 이때, 컨트롤러는 바이트 엑세스 영역 및 블록 엑세스 영역이 구분된 주소 공간을 호스트에게 제공할 수 있다.
본 발명의 일 양상에 따라, 비휘발성 랜덤 엑세스 메모리는 FRAM, MRAM 또는 PRAM 등이 될 수 있고, 플래시 메모리는 NAND형 플래시 메모리가 될 수 있다.
한편, 본 발명의 일 양상에 따른 I/O 처리 방법은 비휘발성 랜덤 엑세스 메모리 및 플래시 메모리를 갖는 복합 메모리 디바이스의 I/O 처리 방법에 있어서, 호스트로부터의 I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부를 판단하는 단계, I/O 요청이 바이트 단위인 경우, 비휘발성 랜덤 엑세스 메모리 또는 플래시 메모리로부터 계층적으로 I/O 요청을 처리하는 단계, 및 I/O 요청이 블록 단위인 경우, 플래시 메모리로부터 I/O 요청을 처리하는 단계를 포함할 수 있다.
또한, 계층적으로 상기 I/O 요청을 처리하는 단계는 요청된 데이터가 비휘발성 랜덤 엑세스 메모리에 상주하는지 여부를 판단하는 단계, 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하는 경우, 비휘발성 랜덤 엑세스 메모리로부터 I/O 요청을 처리하는 단계, 및 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하지 아니한 경우, 요청된 데이터를 플래시 메모리로부터 비휘발성 랜덤 엑세스 메모리로 로드한 후 I/O 요청을 처리하는 단계를 포함할 수 있으며, 요청된 데이터를 비휘발성 랜덤 엑세스 메모리로 로드할 때, 비휘발성 랜덤 엑세스 메모리에 저장 공간이 부족한 경우, 비휘발성 랜덤 엑세스 메모리에 저장된 일부의 데이터를 플래시 메모리로 플러시(flush)하는 단계를 더 포함할 수 있다.
개시된 내용에 의하면, 속도, 성능, 특성이 각각 달라서 그 용도에 따라 독립적으로 사용되던 메모리 장치를 각 장점을 살려서 하나로 통합하였기 때문에 저렴한 비용으로 대용량의 non-volatile한 메모리 장치를 제공할 수 있게 된다. 물리적으로도 이러한 장치에 의하면 form factor가 작아지며, instant power-on 등의 이점을 최대한 살릴 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다. 후술되는 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니한다.
도 1은 본 발명의 실시 예에 따른 복합 메모리 장치에 관한 일 예를 도시한다.
도 1을 참조하면, 본 실시 예에 따른 복합 메모리 장치(100)는 각종 데이터를 저장하며 호스트(106)로부터의 I/O 요청을 처리하는 것이 가능하다. 이러한 복합 메모리 장치(100)는 하나의 칩(chip)으로 구성되어 호스트(106)와 통신 가능하게 연결될 수 있다. 또한, 복합 메모리 장치(100)는 데이터를 저장하고 이를 처리하는 컴퓨팅 장치의 내부에 형성되거나, 이러한 컴퓨팅 장치와 연결 및 분리가 가 능하도록 별도의 장치로 형성되는 것도 가능하다. 컴퓨팅 장치의 예로는 컴퓨터, 휴대폰, 디지털 카메라 등이 될 수 있다.
복합 메모리 장치(100)는 컨트롤러(101)와 스토리지(102)를 포함할 수 있다.
스토리지(102)는 서로 다른 종류의 저장 장치가 적어도 2개 이상 구비될 수 있다. 예컨대, 비휘발성 랜덤 엑세스 메모리(Non-volatile RAM)(103)와 플래시 메모리(flash memory)(104)를 데이터 버스(105)로 연결하여 스토리지(102)를 형성하는 것이 가능하다. 이때, 비휘발성 랜덤 엑세스 메모리(103)는 DRAM을 대체하는 것이 가능하고, 플래시 메모리(104)는 HDD를 대체하는 것이 가능하다.
비휘발성 랜덤 엑세스 메모리(103)란 전원이 공급되지 않아도 저장된 정보를 유지하는 저장 장치를 말하며, 일 예로써, FRAM, MRAM, PRAM 등이 이용될 수 있다. FRAM은 Ferroelectric Random Access Memory의 약자로, 컴퓨터의 주기억장치로 많이 쓰이는 DRAM과 비슷한 구조를 갖고 있으나 강유전체를 이용하여 비휘발성을 가진다는 점이 DRAM과 다르다. MRAM은 Magnetic Random Access Memory의 약자로 FRAM과 같이 저장된 정보를 유지하는 것이 가능하다. PRAM은 Phase-change Memory의 약자로, 열을 가함에 따라 비정질 상태와 결정질 상태가 바뀌는 칼코게나이드(Chalcogenide)의 특성을 이용하여 정보를 저장하고 유지하는 것이 가능하다.
플래시 메모리(104)는 하드 디스크(HDD)와 달리 기계적인 디스크 회전 없이 정보를 저장할 수 있는 SSD(solid-state device)가 될 수 있다. 이러한 플래시 메모리(104)로는 NAND type과 NOR type이 있는데, 본 실시 예에서는 대용량 정보를 저장할 수 있는 NAND type의 플래시 메모리를 이용할 수 있다.
컨트롤러(101)는 호스트(106)의 I/O(Input/Output) 요청을 처리하고, 비휘발성 랜덤 엑세스 메모리(103)와 플래시 메모리(104)가 계층적으로 동작하도록 이들을 제어한다. 예를 들어, 호스트(106)로부터 I/O 요청이 있는 경우, 컨트롤러(101)는 다음과 같이 비휘발성 랜덤 엑세스 메모리(103)와 플래시 메모리(104)를 제어하는 것이 가능하다.
먼저, I/O 요청이 발생하면 컨트롤러(101)는 일단 요청된 데이터가 비휘발성 랜덤 엑세스 메모리(103)에 상주해 있는지를 확인하고 비휘발성 랜덤 엑세스 메모리(103) 상의 물리 주소(Physical Address)를 획득한다. 이때, 데이터의 상주 여부 및 물리 주소 획득을 위해 가상 메모리 관리자의 주소 매핑 테이블을 참조하는 것이 가능하다.
해당 데이터가 비휘발성 랜덤 엑세스 메모리(103)에 상주해 있는 경우 해당 데이터를 비휘발성 랜덤 엑세스 메모리(103)로부터 I/O 처리한다. 만약, 요청된 데이터가 비휘발성 랜덤 엑세스 메모리(103)에 상주해 있지 아니할 경우 주소 매핑 테이블을 이용하여 플래시 메모리(104) 상의 저장 위치를 확인하고, 해당 데이터를 플래시 메모리(104)로부터 비휘발성 랜덤 엑세스 메모리(103)로 로딩(loading) 시킨다.
이때, 비휘발성 랜덤 엑세스 메모리(103)에 저장 공간이 부족한 경우, 비휘발성 랜덤 엑세스 메모리(103)에 저장된 데이터 중 일부(예컨대, victim)를 플래시 메모리(104)로 플러시(flush) 시켜서 free space가 확보되도록 하는 것이 가능하다.
또한, 컨트롤러(101)는 호스트(106)의 I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부에 따라 듀얼 인터페이스를 제공하는 것이 가능하다. 즉, 바이트 단위의 엑세스만 지원하면 비휘발성 랜덤 엑세스 메모리(103)에서의 victim flush가 너무 자주 발생할 수 있기 때문에 주소 공간을 바이트 엑세스 영역과 블록 엑세스 영역으로 나누어서 제공하는 것이 가능하다.
예를 들어, I/O 요청이 바이트 단위인 경우, 컨트롤러(101)는 전술한 것과 마찬가지로 비휘발성 랜덤 엑세스 메모리(103)와 플래시 메모리(104)가 계층적으로 동작하도록 하는 인터페이스를 제공한다. 그리고, I/O 요청이 블록 단위인 경우, 컨트롤러(101)는 바이트 엑세스와 달리 비휘발성 랜덤 엑세스 메모리(103)를 거치지 않고 직접 플래시 메모리(104)로부터 I/O 처리가 가능하도록 인터페이스를 제공하는 것이 가능하다.
도 2는 본 발명의 실시 예에 따른 복합 메모리 장치에 관한 다른 예를 도시한다.
도 2를 참조하면, 본 실시 예에 따른 복합 메모리 장치(200)는 FRAM(201) 및 NAND 플래시(202)가 계층적으로 배치되어 있다. 즉 FRAM(201)은 level 1에 배치되고 NAND 플래시(202)가 level 2에 배치되며, 두 메모리(201, 202) 사이에서 컨트롤러(203)가 demand paging을 수행하는 것이 가능하다.
컨트롤러(203)는 이러한 메모리들(201, 202)을 계층적으로 관리하여 호스트로부터의 I/O 요청을 처리하게 된다. 예컨대, 호스트가 어떠한 데이터를 요청하면, 그 데이터가 FRAM(201)에 상주하고 있는지 먼저 확인하여, 데이터가 상주하고 있는 경우, 해당 데이터가 저장된 위치의 물리 주소(Physical Address)를 획득하고 I/O 처리를 수행하는 것이 가능하다. 그리고, 그 데이터가 FRAM(201)에 상주하고 있지 아니한 경우, NAND 플래시(202)에서 FRAM(201)으로 해당 데이터를 로드한 후 I/O 처리를 수행할 수 있다.
본 실시 예에 따라, 컨트롤러(203)는 512MB의 논리 주소 공간(Logical Address space)(204)를 호스트 또는 호스트의 OS에게 제공하는 것이 가능하다. 그리고, NAND 플래시(202)는 이 논리 주소 공간(204)과 같은 크기의 512MB를 가질 수 있으며, FRAM(201)은 8MB가 될 수 있다. 또한, 컨트롤러(203)에 구비된 가상 메모리 관리자(205)가 주소 매핑 테이블을 참조하여 요청된 데이터의 FRAM(201) 상주 여부를 확인하고 물리 주소를 획득하는 것이 가능하다. 따라서, 사용자는 본 실시 예에 따른 복합 메모리 장치(200)를 512MB의 비휘발성 랜덤 엑세스 메모리 장치처럼 사용할 수 있게 된다.
도 2에서, 선택적으로, FRAM(201)은 두 개의 영역으로 나누어질 수 있다. 예를 들어, 사용 빈도 즉, 엑세스 횟수가 많은 FRAM(201)의 특정 영역은 고정 영역(pinned area)으로, 나머지 영역은 비고정 영역(unpinned area)로 지정할 수 있다. 이때, 컨트롤러(203)는 논리 주소 공간 중에서 고정 영역에 대응되는 영역을 별도로 지정하여 호스트에게 제공하는 것이 가능하다.
도 3은 본 발명의 실시 예에 따른 복합 메모리 장치에 관한 또 다른 예를 도시한다.
도 3을 참조하면, 본 실시 예에 따른 복합 메모리 장치(300)는 도 2와 마찬 가지로 FRAM(201), NAND 플래시(202), 컨트롤러(203)를 포함할 수 있다. 그리고, 컨트롤러(203)는 호스트에 논리 주소 공간을 제공하는데, 이때 논리 주소 공간은 바이트 엑세스 영역(301)과 블록 엑세스 영역(302)으로 구분하여 제공하는 것이 가능하다.
예를 들어, 호스트는 I/O 요청을 바이트 단위와 블록 단위로 나누어서 요청할 수 있다. 그리고, 컨트롤러(203)는 이 I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부에 따라 듀얼 인터페이스(Dual Interface)를 제공할 수 있다.
바이트 단위 엑세스의 경우, 컨트롤러(203)는 도 2에서 설명한 것과 동일하게 I/O 처리를 수행하는 것이 가능하다. 또한, 블록 단위 엑세스의 경우, FRAM(201)을 거치지 아니하고 직접 NAND 플래시(202)에서 I/O 동작을 수행하는 것이 가능하다.
예컨대, 블록 단위의 I/O 요청을 수신한 컨트롤러(203)는 레지스터에 직접 접근하기 위해 레지스터 인터페이스를 이용하여 커맨드를 보내고 NAND 플래시(202)로부터 물리 주소를 획득하여 I/O 처리를 수행하는 것이 가능하다.
도 4는 본 발명의 실시 예에 따른 I/O 처리 방법에 관한 일 예를 도시한다. 이것은 도 2와 같은 복합 메모리 장치를 이용한 I/O 처리 방법의 일 예가 될 수 있다.
도 4를 참조하면, 본 실시 예에 따른 I/O 처리 방법은 비휘발성 랜덤 엑세스 메모리와 플래시 메모리를 계층적으로 제어하여 I/O 처리를 수행하는 것이 가능하다.
먼저, 호스트로부터 I/O 요청을 수신하게 되면, S401과 같이, 목적 주소(Destination Address)가 비휘발성 랜덤 엑세스 메모리에 위치하는지 여부를 판단한다.
판단 결과, 목적 주소가 비휘발성 랜덤 엑세스 메모리에 위치하면, S402와 같이, 주소 매핑 테이블을 참조하여 비휘발성 랜덤 엑세스 메모리의 해당 물리 주소를 획득한다. 이후, S403과 같이, 획득된 물리 주소를 기반으로 비휘발성 랜덤 엑세스 메모리로부터 I/O를 수행한다.
위 S401의 판단 결과, 목적 주소가 비휘발성 랜덤 엑세스 메모리에 위치하지 아니한 경우에는, S404와 같이, 주소 매핑 테이블을 참조하여 플래시 메모리에서의 해당 물리 주소를 획득한다. 이어서, S405와 같이, 비휘발성 랜덤 엑세스 메모리에 free space가 존재하는지를 판단한다. 판단 결과, free space가 존재하면, S406과 같이, 플래시 메모리로부터 비휘발성 랜덤 엑세스 메모리로 데이터를 로드하고, 비휘발성 랜덤 엑세스 메모리의 물리 주소를 획득한다. 이어서, S408과 같이, 주소 매핑 테이블을 업데이트하고, S403이 수행된다. 위 S405의 판단 결과, 비휘발성 랜덤 엑세스 메모리에 free space가 존재하지 아니한 경우, S407과 같이, 비휘발성 랜덤 엑세스 메모리에 저장된 데이터 중 일부를 victim으로 선정하고 이것을 플래시 메모리로 플러시하여 free space를 확보하는 것이 가능하다.
도 5는 본 발명의 실시 예에 따른 I/O 처리 방법에 관한 다른 예를 도시한다. 이것은 도 3과 같은 복합 메모리 장치를 이용한 I/O 처리 방법의 일 예가 될 수 있으며, 듀얼 인터페이스를 통해 바이트 단위 엑세스와 블록 단위 엑세스를 모 두 지원하는 방식이다.
도 5에서, 호스트로부터 I/O 요청을 수신하게 되면, S501과 같이, 그 I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부를 판단한다.
S501의 판단 결과, 바이트 단위의 I/O 요청이 있는 경우, 도 4에서 설명한 것과 마찬가지로 S401 내지 S407 과정이 수행될 수 있다.
그리고, S501의 판단 결과, 블록 단위의 I/O 요청인 경우, S502와 같이, FTL(플래시 변환 레이어)을 통해 플래시 메모리에서 I/O처리를 수행한다.
이상에서 상세히 설명한 바와 같이, 본 발명의 실시 예에 의하면, 시스템 메모리를 대용량의 비휘발성 랜덤 엑세스 메모리로 구성할 수 있고, 각 메모리를 용도에 따라 Code XIP 용도, R/W 영역, 데이터 저장 영역 등으로 분할하여 사용하는 것이 가능하다.
도 1은 본 발명의 일 실시 예에 따른 복합 메모리 장치를 도시한다.
도 2는 본 발명의 다른 실시 예에 따른 복합 메모리 장치를 도시한다.
도 3은 본 발명의 또 다른 실시 예에 따른 복합 메모리 장치를 도시한다.
도 4는 본 발명의 일 실시 예에 따른 I/O 처리 방법을 도시한다.
도 5는 본 발명의 다른 실시 예에 따른 I/O 처리 방법을 도시한다.

Claims (14)

  1. 비휘발성 랜덤 엑세스 메모리와 플래시 메모리를 포함하는 스토리지; 및
    호스트의 I/O 요청을 처리하고, 상기 비휘발성 랜덤 엑세스 메모리와 상기 플래시 메모리가 계층적으로 동작하도록 이들을 제어하며, 상기 I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부에 따라 듀얼 인터페이스를 제공하는 컨트롤러; 를 포함하는 복합 메모리 디바이스.
  2. 제 1 항에 있어서,
    상기 컨트롤러는, 주소 변환 및 상기 비휘발성 랜덤 엑세스 메모리와 상기 플래시 메모리 사이에서의 요구 페이징(demand paging)을 수행하는 복합 메모리 디바이스.
  3. 제 1 항에 있어서,
    상기 컨트롤러는, 상기 I/O 요청이 바이트 단위인 경우, 1차적으로 상기 비휘발성 랜덤 엑세스 메모리로부터 상기 I/O 요청을 처리하고, 상기 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하고 있지 아니한 경우 2차적으로 상기 플래시 메모리로부터 요청된 데이터를 상기 비휘발성 랜덤 엑세스 메모리로 로드한 후 상기 I/O 요청을 처리하는 복합 메모리 디바이스.
  4. 제 3 항에 있어서,
    상기 컨트롤러는, 상기 요청된 데이터를 상기 비휘발성 랜덤 엑세스 메모리로 로드할 때 상기 비휘발성 랜덤 엑세스 메모리에 저장 공간이 부족한 경우, 상기 비휘발성 랜덤 엑세스 메모리에 저장된 데이터의 일부를 상기 플래시 메모리로 플러시(flush)하는 복합 메모리 디바이스.
  5. 제 1 항에 있어서,
    상기 컨트롤러는, 상기 I/O 요청이 블록 단위인 경우, 상기 플래시 메모리로부터 상기 I/O 요청을 처리하는 복합 메모리 디바이스.
  6. 제 5 항에 있어서,
    상기 컨트롤러는, 바이트 엑세스 영역 및 블록 엑세스 영역이 구분된 주소 공간을 상기 호스트에게 제공하는 복합 메모리 디바이스.
  7. 제 1 항에 있어서,
    상기 비휘발성 랜덤 엑세스 메모리는, FRAM, MRAM 또는 PRAM 중 어느 하나인 복합 메모리 디바이스.
  8. 제 1 항에 있어서,
    상기 플래시 메모리는, NAND형 플래시 메모리인 복합 메모리 디바이스.
  9. 제 1 항에 있어서,
    상기 비휘발성 랜덤 엑세스 메모리에는 엑세스 횟수가 상대적으로 높은 고정 영역이 별도로 지정되는 복합 메모리 디바이스.
  10. 비휘발성 랜덤 엑세스 메모리 및 플래시 메모리를 갖는 복합 메모리 디바이스의 I/O 처리 방법에 있어서,
    호스트로부터의 I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부를 판단하는 단계;
    상기 I/O 요청이 바이트 단위인 경우, 상기 비휘발성 랜덤 엑세스 메모리 또는 상기 플래시 메모리로부터 계층적으로 상기 I/O 요청을 처리하는 단계; 및
    상기 I/O 요청이 블록 단위인 경우, 상기 플래시 메모리로부터 상기 I/O 요청을 처리하는 단계; 를 포함하는 I/O 처리 방법.
  11. 제 10 항에 있어서,
    상기 계층적으로 상기 I/O 요청을 처리하는 단계는,
    요청된 데이터가 상기 비휘발성 랜덤 엑세스 메모리에 상주하는지 여부를 판단하는 단계;
    상기 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하는 경우, 상기 비휘발성 랜덤 엑세스 메모리로부터 상기 I/O 요청을 처리하는 단계; 및
    상기 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하지 아니한 경우, 상기 요청된 데이터를 상기 플래시 메모리로부터 상기 비휘발성 랜덤 엑세스 메모리로 로드한 후 상기 I/O 요청을 처리하는 단계; 를 포함하는 I/O 처리 방법.
  12. 제 11 항에 있어서,
    상기 요청된 데이터를 상기 비휘발성 랜덤 엑세스 메모리로 로드할 때, 상기 비휘발성 랜덤 엑세스 메모리에 저장 공간이 부족한 경우, 상기 비휘발성 랜덤 엑세스 메모리에 저장된 일부의 데이터를 상기 플래시 메모리로 플러시(flush)하는 단계; 를 더 포함하는 I/O 처리 방법.
  13. 제 10 항에 있어서,
    상기 비휘발성 랜덤 엑세스 메모리는 FRAM, MRAM 또는 PRAM 중 어느 하나인 I/O 처리 방법.
  14. 제 10 항에 있어서,
    상기 플래시 메모리는 NAND형 플래시 메모리인 I/O 처리 방법.
KR1020090006178A 2009-01-23 2009-01-23 복합 메모리 장치 및 이를 이용한 i/o 처리 방법 KR101573047B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090006178A KR101573047B1 (ko) 2009-01-23 2009-01-23 복합 메모리 장치 및 이를 이용한 i/o 처리 방법
US12/533,433 US8880777B2 (en) 2009-01-23 2009-07-31 Complex memory device and I/O processing method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090006178A KR101573047B1 (ko) 2009-01-23 2009-01-23 복합 메모리 장치 및 이를 이용한 i/o 처리 방법

Publications (2)

Publication Number Publication Date
KR20100086776A true KR20100086776A (ko) 2010-08-02
KR101573047B1 KR101573047B1 (ko) 2015-12-02

Family

ID=42355068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090006178A KR101573047B1 (ko) 2009-01-23 2009-01-23 복합 메모리 장치 및 이를 이용한 i/o 처리 방법

Country Status (2)

Country Link
US (1) US8880777B2 (ko)
KR (1) KR101573047B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101386013B1 (ko) * 2012-07-17 2014-04-16 주식회사 디에이아이오 하이브리드 스토리지 장치
US8938601B2 (en) 2010-11-29 2015-01-20 Samsung Electronics Co., Ltd. Hybrid memory system having a volatile memory with cache and method of managing the same
US8995203B2 (en) 2012-12-12 2015-03-31 Samsung Electronics Co., Ltd. Non-volatile memory device, driving method of memory controller controlling the non-volatile memory device and memory system including the memory controller and the non-volatile memory device
US9373380B2 (en) 2012-10-04 2016-06-21 Samsung Electronics Co., Ltd. Multi-port semiconductor memory device with multi-interface

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058675B2 (en) * 2010-05-29 2015-06-16 Intel Corporation Non-volatile storage for graphics hardware
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9208071B2 (en) * 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
KR20120119092A (ko) * 2011-04-20 2012-10-30 삼성전자주식회사 반도체 메모리 시스템 및 이의 구동 방법
US8607089B2 (en) * 2011-05-19 2013-12-10 Intel Corporation Interface for storage device access over memory bus
EP2761476B1 (en) 2011-09-30 2017-10-25 Intel Corporation Apparatus, method and system that stores bios in non-volatile random access memory
EP2761469B1 (en) 2011-09-30 2019-11-13 Intel Corporation Non-volatile random access memory (nvram) as a replacement for traditional mass storage
CN103946814B (zh) 2011-09-30 2017-06-06 英特尔公司 计算机系统中的非易失性随机存取存储器的自主初始化
CN103946811B (zh) 2011-09-30 2017-08-11 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US20130275661A1 (en) * 2011-09-30 2013-10-17 Vincent J. Zimmer Platform storage hierarchy with non-volatile random access memory with configurable partitions
KR20130114354A (ko) 2012-04-09 2013-10-18 삼성전자주식회사 메모리 시스템 및 컨트롤러의 동작 방법
KR102092776B1 (ko) 2013-11-20 2020-03-24 에스케이하이닉스 주식회사 전자 장치
US9389976B2 (en) * 2014-04-09 2016-07-12 Intel Corporation Distributed persistent memory using asynchronous streaming of log records
US9886194B2 (en) * 2015-07-13 2018-02-06 Samsung Electronics Co., Ltd. NVDIMM adaptive access mode and smart partition mechanism
US10287171B2 (en) 2016-05-05 2019-05-14 Rec Silicon Inc Tumbling device for the separation of granular polysilicon and polysilicon powder
US10747694B2 (en) 2016-06-07 2020-08-18 Ncorium Multi-level data cache and storage on a memory bus
KR20180061851A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 바이트 액세서블 인터페이스 및 블록 액세서블 인터페이스를 지원하는 스토리지 장치 및 이를 포함하는 전자 시스템
US20180181340A1 (en) 2016-12-23 2018-06-28 Ati Technologies Ulc Method and apparatus for direct access from non-volatile memory to local memory
US10521389B2 (en) * 2016-12-23 2019-12-31 Ati Technologies Ulc Method and apparatus for accessing non-volatile memory as byte addressable memory
US10217505B1 (en) 2017-08-31 2019-02-26 Sandisk Technologies Llc Chip with phase change memory and magnetoresistive random access memory
US20190042153A1 (en) * 2017-12-28 2019-02-07 Intel Corporation Mass storage device capable of fine grained read and/or write operations
KR20210017109A (ko) 2019-08-07 2021-02-17 삼성전자주식회사 스토리지 장치
US11055220B2 (en) 2019-08-19 2021-07-06 Truememorytechnology, LLC Hybrid memory systems with cache management
US11526441B2 (en) 2019-08-19 2022-12-13 Truememory Technology, LLC Hybrid memory systems with cache management

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5937423A (en) * 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US7127579B2 (en) * 2002-03-26 2006-10-24 Intel Corporation Hardened extended firmware interface framework
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7562202B2 (en) * 2004-07-30 2009-07-14 United Parcel Service Of America, Inc. Systems, methods, computer readable medium and apparatus for memory management using NVRAM
KR101257848B1 (ko) * 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
WO2007058617A1 (en) * 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US20090203430A1 (en) * 2008-02-07 2009-08-13 Igt Hybrid memory system and spin-buffer journaling in a gaming machine

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938601B2 (en) 2010-11-29 2015-01-20 Samsung Electronics Co., Ltd. Hybrid memory system having a volatile memory with cache and method of managing the same
KR101386013B1 (ko) * 2012-07-17 2014-04-16 주식회사 디에이아이오 하이브리드 스토리지 장치
US9373380B2 (en) 2012-10-04 2016-06-21 Samsung Electronics Co., Ltd. Multi-port semiconductor memory device with multi-interface
US8995203B2 (en) 2012-12-12 2015-03-31 Samsung Electronics Co., Ltd. Non-volatile memory device, driving method of memory controller controlling the non-volatile memory device and memory system including the memory controller and the non-volatile memory device

Also Published As

Publication number Publication date
KR101573047B1 (ko) 2015-12-02
US20100191898A1 (en) 2010-07-29
US8880777B2 (en) 2014-11-04

Similar Documents

Publication Publication Date Title
KR101573047B1 (ko) 복합 메모리 장치 및 이를 이용한 i/o 처리 방법
USRE49508E1 (en) Memory system and method for controlling nonvolatile memory
US10579279B2 (en) Data storage device and data processing system having the same
US10459636B2 (en) System and method for managing data in non-volatile memory systems having multiple mapping layers
KR101449524B1 (ko) 스토리지 장치 및 컴퓨팅 시스템
US10411024B2 (en) Memory system and method for controlling nonvolatile memory
US9213495B2 (en) Controller management of memory array of storage device using magnetic random access memory (MRAM) in a mobile device
US8724392B1 (en) Controller management of memory array of storage device using magnetic random access memory (MRAM)
US11741011B2 (en) Memory card with volatile and non volatile memory space having multiple usage model configurations
JP2018101411A (ja) データストレージデバイスおよびその操作方法
KR20200032527A (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
CN114442914A (zh) 存储器系统及其操作方法
US20220365679A1 (en) Storage System and Method for Using Read and Write Buffers in a Memory
US20210389876A1 (en) Storage System and Method for Enabling Partial Defragmentation
EP4064022A1 (en) Cooperative storage architecture
US20150153965A1 (en) Electronic system and method of operating the same
JP2011070470A (ja) 半導体記憶装置
US20140281157A1 (en) Memory system, memory controller and method
TW202405660A (zh) 儲存裝置、包括儲存裝置的電子裝置及其操作方法

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

Year of fee payment: 4