KR102263800B1 - Memory management apparatus and control method thereof - Google Patents
Memory management apparatus and control method thereof Download PDFInfo
- Publication number
- KR102263800B1 KR102263800B1 KR1020150001875A KR20150001875A KR102263800B1 KR 102263800 B1 KR102263800 B1 KR 102263800B1 KR 1020150001875 A KR1020150001875 A KR 1020150001875A KR 20150001875 A KR20150001875 A KR 20150001875A KR 102263800 B1 KR102263800 B1 KR 102263800B1
- Authority
- KR
- South Korea
- Prior art keywords
- mapping
- storage space
- mapping table
- log area
- update
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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
Abstract
본 발명은, 사상테이블 관리가 수반되는 메모리장치를 채용함에 있어서, 사상정보의 기록 량을 최소화하고 호스트의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장할 수 있는 메모리제어장치 및 메모리제어장치의 동작 방법을 개시하고 있다.The present invention provides a memory control device and a memory control device capable of minimizing the amount of mapping information to be written and guaranteeing consistent write performance regardless of the host's workload pattern in employing a memory device accompanied by mapping table management. A method of operation is disclosed.
Description
본 발명은 메모리제어장치 및 메모리제어장치의 동작 방법에 관한 것으로, 더욱 상세하게는, 사상테이블 관리가 수반되는 메모리장치를 채용함에 있어서, 사상정보의 기록 량을 최소화하고 호스트의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장할 수 있는 메모리제어장치 및 메모리제어장치의 동작 방법에 관한 것이다.The present invention relates to a memory control device and an operating method of the memory control device, and more particularly, in employing a memory device accompanied by mapping table management, the amount of mapping information is minimized and correlated with the workload pattern of the host. The present invention relates to a memory control device and an operating method of the memory control device capable of guaranteeing consistent write performance without
최근에는, HDD(Hard Disk Drive) 대비 성능이 향상된 NAND 플래시메모리가 널리 사용되기 시작하면서, 다수의 NAND 플래시메모리를 포함하는 메모리장치를 채용한 스토리지(Storage) 시스템을 구성하여, 이를 통해 네트워크 기반의 데이터 서비스를 제공하고 있다.Recently, as NAND flash memory with improved performance compared to HDD (Hard Disk Drive) has been widely used, a storage system employing a memory device including a plurality of NAND flash memories is constructed, and through this, network-based We provide data services.
여기서, NAND 플래시메모리의 경우, 읽기 연산 및 쓰기 연산은 지원하나, 제자리 갱신(변경)을 지원하지 않는다. 이러한 특성을 감추기 위해, NAND 플래시메모리를 사용하는 스토리지 시스템 내부에는 FTL(Flash Translation Layer)이라는 소프트웨어가 존재하며, FTL이 호스트로부터 받은 논리주소를 플래시메모리의 물리주소로 사상시켜주는 역할을 한다.Here, in the case of the NAND flash memory, read and write operations are supported, but in-place update (change) is not supported. In order to hide this characteristic, software called FTL (Flash Translation Layer) exists inside the storage system using NAND flash memory, and the FTL maps the logical address received from the host to the physical address of the flash memory.
이를 위해, FTL은 스토리지 시스템 내부적으로 사상테이블(mapping table)을 관리하게 되는데, 이러한 사상테이블 역시 비휘발성메모리인 메모리장치(NAND 플래시메모리)에 기록되어야 스토리지 시스템의 전원이 종료된 후에도 메모리장치의 일관성(consistency)를 유지할 수 있다. To this end, the FTL manages a mapping table internally in the storage system. This mapping table must also be recorded in a memory device (NAND flash memory), which is a non-volatile memory, so that the consistency of the memory device even after the power of the storage system is turned off. (consistency) can be maintained.
이하에서는, 도 4 및 도 5를 참조하여, FTL이 사상테이블을 관리하는 기존의 방식에 대해 간단히 설명하겠다.Hereinafter, an existing method in which the FTL manages the mapping table will be briefly described with reference to FIGS. 4 and 5 .
도 4에 도시된 바와 같이, 기존 방식에 따르면, FTL은 메모리장치 내 데이터저장공간에 일정한 로그(log)영역을 두고, 외부의 호스트로부터 쓰기명령이 수신되면 쓰기명령에 따른 데이터를 로그영역에 순차적으로 기록하며(①), 이에 따른 사상정보를 휘발성메모리의 사상테이블에 반영한다(②). As shown in FIG. 4 , according to the conventional method, the FTL places a certain log area in the data storage space of the memory device, and when a write command is received from an external host, data according to the write command is sequentially transferred to the log area. (①), and the mapping information is reflected in the mapping table of the volatile memory (②).
FTL은, 전술의 ①, ② 동작을 반복하다가 로그영역이 풀(Full) 상태가 되면, 사상정보가 누적 반영된 사상테이블을 비휘발성메모리인 메모리장치 내 사상테이블저장공간에 기록하게 되고(③), 로그영역을 전진하여(④), 이후 쓰기명령에 따른 데이터를 전진한 로그영역에 기록하는 방식이다. In the FTL, when the log area becomes full while repeating the above-mentioned
즉, 기존의 사상테이블을 관리하는 방식은, 로그영역에 더 이상 데이터를 기록할 수 없는 한계 즉 로그영역 풀(Full) 상태가 될 때까지 휘발성메모리의 사상테이블에 사상정보를 누적 반영하다가, 로그영역이 풀(Full) 상태가 되면 사상테이블을 비휘발성의 메모리장치에 기록한다.That is, in the existing mapping table management method, the mapping information is accumulated and reflected in the mapping table of the volatile memory until the log area reaches the limit at which data can no longer be recorded, that is, the log area is full. When the area becomes full, the mapping table is written to the nonvolatile memory device.
이상에서 알 수 있듯이, 기존의 사상테이블 관리 방식은, 로그영역이 풀(Full) 상태가 될 때마다, 테이블 형태로 사상정보(사상테이블)를 메모리장치에 기록하기 때문에, 사상정보의 기록 양이 증가하는 문제가 있다.As can be seen from the above, in the existing mapping table management method, whenever the log area becomes full, the mapping information (mapping table) is recorded in the memory device in the form of a table, so that the amount of mapping information is recorded. There is a growing problem.
한편, 호스트로부터의 쓰기명령 패턴(이하, 워크로드 패턴)은, 순차적일 수도 있고 비순차적일 수도 있다.Meanwhile, a write command pattern (hereinafter, a workload pattern) from the host may be sequential or non-sequential.
호스트의 워크로드 패턴이 순차적인 경우라면, 도 5의 왼쪽에 도시된 바와 같이, 전술의 ①, ② 동작을 반복한 결과 사상테이블에는 누적 반영된 사상정보가 밀집되기 때문에, 사상테이블을 메모리장치에 기록할 때 필요한 공간이 작지만, 호스트의 워크로드 패턴이 비순차적인 경우라면, 도 5의 오른쪽에 도시된 바와 같이, 전술의 ①, ② 동작을 반복한 결과 사상테이블에는 누적 반영된 사상정보가 분산되기 때문에, 사상테이블을 메모리장치에 기록할 때 필요한 공간이 커지게 된다.If the workload pattern of the host is sequential, as shown on the left of FIG. 5 , as a result of repeating the
이상에서 알 수 있듯이, 기존의 사상테이블 관리 방식은, 호스트의 워크로드 패턴이 순차적인지 또는 비순차적인지에 따라, 사상테이블(사상정보)의 기록 량(기록 공간과 동일한 의미)의 차이가 발생되고, 이는 곧 쓰기 성능을 일관성 있게 유지할 수 없어 호스트 쓰기 성능의 저하까지 야기시킬 수 있는 문제로 이어질 수 있다.As can be seen from the above, in the existing mapping table management method, depending on whether the workload pattern of the host is sequential or non-sequential, there is a difference in the amount of mapping (mapping information) recorded (meaning the same as the recording space). , this can lead to a problem that can cause the host write performance to deteriorate because the write performance cannot be maintained consistently.
이에, 본 발명에서는, 사상테이블 관리가 수반되는 메모리장치(즉, NAND 플래시메모리를 포함)를 채용함에 있어서, 사상정보의 기록 량을 최소화하고 호스트의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장할 수 있는 방안을 제안하고자 한다.Accordingly, in the present invention, in employing a memory device (ie, including a NAND flash memory) that involves mapping table management, the amount of mapping information is minimized and consistent write performance is guaranteed regardless of the workload pattern of the host. We would like to suggest a way to do it.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은 사상테이블 관리가 수반되는 메모리장치를 채용함에 있어서, 사상정보의 기록 량을 최소화하고 호스트의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장할 수 있는 메모리제어장치 및 메모리제어장치의 동작 방법을 제공하는데 있다.The present invention was created in view of the above circumstances, and the object of the present invention is to minimize the amount of mapping information recorded and irrespective of the workload pattern of the host in employing a memory device accompanying the mapping table management. An object of the present invention is to provide a memory control device capable of ensuring consistent write performance and an operating method of the memory control device.
상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 메모리제어장치는, 쓰기명령에 따른 데이터를 메모리장치 내 데이터저장공간의 지정된 로그영역에 기록하는 데이터제어부; 상기 데이터의 기록과 관련된 사상정보를 사상테이블에 반영하는 사상테이블제어부; 및 상기 데이터의 기록과 관련된 사상정보를 사상갱신버퍼에 저장하고, 상기 로그영역이 풀(Full) 상태가 되면 상기 사상갱신버퍼에 누적 저장된 사상정보를 상기 메모리장치 내 사상갱신저장공간에 기록하여, 상기 로그영역에 대한 사상정보가 상기 사상갱신저장공간으로부터 복원될 수 있도록 하는 사상갱신제어부를 포함한다.According to a first aspect of the present invention, there is provided a memory control device comprising: a data control unit for writing data according to a write command to a designated log area of a data storage space in the memory device; a mapping table control unit for reflecting mapping information related to the recording of the data to a mapping table; and storing mapping information related to the recording of the data in a mapping update buffer, and when the log area becomes full, the mapping information accumulated and stored in the mapping update buffer is recorded in a mapping update storage space in the memory device, and a mapping update control unit for restoring the mapping information for the log area from the mapping update storage space.
바람직하게는, 상기 데이터제어부는, 상기 사상갱신버퍼에 누적 저장된 사상정보가 상기 사상갱신저장공간에 기록되면, 상기 데이터저장공간에서 로그영역을 재 지정할 수 있다. Preferably, when the mapping information accumulated and stored in the mapping update buffer is recorded in the mapping update storage space, the data control unit may redesignate a log area in the data storage space.
바람직하게는, 상기 사상테이블제어부는, 상기 사상갱신저장공간이 풀(Full) 상태가 되면, 사상정보가 누적 반영된 사상테이블을 상기 메모리장치 내 사상테이블저장공간에 기록하여, 상기 지정된 로그영역 및 적어도 하나의 상기 재 지정한 로그영역에 대한 사상정보가 상기 사상테이블저장공간으로부터 복원될 수 있도록 할 수 있다. Preferably, when the mapping update storage space is in a full state, the mapping table control unit records a mapping table in which the mapping information is accumulated and reflected in the mapping table storage space in the memory device, and stores the specified log area and at least Mapping information for one of the redesignated log areas can be restored from the mapping table storage space.
바람직하게는, 상기 사상갱신버퍼에 저장되는 사상정보는, 상기 쓰기명령과 관련된 논리주소 및 상기 쓰기명령에 따른 데이터를 기록한 상기 메모리장치의 물리주소를 포함한다.Preferably, the mapping information stored in the mapping update buffer includes a logical address related to the write command and a physical address of the memory device in which data according to the write command is recorded.
바람직하게는, 상기 사상테이블제어부는, 사상테이블 복원 필요 시, 상기 사상테이블저장공간으로부터 가장 최근에 기록된 사상테이블을 리드(read)하고, 상기 사상갱신저장공간에 저장된 사상정보 및 상기 사상테이블 복원 필요 시점에 지정되어 있는 상기 데이터저장공간의 로그영역을 리드하여 복원한 사상정보를 상기 리드한 사상테이블에 반영하여, 최신의 사상테이블을 복원할 수 있다.Preferably, the mapping table controller reads the most recently recorded mapping table from the mapping table storage space when it is necessary to restore the mapping table, and restores the mapping information stored in the mapping update storage space and the mapping table. The latest mapping table can be restored by reflecting mapping information restored by reading the log area of the data storage space designated at a necessary time point in the read mapping table.
상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 메모리제어장치의 동작 방법은, 쓰기명령에 따른 데이터를 메모리장치 내 데이터저장공간의 지정된 로그영역에 기록하는 데이터기록단계; 상기 데이터의 기록과 관련된 사상정보를 사상테이블에 반영하는 사상테이블반영단계; 상기 데이터의 기록과 관련된 사상정보를 사상갱신버퍼에 저장하는 사상갱신버퍼저장단계; 및 상기 로그영역이 풀(Full) 상태가 되면 상기 사상갱신버퍼에 누적 저장된 사상정보를 상기 메모리장치 내 사상갱신저장공간에 기록하여, 상기 로그영역에 대한 사상정보가 상기 사상갱신저장공간으로부터 복원될 수 있도록 하는 사상갱신저장공간기록단계를 포함한다.According to a second aspect of the present invention, there is provided an operating method of a memory control device, comprising: a data writing step of writing data according to a write command to a designated log area of a data storage space in a memory device; a mapping table reflection step of reflecting mapping information related to the recording of the data in a mapping table; a mapping update buffer storage step of storing mapping information related to the recording of the data in a mapping update buffer; and when the log area becomes full, the mapping information accumulated in the mapping update buffer is recorded in the mapping update storage space in the memory device, and the mapping information for the log area is restored from the mapping update storage space. It includes a mapping update storage space recording step to enable
바람직하게는, 상기 사상갱신버퍼에 누적 저장된 사상정보가 상기 사상갱신저장공간에 기록되면, 상기 데이터저장공간에서 로그영역을 재 지정하는 단계를 더 포함할 수 있다. Preferably, when the mapping information accumulated and stored in the mapping update buffer is recorded in the mapping update storage space, the method may further include re-designating a log area in the data storage space.
바람직하게는, 상기 사상갱신저장공간이 풀(Full) 상태가 되면, 사상정보가 누적 반영된 사상테이블을 상기 메모리장치 내 사상테이블저장공간에 기록하여, 상기 지정된 로그영역 및 적어도 하나의 상기 재 지정한 로그영역에 대한 사상정보가 상기 사상테이블저장공간으로부터 복원될 수 있도록 하는 단계를 더 포함할 수 있다.Preferably, when the mapping update storage space is in a full state, a mapping table in which mapping information is accumulated is recorded in the mapping table storage space in the memory device, and the designated log area and the at least one re-designated log are recorded. The method may further include allowing mapping information for a region to be restored from the mapping table storage space.
바람직하게는, 사상테이블 복원 필요 시, 상기 사상테이블저장공간으로부터 가장 최근에 기록된 사상테이블을 리드(read)하는 단계; 및 상기 사상갱신저장공간에 저장된 사상정보 및 상기 사상테이블 복원 필요 시점에 지정되어 있는 상기 데이터저장공간의 로그영역을 리드하여 복원한 사상정보를 상기 리드한 사상테이블에 반영하여, 최신의 사상테이블을 복원하는 단계를 더 포함할 수 있다.Preferably, when it is necessary to restore the mapping table, reading the most recently recorded mapping table from the mapping table storage space; and the mapping information stored in the mapping update storage space and the mapping information restored by reading the log area of the data storage space designated at the time when the mapping table restoration is required is reflected in the read mapping table to generate the latest mapping table. It may further include the step of restoring.
이에, 본 발명의 메모리제어장치 및 메모리제어장치의 동작 방법에 의하면, 사상테이블 관리가 수반되는 메모리장치를 채용함에 있어서, 사상정보의 기록 량을 최소화하고 호스트의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장할 수 있는 효과를 도출한다.Accordingly, according to the memory control apparatus and the method of operation of the memory control apparatus of the present invention, in employing a memory apparatus accompanied by mapping table management, the amount of mapping information is minimized and writes consistently regardless of the workload pattern of the host It derives the effect that can guarantee the performance.
도 1은 본 발명의 바람직한 실시예에 따른 메모리제어장치가 포함된 스토리지 시스템의 구성을 간략하게 보여주는 구성도이다.
도 2는 본 발명의 바람직한 실시예에 따른 메모리제어장치를 구체적으로 보여주는 블록도이다.
도 3은 본 발명의 바람직한 실시예에 따른 메모리제어장치의 동작 방법을 나타내는 동작 흐름도이다.
도 4 및 도 5는 기존의 사상테이블 관리 방식을 보여주는 예시도이다.
도 6은 본 발명의 바람직한 실시예에 따른 사상테이블 관리 방식을 보여주는 예시도이다.1 is a schematic diagram showing the configuration of a storage system including a memory control device according to a preferred embodiment of the present invention.
2 is a block diagram specifically showing a memory control device according to a preferred embodiment of the present invention.
3 is an operation flowchart illustrating a method of operating a memory control apparatus according to a preferred embodiment of the present invention.
4 and 5 are exemplary diagrams illustrating a conventional mapping table management method.
6 is an exemplary diagram illustrating a mapping table management method according to a preferred embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.
먼저, 도 1을 참조하여 본 발명의 바람직한 실시예에 따른 메모리제어장치가 포함된 스토리지 시스템의 구성을 설명하겠다.First, a configuration of a storage system including a memory control device according to a preferred embodiment of the present invention will be described with reference to FIG. 1 .
도 1에 도시된 바와 같이, 스토리지 시스템은, 저장공간으로서의 메모리장치(10)와, 메모리장치(10)로의 메모리연산을 시도하는 호스트(200) 예컨대 파일시스템 또는 어플리케이션과, 호스트(200) 및 메모리장치(10) 사이에서 메모리장치(10)를 제어하는 메모리제어장치(100), 그리고 메모리연산 및 기타 메모리장치(10)의 제어 과정에서 이용되는 휘발성메모리(50)를 포함한다.As shown in FIG. 1 , the storage system includes a
이때, 메모리장치(10)는, 다수의 NAND 플래시메모리로 구성된 메모리칩을 다수 개 포함할 수 있다.In this case, the
즉, 메모리장치(10)는, 도 1에 도시된 바와 같이, 다수의 메모리칩(#0,#1,#2...#N-1)으로 구성될 수 있다.That is, as shown in FIG. 1 , the
메모리제어장치(100)는, 호스트(200) 및 메모리장치(10) 사이에서 메모리장치(10)를 제어하는 제어모듈 또는 제어 소프트웨어(예 : Flash Translation Layer)일 수 있다.The
한편, 이와 같이 NAND 플래시메모리로 구성된 메모리장치(10)를 채용한 스토리지 시스템에서는, NAND 플래시메모리가 제자리 갱신을 지원하지 않는 특성 때문에, 호스트(200)로부터 받은 논리주소를 메모리장치(10)의 물리주소로 사상시켜주는 기능이 반드시 필요하다.On the other hand, in the storage system employing the
이를 위해, 스토리지 시스템에서는, 내부적으로 사상테이블(mapping table)을 관리하게 되며, 이러한 사상테이블 역시 비휘발성메모리인 메모리장치(10)에 기록되어야 스토리지 시스템의 전원이 종료된 후에도 메모리장치(10)의 일관성(consistency)를 유지할 수 있다. To this end, the storage system internally manages a mapping table, and this mapping table must also be written to the
이하에서는, 전술의 도 4 및 도 5를 참조하여 설명한 기존의 사상테이블 관리 방식을, 도 1을 참조로 간단히 언급하도록 하겠다.Hereinafter, the existing mapping table management method described above with reference to FIGS. 4 and 5 will be briefly referred to with reference to FIG. 1 .
기존의 사상테이블 관리 방식은, 메모리장치(10) 내 데이터저장공간에 일정한 로그(log)영역을 두고, 호스트(200)로부터 쓰기명령이 수신되면 쓰기명령에 따른 데이터를 로그영역에 순차적으로 기록하며(①), 이에 따른 사상정보를 휘발성메모리(50)의 사상테이블에 반영하는(②) 전술의 ①, ② 동작을 반복하다가, 로그영역이 풀(Full) 상태가 되면, 사상정보가 누적 반영된 사상테이블을 비휘발성메모리인 메모리장치(10) 내 사상테이블저장공간에 기록하게 되고(③), 로그영역을 전진하여(④), 이후 쓰기명령에 따른 데이터를 전진한 로그영역에 기록하는 방식이다. The existing mapping table management method places a certain log area in the data storage space of the
즉, 기존의 사상테이블을 관리하는 방식은, 로그영역에 더 이상 데이터를 기록할 수 없는 한계 즉 로그영역 풀(Full) 상태가 될 때까지 휘발성메모리(50)의 사상테이블에 사상정보를 누적 반영하다가, 로그영역이 풀(Full) 상태가 되면 사상테이블을 비휘발성의 메모리장치(10)에 기록한다.That is, in the existing mapping table management method, the mapping information is accumulated and reflected in the mapping table of the
이상에서 알 수 있듯이, 기존의 사상테이블 관리 방식은, 로그영역이 풀(Full) 상태가 될 때마다, 테이블 형태로 사상정보(사상테이블)를 메모리장치(10)에 기록하기 때문에, 사상정보의 기록 양이 증가하는 문제가 있다.As can be seen from the above, the existing mapping table management method records mapping information (mapping table) in the form of a table in the
한편, 호스트(200)로부터의 쓰기명령 패턴(이하, 워크로드 패턴)은, 순차적일 수도 있고 비순차적일 수도 있다.Meanwhile, a write command pattern (hereinafter, a workload pattern) from the
호스트(200)의 워크로드 패턴이 순차적인 경우라면, 도 5의 왼쪽에 도시된 바와 같이, 전술의 ①, ② 동작을 반복한 결과 사상테이블에는 누적 반영된 사상정보가 밀집되기 때문에, 사상테이블을 메모리장치(10)에 기록할 때 필요한 공간이 작지만, 호스트(200)의 워크로드 패턴이 비순차적인 경우라면, 도 5의 오른쪽에 도시된 바와 같이, 전술의 ①, ② 동작을 반복한 결과 사상테이블에는 누적 반영된 사상정보가 분산되기 때문에, 사상테이블을 메모리장치(10)에 기록할 때 필요한 공간이 커지게 된다.If the workload pattern of the
이상에서 알 수 있듯이, 기존의 사상테이블 관리 방식은, 호스트(200)의 워크로드 패턴이 순차적인지 또는 비순차적인지에 따라, 사상테이블(사상정보)의 기록 량(기록 공간과 동일한 의미)의 차이가 발생되고, 이는 곧 쓰기 성능을 일관성 있게 유지할 수 없어 호스트 쓰기 성능의 저하까지 야기시킬 수 있는 문제로 이어질 수 있다.As can be seen from the above, in the existing mapping table management method, the amount of mapping table (mapping information) recorded (meaning the same as the recording space) differs depending on whether the workload pattern of the
이에, 본 발명에서는, 사상테이블 관리가 수반되는 메모리장치(10, NAND 플래시메모리를 포함)를 채용함에 있어서, 사상정보의 기록 량을 최소화하고 호스트(200)의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장할 수 있는 방안을 제안하고자 한다.Accordingly, in the present invention, in employing a memory device 10 (including a NAND flash memory) that involves mapping table management, the amount of mapping information is minimized and writes consistently regardless of the workload pattern of the
보다 구체적으로는, 본 발명에서 제안하는 방안을 달성하기 위해, 사상테이블과는 별도로, 새롭게 변경된 사상정보 만을 따로 관리하기 위한 사상갱신제어기능을 도입한 사상테이블 관리 방식을 제안한다.More specifically, in order to achieve the method proposed by the present invention, a mapping table management method is proposed in which a mapping update control function for separately managing only newly changed mapping information apart from the mapping table is introduced.
이하에서는, 도 2를 참조하여, 본 발명의 바람직한 실시예에 따른 메모리제어장치, 즉 전술한 본 발명의 사상갱신제어기능이 도입된 메모리제어장치에 대해 구체적으로 설명하도록 하겠다.Hereinafter, with reference to FIG. 2, a memory control apparatus according to a preferred embodiment of the present invention, that is, a memory control apparatus to which the above-described mapping update control function of the present invention is introduced, will be described in detail.
본 발명에 따른 메모리제어장치(100)는, 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 지정된 로그영역에 기록하는 데이터제어부(110)와, 상기 데이터의 기록과 관련된 사상정보를 사상테이블에 반영하는 사상테이블제어부(120)와, 상기 데이터의 기록과 관련된 사상정보를 사상갱신버퍼에 저장하고, 상기 로그영역이 풀(Full) 상태가 되면 상기 사상갱신버퍼에 누적 저장된 사상정보를 메모리장치(10) 내 사상갱신저장공간에 기록하여, 상기 로그영역에 대한 사상정보가 상기 사상갱신저장공간으로부터 복원될 수 있도록 하는 사상갱신제어부(130)를 포함한다.The
본 발명의 메모리제어장치(100)에 대한 구체적인 설명에 앞서, 휘발성메모리(50)에는, 기존과 같이 사상테이블이 존재하며, 본 발명에 따른 사상갱신버퍼가 새롭게 도입/존재한다.Prior to a detailed description of the
또한, 메모리장치(10) 내 저장공간은, 데이터저장공간, 사상테이블저장공간, 및 사상갱신저장공간으로 구분될 수 있다.Also, the storage space in the
데이터제어부(110)는, 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 지정된 로그영역에 기록한다.The data control
즉, 데이터제어부(110)는, 메모리장치(10) 내 데이터저장공간에 로그영역을 지정해 두고, 호스트(200)로부터 쓰기명령이 수신되면 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 지정된 로그영역에 순차적으로 기록한다.That is, the
이때, 데이터제어부(110)는, 데이터 기록 시, 쓰기명령과 관련된 논리주소 즉 호스트(200)로부터 받은 논리주소를 데이터와 함께 기록하는 것이 바람직하다.In this case, it is preferable that the
사상테이블제어부(120)는, 데이터제어부(110)에서 데이터 기록 시, 해당 데이터의 기록과 관련된 사상정보를 사상테이블에 반영한다.When the
즉, 사상테이블제어부(120)는, 데이터제어부(110)에서 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 지정된 로그영역에 순차적으로 기록할 때마다, 기록한 데이터와 관련된 사상정보를 휘발성메모리(50)의 사상테이블에 반영하며, 이는 기존의 사상테이블 관리 방식과 동일할 수 있다.That is, whenever data according to a write command from the
이때, 사상테이블에 반영되는 사상정보는, 데이터의 고유값과, 데이터를 기록한 메모리장치(10)의 물리주소가 포함될 수 있다.In this case, the mapping information reflected in the mapping table may include a unique value of data and a physical address of the
사상갱신제어부(130)는, 데이터제어부(110)에서 데이터 기록 시, 해당 데이터의 기록과 관련된 사상정보를 사상갱신버퍼에 저장하고, 현재 지정된 로그영역이 풀(Full) 상태가 되면 사상갱신버퍼에 누적 저장된 사상정보를 메모리장치(10) 내 사상갱신저장공간에 기록하여, 현재 지정된 로그영역에 대한 사상정보가 사상갱신저장공간으로부터 복원될 수 있도록 한다.When the
보다 구체적으로 설명하면, 사상갱신제어부(130)는, 데이터제어부(110)에서 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 지정된 로그영역에 순차적으로 기록할 때마다, 기록한 데이터와 관련된 사상정보를 휘발성메모리(50)의 사상갱신버퍼에 저장한다.More specifically, each time the mapping
이때, 사상갱신버퍼에 저장되는 사상정보는, 데이터의 고유값과, 쓰기명령과 관련된 논리주소 즉 호스트(200)로부터 받은 논리주소, 및 데이터를 기록한 상기 메모리장치(10)의 물리주소가 포함될 수 있다.In this case, the mapping information stored in the mapping update buffer may include a unique value of data, a logical address related to a write command, that is, a logical address received from the
즉, 본 발명에서는, 호스트(200)로부터 쓰기명령이 수신되면 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 로그영역에 순차적으로 기록하며, 이에 따른 사상정보를 휘발성메모리(50)의 사상테이블에 반영할 뿐 아니라 휘발성메모리(50)의 사상갱신버퍼에도 저장하는 것이다.That is, in the present invention, when a write command is received from the
이때, 호스트(200)의 워크로드 패턴이 순차적인지 또는 비순차적인지에 따라서, 휘발성메모리(50)의 사상테이블에 누적 반영되는 사상정보가 밀집 또는 분산될 수 있지만, 휘발성메모리(50)의 사상갱신버퍼에 누적 저장(변경)되는 사상정보는 호스트(200)의 워크로드 패턴과 상관없이 순차적으로 저장될 것이다.At this time, depending on whether the workload pattern of the
또한, 사상갱신제어부(130)는, 전술과 같이 데이터와 관련된 사상정보를 휘발성메모리(50)의 사상갱신버퍼에 저장하는 한편, 현재 지정된 로그영역이 풀(Full) 상태인지 여부를 확인한다.In addition, the mapping
사상갱신제어부(130)는, 현재 지정된 로그영역에 더 이상 데이터를 기록할 수 없는 한계 즉 로그영역 풀(Full) 상태가 되면, 사상갱신버퍼에 누적 저장된 사상정보를 메모리장치(10) 내 사상갱신저장공간에 기록한다.The mapping
이렇게 되면, 사상갱신버퍼에 누적 저장되어 있던 사상정보 즉 현재 지정된 로그영역의 모든 사상정보가, 비휘발성메모리인 메모리장치(10) 내 사상갱신저장공간에 기록되기 때문에, 본 발명이 적용된 스토리지 시스템의 전원이 종료된 후에도 현재 지정된 로그영역에 대한 사상정보가 메모리장치(10)의 사상갱신저장공간으로부터 복원될 수 있게 된다.In this case, since the mapping information accumulated in the mapping update buffer, that is, all mapping information in the currently designated log area, is recorded in the mapping update storage space in the
한편, 데이터제어부(110)는, 사상갱신제어부(130)에 의해 사상갱신버퍼에 누적 저장된 사상정보가 메모리장치(10)의 사상갱신저장공간에 기록되면, 데이터저장공간에서 로그영역을 재 지정함으로써, 로그영역을 전진할 수 있다.On the other hand, when the mapping information accumulated and stored in the mapping update buffer by the mapping
이처럼 로그영역이 재 지정(전진)된 후, 데이터제어부(110)는, 전술과 같이 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 지정된 로그영역에 순차적으로 기록할 것이고, 사상테이블제어부(120) 및 사상갱신제어부(130)는, 전술과 같이 데이터제어부(110)에서 기록한 데이터와 관련된 사상정보를, 휘발성메모리(50)의 사상테이블에 반영하고 휘발성메모리(50)의 사상갱신버퍼에 저장할 것이며, 특히 사상갱신제어부(130)는, 전술과 같이 현재 지정된 로그영역이 풀(Full) 상태가 되면 사상갱신버퍼에 누적 저장된 사상정보를 메모리장치(10) 내 사상갱신저장공간에 기록할 것이다.After the log area is re-designated (forwarded) as described above, the
여기서, 사상테이블제어부(120)는, 메모리장치(10) 내 사상갱신저장공간이 풀(Full) 상태가 되면, 지금까지 사상정보가 누적 반영된 사상테이블을 메모리장치(10) 내 사상테이블저장공간에 기록하여, 상기 지정된 로그영역 및 적어도 하나의 상기 재 지정한 로그영역에 대한 사상정보가 메모리장치(10) 내 사상테이블저장공간으로부터 복원될 수 있도록 한다.Here, when the mapping update storage space in the
보다 구체적으로 설명하면, 사상테이블제어부(120)는, 전술과 같이 데이터와 관련된 사상정보를 휘발성메모리(50)의 사상테이블에 반영하는 한편, 메모리장치(10) 내 사상갱신저장공간이 풀(Full) 상태인지 여부를 확인한다.More specifically, the mapping
사상테이블제어부(120)는, 메모리장치(10) 내 사상갱신저장공간에 더 이상 사상정보를 저장할 수 없는 한계 즉 사상갱신저장공간 풀(Full) 상태가 되면, 지금까지 사상정보가 누적 반영된 휘발성메모리(50)의 사상테이블을 비로소 메모리장치(10) 내 사상테이블저장공간에 기록한다.When the mapping
이렇게 되면, 사상테이블에 누적 반영되어 있던 사상정보 즉 현재 지정된 로그영역까지 전진된 과거의 로그영역들(상기 지정된 로그영역 및 적어도 하나의 상기 재 지정한 로그영역)의 모든 사상정보가, 비휘발성메모리인 메모리장치(10) 내 사상테이블저장공간에 테이블 형태로 기록되기 때문에, 본 발명이 적용된 스토리지 시스템의 전원이 종료된 후에도 현재 지정된 로그영역까지 전진된 과거의 로그영역들에 대한 사상정보가 메모리장치(10)의 사상테이블저장공간으로부터 복원될 수 있게 된다.In this case, the mapping information accumulated and reflected in the mapping table, that is, all mapping information of the past log areas (the designated log area and at least one of the re-designated log areas) advanced up to the currently designated log area is stored in the non-volatile memory. Since the mapping information is recorded in the mapping table storage space in the
이하에서는, 도 6을 참조하여, 이상에서 설명한 바에 따른 본 발명의 사상테이블 관리 방식을 설명하겠다.Hereinafter, a mapping table management method of the present invention according to the above description will be described with reference to FIG. 6 .
도 6에 도시된 바와 같이, 본 발명에서는, 메모리장치(10) 내 데이터저장공간에 로그영역을 지정하고, 호스트(200)로부터 쓰기명령이 수신되면 쓰기명령에 따른 데이터를 로그영역에 순차적으로 기록하며(①), 이에 따른 사상정보를 휘발성메모리(50)의 사상테이블에 반영할 뿐 아니라(②) 휘발성메모리(50)의 사상갱신버퍼에도 저장한다(②).As shown in FIG. 6 , in the present invention, a log area is designated in the data storage space of the
전술의 ①, ② 동작을 반복하다가, 로그영역이 풀(Full) 상태가 되면, 사상갱신버퍼에 누적 저장된 사상정보를 메모리장치(10) 내 사상갱신저장공간에 기록하고(③), 로그영역을 재 지정하여 전진한다(④).When the log area becomes full while repeating the above-mentioned
본 발명에서는, 메모리장치(10) 내 사상갱신저장공간이 풀(Full) 상태가 될 때까지, 전술의 ① ~ ④ 동작을 반복할 것이다.In the present invention, the above-described
한편, 본 발명에서는, 전술의 ① ~ ④ 동작을 반복하던 중 메모리장치(10) 내 사상갱신저장공간이 풀(Full) 상태가 되면, 지금까지 사상정보가 누적 반영된 휘발성메모리(50)의 사상테이블을 비로소 메모리장치(10) 내 사상테이블저장공간에 기록하고(⑤), 최신의 사상테이블을 사상테이블저장공간에 기록함에 따라 사상갱신저장공간의 사상정보는 더 이상 필요가 없기 때문에 사상갱신저장공간을 회수하여 재 활용할 수 있다(⑥).On the other hand, in the present invention, when the mapping update storage space in the
전술한 바와 같은, 본 발명의 사상테이블 관리 방식에 따르면, 사상갱신제어기능(사상갱신버퍼, 사상갱신제어부)를 도입함으로써, 로그영역이 풀(Full) 상태가 될 때마다 사상테이블을 메모리장치(10)에 기록하던 기존의 방식과 달리, 로그영역 단위로 변경된 사상정보 즉 사상갱신버퍼에 누적 저장한 사상정보 만을 메모리장치(10) 내 사상갱신저장공간에 기록하되, 사상갱신저장공간이 풀(Full) 상태가 되면 지금까지의 사상정보가 누적 반영된 사상테이블을 메모리장치(10)에 기록하게 된다.As described above, according to the mapping table management method of the present invention, the mapping table is stored in the memory device whenever the log area becomes full by introducing the mapping update control function (the mapping update buffer, the mapping update control unit). 10), only mapping information that has been changed in log area units, that is, the mapping information accumulated and stored in the mapping update buffer, is recorded in the mapping update storage space in the
이에, 본 발명의 사상테이블 관리 방식에 따르면, 호스트(200)의 워크로드 패턴이 순차적인지 또는 비순차적인지에 따라 누적 반영된 사상정보가 밀집 또는 분산되는 테이블 형태의 사상정보(사상테이블)를 메모리장치(10)에 빈번하게 기록하는 기존에 비해, 사상정보를 기록하는데 필요한 기록 량이 최소화될 뿐 아니라, 사상정보를 기록하는데 필요한 기록 량이 호스트(200)의 워크로드 패턴과 상관없이 호스트 데이터 기록 양에 비례하기 때문에, 호스트(200)의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장할 수 있다.Accordingly, according to the mapping table management method of the present invention, the mapping information (mapping table) in the form of a table in which the cumulatively reflected mapping information is concentrated or distributed according to whether the workload pattern of the
한편, 본 발명에 따른 메모리제어장치(100)는, 전술한 사상갱신제어기능(사상갱신버퍼, 사상갱신제어부)를 도입함에 따른, 사상테이블 복원 방식 역시 제안한다.Meanwhile, the
본 발명의 사상테이블 복원 방식을 설명하면 다음과 같다.The mapping table restoration method of the present invention will be described as follows.
사상테이블제어부(120)는, 사상테이블 복원 필요 시, 메모리장치(10) 내 사상테이블저장공간으로부터 가장 최근에 기록된 사상테이블을 리드(read)한다.The mapping
예컨대, 사상테이블 복원 필요 시점은, 본 발명이 적용된 스토리지 시스템의 전원이 종료(Off)된 후 다시 전원이 켜지는(On) 시점일 것이다.For example, the time when the mapping table needs to be restored may be a time when the power of the storage system to which the present invention is applied is turned on again after being turned off.
즉, 사상테이블제어부(120)는, 본 발명이 적용된 스토리지 시스템의 전원이 종료(Off)된 후 다시 전원이 켜지면(On), 비휘발성메모리인 메모리장치(10) 내 사상테이블저장공간으로부터 가장 최근에 기록된 사상테이블을 리드(read)한다.That is, when the power of the storage system to which the present invention is applied is turned on (On), the mapping
그리고, 사상테이블제어부(120)는, 메모리장치(10) 내 사상갱신저장공간에 저장된 사상정보 및 상기 사상테이블 복원 필요 시점에 지정되어 있는 메모리장치(10) 내 데이터저장공간의 로그영역을 리드하여 복원한 사상정보를, 전술의 리드한 사상테이블에 반영하여, 최신의 사상테이블을 복원할 수 있다. Then, the mapping
구체적으로 설명하면, 사상테이블제어부(120)는, 사상갱신제어부(130)와의 연동에 기반하여, 메모리장치(10) 내 사상갱신저장공간으로부터 사상정보를 리드함으로써, 전술의 리드한 사상테이블에 반영되어 있지 못한 사상정보를 얻을 수 있다. More specifically, the mapping
또한, 사상테이블제어부(120)는, 데이터제어부(110)와의 연동에 기반하여, 사상테이블 복원 필요 시점에 지정되어 있는 메모리장치(10) 내 데이터저장공간의 로그영역을 리드하여 사상정보를 복원함으로써, 전술의 사상갱신저장공간에 저장되어 있지 못한 사상정보를 복원할 수 있다.In addition, the mapping
이에, 사상테이블제어부(120)는, 메모리장치(10) 내 사상갱신저장공간으로부터 리드하여 얻은 사상정보 및 로그영역을 리드하여 복원한 사상정보를, 전술의 리드한 사상테이블에 반영하여, 최신의 사상테이블을 복원할 수 있게 된다.Accordingly, the mapping
이처럼, 본 발명에서는, 전술한 사상갱신제어기능(사상갱신버퍼, 사상갱신제어부)를 도입함에 따른 환경에 맞추어, 메모리장치(10)의 일관성(consistency)을 효과적으로 유지할 수 있는 사상테이블 복원 방식 역시 제안하고 있다.As such, the present invention also proposes a mapping table restoration method capable of effectively maintaining consistency of the
이상에서 설명한 바와 같이, 본 발명에 따른 메모리제어장치(100)는, 호스트(200)의 워크로드 패턴에 따라 누적 반영된 사상정보가 밀집 또는 분산되는 테이블 형태의 사상정보(사상테이블)를 메모리장치(10)에 빈번하게 기록하는 기존 방식과 달리, 로그영역 단위로 변경된 사상정보 즉 사상갱신버퍼에 누적 저장한 사상정보 만을 메모리장치(10) 내 사상갱신저장공간에 기록하되, 사상갱신저장공간이 풀(Full) 상태가 되면 지금까지의 사상정보가 누적 반영된 사상테이블을 메모리장치(10)에 기록하게 된다.As described above, the
따라서, 본 발명에 따른 메모리제어장치는, 사상정보를 기록하는데 필요한 기록 량이 최소화하고, 호스트의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장하는 효과를 도출할 수 있다.Therefore, the memory control apparatus according to the present invention can minimize the amount of writing required to record mapping information and ensure consistent write performance regardless of the workload pattern of the host.
이하에서는 도 3을 참조하여 본 발명의 바람직한 실시예에 따른 메모리제어장치의 동작 방법을 설명하도록 하겠다. 설명의 편의를 위해서, 도 1 및 도 2의 참조번호를 언급하여 설명하도록 하겠다.Hereinafter, a method of operating a memory control apparatus according to a preferred embodiment of the present invention will be described with reference to FIG. 3 . For convenience of description, reference numerals in FIGS. 1 and 2 will be referred to.
본 발명에 따른 메모리제어장치(100)의 동작 방법은, 사상테이블 복원이 필요한지 확인한다(S100).In the method of operating the
예컨대, 사상테이블 복원이 필요한 경우는, 본 발명이 적용된 스토리지 시스템의 전원이 종료(Off)된 후 다시 전원이 켜지는(On)되는 시점일 것이다.For example, when mapping table restoration is required, it may be a time when the power of the storage system to which the present invention is applied is turned on again after the power is turned off.
이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 사상테이블 복원 필요 시점 즉 전원이 다시 켜지는 시점이 아니면(S110 No), 호스트(200)로부터 쓰기명령이 수신되는지 판단한다(S110).Accordingly, in the method of operating the
본 발명에 따른 메모리제어장치(100)의 동작 방법은, 쓰기명령이 수신되면(S110 Yes), 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 지정된 로그영역에 순차적으로 기록한다(S120).In the method of operating the
본 발명에 따른 메모리제어장치(100)의 동작 방법은, S120단계에서 쓰기명령에 따른 데이터를 로그영역에 순차적으로 기록할 때마다, 기록한 데이터와 관련된 사상정보를 휘발성메모리(50)의 사상테이블에 반영한다(S130).In the operating method of the
한편, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S120단계에서 쓰기명령에 따른 데이터를 로그영역에 순차적으로 기록할 때마다, 기록한 데이터와 관련된 사상정보를 휘발성메모리(50)의 사상갱신버퍼에 저장한다(S140).Meanwhile, in the operating method of the
즉, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 호스트(200)로부터 쓰기명령이 수신되면 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 로그영역에 순차적으로 기록하며, 이에 따른 사상정보를 휘발성메모리(50)의 사상테이블에 반영할 뿐 아니라 휘발성메모리(50)의 사상갱신버퍼에도 저장하는 것이다.That is, in the method of operating the
한편, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 현재 지정된 로그영역이 풀(Full) 상태인지 여부를 지속적으로 확인하면서(S150), 전술의 S110단계 내지 S140단계를 반복하다가, 로그영역이 풀(Full) 상태가 되면(S150 Yes), 사상갱신버퍼에 누적 저장된 사상정보를 메모리장치(10) 내 사상갱신저장공간에 기록한다(S160).On the other hand, in the method of operating the
이렇게 되면, 사상갱신버퍼에 누적 저장되어 있던 사상정보 즉 현재 지정된 로그영역의 모든 사상정보가, 비휘발성메모리인 메모리장치(10) 내 사상갱신저장공간에 기록되기 때문에, 본 발명이 적용된 스토리지 시스템의 전원이 종료된 후에도 현재 지정된 로그영역에 대한 사상정보가 메모리장치(10)의 사상갱신저장공간으로부터 복원될 수 있게 된다.In this case, since the mapping information accumulated in the mapping update buffer, that is, all mapping information in the currently designated log area, is recorded in the mapping update storage space in the
그리고, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S160단계에서 사상갱신버퍼에 누적 저장된 사상정보가 메모리장치(10)의 사상갱신저장공간에 기록되면, 데이터저장공간에서 로그영역을 재 지정함으로써, 로그영역을 전진할 수 있다(S170).And, in the operation method of the
이때, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S160단계에서 사상갱신버퍼에 누적 저장된 사상정보가 메모리장치(10)의 사상갱신저장공간에 기록되면, 사상갱신저장공간이 풀(Full) 상태인지 여부를 확인한다(S180).At this time, in the operating method of the
본 발명에 따른 메모리제어장치(100)의 동작 방법은, 사상갱신저장공간이 풀(Full) 상태가 아닌 경우(S180 No), 전술의 S110단계 이후를 반복 수행하여, 쓰기명령에 따른 데이터를 메모리장치(10) 내 데이터저장공간의 지정된 로그영역에 순차적으로 기록할 것이고, 기록한 데이터와 관련된 사상정보를 휘발성메모리(50)의 사상테이블에 반영하고 휘발성메모리(50)의 사상갱신버퍼에 저장할 것이며, 현재 지정된 로그영역이 풀(Full) 상태가 되면 사상갱신버퍼에 누적 저장된 사상정보를 메모리장치(10) 내 사상갱신저장공간에 기록할 것이다.In the method of operating the
한편, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 사상갱신저장공간이 풀(Full) 상태가 되면(S180 Yes), 지금까지 사상정보가 누적 반영된 사상테이블을 메모리장치(10) 내 사상테이블저장공간에 기록하고, 최신의 사상테이블을 사상테이블저장공간에 기록함에 따라 사상갱신저장공간의 사상정보는 더 이상 필요가 없기 때문에 사상갱신저장공간을 회수하여 재 활용할 수 있다(S190).On the other hand, in the method of operating the
이렇게 되면, 사상테이블에 누적 반영되어 있던 사상정보 즉 현재 지정된 로그영역까지 전진된 과거의 로그영역들(상기 지정된 로그영역 및 적어도 하나의 상기 재 지정한 로그영역)의 모든 사상정보가, 비휘발성메모리인 메모리장치(10) 내 사상테이블저장공간에 테이블 형태로 기록되기 때문에, 본 발명이 적용된 스토리지 시스템의 전원이 종료된 후에도 현재 지정된 로그영역까지 전진된 과거의 로그영역들에 대한 사상정보가 메모리장치(10)의 사상테이블저장공간으로부터 복원될 수 있게 된다.In this case, the mapping information accumulated and reflected in the mapping table, that is, all mapping information of the past log areas (the designated log area and at least one of the re-designated log areas) advanced up to the currently designated log area, becomes the non-volatile memory. Since the mapping table storage space in the
본 발명에 따른 메모리제어장치(100)의 동작 방법은, 본 발명이 적용된 스토리지 시스템의 전원이 종로(Off)되지 않는 한(S200 No), 전술의 S110단계 이후를 반복 수행할 것이다.In the method of operating the
한편, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 사상테이블 복원 필요 시점 즉 전원이 다시 켜지는 시점이면(S110 Yes), 비휘발성메모리인 메모리장치(10) 내 사상테이블저장공간으로부터 가장 최근에 기록된 사상테이블을 리드(read)한다(S210).On the other hand, in the method of operating the
그리고, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 메모리장치(10) 내 사상갱신저장공간으로부터 사상정보를 리드함으로써, 전술의 리드한 사상테이블에 반영되어 있지 못한 사상정보를 얻을 수 있다(S220). In the method of operating the
또한, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 사상테이블 복원 필요 시점에 지정되어 있는 메모리장치(10) 내 데이터저장공간의 로그영역을 리드하여 사상정보를 복원함으로써, 전술의 사상갱신저장공간에 저장되어 있지 못한 사상정보를 복원할 수 있다(S230).Further, in the method of operating the
이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 메모리장치(10) 내 사상갱신저장공간으로부터 리드하여 얻은 사상정보 및 로그영역을 리드하여 복원한 사상정보를, S210단계에서 리드한 사상테이블에 반영하여, 최신의 사상테이블을 복원할 수 있게 된다(S240).Accordingly, in the method of operating the
이상에서 설명한 바와 같이, 본 발명에 따른 메모리제어장치의 동작 방법은, 사상정보를 기록하는데 필요한 기록 량이 최소화하고, 호스트의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장하는 효과를 도출할 수 있다.As described above, the method of operating the memory control device according to the present invention can have the effect of minimizing the amount of writing required to record mapping information and guaranteeing consistent write performance regardless of the workload pattern of the host. .
본 발명의 일실시예에 따른 메모리제어장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method of operating a memory control apparatus according to an embodiment of the present invention may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.Although the present invention has been described in detail with reference to preferred embodiments so far, the present invention is not limited to the above-described embodiments, and without departing from the gist of the present invention as claimed in the following claims, the technical field to which the present invention pertains It will be said that the technical idea of the present invention extends to the extent that any person with ordinary skill in the art can make various changes or modifications.
본 발명에 따른 메모리제어장치 및 메모리제어장치의 동작 방법에 따르면 사상테이블 관리가 수반되는 메모리장치를 채용함에 있어서, 사상정보의 기록 량을 최소화하고 호스트의 워크로드 패턴과 상관없이 일관성 있는 쓰기 성능을 보장할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.According to the memory control device and the method of operation of the memory control device according to the present invention, in employing a memory device accompanied by mapping table management, the amount of mapping information is minimized and consistent write performance is achieved regardless of the workload pattern of the host. In the sense that it can be guaranteed, as it goes beyond the limits of the existing technology, the possibility of marketing or business of the applied device, not just the use of the related technology, is sufficient, and industrial applicability is low because it can be clearly implemented in reality. there is an invention
10 : 메모리장치
50 : 휘발성메모리
100 : 메모리제어장치
110 : 데이터제어부 120 : 사상테이블제어부
130 : 사상갱신제어부
200 : 호스트10: memory device
50: volatile memory
100: memory control device
110: data control unit 120: mapping table control unit
130: event update control unit
200 : host
Claims (9)
상기 데이터의 기록과 관련된 사상정보를 사상테이블에 반영하는 사상테이블제어부; 및
상기 데이터의 기록과 관련된 사상정보를 사상갱신버퍼에 저장하고, 상기 로그영역이 풀(Full) 상태가 되면 상기 사상갱신버퍼에 누적 저장된 사상정보를 상기 메모리장치 내 사상갱신저장공간에 기록하여, 상기 로그영역에 대한 사상정보가 상기 사상갱신저장공간으로부터 복원될 수 있도록 하는 사상갱신제어부를 포함하며;
상기 사상테이블제어부는,
상기 로그영역이 풀(Full) 상태가 되는 것과 무관하게 상기 사상갱신저장공간이 풀(Full) 상태가 되면, 상기 사상갱신저장공간의 사상정보가 누적 반영된 사상테이블을 상기 메모리장치 내 사상테이블저장공간에 기록하여, 상기 지정된 로그영역 및 적어도 하나의 재 지정한 로그영역에 대한 사상정보가 상기 사상테이블저장공간으로부터 복원될 수 있도록 하는 것을 특징으로 하는 메모리제어장치.a data control unit for writing data according to a write command to a designated log area of a data storage space in the memory device;
a mapping table control unit for reflecting mapping information related to the recording of the data to a mapping table; and
The mapping information related to the recording of the data is stored in the mapping update buffer, and when the log area becomes full, the mapping information accumulated in the mapping update buffer is recorded in the mapping update storage space in the memory device, and a mapping update control unit for allowing mapping information for the log area to be restored from the mapping update storage space;
The mapping table control unit,
When the mapping update storage space is in the full state regardless of whether the log area is in the full state, the mapping table in which the mapping information of the mapping update storage space is accumulated is stored in the mapping table storage space in the memory device. The memory control apparatus according to claim 1, wherein the mapping information for the designated log area and at least one re-designated log area can be restored from the mapping table storage space by writing to the .
상기 데이터제어부는,
상기 사상갱신버퍼에 누적 저장된 사상정보가 상기 사상갱신저장공간에 기록되면, 상기 데이터저장공간에서 로그영역을 재 지정하는 것을 특징으로 하는 메모리제어장치.The method of claim 1,
The data control unit,
and re-designating a log area in the data storage space when the mapping information accumulated in the mapping update buffer is recorded in the mapping update storage space.
상기 사상갱신버퍼에 저장되는 사상정보는,
상기 쓰기명령과 관련된 논리주소 및 상기 쓰기명령에 따른 데이터를 기록한 상기 메모리장치의 물리주소를 포함하는 것을 특징으로 하는 메모리제어장치.The method of claim 1,
The mapping information stored in the mapping update buffer is
and a logical address related to the write command and a physical address of the memory device in which data according to the write command is written.
상기 사상테이블제어부는,
사상테이블 복원 필요 시, 상기 사상테이블저장공간으로부터 가장 최근에 기록된 사상테이블을 리드(read)하고,
상기 사상갱신저장공간에 저장된 사상정보 및 상기 사상테이블 복원 필요 시점에 지정되어 있는 상기 데이터저장공간의 로그영역을 리드하여 복원한 사상정보를 상기 리드한 사상테이블에 반영하여, 최신의 사상테이블을 복원하는 것을 특징으로 하는 메모리제어장치.The method of claim 1,
The mapping table control unit,
When it is necessary to restore the mapping table, read the most recently recorded mapping table from the mapping table storage space;
The mapping information stored in the mapping update storage space and the mapping information restored by reading the log area of the data storage space designated when the mapping table restoration is required are reflected in the read mapping table to restore the latest mapping table. A memory control device, characterized in that.
상기 데이터의 기록과 관련된 사상정보를 사상테이블에 반영하는 사상테이블반영단계;
상기 데이터의 기록과 관련된 사상정보를 사상갱신버퍼에 저장하는 사상갱신버퍼저장단계; 및
상기 로그영역이 풀(Full) 상태가 되면 상기 사상갱신버퍼에 누적 저장된 사상정보를 상기 메모리장치 내 사상갱신저장공간에 기록하여, 상기 로그영역에 대한 사상정보가 상기 사상갱신저장공간으로부터 복원될 수 있도록 하는 사상갱신저장공간기록단계;
상기 로그영역이 풀(Full) 상태가 되는 것과 무관하게 상기 사상갱신저장공간이 풀(Full) 상태가 되면, 상기 사상갱신저장공간의 사상정보가 누적 반영된 사상테이블을 상기 메모리장치 내 사상테이블저장공간에 기록하여, 상기 지정된 로그영역 및 적어도 하나의 재 지정한 로그영역에 대한 사상정보가 상기 사상테이블저장공간으로부터 복원될 수 있도록 하는 단계를 포함하는 것을 특징으로 하는 메모리제어장치의 동작 방법.a data writing step of writing data according to a write command to a designated log area of a data storage space in a memory device;
a mapping table reflection step of reflecting mapping information related to the recording of the data in a mapping table;
a mapping update buffer storage step of storing mapping information related to the recording of the data in a mapping update buffer; and
When the log area becomes full, the mapping information accumulated in the mapping update buffer is recorded in the mapping update storage space in the memory device, and the mapping information for the log area can be restored from the mapping update storage space. Map update storage space recording step to ensure;
When the mapping update storage space is in the full state regardless of whether the log area is in the full state, the mapping table in which the mapping information of the mapping update storage space is accumulated is stored in the mapping table storage space in the memory device and recording the mapping information for the designated log area and at least one re-designated log area to be restored from the mapping table storage space.
상기 사상갱신버퍼에 누적 저장된 사상정보가 상기 사상갱신저장공간에 기록되면, 상기 데이터저장공간에서 로그영역을 재 지정하는 단계를 더 포함하는 것을 특징으로 하는 메모리제어장치의 동작 방법.7. The method of claim 6,
and re-designating a log area in the data storage space when the mapping information accumulated and stored in the mapping update buffer is recorded in the mapping update storage space.
사상테이블 복원 필요 시, 상기 사상테이블저장공간으로부터 가장 최근에 기록된 사상테이블을 리드(read)하는 단계; 및
상기 사상갱신저장공간에 저장된 사상정보 및 상기 사상테이블 복원 필요 시점에 지정되어 있는 상기 데이터저장공간의 로그영역을 리드하여 복원한 사상정보를 상기 리드한 사상테이블에 반영하여, 최신의 사상테이블을 복원하는 단계를 더 포함하는 것을 특징으로 하는 메모리제어장치의 동작 방법.7. The method of claim 6,
reading the most recently recorded mapping table from the mapping table storage space when it is necessary to restore the mapping table; and
The mapping information stored in the mapping update storage space and the mapping information restored by reading the log area of the data storage space designated when the mapping table restoration is required are reflected in the read mapping table to restore the latest mapping table. Method of operating a memory control device, characterized in that it further comprises the step of.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150001875A KR102263800B1 (en) | 2015-01-07 | 2015-01-07 | Memory management apparatus and control method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150001875A KR102263800B1 (en) | 2015-01-07 | 2015-01-07 | Memory management apparatus and control method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160085035A KR20160085035A (en) | 2016-07-15 |
KR102263800B1 true KR102263800B1 (en) | 2021-06-10 |
Family
ID=56505950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150001875A KR102263800B1 (en) | 2015-01-07 | 2015-01-07 | Memory management apparatus and control method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102263800B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100885181B1 (en) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | Memory system performing group mapping operation and address mapping method thereof |
KR100907477B1 (en) * | 2007-07-16 | 2009-07-10 | 한양대학교 산학협력단 | Apparatus and method for managing index of data stored in flash memory |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101301828B1 (en) * | 2011-09-29 | 2013-08-29 | 한양대학교 산학협력단 | Method and apparatus for power-off recovery in flash memory-based solid state drive |
-
2015
- 2015-01-07 KR KR1020150001875A patent/KR102263800B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100885181B1 (en) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | Memory system performing group mapping operation and address mapping method thereof |
KR100907477B1 (en) * | 2007-07-16 | 2009-07-10 | 한양대학교 산학협력단 | Apparatus and method for managing index of data stored in flash memory |
Also Published As
Publication number | Publication date |
---|---|
KR20160085035A (en) | 2016-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10606761B2 (en) | Method for accessing flash memory module and associated flash memory controller and electronic device | |
KR100578143B1 (en) | Storage system with scheme capable of invalidating data stored in buffer memory and computing system including the same | |
KR101473344B1 (en) | Apparatus using flash memory as storage and operation method for the same | |
US8694984B2 (en) | Memory apparatus and method of updating firmware of the memory apparatus | |
JP5351046B2 (en) | Method and system for facilitating fast startup of a flash memory system | |
JP5570406B2 (en) | Memory controller and data recording apparatus | |
US10929303B2 (en) | Data storage device utilizing virtual blocks to improve performance and data storage method thereof | |
US20080301393A1 (en) | Apparatus and method of processing data of non-volatile memory | |
US20110035543A1 (en) | Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive | |
JP2017204037A (en) | Information processor, duplication elimination program, and duplication elimination method | |
US20110153918A1 (en) | Data writing method and data storage device | |
US9047923B1 (en) | Fast shingled tracks recording | |
KR20080045833A (en) | Method of controlling flash memory and flash memory system using the same | |
KR20190045121A (en) | Method and apparatus for managing data of non-volatile memory in hybrid main memory system | |
US20200167235A1 (en) | Data processing method for solid state drive | |
US20160124650A1 (en) | Data Storage Device and Flash Memory Control Method | |
US9886399B2 (en) | Storage control device, storage device, information processing system, and storage control method therefor | |
JP2009116465A (en) | Storage device and memory control method | |
KR100995546B1 (en) | Database system based on hybrid storage device nand flash memory and non-volatile ram, and method of updating data in the database system | |
JP6988445B2 (en) | Storage system, control device and control method | |
KR102263800B1 (en) | Memory management apparatus and control method thereof | |
KR100939814B1 (en) | Method of managing and writing log file for flash memory | |
CN113986126B (en) | TCG data deleting method and device based on solid state disk and computer equipment | |
JP2010039509A (en) | Storage device and data write control method | |
JP2012203437A (en) | Storage device, method and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |