KR102065033B1 - 메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리 - Google Patents

메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리 Download PDF

Info

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

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

메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리가 개시된다. 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 활성화된 데이터 및 테이블 제어 정보의 저장을 위한 데이터 캐쉬로 사용되는 듀얼-포트 디램(DRAM)와 데이터를 안정적으로 보관하기 위한 비활성 영역으로 사용되는 플래시 메모리를 포함하되, 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없앨 수 있다.

Description

메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리{Method for storing and recovering of high speed data on memory and memory for performing the same}
본 발명은 메모리의 데이터 처리 방법에 관한 것으로서, 보다 상세하게는 메모리 상에서 고속 데이터의 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리에 관한 것이다.
플래시 메모리는 저장 매체로 비휘발성을 특징으로 가지고 있으나, 데이터 쓰기에는 속도의 한계를 보이고 있다. 또한, 플래시 메모리는 데이터 쓰기 동작을 반복해서 수행할 경우, 쓰기 횟수에 제한적인 한계를 가지고 있다. 디램(dynamic random access memory, DRAM)은 데이터 처리와 고속화에 장점을 가지나 휘발성 특성으로 비활성화하기 위해서는 특수한 제반 설비가 필요하다는 단점을 가지고 있다.
종래에 디램(DRAM) 및 플래시 메모리 기반의 반도체 메모리 디스크와 스토리지는 디램을 관리 테이블에 대한 저장 수단 및 플래시 메모리의 내용을 외부 인터페이스에 전달하기 위한 단순한 데이터 버퍼로서 사용하였다.
이 방법은 적은 용량의 디램을 사용할 수는 있으나 전체적인 성능은 플래시 메모리의 읽기/쓰기 속도가 좌우하게 된다. 또한 플래시 메모리를 기반으로 하는 반도체 메모리 디스크는 쓰기 횟수 한계와 속도 한계를 가지고 있다. 쓰기 동작을 할 경우 해당 블록에 데이터를 삭제하고 다시 써넣은 작업을 하게 되며 쓰기 동작 시 해당 블록에 높은 전압을 일정 시간 부가하게 되어 반복적인 쓰기 작업을 할 경우, 누설 전류로 인한 불량 발생으로 블록 전체를 사용하지 못하게 된다. 이러한 경우, 직접적인 데이터 입력 작업이 연속적으로 이뤄지는 서버 환경에서 안정성 문제가 있다.
KR 10-2007-0106069
본 발명의 일 측면은 메모리 상에서 고속 데이터 저장 및 복원 방법을 제공한다.
본 발명의 다른 측면은 고속 데이터 저장 및 복원 방법을 수행하는 메모리를 제공한다.
본 발명의 일 측면에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 활성화된 데이터 및 테이블 제어 정보의 저장을 위한 데이터 캐쉬로 사용되는 듀얼-포트 디램(DRAM)와 데이터를 안정적으로 보관하기 위한 비활성 영역으로 사용되는 플래시 메모리를 포함할 수 있되, 상기 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없앨 수 있다.
한편, 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 상기 듀얼-포트 디램을 관리하기 위한 디램 컨트롤러, 상기 플래시 메모리를 관리하기 위한 플래시 컨트롤러, 상기 듀얼-포트 디램의 데이터를 쓰기 및/또는 백업 또는 읽기 및/또는 복원하기 위한 백업/복원 컨트롤러와 상기 외부 인터페이스 컨트롤러로부터 읽기 및 쓰기와 관련된 제어 신호와 외부 상태 변화에 따른 신호를 수신하고, 상기 디램 컨트롤러와 백업/복원 컨트롤러 및 상기 플래시 컨트롤러를 제어하며, 동작 상태에 따라 상기 외부 인터페이스 컨트롤러의 신호를 받아 디램 컨트롤러 또는 플래시 컨트롤러를 통해서 데이터를 읽어 상기 외부 인터페이스 컨트롤러 전달하거나 상기 외부 인터페이스 컨트롤러를 통해 들어오는 데이터를 상기 듀얼-포트 디램 또는 상기 플래시 메모리에 쓰도록 제어하는 동작을 수행하도록 구현되는 I/O 컨트롤러를 더 포함할 수 있다.
또한, 상기 쓰기/백업 컨트롤러는 전원 차단시 변경된 상기 듀얼-포트 디램의 데이터를 상기 플래시 메모리에 백업하거나 상기 I/O 컨트롤러로부터 쓰기 명령이 제어 신호로 들어왔을 때 쓰기 데이터가 저장되는 상기 듀얼-포트 디램에서 미스가 발생했을 경우 데이터 블록이 수정된 상태이면 상기 데이터 블록을 플래시 메모리에 백업할 수 있다.
또한, 상기 하이브리드 메모리 구조는 상기 데이터 읽기 명령의 존재하는지 여부를 판단하고, 상기 데이터 읽기 명령이 존재하는 경우, 상기 데이터 읽기 명령을 상기 외부 인터페이스 컨트롤러로부터 상기 I/O 컨트롤러로 전달하고, 상기 하이브리드 메모리 구조는 상기 I/O 컨트롤러로부터 상기 디램 컨트롤러에 상기 데이터 읽기 명령을 보내 상기 듀얼-포트 디램에서 논리적 주소와 일치하는 데이터를 읽어오거나 상기 플래시 메모리에서 데이터를 읽어오고 상기 듀얼-포트 디램을 업데이트하고, 상기 하이브리드 메모리 구조는 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생된 경우, 상기 듀얼-포트 디램의 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단하고, 상기 하이브리드 메모리 구조는 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정되었다면 수정된 디램 페이지를 상기 플래시 메모리에 백업하고, 상기 하이브리드 메모리 구조는 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 상기 플래시 메모리 상의 데이터를 전송하고, 상기 하이브리드 메모리 구조는 상기 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생되지 않은 경우, 상기 듀얼-포트 디램 상의 데이터를 전송할 수 있다.
또한, 상기 하이브리드 메모리 구조는 전원 플래그(flag)가 0인지 여부를 판단하고 상기 전원 플래그가 0인 경우, 데이터에 대한 백업을 수행하고, 상기 하이브리드 메모리 구조는 상기 전원 플래그가 0인 경우, 상기 듀얼-포트 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고 상기 듀얼-포트 디램으로부터 상기 플래시 메모리로 백업을 수행하고, 상기 하이브리드 메모리 구조는 상기 백업 카운터에 대한 카운팅을 기반으로 상기 백업 카운터가 0인 경우, 백업 플래그를 0으로 설정하고, 상기 하이브리드 메모리 구조는 상기 전원 플래그가 0이 아닌 경우, 데이터 쓰기 명령에 대한 판단을 수행하고, 상기 데이터 쓰기 명령이 있다면, 상기 디램 미스의 발생 여부를 판단하고, 상기 하이브리드 메모리 구조는 상기 데이터 쓰기 명령이 상기 외부 인터페이스 컨트롤러에서 상기 I/O 컨트롤러로 전달되면 상기 듀얼-포트 디램에 해당 페이지가 있는지 여부를 조사하여 상기 디램 미스 발생 여부를 판단하고, 상기 하이브리드 메모리 구조는 디램 히트면 상기 듀얼-포트 디램에 쓰기를 수행하고, 상기 디램 미스인 경우, 디램 페이지의 수정 여부를 판단하여, 상기 디램 페이지가 수정되지 않은 경우, 상기 플래시 메모리로부터 해당 페이지를 읽고 상기 듀얼-포트 디램을 업데이트하여 디램 라이트(write)수행하고, 상기 디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행하고, 상기 하이브리드 메모리 구조는 로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 상기 로그 버퍼가 풀인 경우, 상기 로그 버퍼와 데이터 버퍼를 머지하고, 로그 버퍼 컴프레션을 수행할 수 있다.
본 발명의 또 다른 측면에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은 듀얼-포트 디램(DRAM)이 데이터 캐쉬로 사용되어 활성화된 데이터 및 테이블 제어 정보의 저장하는 단계, 플래시 메모리가 비활성 영역으로 사용되어 데이터를 안정적으로 보관하는 단계를 포함할 수 있되, 상기 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없앨 수 있다.
한편, 듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은 상기 하이브리드 메모리 구조가 상기 데이터 읽기 명령을 외부 인터페이스 컨트롤러로부터 I/O 컨트롤러로 전달하는 단계, 상기 하이브리드 메모리 구조가 상기 I/O 컨트롤러로부터 디램 컨트롤러에 상기 데이터 읽기 명령을 보내 상기 듀얼-포트 디램에서 논리적 주소와 일치하는 데이터를 읽어오거나 상기 플래시 메모리에서 데이터를 읽어오고 상기 듀얼-포트 디램을 업데이트하는 단계, 상기 하이브리드 메모리 구조가 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생된 경우, 상기 듀얼-포트 디램의 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단하는 단계, 상기 하이브리드 메모리 구조가 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정되었다면 수정된 디램 페이지를 상기 플래시 메모리에 백업하는 단계, 상기 하이브리드 메모리 구조가 상기 듀얼 포트 디램의 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 상기 플래시 메모리 상의 데이터를 전송하는 단계와 상기 하이브리드 메모리 구조가 상기 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생되지 않은 경우, 상기 듀얼-포트 디램 상의 데이터를 전송하는 단계를 포함할 수 있다.
또한, 듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은 상기 하이브리드 메모리 구조가 전원 플래그(flag)가 0인지 여부를 판단하고 상기 전원 플래그가 0인 경우, 데이터에 대한 백업을 수행하는 단계, 상기 하이브리드 메모리 구조가 상기 전원 플래그가 0인 경우, 상기 듀얼-포트 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고 상기 듀얼-포트 디램으로부터 상기 플래시 메모리로 백업을 수행하는 단계, 상기 하이브리드 메모리 구조가 상기 백업 카운터에 대한 카운팅을 기반으로 상기 백업 카운터가 0인 경우, 백업 플래그를 0으로 설정하는 단계, 상기 하이브리드 메모리 구조가 상기 전원 플래그가 0이 아닌 경우, 데이터 쓰기 명령에 대한 판단을 수행하고, 상기 데이터 쓰기 명령이 있다면, 상기 디램 미스의 발생 여부를 판단하는 단계, 상기 하이브리드 메모리 구조가 상기 데이터 쓰기 명령이 상기 외부 인터페이스 컨트롤러에서 상기 I/O 컨트롤러로 전달되면 상기 듀얼-포트 디램에 해당 페이지가 있는지 여부를 조사하여 상기 디램 미스 발생 여부를 판단하는 단계와 상기 하이브리드 메모리 구조가 디램 히트면 상기 듀얼-포트 디램에 쓰기를 수행하고, 상기 디램 미스인 경우, 디램 페이지의 수정 여부를 판단하여, 상기 디램 페이지가 수정되지 않은 경우, 상기 플래시 메모리로부터 해당 페이지를 읽고 상기 듀얼-포트 디램을 업데이트하여 디램 라이트(write)수행하고, 상기 디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행하는 단계를 더 포함할 수 있다.
또한, 듀얼-포트 디램을 사용한 하이브리드 메모리의 동작 방법은 상기 하이브리드 메모리 구조가 로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 상기 로그 버퍼가 풀인 경우, 상기 로그 버퍼와 데이터 버퍼를 머지하고, 로그 버퍼 컴프레션을 수행하는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따른 메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리는 디램과 플래시메모리를 같이 사용하여 하이브리드 형태의 반도체 메모리 디스크를 구성하여 메모리의 성능 향상이 이루어질 수 있다. 구체적으로 성능 향상을 위해 듀얼-포트(dual-port) 디램이 사용되고 디램 인터페이스를 사용하여 직접 외부 인터페이스와 데이터를 주고 받을 수 있다.
또한, 플래시 메모리를 로그 버퍼와 데이터 버퍼로 분리하여 플래시 메모리의 쓰기 시간을 줄이는 방법을 사용하고 듀얼-포트 디램 인터페이스를 직접 사용하여 데이터를 제공하며 디램과 플래시메모리의 관리를 내부에서 직접 관리하는 방식으로 메모리의 성능 향상이 이루어질 수 있다.
도 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은 본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서 데이터 쓰기/백업 방법을 나타낸 순서도이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예와 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조 부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 도면들을 참조하여 본 발명의 바람직한 실시예들을 보다 상세하게 설명하기로 한다.
본 발명의 실시예에 따른 듀얼 포트(dual-port) 디램(DRAM)을 사용한 하이브리드 메모리 구조에서는 디램(DRAM)과 플래시 메모리를 같이 사용하여 하이브리드 형태의 반도체 메모리디스크를 구성하는 방법이 개시된다. 구체적으로 성능 향상을 위해 디램을 읽기/쓰기의 주된 영역으로 사용하고 경우에 따라서 대용량의 디램을 플래시 메모리의 캐쉬로 사용할 수 있는 방법이 개시된다. 성능 향상을 위해 듀얼-포트 디램이 사용되고 디램 인터페이스를 기반으로 직접 외부 인터페이스와 데이터를 주고 받을 수 있다. 고속이기는 하나 고가의 디램이 캐쉬 형태로 쓰일 경우, 플래시 메모리에 비해 적은 용량이 사용될 수 있고 따라서 미스(miss)가 발생했을 경우 수정된 내용이 있으면 플래시 메모리에 쓰기 동작이 수행되어야 한다. 기존의 플래시 메모리는 같은 영역에 쓰기를 해야 할 경우, 시간이 많이 걸리는 블록 단위의 삭제(erase)가 수행된 이후, 쓰기 동작을 수행해야 한다. 따라서, 기본적으로 많은 시간이 걸린다.
본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서는 플래시 메모리를 로그 버퍼와 데이터 버퍼로 분리하여 플래시 메모리의 쓰기 시간이 감소될 수 있고, 듀얼 포트 디램 인터페이스를 통해 직접적으로 데이터가 제공되며 디램과 플래시 메모리의 관리가 내부에서 직접 수행될 수 있다.
고속의 읽기 및 쓰기 문제를 해결하기 위하여 본 발명의 실시예에 따른 듀얼 포트 디램을 사용한 하이브리드 메모리 구조에서는 디램 인터페이스를 통하여 디램 및 플래시 메모리가 하이브리드로 조합되어 구성될 수 있다. 디램은 활성화된 데이터 및 테이블 제어 정보를 저장하는 공간으로 사용되고 플래시 메모리가 데이터를 안정적으로 보관하기 위한 비활성 영역으로 사용될 수 있다. 기존의 디램 인터페이스가 그대로 사용되면서 외부 인터페이스와의 충돌을 방지하기 위해 듀얼 포트 디램이 사용될 수 있다.
플래시 메모리에 대한 액세스를 최소화하기 위해 듀얼 포트 디램이 데이터 캐쉬로 사용될 수 있다. 디램 캐쉬 미스(miss)시 또는 전원 오프(off)시 쓰기/백업 컨트롤러를 통하여 수정된 디램 데이터가 플래시 메모리에 저장될 수 있다. 전원 온(on)시 또는 디램 캐쉬 미스시 새로운 데이터를 읽어 오는 경우, 읽기/복원 컨트롤러를 통하여 해당 데이터가 플래시 메모리에서 읽힐 수 있다. 플래시 컨트롤러는 플래시 메모리를 데이터 블록(data block)과 로그 블록(log block)으로 구분하여 관리할 수 있다. 또한, 플래시 컨트롤러는 데이터 블록의 매핑을 관리하는 데이터 블록 매핑 테이블(data block mapping table) 및 로그 블록에 시퀀셜(sequential)한 페이지 단위의 쓰기 및 읽기 동작을 수행할 수 있도록 하는 로그 페이지 풀(Log Page Pool)과 로그 페이지 디스크립터(Log Page Descriptor)를 가지고 플래시 메모리를 관리할 수 있다.
또한 듀얼 포트 디램을 사용한 하이브리드 메모리 구조는 전원 온/오프(on/off) 감지 로직, 동작 상태를 확인 하기 위한 상태/제어 레지스터, 입출력 데이터의 처리와 모듈 동작 제어와 DMA(direct memory access)를 관장하는 I/O(input/output) 컨트롤러를 포함할 수 있다.
플래시 메모리의 페이지는 반드시 삭제(erase)를 수행한 후 프리(free) 상태일 때에만 쓰기를 할 수 있다. 데이터가 변경되면, 기존의 저장된 페이지에 중복되어 쓸 수 없고 페이지의 내용은 먼저 내부 데이터 버퍼로 복사된 후 데이터 버퍼에서 변경되어 또 다른 새로운 프리(free) 상태의 페이지에 기록될 수 있다. 이는 리드-모디파이-라이트(Read-Modify-Write)라는 용어로 표현될 수 있다. 즉, 데이터는 다른 페이지로 이동하지 않고 변경될 수 없어 인-플레이스 업데이트(in-place update)는 불가능할 수 있다. 이렇게 변경된 데이터가 새로운 페이지에 완전히 기록되면, 원본 페이지는 스테일(stale)로 표시되고 삭제(Erase)되기 전까지 그 상태로 남게 된다. 페이지는 덮어 쓰기가 불가능하기 때문에 한번 스테일 상태가 된 페이지는 반드시 삭제하는 작업을 거쳐서 프리(free) 상태로 전이되어야 한다. 그러나 삭제는 단일 페이지 단위로 처리될 수 없고, 페이지가 포함된 블록에 대해 통째로 수행되어야 하고 많은 시간을 필요로 한다.
본 발명의 실시예에 따른 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서는 듀얼 포트 디램의 사용으로 충돌을 최대한 줄임으로써 성능이 향상되고, 디램을 주된 저정 영역으로 사용하기 때문에 플래시메모리 쓰기는 디램 미스가 발생한 경우 페이지의 내용이 수정된 상태이거나 전원이 차단 되어 디램의 내용을 플래시메모리로 백업하는 경우로 제한된다.
플래시메모리의 데이터블록에 쓰기 전에 로그 블록에 시퀀셜(sequential)하게 임시적으로 쓰기가 수행될 수 있다. 또한 로그 블록 컴프레션(compression) 방법을 사용하여 로그 블록의 활용도를 최대화하여 데이터 블록과의 머지(merge) 작업이 최소화될 수 있다.
이하, 본 발명의 실시예에서는 듀얼-포트 디램을 사용한 하이브리드 메모리가 구체적으로 개시된다.
도 1 은 본 발명에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조를 나타낸 블록도이다.
도 1을 참조하면, 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 디램 블록(120)과 플래시 블록(130)을 포함할 수 있다.
또한, 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 각 메모리를 관리 하기 위한 디램 컨트롤러(102)와 플래시 컨트롤러(103), 디램의 데이터를 쓰기/백업 또는 읽기/복원하기 위한 백업/복원 컨트롤러(104)와 데이터 버퍼(106), 전원 온/오프(on/off) 감지 로직(101), 동작 상태를 확인하기 위한 상태/제어 레지스터(105), 입출력 데이터의 처리와 모듈 동작 제어와 DMA(direct memory access)를 관장하는 I/O(input/output) 컨트롤러(107)를 포함하는 내부 제어 컨트롤러(110)를 포함할 수 있다.
I/O 컨트롤러(107)는 외부 인터페이스 컨트롤러(200)로부터 읽기 및 쓰기와 관련된 제어 신호와 외부 상태 변화에 따른 신호를 수신하고 디램(DRAM) 컨트롤러(102)와 백업/복원 컨트롤러(104), 플래시 컨트롤러(103)를 제어할 수 있다.
또한, I/O 컨트롤러(107)는 동작 상태에 따라 인터페이스 컨트롤러(200)의 신호를 받아 디램 또는 플래시 컨트롤러(102)를 통해서 데이터를 읽어 인터페이스 컨트롤러(200)로 전달하거나 인터페이스 컨트롤러(200)를 통해 들어오는 데이터를 디램 또는 플래시메모리에 쓰도록 제어하는 동작을 수행할 수 있다.
듀얼-포트 디램을 사용한 하이브리드 메모리 구조의 관리를 위해서 내부적으로 디램과 플래시 메모리 사이에 백그라운드로 많은 동작이 수행될 수 있다.
내부 동작과 인터페이스 컨트롤러(200)의 읽기 및 쓰기 요청시 디램 블록(120)에 대한 액세스 충돌이 발생할 수 있다. 도 1에서와 같이 디램 블록(120)을 듀얼-포트 디램으로 구성하여 충돌 없이 요청이 수행될 수 있다. 디램 블록(120)이 듀얼-포트로 구성되는 경우, 외부 디램 인터페이스 컨트롤러(200)와 내부 제어 컨트롤러(110) 간의 액세스 충돌이 없어질 수 있다. 또한 전원 온(on) 시 내부 제어 컨트롤러(110)의 복원 시작 시점이 외부 인터페이스 컨트롤러(200)의 읽기 요청보다 먼저 시작된다면 외부 인터페이스 컨트롤러(200)가 읽어 가는 속도보다 내부 복원 속도가 더 빠르도록 구현 가능할 수 있다. 따라서, 외부 인터페이스 컨트롤러(200)는 복원이 완료될 때까지 기다리거나 자체적으로 복원을 수행하는 지연 없이 읽기/쓰기 과정을 수행함으로써 충돌이나 지연 시간을 줄여 성능이 향상될 수 있다. 상태 레지스터는 정상 동작인지 여부, 백업 진행 여부, 데이터 복원 진행 여부, 백업시 외부 인터페이스 컨트롤러(200)가 현재 상태 저장을 완료했는지 여부 등의 동작 상태 정보를 I/O 컨트롤러(107)가 확인할 수 있도록 한다.
쓰기/백업 컨트롤러(104)는 전원 차단시 변경된 디램 블록(120)의 데이터를 플래시 메모리에 백업할 수 있다. 또한, 쓰기/백업 컨트롤러(104)는 I/O 컨트롤러(107)로부터 쓰기 명령이 제어 신호로 들어왔을 때 쓰기 데이터가 저장되는 디램 블록(120)에서 미스(miss)가 발생했을 경우, 데이터 블록이 수정된 상태이면 데이터 블록을 플래시 메모리에 백업할 수 있다. 쓰기/백업 컨트롤러(104)는 I/O 컨트롤러(107)로부터 쓰기 명령을 수신할 경우, 디램에 해당되는 데이터가 있으면(디램 히트(DRAM hit)) 디램에 직접 쓰기를 수행하고 디램에 해당되는 데이터가 없으면(디램 미스(DRAM miss)), 해당 페이지의 수정된 상태를 조사하여 수정된 경우, 플래시 컨트롤러(103)에 쓰기/백업을 요청하고 새로운 데이터 읽기를 요청할 수 있다. 외부 전원이 차단되는 경우는 전체 디램 데이터 블록 및 관련 테이블 정보에 대한 백업을 수행해야 한다.
플래시 블록(130)은 디램 블록(120)의 논리적 페이지 주소(LPN: Logical Page Number)에 해당하는 물리적 페이지 주소(PPN: Physical Page Number) 위치에 데이터를 저장하게 되며, 성능 향상을 위해 로그 블록과 데이터 블록으로 구성된다.
읽기 및 쓰기에 대한 내부 제어 동작은 다음과 같다. 전원이 처음 온(on) 시 디램은 초기 상태로 데이터를 가지고 있지 않으므로 내부 제어 컨트롤러(110)는 플래시 메모리로부터 읽기/복원 과정을 통해(Warm Start) 디램에 데이터를 가져다 놓을 수 있다. 외부 인터페이스 컨트롤러(200)의 읽기 요청이 있을 경우 먼저 디램에 액세스하여 관련 페이지가 존재하는지 확인하고 페이지가 디램에 존재하면(디램 히트(DRAM hit)) 디램 인터페이스를 통하여 고속으로 읽기 요청을 수행한다. 디램에 존재하지 않으면(디램 미스(DRAM miss)) 먼저 플래시 컨트롤러(103) 내부의 로그 블록 관리 테이블(로그 페이지 풀(Log Page Pool) 및 로그 페이지 디스크립터(Log Page Descriptor))을 통해 플래시 메모리의 로그 블록에 해당 페이지가 존재하는지 여부를 확인하고 해당 페이지가 존재하면 로그 블록으로부터 페이지를 읽어 디램 및 외부 인터페이스 컨트롤러(200)에 해당 데이터를 전달할 수 있다. 플래시 로그 블록에 해당 페이지가 없으면 플래시 컨트롤러(103) 내부의 데이터 블록 관리 테이블(Data Block Mapping Table)을 통해 플래시 메모리의 데이터 블록으로부터 페이지를 읽어 디램 및 외부 인터페이스 컨트롤러(200)에 해당 데이터를 전달할 수 있다. 읽기/복원 컨트롤러는 디램에 최신의 페이지 정보를 저장하고 관련 제어 정보를 업데이트(update)할 수 있다.
외부 인터페이스 컨트롤러(200)의 쓰기 요청이 있을 경우 먼저 디램에 액세스하여 관련 페이지가 존재하는지 확인하고 페이지가 디램에 존재하면(DRAM hit) 디램 인터페이스를 통하여 고속으로 쓰기 요청을 수행할 수 있다. 반대로 페이지가 디램에 존재하지 않으면(DRAM miss) 읽기 요청과 같이 먼저 플래시 컨트롤러 내부의 로그 블록 관리 테이블(로그 페이지 풀(Log Page Pool) 및 로그 페이지 디스크립터(Log Page Descriptor))을 통해 플래시 메모리의 로그 블록에 해당 페이지가 존재하는지 여부를 확인할 수 있다. 이후, 해당 페이지가 존재하면 로그 블록으로부터 페이지를 읽어 내부 데이터 버퍼에 임시 저장하고 쓰기 데이터를 해당 위치에 쓴 다음 디램에 해당 데이터를 전달하여 최신 페이지를 업데이트할 수 있다. 반대로 플래시 로그 블록에 해당 페이지가 없으면 플래시 컨트롤러(103) 내부의 데이터 블록 관리 테이블(Data Block Mapping Table)을 통해 플래시 메모리의 데이터 블록으로부터 페이지를 읽어 내부 데이터 버퍼에 임시 저장하고 쓰기 데이터를 해당 위치에 쓴 다음 디램에 해당 데이터를 전달하여 최신 페이지를 업데이트할 수 있다. 읽기 요청이든 쓰기 요청이든 해당 페이지가 디램에 존재하지 않으면(디램 미스(DRAM miss)) 새로운 페이지를 플래시 메모리로부터 읽기 전에 기존의 디램에 존재하는 페이지가 수정이 되었는지 여부를 확인하고 수정이 되었으면 플래시 메모리에 쓰기/백업을 수행하는데 성능 향상을 위해 플래시 메모리의 로그 블록을 사용하여 쓰기를 수행하고 제어 알고리즘에 따라 내부 제어 레지스터에 프로그래밍 된 값을 통해 프로그래밍된 시점이 도달하면 자체 로그 블록 컴프레션(compression)과 데이터 블록과의 로그 블록 머지(merge) 작업을 수행할 수 있다.
도 2 는 본 발명의 실시예에 따른 낸드 데이터 블록(NAND Data Block) 및 관련 데이터 블록 매핑 테이블(Data Block Mapping Table)을 나타낸 개념도이다.
도 2를 참조하면, 데이터 블록 매핑(data block mapping table)(200)은 디램의 LBN(Logical Block Number)과 플래시 메모리의 PBN(Physical Block Number)의 매핑을 수행하는 정보를 가지고 있고 백업/복원 컨트롤러 및 플래시 컨트롤러에 의해 관리될 수 있다.
도 2를 참조하면, 플래시 메모리는 페이지 단위의 관리를 할 수도 있지만 제어 복잡성 및 관리 테이블이 차지하는 영역을 줄이기 위해 블록 단위의 관리를 수행할 수 있다.
도 3은 본 발명의 실시예에 따른 NAND 로그 블록(Log Block) 및 관련 로그 페이지 풀(Log Page Pool) 및 로그 페이지 디스크립터(Log Page Descriptor)를 나타낸 개념도이다.
플래시 컨트롤러는 전체 플래시 메모리를 데이터 블록(Data block)과 로그 블록(Log Block)으로 나누어 관리할 수 있다. 외부 인터페이스 컨트롤러(200)의 읽기/쓰기 요청으로 인한 백업/복원 컨트롤러로부터 플래시 메모리 읽기/쓰기 요청이 발생했을 경우 읽기 및 쓰기가 수행될 수 있다.
로그 페이지 풀(300)은 사용 가능한 로그 블록의 페이지(Page) 정보를 가지고 있으며 플래시 컨트롤러의 요청에 의해 페이지 할당 또는 페이지 릴리즈(release)에 대한 관리를 수행한다.
로그 페이지 디스크립터(320)에서 각 엔트리(Entry)는 로그 블록에서 유효(valid)한 로그 블록 페이지(Log Block Page)를 차례로 표시하는데 로그 블록 컴프레션(Log Block Compression) 및 데이터 블록(Data Block)과의 로그 블록 머지(Log Block Merge) 작업시 사용될 수 있다.
도 4 는 본 발명의 실시예에 따른 NAND 로그 블록(Log Block)의 컴프레션(Compression) 및 로그 페이지 디스크립터 카피(Log Page Descriptor Copy) 동작을 나타낸 개념도이다.
도 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)할 수 있다.
결국은 최종적인 스테일(stale)이 아닌 유효한(valid)한 4개의 페이지만 NAND 로그 블록n(Log Block n)으로 카피(copy)되어 NAND 로그 블록 n(Log Block n)은 4개의 페이지만 쓰여지고 나머지는 엠프티(empty) 상태로 전환되어 컴프레션(Compression)이 수행되고 엠프티 페이지는 다른 쓰기 동작을 수행하는데 사용된다. NAND 로그 블록1(Log Block 1)은 스테일 페이지로 표시되고 나중에 삭제(Erase)를 통해 새로운 NAND 로그 블록으로 사용되며 새로운 페이지들은 로그 페이지 풀에 추가되어 관리될 수 있다.
로그 페이지 디스크립터1(Log Page Descriptor 1)(로그 블록1(Log Block 1)에 해당하는 디스크립터)은 로그 페이지 디스크립터n(Log Page Descriptor n)(로그 블록n(Log Block n))에 해당하는 디스크립터)로 카피될 수 있다.
도 5 는 NAND 로그 블록과 NAND 데이터 블록의 머지(merge) 동작을 나타낸 개념도이다.
도 5에서는 NAND 로그 블록(500)이 머지(merge) 한계 개수(레지스터에 의한 프로그래밍 된 값)에 도달하게 되면 NAND 로그 블록(500)의 가용 페이지 개수가 부족함을 의미한다. 따라서, 데이터 블록과 머지를 수행하고 로그 버퍼의 사용 가능한 페이지를 확보할 수 있다. 머지 수행 후 머지된 NAND 로그 블록(500)은 스테일(stale) 페이지로 표시되고 나중에 삭제를 통해 새로운 NAND 로그 블록(500)으로 사용되며 새로운 페이지들은 로그 페이지 풀에 추가되어 관리될 수 있다.
로그 페이지 풀은 로그 블록 페이지의 할당과 릴리즈(release)를 관리하는데 프로그래밍된 한계 개수에 도달하면 로그 블록 컴프레션 및 머지를 수행하도록 제어 신호를 발생시킬 수 있다.
도 6은 본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서 데이터 읽기 방법을 나타낸 순서도이다.
도 6 에서 데이터 읽기 명령이 존재하는지 여부를 판단한다(S300)
데이터 읽기 명령이 존재하는 경우, 디램 블록에서 데이터 읽기가 수행될 수 있다(단계 S301).
듀얼-포트 디램을 사용한 하이브리드 메모리 구조는 인터페이스 컨트롤러에서 모듈의 I/O 컨트롤러에 전달되고 디램 컨트롤러에 읽기 명령을 보내 디램 블록의 논리적 주소와 일치하는 데이터를 읽어오거나(디램 히트(DRAM hit)) 플래시메모리에서 데이터를 읽어오고 디램을 업데이트할 수 있다(디램 미스(DRAM miss)).
디램 미스가 발생되었는지 여부를 판단하고(단계 S302), 디램 미스가 발생된 경우, 디램 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단할 수 있다.
디램 업데이트 시 기존 페이지가 수정이 되었다면 수정된 디램 페이지를 플래시 메모리에 백업할 수 있다(S305).
디램 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 플래시 메모리로부터 데이터가 전송될 수 있다(S303).
디램 미스가 발생되었는지 여부가 판단되고(단계 S302), 디램 미스가 발생되지 않은 경우, 디램 블록에서 데이터를 전송할 수 있다.
도 7은 본 발명의 실시예에 따른 듀얼-포트 디램을 사용한 하이브리드 메모리 구조에서 데이터 쓰기/백업 방법을 나타낸 순서도이다.
도 7을 참조하면, 전원 플래그(flag)가 0인지 여부를 판단하고(S600), 전원 플래그(flag)가 0인 경우, 전원이 오프(off) 상태이고, 백업을 수행할 수 있다.
전원 플래그가 0인 경우, 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고(S611) 디램으로부터 플래시메모리로 백업을 수행한다(S612).
백업 카운터를 카운팅하고(S613), 백업 카운터가 0인 경우(S614), 백업 플래그를 0으로 설정할 수 있다(S615).
전원 플래그(flag)가 0이 아닌 경우, 전원이 온(on) 상태이고, 데이터 쓰기 명령에 대해 판단할 수 있다(S601).
데이터 쓰기 명령이 있다면, 디램 미스의 발생 여부가 판단될 수 있다(S602).
데이터 쓰기 명령이 인터페이스 컨트롤러에서 I/O 컨트롤러로 전달되면 디램에 해당 페이지가 있는지가 조사되고, 디램 미스 발생 여부가 판단될 수 있다.
디램 히트(hit)면 디램에 쓰기를 수행할 수 있다(S604).
디램 미스인 경우, 디램 페이지의 수정 여부에 대해 판단하고(S603), 디램 페이지가 수정되지 않은 경우, 플래시 메모리로부터 해당 페이지를 읽고(S605) 디램을 업데이트하여(내부 데이터 버퍼에 읽어 온 페이지를 임시 저장하고 데이터를 쓰고 디램 업데이트) 디램 라이트(write)(S604)를 수행할 수 있다.
디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행할 수 있다(S606).
로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 로그 버퍼가 풀(full)인 경우, 로그 버퍼가 데이터 버퍼와 머지되고(S608), 로그 버퍼 컴프레션이 수행될 수 있다(S610).
전술한 방법은 애플리케이션으로 구현되거나 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.
상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거니와 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD 와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서는 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (9)

  1. 듀얼-포트 디램을 사용한 하이브리드 메모리 구조는,
    활성화된 데이터 및 테이블 제어 정보의 저장을 위한 데이터 캐쉬로 사용되는 듀얼-포트 디램(DRAM); 및
    데이터를 안정적으로 보관하기 위한 비활성 영역으로 사용되는 플래시 메모리를 포함하되,
    상기 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없애고,
    상기 듀얼-포트 디램을 관리하기 위한 디램 컨트롤러;
    상기 플래시 메모리를 관리하기 위한 플래시 컨트롤러;
    상기 듀얼-포트 디램의 데이터를 쓰기 및/또는 백업 또는 읽기 및/또는 복원하기 위한 백업/복원 컨트롤러; 및
    상기 외부 인터페이스 컨트롤러로부터 읽기 및 쓰기와 관련된 제어 신호와 외부 상태 변화에 따른 신호를 수신하고, 상기 디램 컨트롤러와 백업/복원 컨트롤러 및 상기 플래시 컨트롤러를 제어하며, 동작 상태에 따라 상기 외부 인터페이스 컨트롤러의 신호를 받아 디램 컨트롤러 또는 플래시 컨트롤러를 통해서 데이터를 읽어 상기 외부 인터페이스 컨트롤러에 전달하거나 상기 외부 인터페이스 컨트롤러를 통해 들어오는 데이터를 상기 듀얼-포트 디램 또는 상기 플래시 메모리에 쓰도록 제어하는 동작을 수행하도록 구현되는 I/O 컨트롤러를 더 포함하며,
    상기 백업/복원 컨트롤러는 전원 차단시 변경된 상기 듀얼-포트 디램의 데이터를 상기 플래시 메모리에 백업하거나 상기 I/O 컨트롤러로부터 쓰기 명령이 제어 신호로 들어왔을 때 쓰기 데이터가 저장되는 상기 듀얼-포트 디램에서 미스가 발생했을 경우 데이터 블록이 수정된 상태이면 상기 데이터 블록을 플래시 메모리에 백업하고,
    상기 하이브리드 메모리 구조는 데이터 읽기 명령이 존재하는지 여부를 판단하고, 상기 데이터 읽기 명령이 존재하는 경우, 상기 데이터 읽기 명령을 상기 외부 인터페이스 컨트롤러로부터 상기 I/O 컨트롤러로 전달하고,
    상기 하이브리드 메모리 구조는 상기 I/O 컨트롤러로부터 상기 디램 컨트롤러에 상기 데이터 읽기 명령을 보내 상기 듀얼-포트 디램에서 논리적 주소와 일치하는 데이터를 읽어오거나 상기 플래시 메모리에서 데이터를 읽어오고 상기 듀얼-포트 디램을 업데이트하고,
    상기 하이브리드 메모리 구조는 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생된 경우, 상기 듀얼-포트 디램의 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단하고,
    상기 하이브리드 메모리 구조는 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정되었다면 수정된 디램 페이지를 상기 플래시 메모리에 백업하고,
    상기 하이브리드 메모리 구조는 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 상기 플래시 메모리 상의 데이터를 전송하고,
    상기 하이브리드 메모리 구조는 상기 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생되지 않은 경우, 상기 듀얼-포트 디램 상의 데이터를 전송하며,
    상기 하이브리드 메모리 구조는 전원 플래그(flag)가 0인지 여부를 판단하고 상기 전원 플래그가 0인 경우, 데이터에 대한 백업을 수행하고,
    상기 하이브리드 메모리 구조는 상기 전원 플래그가 0인 경우, 상기 듀얼-포트 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고 상기 듀얼-포트 디램으로부터 상기 플래시 메모리로 백업을 수행하고,
    상기 하이브리드 메모리 구조는 상기 백업 카운터에 대한 카운팅을 기반으로 상기 백업 카운터가 0인 경우, 백업 플래그를 0으로 설정하고,
    상기 하이브리드 메모리 구조는 상기 전원 플래그가 0이 아닌 경우, 데이터 쓰기 명령에 대한 판단을 수행하고, 상기 데이터 쓰기 명령이 있다면, 상기 디램 미스의 발생 여부를 판단하고,
    상기 하이브리드 메모리 구조는 상기 데이터 쓰기 명령이 상기 외부 인터페이스 컨트롤러에서 상기 I/O 컨트롤러로 전달되면 상기 듀얼-포트 디램에 해당 페이지가 있는지 여부를 조사하여 상기 디램 미스 발생 여부를 판단하고,
    상기 하이브리드 메모리 구조는 디램 히트면 상기 듀얼-포트 디램에 쓰기를 수행하고, 상기 디램 미스인 경우, 디램 페이지의 수정 여부를 판단하여, 상기 디램 페이지가 수정되지 않은 경우, 상기 플래시 메모리로부터 해당 페이지를 읽고 상기 듀얼-포트 디램을 업데이트하여 디램 라이트(write)수행하고, 상기 디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행하고,
    상기 하이브리드 메모리 구조는 로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 상기 로그 버퍼가 풀인 경우, 상기 로그 버퍼와 데이터 버퍼를 머지하고, 로그 버퍼 컴프레션을 수행하는 것을 특징으로 하는 하이브리드 메모리 구조.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 듀얼-포트 디램을 사용한 하이브리드 메모리 동작 방법은,
    듀얼-포트 디램(DRAM)이 데이터 캐쉬로 사용되어 활성화된 데이터 및 테이블 제어 정보를 저장하는 단계;
    플래시 메모리가 비활성 영역으로 사용되어 데이터를 안정적으로 보관하는 단계를 포함하되,
    상기 듀얼-포트 디램은 외부 인터페이스 컨트롤러와 내부 제어 컨트롤러의 액세스 충돌을 없애고,
    하이브리드 메모리 구조가 데이터 읽기 명령을 외부 인터페이스 컨트롤러로부터 I/O 컨트롤러로 전달하는 단계;
    상기 하이브리드 메모리 구조가 상기 I/O 컨트롤러로부터 디램 컨트롤러에 상기 데이터 읽기 명령을 보내 상기 듀얼-포트 디램에서 논리적 주소와 일치하는 데이터를 읽어오거나 상기 플래시 메모리에서 데이터를 읽어오고 상기 듀얼-포트 디램을 업데이트하는 단계;
    상기 하이브리드 메모리 구조가 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생된 경우, 상기 듀얼-포트 디램의 업데이트시 기존 페이지가 수정이 되었는지 여부에 대해 판단하는 단계;
    상기 하이브리드 메모리 구조가 상기 듀얼-포트 디램의 업데이트 시 기존 페이지가 수정되었다면 수정된 디램 페이지를 상기 플래시 메모리에 백업하는 단계;
    상기 하이브리드 메모리 구조가 상기 듀얼 포트 디램의 업데이트 시 기존 페이지가 수정이 되지 않은 경우, 상기 플래시 메모리 상의 데이터를 전송하는 단계; 및
    상기 하이브리드 메모리 구조가 상기 디램 미스가 발생되었는지 여부에 대한 판단을 기반으로 상기 디램 미스가 발생되지 않은 경우, 상기 듀얼-포트 디램 상의 데이터를 전송하는 단계를 포함하며,
    상기 하이브리드 메모리 구조가 전원 플래그(flag)가 0인지 여부를 판단하고 상기 전원 플래그가 0인 경우, 데이터에 대한 백업을 수행하는 단계;
    상기 하이브리드 메모리 구조가 상기 전원 플래그가 0인 경우, 상기 듀얼-포트 디램의 수정된 부분과 관리 테이블 영역의 페이지 개수를 백업 카운터 값으로 설정하고 상기 듀얼-포트 디램으로부터 상기 플래시 메모리로 백업을 수행하는 단계;
    상기 하이브리드 메모리 구조가 상기 백업 카운터에 대한 카운팅을 기반으로 상기 백업 카운터가 0인 경우, 백업 플래그를 0으로 설정하는 단계;
    상기 하이브리드 메모리 구조가 상기 전원 플래그가 0이 아닌 경우, 데이터 쓰기 명령에 대한 판단을 수행하고, 상기 데이터 쓰기 명령이 있다면, 상기 디램 미스의 발생 여부를 판단하는 단계;
    상기 하이브리드 메모리 구조가 상기 데이터 쓰기 명령이 상기 외부 인터페이스 컨트롤러에서 상기 I/O 컨트롤러로 전달되면 상기 듀얼-포트 디램에 해당 페이지가 있는지 여부를 조사하여 상기 디램 미스 발생 여부를 판단하는 단계; 및
    상기 하이브리드 메모리 구조가 디램 히트면 상기 듀얼-포트 디램에 쓰기를 수행하고, 상기 디램 미스인 경우, 디램 페이지의 수정 여부를 판단하여, 상기 디램 페이지가 수정되지 않은 경우, 상기 플래시 메모리로부터 해당 페이지를 읽고 상기 듀얼-포트 디램을 업데이트하여 디램 라이트(write)수행하고, 상기 디램 페이지가 수정된 경우, 로그 버퍼 관리 테이블의 정보를 이용하여 로그 버퍼 쓰기를 수행하는 단계를 포함하고,
    상기 하이브리드 메모리 구조가 로그 버퍼가 풀(full) 상태인지 여부를 판단하고, 상기 로그 버퍼가 풀인 경우, 상기 로그 버퍼와 데이터 버퍼를 머지하고, 로그 버퍼 컴프레션을 수행하는 단계를 더 포함하는 것을 특징으로 하는 하이브리드 메모리 동작 방법.
  7. 삭제
  8. 삭제
  9. 삭제
KR1020170176803A 2017-12-21 2017-12-21 메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리 KR102065033B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170176803A KR102065033B1 (ko) 2017-12-21 2017-12-21 메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176803A KR102065033B1 (ko) 2017-12-21 2017-12-21 메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리

Publications (2)

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

Family

ID=67255683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176803A KR102065033B1 (ko) 2017-12-21 2017-12-21 메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리

Country Status (1)

Country Link
KR (1) KR102065033B1 (ko)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070106069A (ko) 2006-04-28 2007-11-01 테라셈 주식회사 자동초점조절 카메라 렌즈 모듈 및 그 제조방법

Also Published As

Publication number Publication date
KR20190075315A (ko) 2019-07-01

Similar Documents

Publication Publication Date Title
US9898410B2 (en) Hybrid main memory using a fine-grain level of remapping
US8065480B2 (en) Efficiently synchronizing with separated disk caches
US7325112B2 (en) High-speed snapshot method
US7979631B2 (en) Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method
US7610445B1 (en) System and method for improving data integrity and memory performance using non-volatile media
US20100293337A1 (en) Systems and methods of tiered caching
TWI712885B (zh) 版本儲存裝置及其方法
US20100235568A1 (en) Storage device using non-volatile memory
US9959046B2 (en) Multi-streaming mechanism to optimize journal based data storage systems on SSD
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
US11132145B2 (en) Techniques for reducing write amplification on solid state storage devices (SSDs)
CN106708444A (zh) 数据存储方法和硬盘控制器
CN110597742A (zh) 用于具有持久系统存储器的计算机系统的改进存储模型
JP2020191055A (ja) 瞬断からの回復処理方法及び装置、並びにコンピュータ読み取り可能な記憶媒体
US10083116B2 (en) Method of controlling storage device and random access memory and method of controlling nonvolatile memory device and buffer memory
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US10083135B2 (en) Cooperative overlay
KR102065033B1 (ko) 메모리 상에서 고속 데이터 저장 및 복원 방법 및 이러한 방법을 수행하는 메모리
US10430287B2 (en) Computer
US20240232069A1 (en) Method and system for updating file in file system
US20240241656A1 (en) Apparatus and method for dynamically managing host performance booster control mode
US20240061786A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages
KR102343600B1 (ko) 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스
US7996598B2 (en) Memory management module
KR101744401B1 (ko) 컴퓨팅 장치의 시스템 상태 저장, 복원방법 및 이를 위한 컴퓨팅 장치

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