KR101643087B1 - 메모리 제어 방법 및 메모리 제어 장치 - Google Patents

메모리 제어 방법 및 메모리 제어 장치 Download PDF

Info

Publication number
KR101643087B1
KR101643087B1 KR1020150031863A KR20150031863A KR101643087B1 KR 101643087 B1 KR101643087 B1 KR 101643087B1 KR 1020150031863 A KR1020150031863 A KR 1020150031863A KR 20150031863 A KR20150031863 A KR 20150031863A KR 101643087 B1 KR101643087 B1 KR 101643087B1
Authority
KR
South Korea
Prior art keywords
refresh
page
memory control
refreshing
data
Prior art date
Application number
KR1020150031863A
Other languages
English (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 KR1020150031863A priority Critical patent/KR101643087B1/ko
Application granted granted Critical
Publication of KR101643087B1 publication Critical patent/KR101643087B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명은 메모리 제어 방법 및 메모리 제어 장치에 관한 것이다. 본 발명에 따르면, 메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 타임 스탬프를 기록하는 단계; 및 칩 레벨 또는 채널 레벨에 따라 주기적으로 리프레시하는 경우, 상기 타임 스탬프를 기초로 리프레시가 필요한 페이지를 리프레시하는 단계;를 포함하는 메모리 제어 장치가 수행하는 메모리 제어 방법이 제공된다. 본 발명에 따르면, 메모리 시스템의 성능 저하를 방지할 수 있다.

Description

메모리 제어 방법 및 메모리 제어 장치{METHOD AND APPARATUS FOR CONTROLLING MEMORY}
본 발명은, 메모리 제어 방법 및 메모리 제어 장치에 관한 것이다.
낸드 플래시 메모리 기반 저장장치는 대부분의 시스템 환경에 적용되고 있다. 스마트폰, 랩탑, 임베디드 시스템 등에서 주 저장장치로써 사용되고 있으며, 최근에는 엔터프라이즈 급의 환경으로 빠른 확장을 보이고 있다.
이에 따라서, 낸드 플래시 메모리 기반 저장장치는 대용량과 고성능에 대한 요구가 증가하고 있다. 이를 위해, 최근 낸드 플래시 메모리 저장장치들은 다수의 플래시 모듈을 구축함으로써 대용량의 빠른 속도의 저장장치를 구축한다.
다수의 낸드 플래시 메모리는 병렬성을 제공하기 위해서 채널/웨이 등으로 설계됨으로써 더욱 빠른 성능을 보여준다.
낸드 플래시 메모리 저장장치는 호스트 인터페이스와 컨트롤러, 그리고 다수의 플래시 모듈로 구성된다. 호스트 컨트롤러는 SATA나 PCIe와 같은 인터페이스를 사용하고 컨트롤러는 호스트 인터페이스로부터 들어오는 요청을 FTL(Flash Translation Layer)라는 펌웨어(Firmware)로 제어할 수 있다. 또한 컨트롤러에서 데이터를 플래시 메모리에 기록하기 위해서 낸드 컨트롤러로 전송하고 응답을 받는다.
낸드 플래시 메모리의 특성 상 같은 위치에 데이터 리프레시가 불가능하다. 그렇기 때문에 데이터의 논리적인 위치를 물리적인 위치로 변환해주는 기능이 필요한데, 이를 FTL에서 맵핑 테이블에서 담당한다. 또한 이미 사용한 블록들을 재사용하기 위해서는 삭제(Erase) 과정을 거치게 되는데, 낸드 플래시 메모리는 삭제 연산의 횟수 제한이 있고 그 이상의 연산을 수행하면 고장이 발생한다. 그렇기 때문에 특정 위치의 삭제 연산이 집중되는 것을 막기 위해서 웨어 레벨링(Wear-Leveling)을 수행하게 된다. 또한 최대한 깨끗한 저장 공간을 확보하기 위해서 가비지 컬랙션(Garbage Collection)을 수행하기도 한다.
다수의 낸드 플래시 모듈들은 채널/웨이 단위로 구축되는데, 채널 단위 또는 웨이 단위 각각의 낸드 플래시 모듈에 대한 연산 명령을 병렬적으로 수행할 수 있다.
낸드 플래시 메모리는 데이터를 저장하는 해당 위치의 셀(cell)에 강력한 전압을 주게 되면 셀 내부에 전자가 저장되는 방식으로 동작한다. 셀은 기본적으로 절연층(산화막)으로 막혀 있으며 전압을 통해서 전자를 통과시켜서 저장하는 방식이다. 하지만 한번 저장된 셀에 일정 시간동안 접근을 하지 않는 경우에는 저장되어 있던 전자가 서서히 누수가 발생한다. 일정량의 전자 누수가 발생을 한 상태의 셀에 읽기 연산을 수행했을 때, 잘못된 값(0이 1로, 또는 1이 0으로) 읽혀지는 문제(Retention Fail)를 발생시킬 수 있다.
이를 해결하기 위해서 최근에는 한번 쓰이고 오랫동안 접근하지 않은 데이터를 다시 읽어서 다른 위치에 쓰는 방식으로 데이터를 리프레시함으로써 보존 능력을 높이고 있다.
하지만 이러한 기술은 낸드 플래시 메모리 저장장치가 대용량으로 확장되면서 다수의 데이터를 리프레시해야 때문에 상당한 오버헤드가 발생한다.
이에, 상기 메모리 저장장치의 문제점들을 해결할 수 있는 메모리 제어 기술을 제안하고자 한다.
본 발명은 상술한 문제점을 모두 해결하는 것을 목적으로 한다.
본 발명은, 호스트 인터페이스 등에서 들어오는 요청에 대한 응답 시간의 지연을 최소화 또는 제거하는 것을 제공하는 것을 다른 목적으로 한다.
본 발명은, 메모리 시스템의 성능 저하를 방지할 수 있는 것을 또 다른 목적으로 한다.
상기한 바와 같은 본 발명의 목적을 달성하고, 후술하는 본 발명의 특징적인 효과를 실현하기 위한, 본 발명의 특징적인 구성은 하기와 같다.
일실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 메모리 제어 방법은, 메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 타임 스탬프를 기록하는 단계; 및 칩 레벨 또는 채널 레벨에 따라 주기적으로 리프레시하는 경우, 상기 타임 스탬프를 기초로 리프레시가 필요한 페이지를 리프레시하는 단계;를 포함할 수 있다.
다른 실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 상기 타임 스탬프는, GPT(Global Purpose Timer) 시간 정보, 칩 컨트롤러 내부 시간 정보, 호스트로부터 획득한 시간 정보 중 적어도 하나에 따라 결정되는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 상기 리프레시하는 단계는, 각각의 채널마다 특정 낸드 칩에서 주기적 리프레시를 수행할 경우, I/O 요청은 상기 특정 낸드 칩 이외의 다른 칩으로 분산하여 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 상기 리프레시하는 단계는, 특정 채널의 칩들에서 리프레시를 수행할 경우, I/O 요청은 상기 특정 채널 이외의 다른 채널로 분산하여 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 상기 리프레시하는 단계는, 상기 페이지 중 주기적 리프레시를 수행하고자하는 칩 또는 채널의 블록의 0번 페이지의 스페어 영역의 타임 스탬프의 값과 기정의된 제한 타임 스탬프의 값을 비교하여 상기 리프레시가 필요한 페이지를 선정하여 리프레시하는 것을 포함할 수 있다.
일실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 메모리 제어 방법은, 메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 보존 카운트를 기록하는 단계; 및 주기적으로 리프레시하는 경우, 상기 보존 카운트를 기초로 리프레시가 필요한 페이지를 리프레시하는 단계;를 포함할 수 있다.
다른 실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 상기 리프레시하는 단계는, 자주 접근되는 데이터인 핫 데이터와 핫 데이터 이외의 데이터인 콜드 데이터를 구분하여 서로 다른 블록에 기록하여 상기 콜드 데이터를 포함한 페이지를 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 상기 리프레시하는 단계는, 상기 핫 데이터를 포함한 페이지를 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 상기 리프레시하는 단계는, 다음 리프레시 주기까지 데이터를 보존 가능하지 않는 페이지를 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서, 상기 리프레시하는 단계는, 다음 리프레시 주기의 시점에서 상기 다음 리프레시 주기까지 데이터를 보존 가능한 페이지를 리프레시하는 것을 포함할 수 있다.
일실시예에 따른, 메모리 제어 장치에 있어서, 메모리 제어 장치는, 메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 타임 스탬프를 기록하는 타임 스탬프 기록부; 및 칩 레벨 또는 채널 레벨에 따라 주기적으로 리프레시하는 경우, 상기 타임 스탬프를 기초로 리프레시가 필요한 페이지를 리프레시하는 리프레시부;를 포함할 수 있다.
다른 실시예에 따른, 메모리 제어 장치에 있어서, 상기 타임 스탬프는, GPT(Global Purpose Timer) 시간 정보, 칩 컨트롤러 내부 시간 정보, 호스트로부터 획득한 시간 정보 중 적어도 하나에 따라 결정되는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치에 있어서, 상기 리프레시부는, 각각의 채널마다 특정 낸드 칩에서 주기적 리프레시를 수행할 경우, I/O 요청은 상기 특정 낸드 칩 이외의 다른 칩으로 분산하여 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치에 있어서, 상기 리프레시부는, 특정 채널의 칩들에서 리프레시를 수행할 경우, I/O 요청은 상기 특정 채널 이외의 다른 채널로 분산하여 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치에 있어서, 상기 리프레시부는, 상기 페이지 중 주기적 리프레시를 수행하고자하는 칩 또는 채널의 블록의 0번 페이지의 스페어 영역의 타임 스탬프의 값과 기정의된 제한 타임 스탬프의 값을 비교하여 상기 리프레시가 필요한 페이지를 선정하여 리프레시하는 것을 포함할 수 있다.
일실시예에 따른, 메모리 제어 장치에 있어서, 메모리 제어 장치는, 메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 보존 카운트를 기록하는 보존 카운트 기록부; 및 주기적으로 리프레시하는 경우, 상기 보존 카운트를 기초로 리프레시가 필요한 페이지를 리프레시하는 리프레시부;를 포함할 수 있다.
다른 실시예에 따른, 메모리 제어 장치에 있어서, 상기 리프레시부는, 자주 접근되는 데이터인 핫 데이터와 핫 데이터 이외의 데이터인 콜드 데이터를 구분하여 서로 다른 블록에 기록하여 상기 콜드 데이터를 포함한 페이지를 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치에 있어서, 상기 리프레시부는, 상기 핫 데이터를 포함한 페이지를 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치에 있어서, 상기 리프레시부는, 다음 리프레시 주기까지 데이터를 보존 가능하지 않는 페이지를 리프레시하는 것을 포함할 수 있다.
또 다른 실시예에 따른, 메모리 제어 장치에 있어서, 상기 리프레시부는, 다음 리프레시 주기의 시점에서 상기 다음 리프레시 주기까지 데이터를 보존 가능한 페이지를 리프레시하는 것을 포함할 수 있다.
본 발명은, 낸드 플래시 메모리 장치에서 오랜 시간 동안 데이터를 보존할 수 있는 효과가 있다.
본 발명은, 사용자 I/O 요청에 대한 지연을 제거할 수 있으므로 메모리 시스템의 성능 저하를 방지하는 효과가 있다.
도 1은 일실시예에 따른 메모리 제어 방법으로서, 메모리 제어 방법을 나타내는 흐름도이다.
도 2는 일실시예에 따른 메모리 제어 방법을 나타내는 흐름도이다.
도 3은 일실시예에 따른 낸드 플래시 메모리 기반 저장 장치의 구조를 나타내는 것이다.
도 4는 일실시예에 따른 칩 또는 채널 레벨의 메모리 제어 방법을 나타내는 것이다.
도 5a는 일실시예에 따른 메모리 제어 방법을 나타내는 것이다.
도 5b는 일실시예에 따른 메모리 제어 방법을 수행하는 것을 나타내는 것이다.
도 6은 일실시예에 따른 칩 레벨의 메모리 제어 방법을 나타내는 것이다.
도 7은 일실시예에 따른 채널 레벨의 메모리 제어 방법을 나타내는 것이다.
도 8은 일실시예에 따른 메모리 제어 장치로서, 메모리 제어 장치를 나타내는 블록도이다.
도 9는 일실시예에 따른 메모리 제어 장치를 나타내는 블록도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일실시예에 따른 메모리 제어 방법으로서, 메모리 제어 방법을 나타내는 흐름도이다.
도 1을 참조하면, 메모리 제어 장치가 수행하는 메모리 제어 방법은 하기와 같은 단계를 포함하여 구성될 수 있다. 이때, 메모리 제어 장치는, 프로세서, 메모리, 데이터 송수신기, 전자 회로, 전기 회로, 집적 회로, 전자 소자, 자기 소자 중 적어도 하나를 포함하여 구성될 수도 있으나, 이에 한정되지는 않는다.
단계(S101)에서, 메모리 제어 장치는, 메모리에 대해 페이지 라이팅시 페이지의 스페어 영역들에 타임 스탬프를 기록할 수 있다. 이때, 타임 스탬프는, GPT(Global Purpose Timer) 시간 정보, 칩 컨트롤러 내부 시간 정보, 호스트로부터 획득한 시간 정보 중 적어도 하나에 따라 결정될 수 있다.
단계(S102)에서, 메모리 제어 장치는, 칩 레벨 또는 채널 레벨에 따라 주기적으로 리프레시하는 경우, 타임 스탬프를 기초로 리프레시가 필요한 페이지를 리프레시할 수 있다.
또한, 메모리 제어 장치는, 각각의 채널마다 특정 낸드 칩에서 주기적 리프레시를 수행할 경우, I/O(Input/Output) 요청은 특정 낸드 칩 이외의 다른 칩으로 분산하여 리프레시할 수 있다. 또한, 메모리 제어 장치는, 경우에 따라서, 특정 채널의 칩들에서 리프레시를 수행할 경우, I/O 요청은 특정 채널 이외의 다른 채널로 분산하여 리프레시할 수도 있다.
또한, 메모리 제어 장치는, 페이지 중 주기적 리프레시를 수행하고자하는 칩 또는 채널의 블록의 0번 페이지의 스페어 영역의 타임 스탬프의 값과 기정의된 제한 타임 스탬프의 값을 비교하여 리프레시가 필요한 페이지를 선정하여 리프레시할 수도 있다.
도 2는 일실시예에 따른 메모리 제어 방법을 나타내는 흐름도이다.
도 2를 참조하면, 메모리 제어 장치가 수행하는 메모리 제어 방법은, 하기와 같은 단계를 포함하여 구성될 수 있다. 이때, 메모리 제어 장치는, 프로세서, 메모리, 데이터 송수신기, 전자 회로, 전기 회로, 집적 회로, 전자 소자, 자기 소자 중 적어도 하나를 포함하여 구성될 수도 있으나, 이에 한정되지는 않는다.
단계(S201)에서, 메모리 제어 장치는, 메모리에 대해 페이지 라이팅시 페이지의 스페어 영역들에 보존 카운트를 기록할 수 있다.
단계(S202)에서, 메모리 제어 장치는, 주기적으로 리프레시하는 경우, 보존 카운트를 기초로 리프레시가 필요한 페이지를 리프레시할 수 있다.
또한, 메모리 제어 장치는, 자주 접근되는 데이터인 핫 데이터와 핫 데이터 이외의 데이터인 콜드 데이터를 구분하여 서로 다른 블록에 기록하여 콜드 데이터를 포함한 페이지를 리프레시할 수 있다. 물론, 경우에 따라서, 메모리 제어 장치는, 핫 데이터를 포함한 페이지를 리프레시할 수도 있다.
이때, 메모리 제어 장치는, 경우에 따라서, 다음 리프레시 주기까지 데이터를 보존 가능하지 않는 페이지를 리프레시할 수도 있다. 또한, 경우에 따라서, 메모리 제어 장치는, 다음 리프레시 주기의 시점에서 다음 리프레시 주기까지 데이터를 보존 가능한 페이지를 리프레시할 수도 있다.
도 3은 일실시예에 따른 낸드 플래시 메모리 기반 저장 장치의 구조를 나타내는 것이다.
일실시예에 따르면, 메모리 제어 장치가 제어하는 메모리는, 경우에 따라서, 낸드 플래시 메모리가 될 수 있다.
먼저, 도 3을 참조하면, 낸드 플래시 메모리 기반의 저장 장치의 구조를 알 수 있다.
저장 장치의 전체 시스템은, 장치의 코어에 해당하는 메모리 제어 장치인 컨트롤러와 다수의 낸드 플래시 메모리 모듈로 구성될 수 있다. 이때, 메모리 제어 장치인 컨트롤러는, 호스트 인터페이스(Host Interface)로부터 들어오는 요청들을 처리하기 위해서 FTL(Flash Translation Layer)이라는 펌웨어를 포함하여 구성될 수도 있다. 또한, 메모리 제어 장치는, 프로세서, 메모리, 전자 회로, 전기 회로, 집적 회로, 전자 소자, 자기 소자, 데이터 송수신기 중 적어도 하나를 포함하여 구성될 수도 있으나, 이에 한정되지는 않는다.
메모리 제어 장치는, 맵핑 테이블 모듈(310), 웨어 레벨링(Wear-Leveling) 모듈(320), 가비지 컬랙션(Garbage Collection) 모듈(330), 리프레시 블록(Refresh Blocks) 모듈(340) 등을 포함하여 구성될 수 있다. 또한, 경우에 따라서, FTL은 맵핑 테이블 모듈(310), 웨어 레벨링(Wear-Leveling) 모듈(320), 가비지 컬랙션(Garbage Collection) 모듈(330), 리프레시 블록(Refresh Blocks) 모듈(340) 등으로 구성될 수 있다. 이때, 맵핑 테이블 모듈(310), 웨어 레벨링(Wear-Leveling) 모듈(320), 가비지 컬랙션(Garbage Collection) 모듈(330), 리프레시 블록(Refresh Blocks) 모듈(340)은, 프로세서, 메모리, 전자 회로, 전기 회로, 집적 회로, 전자 소자, 자기 소자, 데이터 송수신기 중 적어도 하나를 포함하여 구성될 수도 있으나, 이에 한정되지는 않는다. 또한, 맵핑 테이블 모듈(310), 웨어 레벨링(Wear-Leveling) 모듈(320), 가비지 컬랙션(Garbage Collection) 모듈(330), 리프레시 블록(Refresh Blocks) 모듈(340)은 각각 맵핑 테이블 관리, 웨어 레벨링, 가비지 컬랙션, 리프레시를 수행할 수도 있다. 또한, 저장 매체는 다수의 낸드 플래시 모듈/칩/다이(die)들은 다중 채널, 다중 웨이 구조로 연결될 수 있다.
이때, 저장 장치의 낸드 플래시 메모리는, SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 타입 중 적어도 하나의 타입이 될 수도 있다. SLC, MLC, TLC는, 각각 하나의 셀이 1bit, 2bit, 3bit씩을 저장할 수 있다. 물론, TLC는 다른 낸드 플래시 메모리 타입에 비하여 가격 대비 대용량의 낸드 플래시 모듈을 구축할 수 있다. 하지만, TLC는 SLC에 비하여 전압을 주는 방식이 더욱 세밀해 지므로, SLC에서 큰 전압을 한번만 주는 방식과 비교하여 TLC는 전압을 나누어서 세밀하게 줄 수 있다.
일실시예에 따르면, 메모리 제어 장치가 포함되는 저장 장치는, Solid State Drive(SSD), eMMC, USB 등의 낸드플래시 기반의 저장장치가 될 수 있다. 또한, 경우에 따라서, 메모리 제어 장치가 포함되는 저장 장치는, 임베디드 장치가 들어가는 대부분의 제품들이 될 수도 있다.
도 4는 일실시예에 따른 칩 또는 채널 레벨의 메모리 제어 방법을 나타내는 것이다.
도 4를 참조하면, 칩 또는 채널 레벨의 데이터 리프레시 기법의 전체적인 레이아웃을 알 수 있다. 메모리 제어 장치는, 칩 레벨 데이터 리프레시 방식으로서, 데이터를 리프레시하는 칩(Refresh chip)의 리프레시 수행이 종료될 때까지 I/O는 다른 칩 또는 다른 채널로 전송함으로써 응답 지연을 최소화할 수 있다. 또한, 메모리 제어 장치는, 채널 레벨 데이터 리프레시 방식으로서, 데이터를 리프레시하는 채널(Refresh channel)을 제외한 다른 채널들로 I/O 요청을 처리함으로써 성능 저하를 방지할 수 있다.
도 5a는 일실시예에 따른 메모리 제어 방법을 나타내는 것이다.
도 5a를 참조하면, 메모리 제어 장치는, 데이터 인지 적응 리프레시(Data-aware Adaptive refresh) 방식으로서, 삭제 횟수가 더 많은 블록에서의 자주 접근되는 페이지보다 덜 접근되는 페이지를 선택해서 리프레시를 하는 것을 알 수 있다.
이때, 메모리 제어 장치는, 자주 접근되는 데이터를 hot data로, 그렇지 않은 데이터를 cold data로, hot data와 cold data를 구분하여 서로 다른 블록에 기록할 수 있다. hot data가 포함된 대부분의 페이지들이 높은 보존 능력을 가질 수 있으므로, 메모리 제어 장치에 의한 리프레시의 대상이 되는 페이지들이 많지 않도록 할 수 있다. 또한, cold data가 포함된 대부분의 페이지들이 모두 메모리 제어 장치에 의한 리프레시의 대상이 되거나 아니면 모두 대상이 되지 않도록 할 수 있다.
일실시예에 따르면, 메모리 제어 장치가 수행하는 메모리 제어 방법은, hot/cold 분리를 하여 주기적 리프레시에 기인한 가비지 컬렉션(garbage collection) 비용을 줄일 수 있는 효과가 있다.
도 5b는 일실시예에 따른 메모리 제어 방법을 수행하는 것을 나타내는 것이다.
도 5b를 참조하면, 메모리 제어 장치는, 보존 능력(Retention Capability)에 따라서 리프레시를 수행해야 하는 페이지를 선택하는 것을 알 수 있다. 또한, 보존적 페이지(Retentive page)의 정의(definition)를 알 수도 있다. 이때, 메모리 제어 장치는, 보존 능력으로서, 보존 카운트(Retention count) 또는 타임 스탬프(timestamp) 중 적어도 하나를 적용하여 획득할 수 있다.
일실시예에 따르면, 메모리 제어 장치는, 데이터 인지 리프레시(data-aware refresh) 방식으로서, 페이지에 데이터를 쓸 때, 각 페이지의 스페어 영역(spare region)마다 보존 능력으로서 타임 스탬프 또는 보존 카운트를 기록할 수 있다.
다음으로, 메모리 제어 장치는, 리프레시를 수행하는 동안 각 페이지의 데이터 보존 능력을 체크할 수 있다. 예를 들어, 메모리 제어 장치는, 다음 리프레시 시점까지 데이터 보존이 가능하면 리프레시를 연기할 수 있다. 또한, 메모리 제어 장치는, 다음 리프레시 시점까지 데이터 보존이 가능하지 않으면 리프레시를 수행할 수 있다.
도 6은 일실시예에 따른 칩 레벨의 메모리 제어 방법을 나타내는 것이다.
도 6은, 메모리 제어 장치가 수행하는 메모리 제어 방법으로서, 칩 레벨 데이터 리프레시 방식을 알 수 있다.
일실시예에 따르면, 메모리 제어 장치는, 작은 단위 리프레시(fine-grained refresh) 방식으로서, 페이지에 데이터를 쓸 때, 각 페이지의 스페어 영역(spare region)마다 보존 능력(Retention Capability)을 기록할 수 있다. 이때, 보존 능력으로서 기록은, 경우에 따라서, 타임스탬프(Timestamp) 또는 보존 카운트(retention count)가 될 수도 있다.
이때, 메모리 제어 장치는, 장치 내부적으로 GPT(Global Purpose Timer) 시간을 가지고 올 수 있으며, 혹은 칩 컨트롤러 내부나 Host로부터 시간 정보를 가지고 올 수도 있다.
다음으로, 메모리 제어 장치는, 칩 레벨 주기적 리프레시를 수행할 수 있다. 물론, 메모리 제어 장치는, 어떠한 단위든 관계없이 전체 주기적 리프레시가 아니라 일부 주기적 리프레시를 수행할 수도 있다.
이때, 메모리 제어 장치는, 칩 레벨 주기적 리프레시로서, 각 채널마다 특정 낸드 칩에 대한 주기적인 리프레시를 수행하는 동안, I/O 요청은 다른 칩으로 분산시켜서 응답 시간 지연을 최소화할 수 있다.
다음으로, 메모리 제어 장치는, 미리 정의해 둔 제한 타임스탬프와 리프레시를 해야 하는 칩에 해당하는 블록들의 0번 페이지의 스페어 영역의 타임스탬프 값을 비교하여 리프레시가 필요한 블록들을 선정할 수 있다.
다음으로, 메모리 제어 장치는, 리프레시를 수행하는 낸드 칩은 I/O 요청을 전송하지 않도록 할 수 있다.
일실시예에 따르면, 메모리 제어 장치는, 낸드 칩 레벨 주기적 리프레시를 수행하는 SSD의 메모리 제어 장치일 수도 있다.
예를 들어, SSD의 낸드 칩 0에는 약 1달 전 데이터(610)가 존재하고, 현재 타임스탬프는 20141107이고, 제한 타임스탬프는 1달이라고 가정할 수 있다. 메모리 제어 장치는, 낸드 칩 0에서 제한 타임스탬프를 넘어선 페이지들(610)을 모두 찾을 수 있다. 다음으로, 메모리 제어 장치는, 낸드 칩 0에서 찾은 페이지들을 칩 내의 새로운 블록의 페이지(611)에 다시 기록할 수 있다. 이때, 메모리 제어 장치는, 데이터를 새로 기록하면서 타임스탬프는 현재 값으로 리프레시할 수 있다.
또한, 메모리 제어 장치는, 리프레시를 수행하는 도중에, I/O 요청들을 다른 낸드 칩 또는 다른 채널로 전송할 수 있다. 예를 들어, 메모리 제어 장치는, 낸드 칩 0의 페이지들을 리프레시를 수행하는 도중에, I/O 요청들을 다른 낸드 칩인 낸드 칩 1로 전송할 수 있다. 또한, 경우에 따라서, 메모리 제어 장치는, 채널 0의 페이지들을 리프레시를 수행하는 도중에, I/O 요청들을 다른 채널인 채널 1로 전송할 수도 있다.
이때, 메모리 제어 장치는, 새롭게 쓰이는 데이터의 타임스탬프를 함께 기록할 수 있다. 또한, 메모리 제어 장치는, 낸드 칩 0의 리프레시가 모두 완료하면 다시 I/O 요청들을 받을 수 있도록 할 수도 있다.
일실시예에 따르면, 메모리 제어 장치는, 데이터 보존 시간이 만료될 예정인 페이지들이 새로운 위치의 페이지로 다시 쓰이는 동안에, 새롭게 들어오는 I/O 요청들은 응답 시간 지연 없이 바로 처리될 수 있도록 할 수 있다.
도 7은 일실시예에 따른 채널 레벨의 메모리 제어 방법을 나타내는 것이다.
도 7을 참조하면, 메모리 제어 장치가 수행하는 메모리 제어 방법으로서, 채널 레벨 데이터 리프레시 방식을 알 수 있다.
일실시예에 따르면, 메모리 제어 장치는, 작은 단위 리프레시 방식으로서, 페이지에 데이터를 쓸 때, 각 페이지의 스페어 영역마다 보존 능력을 기록할 수 있다. 이때, 보존 능력으로서 기록은, 경우에 따라서, 타임스탬프 또는 보존 카운트가 될 수도 있다. 이때, 메모리 제어 장치는, 장치 내부적으로 GPT 시간을 가지고 올 수 있으며, 혹은 칩 컨트롤러 내부나 Host로부터 시간 정보를 가지고 올 수도 있다.
다음으로, 메모리 제어 장치는, 채널 레벨 주기적 리프레시를 수행할 수 있다. 물론, 메모리 제어 장치는, 어떠한 단위든 관계없이 전체 주기적 리프레시가 아니라 일부 주기적 리프레시를 수행할 수도 있다.
이때, 메모리 제어 장치는, 채널 레벨 주기적 리프레시로서, 특정 채널의 칩들 간의 리프레시를 수행하는 동안, I/O 요청은 다른 채널로 분산시켜서 응답 시간 지연을 최소화할 수 있다.
다음으로, 메모리 제어 장치는, 미리 정의해 둔 제한 타임스탬프와 리프레시를 해야 하는 채널에 해당하는 블록들의 0번 페이지의 스페어 영역의 타임스탬프 값을 비교하여 리프레시가 필요한 블록들을 선정할 수 있다.
다음으로, 메모리 제어 장치는, 리프레시를 수행하는 채널은 I/O 요청을 전송하지 않도록 할 수 있다.
일실시예에 따르면, 메모리 제어 장치는, 채널 레벨 주기적 리프레시를 수행하는 SSD의 메모리 제어 장치일 수도 있다.
예를 들어, 채널 1의 낸드 칩 0에는 약 1달 전 데이터가 존재하고 현재 타임스탬프는 20141107, 그리고 제한 타임스탬프는 1달이라고 가정할 수 있다. 메모리 제어 장치는, 채널 1의 낸드 칩 0에서 제한 타임스탬프를 넘어선 페이지들을 모두 찾을 수 있다. 또한, 메모리 제어 장치는, 낸드 칩 0에서 찾은 페이지들을 칩 내의 새로운 블록의 페이지에 다시 기록할 수 있다. 이때, 메모리 제어 장치는, 데이터를 새로 기록하면서 타임스탬프는 현재 값으로 리프레시할 수도 있다.
일실시예에 따르면, 메모리 제어 장치는, 리프레시를 수행하는 도중에, I/O 요청들을 다른 채널로 전송할 수 있다. 예를 들면, 메모리 제어 장치는, 채널 1의 페이지들을 리프레시를 수행하는 도중에, I/O 요청들을 다른 채널인 채널 2 또는 채널 3으로 전송할 수 있다. 물론, 메모리 제어 장치는, 새롭게 쓰이는 데이터의 타임스탬프를 함께 기록할 수도 있다. 또한, 메모리 제어 장치는, 채널 1의 페이지들의 리프레시가 모두 완료하면 다시 I/O 요청들을 받을 수 있도록 할 수도 있다.
또한, 일실시예에 따르면, 메모리 제어 장치는, 데이터 보존 시간이 만료될 예정인 페이지들이 새로운 위치의 페이지로 다시 쓰이는 동안에, 새롭게 들어오는 I/O 요청들을 응답 시간 지연 없이 바로 처리될 수 있도록 할 수 있다.
도 8은 일실시예에 따른 메모리 제어 장치로서, 메모리 제어 장치를 나타내는 블록도이다.
먼저, 도 8을 참조하면, 메모리 제어 장치(800)는, 타임 스탬프 기록부(810), 리프레시부(820)를 포함하여 구성될 수 있다. 이때, 타임 스탬프 기록부(810), 리프레시부(820)는, 프로세서, 메모리, 전자 회로, 전기 회로, 집적 회로, 전자 소자, 자기 소자 중 적어도 하나를 포함하여 구성될 수도 있으나, 이에 한정되지는 않는다. 또한, 경우에 따라서, 타임 스탬프 기록부(810), 리프레시부(820)는, 맵핑 테이블 모듈(310), 웨어 레벨링 모듈(320), 가비지 컬랙션 모듈(330), 리프레시 블록 모듈(340) 중 적어도 하나를 포함하거나 하나의 일부를 포함하여 구성될 수도 있다.
타임 스탬프 기록부(810)는, 메모리에 대해 페이지 라이팅시 페이지의 스페어 영역들에 타임 스탬프를 기록할 수 있다.
이때, 타임 스탬프는, 경우에 따라서, GPT(Global Purpose Timer) 시간 정보, 칩 컨트롤러 내부 시간 정보, 호스트로부터 획득한 시간 정보 중 적어도 하나에 따라 결정될 수 있다.
리프레시부(820)는, 칩 레벨 또는 채널 레벨에 따라 주기적으로 리프레시하는 경우, 타임 스탬프를 기초로 리프레시가 필요한 페이지를 리프레시할 수 있다.
또한, 리프레시부(820)는, 각각의 채널마다 특정 낸드 칩에서 주기적 리프레시를 수행할 경우, I/O 요청은 특정 낸드 칩 이외의 다른 칩으로 분산하여 리프레시할 수 있다.
또한, 경우에 따라서, 리프레시부(820)는, 특정 채널의 칩들에서 리프레시를 수행할 경우, I/O 요청은 특정 채널 이외의 다른 채널로 분산하여 리프레시할 수도 있다.
또한, 리프레시부(820)는, 페이지 중 주기적 리프레시를 수행하고자하는 칩 또는 채널의 블록의 0번 페이지의 스페어 영역의 타임 스탬프의 값과 기정의된 제한 타임 스탬프의 값을 비교하여 리프레시가 필요한 페이지를 선정하여 리프레시할 수도 있다.
도 9는 일실시예에 따른 메모리 제어 장치를 나타내는 블록도이다.
도 9를 참조하면, 메모리 제어 장치(900)는, 보존 카운트 기록부(910), 리프레시부(920)를 포함하여 구성될 수 있다. 물론, 경우에 따라서, 메모리 제어 장치(900)는, 타임 스탬프 기록부(810), 보존 카운트 기록부(910), 리프레시부(820, 920)를 포함하여 구성될 수도 있다. 이때, 보존 카운트 기록부(910), 리프레시부(920)는, 프로세서, 메모리, 전자 회로, 전기 회로, 집적 회로, 전자 소자, 자기 소자 중 적어도 하나를 포함하여 구성될 수도 있으나, 이에 한정되지는 않는다. 또한, 경우에 따라서, 보존 카운트 기록부(910), 리프레시부(920)는, 맵핑 테이블 모듈(310), 웨어 레벨링 모듈(320), 가비지 컬랙션 모듈(330), 리프레시 블록 모듈(340) 중 적어도 하나를 포함하거나 하나의 일부를 포함하여 구성될 수도 있다.
보존 카운트 기록부(910)는, 메모리에 대해 페이지 라이팅시 페이지의 스페어 영역들에 보존 카운트를 기록할 수 있다.
리프레시부(920)는, 주기적으로 리프레시하는 경우, 보존 카운트를 기초로 리프레시가 필요한 페이지를 리프레시할 수 있다.
또한, 리프레시부(920)는, 자주 접근되는 데이터인 핫 데이터와 핫 데이터 이외의 데이터인 콜드 데이터를 구분하여 서로 다른 블록에 기록하여 콜드 데이터를 포함한 페이지를 리프레시할 수 있다. 물론, 경우에 따라서, 리프레시부(920)는, 핫 데이터를 포함한 페이지를 리프레시할 수도 있다.
또한, 리프레시부(920)는, 다음 리프레시 주기까지 데이터를 보존 가능하지 않는 페이지를 리프레시할 수 있다. 물론, 경우에 따라서, 리프레시부(920)는, 다음 리프레시 주기의 시점에서 다음 리프레시 주기까지 데이터를 보존 가능한 페이지를 리프레시할 수도 있다.
상기에서 설명한 바와 같이, 메모리 제어 장치는, 낸드 플래시 메모리 기반의 저장 장치와 같이 특정 시간이 지나게 되면 데이터 손실이 발생하는 저장 장치의 주기적인 리프레시를 수행할 수 있다. 또한, 메모리 제어 장치는, 전체적인 리프레시 수행 시 데이터에 대한 요청이 들어오면 응답 시간 하락이 발생할 가능성이 있는 문제점을 해결할 수도 있다.
또한, 메모리 제어 방법은, SSD의 신뢰성 향상을 위하여 데이터 인지 주기적 리프레시 방식으로 수행될 수도 있다. 메모리 제어 방법은, 낸드 플래시 메모리 기반의 저장 장치 등의 특정 시간이 지난 후에 데이터 손실이 발생하는 문제점을 해결하기 위하여 주기적인 리프레시(refresh)를 수행될 수 있다. 또한, 메모리 제어 방법은, 전체적인 리프레시 수행 시 데이터에 대한 요청이 들어오면 응답 시간 하락이 발생을 방지할 수도 있는 효과가 있다.
또한, 메모리 제어 방법은, 리프레시를 일부 채널/칩에서만 수행하는 작은 단위 리프레시(fine-grained refresh) 방식과, 데이터의 데이터 보존 능력을 인지한 리프레시(data-aware refresh) 방식으로 수행될 수 있다. 또한, 메모리 제어 방법은, Solid State Drive(SSD)와 eMMC, USB 등 낸드플래시 기반의 저장 장치와 임베디드 장치가 들어가는 대부분의 제품들에 적용되어 수행될 수도 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서,
    메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 타임 스탬프를 기록하는 단계; 및
    칩 레벨 또는 채널 레벨에 따라 주기적으로 리프레시하는 경우, 상기 타임 스탬프를 기초로 리프레시가 필요한 페이지를 리프레시하는 단계;
    를 포함하고,
    상기 리프레시하는 단계는,
    각각의 채널마다 특정 낸드 칩에서 리프레시를 수행할 경우, I(input)/O(output) 요청을 상기 특정 낸드 칩 이외의 다른 칩으로 분산하여 리프레시하고,
    특정 채널의 칩들에서 리프레시를 수행할 경우, I/O 요청을 상기 특정 채널 이외의 다른 채널로 분산하여 리프레시하는 메모리 제어 방법.
  2. 제1항에 있어서,
    상기 타임 스탬프는,
    GPT(Global Purpose Timer) 시간 정보, 칩 컨트롤러 내부 시간 정보, 호스트로부터 획득한 시간 정보 중 적어도 하나에 따라 결정되는, 메모리 제어 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 리프레시하는 단계는,
    상기 페이지 중 주기적 리프레시를 수행하고자하는 칩 또는 채널의 블록의 0번 페이지의 스페어 영역의 타임 스탬프의 값과 기정의된 제한 타임 스탬프의 값을 비교하여 상기 리프레시가 필요한 페이지를 선정하여 리프레시하는 메모리 제어 방법.
  6. 메모리 제어 장치가 수행하는 메모리 제어 방법에 있어서,
    메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 보존 카운트를 기록하는 단계; 및
    주기적으로 리프레시하는 경우, 상기 보존 카운트를 기초로 리프레시가 필요한 페이지를 리프레시하는 단계;
    를 포함하고,
    상기 리프레시하는 단계는,
    자주 접근되는 데이터인 핫 데이터와 핫 데이터 이외의 데이터인 콜드 데이터를 구분하여 서로 다른 블록에 기록하여 상기 콜드 데이터를 포함한 페이지를 리프레시하는 메모리 제어 방법.
  7. 삭제
  8. 제6항에 있어서,
    상기 리프레시하는 단계는,
    상기 핫 데이터를 포함한 페이지를 리프레시하는 메모리 제어 방법.
  9. 제6항에 있어서,
    상기 리프레시하는 단계는,
    다음 리프레시 주기까지 데이터를 보존 가능하지 않는 페이지를 리프레시하는 메모리 제어 방법.
  10. 제6항에 있어서,
    상기 리프레시하는 단계는,
    다음 리프레시 주기의 시점에서 상기 다음 리프레시 주기까지 데이터를 보존 가능한 페이지를 리프레시하는 메모리 제어 방법.
  11. 메모리 제어 장치에 있어서,
    메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 타임 스탬프를 기록하는 타임 스탬프 기록부; 및
    칩 레벨 또는 채널 레벨에 따라 주기적으로 리프레시하는 경우, 상기 타임 스탬프를 기초로 리프레시가 필요한 페이지를 리프레시하는 리프레시부
    를 포함하고,
    상기 리프레시부는,
    각각의 채널마다 특정 낸드 칩에서 리프레시를 수행할 경우, I(input)/O(output) 요청을 상기 특정 낸드 칩 이외의 다른 칩으로 분산하여 리프레시하고,
    특정 채널의 칩들에서 리프레시를 수행할 경우, I/O 요청을 상기 특정 채널 이외의 다른 채널로 분산하여 리프레시하는 메모리 제어 장치.
  12. 제11항에 있어서,
    상기 타임 스탬프는,
    GPT(Global Purpose Timer) 시간 정보, 칩 컨트롤러 내부 시간 정보, 호스트로부터 획득한 시간 정보 중 적어도 하나에 따라 결정되는, 메모리 제어 장치.
  13. 삭제
  14. 삭제
  15. 제11항에 있어서,
    상기 리프레시부는,
    상기 페이지 중 주기적 리프레시를 수행하고자하는 칩 또는 채널의 블록의 0번 페이지의 스페어 영역의 타임 스탬프의 값과 기정의된 제한 타임 스탬프의 값을 비교하여 상기 리프레시가 필요한 페이지를 선정하여 리프레시하는 메모리 제어 장치.
  16. 메모리 제어 장치에 있어서,
    메모리에 대해 페이지 라이팅시 상기 페이지의 스페어 영역들에 보존 카운트를 기록하는 보존 카운트 기록부; 및
    주기적으로 리프레시하는 경우, 상기 보존 카운트를 기초로 리프레시가 필요한 페이지를 리프레시하는 리프레시부;
    를 포함하고,
    상기 리프레시부는,
    자주 접근되는 데이터인 핫 데이터와 핫 데이터 이외의 데이터인 콜드 데이터를 구분하여 서로 다른 블록에 기록하여 상기 콜드 데이터를 포함한 페이지를 리프레시하는 메모리 제어 장치.
  17. 삭제
  18. 제16항에 있어서,
    상기 리프레시부는,
    상기 핫 데이터를 포함한 페이지를 리프레시하는 메모리 제어 장치.
  19. 제16항에 있어서,
    상기 리프레시부는,
    다음 리프레시 주기까지 데이터를 보존 가능하지 않는 페이지를 리프레시하는 메모리 제어 장치.
  20. 제16항에 있어서,
    상기 리프레시부는,
    다음 리프레시 주기의 시점에서 상기 다음 리프레시 주기까지 데이터를 보존 가능한 페이지를 리프레시하는 메모리 제어 장치.
KR1020150031863A 2015-03-06 2015-03-06 메모리 제어 방법 및 메모리 제어 장치 KR101643087B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150031863A KR101643087B1 (ko) 2015-03-06 2015-03-06 메모리 제어 방법 및 메모리 제어 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150031863A KR101643087B1 (ko) 2015-03-06 2015-03-06 메모리 제어 방법 및 메모리 제어 장치

Publications (1)

Publication Number Publication Date
KR101643087B1 true KR101643087B1 (ko) 2016-07-26

Family

ID=56681091

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150031863A KR101643087B1 (ko) 2015-03-06 2015-03-06 메모리 제어 방법 및 메모리 제어 장치

Country Status (1)

Country Link
KR (1) KR101643087B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168077A (zh) * 2021-12-07 2022-03-11 深圳忆联信息系统有限公司 固态硬盘的时间戳管理方法、装置、计算机设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070068790A (ko) * 2005-12-27 2007-07-02 삼성전자주식회사 자동리프레쉬의 시작시점을 일치시키는 방법 및 이를적용한 메모리 컨트롤러
JP2010182160A (ja) * 2009-02-06 2010-08-19 Panasonic Corp メモリアクセス装置、不揮発性記憶装置、不揮発性記憶システム、メモリアクセス方法、プログラムおよび集積回路
KR20120090965A (ko) * 2009-09-08 2012-08-17 퓨전-아이오, 인크. 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070068790A (ko) * 2005-12-27 2007-07-02 삼성전자주식회사 자동리프레쉬의 시작시점을 일치시키는 방법 및 이를적용한 메모리 컨트롤러
JP2010182160A (ja) * 2009-02-06 2010-08-19 Panasonic Corp メモリアクセス装置、不揮発性記憶装置、不揮発性記憶システム、メモリアクセス方法、プログラムおよび集積回路
KR20120090965A (ko) * 2009-09-08 2012-08-17 퓨전-아이오, 인크. 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168077A (zh) * 2021-12-07 2022-03-11 深圳忆联信息系统有限公司 固态硬盘的时间戳管理方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
US11797433B2 (en) Zoned namespace with zone grouping
KR20210077586A (ko) Nand 메모리 내에서의 판독 방해를 방지하기 위한 기술들
KR20200064499A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US9448946B2 (en) Data storage system with stale data mechanism and method of operation thereof
US20200409860A1 (en) Enabling faster and regulated device initialization times
KR102517681B1 (ko) 메모리 시스템 및 그것의 동작방법
CN111158579B (zh) 固态硬盘及其数据存取的方法
KR102080089B1 (ko) 정전시 전력 소모를 감소시키기 위한 데이터 저장 방법 및 데이터 저장 장치
KR102467075B1 (ko) 메모리 장치 및 그의 리클레임 방법
KR20200059936A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
US20180165032A1 (en) Read write performance for nand flash for archival application
US20200387456A1 (en) Memory system, memory controller and meta-information storage device
KR102306853B1 (ko) 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템
WO2017176860A1 (en) 3d stackable hybrid phase change memory with improved endurance and non-volatility
US10360986B1 (en) Memory management method and storage controller
US11709617B2 (en) Multi-stage memory device performance notification
CN113590505A (zh) 地址映射方法、固态硬盘控制器及固态硬盘
EP3772682A1 (en) Method and apparatus to improve write bandwidth of a block-based multi-level cell non-volatile memory
US20200233604A1 (en) Information processing apparatus, storage control apparatus, and recording medium
KR101643087B1 (ko) 메모리 제어 방법 및 메모리 제어 장치
US11307766B2 (en) Apparatus and method and computer program product for programming flash administration tables
KR101604949B1 (ko) 메모리 제어 방법 및 메모리 제어 장치
US11971782B2 (en) On-SSD erasure coding with uni-directional commands
US11822478B2 (en) Cache allocation techniques
US11809713B1 (en) Method and apparatus for performing data access management of memory device with aid of randomness-property control

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 4