[go: up one dir, main page]

KR100817087B1 - 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법 - Google Patents

플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법 Download PDF

Info

Publication number
KR100817087B1
KR100817087B1 KR1020070015089A KR20070015089A KR100817087B1 KR 100817087 B1 KR100817087 B1 KR 100817087B1 KR 1020070015089 A KR1020070015089 A KR 1020070015089A KR 20070015089 A KR20070015089 A KR 20070015089A KR 100817087 B1 KR100817087 B1 KR 100817087B1
Authority
KR
South Korea
Prior art keywords
flash memory
buffer cache
page
logical
page number
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020070015089A
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 KR1020070015089A priority Critical patent/KR100817087B1/ko
Priority to US12/021,693 priority patent/US20080195801A1/en
Application granted granted Critical
Publication of KR100817087B1 publication Critical patent/KR100817087B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법이 개시된다. 본 발명의 실시예에 따른 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법은, 호스트로부터 요청되는 논리 블럭 어드레스(LBA : Logical Block Address)를 논리 페이지 번호로 변환하는 단계, 상기 논리 페이지 번호에 대응되는 페이지가 위치하는 영역을 검색하는 단계 및 상기 페이지가 위치하는 영역의 맵핑 테이블(mapping table)을 참조하여 상기 논리 블록 어드레스에 대응되는 물리 블럭 어드레스를 생성하는 단계를 구비한다. 상기 페이지가 위치하는 영역을 검색하는 단계는 상기 플래시 메모리의 페이지들이 위치하는 영역에 대한 정보를 갖는 룩-업 테이블(look-up table)을 검색한다. 본 발명에 따른 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법은 페이지가 위치하는 영역에 대한 위치 정보를 갖는 룩-업 테이블을 이용하고, 플래시 메모리에 대한 효율적인 DRAM 버퍼 캐시 검색 알고리즘을 구비함으로써, 플래시 메모리를 구비하는 스토리지 장치의 동작 특성을 보다 빠르게 향상시킬 수 있는 장점이 있다.

Description

플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법{Method for operating buffer cache of storage device including flash memory}
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 SSD의 시스템 하드웨어 구조를 나타내는 블럭도이다.
도 2는 플래시 메모리를 구비하는 스토리지 시스템에서의 시스템 소프트웨어 구조상의 FTL의 위치를 개념적으로 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 플래시 메모리를 구비하는 스토리지 장치의 기입/독출 동작을 나타내는 순서도이다.
도 4는 도 3의 스토리지 장치의 동작을 하드웨어 구조로서 설명하는 도면이다.
도 5는 도 3의 스토리지 장치에서의 본 발명의 실시예에 따른 버퍼 캐시 운용 방법을 나타내는 순서도이다.
도 6은 도 5의 DRAM 버퍼 캐시의 맵핑 테이블을 참조하여 물리 블럭 어드레스를 생성하는 방법을 보다 자세히 나타내는 순서도이다.
도 7은 도 6의 DRAM 버퍼 캐시의 인덱스를 검색하는 방법을 보다 자세히 나타내는 순서도이다.
도 8은 본 발명의 실시예에 따른 비교기를 개략적으로 나타내는 도면이다.
도 9는 본 발명의 실시예에 따른 버퍼 캐시 운용 방법을 레지던스 정보를 이용하여 나타내는 순서도이다.
본 발명은 반도체 장치에 관한 것으로, 특히 플래시 메모리를 구비하는 응용 스토리지 장치에서의 효율적인 DRAM 버퍼 캐시 운용 방법에 관한 것이다.
현재, 보다 빠른 동작을 실현하기 위해, 플래시 메모리를 구비하는 응용 스토리지 장치들이 등장하고 있다. 예를 들어, SSD(Solid SATAe Disk)와 하이브리드 HDD(Hybrid Hard Disk Drive) 등이 그것이다.
도 1은 SSD의 시스템 하드웨어 구조를 나타내는 블럭도이다.
도 1을 참조하면, SSD와 같은 응용 스토리지 장치는 플래시 메모리와 다른 메모리를 버퍼 캐시 메모리로 사용할 수 있다. 도 1의 SSD는 대용량의 DRAM 버퍼 캐시를 구비한다.
플래시 메모리는 다른 메모리 또는 인터페이스와 기입/독출 단위가 다르다. 즉, 플래시 메모리는 일반적인 하드디스크가 섹터 단위로 기입/독출 동작을 수행하는 것과 달리, 페이지 단위로 기입/독출 동작을 수행한다. 또한, 플래시 메모리는 기입 동작에 앞서, 반드시 소거 연산을 필요로 한다. 이때, 플래시 메모리는 복수개의 페이지들로 구성되는 블럭 단위로 소거 동작을 수행한다.
이러한 플래시 메모리의 특성으로 인하여, 플래시 메모리를 구비하는 스토리지 시스템은 플래시 메모리를 효율적으로 관리하기 위한 소프트웨어 모듈을 구비하여야 한다. 이하에서는 플래시 메모리를 관리하는 소프트웨어 모듈을 FTL(Flash Translation Layer)라 칭한다.
도 2는 시스템 소프트웨어 구조상의 FTL의 위치를 개념적으로 나타내는 도면이다.
도 2를 참조하면, FTL은 파일 시스템 혹은 어플리케이션 소프트웨어로부터 전달받은 섹터 어드레스와 섹터 개수를 파라미터로 하여 플래시 메모리의 기입/독출 동작을 위한 어드레스 변환 과정을 담당한다. 파일 시스템 혹은 어플리케이션 소프트웨어로부터 전달받은 섹터 어드레스 등은 호스트로부터 요청될 수 있다.
그런데, 다시 도 1을 참조하면, SSD는 호스트 인터페이스로서 ATA 또는 SATA 인터페이스를 채택할 수 있다. ATA 또는 SATA 인터페이스는 호스트와 스토리지 장치 간의 섹터 단위로 데이터를 전송하는 인터페이스이다. 따라서, 전술한 바와 같이, SSD는 FTL를 통해, 호스트로부터 요청되는 섹터 어드레스에 대한 플래시 메모리의 기입/독출 동작을 수행하여야 한다.
즉, 스토리지 장치는 FTL을 통해, 호스트로부터 전송되는 논리 블럭 어드레스(LBA : Logical Block Address)를 물리 블럭 어드레스(Physical block address)로 변환한다. 이때, 논리 블럭 어드레스(LBA)는 ATA(Advanced Technology Attachment) 또는 SATA(Serial Advanced Technology Attachment) 인터페이스상의 섹터 어드레스를 나타낸다.
상기와 같은 변환을 위해, 스토리지 장치(혹은 FTL)는 먼저, 호스트로부터 요청되는 논리 블럭 어드레스에 대응되는 섹터를 포함하는 페이지가 DRAM 버퍼 캐시에 존재하는지 플래시 메모리에 존재하는지를 판단한다. 상기 페이지가 위치하는 영역을 알기 위해, 종래 기술에 따른 스토리지 장치는, 먼저 DRAM 버퍼 캐시에 대한 검색을 수행한다.
그런데, DRAM 버퍼 캐시의 검색에 소요되는 시간이 스토리지 장치의 성능을 감소시키는 원인이 되고 있다. 플래시 메모리의 페이지 개수가 증가하고 DRAM 버퍼 캐시의 용량이 증가하는 추세에서 DRAM 버퍼 캐시 검색 시간은 더욱 길어진다. 따라서, 플래시 메모리를 구비하는 스토리지 장치에서의 보다 효율적인 DRAM 버퍼 캐시 운용 방법이 요구된다.
따라서, 본 발명이 이루고자 하는 기술적 과제는 플래시 메모리를 구비하는 스토리지 장치에서의 보다 효율적인 버퍼 캐시 운용 방법을 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 실시예에 따른 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법은, 호스트로부터 요청되는 논리 블럭 어드레스(LBA : Logical Block Address)를 논리 페이지 번호로 변환하는 단계, 상기 논리 페이지 번호에 대응되는 페이지가 위치하는 영역을 검색하는 단계 및 상기 페이지가 위치하는 영역의 맵핑 테이블(mapping table)을 참조하여 상기 논리 블록 어드레스에 대응되는 물리 블럭 어드레스를 생성하는 단계를 구비한다.
상기 페이지가 위치하는 영역을 검색하는 단계는 상기 플래시 메모리의 페이지들이 위치하는 영역에 대한 정보를 갖는 룩-업 테이블(look-up table)을 검색한다. 상기 페이지가 위치하는 영역은 상기 플래시 메모리 또는 상기 버퍼 캐시일 수 있다.
상기 룩-업 테이블은 상기 플래시 메모리의 페이지 개수와 동일한 개수의 엔트리(entry)를 갖는다. 바람직하게는, 상기 룩-업 테이블의 각 엔트리는 대응되는 페이지가 위치하는 영역을 나타내는 적어도 한 비트 이상의 레지던스 정보를 갖는다.
상기 레지던스 정보는 대응되는 페이지가 상기 플래시 메모리와 상기 버퍼 캐시 중 어디에 존재하는 지를 나타내는 1 비트 값을 가질 수 있다. 상기 레지던스 정보는 대응되는 페이지가 플래시 메모리의 로그 블럭 및 데이터 블럭과 상기 버퍼 캐시 중 어디에 존재하는 지에 대한 정보를 나타내는 2 비트 값을 가질 수 있다. 상기 레지던스 정보는 대응되는 페이지가 상기 버퍼 캐시와 상기 로그 블럭 모두에 존재하는 지에 대한 정보를 더 나타낼 수 있다.
상기 페이지가 위치하는 영역을 검색하는 단계는 상기 논리 페이지 번호에 대응되는 룩-업 테이블의 인덱스를 검색하는 단계, 상기 인덱스에 저장된 레지던스 정보에 근거하여, 상기 논리 페이지 번호에 대응되는 페이지가 위치하는 영역을 판단하는 단계 및 상기 논리 페이지 번호에 대응되는 페이지가 상기 버퍼 캐시에 존재하는 경우, 상기 버퍼 캐시의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계를 구비한다.
상기 버퍼 캐시의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계는 상기 버퍼 캐시에 위치하는 페이지들에 대한 논리 페이지 번호들의 리스트를 갖는 캐시 논리 페이지 번호 테이블을 참조하여, 상기 요청된 논리 페이지 번호에 대응되는 페이지가 위치하는 버퍼 캐시의 인덱스를 검색하는 단계 및 상기 논리 블럭 어드레스의 섹터 옵셋을 상기 검색된 인덱스에 연결하여 상기 물리 블럭 어드레스를 생성하는 단계를 구비한다.
상기 버퍼 캐시의 인덱스를 검색하는 단계는 상기 요청된 논리 페이지 번호를 설정하는 단계, 상기 저장된 논리 페이지 번호에 대한 비트 마스킹(bit masking)을 수행하는 단계, 상기 비트 마스킹된 논리 페이지 번호와 상기 캐시 논리 페이지 번호 테이블의 논리 페이지 번호들을 비교하여 상기 비트 마스킹된 논리 페이지 번호와 동일한 논리 페이지 번호를 갖는 캐시 논리 페이지 번호 테이블의 인덱스를 검색하는 단계 및 상기 캐시 논리 페이지 번호 테이블의 인덱스에 대응되는 버퍼 캐시의 인덱스를 검색하는 단계를 구비할 수 있다.
상기 캐시 논리 페이지 번호 테이블의 각 엔트리는 상기 버퍼 캐시의 각 엔트리와 대응된다. 상기 캐시 논리 페이지 번호 테이블의 각 엔트리는 대응되는 버퍼 캐시의 엔트리에 위치하는 페이지의 논리 페이지 번호를 저장하는 제 1 필드 및 제 1 필드의 논리 페이지 번호에 대응되는 페이지에 대한 페이지 상태 정보를 저장하는 제 2 필드를 구비할 수 있다. 상기 페이지 상태 정보는 대응되는 페이지에 저장된 데이터가 상기 플래시 메모리의 내용과 동일한지 여부에 대한 정보일 수 있다.
상기 버퍼 캐시의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계는 상기 논리 블럭 어드레스의 섹터 옵셋에 대응되는 섹터가 위치하는 영역을 판단하는 단계를 더 구비할 수 있다.
상기 페이지가 위치하는 영역을 검색하는 단계는 상기 논리 페이지 번호에 대응되는 페이지가 상기 플래시 메모리에 존재하는 경우, 상기 플래시 메모리의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계를 더 구비한다.
상기 플래시 메모리의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계는 상기 논리 페이지 번호에 대응되는 페이지가 상기 플래시 메모리의 데이터 블럭에 위치하는 경우, 데이터 블럭 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계를 더 구비한다. 상기 플래시 메모리의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계는, 상기 논리 페이지 번호에 대응되는 페이지가 상기 플래시 메모리의 로그 블럭에 위치하는 경우, 로그 블럭 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계를 더 구비할 수 있다.
상기 논리 블럭 어드레스는 논리 블럭 번호, 페이지 옵셋 및 섹터 옵셋을 구비한다. 상기 논리 페이지 번호는 상기 논리 블럭 번호 및 상기 페이지 옵셋을 구비한다. 상기 호스트는 ATA(Advanced Technology Attachment) 또는 SATA(Serial Advanced Technology Attachment) 인터페이스에 의하여 상기 논리 블럭 어드레스를 전송할 수 있다. 상기 버퍼 캐시는 DRAM일 수 있다. 상기 플래시 메모리는 낸드 플래시 메모리일 수 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명이 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 3은 본 발명의 실시예에 따른 플래시 메모리를 구비하는 스토리지 장치의 기입/독출 동작을 나타내는 순서도이다. 본 발명의 실시예에 따른 스토리지 장치는 낸드 플래시 메모리를 구비하고, 버퍼 캐시로서 DRAM 버퍼 캐시를 구비할 수 있다.
도 3을 참조하면, 본 발명의 실시예에 따른 플래시 메모리를 구비하는 스토리지 장치의 기입/독출 동작(300)은 먼저, 호스트로부터 논리 블럭 어드레스에 대한 기입/독출 요청을 수신한다(S310). 이때, 호스트는 ATA 또는 SATA 인터페이스에 의하여 발명의 실시예에 따른 스토리지 장치와 데이터를 송수신할 수 있다.
본 발명의 스토리지 장치는 논리 블럭 어드레스(LBA : Logical Block Address)를 수신하면, 이를 논리 페이지 번호로 변환한다(S320). 다음으로, 상기 논리 페이지 번호에 대응되는 페이지가 위치하는 영역의 맵핑 테이블(mapping table)을 참조하여 상기 논리 블록 어드레스에 대응되는 물리 블럭 어드레스를 생성한다(S330). 이때, 요청된 논리 페이지 번호에 대응되는 페이지가 위치하는 영역은 플래시 메모리 또는 DRAM 버퍼 캐시일 수 있다.
상기와 같은 방법으로 생성된 물리 블럭 어드레스에 대하여 기입/독출 동작 이 수행된다(S340). 이하에서는, 상기 논리 페이지 번호에 대응되는 페이지가 위치하는 영역에 대한 정보를 이용하여 효율적인 버퍼 캐시 검색을 실현하는 본 발명의 실시예에 따른 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법에 대하여 보다 자세히 알아본다.
도 4는 도 3의 스토리지 장치의 동작을 하드웨어 구조로서 설명하는 도면이다. 도 4는 특히, 요청된 논리 페이지 번호에 대응되는 페이지가 DRAM 버퍼 캐시에 존재하는 경우의 스토리지 장치의 동작을 설명하는 도면이다.
도 5는 도 4의 스토리지 장치에서의 본 발명의 실시예에 따른 버퍼 캐시 운용 방법을 나타내는 순서도이다.
도 4 및 도 5를 참조하면, 전술한 바와 같이, 호스트와 스토리지 장치가 ATA 또는 SATA 인터페이스에 의하는 데이터를 송수신하는 경우, 섹터 단위로 데이터가 전송되므로, 논리 블럭 어드레스(LBA)는 섹터 레벨에 대응되는 어드레스이다. 또한,상기 논리 블럭 어드레스(LBA)는 논리 블럭 번호(LBN), 페이지 옵셋(PageOffest) 및 섹터 옵셋(SecOffest) 등으로 구성된다.
논리 블럭 번호(LBN)는 플래시 메모리의 블럭에 대한 논리 어드레스이고, 페이지 옵셋(PageOffest)은 포함되는 블럭 내에서의 페이지 식별 정보이며, 섹터 옵셋(SecOffest)은 포함되는 페이지 내의 섹터 식별 정보이다. 따라서, 논리 페이지 번호(LPN)는 논리 블럭 번호(LBN) 및 페이지 옵셋(PageOffest)에 의하여 표현된다.
본 발명의 실시예에 따른 버퍼 캐시 운용 방법(S330)은 상기 페이지가 위치하는 영역을 검색하기 위해, 먼저 논리 페이지 번호(LPN)를 이용하여 룩-업 테이 블(look-up table)을 검색한다(도 4의 ①, 도 5의 S331). 룩-업 테이블(400)은 상기 플래시 메모리의 페이지들이 위치하는 영역에 대한 정보를 저장한다.
본 발명의 실시예에 따른 룩-업 테이블(400)은 상기 플래시 메모리의 페이지 개수와 동일한 개수의 엔트리(entry)를 갖는다. 다시 말해, 룩-업 테이블(400)은 각각의 페이지의 위치 정보를 저장한다. 이때, 룩-업 테이블(400)의 인덱스는 각 페이지의 논리 페이지 번호(LPN)에 대응된다. 따라서, 논리 블록 어드레스(LBA) 자체에 의하여 대응되는 룩-업 테이블(400)의 인덱스를 검색할 수 있다. 예를 들어, 도 4의 논리 페이지 번호(LPN)가 "100"인 경우, 룩-업 테이블(400)의 인덱스 "100"을 검색하면 된다.
룩-업 테이블(400)은 대응되는 페이지가 위치하는 영역을 레지던스 정보(Rbits)로 저장한다. 레지던스 정보(Rbits)는 대응되는 페이지가 플래시 메모리(미도시)와 버퍼 캐시(440) 중 어디에 존재하는 지를 나타내는 1 비트 값을 가질 수 있다. 예를 들어, 1 비트의 레지던스 정보는 대응되는 페이지가 플래시 메모리에 위치하는 경우 "1"로 저장되고, DRAM 버퍼 캐시에 위치하는 경우 "0"으로 저장될 수 있다.
또한, 레지던스 정보(Rbits)는 대응되는 페이지가 플래시 메모리의 어느 블럭에 위치하는지에 대한 정보도 나타낼 수 있다. 즉, 레지던스 정보(Rbits)는 대응되는 페이지가 플래시 메모리의 로그 블럭 및 데이터 블럭과 상기 버퍼 캐시 중 어디에 존재하는 지에 대한 정보를 나타내는 2 비트 값을 가질 수 있다.
예를 들어, 2 비트의 레지던스 정보는 대응되는 페이지가 플래시 메모리의 로그 블럭에 위치하는 경우 "01"로 저장되고, 플래시 메모리의 데이터 블럭에 위치하는 경우 "11"로 저장되며, DRAM 버퍼 캐시에 위치하는 경우 "00"으로 저장될 수 있다.
나아가 2 비트의 레지던스 정보(Rbits)는 대응되는 페이지가 상기 버퍼 캐시와 상기 로그 블럭 모두에 존재하는 지에 대한 정보를 나타낼 수도 있다. 예를 들어, 레지던스 정보(Rbits)는 대응되는 페이지가 상기 버퍼 캐시와 상기 로그 블럭 모두에 존재하는 경우 "10"으로 저장될 수 있다. 레지던스 정보를 이용하여 본 발명의 실시예에 따른 버퍼 캐시 운용 방법을 나타내는 순서도가 도 9에 도시된다.
이하에서는 요청된 논리 페이지 번호에 대응되는 페이지가 DRAM 버퍼 캐시에만 위치하는 경우에 대하여 먼저 설명한다. 페이지가 DRAM 버퍼 캐시 이외의 장소에 존재하는 경우, 즉 페이지가 플래시 메모리의 로그 블럭이나 데이터 블럭에 위치하는 경우 또는 DRAM 캐시 버퍼와 플래시 메모리에 동시에 위치하는 경우에 대한 설명은 후술한다.
다시 도 4 및 도 5를 참조하면, 도 4의 스토리지 장치(400)의 룩-업 테이블(400)은 요청된 논리 페이지 번호(LPN)에 대응되는 엔트리(인덱스 "100")에 "00" 값을 갖는 레지던스 정보(Rbits)를 저장한다. 전술한 예에 따르면, 도 4의 요청된 논리 페이지 번호(LPN)에 대응되는 페이지는 DRAM 버퍼 캐시(440)에 위치한다. 따라서, 도 4에는 DRAM 버퍼 캐시의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 본 발명의 실시예에 따른 스토리지 장치의 버퍼 캐시 운용 방법(300)이 도시된다.
도 6은 도 5의 DRAM 버퍼 캐시의 맵핑 테이블을 참조하여 물리 블럭 어드레스를 생성하는 방법을 보다 자세히 나타내는 순서도이다.
도 4 내지 도 6을 참조하면, 요청된 논리 페이지 번호(LPN)에 대응되는 페이지는 DRAM 버퍼 캐시(440)에 위치하는 경우(S333), 본 발명의 실시예에 따른 버퍼 캐시 운용 방법(300)은 캐시 논리 페이지 번호 테이블(420)을 참조하여, 요청된 논리 페이지 번호에 대응되는 페이지가 위치하는 DRAM 버퍼 캐시(440)의 인덱스를 검색한다(도 4의 ②, 도 6의 S333-1).
캐시 논리 페이지 번호 테이블(420)은 DRAM 버퍼 캐시(440)에 위치하는 페이지들에 대한 논리 페이지 번호들의 리스트를 갖는다. 캐시 논리 페이지 번호 테이블(420)의 각 엔트리는 DRAM 버퍼 캐시의 각 엔트리에 대응된다.
예를 들어, 캐시 논리 페이지 번호 테이블(420)의 첫 번째 인덱스에는 DRAM 버퍼 캐시(440)의 첫 번째 엔트리에 해당하는 논리 페이지 번호(LPN)가 저장된다. 마찬가지로, 캐시 논리 페이지 번호 테이블(420)의 두 번째 인덱스에는 DRAM 버퍼 캐시(440)의 두 번째 엔트리에 해당하는 논리 페이지 번호(LPN)가 저장된다.
도 7은 도 6의 DRAM 버퍼 캐시의 인덱스를 검색하는 방법을 보다 자세히 나타내는 순서도이다.
도 6 및 도 7을 참조하면, DRAM 버퍼 캐시의 인덱스를 검색(S333-1)하기 위해, 본 발명의 실시예에 따른 버퍼 캐시 운용 방법(300)은, 요청된 논리 페이지 번호를 설정하는 S3331-1a 단계, 상기 설정된 논리 페이지 번호에 대한 비트 마스킹(bit masking)을 수행하는 S333-1b 단계, 상기 비트 마스킹된 논리 페이지 번호 와 상기 캐시 논리 페이지 번호 테이블의 논리 페이지 번호들을 비교하여 상기 비트 마스킹된 논리 페이지 번호와 동일한 논리 페이지 번호를 갖는 캐시 논리 페이지 번호 테이블의 인덱스를 검색하는 S333-1d 단계 및 상기 캐시 논리 페이지 번호 테이블의 인덱스에 대응되는 버퍼 캐시의 인덱스를 검색하는 S333-1e 단계를 구비할 수 있다.
본 발명의 실시예에 따른 DRAM 버퍼 캐시의 인덱스를 검색(S333-1)하기 위해, 하드웨어 검색 엔진(비교기)를 사용할 수 있다. 도 8은 본 발명의 실시예에 따른 비교기(comp)를 개략적으로 나타내는 도면이다. 도 7 및 도 8을 참조하여 DRAM 버퍼 캐시의 인덱스를 검색 방법(S333-1)을 보다 자세히 설명한다.
도 7 및 도 8을 참조하면, LPN 레지스터는 요청된 논리 페이지 번호를 저장한다(S3331-1a). 도 8의 경우, 논리 페이지 번호(LPN)는 32 비트로 설정되어 있는데, 실제적으로 페이지를 나타내는 어드레스(번호)는 22 비트 값을 갖는다. 따라서, 마스킹 레지스터는 논리 페이지 번호의 하위 10 비트에 대한 비트 마스킹을 수행한다(S333-1b).
비트 마스킹된 논리 페이지 번호는 비교기(comp)의 비교 로직(미도시)에서 캐시 논리 페이지 번호 테이블의 각 엔트리에 위치하는 논리 페이지 번호들과 순차적으로 비교된다(S333-1d). 비트 마스킹된 논리 페이지 번호와 동일한 논리 페이지 번호가 위치하는 캐시 논리 페이지 번호 테이블의 인덱스로부터 요청된 논리 페이지 번호에 대응되는 페이지가 위치하는 버퍼 캐시의 주소가 검색된다(S333-1e).
이때, 포인터 레지스터(PTR register)는 DRAM 버퍼 캐시의 첫 번째 엔트리의 인덱스를 저장한다. 그리고, 카운트 레지스터(count register)는 DRAM 버퍼 캐시의 엔트리의 개수를 저장한다. 포인터 레지스터와 카운트 레지스터에 의하여 검색할 테이블 영역이 설정된다.
상기와 같은 동작에 의한 검색 결과로서, 캐시 논리 페이지 번호 테이블의 인덱스를 구한다. DRAM 버퍼 캐시의 인덱스에 대응되는 DRAM의 물리 어드레스의 섹터 옵셋에 대응되는 섹터의 어드레스가 요청된 논리 블럭 어드레스의 물리 블럭 어드레스(섹터 어드레스)이다(도 4의 ④, 도 6의 S333-2).
도 4를 참조하면, 요청된 논리 페이지 번호(LPN)는 캐시 논리 페이지 번호 테이블(420)의 두 번째 인덱스에 위치하는 논리 페이지 번호에 대응된다. 캐시 논리 페이지 번호 테이블(420)의 각 인덱스는 DRAM 버퍼 캐시(440)의 각 엔트리에 대응되므로, 요청된 논리 페이지 번호(LPN)에 대응되는 페이지는 DRAM 버퍼 캐시(440)의 두 번째 엔트리에 저장되어 있음을 알 수 있다. 이때, 요청된 논리 블럭 어드레스(LBA)의 섹터 옵셋(SecOffest)이 세 번째 섹터임을 가리키는 경우, 요청된 논리 블럭 어드레스(LBA)는 DRAM 버퍼 캐시(440)의 두 번째 엔트리의 세 번째 섹터에 대한 어드레스이다.
다만, 본 발명의 실시예에 따른 버퍼 캐시 운용 방법(300)은 도 4의 섹터 비트맵 테이블을 이용하여, 논리 블럭 어드레스의 섹터 옵셋에 대응되는 섹터가 위치하는 영역을 판단하는 도 6의 S333-3 단계를 더 구비할 수 있다. 만약, 논리 블럭 어드레스의 섹터 옵셋에 대응되는 섹터가 DRAM 버퍼 캐시에 위치하지 아니하는 경우 플래시 메모리의 페이지 맵핑 테이블을 참조하여 물리 페이지 어드레스를 물리 블럭 어드레스로서 생성한다(도 6의 S333-4, 도 9의 S330b-8).
다시 도 4를 참조하면, 본 발명의 실시예에 따른 캐시 논리 페이지 번호 테이블(420)의 각 엔트리는 대응되는 버퍼 캐시의 엔트리에 위치하는 페이지의 논리 페이지 번호뿐 아니라 저장된 논리 페이지 번호에 대응되는 페이지에 대한 페이지 상태 정보(SATAe)를 저장할 수도 있다.
페이지 상태 정보(SATAe)는 대응되는 페이지에 저장된 데이터가 플래시 메모리의 내용과 동일한지 여부에 대한 정보일 수 있다. 즉, 스토리지 장치로의 기입 요청으로 DRAM 버퍼 캐시에 기입 동작이 수행되는 경우, 페이지 상태 정보(SATAe)는 대응되는 페이지에 저장된 데이터를 추후 플래시 메모리로의 전송이 필요한지 여부를 나타낸다. 페이지 상태 정보(SATAe)는 대응되는 페이지에 저장된 데이터가 플래시 메모리의 내용과 동일한 경우 "1"로 저장되고, 다른 경우 "0"으로 저장될 수 있다.
이상에서는 요청된 논리 블럭 번호에 대응되는 페이지가 DRAM 버퍼 캐시에 존재하는 경우에 대하여 설명하였다. 이하에서는 페이지가 플래시 메모리의 로그 블럭이나 데이터 블럭에 위치하는 경우 또는 DRAM 캐시 버퍼와 플래시 메모리에 동시에 위치하는 경우에 대하여 설명한다.
다시 도 5를 참조하면, 본 발명의 실시예에 따른 버퍼 캐시 운용 방법(300)은 논리 페이지 번호에 대응되는 페이지가 플래시 메모리에 존재하는 경우, 상기 플래시 메모리의 맵핑 테이블을 참조하여 물리 블럭 어드레스를 생성한다(S334).
전술한 예에서, 레지던스 정보가 "11"인 경우 즉, 논리 페이지 번호에 대응 되는 페이지가 플래시 메모리의 데이터 블럭에 위치하는 경우, 데이터 블럭 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성한다(도 9의 S330b-5). 반면, 레지던스 정보가 "11"인 경우, 즉 논리 페이지 번호에 대응되는 페이지가 플래시 메모리의 로그 블럭(log block)에 위치하는 경우, 로그 블럭 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성할 수 있다(도 9의 S330b-7).
또한, 레지던스 정보가 "10"인 경우, 즉 논리 페이지 번호에 대응되는 페이지가 DRAM 버퍼 캐시 및 플래시 메모리의 로그 블럭 모두에 위치하는 경우, 플래시 메모리의 페이지 맵핑 테이블을 이용하여 물리 페이지 어드레스를 생성한다(도 9의 S330b-7). 다만, 논리 블럭 어드레스(LBA)에 대응되는 섹터가 어디에 위치하는지를 판단하기 위해서, 먼저 DRAM 버퍼 캐시를 검색한다.
다시 도 4를 참조하면, 본 발명의 실시예에 따른 버퍼 캐시 운용 방법(300)은 논리 블럭 어드레스(LBA)에 대응되는 섹터가 어디에 위치하는지에 대한 정보를 갖는 비트 맵 테이블(430)을 검색한다. 비트 맵 테이블(430)의 각 엔트리는 섹터 옵셋(SecOffset)에 대응되는 섹터가 플래시 메모리에 있는 경우 "0"의 값을 갖고, DRAM 버퍼 캐시에 있는 경우 "1"의 값을 갖도록 설정될 수 있다.
이렇게 본 발명의 실시예에 따른 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법은 페이지가 위치하는 영역에 대한 위치 정보를 갖는 룩-업 테이블을 이용하고, 플래시 메모리에 대한 효율적인 DRAM 버퍼 캐시 검색 알고리즘을 구비함으로써, 플래시 메모리를 구비하는 스토리지 장치의 동작 특성을 보다 빠르게 향상시킬 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법은 페이지가 위치하는 영역에 대한 위치 정보를 갖는 룩-업 테이블을 이용하고, 플래시 메모리에 대한 효율적인 DRAM 버퍼 캐시 검색 알고리즘을 구비함으로써, 플래시 메모리를 구비하는 스토리지 장치의 동작 특성을 보다 빠르게 향상시킬 수 있는 장점이 있다.

Claims (22)

  1. 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법에 있어서,
    호스트로부터 요청되는 논리 블럭 어드레스(LBA : Logical Block Address)를 논리 페이지 번호로 변환하는 단계;
    상기 논리 페이지 번호에 대응되는 페이지가 위치하는 영역을 검색하는 단계; 및
    상기 페이지가 위치하는 영역의 맵핑 테이블(mapping table)을 참조하여 상기 논리 블록 어드레스에 대응되는 물리 블럭 어드레스를 생성하는 단계를 구비하고,
    상기 페이지가 위치하는 영역을 검색하는 단계는,
    상기 플래시 메모리의 페이지들이 위치하는 영역에 대한 정보를 갖는 룩-업 테이블(look-up table)을 검색하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  2. 제 1 항에 있어서, 상기 페이지가 위치하는 영역은,
    상기 플래시 메모리 또는 상기 버퍼 캐시인 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  3. 제 1 항에 있어서, 상기 룩-업 테이블은,
    상기 플래시 메모리의 페이지 개수와 동일한 개수의 엔트리(entry)를 갖는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  4. 제 3 항에 있어서, 상기 룩-업 테이블의 각 엔트리는,
    대응되는 페이지가 위치하는 영역을 나타내는 적어도 한 비트 이상의 레지던스 정보를 갖는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  5. 제 4 항에 있어서, 상기 레지던스 정보는,
    대응되는 페이지가 상기 플래시 메모리와 상기 버퍼 캐시 중 어디에 존재하는 지를 나타내는 1 비트 값을 갖는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  6. 제 4 항에 있어서, 상기 레지던스 정보는,
    대응되는 페이지가 플래시 메모리의 로그 블럭 및 데이터 블럭과 상기 버퍼 캐시 중 어디에 존재하는 지에 대한 정보를 나타내는 2 비트 값을 갖는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  7. 제 6 항에 있어서, 상기 레지던스 정보는,
    대응되는 페이지가 상기 버퍼 캐시와 상기 로그 블럭 모두에 존재하는 지에 대한 정보를 더 나타내는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  8. 제 1 항에 있어서, 상기 페이지가 위치하는 영역을 검색하는 단계는,
    상기 논리 페이지 번호에 대응되는 룩-업 테이블의 인덱스를 검색하는 단계;
    상기 인덱스에 저장된 레지던스 정보에 근거하여, 상기 논리 페이지 번호에 대응되는 페이지가 위치하는 영역을 판단하는 단계; 및
    상기 논리 페이지 번호에 대응되는 페이지가 상기 버퍼 캐시에 존재하는 경우, 상기 버퍼 캐시의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계를 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  9. 제 8 항에 있어서, 상기 버퍼 캐시의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계는,
    상기 버퍼 캐시에 위치하는 페이지들에 대한 논리 페이지 번호들의 리스트를 갖는 캐시 논리 페이지 번호 테이블을 참조하여, 상기 요청된 논리 페이지 번호에 대응되는 페이지가 위치하는 버퍼 캐시의 인덱스를 검색하는 단계; 및
    상기 논리 블럭 어드레스의 섹터 옵셋을 상기 검색된 인덱스에 연결하여 상 기 물리 블럭 어드레스를 생성하는 단계를 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  10. 제 9 항에 있어서, 상기 버퍼 캐시의 인덱스를 검색하는 단계는,
    상기 요청된 논리 페이지 번호를 설정하는 단계;
    상기 설정된 논리 페이지 번호에 대한 비트 마스킹(bit masking)을 수행하는 단계;
    상기 비트 마스킹된 논리 페이지 번호와 상기 캐시 논리 페이지 번호 테이블의 논리 페이지 번호들을 비교하여 상기 비트 마스킹된 논리 페이지 번호와 동일한 논리 페이지 번호를 갖는 캐시 논리 페이지 번호 테이블의 인덱스를 검색하는 단계; 및
    상기 캐시 논리 페이지 번호 테이블의 인덱스에 대응되는 버퍼 캐시의 물리 주소를 검색하는 단계를 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  11. 제 9 항에 있어서, 상기 캐시 논리 페이지 번호 테이블의 각 엔트리는,
    상기 버퍼 캐시의 각 엔트리와 대응되는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  12. 제 11 항에 있어서, 상기 캐시 논리 페이지 번호 테이블의 각 엔트리는,
    대응되는 버퍼 캐시의 엔트리에 위치하는 페이지의 논리 페이지 번호를 저장하는 제 1 필드 및 제 1 필드의 논리 페이지 번호에 대응되는 페이지에 대한 페이지 상태 정보를 저장하는 제 2 필드를 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  13. 제 12 항에 있어서, 상기 페이지 상태 정보는,
    대응되는 페이지에 저장된 데이터가 상기 플래시 메모리의 내용과 동일한지 여부에 대한 정보인 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  14. 제 9 항에 있어서, 상기 버퍼 캐시의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계는,
    상기 논리 블럭 어드레스의 섹터 옵셋에 대응되는 섹터가 위치하는 영역을 판단하는 단계를 더 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  15. 제 8 항에 있어서, 상기 페이지가 위치하는 영역을 검색하는 단계는,
    상기 논리 페이지 번호에 대응되는 페이지가 상기 플래시 메모리에 존재하는 경우, 상기 플래시 메모리의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계를 더 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토 리지 장치에서의 버퍼 캐시 운용 방법.
  16. 제 15 항에 있어서, 상기 플래시 메모리의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계는,
    상기 논리 페이지 번호에 대응되는 페이지가 상기 플래시 메모리의 데이터 블럭에 위치하는 경우, 데이터 블럭 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계를 더 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  17. 제 15 항에 있어서, 상기 플래시 메모리의 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계는,
    상기 논리 페이지 번호에 대응되는 페이지가 상기 플래시 메모리의 로그 블럭에 위치하는 경우, 로그 블럭 맵핑 테이블을 참조하여 상기 물리 블럭 어드레스를 생성하는 단계를 더 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  18. 제 1 항에 있어서, 상기 논리 블럭 어드레스는,
    논리 블럭 번호, 페이지 옵셋(offset) 및 섹터 옵셋을 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  19. 제 17 항에 있어서, 상기 논리 페이지 번호는,
    상기 논리 블럭 번호 및 상기 페이지 옵셋을 구비하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  20. 제 1 항에 있어서, 상기 호스트는,
    ATA(Advanced Technology Attachment) 또는 SATA(Serial Advanced Technology Attachment) 인터페이스에 의하여 상기 논리 블럭 어드레스를 전송하는 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  21. 제 1 항에 있어서, 상기 버퍼 캐시는,
    DRAM인 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
  22. 제 1 항에 있어서, 상기 플래시 메모리는,
    낸드 플래시 메모리인 것을 특징으로 하는 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시 운용 방법.
KR1020070015089A 2007-02-13 2007-02-13 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법 Expired - Fee Related KR100817087B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070015089A KR100817087B1 (ko) 2007-02-13 2007-02-13 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법
US12/021,693 US20080195801A1 (en) 2007-02-13 2008-01-29 Method for operating buffer cache of storage device including flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070015089A KR100817087B1 (ko) 2007-02-13 2007-02-13 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법

Publications (1)

Publication Number Publication Date
KR100817087B1 true KR100817087B1 (ko) 2008-03-27

Family

ID=39411792

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070015089A Expired - Fee Related KR100817087B1 (ko) 2007-02-13 2007-02-13 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법

Country Status (2)

Country Link
US (1) US20080195801A1 (ko)
KR (1) KR100817087B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101077904B1 (ko) 2010-07-12 2011-10-31 (주)이더블유비엠코리아 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
US8621140B2 (en) 2009-03-11 2013-12-31 Samsung Electronics Co., Ltd. Flash memory apparatus for controlling operation in response to generation of interrupt signal and method of controlling the same
US10489290B2 (en) 2017-01-04 2019-11-26 SK Hynix Inc. Data storage apparatus and operating method thereof

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571287B2 (en) 2003-03-13 2009-08-04 Marvell World Trade Ltd. Multiport memory architecture, devices and systems including the same, and methods of using the same
US8112574B2 (en) * 2004-02-26 2012-02-07 Super Talent Electronics, Inc. Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
CN101622594B (zh) 2006-12-06 2013-03-13 弗森-艾奥公司 使用空数据令牌指令管理来自于请求设备的数据的装置、系统和方法
US8688947B1 (en) 2007-11-21 2014-04-01 Marvell International Ltd. Aligned data access
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8131915B1 (en) 2008-04-11 2012-03-06 Marvell Intentional Ltd. Modifying or overwriting data stored in flash memory
US8683085B1 (en) 2008-05-06 2014-03-25 Marvell International Ltd. USB interface configurable for host or device mode
US9548108B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver for enhanced flash endurance
US8281074B2 (en) 2008-10-07 2012-10-02 Micron Technology, Inc. Interface device for memory in a stack, storage devices and a processor
US8423710B1 (en) 2009-03-23 2013-04-16 Marvell International Ltd. Sequential writes to flash memory
US8213236B1 (en) 2009-04-21 2012-07-03 Marvell International Ltd. Flash memory
US8612718B2 (en) * 2009-08-19 2013-12-17 Seagate Technology Llc Mapping alignment
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
US8560770B2 (en) * 2009-11-13 2013-10-15 Seagate Technology Llc Non-volatile write cache for a data storage system
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
JP5269213B2 (ja) * 2010-02-02 2013-08-21 株式会社東芝 ストレージ機能を持つ通信装置
US8638010B2 (en) * 2010-02-17 2014-01-28 Integrated Device Technology, Inc. Systems, devices, and methods for providing backup power to a load
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
USRE49818E1 (en) * 2010-05-13 2024-01-30 Kioxia Corporation Information processing method in a multi-level hierarchical memory system
US8756394B1 (en) 2010-07-07 2014-06-17 Marvell International Ltd. Multi-dimension memory timing tuner
WO2012021847A2 (en) * 2010-08-12 2012-02-16 Fusion-Io, Inc. Apparatus, system and method for caching data
US8667248B1 (en) 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US8954664B1 (en) 2010-10-01 2015-02-10 Western Digital Technologies, Inc. Writing metadata files on a disk
US8756361B1 (en) 2010-10-01 2014-06-17 Western Digital Technologies, Inc. Disk drive modifying metadata cached in a circular buffer when a write operation is aborted
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
JP5295286B2 (ja) * 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US8756382B1 (en) 2011-06-30 2014-06-17 Western Digital Technologies, Inc. Method for file based shingled data storage utilizing multiple media types
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US8819367B1 (en) 2011-12-19 2014-08-26 Western Digital Technologies, Inc. Accelerated translation power recovery
US8612706B1 (en) 2011-12-21 2013-12-17 Western Digital Technologies, Inc. Metadata recovery in a disk drive
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9785545B2 (en) * 2013-07-15 2017-10-10 Cnex Labs, Inc. Method and apparatus for providing dual memory access to non-volatile memory
CN103744796A (zh) * 2013-09-29 2014-04-23 记忆科技(深圳)有限公司 采用uSSD实现缓存的方法及其系统
KR102218712B1 (ko) 2014-02-11 2021-02-22 삼성전자주식회사 저장 장치의 어드레스 맵핑 방법 및 저장 장치의 데이터 독출 방법
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US9684606B2 (en) * 2014-11-14 2017-06-20 Cavium, Inc. Translation lookaside buffer invalidation suppression
US10496289B2 (en) * 2016-06-16 2019-12-03 Nuvoton Technology Corporation System and methods for increasing useful lifetime of a flash memory device
US10446197B2 (en) 2017-08-31 2019-10-15 Micron Technology, Inc. Optimized scan interval
US10754580B2 (en) 2017-10-23 2020-08-25 Micron Technology, Inc. Virtual partition management in a memory device
KR20200096613A (ko) 2017-12-11 2020-08-12 마이크론 테크놀로지, 인크. 캐싱된 플래시 변환 계층에서의 가비지 수집의 효율을 개선하기 위한 기법
US10365854B1 (en) 2018-03-19 2019-07-30 Micron Technology, Inc. Tracking data temperatures of logical block addresses
US10901889B2 (en) * 2018-07-25 2021-01-26 ScaleFlux, Inc. Using hybrid-software/hardware based logical-to-physical address mapping to improve the data write throughput of solid-state data storage devices
CN110968527B (zh) * 2018-09-30 2024-05-28 北京忆恒创源科技股份有限公司 Ftl提供的缓存
CN110262982A (zh) * 2019-05-05 2019-09-20 杭州电子科技大学 一种固态硬盘地址映射的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110283A (ja) 1997-08-08 1999-04-23 Toshiba Corp 不揮発性半導体メモリシステムの制御方法
KR19990075161A (ko) * 1998-03-18 1999-10-15 김영환 플래시 메모리 어레이 액세스 방법 및 장치
US6704852B2 (en) 2001-11-16 2004-03-09 Key Technology Corporation Control device applicable to flash memory card and method for building partial lookup table
JP2004086295A (ja) 2002-08-23 2004-03-18 Megawin Technology Co Ltd Nand型フラッシュメモリディスク装置及び論理アドレス検出の方法
KR20040082921A (ko) * 2003-03-19 2004-09-30 삼성전자주식회사 플래쉬 파일 시스템
KR20050034127A (ko) * 2003-10-08 2005-04-14 삼성전자주식회사 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4473878A (en) * 1981-11-23 1984-09-25 Motorola, Inc. Memory management unit
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US7200144B2 (en) * 2001-10-18 2007-04-03 Qlogic, Corp. Router and methods using network addresses for virtualization
TW555100U (en) * 2002-11-27 2003-09-21 Power Quotient Int Co Ltd High speed of data transfer of solid state disk on module
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110283A (ja) 1997-08-08 1999-04-23 Toshiba Corp 不揮発性半導体メモリシステムの制御方法
KR19990075161A (ko) * 1998-03-18 1999-10-15 김영환 플래시 메모리 어레이 액세스 방법 및 장치
US6704852B2 (en) 2001-11-16 2004-03-09 Key Technology Corporation Control device applicable to flash memory card and method for building partial lookup table
JP2004086295A (ja) 2002-08-23 2004-03-18 Megawin Technology Co Ltd Nand型フラッシュメモリディスク装置及び論理アドレス検出の方法
KR20040082921A (ko) * 2003-03-19 2004-09-30 삼성전자주식회사 플래쉬 파일 시스템
KR20050034127A (ko) * 2003-10-08 2005-04-14 삼성전자주식회사 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621140B2 (en) 2009-03-11 2013-12-31 Samsung Electronics Co., Ltd. Flash memory apparatus for controlling operation in response to generation of interrupt signal and method of controlling the same
KR101077904B1 (ko) 2010-07-12 2011-10-31 (주)이더블유비엠코리아 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
US10489290B2 (en) 2017-01-04 2019-11-26 SK Hynix Inc. Data storage apparatus and operating method thereof

Also Published As

Publication number Publication date
US20080195801A1 (en) 2008-08-14

Similar Documents

Publication Publication Date Title
KR100817087B1 (ko) 플래시 메모리를 구비하는 스토리지 장치에서의 버퍼 캐시운용 방법
US9563549B2 (en) Data storage device, user device and data write method
CN106448737B (zh) 读取闪存数据的方法、装置以及固态驱动器
US6711663B2 (en) Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof
US20130250686A1 (en) Semiconductor memory device, information processing system and control method
US9244619B2 (en) Method of managing data storage device and data storage device
US20130151759A1 (en) Storage device and operating method eliminating duplicate data storage
US8984219B2 (en) Data storage device and method of writing data in the same
US9164704B2 (en) Semiconductor storage device for handling write to nonvolatile memories with data smaller than a threshold
US20080098195A1 (en) Memory system including flash memory and mapping table management method
CN113419675B (zh) 用于存储器的写操作方法及读操作方法
US10229052B2 (en) Reverse map logging in physical media
CN108027764B (zh) 可转换的叶的存储器映射
CN113254363B (zh) 具有部分逻辑到物理地址转换表的非易失性存储控制器
US20130067289A1 (en) Efficient non-volatile read cache for storage system
CN115295045A (zh) 使用内容可寻址存储器的关键值数据存储系统中的冗余和多数投票
CN117121107A (zh) 使用内容可寻址存储器的用于经排序字符串表的密钥存储
WO2018063479A1 (en) Storage device with fine grained search capability
KR101123335B1 (ko) 해시 인덱스 구성 방법과 그 장치, 및 상기 장치를 구비하는 데이터 저장 장치, 및 상기 방법을 구현하는 프로그램이 기록된 기록매체
CN113590506B (zh) Hmb的表项管理方法及固态硬盘的控制系统
CN114036079B (zh) 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法
CN110096452B (zh) 非易失随机访问存储器及其提供方法
CN115729439A (zh) 数据管理方法、装置及固态硬盘
US10896002B2 (en) Reverse directory structure in a garbage collection unit (GCU)
US20150067237A1 (en) Memory controller, semiconductor memory system, and memory control method

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20160321

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20160321

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000