KR100823171B1 - 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 - Google Patents

파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 Download PDF

Info

Publication number
KR100823171B1
KR100823171B1 KR1020070010573A KR20070010573A KR100823171B1 KR 100823171 B1 KR100823171 B1 KR 100823171B1 KR 1020070010573 A KR1020070010573 A KR 1020070010573A KR 20070010573 A KR20070010573 A KR 20070010573A KR 100823171 B1 KR100823171 B1 KR 100823171B1
Authority
KR
South Korea
Prior art keywords
flash
ftl
translation layer
host
file system
Prior art date
Application number
KR1020070010573A
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 KR1020070010573A priority Critical patent/KR100823171B1/ko
Priority to US11/833,731 priority patent/US8745309B2/en
Priority to DE200810008079 priority patent/DE102008008079A1/de
Priority to CNA200810008933XA priority patent/CN101236483A/zh
Priority to JP2008021198A priority patent/JP5468207B2/ja
Priority to TW097103746A priority patent/TWI512459B/zh
Application granted granted Critical
Publication of KR100823171B1 publication Critical patent/KR100823171B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/7206Reconfiguration of flash memory system

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)
  • Memory System (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 컴퓨터 시스템은 호스트; 플래시 메모리 장치; 및 상기 호스트로부터의 읽기/쓰기 요청에 응답하여 상기 플래시 메모리 장치를 제어하는 플래시 컨트롤러를 포함하며, 상기 플래시 메모리 장치를 관리하기 위한 플래시 변환 계층의 기능 모듈들 중 적어도 하나는 상기 호스트에 의해서 수행되고 나머지는 상기 플래시 컨트롤러에 의해서 수행된다.
상술한 컴퓨터 시스템의 파티션 방식에 따르면, 플래시 컨트롤러의 부담을 줄이고, 상대적으로 자원의 여유가 있는 운영체제 계층에서 플래시 컨트롤러의 동작을 선택적으로 수행할 수 있어 효율적인 자원 배분이 가능하다.

Description

파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및 플래시 변환 계층의 파티션 방법{COMPUTER SYSTEM HAVING A PARTITIONED FLASH TRANSLATION LAYER AND FLASH TRANSLATION LAYER PARTITION METHOD THEREOF}
도 1은 일반적인 컴퓨터 시스템의 구성을 예시적으로 보여주는 블록도;
도 2는 일반적인 컴퓨터 시스템의 소프트웨어의 계층을 간략히 보여주는 블록도;
도 3은 본 발명의 FTL의 구성 모듈들을 간략히 보여주는 블록도;
도 4는 본 발명에 따른 컴퓨터 시스템을 간략히 보여주는 블록도;
도 5는 본 발명의 일 실시예를 간략히 보여주는 블록도;
도 6은 본 발명의 다른 실시예를 간략히 보여주는 블록도;
도 7은 본 발명의 FTL 모듈 파티션의 일 실시예를 간략히 보여주는 블록도;
도 8은 본 발명의 FTL 모듈 파티션의 다른 실시예를 간략히 보여주는 블록도;
도 9는 본 발명의 클론된 FTL 모듈을 간략히 보여주는 블록도.
*도면의 주요부분에 대한 부호의 설명*
110 : 플래시 메모리 카드 120 : 중앙처리장치
130 : 램 140 : 시스템 버스
310 : 컴퓨터 시스템 311 : 워킹 메모리
312 : 인터페이스 회로 313 : 시스템 버스
314 : 중앙처리장치 320 : 플래시 메모리 카드
321 : 플래시 컨트롤러 322 : 플래시 메모리 장치
본 발명의 저장 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리와 같은 불휘발성 메모리 장치를 효율적으로 관리하는 시스템 및 방법에 관한 것이다.
일반적으로, 플래시 메모리는 전기적으로 메모리 셀들을 일괄적으로 소거하는 기능이 있기 때문에, 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다. 최근 들어서는, 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 사용이 급증함에 따라, 하드디스크 대신 플래시 메모리가 저장 장치로서 널리 사용되고 있다. 상술한 모바일 기기들은 다양한 기능들(예를 들면, 동영상 재생, 고음질의 음악 재생 기능 등)을 제공하기 위해서 점차 대용량의 저장 장치들을 필요로 하고 있다.
도 1은 플래시 메모리 장치를 대용량의 저장 장치로 채택하는 시스템의 일예를 간략히 보여주는 블록도이다. 도 1을 참조하면, 플래시 메모리 장치(112)를 저장수단으로 사용하는 시스템(100)은 메모리 카드(110), 중앙처리장치(120) 및 램(130)을 포함한다. 상술한 구성들 각각은 데이터의 전달을 위한 시스템 버스(140)에 전기적으로 연결되며, 중앙처리장치(120) 및 램(130)은 호스트를 구성할 것이다. 메모리 카드(110)는 호스트 측과 플래시 메모리 장치(112) 간의 인터페이싱 동작을 수행하는 플래시 컨트롤러(111)를 포함한다.
메모리 카드(110)는 대용량 데이터가 저장되는 저장 매체로서 플래시 메모리(112)를 포함한다. 특히, 메모리 카드(110)는 플래시 메모리(112)와 호스트와의 인터페이싱을 위한 플래시 컨트롤러(111)를 포함한다. 플래시 컨트롤러(111)의 역할들 중 핵심적인 것은 플래시 변환 계층(Flash Translation Layer : 이하 FTL)이다. 플래시 메모리(112)는 다른 메모리 소자와 비교할 때, 비교적 낮은 단가로 빠른 읽기 속도를 제공할 수 있는 장점이 있다. 그러나 플래시 메모리(112)에 데이터를 기입하기 위해서는 소거 동작이 반드시 선행되어야 하며, 기입되는 데이터의 단위보다 소거되는 데이터의 단위가 크다는 특징이 있다. 이러한 특징은 플래시 메모리(112)를 메인 메모리로 사용하는데 장애로 작용한다. 뿐만 아니라 플래시 메모리(112)가 보조기억장치로 사용되는 경우, 상술한 소거 특성은 일반 하드디스크용 파일 시스템(File System)을 그대로 활용하는 것을 저해하는 요인이 된다. 따라서, 플래시 메모리(112)의 삭제 연산을 감추기 위해, 파일 시스템과 플래시 메모리 사이에 플래시 변환 계층(FTL)이 사용된다. FTL은, 플래시 메모리(112)의 기입 동작시, 파일 시스템이 생성한 논리주소(Logical address)를 삭제 연산이 수행된 플래시 메모리의 물리 주소(Physical address)로 맵핑(Mapping)시켜 주는 역할을 수행한다. FTL은 빠른 어드레스 맵핑이 이루어질 수 있도록 어드레스 맵핑 테이블(Address Mapping Table)을 사용한다. 일반적으로, 어드레스 맵핑 테이블은 고속의 SRAM 상에서 구성된다. 그런데, 하드디스크와 달리, 플래시 메모리(112)는 물리 적 블록에 대한 덮어쓰기(Overwrite)가 되지 않는다는 약점을 갖고 있으며, 따라서 이를 극복하기 위한 효과적인 FTL 알고리즘이 필수적이다.
도 2는 상술한 플래시 메모리를 저장매체로 사용하는 컴퓨터 시스템의 파일 시스템 아키텍처를 간략히 보여주는 블록도이다. 도 2를 참조하면, 플래시 파일 시스템(Flash file system)은 상위 레벨 영역에서 수행되는 운영체제(OS) 계층과 플래시 컨트롤러(111)로 대변되는 하위 레벨 영역의 플래시 컨트롤러 계층으로 구분된다. 운영체제 계층(OS)은 컴퓨터 시스템(100)의 부팅시에 램(130)에 마운트(Mount) 되어 중앙처리장치(120)에 의해서 그 기능들이 수행된다.
운영체제(OS) 계층은 다시 최상위의 응응 프로그램(200)과 그에 포함되는 파일 시스템(210)으로 나뉜다. 파일 시스템(210)은 자료를 계층적으로 저장, 탐색, 접근, 조작하기 위한 추상적 자료구조의 집합으로 정의된다. 예를 들면, 개인용 컴퓨터 시스템을 구동하는 마이크로소프트 윈도즈(Microsoft Windows)는 FAT(File allocation table) 또는 NTFS(NT file system)를 파일 시스템(210)으로 사용한다.
플래시 컨트롤러 계층(220)은 상술한 파일 시스템(210)으로부터의 읽기/쓰기 연산 요청에 응답하여 플래시 메모리(260)에 적합한 형태로 어드레스를 변환한다. 이러한 동작을 지원하기 위하여 플래시 컨트롤러 계층(220)은 플래시 변환 계층(FTL)(230), 가상 플래시 계층(240) 및 플래시 인터페이스 계층(250)을 포함한다. FTL(230)은 파일 시스템(210)으로부터의 쓰기/읽기 연산 요청에 응답하여 플래시 메모리(260)로의 액세스를 가능하게 한다. 가상 플래시 계층(240)은 플래시 컨트롤러(111)에서 수행되는 FTL(230) 및 기타의 인터페이싱 동작시 소거 연산이 필 요한 플래시 메모리 장치를 대신하여 플래시 컨트롤러 상에서 이루어지는 제어 동작을 담당한다. 플래시 인터페이스 계층(250)은 플래시 메모리(260)와의 인터페이싱 동작을 위한 로우 레벨 동작을 수행한다. 예를 들면, 플래시 메모리(260)의 하드웨어를 제어하기 위한 로우레벨 드라이버(LLD), 플래시 메모리(260)로부터 독출된 데이터의 에러를 정정하기 위한 에러 정정 코드(Error correction code : ECC) 및 오류 블록 관리 모듈(Bad Block Management : BBM) 등이 플래시 인터페이스 계층(250)에 포함된다.
이상에서 설명된 플래시 컨트롤러 계층(220)을 구성하는 알고리즘 또는 모듈들은 파일 시스템(210)과 플래시 메모리(260) 사이에 위치한다. 플래시 컨트롤러 계층(220)은 파일 시스템(210)과 플래시 메모리(260) 사이에서 인터페이싱을 위한 제반 소프트웨어 모듈들을 구동한다.
도 3은 FTL(230)에 포함되는 기능 블록들을 예시적으로 보여주는 블록도이다. 도 3을 참조하면, FTL(230)은 파일 시스템(file system)으로부터 제공되는 논리 어드레스(Logical address)를 플래시 메모리의 물리 어드레스(Physical address)로 전환하기 위한 어드레스 맵핑 모듈(231)을 포함한다. 그리고 소거 평준화 동작을 수행하는 소모 레벨링 모듈(232)을 포함한다. 또한, FTL(230)은 플래시 메모리의 각 블록들에 흩어져 있는 유효 데이터들을 모아서 하나의 블록에 채우는 가비지 컬렉션(Garbage Collection) 동작을 지원하고 있다. 가비지 컬렉션 동작은 가비지 컬렉션 모듈(233)에 의해서 수행된다. 이밖에 FTL(230)은 모듈 단위의 기능 블록들을 포함하며, 파일 시스템(210)으로부터의 읽기/쓰기 요청에 대응하는 효율 적인 액세스 동작을 지원한다. 좀더 자세히 설명하면 다음과 같다.
어드레스 맵핑 모듈(231)은 응용 소프트웨어(200)와 파일 시스템(210) 계층으로부터 전달받은 논리 주소(예를 들면, 섹터 주소와 섹터 수)를 파라미터로 하여 플래시 메모리(260)로의 쓰기 및 읽기 동작을 위한 주소 변환 동작을 수행한다. 이러한 주소 변환을 효율적으로 수행하기 위해, 어드레스 맵핑 모듈(231)은 논리 주소(Logical address)에 대응하는 플래시 메모리(260)의 물리 주소(Physical address)를 맵핑하는 어드레스 맵핑 테이블(Address mapping table)을 구성한다. 또한, 소모 레벨링 모듈(232)에서는, 플래시 메모리(260)의 열화 작용을 균등화시키기 위한 블록 맵핑 기능을 수행한다. 이러한 동작을 위한 블록들의 서열화 작업을 소모 레벨링(Wear Leveling)이라 한다. 소모 레벨링은 각 블록에 대해서 소거 횟수(Erase Count)에 대한 정보를 저장하고, 횟수가 적은 수의 블록을 우선적으로 호스트로부터의 논리적 블록 어드레스에 할당하는 방식으로 이루어진다. 소모 레벨링 동작을 위해서는 소거 카운트(Erase count)가 지속적으로 업데이트되어야 한다. 이러한 동작도 메모리 컨트롤러(111)에 포함되는 에스램(SRAM) 상에서 이루어진다.
가비지 컬렉션 모듈(233)에서는 가비지 컬렉션 동작을 지원하기 위해 가비지 체크 동작 및 가비지 컬렉션 동작들이 이루어질 수 있다. 호스트가 기존에 기입된 적이 있는 논리 블록 번호에 대해 기입 요청을 하는 경우, FTL(230)은 호스트로부터 제공된 데이터를 다른 위치에 쓰고, 기존 데이터를 무효화하는 기법을 사용한다. 이와 같은 FTL(230)의 알고리즘 적인 특성으로 인해 블록 전체가 무효화된 데이터로 채워지는 블록이 생길 수 있는데, 이러한 블록을 가비지 블록(Garbage block)이라 한다. 가비지 블록은 먼저 소거 연산을 통해 기입이 가능한 상태로 설정된 후, 재사용된다. FTL(230)에서 이루어지는 이러한 연산 과정을 가비지 컬렉션(Garbage collection) 또는 리클레임(Reclaim)이라 부른다. 이러한 연산이 얼마나 빠르게 수행되느냐에 따라 플래시 메모리의 성능이 좌우된다. 특히, 시스템의 사용 기간이 길어짐에 따라 저장된 데이터의 양이 많아지고 사용 가능한 가용 블록(Reserved block)의 개수가 줄어들수록, 가비지 컬렉션의 성능은 더욱 중요시된다. FTL(230)은 동작 모듈로써 상술한 기능 모듈들 이외에도 특정 동작을 수행하기 위한 소프트웨어 모듈들이 포함된다.
FTL(230)은 일반적으로 파일 시스템의 읽기/쓰기 요청에 응답하여 상술한 어드레스 맵핑, 소모 레벨링, 그리고 가비지 컬렉션을 실시간으로 수행하게 된다. 이러한 알고리즘에 따른 동작들을 수행하기 위해서는 플래시 컨트롤러(111, 도 1 참조)에 구비되는 프로세서 및 램(미도시됨)의 자원(Resource)이 사용된다. 예를 들면, 어드레스 맵핑 동작을 효과적으로 수행하기 위해서 어드레스 맵핑 테이블이 고속의 에스램(SRAM) 상에서 구성되어야 한다. 그러나 이러한 어드레스의 검색과 테이블을 지속적으로 유지하기 위해서는 충분한 자원(Resource)이 지속적으로 제공되어야 한다. 그러나 메모리 컨트롤러(111)에 구비되는 프로세서와 에스램이 제공할 수 있는 자원에는 한계가 있다.
현재까지의 플래시 메모리 장치를 구비하는 시스템들에 있어서, 상술한 FTL(230) 알고리즘들은 메모리 카드 등에 구비되는 메모리 컨트롤러(111)에서 전적으로 수행되어 왔다. 따라서, 시스템들을 구동하기 위한 운영체제 또는 파일 시스 템은 플래시 메모리 장치의 특징을 고려한 작업환경을 가질 수 없었다. 그리고 플래시 컨트롤러에 구비된 프로세서와 램의 용량에 의존하는 자원의 한계를 극복하기에는 무리가 있었다. 따라서, 플래시 변환 계층의 제한된 자원을 보다 효율적으로 사용할 수 있는 기술들이 지속적으로 요구되고 있는 실정이다. 또한, 점차 보조 기억 장치로써 플래시 메모리가 하드 디스크를 대체하고 있다. 따라서, 하드 디스크에 기반한 운영체제의 파일 시스템 또는 디바이스 드라이버들이 플래시 메모리에 기반한 아키텍처를 구비할 필요성이 날로 증가하고 있다.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 퍼포먼스를 높일 수 있는 효과적인 FTL의 파티션 방법을 제공하는 데 있다.
본 발명의 다른 목적은 플래시 메모리 장치를 구비하는 시스템에 있어서 효과적인 자원 배분을 구현할 수 있는 시스템을 제공하는 데 있다.
상술한 제반 목적을 달성하기 위한 본 발명의 컴퓨터 시스템은, 호스트; 플래시 메모리 장치; 및 상기 호스트로부터의 읽기/쓰기 요청에 응답하여 상기 플래시 메모리 장치를 제어하는 플래시 컨트롤러를 포함하며, 상기 플래시 메모리 장치를 관리하기 위한 플래시 변환 계층의 기능 모듈들 중 적어도 하나는 상기 호스트에 의해서 수행되고 나머지는 상기 플래시 컨트롤러에 의해서 수행된다.
이 실시예에 있어서, 상기 호스트는 운영체제에 따라 데이터를 처리하며, 상기 운영체제는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 중 적어도 하나를 수행하는 파일 시스템을 포함한다.
이 실시예에 있어서, 상기 플래시 컨트롤러는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 중 상기 파일 시스템에 의해서 실행되는 동작에 대응하는 기능 모듈을 제외한 기능 모듈들을 포함한다.
이 실시예에 있어서, 상기 호스트는, 상기 파일 시스템을 로드하는 동작 메모리; 및 상기 호스트에서 수행되는 상기 플래시 변환 계층(FTL)을 구성하는 복수의 기능 모듈들 중 적어도 하나를 실행하는 중앙처리장치를 포함한다.
이 실시예에 있어서, 상기 파일 시스템은 어드레스 맵핑(Address mapping), 소모 레벨링(Wear Leveling) 및 가비지 컬렉션(Garbage Collection) 동작을 각각 실행하기 위한 소프트웨어 모듈들 중 적어도 하나 이상을 포함한다.
이 실시예에 있어서, 상기 어드레스 맵핑 동작을 수행하는 소프트웨어 모듈은 어드레스 맵핑 테이블을 상기 플래시 컨트롤러에 구비되는 랜덤 액세스 메모리(RAM)에 구성한다.
이 실시예에 있어서, 상기 어드레스 맵핑 동작을 수행하는 소프트웨어 모듈은 어드레스 맵핑 테이블을 상기 동작 메모리에 구성한다.
이 실시예에 있어서, 상기 호스트는 상기 파일 시스템에 포함되는 소프트웨어 모듈과 상기 플래시 컨트롤러에 포함되는 소프트웨어 모듈과의 데이터 공유를 위한 채널을 구비한다.
이 실시예에 있어서, 상기 운영체제는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 모두를 수행하는 파일 시스템을 포함한다.
이 실시예에 있어서, 상기 호스트는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 중 적어도 하나를 수행하는 디바이스 드라이버를 포함한다.
이 실시예에 있어서, 상기 플래시 컨트롤러는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 중 상기 디바이스 드라이버에 의해서 실행되는 기능 모듈을 제외한 기능 모듈들을 포함한다.
상기 목적을 달성하기 위한 플래시 메모리 장치를 포함하는 컴퓨터 시스템의 액세스 방법에 있어서: 상기 플래시 메모리 장치를 액세스하기 위한 플래시 변환 계층(FTL)의 기능들 중 적어도 어느 하나를 상기 컴퓨터 시스템의 소프트웨어가 수행하는 단계; 및 상기 플래시 변환 계층(FTL)의 동작에 따라 상기 플래시 메모리 장치에 액세스하는 단계를 포함한다.
이 실시예에 있어서, 상기 플래시 변환 계층의 기능들은 어드레스 맵핑(Address mapping), 소모 레벨링(Wear Leveling) 및 가비지 컬렉션(Garbage Collection) 동작을 포함한다.
이 실시예에 있어서, 상기 소프트웨어는 상기 플래시 변환 계층의 기능들 중 상기 소프트웨어에서 수행되는 기능들을 실행하기 위한 소프트웨어 모듈들을 포함한다.
이 실시예에 있어서, 상기 소프트웨어는 상기 컴퓨터 시스템 및 상기 플래시 메모리 장치의 데이터 구조를 설정하는 파일 시스템을 포함한다.
이 실시예에 있어서, 상기 컴퓨터 시스템의 소프트웨어는 상기 컴퓨터 시스템에 장착되는 디바이스들을 지원하기 위한 디바이스 드라이버를 포함한다.
이상에서 기술된 본 발명에 따른 컴퓨터 시스템 및 동작 방법에 따르면, 플래시 메모리의 특성을 고려한 효율적인 파일 시스템 또는 메모리 시스템을 구현할 수 있다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다. 특히, 이하의 설명에서 기술되는 "모듈"이란 용어는 소프트웨어의 단위를 의미한다. 소프트웨어에서 "모듈"이란 프로그램의 일부분이다. 프로그램들은 하나 이상의 독립적으로 개발된 "모듈"들로 구성되며, 이들은 프로그램이 링크되기 이전까지는 결합되지 않는다.
도 4는 본 발명의 일 실시예에 따른 시스템을 개략적으로 보여주는 블록도이다. 도 4를 참조하면, 본 발명의 시스템에 따르면, 플래시 메모리 카드의 플래시 컨트롤러(3210)에서 수행되었던 FTL의 기능들이 호스트(3100)에서 수행될 수 있다. 이러한 동작을 구현하기 위해 호스트(3100)는 FTL의 동작을 구현할 수 있는 프로그램 모듈들을 포함한다. 특히, 운영체제(OS)의 파일 시스템(File System)(3112) 또는 디바이스 드라이버(3113)는 FTL의 동작을 수행할 수 있는 프로그램 모듈을 포함한다.
호스트(3100)는 FTL의 기능을 수행할 수 있도록 동작 메모리(3110, 예를 들면 DRAM)와 중앙처리장치(3140)를 포함한다. 특히, 동작 메모리(3110)에는 운영체제(OS), FTL 모듈이 포함되는 파일 시스템(3112) 또는 디바이스 드라이버(3113)가 로드될 것이다. 더불어, 동작 메모리(3110)에는 운영체제(OS) 환경에서 구동되는 사용자 응용 프로그램(3111)이 로드될 것이다. 인터페이스 회로(3120)는 플래시 메모리 카드(3200)와의 데이터 교환을 위한 제반 제어동작을 수행한다. 중앙처리장치(3140)는 호스트(3100)에서 구동되는 응용 프로그램(3111)을 실행한다. 중앙처리장치(3140)는 파일 시스템(3112) 또는 디바이스 드라이버(3113)에 포함되는 FTL 모듈들의 기능을 수행한다. 예를 들면, 중앙처리장치(3140)는 메모리 카드(3200)로의 액세스를 위한 어드레스 맵핑 테이블(Address mapping table)을 구성한다. 어드레스 맵핑 테이블은 메모리 카드(3200)의 플래시 컨트롤러(3210)에 포함될 수 있다. 중앙처리장치(3140)는 가비지 컬렉션이나 소모 레벨링을 위한 연산 동작과 같은 FTL 기능들을 수행한다.
메모리 카드(3200)는 컴퓨터 시스템과 같은 호스트(3100)에 접속되는 데이터 저장 매체이다. 일반적으로 메모리 카드(3200)는 대용량 저장장치인 불휘발성 낸드 플래시 메모리(3220)를 저장매체로 포함한다. 본 발명의 메모리 카드(3200)는 호스트(3100)와의 인터페이싱을 위한 플래시 컨트롤러(3210)를 포함한다. 그러나, 본 발명의 플래시 컨트롤러(3210)가 수행하는 FTL 기능의 일부 또는 모두는 호스트(310)의 파일 시스템(3112) 또는 디바이스 드라이버(3113)에 포함된다. 따라서, 본 발명의 플래시 컨트롤러(3210)는 FTL의 모든 기능을 수행할 필요가 없다. 플래시 컨트롤러(3210)에서 수행되었던 일부 또는 모든 FTL 기능들이 파일 시스템(3112)이나 디바이스 드라이버(3113)에 모듈 형태로 포함된다. 따라서, 플래시 컨트롤러(3210)는 FTL 기능을 수행하기 위한 부담을 줄일 수 있다.
상술한 도 4의 하드웨어적인 구성들은 일반적인 컴퓨터 시스템에 본 발명을 적용한 실시예이다. 즉, 본 발명의 컴퓨터 시스템(3000)에 따르면, 호스트(3100)의 운영체제(OS) 내의 파일 시스템(3112) 또는 특정 장치를 구동하기 위해 제공되는 디바이스 드라이버(3113)에 FTL 모듈이 포함된다. 따라서, 플래시 메모리의 특성이 고려된 파일 시스템을 구성할 수 있다. 또한, 많은 자원을 필요로 하는 FTL 기능이 고성능의 프로세서와 대용량의 램 용량이 제공될 수 있는 호스트(3100)에서 분담될 수 있다. 따라서, 효과적인 자원(Resource) 활용이 가능하다.
도 5는 도 4의 플래시 컨트롤러(3210)에서 수행되는 FTL의 파티션(Partition) 방법의 일예를 간략히 보여주는 블록도이다. 도 5를 참조하면, 플래시 컨트롤러 계층(420)에서 수행되는 FTL 모듈들(421, 422) 중 일부가 파일 시스템(410)으로 분할(Partition)된다. 예시적으로 FTL 모듈이 파일 시스템(410)으로 파티션되는 것으로 설명하였으나, FTL 모듈은 디바이스 드라이버(미도시됨)에 파티션될 수 있다. 좀더 자세히 설명하면 다음과 같다.
플래시 컨트롤러(420)에서 수행되는 FTL의 기능들은 복수의 작업 단위로 구분될 수 있다. 예를 들면, FTL이 수행하는 기능의 단위가 작업1(Job#1)과 작업2(Job#2)로 구분된다고 가정하자. 그러나 본 발명의 컴퓨터 시스템(3000, 도 4 참조)에 있어서, 작업1(Job#1)의 동작 모듈은 플래시 컨트롤러(420)의 FTL에서 수행되나 작업2(Job#2)를 수행하는 동작 모듈은 파일 시스템(410) 계층에서 수행된다. 따라서, 파일 시스템(410)은 작업2(Job#2)를 수행하기 위한 동작 모듈로써 FTL(Job#2)를 포함한다. 파일 시스템(410)에 파티션된 FTL(Job#2) 모듈은 호스트 시스템의 부팅 시에 동작 메모리 또는 램에 로드된다. 따라서, 운영체제(OS) 수준에서 플래시 메모리 장치의 특성이 고려된 파일 시스템(410)을 구성할 수 있다. 파일 시스템(410)으로 파티션된 FTL(Job#2) 모듈은 플래시 컨트롤러 계층(420)에서 수행되는 FTL(Job#1) 모듈과 연계되어야 한다. 즉, 대부분의 FTL 알고리즘에서 수행되는 동작 모듈들은 상호 연계되어 있다. 따라서, 어드레스 정보와 같은 데이터는 모든 FTL 모듈들을 공유해야 한다. 이를 위하여 FTL(Job#1) 모듈과 FTL(Job#2)모듈은 데이터 공유를 위한 별도의 채널(430) 확보가 필수적이다.
도 6은 도 4의 플래시 컨트롤러(3210)에서 수행되는 FTL의 파티션(Partition) 방법의 다른 실시예를 간략히 보여주는 블록도이다. 도 6을 참조하면, 플래시 컨트롤러(321, 도 4 참조)에서 수행되는 FTL 모듈들 전부가 파일 시스템(510) 계층에서 실행된다. 좀더 자세히 설명하면 다음과 같다.
플래시 컨트롤러(520)에서 펌웨어(Firmware)의 형태로 수행되는 FTL의 기능들은 복수의 작업 단위로 구분될 수 있다. 즉, FTL이 수행하는 기능의 단위는 작업1(Job#1)과 작업2(Job#2)로 구분된다고 가정하자. 본 발명의 다른 실시예에 따르면, FTL이 수행하는 모든 기능 단위의 모듈들은 파일 시스템(510)에 포함된다. 플래시 컨트롤러 계층(520)에서 수행되는 제반 FTL 모듈들이 운영체제(OS) 계층으로 모두 파티션되는 경우를 일반적으로 클론(Clone) 되었다고 일컫는다. 파일 시스템 계층(510)으로 클론(Clone) 된 FTL의 동작 모듈들은 플래시 컨트롤러 계층(520)에서 수행했던 모든 기능들을 파일 시스템 계층(510)에서 동일하게 수행할 수 있다.
다시 도면을 참조하면, 작업1(Job#1)을 수행하기 위한 FTL(Job#1) 모듈(511) 과 작업2(Job#2)를 수행하기 위한 FTL(Job#2) 모듈(512)은 파일 시스템 계층(510)에 포함된다. 따라서, 파일 시스템 계층(510)은 플래시 메모리 장치의 특성을 고려한 어드레싱(Addressing)이나 덮어쓰기 동작(Over write)을 플래시 컨트롤러 계층(520)으로 요청할 수 있다. 결국, 본 발명의 파일 시스템 계층(510)은 플래시 메모리 장치의 덮어쓰기 기능, 삭제 연산을 감추기 위한 FTL 기능들을 수행할 수 있다. 파일 시스템 계층(510)으로의 이러한 기능 추가로, 본 발명의 컴퓨터 시스템은 FTL에 요구되는 자원의 효과적인 배분을 구현할 수 있다.
도 7은 본 발명에 따른 FTL의 파티션 방법의 일 실시예를 간략히 보여주는 블록도이다. 도 7을 참조하면, 파일 시스템(610)은 FTL의 일부 동작 모듈인 어드레스 맵핑을 위한 맵 검색 모듈(611)을 포함한다. 맵 검색 모듈(611)은 파일 시스템 계층(610)의 상위 레벨로부터 제공되는 논리 어드레스에 대응하는 플래시 메모리의 물리 어드레스를 계산한다. 맵 검색 모듈(611)에 의해서 계산된 물리 어드레스는 플래시 컨트롤러(620)에 포함되는 고속의 에스램 상에 구성되는 맵핑 테이블에 기입된다. 그러나 맵핑 테이블의 구성이 플래시 컨트롤러(620)에 구비되는 에스램에 국한되지는 않는다. 즉, 맵핑 테이블은 호스트에 구비되는 동작 메모리(예를 들면 DRAM)에 구성될 수도 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.
더불어, 에스램으로 기입된 맵핑 테이블은 플래시 메모리의 소거와 프로그램 동작에 따라 지속적으로 업데이트된다. 맵 검색 모듈(611)은 독출 동작시에는 파일 시스템의 상위 계층으로부터 제공되는 논리 어드레스에 대응하는 물리 어드레스를 맵핑 테이블로부터 검색하여 플래시 메모리로 전달한다.
소모 레벨링 모듈(622)은 소거 횟수의 평준화를 위한 낸드 플래시 메모리의 제반 블록들에 대한 소거 횟수를 카운트한다. 소모 레벨링 모듈(622)은 플래시 메모리 각 블록의 소거 횟수(Erase Count)에 대한 정보를 저장하고, 횟수가 적은 수의 블록을 우선적으로 호스트로부터의 논리적 블록 어드레스에 할당되도록 설정한다. 이러한 호스트로부터 제공되는 논리 어드레스에 대응하는 물리 어드레스의 할당은 소모 레벨링 모듈(622)이 독립적으로 수행할 수 없다. 소모 레벨링 모듈(622)은 업데이트되는 맵핑 테이블(Mapping table) 및 맵핑 연산의 정보들을 맵 검색 모듈(611)과 공유해야 한다. 따라서, 파일 시스템(610)으로 파티션된 맵 검색 모듈(611)과 플래시 컨트롤러 계층(620)에 포함되는 나머지 FTL 동작 모듈들은 어드레스 데이터를 상호 공유할 수 있는 채널(630)을 구비해야 한다.
가비지 컬렉션 모듈(623)은 플래시 메모리의 저장 영역을 검색하여 무효 데이터는 제거하고 유효 데이터들만을 모으는 동작을 수행한다. 이러한 동작을 위해서 가비지 컬렉션 모듈(623)은 맵 검색 모듈(611)과 어드레스 정보를 공유하기 위한 채널을 구비한다.
이상의 도 7의 파티션 방법에 따르면, 파일 시스템은 플래시 컨트롤러 계층(620)에서 수행되던 맵 검색 모듈(621)이 파일 시스템(610) 또는 디바이스 드라이버로 파티션(Partition)된다. 여기서, 맵 검색 모듈(611)이 파일 시스템 계층(610)으로 파티션되는 것으로 설명되었으나, 소모 레벨링 모듈(622) 또는 가비지 컬렉션 모듈(623) 들 중 어느 하나가 파일 시스템 계층(610)으로 파티션될 수 있 다.
도 8은 적어도 2개의 FTL 모듈들이 파일 시스템 계층(710)으로 파티션된 실시예를 설명하는 도면이다. 도 8을 참조하면, 맵 검색 모듈(711) 및 소모 레벨링 모듈(712)은 파일 시스템 계층(710)에서 그 기능들을 수행한다. 그리고 플래시 컨트롤러 계층(720)에는 상술한 맵 검색 모듈(711) 및 소모 레벨링 모듈(712)이 비활성화되거나 장착되지 않는다. 그리고 가비지 컬렉션 모듈(723)을 비롯한 기타 FTL 모듈들의 기능들은 플래시 컨트롤러 계층(720)에서 그 동작들이 실행된다. 맵 검색 모듈(711)과 소모 레벨링 모듈(712)은 파일 시스템(710) 계층에서 활성화되어, 맵핑 테이블을 업데이트하거나, 소거 카운트(Erase count) 동작을 수행한다. 맵 검색 모듈(711)과 소모 레벨링 모듈(712)은 별도로 구비되는 채널(730)을 통해 가비지 컬렉션 모듈(723)과 FTL 동작을 수행하는 데이터를 공유한다. 여기서, 맵 검색 모듈(711) 및 소모 레벨링 모듈(712)을 파일 시스템 계층(710)에서 실행되는 실시예로 설명되었으나 본 발명은 이에 국한되지 않는다. 즉, 맵 검색 모듈(711) 및 소모 레벨링 모듈(712)을 제외한 또 다른 복수의 FTL 동작 모듈들이 파일 시스템 계층(710)으로 파티션될 수 있다.
도 9는 본 발명에 따른 파일 시스템 영역으로 클론(Clone)된 FTL 모듈들을 간략히 보여주는 블록도이다. 도 9를 참조하면, FTL의 전 모듈들(811, 812, 813, …)이 파일 시스템(810) 계층으로 클론되어, 운영체제(OS) 레벨에서 모든 FTL 기능들이 실행된다. 물론, 어드레스 맵핑 테이블(Address mapping table)은 플래시 컨트롤러(820)에 구비되는 에스램에 구성될 수 있다. 또는 어드레스 맵핑 테이 블(Address mapping table)은 맵핑 테이블이나 가비지 컬렉션 또는 소모 레벨링을 위한 블록 리스트(Wear Sorted Block List ;WSBL) 등이 호스트의 램 상에 구성될 수 있다. 그러나 이러한 파일 시스템 계층(810)에서 모든 FTL 기능들이 실행되기 위해서는
이상에서 설명한 도면들에 의거하여 FTL 기능 모듈들이 파일 시스템 계층으로 파티션되는 실시예들에 대해서 설명되었다. 그러나 FTL 기능 모듈들이 운영체제(OS) 기반에서 제공될 수 있는 디바이스 드라이버(Device driver)에 포함될 수 있다. 즉, 메모리 카드를 구동하기 위한 디바이스 드라이버, 또는 기본적으로 운영체제에서 지원되는 디바이스 드라이버에 포함될 수 있다.
보편적인 운영체제인 마이크로소프트 윈도즈(Microsoft Windows)에서는 커널(Kernel) 드라이버에 포함되는 레거시 드라이버(Legacy driver) 또는 WDM 드라이버(Windows Driver Model Driver)에 FTL 기능 모듈들이 파티션될 수 있다. FTL 기능 모듈들이 파티션될 수 있는 WDM 드라이버로는 클래스 드라이버(Class driver), 필터 드라이버(Filter driver) 및 중재 드라이버(Intermediate driver;IM driver) 등이 있다.
이상의 본 발명에 따른 플래시 변환 계층(FTL)의 운영 방법에 따르면, 시스템에 장착되는 메모리 카드 측에서 부담하는 FTL 기능들이 호스트의 운영체제에 의해서 수행될 수 있다. 이 경우, 시스템은 메모리 카드에 구비되는 제한적인 자원(Resource)의 한계를 극복할 수 있다. 그리고 시스템에 구비되는 고성능의 중앙처리정치와 여유있는 램 용량을 FTL 기능을 수행하는데 사용할 수 있다. 따라서, 본 발명에 따른 시스템은 플래시 메모리 장치의 특성이 고려된 파일 시스템 또는 디바이스 드라이버를 구비할 수 있다. 또한, 플래시 메모리의 컨트롤러에 포함되는 펌웨어의 코드 사이즈를 줄일 수 있다. 이러한 특징들에 의하여 본 발명의 시스템은 플래시 컨트롤러의 사이즈를 줄이면서도 향상된 동작 속도로 플래시 메모리 장치에 액세스가 가능하다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형할 수 있은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이, 본 발명에 따른 컴퓨터 시스템 및 그 동작 방법에 따르면, 플래시 컨트롤러의 복잡도와 부담을 줄이면서도 향상된 속도 효과적인 자원활용이 가능한 컴퓨터 시스템을 구현할 수 있다.

Claims (16)

  1. 호스트;
    플래시 메모리 장치; 및
    상기 호스트로부터의 읽기/쓰기 요청에 응답하여 상기 플래시 메모리 장치를 제어하는 플래시 컨트롤러를 포함하며, 상기 플래시 메모리 장치를 관리하기 위한 플래시 변환 계층의 기능 모듈들 중 적어도 하나는 상기 호스트에 의해서 수행되고 나머지는 상기 플래시 컨트롤러에 의해서 수행되는 컴퓨터 시스템.
  2. 제 1 항에 있어서,
    상기 호스트는 운영체제에 따라 데이터를 처리하며, 상기 운영체제는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 중 적어도 하나를 수행하는 파일 시스템을 포함하는 컴퓨터 시스템.
  3. 제 2 항에 있어서,
    상기 플래시 컨트롤러는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 중 상기 파일 시스템에 의해서 실행되는 동작에 대응하는 기능 모듈을 제외한 기능 모듈들을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제 2 항에 있어서,
    상기 호스트는,
    상기 파일 시스템을 로드하는 동작 메모리; 및
    상기 호스트에서 수행되는 상기 플래시 변환 계층(FTL)을 구성하는 복수의 기능 모듈들 중 적어도 하나를 실행하는 프로세싱 유닛을 포함하는 컴퓨터 시스템.
  5. 제 4 항에 있어서,
    상기 파일 시스템은 어드레스 맵핑(Address mapping), 소모 레벨링(Wear Leveling) 및 가비지 컬렉션(Garbage Collection) 동작을 각각 실행하기 위한 소프트웨어 모듈들 중 적어도 하나 이상을 포함하는 컴퓨터 시스템.
  6. 제 5 항에 있어서,
    상기 어드레스 맵핑 동작을 수행하는 소프트웨어 모듈은 어드레스 맵핑 테이블을 상기 플래시 컨트롤러에 구비되는 랜덤 액세스 메모리(RAM)에 구성하는 것을 특징으로 하는 컴퓨터 시스템.
  7. 제 5 항에 있어서,
    상기 어드레스 맵핑 동작을 수행하는 소프트웨어 모듈은 어드레스 맵핑 테이블을 상기 동작 메모리에 구성하는 것을 특징으로 하는 컴퓨터 시스템.
  8. 제 7 항에 있어서,
    상기 호스트는 상기 파일 시스템에 포함되는 소프트웨어 모듈과 상기 플래시 컨트롤러에 포함되는 소프트웨어 모듈과의 데이터 공유를 위한 채널을 구비하는 것을 특징으로 하는 컴퓨터 시스템.
  9. 제 2 항에 있어서,
    상기 운영체제는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 모두를 수행하는 파일 시스템을 포함하는 컴퓨터 시스템.
  10. 제 1 항에 있어서,
    상기 호스트는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 중 적어도 하나를 수행하는 디바이스 드라이버를 포함하는 컴퓨터 시스템.
  11. 제 10 항에 있어서,
    상기 플래시 컨트롤러는 상기 플래시 변환 계층을 구성하는 복수의 기능 모듈들 중 상기 디바이스 드라이버에 의해서 실행되는 기능 모듈을 제외한 기능 모듈들을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 플래시 메모리 장치를 포함하는 컴퓨터 시스템의 액세스 방법에 있어서:
    상기 플래시 메모리 장치를 액세스하기 위한 플래시 변환 계층(FTL)의 기능들 중 적어도 어느 하나를 상기 컴퓨터 시스템의 소프트웨어를 사용하여 수행하는 단계; 및
    상기 플래시 변환 계층(FTL)의 동작에 따라 상기 플래시 메모리 장치에 액세스하는 단계를 포함하는 액세스 방법.
  13. 제 12 항에 있어서,
    상기 플래시 변환 계층의 기능들은 어드레스 맵핑(Address mapping), 소모 레벨링(Wear Leveling) 및 가비지 컬렉션(Garbage Collection) 동작을 포함하는 액세스 방법.
  14. 제 13 항에 있어서,
    상기 소프트웨어는 상기 플래시 변환 계층의 기능들 중 상기 소프트웨어에서 수행되는 기능들을 실행하기 위한 소프트웨어 모듈들을 포함하는 액세스 방법.
  15. 제 12 항에 있어서,
    상기 소프트웨어는 상기 컴퓨터 시스템 및 상기 플래시 메모리 장치의 데이터 구조를 설정하는 파일 시스템을 포함하는 액세스 방법.
  16. 제 12 항에 있어서,
    상기 컴퓨터 시스템의 소프트웨어는 상기 컴퓨터 시스템에 장착되는 디바이스들을 지원하기 위한 디바이스 드라이버를 포함하는 액세스 방법.
KR1020070010573A 2007-02-01 2007-02-01 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 KR100823171B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020070010573A KR100823171B1 (ko) 2007-02-01 2007-02-01 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US11/833,731 US8745309B2 (en) 2007-02-01 2007-08-03 Cooperative memory management
DE200810008079 DE102008008079A1 (de) 2007-02-01 2008-01-29 Kooperatives Speicherkartensystem und Verfahren für eine kooperative Speicherverwaltung zwischen einem Host und einer Speicherkarte
CNA200810008933XA CN101236483A (zh) 2007-02-01 2008-01-31 合作存储器管理
JP2008021198A JP5468207B2 (ja) 2007-02-01 2008-01-31 相補性メモリ管理
TW097103746A TWI512459B (zh) 2007-02-01 2008-01-31 協同記憶體管理與其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070010573A KR100823171B1 (ko) 2007-02-01 2007-02-01 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법

Publications (1)

Publication Number Publication Date
KR100823171B1 true KR100823171B1 (ko) 2008-04-18

Family

ID=39571848

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070010573A KR100823171B1 (ko) 2007-02-01 2007-02-01 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법

Country Status (5)

Country Link
US (1) US8745309B2 (ko)
JP (1) JP5468207B2 (ko)
KR (1) KR100823171B1 (ko)
CN (1) CN101236483A (ko)
TW (1) TWI512459B (ko)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2151783A3 (de) * 2008-07-28 2010-04-14 Vincotech (Germany) GmbH Verfahren und Vorrichtung um Änderungen an Daten zu erkennen
US8527735B2 (en) 2009-06-23 2013-09-03 Seagate Technology International Data storage using virtual addressing
WO2013165108A1 (ko) * 2012-05-03 2013-11-07 주식회사 디에이아이오 비휘발성 메모리 시스템
WO2014081100A1 (ko) * 2012-11-22 2014-05-30 주식회사 이에프텍 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법
KR101549569B1 (ko) 2014-02-14 2015-09-03 고려대학교 산학협력단 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
TWI567554B (zh) * 2014-11-06 2017-01-21 慧榮科技股份有限公司 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置
US9612973B2 (en) 2013-11-09 2017-04-04 Microsoft Technology Licensing, Llc Using shared virtual memory resources for performing memory-mapping
WO2017195928A1 (ko) * 2016-05-13 2017-11-16 주식회사 맴레이 플래시 기반 저장 장치 및 이를 포함하는 컴퓨팅 디바이스
CN111415697A (zh) * 2020-03-20 2020-07-14 杭州华澜微电子股份有限公司 闪存转换层算法的验证方法、装置及***

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917689B2 (en) * 2007-12-28 2011-03-29 Intel Corporation Methods and apparatuses for nonvolatile memory wear leveling
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US7970978B2 (en) * 2008-05-27 2011-06-28 Initio Corporation SSD with SATA and USB interfaces
US20090327535A1 (en) * 2008-06-30 2009-12-31 Liu Tz-Yi Adjustable read latency for memory device in page-mode access
US20100017649A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation Data storage system with wear-leveling algorithm
US8108584B2 (en) * 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
US8626984B2 (en) * 2008-10-24 2014-01-07 Cisco Technology, Inc. Method and system for device independence in storage device wear algorithms
KR101543431B1 (ko) * 2008-11-20 2015-08-11 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 액세스 방법
JP5221332B2 (ja) * 2008-12-27 2013-06-26 株式会社東芝 メモリシステム
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
CN101706788B (zh) * 2009-11-25 2012-11-14 惠州Tcl移动通信有限公司 一种嵌入式文件***的跨区访问方法
CN102122267A (zh) * 2010-01-07 2011-07-13 上海华虹集成电路有限责任公司 一种可同时进行数据传输及FTL管理的多通道NANDflash控制器
JP2011192240A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
JP2011192239A (ja) * 2010-03-17 2011-09-29 Sony Corp 記憶装置および記憶システム
WO2011148223A1 (en) * 2010-05-27 2011-12-01 Sandisk Il Ltd Memory management storage to a host device
US8595415B2 (en) * 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
US8705291B2 (en) 2011-05-27 2014-04-22 Seagate Technology Llc Sanitizing a non-volatile memory through charge accumulation
US20120317377A1 (en) * 2011-06-09 2012-12-13 Alexander Palay Dual flash translation layer
US8645618B2 (en) * 2011-07-14 2014-02-04 Lsi Corporation Flexible flash commands
US8806112B2 (en) 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
TWI521343B (zh) 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
JP5524144B2 (ja) 2011-08-08 2014-06-18 株式会社東芝 key−valueストア方式を有するメモリシステム
EP2742428B1 (en) * 2011-08-12 2016-01-06 Sandisk Enterprise IP LLC Cache management including solid state device virtualization
US8909855B2 (en) * 2012-08-08 2014-12-09 Avalanche Technology, Inc. Storage system employing MRAM and physically addressed solid state disk
CN103946816B (zh) * 2011-09-30 2018-06-26 英特尔公司 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram)
CN102508787B (zh) * 2011-11-29 2014-09-03 清华大学 混合结构内存的内存分配***及方法
US9740439B2 (en) * 2011-12-23 2017-08-22 International Business Machines Corporation Solid-state storage management
CN102541760B (zh) * 2012-01-04 2015-05-20 记忆科技(深圳)有限公司 基于固态硬盘的计算机***
US9213632B1 (en) 2012-02-29 2015-12-15 Marvell International Ltd. Systems and methods for data storage devices to use external resources
TWI584120B (zh) * 2012-03-23 2017-05-21 Lsi公司 用於動態調適快取的方法及系統
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
US20140047159A1 (en) * 2012-08-10 2014-02-13 Sandisk Technologies Inc. Enterprise server with flash storage modules
JP5976939B2 (ja) * 2012-08-23 2016-08-24 アップル インコーポレイテッド ホスト支援型メモリブロックコンパクション
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9229854B1 (en) 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US10642505B1 (en) 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US9928177B2 (en) * 2013-08-21 2018-03-27 Lite-On Electronics (Guangzhou) Limited Managing method for cache memory of solid state drive
KR102147916B1 (ko) 2014-04-14 2020-08-26 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
CN105224474B (zh) * 2014-06-03 2019-05-31 深圳市腾讯计算机***有限公司 固态硬盘闪存转换层的实现***和闪存转换层的实现装置
KR20160022453A (ko) 2014-08-19 2016-03-02 삼성전자주식회사 임베디드 메모리를 포함하는 이동식 전자 장치
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9798657B2 (en) 2014-10-15 2017-10-24 Samsung Electronics Co., Ltd. Data storage device including nonvolatile memory device and operating method thereof
JP6378111B2 (ja) * 2014-12-29 2018-08-22 東芝メモリ株式会社 情報処理装置及びプログラム
CN106201327B (zh) * 2015-01-22 2019-01-04 光宝科技股份有限公司 具有固态储存装置的***及其相关控制方法
US9880748B2 (en) * 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
CN105005536B (zh) * 2015-07-01 2019-08-06 忆正科技(武汉)有限公司 固态存储设备、主机的工作方法及固态存储设备、主机
US10055236B2 (en) 2015-07-02 2018-08-21 Sandisk Technologies Llc Runtime data storage and/or retrieval
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US10466908B2 (en) * 2015-08-25 2019-11-05 Toshiba Memory Corporation Memory system that buffers data before writing to nonvolatile memory
US10459846B2 (en) * 2015-09-10 2019-10-29 Toshiba Memory Corporation Memory system which uses a host memory
CN105353989B (zh) * 2015-11-19 2018-12-28 华为技术有限公司 存储数据访问方法及相关的控制器、设备、主机和***
US10033810B2 (en) 2015-12-03 2018-07-24 International Business Machines Corporation Recovery point objective via dynamic usage of bind segments in a global mirror environment
US10229051B2 (en) 2015-12-30 2019-03-12 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
CN107092560B (zh) * 2016-02-17 2020-06-16 建兴储存科技(广州)有限公司 固态储存装置及运用于其中的快闪转换层对应表重建方法
CN105867850B (zh) * 2016-03-29 2019-05-31 北京联想核芯科技有限公司 一种信息调整方法及电子设备
US10037152B2 (en) 2016-12-19 2018-07-31 Alibaba Group Holding Limited Method and system of high-throughput high-capacity storage appliance with flash translation layer escalation and global optimization on raw NAND flash
US10971241B2 (en) 2017-01-30 2021-04-06 Toshiba Memory Corporation Performance based method and system for patrolling read disturb errors in a memory unit
KR20190052366A (ko) * 2017-11-08 2019-05-16 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
CN108287663A (zh) * 2017-12-21 2018-07-17 北京京存技术有限公司 一种基于emmc的数据存储方法和装置
US10997066B2 (en) 2018-02-20 2021-05-04 Samsung Electronics Co., Ltd. Storage devices that support cached physical address verification and methods of operating same
US11436023B2 (en) * 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11263124B2 (en) 2018-08-03 2022-03-01 Micron Technology, Inc. Host-resident translation layer validity check
CN111326195A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 一种存储器
US11226907B2 (en) 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11226894B2 (en) 2018-12-21 2022-01-18 Micron Technology, Inc. Host-based flash memory maintenance techniques
KR20210001546A (ko) 2019-06-28 2021-01-06 에스케이하이닉스 주식회사 슬립모드에서 메모리 시스템의 내부데이터를 전송하는 장치 및 방법
KR20200139913A (ko) * 2019-06-05 2020-12-15 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메타 정보 저장 장치
JP7252821B2 (ja) * 2019-04-17 2023-04-05 キヤノン株式会社 記録装置、記録方法、プログラム、及びメモリカード
US11294825B2 (en) 2019-04-17 2022-04-05 SK Hynix Inc. Memory system for utilizing a memory included in an external device
KR20200122086A (ko) 2019-04-17 2020-10-27 에스케이하이닉스 주식회사 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치
US11036594B1 (en) 2019-07-25 2021-06-15 Jetstream Software Inc. Disaster recovery systems and methods with low recovery point objectives
US11175984B1 (en) 2019-12-09 2021-11-16 Radian Memory Systems, Inc. Erasure coding techniques for flash memory
US11194489B2 (en) 2020-04-27 2021-12-07 Western Digital Technologies, Inc. Zone-based device with control level selected by the host
US11659028B2 (en) * 2021-09-22 2023-05-23 Toyota Motor Engineering & Manufacturing North America, Inc. Data offloading rate determination using mean field games

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040082921A (ko) * 2003-03-19 2004-09-30 삼성전자주식회사 플래쉬 파일 시스템
KR20050027233A (ko) * 2005-02-03 2005-03-18 주식회사 퍼스터 파일 시스템이 운용되는 장치에서의 낸드 플래시 메모리 액세스 방법
KR20050078916A (ko) * 2004-02-03 2005-08-08 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
KR20060080972A (ko) * 2005-01-06 2006-07-12 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
KR20060090087A (ko) * 2005-02-07 2006-08-10 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR20060090080A (ko) * 2005-02-07 2006-08-10 삼성전자주식회사 런 단위 어드레스 매핑 테이블 및 그것의 구성 방법
KR20070008403A (ko) * 2005-07-13 2007-01-17 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3789743T2 (de) * 1986-09-01 1994-08-18 Nec Corp Serielles Datenübertragungssystem.
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JPH05173989A (ja) 1991-12-24 1993-07-13 Kawasaki Steel Corp 計算機及びマルチプロセッサ計算装置
US5319751A (en) * 1991-12-27 1994-06-07 Intel Corporation Device driver configuration in a computer system
JPH0887441A (ja) 1994-09-19 1996-04-02 Fujitsu Ltd フラッシュメモリアクセス方式
JPH08101751A (ja) * 1994-09-30 1996-04-16 Mitsubishi Electric Corp Pcカード及びpcカードシステム
US6014724A (en) * 1995-10-27 2000-01-11 Scm Microsystems (U.S.) Inc. Flash translation layer block indication map revision system and method
US5778197A (en) 1996-04-26 1998-07-07 International Business Machines Corp. Method for allocating system resources in a hierarchical bus structure
US5826082A (en) 1996-07-01 1998-10-20 Sun Microsystems, Inc. Method for reserving resources
US6260102B1 (en) * 1996-12-26 2001-07-10 Intel Corporation Interface for flash EEPROM memory arrays
US5928347A (en) * 1997-11-18 1999-07-27 Shuttle Technology Group Ltd. Universal memory card interface apparatus
US6151709A (en) * 1998-02-13 2000-11-21 Novell, Inc. Processes and apparatuses for uploading instructions to a computer
US6701402B1 (en) * 2001-03-30 2004-03-02 Hewlett-Packard Development Company, L.P. Selectively operating a host's device controller in a first mode or a second mode
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
JP4236830B2 (ja) 2001-07-09 2009-03-11 株式会社ルネサステクノロジ アップロード機能付き記憶装置
US6990662B2 (en) * 2001-10-31 2006-01-24 Hewlett-Packard Development Company, L.P. Method and system for offloading execution and resources for resource-constrained networked devices
JP4206688B2 (ja) * 2002-04-15 2009-01-14 ソニー株式会社 データ処理装置及びデータ処理方法
US7080245B2 (en) * 2002-05-23 2006-07-18 Hewlett-Packard Development Company, L.P. Method and system of switching between two or more images of firmware on a host device
US7277978B2 (en) * 2003-09-16 2007-10-02 Micron Technology, Inc. Runtime flash device detection and configuration for flash data management software
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
KR100562906B1 (ko) * 2003-10-08 2006-03-21 삼성전자주식회사 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩
KR20070007265A (ko) 2003-12-30 2007-01-15 쌘디스크 코포레이션 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US20050270993A1 (en) * 2004-06-07 2005-12-08 Krishnan Rajamani Efficient partitioning of MAC (media access control) functions
KR100568115B1 (ko) * 2004-06-30 2006-04-05 삼성전자주식회사 점진적 머지 방법 및 그것을 이용한 메모리 시스템
US7660939B2 (en) * 2004-07-30 2010-02-09 Virinci Technologies, Inc. Operating system arrangement for flexible computer system design
JP4192129B2 (ja) * 2004-09-13 2008-12-03 株式会社東芝 メモリ管理装置
JP4713867B2 (ja) 2004-09-22 2011-06-29 株式会社東芝 メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
US20060094477A1 (en) * 2004-11-04 2006-05-04 Motorola, Inc. Power saving system and method
US7712086B2 (en) 2004-12-15 2010-05-04 Microsoft Corporation Portable applications
US20060157549A1 (en) * 2005-01-14 2006-07-20 Stein Israel M Smart cards for automated sample analysis devices
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
KR20080007430A (ko) * 2005-02-11 2008-01-21 샌디스크 아이엘 엘티디 Nand 플래시 메모리 시스템 체계
KR100759427B1 (ko) * 2005-03-17 2007-09-20 삼성전자주식회사 전력 소모가 적은 하드디스크 드라이버 및 이를 구비한 정보처리 시스템, 그리고 그들의 데이터 입출력 방법
KR100725271B1 (ko) 2005-05-20 2007-06-04 주식회사 엠피오 복수개의 dma 채널을 갖는 usb-sd 저장 장치 및 그저장 방법
JP4213140B2 (ja) 2005-06-03 2009-01-21 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20070180186A1 (en) * 2006-01-27 2007-08-02 Cornwell Michael J Non-volatile memory management
JP2008011512A (ja) 2006-06-01 2008-01-17 Canon Inc データ処理装置、データ記憶装置およびそれらのデータ処理方法
US7966039B2 (en) * 2007-02-02 2011-06-21 Microsoft Corporation Bidirectional dynamic offloading of tasks between a host and a mobile device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040082921A (ko) * 2003-03-19 2004-09-30 삼성전자주식회사 플래쉬 파일 시스템
KR20050078916A (ko) * 2004-02-03 2005-08-08 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
KR20060080972A (ko) * 2005-01-06 2006-07-12 삼성전자주식회사 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법
KR20050027233A (ko) * 2005-02-03 2005-03-18 주식회사 퍼스터 파일 시스템이 운용되는 장치에서의 낸드 플래시 메모리 액세스 방법
KR20060090087A (ko) * 2005-02-07 2006-08-10 삼성전자주식회사 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
KR20060090080A (ko) * 2005-02-07 2006-08-10 삼성전자주식회사 런 단위 어드레스 매핑 테이블 및 그것의 구성 방법
KR20070008403A (ko) * 2005-07-13 2007-01-17 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2151783A3 (de) * 2008-07-28 2010-04-14 Vincotech (Germany) GmbH Verfahren und Vorrichtung um Änderungen an Daten zu erkennen
US8527735B2 (en) 2009-06-23 2013-09-03 Seagate Technology International Data storage using virtual addressing
WO2013165108A1 (ko) * 2012-05-03 2013-11-07 주식회사 디에이아이오 비휘발성 메모리 시스템
KR101419004B1 (ko) * 2012-05-03 2014-07-11 주식회사 디에이아이오 비휘발성 메모리 시스템
WO2014081100A1 (ko) * 2012-11-22 2014-05-30 주식회사 이에프텍 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법
KR101420754B1 (ko) * 2012-11-22 2014-07-17 주식회사 이에프텍 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법
US9612973B2 (en) 2013-11-09 2017-04-04 Microsoft Technology Licensing, Llc Using shared virtual memory resources for performing memory-mapping
US10515018B2 (en) 2013-11-09 2019-12-24 Microsoft Technology Licensing, Llc Using shared virtual memory resources for performing memory-mapping
KR101549569B1 (ko) 2014-02-14 2015-09-03 고려대학교 산학협력단 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
US9779022B2 (en) 2014-11-06 2017-10-03 Silicon Motion, Inc. Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same
TWI567554B (zh) * 2014-11-06 2017-01-21 慧榮科技股份有限公司 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置
WO2017195928A1 (ko) * 2016-05-13 2017-11-16 주식회사 맴레이 플래시 기반 저장 장치 및 이를 포함하는 컴퓨팅 디바이스
CN111415697A (zh) * 2020-03-20 2020-07-14 杭州华澜微电子股份有限公司 闪存转换层算法的验证方法、装置及***
CN111415697B (zh) * 2020-03-20 2022-08-16 杭州华澜微电子股份有限公司 闪存转换层算法的验证方法、装置及***

Also Published As

Publication number Publication date
US20080189485A1 (en) 2008-08-07
JP2008192153A (ja) 2008-08-21
TWI512459B (zh) 2015-12-11
CN101236483A (zh) 2008-08-06
JP5468207B2 (ja) 2014-04-09
TW200839511A (en) 2008-10-01
US8745309B2 (en) 2014-06-03

Similar Documents

Publication Publication Date Title
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US9520992B2 (en) Logical-to-physical address translation for a removable data storage device
US10789160B2 (en) Utilizing different data storage policies in response to different characteristics of data
US9183136B2 (en) Storage control apparatus and storage control method
JP6016137B2 (ja) ソリッドステートドライブおよびその動作方法
US9817755B2 (en) Garbage collection management in memories
US9053007B2 (en) Memory system, controller, and method for controlling memory system
US11747989B2 (en) Memory system and method for controlling nonvolatile memory
JP2015204118A (ja) ストレージコントローラ及びストレージ装置
KR20110119408A (ko) 데이터 저장 장치 및 그것의 동작 방법
US9785384B2 (en) Semiconductor storage device and method for controlling nonvolatile semiconductor memory
JP6139381B2 (ja) メモリシステムおよび方法
US20100042775A1 (en) Block management method for flash memory, and storage system and controller using the same
US10936203B2 (en) Memory storage device and system employing nonvolatile read/write buffers
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
US20200293221A1 (en) Storage device and computing device including storage device
JP2011070365A (ja) メモリシステム
CN112988616A (zh) 使用枢纽表从存储器读取顺序数据
CN111949206A (zh) 存储器***、控制器以及控制器的操作方法
US20210026763A1 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
WO2017000821A1 (zh) 存储***、存储管理装置、存储器、混合存储装置及存储管理方法
KR20130079706A (ko) 휘발성 메모리를 포함하는 저장 장치의 구동 방법
TWI713032B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US20240103733A1 (en) Data processing method for efficiently processing data stored in the memory device by splitting data flow and the associated data storage device
US20240103757A1 (en) Data processing method for efficiently processing data stored in the memory device by splitting data flow and the associated data storage device

Legal Events

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

Payment date: 20190329

Year of fee payment: 12