KR20100086776A - 복합 메모리 장치 및 이를 이용한 i/o 처리 방법 - Google Patents
복합 메모리 장치 및 이를 이용한 i/o 처리 방법 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary 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 처리 방법과 관련된다.
현재 임베디드 시스템의 메모리로는 소프트웨어 구동을 위한 주 메모리로써의 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)
- 비휘발성 랜덤 엑세스 메모리와 플래시 메모리를 포함하는 스토리지; 및호스트의 I/O 요청을 처리하고, 상기 비휘발성 랜덤 엑세스 메모리와 상기 플래시 메모리가 계층적으로 동작하도록 이들을 제어하며, 상기 I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부에 따라 듀얼 인터페이스를 제공하는 컨트롤러; 를 포함하는 복합 메모리 디바이스.
- 제 1 항에 있어서,상기 컨트롤러는, 주소 변환 및 상기 비휘발성 랜덤 엑세스 메모리와 상기 플래시 메모리 사이에서의 요구 페이징(demand paging)을 수행하는 복합 메모리 디바이스.
- 제 1 항에 있어서,상기 컨트롤러는, 상기 I/O 요청이 바이트 단위인 경우, 1차적으로 상기 비휘발성 랜덤 엑세스 메모리로부터 상기 I/O 요청을 처리하고, 상기 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하고 있지 아니한 경우 2차적으로 상기 플래시 메모리로부터 요청된 데이터를 상기 비휘발성 랜덤 엑세스 메모리로 로드한 후 상기 I/O 요청을 처리하는 복합 메모리 디바이스.
- 제 3 항에 있어서,상기 컨트롤러는, 상기 요청된 데이터를 상기 비휘발성 랜덤 엑세스 메모리로 로드할 때 상기 비휘발성 랜덤 엑세스 메모리에 저장 공간이 부족한 경우, 상기 비휘발성 랜덤 엑세스 메모리에 저장된 데이터의 일부를 상기 플래시 메모리로 플러시(flush)하는 복합 메모리 디바이스.
- 제 1 항에 있어서,상기 컨트롤러는, 상기 I/O 요청이 블록 단위인 경우, 상기 플래시 메모리로부터 상기 I/O 요청을 처리하는 복합 메모리 디바이스.
- 제 5 항에 있어서,상기 컨트롤러는, 바이트 엑세스 영역 및 블록 엑세스 영역이 구분된 주소 공간을 상기 호스트에게 제공하는 복합 메모리 디바이스.
- 제 1 항에 있어서,상기 비휘발성 랜덤 엑세스 메모리는, FRAM, MRAM 또는 PRAM 중 어느 하나인 복합 메모리 디바이스.
- 제 1 항에 있어서,상기 플래시 메모리는, NAND형 플래시 메모리인 복합 메모리 디바이스.
- 제 1 항에 있어서,상기 비휘발성 랜덤 엑세스 메모리에는 엑세스 횟수가 상대적으로 높은 고정 영역이 별도로 지정되는 복합 메모리 디바이스.
- 비휘발성 랜덤 엑세스 메모리 및 플래시 메모리를 갖는 복합 메모리 디바이스의 I/O 처리 방법에 있어서,호스트로부터의 I/O 요청이 바이트 단위인지 또는 블록 단위인지 여부를 판단하는 단계;상기 I/O 요청이 바이트 단위인 경우, 상기 비휘발성 랜덤 엑세스 메모리 또는 상기 플래시 메모리로부터 계층적으로 상기 I/O 요청을 처리하는 단계; 및상기 I/O 요청이 블록 단위인 경우, 상기 플래시 메모리로부터 상기 I/O 요청을 처리하는 단계; 를 포함하는 I/O 처리 방법.
- 제 10 항에 있어서,상기 계층적으로 상기 I/O 요청을 처리하는 단계는,요청된 데이터가 상기 비휘발성 랜덤 엑세스 메모리에 상주하는지 여부를 판단하는 단계;상기 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하는 경우, 상기 비휘발성 랜덤 엑세스 메모리로부터 상기 I/O 요청을 처리하는 단계; 및상기 비휘발성 랜덤 엑세스 메모리에 요청된 데이터가 상주하지 아니한 경우, 상기 요청된 데이터를 상기 플래시 메모리로부터 상기 비휘발성 랜덤 엑세스 메모리로 로드한 후 상기 I/O 요청을 처리하는 단계; 를 포함하는 I/O 처리 방법.
- 제 11 항에 있어서,상기 요청된 데이터를 상기 비휘발성 랜덤 엑세스 메모리로 로드할 때, 상기 비휘발성 랜덤 엑세스 메모리에 저장 공간이 부족한 경우, 상기 비휘발성 랜덤 엑세스 메모리에 저장된 일부의 데이터를 상기 플래시 메모리로 플러시(flush)하는 단계; 를 더 포함하는 I/O 처리 방법.
- 제 10 항에 있어서,상기 비휘발성 랜덤 엑세스 메모리는 FRAM, MRAM 또는 PRAM 중 어느 하나인 I/O 처리 방법.
- 제 10 항에 있어서,상기 플래시 메모리는 NAND형 플래시 메모리인 I/O 처리 방법.
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)
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)
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)
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 |
-
2009
- 2009-01-23 KR KR1020090006178A patent/KR101573047B1/ko active IP Right Grant
- 2009-07-31 US US12/533,433 patent/US8880777B2/en not_active Expired - Fee Related
Cited By (4)
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 |