KR101519069B1 - 메모리장치 및 메모리장치의 동작 방법 - Google Patents
메모리장치 및 메모리장치의 동작 방법 Download PDFInfo
- Publication number
- KR101519069B1 KR101519069B1 KR1020130149516A KR20130149516A KR101519069B1 KR 101519069 B1 KR101519069 B1 KR 101519069B1 KR 1020130149516 A KR1020130149516 A KR 1020130149516A KR 20130149516 A KR20130149516 A KR 20130149516A KR 101519069 B1 KR101519069 B1 KR 101519069B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- memory area
- write
- external module
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0684—Configuration or reconfiguration with feedback, e.g. presence or absence of unit detected by addressing, overflow detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은, 메모리에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있도록 하는 메모리장치 및 메모리장치의 동작 방법을 개시하고 있다.
Description
본 발명은 메모리장치 및 메모리장치의 동작 방법에 관한 것으로, 더욱 상세하게는, 메모리에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있는 메모리장치 및 메모리장치의 동작 방법에 관한 것이다.
하드디스크드라이브(HDD), 플래시메모리와 같은 비휘발성의 메모리장치는, 읽기연산, 쓰기연산 수행 시 논리주소를 이용하여 데이터를 읽어 올 메모리영역 또는 데이터를 기록할 메모리영역을 직접 지정하는 방식을 지원한다.
예컨대, 플래시메모리를 언급하여 쓰기연산을 설명하면, 플래시메모리를 사용하는 외부모듈(예 : 파일시스템, 데이터베이스, 가상메모리시스템 및 기타 제어소프트웨어 등)이 기록할 데이터와 함께 데이터를 기록할 논리주소를 지정하여 쓰기 요청하면, 플래시메모리에서는 우선 데이터를 내부 버퍼(휘발성)에 저장하고 더불어 쓰기 요청에 따른 논리주소를 물리주소로 변환한다. 이후, 플래시메모리에서는 내부 버퍼(휘발성)로부터 데이터를 획득하여 물리주소에 따른 플래시메모리영역(비휘발성)에 기록하게 된다.
여기서, 플래시메모리에서 내부 버퍼에 휘발적으로 저장된 데이터를 비휘발성의 플래시메모리영역에 기록하는 것은, 메모리장치 전원 공급이 중단되더라도 데이터의 영속화(materialization) 보장을 위한 것으로 매우 중요하며, 이는 외부모듈로부터의 영속화(Flush Cache, 또는 Synchronize Cache) 요청에 따라 강제될 수 있다.
한편, 외부모듈에서는, 메모리장치에 여러 데이터를 한번에 또는 순서대로 기록하기를 요구하는 경우가 많아지고 있다. 이러한 경우, 여러 데이터가 메모리장치에 순서대로 모두 기록되어야 한다.
헌데, 메모리장치에 여러 데이터를 한번에 또는 순서대로 기록하는 동작을 진행하던 중 메모리장치 전원 공급 중단 등의 이유로 기록이 갑작스럽게 중단되는 경우가 발생할 수 있으며, 이 경우 갑작스런 중단이 정상화된 이후 여러 데이터를 한번에 또는 순서대로 기록하는 동작을 이어서 진행할 수 있게 하는 방안이 필요하다.
이에, 기존에는, 외부모듈에서, 데이터를 기록할 논리주소를 지정하여 쓰기 요청한다는 점에 기인하여, 여러 데이터 각각에 지정한 논리주소 및 쓰기 요청 간의 순서에 대한 정보를 별도로 저장하는 Journaling(Write-ahead Logging) 기술을 제안하였다.
그런데, 기존의 Journaling 기술의 경우는, 추가의 Journaling 정보를 플래시메모리에 기록하고 최신으로 유지하기 위해서, 플래시메모리에서 소모해야 하는 쓰기연산 량이 많아지게 되고 강제 연속화 요청의 빈도 역시 높이지게 되어, 메모리 성능 저하가 발생한다.
이에, 본 발명에서는, 메모리에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있는 방안을 제안하고자 한다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은 메모리에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있는 메모리장치 및 메모리장치의 동작 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 메모리장치는, 외부모듈로부터 쓰기요청을 수신하는 요청수신부; 상기 쓰기요청에 따른 데이터에 대응하여, 메모리 내 메모리영역을 할당하는 메모리영역할당부; 상기 데이터를 상기 메모리영역에 기록하는 쓰기연산수행부; 및 상기 메모리영역에 상기 데이터를 기록한 후 상기 메모리영역과 관련된 구분정보를 상기 외부모듈로 제공하여, 상기 외부모듈에서 상기 구분정보를 이용하여 상기 메모리에 기록된 상기 데이터에 접근할 수 있도록 하는 구분정보제공부를 포함한다.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 메모리장치의 동작 방법은, 외부모듈로부터 쓰기요청을 수신하는 요청수신단계; 상기 쓰기요청에 따른 데이터에 대응하여, 메모리 내 메모리영역을 할당하는 메모리영역할당단계; 상기 데이터를 상기 메모리영역에 기록하는 쓰기연산수행단계; 및 상기 메모리영역에 상기 데이터를 기록한 후 상기 메모리영역과 관련된 구분정보를 상기 외부모듈로 제공하여, 상기 외부모듈에서 상기 구분정보를 이용하여 상기 메모리에 기록된 상기 데이터에 접근할 수 있도록 하는 구분정보제공단계를 포함한다.
이에, 본 발명의 메모리장치 및 메모리장치의 동작 방법에 의하면, 다수의 메모리에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있도록 하는 효과를 도출한다.
도 1은 본 발명의 바람직한 실시예에 따른 메모리장치가 포함된 시스템을 간략하게 보여주는 구성도이다.
도 2는 본 발명의 바람직한 실시예에 따른 메모리장치의 구성을 보여주는 구성도이다.
도 3 및 도 4는 본 발명의 바람직한 실시예에 따른 메모리장치의 동작 방법을 나타내는 동작 흐름도이다.
도 2는 본 발명의 바람직한 실시예에 따른 메모리장치의 구성을 보여주는 구성도이다.
도 3 및 도 4는 본 발명의 바람직한 실시예에 따른 메모리장치의 동작 방법을 나타내는 동작 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 메모리장치(100)가 포함된 시스템(200)을 보여주고 있다.
도 1에 도시된 바와 같이, 시스템(200)에서는 외부모듈(10)이 본 발명의 메모리장치(100)를 저장공간으로서 이용한다.
예컨대, 외부모듈(10) 및 메모리장치(100)는 단일장치로서의 시스템(200)에 구비되는 구성인 경우, 메모리장치(100)는 파일시스템, 데이터베이스, 가상메모리시스템 및 기타 제어소프트웨어 등과 같은 시스템(200) 내 상위시스템 즉 외부모듈(10)에 의해 저장공간으로서 이용된다.
한편, 외부모듈(10) 및 메모리장치(100)는 각각 별개의 독립된 장치일 수 있다. 예를 들면, 메모리장치(100)가 Enterprise Storage 구성의 메모리장치인 경우, 메모리장치(100)는 외부시스템 즉 외부모듈(10)과 Fibre Channel 이나 Ethernet 등을 통해 연결되어 외부모듈(10)에 의해 저장공간으로서 이용된다.
그리고, 본 발명의 메모리장치(100)는, 하드디스크드라이브(HDD), 플래시메모리와 같은 비휘발성 메모리장치를 포함할 수 있다. 물론, 본 발명의 메모리장치(100)는, MRAM, FRAM, PRAM 등 차세대 비휘발성 메모리장치를 포함할 수 있다.
즉, 메모리장치(100)는, 비휘발성의 메모리를 제어하는 장치로서, 비휘발성의 메모리(도 2의 메모리부(170))를 구비하여 메모리부(170)를 제어하는 구성일 수도 있고, 외부에 구비된 메모리부(170)와 연동하여 메모리부(170)를 제어하는 구성일 수도 있다.
이러한 본 발명의 메모리장치(100)는, 외부모듈(10)에 의해 메모리부(170)에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있는 특징을 갖는다.
이를 위해서, 본 발명에서는 기존의 Journaling 기술을 대신할 수 있는 새로운 쓰기재현연산을 제안하고자 하며, 이러한 쓰기재현연산을 가능하게 하기 위해 본 발명의 메모리장치(100)는, 기존의 외부모듈 및 기존의 메모리장치 간에 논리주소를 이용하여 쓰기요청 및 읽기요청의 메모리영역을 직접 지정하는 방식과는 달리, 메모리장치(100) 자체적으로 메모리영역을 할당하는 새로운 방식을 제안한다.
이때, 외부모듈(10) 역시, 기존과 달리 본 발명에서 제안하는 메모리장치(100) 자체적으로 메모리영역을 할당하는 새로운 방식을 지원하도록 디자인(설계될 것이다.
이에, 본 발명의 메모리장치(100)에서 외부모듈(10)로부터의 쓰기요청을 처리하여 쓰기연산을 수행하는 과정을 언급하여 간단히 설명하면 다음과 같다.
메모리장치(100)는, 외부모듈(10)로부터 쓰기요청을 수신한다.
이때, 외부모듈(10)은, 기록할 데이터와 함께 데이터를 기록할 논리주소를 지정하여 쓰기 요청하는 기존의 외부모듈과 달리, 논리주소를 지정하지 않고 기록할 데이터만을 또는 데이터와 데이터에 대해 외부모듈(10)이 임의로 설정한 태그(Tag)만을 제공하여 쓰기 요청할 수 있다. 이하에서는, 설명의 편의를 위해, 쓰기요청 시 데이터 및 태그를 제공하는 것으로 설명하겠다.
메모리장치(100)는, 쓰기요청을 수신하면, 쓰기요청에 따른 데이터 및 태그를 내부 버퍼(휘발성)에 저장하고 더불어 쓰기요청에 따른 데이터에 대응하여 메모리(이하, 도 2의 메모리부(170)이라 함) 내 메모리영역을 할당한다.
즉, 메모리장치(100)는, 자체적으로 메모리영역을 할당하는 것이다.
그리고, 메모리장치(100)는, 내부 버퍼(휘발성)로부터 데이터 및 태그를 획득하여 상기 할당한 메모리영역에 기록하고, 이처럼 데이터 및 태그를 기록한 후 상기 할당한 메모리영역과 관련된 구분정보를 외부모듈(10)로 제공하여, 외부모듈(10)에서 상기 구분정보를 이용하여 메모리부(170)에 기록된 상기 데이터에 접근할 수 있도록 한다.
이때, 구분정보는, 메모리장치(100) 자체적으로 메모리영역을 할당하는 새로운 방식을 제안함에 있어서, 외부모듈(10) 입장에서 논리 주소 대신 메모리장치(100)에 기록한 데이터에 접근(지정)할 수 있게 하는 새로운 정보일 것이다.
이러한, 구분정보에는, 데이터 및 태그를 기록한 메모리영역과 관련된 정보(예 : 메모리영역의 물리주소)가 포함되는 것이 바람직하다.
그리고, 외부모듈(10)은, 쓰기요청에 따라서 메모리장치(100)로부터 제공(반환)된 구분정보를, 금번 쓰기 요청한 데이터 또는 그 데이터의 태그와 맵핑시켜 관리할 수 있다.
한편, 본 발명의 메모리장치(100)에서 외부모듈(10)로부터의 읽기요청을 처리하여 읽기연산을 수행하는 과정을 언급하여 간단히 설명하면 다음과 같다.
메모리장치(100)는, 외부모듈(10)로부터 읽기요청을 수신한다.
이때, 외부모듈(10)은, 데이터를 읽어 올 논리주소를 지정하여 읽기 요청하는 기존의 외부모듈과 달리, 읽어올 데이터 또는 그 데이터의 태그와 맵핑된 구분정보를 제공하여 읽기 요청할 수 있다.
이때, 읽어올 데이터 또는 그 데이터의 태그와 맵핑된 구분정보는, 외부모듈(10)에서 읽어 올 데이터를 이전에 메모리장치(100)에 기록할 당시 메모리장치(100)로부터 제공(반환) 받아 맵핑시켜 관리하고 있던 구분정보일 것이다.
메모리장치(100)는, 외부모듈(10)로부터 읽기요청을 수신하면, 읽기요청과 함께 제공된 구분정보로부터 메모리영역과 관련된 정보(예 : 물리주소)를 확인하고, 확인한 물리주소의 메모리영역에서 데이터 및 태그를 읽어 외부모듈(10)로 제공한다.
그리고, 본 발명의 메모리장치(100)는, 전술한 바와 같이 메모리장치(100) 자체적으로 메모리영역을 할당하는 새로운 방식을 기반으로 쓰기연산 및 읽기연산을 수행하는 환경을 제안하여, 궁극적으로는 새로운 쓰기재현연산을 가능하게 한다.
즉, 본 발명의 메모리장치(100)는, 본 발명에서 제안하는 새로운 방식(메모리장치(100) 자체적으로 메모리영역을 할당) 및 새로운 정보(구분정보)를 이용하여, 기존의 Journaling 기술을 대신할 수 있는 새로운 쓰기재현연산을 실현하고자 한다.
이하에서는, 도 2를 참조하여 본 발명의 바람직한 실시예에 따른 메모리장치의 구성을 구체적으로 설명하도록 한다.
본 발명에 따른 메모리장치(100)는, 도 2에 도시된 바와 같이, 요청수신부(110)와, 메모리영역할당부(120)와, 쓰기연산수행부(130)와, 구분정보제공부(160)를 포함한다.
더 나아가 본 발명에 따른 메모리장치(100)는, 읽기연산수행부(140) 및 쓰기재현연산수행부(150)를 더 포함할 수 있다.
메모리장치(100)는, 비휘발성의 메모리를 제어하는 장치로서, 비휘발성의 메모리 즉 메모리부(170)를 구비하여 메모리부(170)를 제어하는 구성일 수도 있고, 외부에 구비된 메모리부(170)와 연동하여 메모리부(170)를 제어하는 구성일 수도 있다.
이하에서는 설명의 편의를 위해서, 도 2와 같이 메모리부(170)가 메모리장치(100) 내에 구비되는 구성을 언급하여 설명하도록 하겠다.
이때, 메모리부(170)는, 도 2에 도시된 바와 같이 하나의 메모리칩(171)을 포함할 수 있고, 메모리칩(171)을 다수개 포함할 수도 있다. 이하에서는, 설명의 편의를 위해 도 2와 같이 하나의 메모리칩(171)을 언급하여 설명하겠다.
그리고, 메모리칩(171)은, 다수의 메모리영역으로 구성되며, 각 메모리영역은 자신 만의 물리적인 주소(이하, 물리주소라 함)를 갖는다. 이때, 각 메모리영역이란, 블록단위의 영역일 수 있고 페이지단위의 영역일 수도 있다.
요청수신부(110)는, 외부모듈(10)로부터 쓰기요청을 수신한다.
이 밖에도, 요청수신부(110)는, 외부모듈(10)로부터 읽기요청, 쓰기재현요청 등을 수신할 수 있다.
메모리영역할당부(120)는, 외부모듈(10)로부터 쓰기요청이 수신되면, 쓰기요청에 따른 데이터에 대응하여 메모리 즉 메모리부(170) 내 메모리영역을 할당한다.
이때, 메모리부(170) 내 메모리영역이란, 메모리부(170)에 포함된 메모리칩(171)을 구성하는 메모리영역과 같은 의미이므로, 이하에서는 설명의 편의를 위해 필요에 따라 혼용하여 기재할 수 있다.
보다 구체적으로 설명하면, 전술한 바와 같이 본 발명에서 적용되는 외부모듈(10)은, 기록할 데이터와 함께 데이터를 기록할 논리주소를 지정하여 쓰기 요청하는 기존의 외부모듈과 달리, 논리주소를 지정하지 않고 기록할 데이터만을 또는 데이터와 데이터에 대해 외부모듈(10)이 임의로 설정한 태그(Tag)만을 제공하여 쓰기 요청할 수 있다.
이하에서는, 설명의 편의를 위해, 쓰기요청 시 데이터 및 태그를 제공하는 것으로 설명하겠다.
이에, 메모리장치(100)는, 외부모듈(10)로부터 쓰기요청이 수신되면, 쓰기요청에 따른 데이터 및 태그를 휘발성의 내부 버퍼(미도시)에 저장할 것이다.
이와 함께, 메모리장치(100)의 메모리영역할당부(120)는, 쓰기요청에 따른 데이터에 대응하여 메모리부(170) 내 메모리영역을 할당하게 된다.
이때, 메모리장치(100)에는, 메모리 즉 메모리부(170)를 구성하는 각 메모리영역에 대하여 데이터를 기록하는 데이터기록순서가 기 지정되는 것이 바람직하다.
예컨대, 도 2와 같이 메모리부(170)의 메모리칩(171)이 n개의 메모리영역 즉 각 메모리영역0,1,2,3,4...n-1로 구성된다면, 각 메모리영역0,1,2,3,4...n-1에 대하여 데이터를 기록하는 데이터기록순서가 기 지정된다. 예를 들면, 메모리영역0에 데이터기록순서1, 메모리영역1에 데이터기록순서2, 메모리영역2에 데이터기록순서3, 메모리영역3에 데이터기록순서4, 메모리영역4에 데이터기록순서5... 메모리영역n-1에 데이터기록순서n이 기 지정되어 있을 수 있다.
이에, 메모리영역할당부(120)는, 금번 수신된 쓰기요청에 따른 데이터에 대응하여, 각 메모리영역0,1,2,3,4...n-1에 대한 데이터기록순서를 기초로, 메모리부(170)에서 데이터가 기록되지 않은 메모리영역 중 데이터기록순서가 가장 앞선 메모리영역을 할당할 수 있다.
예컨대, 메모리영역할당부(120)는, 각 메모리영역0,1,2,3,4...n-1 중 메모리영역0,1,2데이터가 이미 기록된 상태라면, 데이터가 기록되지 않은 메모리영역3,4...n-1 중 데이터기록순서가 가장 앞선 메모리영역3을 할당할 수 있다.
즉, 전술한 메모리영역할당부(120)의 구성에 의해, 본 발명의 메모리장치(100)는 메모리장치(100) 자체적으로 데이터를 기록할 순서에 따라서 메모리영역을 할당하는 새로운 방식을 실현하게 된다.
쓰기연산수행부(130)는, 금번 수신된 쓰기요청에 따른 데이터 및 태그를 메모리영역할당부(120)에서 할당한 메모리영역 예컨대 전술의 메모리영역3에 기록한다.
예를 들면, 쓰기연산수행부(130)는, 기존의 쓰기연산과 동일하게, 전술과 같이 내부 버퍼(미도시)에 잠시 저장해둔 쓰기요청에 따른 데이터 및 태그를 획득하여, 메모리영역할당부(120)에서 할당한 메모리영역3에 기록할 수 있다.
구분정보제공부(160)은, 메모리부(170) 내 메모리영역 즉 메모리영역3에 금번 쓰기요청에 따른 데이터 및 태그를 기록한 후, 메모리영역3과 관련된 구분정보를 외부모듈(10)로 제공하여, 외부모듈(10)에서 구분정보를 이용하여 메모리부(170)에 기록된 상기 데이터에 접근할 수 있도록 한다.
보다 구체적으로 설명하면, 구분정보제공부(160)은, 쓰기연산수행부(130)가 금번 쓰기요청에 따른 데이터 및 태그를 메모리부(170) 내 메모리영역 즉 할당된 메모리영역3에 기록하여 쓰기연산이 완료되면, 데이터 및 태그를 기록한 메모리영역3과 관련된 구분정보(예 : Handle)를 생성하고, 생성한 구분정보 즉 Handle을 외부모듈(10)로 제공(반환)할 수 있다.
이때, 구분정보 즉 Handle은, 메모리장치(100) 자체적으로 메모리영역을 할당하는 새로운 방식을 제안함에 있어서, 외부모듈(10) 입장에서 기존의 논리 주소 대신 메모리장치(100)에 기록한 데이터에 접근(지정)할 수 있게 하는 새로운 정보일 것이다.
이러한, 구분정보 즉 Handle에는, 데이터 및 태그를 기록한 메모리영역(예 : 메모리영역3)과 관련된 정보(예 : 메모리영역3의 물리주소)가 포함되는 것이 바람직하다.
물론, 구분정보제공부(160)은, 물리주소 외에도, 외부모듈(10)이 구분정보 즉 Handle을 이용한 읽기요청 시 필요로 하는 다양한 정보들을 더 포함시켜 구분정보를 생성할 수도 있다.
그리고, 외부모듈(10)은, 쓰기요청에 따라서 전술과 같이 메모리장치(100)로부터 제공(반환)된 구분정보 즉 Handle을, 금번 쓰기 요청한 데이터 또는 그 데이터의 태그와 맵핑시켜 관리할 수 있다.
읽기연산수행부(140)는, 요청수신부(110)를 통해 외부모듈(10)로부터 읽기요청이 수신되면, 읽기요청에 따라서 읽기연산을 수행하게 된다.
보다 구체적으로 설명하면, 외부모듈(10)은, 데이터를 읽어 올 논리주소를 지정하여 읽기 요청하는 기존의 외부모듈과 달리, 읽어올 데이터 또는 그 데이터의 태그와 맵핑된 구분정보 즉 Handle을 제공하여 읽기 요청한다.
이때, 읽어올 데이터 또는 그 데이터의 태그와 맵핑된 구분정보 즉 Handle은, 외부모듈(10)에서 읽어 올 데이터를 이전에 메모리장치(100)에 기록할 당시 메모리장치(100)로부터 제공(반환) 받아 맵핑시켜 관리하고 있던 구분정보 즉 Handle일 것이다.
이에, 읽기연산수행부(140)는, 요청수신부(110)를 통해 외부모듈(10)로부터 읽기요청이 수신되면, 읽기요청과 함께 제공된 구분정보 즉 Handle로부터 메모리영역과 관련된 정보(예 : 물리주소)를 확인한다.
그리고, 읽기연산수행부(140)는, 확인한 물리주소의 메모리영역 예컨대 메모리부(170) 내 메모리영역3에서, 기록되어 있는 데이터 및 태그를 읽어 외부모듈(10)로 제공하고, 이에 읽기연산이 완료되면 읽기연산 수행 완료를 외부모듈(10)로 알릴 수 있다.
이때, 읽기연산수행부(140)는, 메모리부(170) 내 메모리영역3에서 읽어 온 데이터 및 태그를 내부 버퍼(미도시)에 저장해 두고, 추후 외부모듈(10)이 동일한 구분정보 즉 Handle을 이용하여 읽기 요청하는 경우 메모리부(170)로의 접근을 생략하고 내부 버퍼(미도시)에 저장해 둔 데이터 및 태그를 외부모듈(10)로 제공할 수도 있다.
이에, 본 발명의 메모리장치(100)는, 쓰기연산 및 읽기연산 시마다 논리주소 및 물리주소 간을 변환하는 기존의 사상 작업 없이도, 메모리장치(100) 자체적으로 메모리영역을 할당하는 새로운 방식을 기반으로 쓰기연산 및 읽기연산을 수행하기 때문에, 쓰기연산 및 읽기연산과 같이 일반적인 메모리연산을 수행함에 있어서도 메모리 성능 저하를 개선하는 효과를 갖는다.
그리고, 본 발명의 메모리장치(100)는, 전술한 바와 같이 메모리장치(100) 자체적으로 메모리영역을 할당하는 새로운 방식을 기반으로 쓰기연산 및 읽기연산을 수행하는 환경을 제안하여, 궁극적으로는 새로운 쓰기재현연산을 가능하게 한다.
즉, 본 발명의 메모리장치(100)는, 본 발명에서 제안하는 새로운 방식(메모리장치(100) 자체적으로 메모리영역을 할당) 및 새로운 정보(구분정보)를 이용하여, 기존의 Journaling 기술을 대신할 수 있는 새로운 쓰기재현연산을 실현하고자 한다.
이를 위해, 본 발명의 메모리장치(100)는, 쓰기재현연산수행부(150)의 구성을 포함한다.
쓰기재현연산수행부(150)는, 요청수신부(110)를 통해 외부모듈(10)로부터 쓰기재현요청이 수신되면, 메모리부(170)에서 쓰기재현요청에 따른 특정 메모리영역 이후로 데이터가 기록된 재현대상 메모리영역을 확인하고, 상기 재현대상 메모리영역과 관련된 구분정보를, 데이터가 기록된 순서에 따라 외부모듈(10)로 제공한다.
이때, 외부모듈(10)은 쓰기재현요청에 특정 구분정보를 포함시켜 제공하는데, 여기서 특정 구분정보는 상기 특정 메모리영역에 데이터를 기록한 후 메모리장치(100)로부터 외부모듈(10)로 제공되는 구분정보인 것이 바람직하다.
만약, 외부모듈(10) 입장에서 상기 특정 메모리영역에 데이터를 기록함에 따른 구분정보를 메모리장치(100)로부터 제공받지 못하였다면, 외부모듈(10)은, 쓰기재현요청에 포함시킬 특정 구분정보가 없기 때문에, 메모리장치(100)에 쓰기 요청한 모든 데이터를 쓰기 재현대상으로 인지하고 메모리장치(100)로 모든 데이터에 대해 쓰기 요청할 수 있다.
보다 구체적으로 설명하면, 외부모듈(10)은, 메모리장치(100)에 여러 데이터를 한번에 또는 순서대로 기록하기를 요구할 수 있다.
예를 들면, 외부모듈(10)은, 순서대로 기록하기를 원하는 여러 데이터(예 : 데이터1,2,3,4,5...i) 각각에 대한 각 쓰기요청을 순서대로 메모리장치(100)에 제공할 수 있다.
이 경우라면, 메모리장치(100)에서는, 전술과 같이 수신되는 각 쓰기요청 별로 쓰기연산을 수행하고, 각 쓰기요청 별로 구분정보 즉 Handle을 외부모듈(10)로 제공(반환)할 것이다.
다시 말해, 메모리장치(100)에서는, 데이터1에 대한 쓰기요청, 데이터2에 대한 쓰기요청, 데이터3에 대한 쓰기요청, 데이터4에 대한 쓰기요청... 데이터i에 대한 쓰기요청을 순서대로 수신할 수 있다.
이에, 메모리장치(100)에서는, 데이터1에 대한 쓰기요청에 대하여 메모리부(170) 내 데이터가 기록되지 않은 가장 앞선 데이터기록순서의 메모리영역(예 : 메모리영역3)을 할당하여 데이터1를 메모리영역3에 기록한 후, 메모리영역3의 물리주소가 포함된 구분정보(Handle)을 외부모듈(10)로 제공(반환)하고, 이후 데이터2에 대한 쓰기요청에 대하여 메모리부(170) 내 데이터가 기록되지 않은 가장 앞선 데이터기록순서의 메모리영역(예 : 메모리영역4)을 할당하여 데이터2를 메모리영역4에 기록한 후, 메모리영역4의 물리주소가 포함된 구분정보(Handle)을 외부모듈(10)로 제공(반환)할 것이다.
이후, 메모리장치(100)에서는, 데이터3에 대한 쓰기요청에 대하여 메모리부(170) 내 데이터가 기록되지 않은 가장 앞선 데이터기록순서의 메모리영역(예 : 메모리영역5)을 할당하여 데이터3를 메모리영역5에 기록한 후, 메모리영역5의 물리주소가 포함된 구분정보(Handle)을 외부모듈(10)로 제공(반환)하고, 데이터4에 대한 쓰기요청에 대하여 메모리부(170) 내 데이터가 기록되지 않은 가장 앞선 데이터기록순서의 메모리영역(예 : 메모리영역6)을 할당하여 데이터4를 메모리영역6에 기록한 후 메모리영역6의 물리주소가 포함된 구분정보(Handle)을 외부모듈(10)로 제공(반환)하여, 순서대로 마지막에는 데이터i에 대한 쓰기요청에 대하여 메모리부(170) 내 데이터가 기록되지 않은 가장 앞선 데이터기록순서의 메모리영역(예 : 메모리영역i+2)을 할당하여 데이터i를 메모리영역i+2에 기록한 후 메모리영역i+2의 물리주소가 포함된 구분정보(Handle)을 외부모듈(10)로 제공(반환)할 수 있다.
이처럼, 메모리장치(100)에 여러 데이터를 한번에 또는 순서대로 기록하는 동작이 정상적으로 완료된다면, 외부모듈(10)에서는 각 쓰기요청 별로 구분정보(Handle)을 모두 제공(반환)받아 대응되는 데이터 또는 그 데이터의 태그와 맵핑시켜 관리할 수 있다.
하지만, 메모리장치(100)에 여러 데이터를 순서대로 기록하는 동작을 진행하던 중 메모리장치(100) 전원 공급 중단 등의 이유로 기록이 갑작스럽게 중단되는 경우가 발생할 수 있으며, 이 경우를 대비해 갑작스런 중단이 정상화된 이후 여러 데이터를 순서대로 기록하는 동작을 이어서 진행할 수 있게 하는 방안이 필요하다.
전술의 예를 언급하여 설명하면, 메모리장치(100)에서 데이터1,2,3,4를 할당한 메모리영역3,4,5,6에 순서대로 기록하고, 데이터5에 대응하여 메모리영역을 할당하는 중 또는 할당한 메모리영역(예 : 메모리영역7)에 기록하려고 내부 버퍼(미도시)로부터 가져오는 중 갑작스럽게 중단이 발생한 것으로 가정한다.
이 경우라면, 외부모듈(10)은, 여러 데이터1,2,3,4,5...i 모두에 대응하여 구분정보(Handle)는 제공(반환)받지 못하였기 때문에, 금번 여러 데이터에 대한 기록 요청에 대해서 아직 정상적으로 기록이 완료되지 않은 것으로 판단하고, 추후 기록을 이어서 진행하길 원할 것이다.
이에, 외부모듈(10)에서는, 갑작스러운 기록 중단 발생 전에 어느 데이터까지 정상적으로 기록되었는지, 여러 데이터 중 어느 데이터부터 이어서 기록하기를 시작해야 할 것인지를 알아야 한다.
이 경우, 외부모듈(10)는, 메모리장치(10)의 갑작스런 중단이 정상화된 이후, 순서대로 기록하기를 원하는 여러 데이터(예 : 데이터1,2,3,4,5...i) 중 구분정보(Handle)를 제공(반환)받은 데이터(예 : 데이터1,2,3,4)를 확인하고, 이 데이터 중 하나의 데이터를 선택하고 선택한 데이터 또는 그 데이터의 태그와 맵핑/관리하는 구분정보(Handle)을 메모리장치(100)로 제공하여 쓰기재현 요청할 수 있다.
이때, 외부모듈(10)은, 구분정보(Handle)를 제공(반환)받은 데이터(예 : 데이터1,2,3,4) 중에서 가장 앞서 기록한 데이터1을 선택하여, 데이터1 또는 데이터1의 태그와 맵핑/관리하는 구분정보(Handle(k))을 메모리장치(100)로 제공하여 쓰기재현 요청하는 것이 바람직하다.
이에, 쓰기재현연산수행부(150)는, 요청수신부(110)를 통해 외부모듈(10)로부터 쓰기재현요청이 수신되면, 쓰기재현요청에 따른 특정 메모리영역을 확인한다.
이때, 쓰기재현연산수행부(150)는, 쓰기재현요청에 포함된 구분정보(Handle(k))로부터 확인되는 물리주소의 메모리영역을, 특정 메모리영역인 것으로 확인한다.
전술의 예와 같이 설명하면, 쓰기재현요청에는 데이터1을 메모리부(170) 내 메모리영역3에 기록한 후 메모리장치(100)에서 외부모듈(10)로 제공(반환)된 구분정보(Handle(k))가 포함될 것이므로, 쓰기재현연산수행부(150)는, 쓰기재현요청에 포함된 구분정보(Handle(k))로부터 물리주소를 확인하면 결국 물리주소의 특정 메모리영역 즉 메모리영역3을 확인할 수 있다.
이에, 쓰기재현연산수행부(150)는, 쓰기재현요청에 따른 특정 메모리영역 즉 메모리영역3 이후로 데이터가 기록된 재현대상 메모리영역을 확인한다.
구체적으로는, 쓰기재현연산수행부(150)는, 전술에서 언급한 각 메모리영역0,1,2,3,4...n-1에 대한 데이터기록순서를 기초로, 메모리부(170)에서 특정 메모리영역 즉 메모리영역3 이후의 데이터기록순서를 갖는 적어도 하나의 메모리영역4...n-1을 확인하고, 확인한 적어도 하나의 메모리영역4...n-1 중 유효한 데이터가 기록된 메모리영역을 재현대상 메모리영역인 것으로 확인한다.
전술의 예와 같이, 메모리장치(100)에서 데이터1,2,3,4를 할당한 메모리영역3,4,5,6에 순서대로 기록하고, 데이터5에 대응하여 메모리영역을 할당하는 중 또는 할당한 메모리영역(예 : 메모리영역7)에 기록하려고 내부 버퍼(미도시)로부터 가져오는 중 갑작스럽게 중단이 발생한 경우라면, 쓰기재현연산수행부(150)는, 확인한 적어도 하나의 메모리영역4...n-1 중 유효한 데이터가 기록된 재현대상 메모리영역으로서 메모리영역4,5,6을 확인할 수 것이다.
이에, 쓰기재현연산수행부(150)는, 전술과 같이 특정 메모리영역 예컨대 메모리영역3 이후로 데이터가 기록된 재현대상 메모리영역을 확인하고, 재현대상 메모리영역과 관련된 구분정보(Handle)를, 데이터가 기록된 순서에 따라 외부모듈(10)로 제공한다.
보다 구체적으로 설명하면, 쓰기재현연산수행부(150)는, 전술과 같이 메모리영역3 이후로 데이터가 기록된 재현대상 메모리영역으로서 메모리영역4,5,6을 확인한 경우, 구분정보제공부(160)를 제어하여 메모리영역4,5,6과 관련된 구분정보(Handle)을 생성하도록 한다.
이에, 구분정보제공부(160)는, 메모리영역4의 물리주소가 포함된 구분정보(Handle(k+1)), 메모리영역5의 물리주소가 포함된 구분정보(Handle(k+2)), 메모리영역6의 물리주소가 포함된 구분정보(Handle(k+3))을 생성할 것이다.
그리고, 쓰기재현연산수행부(150)는, 구분정보제공부(160)에서 생성한 메모리영역4,5,6과 관련된 구분정보(Handle(k+1)), 구분정보(Handle(k+2)), 구분정보(Handle(k+3))을 데이터가 기록된 순서에 따라 외부모듈(10)로 제공한다.
결국, 쓰기재현연산수행부(150)는, 데이터가 기록된 순서란 결국 각 메모리영역0,1,2,3,4...n-1에 대한 데이터기록순서에 따르므로, 전술에서 언급한 각 메모리영역0,1,2,3,4...n-1에 대한 데이터기록순서를 기초로, 구분정보(Handle(k+1)), 구분정보(Handle(k+2)), 구분정보(Handle(k+3))을 외부모듈(10)로 제공할 수 있다.
이에, 외부모듈(10) 입장에서는, 여러 데이터(예 : 데이터1,2,3,4,5...i) 중 가장 앞서 기록한 데이터1의 구분정보(Handle(k))를 제공하여 쓰기재현 요청하여, 메모리장치(100)로부터 구분정보(Handle)을 순서대로(k+1 -> k+2 -> k+3) 제공(반환) 받음으로써, 갑작스러운 기록 중단 발생 전에 어느 데이터까지 정상적으로 기록되었는지, 더 나아가 여러 데이터(예 : 데이터1,2,3,4,5...i) 중 어느 데이터부터 이어서 기록하기를 시작해야 할 것인지를 인지할 수 있게 된다.
이에, 바람직하게는 외부모듈(10)는, 여러 데이터(예 : 데이터1,2,3,4,5...i) 중 데이터1,2,3,4까지 정상적으로 기록되었고 나머지 데이터5,6...i을 쓰기 재현대상이라고 인지하여, 쓰기 재현대상 즉 나머지 데이터 5,6...i 각각에 대한 각 쓰기요청을 순서대로 메모리장치(100)에 제공함으로써, 여러 데이터(예 : 데이터1,2,3,4,5...i)를 순서대로 기록하는 동작을 진행하던 중 중단된 이후의 데이터부터 이어서 기록하도록 요청할 수 있을 것이다.
한편, 외부모듈(10)은, 순서대로 기록하기를 원하는 여러 데이터(예 : 데이터1,2,3,4,5...i) 각각에 대한 각 쓰기요청을 순서대로 메모리장치(100)에 제공하였지만 메모리장치(100)로부터 구분정보를 하나도 제공(반환)받지 못하였다면, 전술과 같이 구분정보(Handle(k))를 포함시킨 쓰기재현요청을 제공할 수 없을 것이다.
이처럼, 외부모듈(10)은, 여러 데이터(예 : 데이터1,2,3,4,5...i)에 대한 쓰기요청을 제공하여 구분정보를 하나도 제공(반환)받지 못한 경우, 메모리장치(100)에 쓰기 요청한 모든 데이터 즉 데이터1,2,3,4,5...i를 쓰기 재현대상이라고 인지하여, 쓰기 재현대상 즉 데이터1,2,3,4,5...i 각각에 대한 각 쓰기요청을 순서대로 메모리장치(100)에 제공함으로써, 여러 데이터(예 : 데이터1,2,3,4,5...i)를 순서대로 기록하는 동작을 진행할 수 있다.
한편, 전술한 본 발명의 메모리장치(100)의 각 구성(110~160) 전체 또는 일부는, 소프트웨어 형태로 구현된 라이브러리로서 메모리장치(100)에 구비되는 것도 가능할 것이다.
이에, 본 발명에서는, 전술과 같은 새로운 쓰기재현연산을 가능하게 함으로써, 기존에 외부모듈에서 별도로 Journaling 정보를 생성하고 Journaling 정보를 비휘발성의 메모리(본 발명의 메무리부(170)에 대응)에 기록하여 최신으로 유지해야 함에 따른 메모리 성능 저하를 개선할 수 있다.
즉, 전술한 바와 같이 본 발명에 따른 메모리장치에 의하면, 메모리에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있도록 하는 효과를 도출한다.
이하에서는 도 3 및 도 4를 참조하여 본 발명의 바람직한 실시예에 따른 메모리장치의 동작 방법을 설명하도록 하겠다.
먼저 도 3을 참조하여 설명하면, 본 발명에 따른 메모리장치(100)의 동작 방법은, 외부모듈(10)로부터 연산요청이 수신된다(S100).
본 발명에 따른 메모리장치(100)의 동작 방법은, 수신된 연산요청이 쓰기요청이면(S110 Yes), 쓰기요청에 따른 데이터 및 태그 즉 외부모듈(10)로부터의 데이터 및 태그를 수신하고(S120), 휘발성의 내부 버퍼(미도시)에 저장할 것이다.
이와 함께, 본 발명에 따른 메모리장치(100)의 동작 방법은, 쓰기요청에 따른 데이터에 대응하여 메모리부(170) 내 메모리영역을 할당하게 된다(S130).
예컨대, 도 2와 같이 메모리부(170)의 메모리칩(171)이 n개의 메모리영역 즉 각 메모리영역0,1,2,3,4...n-1로 구성된다면, 각 메모리영역0,1,2,3,4...n-1에 대하여 데이터를 기록하는 데이터기록순서가 기 지정된다. 예를 들면, 메모리영역0에 데이터기록순서1, 메모리영역1에 데이터기록순서2, 메모리영역2에 데이터기록순서3, 메모리영역3에 데이터기록순서4, 메모리영역4에 데이터기록순서5... 메모리영역n-1에 데이터기록순서n이 기 지정되어 있을 수 있다.
이에, 본 발명에 따른 메모리장치(100)의 동작 방법은, 금번 수신된 쓰기요청에 따른 데이터에 대응하여, 각 메모리영역0,1,2,3,4...n-1에 대한 데이터기록순서를 기초로, 메모리부(170)에서 데이터가 기록되지 않은 메모리영역 중 데이터기록순서가 가장 앞선 메모리영역을 할당할 수 있다.
예컨대, 본 발명에 따른 메모리장치(100)의 동작 방법은, 각 메모리영역0,1,2,3,4...n-1 중 메모리영역0,1,2데이터가 이미 기록된 상태라면, 데이터가 기록되지 않은 메모리영역3,4...n-1 중 데이터기록순서가 가장 앞선 메모리영역3을 할당할 수 있다.
이후, 본 발명에 따른 메모리장치(100)의 동작 방법은, 금번 수신된 쓰기요청에 따른 데이터 및 태그를 S130단계에서 할당한 메모리영역 예컨대 전술의 메모리영역3에 기록한다(S140).
예를 들면, 본 발명에 따른 메모리장치(100)의 동작 방법은, 기존의 쓰기연산과 동일하게, 전술과 같이 내부 버퍼(미도시)에 잠시 저장해둔 쓰기요청에 따른 데이터 및 태그를 획득하여, 할당한 메모리영역3에 기록할 수 있다.
이후, 본 발명에 따른 메모리장치(100)의 동작 방법은, 메모리영역3과 관련된 구분정보를 외부모듈(10)로 제공한다(S150).
보다 구체적으로 설명하면, 본 발명에 따른 메모리장치(100)의 동작 방법은, 금번 쓰기요청에 따른 데이터 및 태그를 메모리부(170) 내 메모리영역 즉 할당된 메모리영역3에 기록하여 쓰기연산이 완료되면, 데이터 및 태그를 기록한 메모리영역3의 물리주소가 포함된 구분정보(Handle)를 생성하고, 생성한 구분정보 (Handle)를 외부모듈(10)로 제공(반환)할 수 있다.
이에, 외부모듈(10)에서는, 쓰기요청에 따라서 전술과 같이 메모리장치(100)로부터 제공(반환)된 구분정보 즉 Handle을, 금번 쓰기 요청한 데이터 또는 그 데이터의 태그와 맵핑시켜 관리할 수 있다.
한편, 본 발명에 따른 메모리장치(100)의 동작 방법은, 수신된 연산요청이 쓰기요청이 아니면(S110 No), 읽기요청인지 아니면 쓰기재현요청인지 확인한다(S160).
이에, 본 발명에 따른 메모리장치(100)의 동작 방법은, 수신된 연산요청이 읽기연산이면(S160 Yes), 읽기요청과 함께 제공된 구분정보 즉 Handle로부터 메모리영역과 관련된 물리주소를 확인한다(S170).
이후, 본 발명에 따른 메모리장치(100)의 동작 방법은, 확인한 물리주소의 메모리영역 예컨대 메모리부(170) 내 메모리영역3에서, 기록되어 있는 데이터 및 태그를 읽어와(S180) 외부모듈(10)로 제공하고 이에 읽기연산이 완료되면 읽기연산 수행 완료를 외부모듈(10)로 알릴 수 있다(S190).
한편, 본 발명에 따른 메모리장치(100)의 동작 방법은, 수신된 연산요청이 쓰기재현요청이면(S160 No, 도 4), 즉 외부모듈(10)로부터 쓰기재현요청이 수신되면(S200), 쓰기재현요청에 포함된 구분정보(Handle(k))로부터 물리주소를 확인하여, 특정 메모리영역을 확인할 수 있다(S210).
전술의 예와 같이 설명하면, 쓰기재현요청에 데이터1을 메모리부(170) 내 메모리영역3에 기록한 후 메모리장치(100)에서 외부모듈(10)로 제공(반환)된 구분정보(Handle(k))가 포함된다면, 본 발명에 따른 메모리장치(100)의 동작 방법은, 쓰기재현요청에 포함된 구분정보(Handle(k))로부터 물리주소를 확인하면 결국 물리주소의 특정 메모리영역으로서 메모리영역3을 확인할 수 있다.
이에, 본 발명에 따른 메모리장치(100)의 동작 방법은, 쓰기재현요청에 따른 특정 메모리영역 즉 메모리영역3 이후로 데이터가 기록된 재현대상 메모리영역을 확인하고, 재현대상 메모리영역과 관련된 구분정보(Handle)을 데이터가 기록된 순서에 따라 외부모듈(10)로 제공한다.
예를 들어 구체적으로 설명하면, 본 발명에 따른 메모리장치(100)의 동작 방법은, 전술에서 언급한 각 메모리영역0,1,2,3,4...n-1에 대한 데이터기록순서를 기초로, S210단계에서 확인한 특정 메모리영역 즉 메모리영역3 바로 다음 데이터기록순서를 갖는 메모리영역4을 확인한다(S220).
그리고, 본 발명에 따른 메모리장치(100)의 동작 방법은, 메모리영역4에 유효한 데이터가 기록되어있는지 확인하고(S230), 유효한 데이터가 기록되어 있으면(S230 Yes), 이 메모리영역4를 재현대상 메모리영역으로 확인하여 메모리영역4의 물리주소가 포함된 구분정보(Handle(K+1))을 생성하여 외부모듈(10)로 제공한다(S240).
이후, 본 발명에 따른 메모리장치(100)의 동작 방법은, 메모리영역4의 물리주소가 마지막 물리주소가 아니라면 즉 메모리영역4이 마지막 메모리영역이 아니라면(S250 No), S220단계로 진입하여 바로 다음 데이터기록순서를 갖는 메모리영역5를 확인한다(S220).
이에, 본 발명에 따른 메모리장치(100)의 동작 방법은, 메모리영역5에 유효한 데이터가 기록되어있는지 확인하고(S230), 유효한 데이터가 기록되어 있으면(S230 Yes), 이 메모리영역5를 재현대상 메모리영역으로 확인하여 메모리영역5의 물리주소가 포함된 구분정보(Handle(K+2))을 생성하여 외부모듈(10)로 제공한다(S240).
따라서, 전술의 예와 같이, 메모리장치(100)에서 데이터1,2,3,4를 할당한 메모리영역3,4,5,6에 순서대로 기록하고, 데이터5에 대응하여 메모리영역을 할당하는 중 또는 할당한 메모리영역(예 : 메모리영역7)에 기록하려고 내부 버퍼(미도시)로부터 가져오는 중 갑작스럽게 중단이 발생한 경우라면, 본 발명에 따른 메모리장치(100)의 동작 방법은, S220단계 및 S250단계를 반복함으로써, 메모리영역3 이후로 데이터가 기록된 재현대상 메모리영역으로서 메모리영역4,5,6을 확인하게 되어 메모리영역4의 물리주소가 포함된 구분정보(Handle(k+1)), 메모리영역5의 물리주소가 포함된 구분정보(Handle(k+2)), 메모리영역6의 물리주소가 포함된 구분정보(Handle(k+3))을 데이터가 기록된 순서에 따라 외부모듈(10)로 제공할 것이다.
전술한 바와 같이 본 발명에 따른 메모리장치의 동작 방법에 의하면, 메모리에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있도록 하는 효과를 도출한다.
본 발명의 일실시예에 따른 메모리장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.
본 발명에 따른 메모리장치 및 메모리장치의 동작 방법에 따르면, 메모리에 여러 데이터를 한번에 또는 순서대로 기록하고자 하는 경우, 메모리 성능 저하를 최소화하면서 효율적으로 기록할 수 있도록 한다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.
10 :외부모듈
100 : 메모리장치
110 : 요청수신부 120 : 메모리영역할당부
130 : 쓰기연산수행부 140 : 읽기연산수행부
150 : 쓰기재현연산수행부 160 : 구분정보제공부
170 : 메모리부 171 : 메모리칩
100 : 메모리장치
110 : 요청수신부 120 : 메모리영역할당부
130 : 쓰기연산수행부 140 : 읽기연산수행부
150 : 쓰기재현연산수행부 160 : 구분정보제공부
170 : 메모리부 171 : 메모리칩
Claims (8)
- 메모리를 제어하는 메모리장치에 있어서,
외부모듈로부터 쓰기요청을 수신하는 요청수신부;
상기 쓰기요청에 따른 데이터에 대응하여, 상기 메모리 내 메모리영역을 할당하는 메모리영역할당부;
상기 데이터를 상기 메모리영역에 기록하는 쓰기연산수행부; 및
상기 메모리영역에 상기 데이터를 기록한 후 상기 메모리영역과 관련된 구분정보를 상기 외부모듈로 제공하여, 상기 외부모듈에서 상기 구분정보를 이용하여 상기 메모리에 기록된 상기 데이터에 접근할 수 있도록 하는 구분정보제공부를 포함하는 것을 특징으로 하는 메모리장치. - 제 1 항에 있어서,
상기 메모리를 구성하는 각 메모리영역에 대하여 데이터를 기록하는 데이터기록순서가 기 지정되며,
상기 메모리영역할당부는,
상기 각 메모리영역에 대한 데이터기록순서를 기초로, 상기 메모리에서 데이터가 기록되지 않은 메모리영역 중 데이터기록순서가 가장 앞선 메모리영역을 할당하는 것을 특징으로 하는 메모리장치. - 제 1 항에 있어서,
상기 요청수신부는, 상기 외부모듈로부터 쓰기재현요청을 수신하며,
상기 메모리에서 상기 쓰기재현요청에 따른 특정 메모리영역 이후로 데이터가 기록된 재현대상 메모리영역을 확인하고, 상기 재현대상 메모리영역과 관련된 구분정보를, 데이터가 기록된 순서에 따라 상기 외부모듈로 제공하는 쓰기재현연산수행부를 더 포함하는 것을 특징으로 하는 메모리장치. - 제 3 항에 있어서,
상기 메모리를 구성하는 각 메모리영역에 대하여 데이터를 기록하는 데이터기록순서가 기 지정되며,
상기 쓰기재현연산수행부는,
상기 각 메모리영역에 대한 데이터기록순서를 기초로, 상기 메모리에서 상기 특정 메모리영역 이후의 데이터기록순서를 갖는 적어도 하나의 메모리영역을 확인하고, 상기 적어도 하나의 메모리영역 중 유효한 데이터가 기록된 메모리영역을 상기 재현대상 메모리영역인 것으로 확인하는 것을 특징으로 하는 메모리장치. - 제 3 항에 있어서,
상기 쓰기재현요청에는, 특정 구분정보가 포함되며,
상기 특정 구분정보는, 상기 특정 메모리영역에 데이터를 기록한 후 상기 외부모듈로 제공된 구분정보인 것을 특징으로 하는 메모리장치. - 메모리를 제어하는 메모리장치의 동작 방법에 있어서,
외부모듈로부터 쓰기요청을 수신하는 요청수신단계;
상기 쓰기요청에 따른 데이터에 대응하여, 상기 메모리 내 메모리영역을 할당하는 메모리영역할당단계;
상기 데이터를 상기 메모리영역에 기록하는 쓰기연산수행단계; 및
상기 메모리영역에 상기 데이터를 기록한 후 상기 메모리영역과 관련된 구분정보를 상기 외부모듈로 제공하여, 상기 외부모듈에서 상기 구분정보를 이용하여 상기 메모리에 기록된 상기 데이터에 접근할 수 있도록 하는 구분정보제공단계를 포함하는 것을 특징으로 하는 메모리장치의 동작 방법. - 제 6 항에 있어서,
상기 메모리를 구성하는 각 메모리영역에 대하여 데이터를 기록하는 데이터기록순서가 기 지정되며,
상기 메모리영역할당단계는,
상기 각 메모리영역에 대한 데이터기록순서를 기초로, 상기 메모리에서 데이터가 기록되지 않은 메모리영역 중 데이터기록순서가 가장 앞선 메모리영역을 할당하는 것을 특징으로 하는 메모리장치의 동작 방법. - 제 7 항에 있어서,
상기 외부모듈로부터 쓰기재현요청이 수신되면, 상기 쓰기재현요청에 따른 특정 메모리영역을 확인하는 단계;
상기 각 메모리영역에 대한 데이터기록순서를 기초로, 상기 메모리에서 상기 특정 메모리영역 이후의 데이터기록순서를 갖는 적어도 하나의 메모리영역을 확인하고, 상기 적어도 하나의 메모리영역 중 유효한 데이터가 기록된 메모리영역을 재현대상 메모리영역으로 확인하는 단계;
상기 재현대상 메모리영역과 관련된 구분정보를, 데이터가 기록된 순서에 따라 상기 외부모듈로 제공하는 단계를 더 포함하는 것을 특징으로 하는 메모리장치의 동작 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130149516A KR101519069B1 (ko) | 2013-12-03 | 2013-12-03 | 메모리장치 및 메모리장치의 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130149516A KR101519069B1 (ko) | 2013-12-03 | 2013-12-03 | 메모리장치 및 메모리장치의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101519069B1 true KR101519069B1 (ko) | 2015-05-12 |
Family
ID=53394329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130149516A KR101519069B1 (ko) | 2013-12-03 | 2013-12-03 | 메모리장치 및 메모리장치의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101519069B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020092487A (ko) * | 2001-06-04 | 2002-12-12 | 삼성전자 주식회사 | 플래시 메모리 관리방법 |
KR20080056491A (ko) * | 2006-12-18 | 2008-06-23 | (재)대구경북과학기술연구원 | Ftl의 어드레스 매핑 방법 |
-
2013
- 2013-12-03 KR KR1020130149516A patent/KR101519069B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020092487A (ko) * | 2001-06-04 | 2002-12-12 | 삼성전자 주식회사 | 플래시 메모리 관리방법 |
KR20080056491A (ko) * | 2006-12-18 | 2008-06-23 | (재)대구경북과학기술연구원 | Ftl의 어드레스 매핑 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515018B2 (en) | Using shared virtual memory resources for performing memory-mapping | |
US9298384B2 (en) | Method and device for storing data in a flash memory using address mapping for supporting various block sizes | |
US10120795B2 (en) | Wear-leveling nandflash memory reading/writing method | |
US8589617B2 (en) | Write once recording device | |
US7933938B2 (en) | File storage system, file storing method and file searching method therein | |
US8832356B2 (en) | Apparatus and method for flash memory address translation | |
US20110197035A1 (en) | Data storage device, storing medium access method and storing medium thereof | |
US8423709B2 (en) | Controller | |
JP5128131B2 (ja) | 追記形ディスクに対するデータ記録/再生 | |
CN107562367B (zh) | 基于软件化存储系统读写数据的方法以及装置 | |
US10089225B2 (en) | Improving garbage collection efficiency by reducing page table lookups | |
US9558124B2 (en) | Data storage system with passive partitioning in a secondary memory | |
JP2016051481A (ja) | 非一時的なコンピュータ可読媒体、記憶装置、およびデータを管理するための方法 | |
US20140328127A1 (en) | Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same | |
CN112631950B (zh) | 一种l2p表的保存方法、系统、设备以及介质 | |
JP2008299848A (ja) | 不揮発性メモリのデータ処理装置及びその処理方法 | |
US20080244188A1 (en) | Information recording apparatus and control method thereof | |
CN103985393A (zh) | 一种多光盘数据并行管理方法及装置 | |
US11989423B2 (en) | Techniques for zoned namespace (ZNS) storage using multiple zones | |
KR20110046118A (ko) | 적응적 로깅 장치 및 방법 | |
US11003577B2 (en) | Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program of access control with respect to semiconductor device memory | |
CN111444114B (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
US8631166B2 (en) | Storage devices with bi-directional communication techniques and method of forming bi-directional communication layer between them | |
CN114153394A (zh) | 一种数据存储管理方法、装置及设备 | |
US20160124650A1 (en) | Data Storage Device and Flash Memory Control Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |