KR20190075315A - Method for storing and recovering of high speed data on memory and memory for performing the same - Google Patents

Method for storing and recovering of high speed data on memory and memory for performing the same Download PDF

Info

Publication number
KR20190075315A
KR20190075315A KR1020170176803A KR20170176803A KR20190075315A KR 20190075315 A KR20190075315 A KR 20190075315A KR 1020170176803 A KR1020170176803 A KR 1020170176803A KR 20170176803 A KR20170176803 A KR 20170176803A KR 20190075315 A KR20190075315 A KR 20190075315A
Authority
KR
South Korea
Prior art keywords
dram
data
dual
controller
page
Prior art date
Application number
KR1020170176803A
Other languages
Korean (ko)
Other versions
KR102065033B1 (en
Inventor
고동범
Original Assignee
에스앤즈 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스앤즈 주식회사 filed Critical 에스앤즈 주식회사
Priority to KR1020170176803A priority Critical patent/KR102065033B1/en
Publication of KR20190075315A publication Critical patent/KR20190075315A/en
Application granted granted Critical
Publication of KR102065033B1 publication Critical patent/KR102065033B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Disclosed are a method for storing and recovering high speed data in a memory and a memory for performing the same. A structure of a hybrid memory using a dual-port DRAM comprises: a dual-port DRAM used as data cache for storing activated data and table control information; and a flash memory used as an inactive area for safely storing data. The dual-port DRAM may eliminate access conflicts between an external interface controller and an internal control controller.

Description

메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리{Method for storing and recovering of high speed data on memory and memory for performing the same}[0001] The present invention relates to a method for storing and restoring high-speed data on a memory and a memory for performing such a method,

본 발명은 메모리의 데이터 처리 방법에 관한 것으로서, 보다 상세하게는 메모리 상에서 고속 데이터의 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method of processing data in a memory, and more particularly, to a method of storing and restoring high-speed data on a memory and a memory performing the method.

플래시 메모리는 저장 매체로 비휘발성을 특징으로 가지고 있으나, 데이터 쓰기에는 속도의 한계를 보이고 있다. 또한, 플래시 메모리는 데이터 쓰기 동작을 반복해서 수행할 경우, 쓰기 횟수에 제한적인 한계를 가지고 있다. 디램(dynamic random access memory, DRAM)은 데이터 처리와 고속화에 장점을 가지나 휘발성 특성으로 비활성화하기 위해서는 특수한 제반 설비가 필요하다는 단점을 가지고 있다.Flash memory is nonvolatile as a storage medium, but its speed is limited by data writing. In addition, the flash memory has a limited limitation on the number of times of writing when the data writing operation is repeatedly performed. Dynamic random access memory (DRAM) has advantages in data processing and high speed, but it has disadvantages in that it requires special facilities in order to disable the volatile characteristics.

종래에 디램(DRAM) 및 플래시 메모리 기반의 반도체 메모리 디스크와 스토리지는 디램을 관리 테이블에 대한 저장 수단 및 플래시 메모리의 내용을 외부 인터페이스에 전달하기 위한 단순한 데이터 버퍼로서 사용하였다. Traditionally, DRAM and flash memory based semiconductor memory disks and storage have used DRAM as a storage means for management tables and as a simple data buffer for transferring the contents of a flash memory to an external interface.

이 방법은 적은 용량의 디램을 사용할 수는 있으나 전체적인 성능은 플래시 메모리의 읽기/쓰기 속도가 좌우하게 된다. 또한 플래시 메모리를 기반으로 하는 반도체 메모리 디스크는 쓰기 횟수 한계와 속도 한계를 가지고 있다. 쓰기 동작을 할 경우 해당 블록에 데이터를 삭제하고 다시 써넣은 작업을 하게 되며 쓰기 동작 시 해당 블록에 높은 전압을 일정 시간 부가하게 되어 반복적인 쓰기 작업을 할 경우, 누설 전류로 인한 불량 발생으로 블록 전체를 사용하지 못하게 된다. 이러한 경우, 직접적인 데이터 입력 작업이 연속적으로 이뤄지는 서버 환경에서 안정성 문제가 있다. This method can use a small amount of DRAM, but the overall performance depends on the read / write speed of the flash memory. In addition, flash memory-based semiconductor memory disks have write speed limit and speed limit. In case of write operation, the data is deleted and rewritten to the corresponding block. In case of repeated writing operation due to high voltage added to the block during write operation, defective due to leakage current, Will be disabled. In this case, there is a stability problem in a server environment in which direct data entry is performed continuously.

KR 10-2007-0106069KR 10-2007-0106069

본 발명의 일 측면은 메모리 상에서 고속 데이터 저장 및 복원 방법을 제공한다.One aspect of the present invention provides a method for storing and restoring high-speed data on a memory.

본 발명의 다른 측면은 고속 데이터 저장 및 복원 방법을 수행하는 메모리를 제공한다.Another aspect of the present invention provides a memory for performing a high speed data storage and recovery method.

본 발명의 일 측면에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 활성화된 데이터 및 테이블 제어 정보의 저장을 위한 데이터 캐쉬로 사용되는 듀얼-포트 디램(DRAM)와 데이터를 안정적으로 보관하기 위한 비활성 영역으로 사용되는 플래시 메모리를 포함할 수 있되, 상기 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없앨 수 있다. A hybrid memory structure using a dual-port DRAM according to one aspect of the present invention includes a dual-port DRAM (DRAM) used as a data cache for storing activated data and table control information, and a non-active area The dual-port DRAM can eliminate access conflicts between the external interface controller and the internal control controller.

한편, 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 상기 듀얼-포트 디램을 관리하기 위한 디램 컨트롤러, 상기 플래시 메모리를 관리하기 위한 플래시 컨트롤러, 상기 듀얼-포트 디램의 데이터를 쓰기 및/또는 백업 또는 읽기 및/또는 복원하기 위한 백업/복원 컨트롤러와 상기 외부 인터페이스 컨트롤러로부터 읽기 및 쓰기와 관련된 제어 신호와 외부 상태 변화에 따른 신호를 수신하고, 상기 디램 컨트롤러와 백업/복원 컨트롤러 및 상기 플래시 컨트롤러를 제어하며, 동작 상태에 따라 상기 외부 인터페이스 컨트롤러의 신호를 받아 디램 컨트롤러 또는 플래시 컨트롤러를 통해서 데이터를 읽어 상기 외부 인터페이스 컨트롤러 전달하거나 상기 외부 인터페이스 컨트롤러를 통해 들어오는 데이터를 상기 듀얼-포트 디램 또는 상기 플래시 메모리에 쓰도록 제어하는 동작을 수행하도록 구현되는 I/O 컨트롤러를 더 포함할 수 있다.The hybrid memory structure using the dual-port DRAM includes a DRAM controller for managing the dual-port DRAM, a flash controller for managing the flash memory, and a controller for writing and / or backing up or reading data of the dual- A backup / restoration controller for restoring the backup / restore controller and the flash controller, and a control signal related to reading and writing from the external interface controller and a signal corresponding to an external state change, and controlling the DRAM controller, the backup / Receives the signal of the external interface controller according to the status, reads the data through the DRAM controller or the flash controller and transfers the data to the external interface controller or transmits the data coming in through the external interface controller to the dual- And an I / O controller which is implemented to perform an operation of controlling to write to the I / O controller.

또한, 상기 쓰기/백업 컨트롤러는 전원 차단시 변경된 상기 듀얼-포트 디램의 데이터를 상기 플래시 메모리에 백업하거나 상기 I/O 컨트롤러로부터 쓰기 명령이 제어 신호로 들어왔을 때 쓰기 데이터가 저장되는 상기 듀얼-포트 디램에서 미스가 발생했을 경우 데이터 블록이 수정된 상태이면 상기 데이터 블록을 플래시 메모리에 백업할 수 있다.Also, the write / backup controller may back up the data of the dual-port DRAM changed when the power is turned off to the flash memory, or when the write command from the I / O controller enters the control signal, If a miss occurs in the DRAM, the data block can be backed up in the flash memory if the data block is modified.

또한, 상기 하이브리드 메모리 구조는 상기 데이터 읽기 명령의 존재하는지 여부를 판단하고, 상기 데이터 읽기 명령이 존재하는 경우, 상기 데이터 읽기 명령을 상기 외부 인터페이스 컨트롤러로부터 상기 I/O 컨트롤러로 전달하고, 상기 하이브리드 메모리 구조는 상기 I/O 컨트롤러로부터 상기 디램 컨트롤러에 상기 데이터 읽기 명령을 보내 상기 듀얼-포트 디램에서 논리적 주소와 일치하는 데이터를 읽어오거나 상기 플래시 메모리에서 데이터를 읽어오고 상기 듀얼-포트 디램을 업데이트하고, 상기 하이브리드 메모리 구조는 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생된 경우, 상기 듀얼-포트 디램의 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단하고, 상기 하이브리드 메모리 구조는 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정되었다면 수정된 디램 페이지를 상기 플래시 메모리에 백업하고, 상기 하이브리드 메모리 구조는 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 상기 플래시 메모리 상의 데이터를 전송하고, 상기 하이브리드 메모리 구조는 상기 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생되지 않은 경우, 상기 듀얼-포트 디램 상의 데이터를 전송할 수 있다.In addition, the hybrid memory structure may determine whether the data read command exists, and when the data read command exists, transfer the data read command from the external interface controller to the I / O controller, Wherein the structure is configured to send the data read command to the DRAM controller from the I / O controller to read data from the dual-port DRAM in accordance with a logical address, to read data from the flash memory, to update the dual- Wherein the hybrid memory structure determines whether an existing page has been modified when updating the dual-port DRAM based on a determination as to whether a dyram miss has occurred, The dual- Wherein when the existing page is modified at the time of updating the dual DRAM, the modified DRAM backs up the modified DRAM page to the flash memory, and when the existing page is not modified at the time of updating the dual-port DRAM, And the hybrid memory structure may transmit data on the dual-port DRAM if the diramis miss is not generated based on a determination as to whether the diramis error has occurred.

또한, 상기 하이브리드 메모리 구조는 전원 플래그(flag)가 0인지 여부를 판단하고 상기 전원 플래그가 0인 경우, 데이터에 대한 백업을 수행하고, 상기 하이브리드 메모리 구조는 상기 전원 플래그가 0인 경우, 상기 듀얼-포트 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고 상기 듀얼-포트 디램으로부터 상기 플래시 메모리로 백업을 수행하고, 상기 하이브리드 메모리 구조는 상기 백업 카운터에 대한 카운팅을 기반으로 상기 백업 카운터가 0인 경우, 백업 플래그를 0으로 설정하고, 상기 하이브리드 메모리 구조는 상기 전원 플래그가 0이 아닌 경우, 데이터 쓰기 명령에 대한 판단을 수행하고, 상기 데이터 쓰기 명령이 있다면, 상기 디램 미스의 발생 여부를 판단하고, 상기 하이브리드 메모리 구조는 상기 데이터 쓰기 명령이 상기 외부 인터페이스 컨트롤러에서 상기 I/O 컨트롤러로 전달되면 상기 듀얼-포트 디램에 해당 페이지가 있는지 여부를 조사하여 상기 디램 미스 발생 여부를 판단하고, 상기 하이브리드 메모리 구조는 디램 히트면 상기 듀얼-포트 디램에 쓰기를 수행하고, 상기 디램 미스인 경우, 디램 페이지의 수정 여부를 판단하여, 상기 디램 페이지가 수정되지 않은 경우, 상기 플래시 메모리로부터 해당 페이지를 읽고 상기 듀얼-포트 디램을 업데이트하여 디램 라이트(write)수행하고, 상기 디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행하고, 상기 하이브리드 메모리 구조는 로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 상기 로그 버퍼가 풀인 경우, 상기 로그 버퍼와 데이터 버퍼를 머지하고, 로그 버퍼 컴프레션을 수행할 수 있다.In addition, the hybrid memory structure may determine whether a power flag is 0, perform backup of data when the power flag is 0, and if the power flag is 0, Setting a modified portion of the port DRAM and a number of pages in the management table area as a backup counter value and performing a backup from the dual port DRAM to the flash memory and the hybrid memory structure based on the counting for the backup counter The backup flag is set to 0 when the backup counter is 0, and the hybrid memory structure performs a judgment on a data write command when the power flag is not 0, and if there is the data write command, , And the hybrid memory structure determines whether the data When the write command is transmitted from the external interface controller to the I / O controller, whether or not the corresponding page is present in the dual-ported DRAM is determined, and the hybrid memory structure determines whether the dual- And if the dummy page has not been modified, reads the corresponding page from the flash memory to update the dual-port diram, and if the diram page is not modified, and when the DRAM page is modified, performing a log buffer write using the information in the log buffer management table. The hybrid memory structure determines whether the log buffer is in a full state, When the log buffer is full, the log buffer and the data buffer are merged, and the log buffer It may perform compression.

본 발명의 또 다른 측면에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은 듀얼-포트 디램(DRAM)이 데이터 캐쉬로 사용되어 활성화된 데이터 및 테이블 제어 정보의 저장하는 단계, 플래시 메모리가 비활성 영역으로 사용되어 데이터를 안정적으로 보관하는 단계를 포함할 수 있되, 상기 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없앨 수 있다.According to another aspect of the present invention, there is provided a method of operating a hybrid memory using a dual-port DRAM, including the steps of storing data and table control information that is used by a dual-port DRAM as a data cache, The dual-port DRAM can eliminate the access conflict between the external interface controller and the internal control controller.

한편, 듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은 상기 하이브리드 메모리 구조가 상기 데이터 읽기 명령을 외부 인터페이스 컨트롤러로부터 I/O 컨트롤러로 전달하는 단계, 상기 하이브리드 메모리 구조가 상기 I/O 컨트롤러로부터 디램 컨트롤러에 상기 데이터 읽기 명령을 보내 상기 듀얼-포트 디램에서 논리적 주소와 일치하는 데이터를 읽어오거나 상기 플래시 메모리에서 데이터를 읽어오고 상기 듀얼-포트 디램을 업데이트하는 단계, 상기 하이브리드 메모리 구조가 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생된 경우, 상기 듀얼-포트 디램의 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단하는 단계, 상기 하이브리드 메모리 구조가 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정되었다면 수정된 디램 페이지를 상기 플래시 메모리에 백업하는 단계, 상기 하이브리드 메모리 구조가 상기 듀얼 포트 디램의 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 상기 플래시 메모리 상의 데이터를 전송하는 단계와 상기 하이브리드 메모리 구조가 상기 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생되지 않은 경우, 상기 듀얼-포트 디램 상의 데이터를 전송하는 단계를 포함할 수 있다.The method for operating the hybrid memory using the dual-port DRAM includes the steps of transferring the data read command from the external interface controller to the I / O controller, the hybrid memory structure transferring the data read command from the I / Reading the data corresponding to the logical address from the dual-port DRAM by reading the data from the flash memory, and updating the dual-port DRAM by sending the data read command to the dual-port DRAM, Determining whether an existing page has been modified when the dual-port DRAM is updated when the dual-port DRAM is generated based on a determination as to whether the dual-port DRAM is updated; Page Backing up the modified DRAM page to the flash memory, if the existing page is not modified at the time of updating the dual port DRAM, transmitting the data on the flash memory, And transmitting the data on the dual-port DRAM if the diramis is not generated based on a determination as to whether or not the diramis is generated.

또한, 듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은 상기 하이브리드 메모리 구조가 전원 플래그(flag)가 0인지 여부를 판단하고 상기 전원 플래그가 0인 경우, 데이터에 대한 백업을 수행하는 단계, 상기 하이브리드 메모리 구조가 상기 전원 플래그가 0인 경우, 상기 듀얼-포트 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고 상기 듀얼-포트 디램으로부터 상기 플래시 메모리로 백업을 수행하는 단계, 상기 하이브리드 메모리 구조가 상기 백업 카운터에 대한 카운팅을 기반으로 상기 백업 카운터가 0인 경우, 백업 플래그를 0으로 설정하는 단계, 상기 하이브리드 메모리 구조가 상기 전원 플래그가 0이 아닌 경우, 데이터 쓰기 명령에 대한 판단을 수행하고, 상기 데이터 쓰기 명령이 있다면, 상기 디램 미스의 발생 여부를 판단하는 단계, 상기 하이브리드 메모리 구조가 상기 데이터 쓰기 명령이 상기 외부 인터페이스 컨트롤러에서 상기 I/O 컨트롤러로 전달되면 상기 듀얼-포트 디램에 해당 페이지가 있는지 여부를 조사하여 상기 디램 미스 발생 여부를 판단하는 단계와 상기 하이브리드 메모리 구조가 디램 히트면 상기 듀얼-포트 디램에 쓰기를 수행하고, 상기 디램 미스인 경우, 디램 페이지의 수정 여부를 판단하여, 상기 디램 페이지가 수정되지 않은 경우, 상기 플래시 메모리로부터 해당 페이지를 읽고 상기 듀얼-포트 디램을 업데이트하여 디램 라이트(write)수행하고, 상기 디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행하는 단계를 더 포함할 수 있다.Also, a method of operating a hybrid memory using a dual-port DRAM may include the steps of: determining whether a power flag is 0 in the hybrid memory structure; performing backup of data when the power flag is 0; Setting a modified part of the dual port DRAM and a page number of a management table area as a backup counter value and performing a backup from the dual port DRAM to the flash memory when the power flag is 0, Setting the backup flag to 0 if the backup counter is 0 based on counting for the backup counter; if the power flag is not 0, And if there is the data write command, Determining whether a page exists in the dual-port DRAM when the data write command is transmitted from the external interface controller to the I / O controller; And if the hybrid memory structure is a DRAM hit, writing to the dual-ported DRAM is performed. If the hybrid memory structure is not the DYRAM miss, it is determined whether the DRAM page is modified. If the DRAM page is not modified, Reading the corresponding page from the flash memory, updating the dual-port DRAM to perform a DRAM write operation, and, when the DRAM page is modified, performing a log buffer write using the information in the log buffer management table can do.

또한, 듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은 상기 하이브리드 메모리 구조가 로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 상기 로그 버퍼가 풀인 경우, 상기 로그 버퍼와 데이터 버퍼를 머지하고, 로그 버퍼 컴프레션을 수행하는 단계를 더 포함할 수 있다.Also, a method of operating a hybrid memory using a dual-port DRAM may include determining whether the hybrid memory structure is full or not, merging the log buffer and the data buffer when the log buffer is full, And performing log buffer compression.

본 발명의 실시예에 따른 메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리는 디램과 플래시메모리를 같이 사용하여 하이브리드 형태의 반도체 메모리 디스크를 구성하여 메모리의 성능 향상이 이루어질 수 있다. 구체적으로 성능 향상을 위해 듀얼-포트(dual-port) 디램이 사용되고 디램 인터페이스를 사용하여 직접 외부 인터페이스와 데이터를 주고 받을 수 있다.The method and apparatus for storing and restoring high-speed data on a memory according to an embodiment of the present invention can improve performance of a memory by configuring a semiconductor memory disk of a hybrid type using a DRAM and a flash memory together. Specifically, a dual-port DRAM is used for performance improvement and data can be exchanged directly with an external interface using a DRAM interface.

또한, 플래시 메모리를 로그 버퍼와 데이터 버퍼로 분리하여 플래시 메모리의 쓰기 시간을 줄이는 방법을 사용하고 듀얼-포트 디램 인터페이스를 직접 사용하여 데이터를 제공하며 디램과 플래시메모리의 관리를 내부에서 직접 관리하는 방식으로 메모리의 성능 향상이 이루어질 수 있다.In addition, by using a method of reducing the write time of the flash memory by separating the flash memory into the log buffer and the data buffer, providing the data by using the dual-port DRAM interface directly, and managing the management of the DRAM and the flash memory directly The performance of the memory can be improved.

도 1 은 본 발명에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조를 나타낸 블록도이다.
도 2 는 본 발명의 실시예에 따른 낸드 데이터 블록(NAND Data Block) 및 관련 데이터 블록 매핑 테이블(Data Block Mapping Table)을 나타낸 개념도이다.
도 3은 본 발명의 실시예에 따른 NAND 로그 블록(Log Block) 및 관련 로그 페이지 풀(Log Page Pool) 및 로그 페이지 디스크립터(Log Page Descriptor)를 나타낸 개념도이다.
도 4 는 본 발명의 실시예에 따른 NAND 로그 블록(Log Block)의 컴프레션(Compression) 및 로그 페이지 디스크립터 카피(Log Page Descriptor Copy) 동작을 나타낸 개념도이다.
도 5 는 NAND 로그 블록과 NAND 데이터 블록의 머지(merge) 동작을 나타낸 개념도이다.
도 6은 본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서 데이터 읽기 방법을 나타낸 순서도이다.
도 7은 본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서 데이터 쓰기/백업 방법을 나타낸 순서도이다.
1 is a block diagram illustrating a hybrid memory structure using a dual-port DRAM according to the present invention.
2 is a conceptual diagram illustrating a NAND data block and a related data block mapping table according to an embodiment of the present invention.
3 is a conceptual diagram illustrating a NAND log block and a related log page pool and a log page descriptor according to an embodiment of the present invention.
4 is a conceptual diagram illustrating a compression of a NAND log block and a log page descriptor copy operation according to an embodiment of the present invention.
5 is a conceptual diagram illustrating a merge operation between a NAND log block and a NAND data block.
6 is a flowchart illustrating a method of reading data in a hybrid memory structure using a dual-port DRAM according to an embodiment of the present invention.
7 is a flowchart illustrating a method of writing / backing data in a hybrid memory structure using a dual-port DRAM according to an embodiment of the present invention.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조 부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.The following detailed description of the invention refers to the accompanying drawings, which illustrate, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.

이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the drawings.

본 발명의 실시예에 따른 듀얼 포트(dual-port) 디램(DRAM)을 사용한 하이브리드 메모리 구조에서는 디램(DRAM)과 플래시 메모리를 같이 사용하여 하이브리드 형태의 반도체 메모리디스크를 구성하는 방법이 개시된다. 구체적으로 성능 향상을 위해 디램을 읽기/쓰기의 주된 영역으로 사용하고 경우에 따라서 대용량의 디램을 플래시 메모리의 캐쉬로 사용할 수 있는 방법이 개시된다. 성능 향상을 위해 듀얼-포트 디램이 사용되고 디램 인터페이스를 기반으로 직접 외부 인터페이스와 데이터를 주고 받을 수 있다. 고속이기는 하나 고가의 디램이 캐쉬 형태로 쓰일 경우, 플래시 메모리에 비해 적은 용량이 사용될 수 있고 따라서 미스(miss)가 발생했을 경우 수정된 내용이 있으면 플래시 메모리에 쓰기 동작이 수행되어야 한다. 기존의 플래시 메모리는 같은 영역에 쓰기를 해야 할 경우, 시간이 많이 걸리는 블록 단위의 삭제(erase)가 수행된 이후, 쓰기 동작을 수행해야 한다. 따라서, 기본적으로 많은 시간이 걸린다.A hybrid memory structure using a dual-port DRAM according to an embodiment of the present invention discloses a method of configuring a hybrid type semiconductor memory disk by using a DRAM and a flash memory together. Specifically, a method is disclosed in which a DRAM is used as a main area of read / write for improving performance and a DRAM of a large capacity can be used as a cache of a flash memory in some cases. To improve performance, dual-port DRAM is used and data can be exchanged directly with the external interface based on the DRAM interface. If a high-speed DRAM is used in cache form, a smaller capacity than a flash memory can be used. Therefore, if there is a miss, a write operation to the flash memory must be performed. If a conventional flash memory needs to write to the same area, a write operation must be performed after a time-consuming block erase is performed. Therefore, it takes a lot of time basically.

본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서는 플래시 메모리를 로그 버퍼와 데이터 버퍼로 분리하여 플래시 메모리의 쓰기 시간이 감소될 수 있고, 듀얼 포트 디램 인터페이스를 통해 직접적으로 데이터가 제공되며 디램과 플래시 메모리의 관리가 내부에서 직접 수행될 수 있다. In the hybrid memory structure using the dual-port DRAM according to the embodiment of the present invention, the write time of the flash memory can be reduced by dividing the flash memory into the log buffer and the data buffer, and data can be directly provided through the dual port DRAM interface And management of the DRAM and the flash memory can be performed directly from the inside.

고속의 읽기 및 쓰기 문제를 해결하기 위하여 본 발명의 실시예에 따른 듀얼 포트 디램을 사용한 하이브리드 메모리 구조에서는 디램 인터페이스를 통하여 디램 및 플래시 메모리가 하이브리드로 조합되어 구성될 수 있다. 디램은 활성화된 데이터 및 테이블 제어 정보를 저장하는 공간으로 사용되고 플래시 메모리가 데이터를 안정적으로 보관하기 위한 비활성 영역으로 사용될 수 있다. 기존의 디램 인터페이스가 그대로 사용되면서 외부 인터페이스와의 충돌을 방지하기 위해 듀얼 포트 디램이 사용될 수 있다.In order to solve the problem of high speed reading and writing, a hybrid memory structure using a dual port DRAM according to an embodiment of the present invention can be configured by combining a DRAM and a flash memory through a DRAM interface in a hybrid manner. The DRAM is used as a space for storing active data and table control information, and the flash memory can be used as an inactive area for stably storing data. A dual-port DRAM can be used to prevent collision with an external interface while the existing DRAM interface is being used intact.

플래시 메모리에 대한 액세스를 최소화하기 위해 듀얼 포트 디램이 데이터 캐쉬로 사용될 수 있다. 디램 캐쉬 미스(miss)시 또는 전원 오프(off)시 쓰기/백업 컨트롤러를 통하여 수정된 디램 데이터가 플래시 메모리에 저장될 수 있다. 전원 온(on)시 또는 디램 캐쉬 미스시 새로운 데이터를 읽어 오는 경우, 읽기/복원 컨트롤러를 통하여 해당 데이터가 플래시 메모리에서 읽힐 수 있다. 플래시 컨트롤러는 플래시 메모리를 데이터 블록(data block)과 로그 블록(log block)으로 구분하여 관리할 수 있다. 또한, 플래시 컨트롤러는 데이터 블록의 매핑을 관리하는 데이터 블록 매핑 테이블(data block mapping table) 및 로그 블록에 시퀀셜(sequential)한 페이지 단위의 쓰기 및 읽기 동작을 수행할 수 있도록 하는 로그 페이지 풀(Log Page Pool)과 로그 페이지 디스크립터(Log Page Descriptor)를 가지고 플래시 메모리를 관리할 수 있다.A dual port DRAM can be used as a data cache to minimize access to flash memory. When the DRAM cache miss occurs or the power is turned off, the modified DRAM data can be stored in the flash memory via the write / backup controller. If new data is read when the power is turned on or a DRAM cache miss occurs, the corresponding data can be read from the flash memory via the read / restore controller. The flash controller can manage the flash memory by dividing it into a data block and a log block. In addition, the flash controller includes a data block mapping table for managing mapping of data blocks, and a log page pool for performing sequential page-by-page write and read operations in the log block. Pool) and a log page descriptor (log page descriptor).

또한 듀얼 포트 디램을 사용한 하이브리드 메모리 구조는 전원 온/오프(on/off) 감지 로직, 동작 상태를 확인 하기 위한 상태/제어 레지스터, 입출력 데이터의 처리와 모듈 동작 제어와 DMA(direct memory access)를 관장하는 I/O(input/output) 컨트롤러를 포함할 수 있다. In addition, the hybrid memory structure using dual port DRAM controls power on / off detection logic, status / control register to check operation status, I / O data processing, module operation control and direct memory access (DMA) / RTI > input / output < RTI ID = 0.0 > (I / O) < / RTI >

플래시 메모리의 페이지는 반드시 삭제(erase)를 수행한 후 프리(free) 상태일 때에만 쓰기를 할 수 있다. 데이터가 변경되면, 기존의 저장된 페이지에 중복되어 쓸 수 없고 페이지의 내용은 먼저 내부 데이터 버퍼로 복사된 후 데이터 버퍼에서 변경되어 또 다른 새로운 프리(free) 상태의 페이지에 기록될 수 있다. 이는 리드-모디파이-라이트(Read-Modify-Write)라는 용어로 표현될 수 있다. 즉, 데이터는 다른 페이지로 이동하지 않고 변경될 수 없어 인-플레이스 업데이트(in-place update)는 불가능할 수 있다. 이렇게 변경된 데이터가 새로운 페이지에 완전히 기록되면, 원본 페이지는 스테일(stale)로 표시되고 삭제(Erase)되기 전까지 그 상태로 남게 된다. 페이지는 덮어 쓰기가 불가능하기 때문에 한번 스테일 상태가 된 페이지는 반드시 삭제하는 작업을 거쳐서 프리(free) 상태로 전이되어야 한다. 그러나 삭제는 단일 페이지 단위로 처리될 수 없고, 페이지가 포함된 블록에 대해 통째로 수행되어야 하고 많은 시간을 필요로 한다. The page of the flash memory can be written only when it is in a free state after erasing it. If the data is changed, it can not be overwritten on the existing stored page, and the contents of the page may first be copied to the internal data buffer and then changed in the data buffer and written to another new free page. This can be expressed in terms of read-modify-write. That is, the data can not be changed without moving to another page, and in-place update may not be possible. When the changed data is completely written to the new page, the original page is displayed as stale and remains in that state until it is erased. Since pages can not be overwritten, pages that have become stale once must be deleted and then transferred to free state. However, deletion can not be performed on a single page basis, and it has to be performed entirely on the block containing the page and it takes a lot of time.

본 발명의 실시예에 따른 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서는 듀얼 포트 디램의 사용으로 충돌을 최대한 줄임으로써 성능이 향상되고, 디램을 주된 저정 영역으로 사용하기 때문에 플래시메모리 쓰기는 디램 미스가 발생한 경우 페이지의 내용이 수정된 상태이거나 전원이 차단 되어 디램의 내용을 플래시메모리로 백업하는 경우로 제한된다.In the hybrid memory structure using the dual-port DRAM according to the embodiment of the present invention, the performance is improved by minimizing the collision due to the use of the dual port DRAM, and since the DRAM is used as the main storage area, The content of the page is modified, or the contents of the DRAM are backed up to the flash memory because the power is interrupted.

플래시메모리의 데이터블록에 쓰기 전에 로그 블록에 시퀀셜(sequential)하게 임시적으로 쓰기가 수행될 수 있다. 또한 로그 블록 컴프레션(compression) 방법을 사용하여 로그 블록의 활용도를 최대화하여 데이터 블록과의 머지(merge) 작업이 최소화될 수 있다.A temporary write can be performed to the log block in a sequential manner before writing to the data block of the flash memory. In addition, the log block compression method can be used to maximize the utilization of the log block, so that the merge operation with the data block can be minimized.

이하, 본 발명의 실시예에서는 듀얼-포트 디램을 사용한 하이브리드 메모리가 구체적으로 개시된다.Hereinafter, a hybrid memory using a dual-port DRAM is specifically disclosed in the embodiment of the present invention.

도 1 은 본 발명에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조를 나타낸 블록도이다.1 is a block diagram illustrating a hybrid memory structure using a dual-port DRAM according to the present invention.

도 1을 참조하면, 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 디램 블록(120)과 플래시 블록(130)을 포함할 수 있다.Referring to FIG. 1, a hybrid memory structure using a dual-port DRAM may include a DRAM block 120 and a flash block 130.

또한, 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 각 메모리를 관리 하기 위한 디램 컨트롤러(102)와 플래시 컨트롤러(103), 디램의 데이터를 쓰기/백업 또는 읽기/복원하기 위한 백업/복원 컨트롤러(104)와 데이터 버퍼(106), 전원 온/오프(on/off) 감지 로직(101), 동작 상태를 확인하기 위한 상태/제어 레지스터(105), 입출력 데이터의 처리와 모듈 동작 제어와 DMA(direct memory access)를 관장하는 I/O(input/output) 컨트롤러(107)를 포함하는 내부 제어 컨트롤러(110)를 포함할 수 있다.The hybrid memory structure using the dual-port DRAM includes a DRAM controller 102 and a flash controller 103 for managing each memory, a backup / restore controller 104 for writing / backing up or reading / A data buffer 106, a power on / off detection logic 101, a status / control register 105 for checking the operation status, a processing module for controlling input / And an input / output (I / O) controller 107 for managing the input / output (I / O)

I/O 컨트롤러(107)는 외부 인터페이스 컨트롤러(200)로부터 읽기 및 쓰기와 관련된 제어 신호와 외부 상태 변화에 따른 신호를 수신하고 디램(DRAM) 컨트롤러(102)와 백업/복원 컨트롤러(104), 플래시 컨트롤러(103)를 제어할 수 있다.The I / O controller 107 receives a control signal related to reading and writing from the external interface controller 200 and a signal corresponding to the external state change, and controls the DRAM controller 102, the backup / restore controller 104, The controller 103 can be controlled.

또한, I/O 컨트롤러(107)는 동작 상태에 따라 인터페이스 컨트롤러(200)의 신호를 받아 디램 또는 플래시 컨트롤러(102)를 통해서 데이터를 읽어 인터페이스 컨트롤러(200)로 전달하거나 인터페이스 컨트롤러(200)를 통해 들어오는 데이터를 디램 또는 플래시메모리에 쓰도록 제어하는 동작을 수행할 수 있다.The I / O controller 107 receives the signal from the interface controller 200 according to the operation state, reads the data through the DRAM or the flash controller 102 and transfers the read data to the interface controller 200 or the interface controller 200 And to write the incoming data to the DRAM or flash memory.

듀얼-포트 디램을 사용한 하이브리드 메모리 구조의 관리를 위해서 내부적으로 디램과 플래시 메모리 사이에 백그라운드로 많은 동작이 수행될 수 있다.In order to manage the hybrid memory structure using the dual-port DRAM, a lot of operations can be performed in the background between the DRAM and the flash memory internally.

내부 동작과 인터페이스 컨트롤러(200)의 읽기 및 쓰기 요청시 디램 블록(120)에 대한 액세스 충돌이 발생할 수 있다. 도 1에서와 같이 디램 블록(120)을 듀얼-포트 디램으로 구성하여 충돌 없이 요청이 수행될 수 있다. 디램 블록(120)이 듀얼-포트로 구성되는 경우, 외부 디램 인터페이스 컨트롤러(200)와 내부 제어 컨트롤러(110) 간의 액세스 충돌이 없어질 수 있다. 또한 전원 온(on) 시 내부 제어 컨트롤러(110)의 복원 시작 시점이 외부 인터페이스 컨트롤러(200)의 읽기 요청보다 먼저 시작된다면 외부 인터페이스 컨트롤러(200)가 읽어 가는 속도보다 내부 복원 속도가 더 빠르도록 구현 가능할 수 있다. 따라서, 외부 인터페이스 컨트롤러(200)는 복원이 완료될 때까지 기다리거나 자체적으로 복원을 수행하는 지연 없이 읽기/쓰기 과정을 수행함으로써 충돌이나 지연 시간을 줄여 성능이 향상될 수 있다. 상태 레지스터는 정상 동작인지 여부, 백업 진행 여부, 데이터 복원 진행 여부, 백업시 외부 인터페이스 컨트롤러(200)가 현재 상태 저장을 완료했는지 여부 등의 동작 상태 정보를 I/O 컨트롤러(107)가 확인할 수 있도록 한다.An access conflict with the internal operation and the DRAM block 120 may occur in the read and write requests of the interface controller 200. As shown in FIG. 1, a request may be performed without a conflict by configuring the DRAM block 120 as a dual-port DRAM. When the DRAM block 120 is configured as a dual-port, access conflicts between the external DRAM interface controller 200 and the internal control controller 110 can be eliminated. Also, if the restoration start time of the internal control controller 110 is started before the read request of the external interface controller 200 when the power is on, the internal restoration speed is faster than the read speed of the external interface controller 200 It can be possible. Therefore, the external interface controller 200 can improve the performance by reducing the collision or the delay time by performing the read / write process without waiting for the completion of the restoration or performing the restoration by itself. The status register is configured to allow the I / O controller 107 to check operation status information, such as whether it is a normal operation, whether the backup is in progress, whether data restoration is in progress, whether the external interface controller 200 has saved the current status at the time of backup, do.

쓰기/백업 컨트롤러(104)는 전원 차단시 변경된 디램 블록(120)의 데이터를 플래시 메모리에 백업할 수 있다. 또한, 쓰기/백업 컨트롤러(104)는 I/O 컨트롤러(107)로부터 쓰기 명령이 제어 신호로 들어왔을 때 쓰기 데이터가 저장되는 디램 블록(120)에서 미스(miss)가 발생했을 경우, 데이터 블록이 수정된 상태이면 데이터 블록을 플래시 메모리에 백업할 수 있다. 쓰기/백업 컨트롤러(104)는 I/O 컨트롤러(107)로부터 쓰기 명령을 수신할 경우, 디램에 해당되는 데이터가 있으면(디램 히트(DRAM hit)) 디램에 직접 쓰기를 수행하고 디램에 해당되는 데이터가 없으면(디램 미스(DRAM miss)), 해당 페이지의 수정된 상태를 조사하여 수정된 경우, 플래시 컨트롤러(103)에 쓰기/백업을 요청하고 새로운 데이터 읽기를 요청할 수 있다. 외부 전원이 차단되는 경우는 전체 디램 데이터 블록 및 관련 테이블 정보에 대한 백업을 수행해야 한다. The write / backup controller 104 may back up the data of the changed DRAM block 120 to the flash memory when the power is turned off. When a miss occurs in the DRAM block 120 in which the write data is stored when the write command is received as a control signal from the I / O controller 107, the write / If it is modified, the data block can be backed up to flash memory. Upon receiving a write command from the I / O controller 107, the write / backup controller 104 writes directly to the DRAM if there is data corresponding to the DRAM (DRAM hit) (DRAM miss), the modified state of the page can be checked and corrected, and the flash controller 103 can be requested to write / back up and request a new data read. If external power is interrupted, a backup of the entire DRAM data block and related table information should be performed.

플래시 블록(130)은 디램 블록(120)의 논리적 페이지 주소(LPN: Logical Page Number)에 해당하는 물리적 페이지 주소(PPN: Physical Page Number) 위치에 데이터를 저장하게 되며, 성능 향상을 위해 로그 블록과 데이터 블록으로 구성된다.The flash block 130 stores data at a physical page address (PPN) position corresponding to a logical page address (LPN) of the DRAM block 120. In order to improve performance, Data blocks.

읽기 및 쓰기에 대한 내부 제어 동작은 다음과 같다. 전원이 처음 온(on) 시 디램은 초기 상태로 데이터를 가지고 있지 않으므로 내부 제어 컨트롤러(110)는 플래시 메모리로부터 읽기/복원 과정을 통해(Warm Start) 디램에 데이터를 가져다 놓을 수 있다. 외부 인터페이스 컨트롤러(200)의 읽기 요청이 있을 경우 먼저 디램에 액세스하여 관련 페이지가 존재하는지 확인하고 페이지가 디램에 존재하면(디램 히트(DRAM hit)) 디램 인터페이스를 통하여 고속으로 읽기 요청을 수행한다. 디램에 존재하지 않으면(디램 미스(DRAM miss)) 먼저 플래시 컨트롤러(103) 내부의 로그 블록 관리 테이블(로그 페이지 풀(Log Page Pool) 및 로그 페이지 디스크립터(Log Page Descriptor))을 통해 플래시 메모리의 로그 블록에 해당 페이지가 존재하는지 여부를 확인하고 해당 페이지가 존재하면 로그 블록으로부터 페이지를 읽어 디램 및 외부 인터페이스 컨트롤러(200)에 해당 데이터를 전달할 수 있다. 플래시 로그 블록에 해당 페이지가 없으면 플래시 컨트롤러(103) 내부의 데이터 블록 관리 테이블(Data Block Mapping Table)을 통해 플래시 메모리의 데이터 블록으로부터 페이지를 읽어 디램 및 외부 인터페이스 컨트롤러(200)에 해당 데이터를 전달할 수 있다. 읽기/복원 컨트롤러는 디램에 최신의 페이지 정보를 저장하고 관련 제어 정보를 업데이트(update)할 수 있다.The internal control operations for reading and writing are as follows. When the power is first turned on, the DRAM does not have data in the initial state, so the internal control controller 110 can fetch data from the flash memory through the read / restore process (warm start) to the DRAM. When there is a read request from the external interface controller 200, the DRAM is first accessed to check whether a related page exists and if the page exists in the DRAM (DRAM hit), a read request is performed at high speed through the DRAM interface. (Log page pool) and the log page descriptor (Log Page Descriptor) in the flash controller 103, if there is no DRAM (DRAM miss) It is checked whether the corresponding page exists in the block. If the corresponding page exists, the page can be read from the log block and the corresponding data can be transferred to the DRAM and the external interface controller 200. If there is no corresponding page in the flash log block, the page can be read from the data block of the flash memory through the data block mapping table in the flash controller 103 and the corresponding data can be transferred to the DRAM and the external interface controller 200 have. The read / restore controller may store the latest page information in the DRAM and update the associated control information.

외부 인터페이스 컨트롤러(200)의 쓰기 요청이 있을 경우 먼저 디램에 액세스하여 관련 페이지가 존재하는지 확인하고 페이지가 디램에 존재하면(DRAM hit) 디램 인터페이스를 통하여 고속으로 쓰기 요청을 수행할 수 있다. 반대로 페이지가 디램에 존재하지 않으면(DRAM miss) 읽기 요청과 같이 먼저 플래시 컨트롤러 내부의 로그 블록 관리 테이블(로그 페이지 풀(Log Page Pool) 및 로그 페이지 디스크립터(Log Page Descriptor))을 통해 플래시 메모리의 로그 블록에 해당 페이지가 존재하는지 여부를 확인할 수 있다. 이후, 해당 페이지가 존재하면 로그 블록으로부터 페이지를 읽어 내부 데이터 버퍼에 임시 저장하고 쓰기 데이터를 해당 위치에 쓴 다음 디램에 해당 데이터를 전달하여 최신 페이지를 업데이트할 수 있다. 반대로 플래시 로그 블록에 해당 페이지가 없으면 플래시 컨트롤러(103) 내부의 데이터 블록 관리 테이블(Data Block Mapping Table)을 통해 플래시 메모리의 데이터 블록으로부터 페이지를 읽어 내부 데이터 버퍼에 임시 저장하고 쓰기 데이터를 해당 위치에 쓴 다음 디램에 해당 데이터를 전달하여 최신 페이지를 업데이트할 수 있다. 읽기 요청이든 쓰기 요청이든 해당 페이지가 디램에 존재하지 않으면(디램 미스(DRAM miss)) 새로운 페이지를 플래시 메모리로부터 읽기 전에 기존의 디램에 존재하는 페이지가 수정이 되었는지 여부를 확인하고 수정이 되었으면 플래시 메모리에 쓰기/백업을 수행하는데 성능 향상을 위해 플래시 메모리의 로그 블록을 사용하여 쓰기를 수행하고 제어 알고리즘에 따라 내부 제어 레지스터에 프로그래밍 된 값을 통해 프로그래밍된 시점이 도달하면 자체 로그 블록 컴프레션(compression)과 데이터 블록과의 로그 블록 머지(merge) 작업을 수행할 수 있다. If there is a write request of the external interface controller 200, it is possible to first access the DRAM to check whether a related page exists, and to perform a write request at high speed through the DRAM interface if the page exists in the DRAM (DRAM hit). Conversely, if the page does not exist in the DRAM (DRAM miss), a log block management table (a log page pool and a log page descriptor) in the flash controller, such as a read request, It is possible to check whether or not the corresponding page exists in the block. Thereafter, when the corresponding page exists, the page is read from the log block, temporarily stored in the internal data buffer, write data is written to the corresponding location, and the corresponding data is transferred to the DRAM to update the latest page. On the contrary, if there is no corresponding page in the flash log block, the page is read from the data block of the flash memory through the data block mapping table in the flash controller 103, temporarily stored in the internal data buffer, You can then update the latest page by passing the appropriate data to the dyram. If the page does not exist in the DRAM (whether it is a read request or a write request) (DRAM miss), it is checked whether a page existing in the existing DRAM is modified before reading a new page from the flash memory. Write is performed using the log block of the flash memory to improve the performance. When the programmed value is reached through the programmed value in the internal control register according to the control algorithm, the self-log block compression A log block merge operation with the data block can be performed.

도 2 는 본 발명의 실시예에 따른 낸드 데이터 블록(NAND Data Block) 및 관련 데이터 블록 매핑 테이블(Data Block Mapping Table)을 나타낸 개념도이다.2 is a conceptual diagram illustrating a NAND data block and a related data block mapping table according to an embodiment of the present invention.

도 2를 참조하면, 데이터 블록 매핑(data block mapping table)(200)은 디램의 LBN(Logical Block Number)과 플래시 메모리의 PBN(Physical Block Number)의 매핑을 수행하는 정보를 가지고 있고 백업/복원 컨트롤러 및 플래시 컨트롤러에 의해 관리될 수 있다.Referring to FIG. 2, a data block mapping table 200 includes information for mapping a logical block number (LBN) of a DRAM to a physical block number (PBN) of a flash memory, And a flash controller.

도 2를 참조하면, 플래시 메모리는 페이지 단위의 관리를 할 수도 있지만 제어 복잡성 및 관리 테이블이 차지하는 영역을 줄이기 위해 블록 단위의 관리를 수행할 수 있다. Referring to FIG. 2, the flash memory may perform page-level management, but may perform block-level management to reduce the control complexity and the area occupied by the management table.

도 3은 본 발명의 실시예에 따른 NAND 로그 블록(Log Block) 및 관련 로그 페이지 풀(Log Page Pool) 및 로그 페이지 디스크립터(Log Page Descriptor)를 나타낸 개념도이다.3 is a conceptual diagram illustrating a NAND log block and a related log page pool and a log page descriptor according to an embodiment of the present invention.

플래시 컨트롤러는 전체 플래시 메모리를 데이터 블록(Data block)과 로그 블록(Log Block)으로 나누어 관리할 수 있다. 외부 인터페이스 컨트롤러(200)의 읽기/쓰기 요청으로 인한 백업/복원 컨트롤러로부터 플래시 메모리 읽기/쓰기 요청이 발생했을 경우 읽기 및 쓰기가 수행될 수 있다. The flash controller can manage the entire flash memory by dividing it into a data block and a log block. When a flash memory read / write request is issued from the backup / restore controller due to a read / write request of the external interface controller 200, reading and writing can be performed.

로그 페이지 풀(300)은 사용 가능한 로그 블록의 페이지(Page) 정보를 가지고 있으며 플래시 컨트롤러의 요청에 의해 페이지 할당 또는 페이지 릴리즈(release)에 대한 관리를 수행한다.The log page pool 300 has page information of available log blocks and performs management of page allocation or page release at the request of the flash controller.

로그 페이지 디스크립터(320)에서 각 엔트리(Entry)는 로그 블록에서 유효(valid)한 로그 블록 페이지(Log Block Page)를 차례로 표시하는데 로그 블록 컴프레션(Log Block Compression) 및 데이터 블록(Data Block)과의 로그 블록 머지(Log Block Merge) 작업시 사용될 수 있다. Each entry in the log page descriptor 320 sequentially displays a log block page valid in the log block. The log block page includes log block compression and data block It can be used for log block merging.

도 4 는 본 발명의 실시예에 따른 NAND 로그 블록(Log Block)의 컴프레션(Compression) 및 로그 페이지 디스크립터 카피(Log Page Descriptor Copy) 동작을 나타낸 개념도이다.4 is a conceptual diagram illustrating a compression of a NAND log block and a log page descriptor copy operation according to an embodiment of the present invention.

도 4를 참조하면, NAND 로그 블록1(Log Block 1)에서 PPN1(Physical Page Number1)부터 PPNa(Physical Page Number a)까지는 LPN1(Logical Page Number 1)의 데이터를 저장하고 있는 상태를 보여주고 있다. 같은 위치에 여러번의 쓰기가 수행된 결과 최종적으로 PPNa(Physical Page Number a)에 있는 LPN1(Logical Page Number1)의 값이 최근에 쓰여진 값이 되고 나머지는 스테일(stale) 데이터를 가지는 페이지가 된다. 플래시 컨트롤러는 페이지(page) 단위보다 작은 쓰기 동작의 요청이 있을 시, 내부 데이터 버퍼를 통한 리드-모디파이-라이트(read-modify-write)의 방법으로 최신 페이지 데이터가 유지될 수 있다. 이때 최신 데이터를 가지고 있는 PPNa의 정보만 로그 페이지 디스크립터(Log Page Descriptor)(400)에 저장될 수 있다. 따라서, 로그 페이지 디스크립터(Log Page Descriptor)(400)의 첫번째 엔트리(entry)는 LPN1:PPNa 가 되고 LEN(Last Entry Number)는 a(로그 버퍼의 a 페이지)의 값을 가진다. 로그 블록(Log Block)이 컴프레션(compression)을 수행하기 위한 컴프레션(compression) 한계 개수 (레지스터에 의한 프로그래밍 된 값)에 도달했을 경우 로그 블록 컴프레션을 수행하게 되는데 로그 페이지 디스크립터(400)의 첫번째 엔트리(entry)의 정보를 이용하여 NAND 로그 블록1(Log Block1)에서 첫번째 페이지부터(PPN1) PPNa 전 페이지까지는 스테일(stale) 데이터이므로 건너 뛰고 PPNa 페이지만 새로운 NAND 로그 블록(Log Block)으로 카피(copy)할 수 있다.Referring to FIG. 4, the logical block number 1 (Logical Page Number 1) to the physical page number (PPNa) are stored in the NAND log block 1 (Log Block 1). As a result of multiple writes to the same location, the value of LPN1 (Logical Page Number1) in PPNa (Physical Page Number a) becomes the last written value and the rest becomes the page with stale data. When a flash controller requests a write operation smaller than a page unit, the latest page data can be maintained in a read-modify-write manner through an internal data buffer. At this time, only the information of the PPNa having the latest data can be stored in the Log Page Descriptor 400. Therefore, the first entry of the log page descriptor 400 becomes LPN1: PPNa and the last entry number (LEN) has a value of a (a page of the log buffer). When the log block reaches a compression limit number (programmed value by a register) for performing compression, log block compression is performed. The first entry of the log page descriptor 400 entry from the first page to the previous page in the NAND log block 1 (Log Block 1) is stale data, and only the PPNa page is copied to the new NAND log block (Log Block 1) can do.

결국은 최종적인 스테일(stale)이 아닌 유효한(valid)한 4개의 페이지만 NAND 로그 블록n(Log Block n)으로 카피(copy)되어 NAND 로그 블록 n(Log Block n)은 4개의 페이지만 쓰여지고 나머지는 엠프티(empty) 상태로 전환되어 컴프레션(Compression)이 수행되고 엠프티 페이지는 다른 쓰기 동작을 수행하는데 사용된다. NAND 로그 블록1(Log Block 1)은 스테일 페이지로 표시되고 나중에 삭제(Erase)를 통해 새로운 NAND 로그 블록으로 사용되며 새로운 페이지들은 로그 페이지 풀에 추가되어 관리될 수 있다.As a result, only four valid pages that are not the final stale are copied to the NAND log block n (Log Block n), so that only the four pages of the NAND log block n (Log Block n) Is switched to an empty state to perform compression, and the empty page is used to perform another writing operation. NAND log block 1 (Log Block 1) is displayed as a stale page and later used as a new NAND log block through erase, and new pages can be added and managed in the log page pool.

로그 페이지 디스크립터1(Log Page Descriptor 1)(로그 블록1(Log Block 1)에 해당하는 디스크립터)은 로그 페이지 디스크립터n(Log Page Descriptor n)(로그 블록n(Log Block n))에 해당하는 디스크립터)로 카피될 수 있다.A log page descriptor 1 (descriptor corresponding to log block 1) is a descriptor corresponding to a log page descriptor n (log block n) Lt; / RTI >

도 5 는 NAND 로그 블록과 NAND 데이터 블록의 머지(merge) 동작을 나타낸 개념도이다.5 is a conceptual diagram illustrating a merge operation between a NAND log block and a NAND data block.

도 5에서는 NAND 로그 블록(500)이 머지(merge) 한계 개수(레지스터에 의한 프로그래밍 된 값)에 도달하게 되면 NAND 로그 블록(500)의 가용 페이지 개수가 부족함을 의미한다. 따라서, 데이터 블록과 머지를 수행하고 로그 버퍼의 사용 가능한 페이지를 확보할 수 있다. 머지 수행 후 머지된 NAND 로그 블록(500)은 스테일(stale) 페이지로 표시되고 나중에 삭제를 통해 새로운 NAND 로그 블록(500)으로 사용되며 새로운 페이지들은 로그 페이지 풀에 추가되어 관리될 수 있다. 5, when the NAND log block 500 reaches a merge limit number (programmed value by a register), it means that the number of available pages of the NAND log block 500 is insufficient. Thus, it is possible to perform a merge with the data block and free pages in the log buffer. After merging, the merged NAND log block 500 is displayed as a stale page and can be used as a new NAND log block 500 through deletion later, and new pages can be added to the log page pool and managed.

로그 페이지 풀은 로그 블록 페이지의 할당과 릴리즈(release)를 관리하는데 프로그래밍된 한계 개수에 도달하면 로그 블록 컴프레션 및 머지를 수행하도록 제어 신호를 발생시킬 수 있다.The log page pool may generate a control signal to perform log block compression and merging when the number of limits programmed to manage the allocation and release of log block pages is reached.

도 6은 본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서 데이터 읽기 방법을 나타낸 순서도이다.6 is a flowchart illustrating a method of reading data in a hybrid memory structure using a dual-port DRAM according to an embodiment of the present invention.

도 6 에서 데이터 읽기 명령이 존재하는지 여부를 판단한다(S300)In FIG. 6, it is determined whether a data read command exists (S300)

데이터 읽기 명령이 존재하는 경우, 디램 블록에서 데이터 읽기가 수행될 수 있다(단계 S301).If there is a data read command, data reading in the DRAM block may be performed (step S301).

듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 인터페이스 컨트롤러에서 모듈의 I/O 컨트롤러에 전달되고 디램 컨트롤러에 읽기 명령을 보내 디램 블록의 논리적 주소와 일치하는 데이터를 읽어오거나(디램 히트(DRAM hit)) 플래시메모리에서 데이터를 읽어오고 디램을 업데이트할 수 있다(디램 미스(DRAM miss)).A hybrid memory architecture using a dual-port DRAM is passed from the interface controller to the module's I / O controller and is sent a read command to the DRAM controller to read data that matches the logical address of the DRAM block (DRAM hit) Data can be read from the memory and the DRAM updated (DRAM miss).

디램 미스가 발생되었는지 여부를 판단하고(단계 S302), 디램 미스가 발생된 경우, 디램 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단할 수 있다.It is determined whether or not a dyram miss has occurred (step S302). If a dyram miss occurs, it can be determined whether or not the existing page has been modified at the time of updating the dyram.

디램 업데이트 시 기존 페이지가 수정이 되었다면 수정된 디램 페이지를 플래시 메모리에 백업할 수 있다(S305).  If the existing page is modified at the time of updating the DRAM, the modified DRAM page can be backed up in the flash memory (S305).

디램 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 플래시 메모리로부터 데이터가 전송될 수 있다(S303). If the existing page is not modified at the time of updating the DRAM, data can be transmitted from the flash memory (S303).

디램 미스가 발생되었는지 여부가 판단되고(단계 S302), 디램 미스가 발생되지 않은 경우, 디램 블록에서 데이터를 전송할 수 있다.It is determined whether or not a dyram miss has occurred (step S302), and if a dyram miss has not occurred , The data can be transmitted in the DRAM block.

도 7은 본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서 데이터 쓰기/백업 방법을 나타낸 순서도이다.7 is a flowchart illustrating a method of writing / backing data in a hybrid memory structure using a dual-port DRAM according to an embodiment of the present invention.

도 7을 참조하면, 전원 플래그(flag)가 0인지 여부를 판단하고(S600), 전원 플래그(flag)가 0인 경우, 전원이 오프(off) 상태이고, 백업을 수행할 수 있다. Referring to FIG. 7, it is determined whether the power flag is 0 (S600). When the power flag is 0, the power is off and backup can be performed.

전원 플래그가 0인 경우, 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고(S611) 디램으로부터 플래시메모리로 백업을 수행한다(S612).If the power flag is 0, the corrected portion of the DRAM and the number of pages of the management table area are set as the backup counter value (S611), and backup from the DRAM to the flash memory is performed (S612).

백업 카운터를 카운팅하고(S613), 백업 카운터가 0인 경우(S614), 백업 플래그를 0으로 설정할 수 있다(S615).The backup counter is counted (S613). If the backup counter is 0 (S614), the backup flag can be set to 0 (S615).

전원 플래그(flag)가 0이 아닌 경우, 전원이 온(on) 상태이고, 데이터 쓰기 명령에 대해 판단할 수 있다(S601).If the power flag is not 0, the power is on and the data write command can be determined (S601).

데이터 쓰기 명령이 있다면, 디램 미스의 발생 여부가 판단될 수 있다(S602).If there is a data writing command, it is judged whether or not a DRAM error has occurred (S602).

데이터 쓰기 명령이 인터페이스 컨트롤러에서 I/O 컨트롤러로 전달되면 디램에 해당 페이지가 있는지가 조사되고, 디램 미스 발생 여부가 판단될 수 있다.When a data write command is transmitted from the interface controller to the I / O controller, it is checked whether or not the corresponding page exists in the DRAM, and it is judged whether or not a DRAM error has occurred.

디램 히트(hit)면 디램에 쓰기를 수행할 수 있다(S604).Diram hits can be written to the diram (S604).

디램 미스인 경우, 디램 페이지의 수정 여부에 대해 판단하고(S603), 디램 페이지가 수정되지 않은 경우, 플래시 메모리로부터 해당 페이지를 읽고(S605) 디램을 업데이트하여(내부 데이터 버퍼에 읽어 온 페이지를 임시 저장하고 데이터를 쓰고 디램 업데이트) 디램 라이트(write)(S604)를 수행할 수 있다.If the DRAM page is not modified, it is determined whether or not the DRAM page is modified (S603). If the DRAM page is not modified, the corresponding page is read from the flash memory (S605) Store the data, write the data, update the DRAM, and write the DRAM (S604).

디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행할 수 있다(S606). When the DRAM page is modified, the log buffer write can be performed using the information in the log buffer management table (S606).

로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 로그 버퍼가 풀(full)인 경우, 로그 버퍼가 데이터 버퍼와 머지되고(S608), 로그 버퍼 컴프레션이 수행될 수 있다(S610).If the log buffer is full, the log buffer is merged with the data buffer (S608), and the log buffer compression may be performed (S610).

전술한 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.The above-described methods may be implemented in an application or may be implemented in the form of program instructions that may be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination.

상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.The program instructions recorded on the computer-readable recording medium may be ones that are specially designed and configured for the present invention and are known and available to those skilled in the art of computer software.

컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.

프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of program instructions include machine language code such as those generated by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.

이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. It will be possible.

Claims (9)

듀얼-포트 디램을 사용한 하이브리드 메모리 구조는,
활성화된 데이터 및 테이블 제어 정보의 저장을 위한 데이터 캐쉬로 사용되는 듀얼-포트 디램(DRAM); 및
데이터를 안정적으로 보관하기 위한 비활성 영역으로 사용되는 플래시 메모리를 포함하되,
상기 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없애는 것을 특징으로 하는 하이브리드 메모리 구조.
A hybrid memory architecture using a dual-port DRAM,
A dual-port DRAM (DRAM) used as a data cache for storage of activated data and table control information; And
And a flash memory used as an inactive area for stably storing data,
Wherein the dual-port DRAM eliminates access conflicts between the external interface controller and the internal control controller.
제1항에 있어서,
상기 듀얼-포트 디램을 관리하기 위한 디램 컨트롤러;
상기 플래시 메모리를 관리하기 위한 플래시 컨트롤러;
상기 듀얼-포트 디램의 데이터를 쓰기 및/또는 백업 또는 읽기 및/또는 복원하기 위한 백업/복원 컨트롤러; 및
상기 외부 인터페이스 컨트롤러로부터 읽기 및 쓰기와 관련된 제어 신호와 외부 상태 변화에 따른 신호를 수신하고, 상기 디램 컨트롤러와 백업/복원 컨트롤러 및 상기 플래시 컨트롤러를 제어하며, 동작 상태에 따라 상기 외부 인터페이스 컨트롤러의 신호를 받아 디램 컨트롤러 또는 플래시 컨트롤러를 통해서 데이터를 읽어 상기 외부 인터페이스 컨트롤러 전달하거나 상기 외부 인터페이스 컨트롤러를 통해 들어오는 데이터를 상기 듀얼-포트 디램 또는 상기 플래시 메모리에 쓰도록 제어하는 동작을 수행하도록 구현되는 I/O 컨트롤러를 더 포함하는 것을 특징으로 하는 하이브리드 메모리 구조.
The method according to claim 1,
A DRAM controller for managing the dual-port DRAM;
A flash controller for managing the flash memory;
A backup / restore controller for writing and / or backing up, reading and / or restoring data of the dual-port DRAM; And
And a flash controller for controlling the DRAM controller, the backup / restore controller and the flash controller, and for controlling the signals of the external interface controller according to the operation state, O controller < / RTI > that is implemented to perform the operation of reading data through a DRAM controller or a flash controller and transferring the data to the external interface controller or writing data to the dual-port DRAM or the flash memory via the external interface controller Further comprising the step of:
제2항에 있어서,
상기 쓰기/백업 컨트롤러는 전원 차단시 변경된 상기 듀얼-포트 디램의 데이터를 상기 플래시 메모리에 백업하거나 상기 I/O 컨트롤러로부터 쓰기 명령이 제어 신호로 들어왔을 때 쓰기 데이터가 저장되는 상기 듀얼-포트 디램에서 미스가 발생했을 경우 데이터 블록이 수정된 상태이면 상기 데이터 블록을 플래시 메모리에 백업하는 것을 특징으로 하는 하이브리드 메모리 구조.
3. The method of claim 2,
The write / backup controller backs up the data of the dual-port DRAM changed when the power is turned off to the flash memory or when the write command from the I / O controller enters the control signal, the write / And if the data block has been modified, the data block is backed up in the flash memory.
제3항에 있어서,

상기 하이브리드 메모리 구조는 상기 데이터 읽기 명령의 존재하는지 여부를 판단하고, 상기 데이터 읽기 명령이 존재하는 경우, 상기 데이터 읽기 명령을 상기 외부 인터페이스 컨트롤러로부터 상기 I/O 컨트롤러로 전달하고
상기 하이브리드 메모리 구조는 상기 I/O 컨트롤러로부터 상기 디램 컨트롤러에 상기 데이터 읽기 명령을 보내 상기 듀얼-포트 디램에서 논리적 주소와 일치하는 데이터를 읽어오거나 상기 플래시 메모리에서 데이터를 읽어오고 상기 듀얼-포트 디램을 업데이트하고,
상기 하이브리드 메모리 구조는 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생된 경우, 상기 듀얼-포트 디램의 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단하고,
상기 하이브리드 메모리 구조는 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정되었다면 수정된 디램 페이지를 상기 플래시 메모리에 백업하고,
상기 하이브리드 메모리 구조는 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 상기 플래시 메모리 상의 데이터를 전송하고,
상기 하이브리드 메모리 구조는 상기 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생되지 않은 경우, 상기 듀얼-포트 디램 상의 데이터를 전송하는 것을 특징으로 하는 하이브리드 메모리 구조.
The method of claim 3,

The hybrid memory structure determines whether or not the data read command exists, and when the data read command exists, transfers the data read command from the external interface controller to the I / O controller
The hybrid memory structure is configured to send the data read command to the DRAM controller from the I / O controller to read data from the dual-port DRAM or to read data from the flash memory, Update,
Wherein the hybrid memory structure is configured to determine whether an existing page has been modified when updating the dual-port DRAM based on a determination as to whether a diramis error has occurred,
Wherein the hybrid memory structure backs up a modified DRAM page to the flash memory if an existing page is modified at the time of updating the dual-
Wherein the hybrid memory structure transmits data on the flash memory when an existing page is not modified when the dual-port DRAM is updated,
Wherein the hybrid memory structure transmits data on the dual-port DRAM when the diramis miss is not generated based on a determination as to whether or not the diramis error has occurred.
제4항에 있어서,
상기 하이브리드 메모리 구조는 전원 플래그(flag)가 0인지 여부를 판단하고 상기 전원 플래그가 0인 경우, 데이터에 대한 백업을 수행하고,
상기 하이브리드 메모리 구조는 상기 전원 플래그가 0인 경우, 상기 듀얼-포트 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고 상기 듀얼-포트 디램으로부터 상기 플래시 메모리로 백업을 수행하고,
상기 하이브리드 메모리 구조는 상기 백업 카운터에 대한 카운팅을 기반으로 상기 백업 카운터가 0인 경우, 백업 플래그를 0으로 설정하고,
상기 하이브리드 메모리 구조는 상기 전원 플래그가 0이 아닌 경우, 데이터 쓰기 명령에 대한 판단을 수행하고, 상기 데이터 쓰기 명령이 있다면, 상기 디램 미스의 발생 여부를 판단하고,
상기 하이브리드 메모리 구조는 상기 데이터 쓰기 명령이 상기 외부 인터페이스 컨트롤러에서 상기 I/O 컨트롤러로 전달되면 상기 듀얼-포트 디램에 해당 페이지가 있는지 여부를 조사하여 상기 디램 미스 발생 여부를 판단하고,
상기 하이브리드 메모리 구조는 디램 히트면 상기 듀얼-포트 디램에 쓰기를 수행하고, 상기 디램 미스인 경우, 디램 페이지의 수정 여부를 판단하여, 상기 디램 페이지가 수정되지 않은 경우, 상기 플래시 메모리로부터 해당 페이지를 읽고 상기 듀얼-포트 디램을 업데이트하여 디램 라이트(write)수행하고, 상기 디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행하고,
상기 하이브리드 메모리 구조는 로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 상기 로그 버퍼가 풀인 경우, 상기 로그 버퍼와 데이터 버퍼를 머지하고, 로그 버퍼 컴프레션을 수행하는 것을 특징으로 하는 방법.
5. The method of claim 4,
Wherein the hybrid memory structure determines whether a power flag is 0, performs a backup of data when the power flag is 0,
The hybrid memory structure sets a modified counter value of the dual-port DRAM and a page number of the management table area as a backup counter value when the power flag is 0, performs backup from the dual-port DRAM to the flash memory ,
Wherein the hybrid memory structure sets a backup flag to 0 if the backup counter is 0 based on the counting of the backup counter,
Wherein the hybrid memory structure determines whether or not the data write command is generated if the power flag is not 0,
Wherein the hybrid memory structure checks whether or not a corresponding page is present in the dual-ported DRAM when the data write command is transmitted from the external interface controller to the I / O controller,
The hybrid memory structure may be configured to write to the dual-port DRAM if the DRAM hit, and to determine whether to modify the DRAM page if the DRAM is missed. If the DRAM page is not modified, Reads the dual-port DRAM and performs a DRAM write operation, and when the DRAM page is modified, performs a log buffer write using the information of the log buffer management table,
Wherein the hybrid memory structure determines whether the log buffer is in a full state, merges the log buffer and the data buffer when the log buffer is full, and performs log buffer compression.
듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은,
듀얼-포트 디램(DRAM)이 데이터 캐쉬로 사용되어 활성화된 데이터 및 테이블 제어 정보의 저장하는 단계;
플래시 메모리가 비활성 영역으로 사용되어 데이터를 안정적으로 보관하는 단계를 포함하되,
상기 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없애는 것을 특징으로 하는 하이브리드 메모리 동작 방법.
A method of operating a hybrid memory using a dual-
Storing dual-port DRAM (DRAM) as data cache to enable active data and table control information;
Wherein the flash memory is used as an inactive area to stably store data,
Wherein the dual-port DRAM removes access conflicts between the external interface controller and the internal control controller.
제6항에 있어서,
상기 하이브리드 메모리 구조가 상기 데이터 읽기 명령을 외부 인터페이스 컨트롤러로부터 I/O 컨트롤러로 전달하는 단계;
상기 하이브리드 메모리 구조가 상기 I/O 컨트롤러로부터 디램 컨트롤러에 상기 데이터 읽기 명령을 보내 상기 듀얼-포트 디램에서 논리적 주소와 일치하는 데이터를 읽어오거나 상기 플래시 메모리에서 데이터를 읽어오고 상기 듀얼-포트 디램을 업데이트하는 단계;
상기 하이브리드 메모리 구조가 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생된 경우, 상기 듀얼-포트 디램의 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단하는 단계;
상기 하이브리드 메모리 구조가 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정되었다면 수정된 디램 페이지를 상기 플래시 메모리에 백업하는 단계;
상기 하이브리드 메모리 구조가 상기 듀얼 포트 디램의 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 상기 플래시 메모리 상의 데이터를 전송하는 단계; 및
상기 하이브리드 메모리 구조가 상기 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생되지 않은 경우, 상기 듀얼-포트 디램 상의 데이터를 전송하는 단계를 포함하는 하이브리드 메모리 동작 방법.
The method according to claim 6,
The hybrid memory structure transferring the data read command from the external interface controller to the I / O controller;
The hybrid memory structure sends the data read command to the DRAM controller from the I / O controller to read data from the dual-port DRAM or to read data from the flash memory and to update the dual- ;
Determining whether an existing page has been modified when updating the dual-port DRAM when the hybrid memory structure has generated a diramesis based on a determination as to whether a diramis occurred;
Backing up the modified DRAM page to the flash memory if the hybrid memory structure has modified an existing page when updating the dual-port DRAM;
Transmitting the data on the flash memory when the hybrid memory structure does not update an existing page when the dual port DRAM is updated; And
And transmitting the data on the dual-port DRAM if the hybrid memory structure does not generate the diramis based on a determination as to whether the diramis occurred.
제7항에 있어서,
상기 하이브리드 메모리 구조가 전원 플래그(flag)가 0인지 여부를 판단하고 상기 전원 플래그가 0인 경우, 데이터에 대한 백업을 수행하는 단계;
상기 하이브리드 메모리 구조가 상기 전원 플래그가 0인 경우, 상기 듀얼-포트 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고 상기 듀얼-포트 디램으로부터 상기 플래시 메모리로 백업을 수행하는 단계;
상기 하이브리드 메모리 구조가 상기 백업 카운터에 대한 카운팅을 기반으로 상기 백업 카운터가 0인 경우, 백업 플래그를 0으로 설정하는 단계;
상기 하이브리드 메모리 구조가 상기 전원 플래그가 0이 아닌 경우, 데이터 쓰기 명령에 대한 판단을 수행하고, 상기 데이터 쓰기 명령이 있다면, 상기 디램 미스의 발생 여부를 판단하는 단계;
상기 하이브리드 메모리 구조가 상기 데이터 쓰기 명령이 상기 외부 인터페이스 컨트롤러에서 상기 I/O 컨트롤러로 전달되면 상기 듀얼-포트 디램에 해당 페이지가 있는지 여부를 조사하여 상기 디램 미스 발생 여부를 판단하는 단계; 및
상기 하이브리드 메모리 구조가 디램 히트면 상기 듀얼-포트 디램에 쓰기를 수행하고, 상기 디램 미스인 경우, 디램 페이지의 수정 여부를 판단하여, 상기 디램 페이지가 수정되지 않은 경우, 상기 플래시 메모리로부터 해당 페이지를 읽고 상기 듀얼-포트 디램을 업데이트하여 디램 라이트(write)수행하고, 상기 디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행하는 단계를 포함하는 것을 특징으로 하는 하이브리드 메모리 동작 방법.
8. The method of claim 7,
Determining whether a power flag of the hybrid memory structure is 0 and performing a backup of data when the power flag is 0;
Wherein when the power flag is 0, the hybrid memory structure sets the modified part of the dual-port DRAM and the number of pages of the management table area as a backup counter value and performs backup from the dual-port DRAM to the flash memory step;
Setting the backup flag to 0 if the hybrid memory structure is based on counting the backup counter, if the backup counter is 0;
Determining whether the data write command is generated if the power flag is not 0 and determining whether the data write command is generated if the data write command is present;
Checking whether a corresponding page exists in the dual-port DRAM when the data write command is transferred from the external interface controller to the I / O controller, and determining whether the data write command is generated; And
And if the hybrid memory structure is a DRAM hit, writes to the dual-port DRAM. If the hybrid memory structure is the DYRAM miss, it is determined whether or not the DRAM page is modified. If the DRAM page is not modified, Reading the dual-port DRAM and performing a DRAM write operation, and when the DRAM page is modified, performing a log buffer write using the information in the log buffer management table. How it works.
제8항에 있어서,
상기 하이브리드 메모리 구조가 로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 상기 로그 버퍼가 풀인 경우, 상기 로그 버퍼와 데이터 버퍼를 머지하고, 로그 버퍼 컴프레션을 수행하는 단계를 더 포함하는 것을 특징으로 하는 하이브리드 메모리 동작 방법.
9. The method of claim 8,
Determining whether the log buffer is in a full state, and if the log buffer is full, merging the log buffer and the data buffer and performing log buffer compression. / RTI >
KR1020170176803A 2017-12-21 2017-12-21 Method for storing and recovering of high speed data on memory and memory for performing the same KR102065033B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170176803A KR102065033B1 (en) 2017-12-21 2017-12-21 Method for storing and recovering of high speed data on memory and memory for performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176803A KR102065033B1 (en) 2017-12-21 2017-12-21 Method for storing and recovering of high speed data on memory and memory for performing the same

Publications (2)

Publication Number Publication Date
KR20190075315A true KR20190075315A (en) 2019-07-01
KR102065033B1 KR102065033B1 (en) 2020-01-10

Family

ID=67255683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176803A KR102065033B1 (en) 2017-12-21 2017-12-21 Method for storing and recovering of high speed data on memory and memory for performing the same

Country Status (1)

Country Link
KR (1) KR102065033B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070106069A (en) 2006-04-28 2007-11-01 테라셈 주식회사 Camera lens module and it's manufacture method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070106069A (en) 2006-04-28 2007-11-01 테라셈 주식회사 Camera lens module and it's manufacture method

Also Published As

Publication number Publication date
KR102065033B1 (en) 2020-01-10

Similar Documents

Publication Publication Date Title
KR102395360B1 (en) A device controller and method for performing a plurality of write transactions atomically within a nonvolatile data storage device
US7325112B2 (en) High-speed snapshot method
TWI394164B (en) Interruptible cache flushing in flash memory systems
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
US20110010499A1 (en) Storage system, method of controlling storage system, and method of controlling control apparatus
US9015445B2 (en) Method and system for manipulating data
CN106708444A (en) Data storage method and hard disc controller
US7487298B2 (en) Disk array device, method for controlling the disk array device and storage system
US20110238915A1 (en) Storage system
KR20140100113A (en) Storage device and data processing method thereof
JP2006099802A (en) Storage controller, and control method for cache memory
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
KR102065033B1 (en) Method for storing and recovering of high speed data on memory and memory for performing the same
US8214597B2 (en) Cache tentative read buffer
US7107404B2 (en) Method and system for data processing for controlling a cache memory
JP2013029911A (en) Control device, control method, and storage device
KR102343600B1 (en) Memory controller and storage device including the same
US7996598B2 (en) Memory management module
JP3008801B2 (en) Storage device system and disk array controller
US20230019878A1 (en) Systems, methods, and devices for page relocation for garbage collection
JPH0484215A (en) Data dual writing method for disk controller
JPH06131123A (en) External storage device for computer
JP3526160B2 (en) Data cache control method
KR101744401B1 (en) Method for storaging and restoring system status of computing apparatus and computing apparatus
JP3585859B2 (en) Disk control method and information processing device

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