KR20170048805A - 메모리 장치 및 그 동작 방법 - Google Patents

메모리 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20170048805A
KR20170048805A KR1020150149343A KR20150149343A KR20170048805A KR 20170048805 A KR20170048805 A KR 20170048805A KR 1020150149343 A KR1020150149343 A KR 1020150149343A KR 20150149343 A KR20150149343 A KR 20150149343A KR 20170048805 A KR20170048805 A KR 20170048805A
Authority
KR
South Korea
Prior art keywords
memory
data
count value
read
stored
Prior art date
Application number
KR1020150149343A
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 KR1020150149343A priority Critical patent/KR20170048805A/ko
Publication of KR20170048805A publication Critical patent/KR20170048805A/ko

Links

Images

Classifications

    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 장치가 개시된다. 본 장치는 호스트로부터 수신된 라이트 커맨드(Write Command) 신호 또는 리드 커맨드(Read Command) 신호에 따라 제1 메모리에 데이터를 라이트하거나 제1 메모리로부터 데이터를 리드하는 메모리 장치에 있어서, 제2 메모리, 및 제1 메모리에 저장된 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 이상이면, 특정 데이터를 복사하여 제2 메모리에 저장하고, 제2 메모리로부터 특정 데이터를 리드하는 메모리 컨트롤러를 포함할 수 있다.

Description

메모리 장치 및 그 동작 방법{MEMORY DEVICE AND THE OPERATING METHOD THEREOF}
본 발명은 메모리 장치 및 그 동작 방법에 관한 것으로서, 보다 상세하게는 복수의 메모리를 기반으로 하는 메모리 장치 및 그 동작 방법에 관한 것이다.
반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, 플래시 메모리 등과 같은 비휘발성 메모리 장치로 구분될 수 있다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 비휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존할 수 있다. 특히 플래시 메모리는 높은 프로그래밍 속도, 낮은 소비 전력, 대용량 저장 공간 등의 장점을 갖는다. 따라서 플래시 메모리를 기반으로 하는 저장 장치가 광범위하게 사용되고 있다.
플래시 메모리를 기반으로 하는 저장 장치에는 기존의 하드 디스크를 대체하고 있는 솔리드 스테이트 드라이브(SSD), SD 카드, MMC 등과 같은 메모리 카드 등이 있다. 이러한 반도체 메모리 장치는 소형으로 만들 수 있기 때문에, 휴대용 전자기기 등에 내장될 수 있다. 내장형 저장 장치로는 eSSD(embedded SSD) 또는 eMMC(embedded MMC) 등이 있다. eSSD는 랩탑 컴퓨터, 태블릿 PC, 전자책 등에 사용될 수 있고, eMMC는 이동 단말기 등에 사용될 수 있다.
여기서 특정 어드레스에 대한 반복적인 리드(Read)가 이루어질 경우 리드 디스터브(Read Disturb)가 발생할 수 있다. 구체적으로 특정 어드레스 중 특정 워드 라인(Word Line)에 대한 전압이 인가됨으로써 "1"로 리드될 수 있다. 그런데 특정 워드 라인에 대해 반복적으로 전압이 인가되면, 해당 워드 라인에 인접한 다른 워드 라인에 대해서도 전압 인가의 영향을 미칠 수 있다. 따라서 인접한 워드 라인에 대한 데이터를 잘못 인식하게 되는 리드 디스터브가 발생하게 되는 문제가 있다.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은 제1 메모리에 저장된 데이터 중 리드 커맨드가 많은 데이터에 대해서는 제2 메모리에 저장하여 리드함으로써, 리드 디스터브를 방지하도록 하는 메모리 장치 및 그 동작 방법을 제공하기 위함이다.
상기의 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 메모리 장치는 호스트로부터 수신된 라이트 커맨드(Write Command) 신호 또는 리드 커맨드(Read Command) 신호에 따라 제1 메모리에 데이터를 라이트하거나 제1 메모리로부터 데이터를 리드하는 메모리 장치에 있어서, 제2 메모리, 및 제1 메모리에 저장된 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 이상이면, 특정 데이터를 복사하여 제2 메모리에 저장하고, 제2 메모리로부터 특정 데이터를 리드하는 메모리 컨트롤러를 포함할 수 있다.
또한 제1 메모리 및 제2 메모리는 각각 비휘발성 메모리 및 휘발성 메모리일 수 있다.
또한 제1 메모리는 임베디드 멀티미디어 카드(eMMC, embedded Multi-Media Card), UFS(Universal Flash Storage), 또는 SSD(Solid State Drive) 중 어느 하나일 수 있다.
또한 제2 메모리는 캐시 메모리(Cache Memory)일 수 있다.
또한 제1 메모리는 복수의 메모리 셀을 포함하고, 메모리 컨트롤러는 제1 메모리에 저장된 복수의 메모리 셀 중 제1 메모리 셀에 대한 리드 카운트 값이 기 설정된 값 미만이면, 제1 메모리 셀에 대응되는 제1 데이터를 제1 메모리로부터 리드하고, 제1 메모리에 저장된 복수의 메모리 셀 중 제2 메모리 셀에 대한 리드 카운트 값이 기 설정된 값 이상이면, 제2 메모리 셀에 대응되는 제2 데이터를 복사하여 제2 메모리에 저장한 후 제2 메모리로부터 리드할 수 있다.
또한 제1 메모리 및 제2 메모리는 제1 메모리에 저장된 데이터 및 제1 메모리에 저장된 데이터에 대한 리드 카운트 값이 매핑되어 저장된 제1 캐시 리스트 또는 제2 메모리에 저장된 데이터 및 제2 메모리에 저장된 데이터에 대한 리드 카운트 값이 매핑되어 저장된 제2 캐시 리스트를 각각 포함할 수 있다.
또한 메모리 컨트롤러는 제2 데이터에 대한 리드 카운트 값을 제2 캐시 리스트에 저장하고, 호스트로부터 제2 데이터에 대한 리드 커맨드 신호가 수신되면, 제2 데이터에 대한 리드 카운트 값을 증가시켜 제2 캐시 리스트를 업데이트할 수 있다.
또한 메모리 컨트롤러는 제1 캐시 리스트를 업데이트된 제2 캐시 리스트와 동기화할 수 있다.
또한 제2 캐시 리스트는 복수의 제2 데이터 및 복수의 제2 데이터 각각에 대한 리드 카운트 값이 각각 매핑되어 저장되고, 메모리 컨트롤러는 복수의 제2 데이터 각각에 대한 리드 카운트 값이 큰 순서대로 제2 캐시 리스트에 정렬할 수 있다.
또한 메모리 컨트롤러는 정렬된 순서 중 기 설정된 순위보다 낮은 카운트 값에 대응되는 데이터 및 기 설정된 순위보다 낮은 카운트 값에 대응되는 데이터에 대하여 매핑된 리드 카운트 값을 제2 캐시 리스트로부터 삭제할 수 있다.
또한 제2 메모리는 하나의 제1 메모리에 대해 복수로 형성될 수 있다.
또한 제1 메모리는 복수이며, 제2 메모리는 복수의 제1 메모리와 동일한 개수로 형성될 수 있다.
한편 본 발명의 일 실시예에 따른 메모리 장치의 동작 방법은 호스트로부터 수신된 라이트 커맨드(Write Command) 신호 또는 리드 커맨드(Read Command) 신호에 따라 제1 메모리에 데이터를 라이트하거나 제1 메모리로부터 데이터를 리드하는 단계를 포함하는 메모리 장치의 제어 방법에 있어서, 제1 메모리에 저장된 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 이상인지 여부를 판단하는 단계, 및 리드 카운트 값이 기 설정된 값 이상이면, 특정 데이터를 복사하여 제2 메모리에 저장하고, 제2 메모리로부터 특정 데이터를 리드하는 단계를 포함할 수 있다.
본 발명의 실시예들 중 적어도 하나에 의하면, 제1 메모리에 저장된 데이터 중 리드 커맨드가 많은 데이터에 대해서는 제2 메모리에 저장하여 리드하므로, 리드 디스터브를 방지하며, 메모리 장치의 수명을 증가시킬 수 있다.
본 발명의 적용 가능성의 추가적인 범위는 이하의 상세한 설명으로부터 명백해질 것이다. 그러나 본 발명의 사상 및 범위 내에서 다양한 변경 및 수정은 당업자에게 명확하게 이해될 수 있으므로, 상세한 설명 및 본 발명의 바람직한 실시예와 같은 특정 실시예는 단지 예시로 주어진 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템에 관한 블럭도의 일 예,
도 2 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템에 관한 블럭도의 다른 예,
도 3은 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템에 관한 블럭도의 또 다른 예,
도 4는 본 발명의 일 실시예에 따른 메모리 장치의 동작 방법에 관한 순서도의 일 예,
도 5는 본 발명의 일 실시예에 따른 메모리 장치의 동작 방법에 관한 순서도의 다른 예,
도 6 내지 도 7은 본 발명의 일 실시예에 따른 캐시 리스트(Cache List)에 관한 포맷의 일 예,
도 8 내지 도 10은 본 발명의 일 실시예에 따른 캐시 리스트에 관한 업데이트를 설명하기 위한 도면의 일 예,
도 11은 본 발명의 일 실시예에 따른 메모리 장치의 동작 방법에 관한 순서도의 또 다른 예,
도 12 내지 도 13은 본 발명의 일 실시예에 따른 메모리 장치에 관한 블럭도의 다양한 예이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서 "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서 설명되는 이동 단말기에는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 디지털방송용 단말기, PDA(personal digital assistants), PMP(portable multimedia player), 네비게이션, 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(wearable device, 예를 들어, 워치형 단말기 (smartwatch), 글래스형 단말기 (smart glass), HMD(head mounted display)) 등이 포함될 수 있다.
그러나 본 명세서에 기재된 실시 예에 따른 구성은 이동 단말기에만 적용 가능한 경우를 제외하면, 디지털 TV, 데스크탑 컴퓨터, 디지털 사이니지 등과 같은 고정 단말기에도 적용될 수도 있음을 본 기술분야의 당업자라면 쉽게 알 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템에 관한 블럭도의 일 예이다.
도 1을 참조하면, 컴퓨팅 시스템(1000)은 메모리 장치(100), 중앙 처리 장치(CPU; Central Processing Unit, 200), 램(RAM; Random Access Memory, 300), 사용자 인터페이스(UI; User Interface, 400), 전력 공급부(500)를 포함한다.
메모리 장치(100)는 시스템 버스(600)를 통해 중앙 처리 장치(200), 램(300), 사용자 인터페이스(400), 전력 공급부(500)에 전기적으로 연결될 수 있다. 사용자 인터페이스(400)를 통해 제공되거나 중앙 처리 장치(200)에 의해 처리된 데이터는 메모리 장치(100)에 저장될 수 있다.
메모리 장치(100)는 메모리 컨트롤러(110), 제1 메모리(120), 제2 메모리(130)를 포함할 수 있다. 메모리 장치(100)에 대해서는 도 4에서 상세하도록 한다.
한편 도 1에서는 제1 메모리(120) 및 제2 메모리(130)가 메모리 컨트롤러(110)를 통해 연결된 것으로 도시되어 있으나, 시스템 버스(600)에 직접 연결되도록 구성될 수도 있다.
한편 도 1에 도시된 메모리 장치(100)는 다양한 제품에 적용 또는 응용될 수 있다. 구체적으로 컴퓨팅 시스템은 퍼스널 컴퓨터, 디지털 카메라, 캠코더, 스마트 폰, 웨어러블 전자기기, MP3, PMP, PDA 등으로 구현될 수 있다.
도 2 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템에 관한 블럭도의 다른 예로서, 메모리 장치가 메모리 카드에 적용된 경우를 도시한 것이다.
도 2를 참조하면, 컴퓨팅 시스템(1000A)은 호스트(700A) 및 메모리 카드(100A)를 포함할 수 있다. 호스트(700A)는 호스트 컨트롤러(710A) 및 호스트 인터페이스(720A)를 포함할 수 있다. 메모리 카드(100A)는 카드 인터페이스(140A), 카드 컨트롤러(110A), 제1 메모리(120A), 제2 메모리(130A)를 포함할 수 있다.
호스트(700A)는 메모리 카드(100A)에 데이터를 쓰거나(라이트, Write), 메모리 카드(100A)에 저장된 데이트를 읽을(리드, Read) 수 있다. 호스트 컨트롤러(710A)는 라이트 커맨드(WR CMD), 리드 커맨드(RD CMD), 호스트(700A) 내의 클럭 발생기(미도시)에서 발생된 클럭 신호(CLK), 데이터 등을 호스트 인터페이스(720A)를 통해 메모리 카드(100A)로 전송할 수 있다.
카드 컨트롤러(110A)는 카드 인터페이스(140A)를 통해 수신된 라이트 커맨드에 응답하여, 카드 컨트롤러(110A) 내에 있는 클럭 발생기(미도시)에서 발생한 클럭 신호에 동기하여 데이터를 제1 메모리(120A)에 저장할 수 있다. 제1 메모리(120A)는 호스트(700A)로부터 전송된 데이터를 저장할 수 있다.
또한 카드 컨트롤러(110A)는 카드 인터페이스(140A)를 통해 수신된 리드 커맨드에 응답하여, 카드 컨트롤러(110A) 내에 있는 클럭 발생기(미도시)에서 발생한 클럭 신호에 동기하여 데이터를 제1 메모리(120A) 또는 제2 메모리(130A)로부터 리드할 수 있다. 리드된 데이터는 제1 메모리(120A) 또는 제2 메모리(130A)로부터 카드 인터페이스(140A)를 통해 호스트(700A)로 전송될수 있다.
도 3은 본 발명의 일 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템에 관한 블럭도의 또 다른 예로서, 메모리 장치가 이동 단말기에 사용된 경우를 도시한 것이다.
도 3을 참조하면, 이동 단말기(1000B)는 호스트(700B) 및 eMMC(내장형 메모리 장치, embedded Multi-Media Card, 100B)를 포함할 수 있다. eMMC는 JEDEC에서 표준으로 정한 메모리 카드로서, 휴대용 MMC를 내장형으로 만든 것이다. 도 3에서는 eMMC로 도시하였으나, 이에 한정되는 것은 아니며, 다양한 형태의 내장형 메모리 장치로 구현될 수 도 있다.
호스트(700B)는 어플리케이션(710B), 운영 체제(OS; Operating System, 720B), 프로세서(730B), 램(RAM, 740B), eMMC 드라이버(750B)를 포함할 수 있다.
eMMC(100B)는 eMMC 컨트롤러(110B), 제1 메모리(120B), 제2 메모리(130B)를 포함할 수 있다. eMMC 컨트롤러(110B)는 CPU(150B) 및 RAM(160B)을 포함할 수 있다. CPU(150B)는 RAM(160B)을 이용하여 eMMC 펌웨어(미도시)를 구동할 수 있다.
도 1 내지 도 3에서는 컴퓨팅 시스템 및 메모리 장치의 전반적인 구성에 대해 살펴 보았으며, 이하에서는 메모리 장치의 동작 방법과 관련된 실시예에 대해 구체적으로 살펴 보도록 한다. 본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
도 4는 본 발명의 일 실시예에 따른 메모리 장치(100)의 동작 방법에 관한 순서도의 일 예이다. 이하에서는 전술한 설명과 중복되는 부분에 대한 설명은 생략하기로 한다.
메모리 장치(100)는 제1 메모리(120) 및 제2 메모리(130)를 포함할 수 있다. 이 경우 제1 메모리(120) 및 제2 메모리(130)는 각각 비휘발성 메모리 및 휘발성 메모리일 수 있다. 특히 제1 메모리(120)는 임베디드 멀티미디어 카드(eMMC, embedded Multi-Media Card), UFS(Universal Flash Storage), 또는 SSD(Solid State Drive) 중 어느 하나일 수 있다. 또한 제2 메모리(130)는 캐시 메모리(Cache Memory)일 수 있다.
한편 메모리 장치(100)는 호스트로부터 수신된 라이트 커맨드 신호에 대응하여 데이터를 제1 메모리(120)에 라이트할 수 있다. 또한 메모리 장치(100)는 호스트로부터 수신된 리드 커맨드 신호에 대응하여 데이터를 제1 메모리(120)로부터 리드할 수 있다.
따라서 제1 메모리(120)에 저장된 데이터 중 적어도 하나에 대한 리드 커맨드가 수신되면(S410), 메모리 장치(100)는 제1 메모리(120)에 저장된 데이터에 대한 리드를 실행할 수 있다(S420). 이 경우 메모리 장치(100)는 리드된 데이터에 대한 리드 카운트 값을 증가시킬 수 있으며(S420), 이에 대해서는 후술하기로 한다.
여기서 메모리 장치(100)는 리드된 데이터에 대한 리드 카운트 값이 기 설정된 값 이상인지 여부를 판단할 수 있다(S430).
만약 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 미만인 것으로 판단되면(S430_N), 메모리 장치(100)는 특정 데이터에 대한 리드 커맨드에 대응하여 제1 메모리(120)로부터 해당 데이터를 리드할 수 있다(S410, S420).
그러나 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 이상인 것으로 판단되면(S430_Y), 메모리 장치(100)는 해당 데이터를 복사하여 제2 메모리(130)에 저장할 수 있다(S440). 따라서 제2 메모리(130)에 저장된 데이터에 대한 리드 커맨드에 대응하여 제2 메모리(130)로부터 해당 데이터를 리드할 수 있다.
다시 말해 리드 횟수가 많은 데이터에 대해서는 제1 메모리(120)로부터 복사하여 제2 메모리(130)로 저장한 후 제2 메모리(130)로부터 리드하게 되므로, 제1 메모리(120)로부터의 반복적인 리드에 따른 리드 디스터브를 방지할 수 있게 되는 효과가 있다.
도 5는 본 발명의 일 실시예에 따른 메모리 장치(100)의 동작 방법에 관한 순서도의 다른 예이다. 특히 도 5에서는 리드 커맨드에 따른 캐시 리스트를 업데이트하는 방법에 대해 구체적으로 설명하기로 하며, 전술한 설명과 중복되는 부분에 대한 설명은 생략하기로 한다.
먼저 메모리 장치(100)는 제1 메모리(120)에 저장된 데이터 중 적어도 하나에 대한 리드 커맨드를 수신할 수 있다(S510). 이 경우 메모리 장치(100)는 해당 데이터의 리드 카운트 값이 기 설정된 값 이상인지 여부를 판단할 수 있다(S520).
만약 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 이상인 것으로 판단되면(S520_Y), 메모리 장치(100)는 해당 데이터를 복사하여 제2 메모리(130)에 저장할 수 있다. 따라서 제2 메모리(130)에 저장된 데이터에 대한 리드 커맨드에 대응하여 제2 메모리(130)로부터 해당 데이터를 리드하고, 리드된 데이터에 대한 리드 카운트 값을 증가시킬 수 있다(S530). 다시 말해 메모리 장치(100)는 증가된 리드 카운트 값에 따라, 제2 메모리(130)에 포함된 제2 캐시 리스트를 업데이트할 수 있으며, 제1 메모리(120)에 포함된 제1 캐시 리스트는 업데이트된 제2 캐시 리스트와 동기화될 수 있다(S540). 따라서 특정 데이터가 제2 메모리(130)로부터 리드되더라도, 해당 데이터에 대한 리드 정보, 즉 캐시 리스트는 제1 메모리(120)로 전송될 수 있다.
그러나 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 미만인 것으로 판단되면(S520_N), 메모리 장치(100)는 특정 데이터에 대한 리드 커맨드에 대응하여 제1 메모리(120)로부터 해당 데이터를 리드하고, 리드된 데이터에 대한 리드 카운트 값을 증가시킬 수 있다(S550). 다시 말해 메모리 장치(100)는 증가된 리드 카운트 값에 따라, 제1 메모리(120)에 포함된 제1 캐시 리스트를 업데이트할 수 있다(S560). 이 경우 해당 데이터는 제2 메모리(130)에 저장되지 않은 상태이므로, 제2 메모리(130)에 포함된 제2 캐시 리스트는 업데이트된 제1 캐시 리스트와 동기화되지 않을 수 있다.
예를 들어 제1 메모리(120)는 복수의 메모리 셀(Memory Cell)을 포함한다고 가정한다. 제1 메모리(120) 셀은 제1 데이터에 대응되는 메모리 셀이고, 제2 메모리(130) 셀은 제2 데이터에 대응되는 메모리 셀일 수 있다. 여기서 제1 메모리(120)에 포함된 제1 캐시 리스트는 제1 메모리(120) 셀 및 이에 대한 리드 카운트 값을 매핑하여 저장하고, 제2 메모리(130) 셀 및 이에 대한 리드 카운트 값을 매핑하여 저장할 수 있다.
또한 제1 메모리(120) 셀에 대한 리드 카운트 값이 기 설정된 값 이상이고, 제2 메모리(130) 셀에 대한 리드 카운트 값은 기 설정된 값 미만이라고 가정한다. 이 경우 메모리 장치(100)는 제1 데이터를 복사하여 제2 메모리(130)에 저장할 수 있다. 즉 제1 데이터는 제1 메모리(120) 및 제2 메모리(130)에 저장되어 있으며, 제2 데이터는 제1 메모리(120)에 저장되어 있음을 의미할 수 있다.
따라서 제1 데이터에 대한 리드 커맨드가 호스트로부터 수신되면, 메모리 장치(100)는 제2 메모리(130)로부터 제1 데이터를 리드하고, 제2 데이터에 대한 리드 커맨드가 호스트로부터 수신되면, 메모리 장치(100)는 제1 메모리(120)로부터 제2 데이터를 리드할 수 있다.
또한 리드된 제1 데이터로 인해 증가된 리드 카운트 값은 제2 메모리(130)에 포함된 제2 캐시 리스트에 저장됨으로써, 제2 캐시 리스트가 업데이트될 수 있다. 이 경우 제1 캐시 리스트는 업데이트된 제2 캐시 리스트와 동기화될 수 있다. 이에 반해 리드된 제2 데이터로 인해 증가된 리드 카운트 값은 제1 메모리(120)에 포함된 제1 캐시 리스트에 저장됨으로써, 제1 캐시 리스트가 업데이트될 수 있다. 이 경우 제2 캐시 리스트는 업데이트된 제1 캐시 리스트와 동기화되지 않을 수 있다.
도 6 내지 도 7은 본 발명의 일 실시예에 따른 캐시 리스트(Cache List)에 관한 포맷의 일 예이다.
도 6 내지 도 7을 참조하면, 캐시 리스트는 해시 키(Hash Key), 스타트 어드레스, 오프셋(Offset), 리드 카운트 값으로 구성될 수 있다. 특정 데이터에 대한 리드 커맨드가 수신되면, 특정 데이터에 대한 해시 키가 설정될 수 있다. 또한 캐시 리스트에는 해당 데이터에 대한 스타트 어드레스와 해당 데이터의 크기에 대한 정보인 오프셋이 매핑되어 저장될 수 있다. 따라서 메모리 장치(100)는 해시 키, 스타트 어드레스, 오프셋으로써 리드 커맨드가 수신된 데이터가 캐시 리스트에 저장되어 있는지를 알 수 있다.
또한 캐시 리스트에는 특정 데이터에 대한 리드 카운트 값이 매핑되어 저장될 수 있다. 따라서 메모리 장치(100)는 해당 데이터에 대한 리드 카운트 값이 기 설정된 값 이상인지 여부를 판단할 수 있다.
도 8 내지 도 10은 본 발명의 일 실시예에 따른 캐시 리스트에 관한 업데이트를 설명하기 위한 도면의 일 예이다.
도 8에서는 50개의 데이터에 대한 캐시 정보가 캐시 리스트에 저장된 것으로 가정한다. 이 경우 복수의 캐시 정보는 리드 카운트 값이 큰 순서대로 캐시 리스트에 정렬되는 것이 바람직하다.
이후 기 설정된 시간이 경과되면, 캐시 리스트에 포함된 각각의 리드 카운트 값은 동일하게 감소될 수 있다. 특히 기 설정된 시간동안 캐시 리스트에 포함된 데이터에 대한 리드 커맨드가 수신되지 않았다면, 캐시 리스트에 포함된 각각의 리드 카운트 값은 감소될 수 있다. 도 9에서는 리드 카운트 값이 각각 1씩 감소한 경우를 도시하였으나, 이는 예시에 불과하다.
한편 캐시 리스트에 저장된 리드 카운트 값이 기 설정된 값 미만인 경우에는 해당 데이터는 캐시 리스트로부터 삭제될 수 있다. 즉 도 9에 도시된 바와 같이, 50번째의 데이터에 대한 리드 카운트 값은 감소하여 30에서 29로 변경될 수 있다. 따라서 30미만의 리드 카운트 값에 대해서는 캐시 리스트로부터 삭제하는 것으로 설정되었다면, 도 9에 도시된 바와 같이 리드 카운트 값이 29인 50번째의 데이터에 대한 캐시 정보는 캐시 리스트에서 삭제될 수 있다.
이후 캐시 리스트에 저장되지 않은 데이터에 대한 리드 커맨드가 수신될 수 있으며, 이에 따라 해당 데이터에 대한 리드 카운트 값이 증가되어 30이 될 수 있다. 따라서 도 10에 도시된 바와 같이, 리드 카운트 값이 30인 데이터는 50번째의 순위로 캐시 리스트에 저장될 수 있다.
도 11은 본 발명의 일 실시예에 따른 메모리 장치(100)의 동작 방법에 관한 순서도의 또 다른 예이다. 특히 도 11에서는 삭제 커맨드에 따른 캐시 리스트를 업데이트하는 방법에 대해 구체적으로 설명하기로 하며, 전술한 설명과 중복되는 부분에 대한 설명은 생략하기로 한다.
먼저 메모리 장치(100)는 제1 메모리(120)에 저장된 데이터 중 적어도 하나에 대한 삭제 커맨드를 수신할 수 있다(S1110). 이 경우 메모리 장치(100)는 해당 데이터의 리드 카운트 값이 기 설정된 값 이상인지 여부를 판단할 수 있다(S1120).
만약 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 이상인 것으로 판단되면(S1120_Y), 메모리 장치(100)는 해당 데이터를 제2 메모리(130)로부터 삭제할 수 있다(S1130). 이 경우 메모리 장치(100)는 삭제된 데이터에 대응하여, 제2 메모리(130)에 포함된 제2 캐시 리스트를 업데이트할 수 있으며, 제1 메모리(120)에 포함된 제1 캐시 리스트는 업데이트된 제2 캐시 리스트와 동기화될 수 있다(S1140). 따라서 특정 데이터가 제2 메모리(130)로부터 삭제되더라도, 해당 데이터에 대한 삭제 정보, 즉 삭제된 데이터에 따른 캐시 리스트는 제1 메모리(120)로 전송될 수 있다.
그러나 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 미만인 것으로 판단되면(S1120_N), 메모리 장치(100)는 해당 데이터에 대한 삭제 커맨드에 대응하여 제1 메모리(120)로부터 해당 데이터를 삭제할 수 있다(S1150). 이 경우 메모리 장치(100)는 삭제된 데이터에 대응하여, 제1 메모리(120)에 포함된 제1 캐시 리스트를 업데이트할 수 있으며(S1160), 해당 데이터는 제2 메모리(130)에 저장되지 않은 상태이므로, 제2 메모리(130)에 포함된 제2 캐시 리스트는 업데이트된 제1 캐시 리스트와 동기화되지 않을 수 있다.
도 12 내지 도 13은 본 발명의 일 실시예에 따른 메모리 장치(100)에 관한 블럭도의 다양한 예이다. 이하에서는 전술한 설명과 중복되는 부분에 대한 설명은 생략하기로 한다.
도 12는 제1 메모리(120C)의 파티션의 개수에 따라 형성된 제2 메모리(130C)를 도시한 것이다.
도 12를 참조하면, 제1 메모리(120C)는 제1 영역, 제2 영역, 제3 영역을 포함할 수 있다. 여기서 제1 영역은 OS(Operating System) 영역, 제2 영역은 시스템(System) 영역, 제3 영역은 사용자 데이터(User Data) 영역을 의미할 수 있다. 따라서 제1 영역에는 OS 구동에 필요한 데이터가 저장될 수 있고, 제2 영역에는 파일 시스템에 관련된 데이터가 저장될 수 있으며, 제3 영역에는 사용자에 의하여 설치된 어플리케이션, 프로그램, 기타 사용자에 의한 맞춤형 데이터(Customized Data) 등이 저장될 수 있다.
또한 제1 영역은 제2-1 메모리(130C-1), 제2 영역은 제2-2 메모리(130C-2), 제3 영역은 제2-3 메모리(130C-3)에 각각 연결될 수 있다. 따라서 제1 영역에 저장된 데이터 중 기 설정된 리드 카운트 값 이상인 데이터는 제2-1 메모리(130C-1)로 저장될 수 있고, 제2 영역에 저장된 데이터 중 기 설정된 리드 카운트 값 이상인 데이터는 제2-2 메모리(130C-2)로 저장될 수 있으며, 제3 영역에 저장된 데이터 중 기 설정된 리드 카운트 값 이상인 데이터는 제2-3 메모리(130C-3)로 저장될 수 있다.
또한 도 12에서는 하나의 제1 메모리(120C)에 3개의 영역에 따른 파티션이 형성된 경우만을 도시하였으나, 이에 한정되는 것은 아니며, 필요에 따라 다양한 개수의 파티션 및 그에 따른 제2 메모리가 매칭되어 형성될 수 있다.
한편 전술한 바와 같이 하나의 제1 메모리(120C)에 복수의 영역이 형성된 경우뿐만 아니라, 하나의 제1 메모리(120D)에 복수의 서브 메모리(120D-1 ~ 120D-3)가 형성될 수도 있으며, 이는 도 13에 도시된 바와 같다.
도 13은 제1 메모리(120D)에 포함된 복수의 서브 메모리와 동일한 개수의 서브 메모리를 포함하는 제2 메모리(130D)를 도시한 것이다.
도 13을 참조하면, 제1 메모리(120D)는 제1-1 메모리(120D-1), 제1-2 메모리(120D-2), 제1-3 메모리(120D-3)를 포함할 수 있다. 여기서 제1-1 메모리(120D-1)는 도 12의 제1 영역, 제1-2 메모리(120D-2)는 도 12의 제2 영역, 제1-3 메모리(120D-3)는 도 12의 제3 영역에 저장된 데이터를 각각 저장할 수 있다.
또한 제1-1 메모리(120D-1)는 제2-1 메모리(130D-1), 제1-2 메모리(120D-2)는 제2-2 메모리(130D-2), 제1-3 메모리(120D-3)는 제2-3 메모리(130D-3)에 각각 연결될 수 있다. 따라서 제1-1 메모리(120D-1)에 저장된 데이터 중 기 설정된 리드 카운트 값 이상인 데이터는 제2-1 메모리(130D-1)로 저장될 수 있고, 제1-2 메모리(120D-2)에 저장된 데이터 중 기 설정된 리드 카운트 값 이상인 데이터는 제2-2 메모리(130D-2)로 저장될 수 있으며, 제1-3 메모리(120D-3)에 저장된 데이터 중 기 설정된 리드 카운트 값 이상인 데이터는 제2-3 메모리(130D-3)로 저장될 수 있다.
또한 도 12에서는 하나의 제1 메모리(120D)에 3개의 서브 메모리가 형성된 경우만을 도시하였으나, 이에 한정되는 것은 아니며, 필요에 따라 다양한 개수의 서브 메모리 및 그에 따른 제2 메모리가 매칭되어 형성될 수 있다.
전술한 본 발명은 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는 HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 상기 컴퓨터는 단말기의 제어부(180)를 포함할 수도 있다. 따라서 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
1000: 컴퓨팅 시스템
100: 메모리 장치 200: 중앙 처리 장치(CPU)
300: 램(RAM) 400: 사용자 인터페이스
500: 전력 공급부 600: 시스템 버스

Claims (13)

  1. 호스트로부터 수신된 라이트 커맨드(Write Command) 신호 또는 리드 커맨드(Read Command) 신호에 따라 제1 메모리에 데이터를 라이트하거나 제1 메모리로부터 데이터를 리드하는 메모리 장치에 있어서,
    제2 메모리; 및
    상기 제1 메모리에 저장된 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 이상이면, 상기 특정 데이터를 복사하여 상기 제2 메모리에 저장하고, 상기 제2 메모리로부터 상기 특정 데이터를 리드하는 메모리 컨트롤러;를 포함하는 메모리 장치.
  2. 제1항에 있어서,
    상기 제1 메모리 및 상기 제2 메모리는,
    각각 비휘발성 메모리 및 휘발성 메모리인 것을 특징으로 하는 메모리 장치.
  3. 제1항에 있어서,
    상기 제1 메모리는,
    임베디드 멀티미디어 카드(eMMC; embedded Multi-Media Card), UFS(Universal Flash Storage), 또는 SSD(Solid State Drive) 중 어느 하나인 것을 특징으로 하는 메모리 장치.
  4. 제1항에 있어서,
    상기 제2 메모리는,
    캐시 메모리(Cache Memory)인 것을 특징으로 하는 메모리 장치.
  5. 제1항에 있어서,
    상기 제1 메모리는,
    복수의 메모리 셀을 포함하고,
    상기 메모리 컨트롤러는,
    상기 제1 메모리에 저장된 복수의 메모리 셀 중 제1 메모리 셀에 대한 상기 리드 카운트 값이 상기 기 설정된 값 미만이면, 상기 제1 메모리 셀에 대응되는 제1 데이터를 상기 제1 메모리로부터 리드하고,
    상기 제1 메모리에 저장된 복수의 메모리 셀 중 제2 메모리 셀에 대한 상기 리드 카운트 값이 상기 기 설정된 값 이상이면, 상기 제2 메모리 셀에 대응되는 제2 데이터를 복사하여 상기 제2 메모리에 저장한 후 상기 제2 메모리로부터 리드하는 것을 특징으로 하는 메모리 장치.
  6. 제5항에 있어서,
    상기 제1 메모리 및 상기 제2 메모리는,
    상기 제1 메모리에 저장된 데이터 및 상기 제1 메모리에 저장된 데이터에 대한 리드 카운트 값이 매핑되어 저장된 제1 캐시 리스트 또는 상기 제2 메모리에 저장된 데이터 및 상기 제2 메모리에 저장된 데이터에 대한 리드 카운트 값이 매핑되어 저장된 제2 캐시 리스트를 각각 포함하는 것을 특징으로 하는 메모리 장치.
  7. 제6항에 있어서,
    상기 메모리 컨트롤러는,
    상기 제2 데이터에 대한 리드 카운트 값을 상기 제2 캐시 리스트에 저장하고,
    상기 호스트로부터 상기 제2 데이터에 대한 리드 커맨드 신호가 수신되면, 상기 제2 데이터에 대한 리드 카운트 값을 증가시켜 상기 제2 캐시 리스트를 업데이트하는 것을 특징으로 하는 메모리 장치.
  8. 제7항에 있어서,
    상기 메모리 컨트롤러는,
    상기 제1 캐시 리스트를 상기 업데이트된 제2 캐시 리스트와 동기화하는 것을 특징으로 하는 메모리 장치.
  9. 제7항에 있어서,
    상기 제2 캐시 리스트는,
    복수의 제2 데이터 및 상기 복수의 제2 데이터 각각에 대한 리드 카운트 값이 각각 매핑되어 저장되고,
    상기 메모리 컨트롤러는,
    상기 복수의 제2 데이터 각각에 대한 리드 카운트 값이 큰 순서대로 상기 제2 캐시 리스트에 정렬하는 것을 특징으로 하는 메모리 장치.
  10. 제9항에 있어서,
    상기 메모리 컨트롤러는,
    상기 정렬된 순서 중 기 설정된 순위보다 낮은 카운트 값에 대응되는 데이터 및 상기 기 설정된 순위보다 낮은 카운트 값에 대응되는 데이터에 대하여 매핑된 리드 카운트 값을 상기 제2 캐시 리스트로부터 삭제하는 것을 특징으로 하는 메모리 장치.
  11. 제1항에 있어서,
    상기 제2 메모리는,
    하나의 제1 메모리에 대해 복수로 형성된 것을 특징으로 하는 메모리 장치.
  12. 제1항에 있어서,
    상기 제1 메모리는 복수이며,
    상기 제2 메모리는,
    상기 복수의 제1 메모리와 동일한 개수로 형성된 것을 특징으로 하는 메모리 장치.
  13. 호스트로부터 수신된 라이트 커맨드(Write Command) 신호 또는 리드 커맨드(Read Command) 신호에 따라 제1 메모리에 데이터를 라이트하거나 제1 메모리로부터 데이터를 리드하는 단계를 포함하는 메모리 장치의 제어 방법에 있어서,
    상기 제1 메모리에 저장된 특정 데이터에 대한 리드 카운트 값이 기 설정된 값 이상인지 여부를 판단하는 단계; 및
    상기 리드 카운트 값이 상기 기 설정된 값 이상이면, 상기 특정 데이터를 복사하여 상기 제2 메모리에 저장하고, 상기 제2 메모리로부터 상기 특정 데이터를 리드하는 단계;를 포함하는 메모리 장치의 동작 방법.
KR1020150149343A 2015-10-27 2015-10-27 메모리 장치 및 그 동작 방법 KR20170048805A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150149343A KR20170048805A (ko) 2015-10-27 2015-10-27 메모리 장치 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150149343A KR20170048805A (ko) 2015-10-27 2015-10-27 메모리 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20170048805A true KR20170048805A (ko) 2017-05-10

Family

ID=58744165

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150149343A KR20170048805A (ko) 2015-10-27 2015-10-27 메모리 장치 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR20170048805A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10580500B2 (en) 2017-10-18 2020-03-03 SK Hynix Inc. Semiconductor memory device and operating method thereof
CN111209224A (zh) * 2018-11-21 2020-05-29 爱思开海力士有限公司 存储器系统及其操作方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10580500B2 (en) 2017-10-18 2020-03-03 SK Hynix Inc. Semiconductor memory device and operating method thereof
CN111209224A (zh) * 2018-11-21 2020-05-29 爱思开海力士有限公司 存储器系统及其操作方法

Similar Documents

Publication Publication Date Title
US10853238B2 (en) Unaligned data coalescing
US11150837B2 (en) Method, device and system for processing sequential groups of buffered write data
KR102395538B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102233400B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US10108342B2 (en) Method for reducing use of DRAM in SSD and the SSD using the same
CN111124273B (zh) 数据存储装置及数据存储装置的操作方法
CN113220220B (zh) 控制器、控制器的操作方法及包括该控制器的存储装置
KR102592796B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN111414342A (zh) 存储设备及其数据处理方法
KR20190083148A (ko) 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
US20180239557A1 (en) Nonvolatile memory device, data storage device including the same, and operating method of data storage device
TWI454922B (zh) 記憶體儲存裝置及其記憶體控制器與資料寫入方法
TW201826275A (zh) 電阻式記憶裝置及其選擇性寫入電路和操作方法
CN111752858A (zh) 控制器、存储器系统及其操作方法
CN105765540A (zh) 管理用于非易失性存储器的传输缓冲器
KR20210013445A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
KR20200089939A (ko) 메모리 시스템 및 그 동작 방법
KR20170048805A (ko) 메모리 장치 및 그 동작 방법
CN108351789B (zh) 电子装置及其启动方法
JP4717907B2 (ja) フラッシュメモリ装置のアクセスを保護するシステム及びその方法
US20200042249A1 (en) Data storage device and operating method thereof
US20150120991A1 (en) Data processing system and operating method thereof
US9836220B2 (en) Data processing system and method of operating the same
US20100037004A1 (en) Storage system for backup data of flash memory and method for the same
US11144460B2 (en) Data storage device, data processing system, and operating method of data storage device