KR20090017238A - 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 - Google Patents

반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 Download PDF

Info

Publication number
KR20090017238A
KR20090017238A KR1020070081832A KR20070081832A KR20090017238A KR 20090017238 A KR20090017238 A KR 20090017238A KR 1020070081832 A KR1020070081832 A KR 1020070081832A KR 20070081832 A KR20070081832 A KR 20070081832A KR 20090017238 A KR20090017238 A KR 20090017238A
Authority
KR
South Korea
Prior art keywords
data
memory area
storage medium
stored
memory
Prior art date
Application number
KR1020070081832A
Other languages
English (en)
Other versions
KR101498673B1 (ko
Inventor
오문욱
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070081832A priority Critical patent/KR101498673B1/ko
Priority to US12/015,548 priority patent/US20090049234A1/en
Priority to CN2013102935199A priority patent/CN103400598A/zh
Priority to CNA2008101085798A priority patent/CN101369451A/zh
Priority to JP2008138348A priority patent/JP2009048613A/ja
Priority to DE102008036822A priority patent/DE102008036822A1/de
Publication of KR20090017238A publication Critical patent/KR20090017238A/ko
Priority to US12/657,029 priority patent/US8429358B2/en
Priority to US13/027,299 priority patent/US20110138115A1/en
Priority to US13/647,630 priority patent/US8626996B2/en
Priority to JP2013155538A priority patent/JP2013242908A/ja
Priority to US14/101,469 priority patent/US20140101377A1/en
Priority to US14/146,870 priority patent/US20140122783A1/en
Priority to US14/445,126 priority patent/US20140337566A1/en
Application granted granted Critical
Publication of KR101498673B1 publication Critical patent/KR101498673B1/ko
Priority to US14/717,476 priority patent/US9208079B2/en
Priority to US15/130,464 priority patent/US20160231941A1/en

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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • 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/10Programming or data input circuits
    • 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/7202Allocation control and policies

Abstract

여기에 제공되는 저장 매체에 데이터를 저장하는 방법이 제공된다. 이 방법에 의하면, 상기 저장 매체에 저장될 데이터의 유형에 따라 상기 저장 매체의 제 1 및 제 2 메모리 영역들 중 어느 하나에 상기 데이터가 저장되고, 상기 제 1 메모리 영역에 저장된 데이터는 선택적으로 상기 제 2 메모리 영역으로 옮겨진다.

Description

반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을 포함한 컴퓨팅 시스템{SOLID STATE DRIVE, DATA STORING METHOD THEREOF, AND COMPUTING SYSTEM INCLUDING THE SAME}
본 발명은 반도체 저장 장치에 관한 것으로, 좀 더 구체적으로는 반도체 드라이브(Solid State Drive: SSD)에 관한 것이다.
이 분야에 잘 알려진 바와 같이, 컴퓨터 시스템은 일반적으로 다양한 형태의 메모리 시스템들을 사용한다. 예를 들면, 컴퓨터 시스템은 반도체 장치들로 구성된 소위 메인 메모리를 사용한다. 이 반도체 장치들은 일반적으로 다음과 같은 속성을 갖는다. 반도체 장치들은 상당히 빠른 액세스 속도로 랜덤하게 쓰여지거나 읽혀지며, 일반적으로 랜덤 액세스 메모리라 불린다. 하지만, 반도체 메모리가 비교적 고가이기 때문에, 다른 고밀도 및 저가 메모리가 종종 사용된다. 예를 들면, 다른 메모리 시스템은 마그네틱 디스크 저장 시스템을 포함한다. 마그네틱 디스크 저장 시스템의 경우 액세스 속도가 수십㎳인 반면에 메인 메모리의 경우 액세스 속도는 수백㎱이다. 디스크 저장 장치는 필요시 메인 메모리로 순차적으로 읽혀지는 대용량 데이터를 저장하는 데 사용된다. 다른 형태의 디스크와 같은 저장 장치는 반도체 드라이브 (solid state drive: 이하, SSD라 칭함) (또는 반도체 디스크라 불림)이다. SSD는 일반적인 하드 디스크 드라이브에서 사용되는 회전 접시 대신에 데이터를 저장하는 데 SDRAM과 같은 메모리 칩들을 사용한 데이터 저장 장치이다.
"SSD"라는 용어는 2가지 다른 종류의 제품들에 사용된다. SDRAM과 같은 고속 및 휘발성 메모리에 근거를 둔 첫 번째 형태의 SSD는 상당히 빠른 데이터 액세스에 의해서 특징지어 지며, 디스크 드라이브의 레이턴시에 의해서 지연되었던 어플리케이션의 속도를 늘리는 데 주로 사용된다. 이러한 SSD가 휘발성 메모리를 사용하기 때문에, 데이터 지속성을 보장하기 위해서 내부 배터리 및 백업 디스크 시스템이 일반적으로 SSD 내에 포함된다. 만약 전원이 어떤 이유로 인해 차단되면, 배터리는 모든 데이터를 램에서 백업 디스크로 복사하기에 충분히 긴 시간 동안 유니트로 전원을 공급한다. 전원이 복구됨에 따라, 데이터는 백업 디스크에서 램으로 다시 복사되고 SSD는 정상 동작을 재개한다. 이러한 장치들은 특히 많은 양의 램을 갖는 컴퓨터에서 특히 유용하다. 두 번째 타입의 SSD는 데이터를 저장하는 데 플래시 메모리를 사용한다. 이러한 SSD는 하드 드라이브의 대체를 위해서 일반적으로 사용된다. 첫 번째 타입과의 혼돈을 피하기 위해서, 이러한 디스크는 일반적으로 반도체 디스크라 불린다.
본 발명의 목적은 향상된 쓰기 성능을 갖는 반도체 드라이브 및 그것의 쓰기 방법을 제공하는 것이다.
본 발명의 예시적인 실시예들은 저장 매체에 데이터를 저장하는 방법을 제공하며, 이 방법에 의하면, 상기 저장 매체에 저장될 데이터의 유형에 따라 상기 저장 매체의 제 1 및 제 2 메모리 영역들 중 어느 하나에 상기 데이터가 저장되고, 상기 제 1 메모리 영역에 저장된 데이터는 선택적으로 상기 제 2 메모리 영역으로 옮겨진다.
예시적인 실시예에 있어서, 상기 저장 매체에 저장될 데이터는 분류 기준 정보에 따라 핫 데이터 또는 콜드 데이터로 분류된다.
예시적인 실시예에 있어서, 상기 저장 매체에 저장될 데이터가 상기 핫 데이터로 분류되는 경우, 상기 데이터는 상기 제 1 메모리 영역에 저장된다.
예시적인 실시예에 있어서, 상기 저장 매체에 저장될 데이터가 상기 콜드 데이터로 분류되는 경우, 상기 데이터는 상기 제 1 메모리 영역을 경유하지 않고 상기 제 2 메모리 영역에 직접 저장된다.
예시적인 실시예에 있어서, 상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값을 포함한다.
예시적인 실시예에 있어서, 상기 분류 기준 정보는 상기 데이터가 저장될 상 기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값, 상기 데이터의 크기, 상기 어드레스 영역의 연속성, 그리고 외부로부터 제공되는 상기 데이터의 부가 정보를 포함한다.
예시적인 실시예에 있어서, 상기 제 2 메모리 영역은 복수의 어드레스 영역들을 포함하며, 상기 제 1 메모리 영역에 저장된 데이터는 상기 각 어드레스 영역에 대한 쓰기 카운트 값에 따라 상기 제 2 메모리 영역으로 선택적으로 옮겨진다.
예시적인 실시예에 있어서, 상기 제 2 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되는 반면에, 상기 제 1 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되지 않는다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 쓰기 버퍼 및 캐쉬로서 사용된다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 단일-비트 플래시 메모리로 구성되고, 상기 제 2 메모리 영역은 멀티-비트 플래시 메모리로 구성된다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 멀티-비트 플래시 메모리로 구성되고, 상기 제 2 메모리 영역은 멀티-비트 플래시 메모리로 구성되되, 상기 제 1 메모리 영역의 멀티-비트 플래시 메모리는 LSB 프로그램 동작을 통해 프로그램 동작을 수행한다.
예시적인 실시예에 있어서, 상기 제 1 및 제 2 메모리 영역들 각각은 단일-비트 플래시 메모리로 구성된다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 페이지 맵핑 방식으로 관리되고 상기 제 2 메모리 영역은 블록 맵핑 방식으로 관리된다.
본 발명의 다른 예시적인 실시예들은 저장 매체에 데이터를 저장하는 방법을 제공하며, 이 방법은 입력된 데이터의 분류 기준 정보에 따라 상기 입력된 데이터를 핫 데이터 또는 콜드 데이터로 분류하고, 상기 데이터가 콜드 데이터로서 분류될 때 상기 콜드 데이터가 머지 동작을 유발하는 지의 여부를 판별하고, 상기 콜드 데이터로 분류된 상기 데이터가 머지 동작을 유발하지 않는 것으로 판별될 때 상기 데이터를 상기 저장 매체의 저속 메모리 영역에 저장하는 것을 포함한다.
예시적인 실시예에 있어서, 상기 데이터가 상기 핫 데이터로서 분류될 때 상기 데이터는 상기 저장 매체의 고속 메모리 영역에 저장된다.
예시적인 실시예에 있어서, 상기 콜드 데이터로 분류된 상기 데이터가 머지 동작을 유발하는 것으로 판별될 때 상기 데이터는 상기 저장 매체의 고속 메모리 영역에 저장된다.
예시적인 실시예에 있어서, 상기 저속 메모리 영역은 복수의 어드레스 영역들을 포함하며, 상기 고속 메모리 영역에 저장된 데이터는 상기 각 어드레스 영역에 대한 쓰기 카운트 값에 따라 상기 저속 메모리 영역으로 선택적으로 옮겨진다.
예시적인 실시예에 있어서, 상기 저속 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되는 반면에, 상기 고속 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되지 않는다.
예시적인 실시예에 있어서, 상기 고속 메모리 영역은 쓰기 버퍼 및 캐쉬로서 사용된다.
예시적인 실시예에 있어서, 상기 고속 메모리 영역은 단일-비트 플래시 메모리로 구성되고, 상기 저속 메모리 영역은 멀티-비트 플래시 메모리로 구성된다.
예시적인 실시예에 있어서, 상기 고속 메모리 영역은 멀티-비트 플래시 메모리로 구성되고, 상기 저속 메모리 영역은 멀티-비트 플래시 메모리로 구성되되, 상기 고속 메모리 영역의 멀티-비트 플래시 메모리는 LSB 프로그램 동작을 통해 프로그램 동작을 수행한다.
예시적인 실시예에 있어서, 상기 고속 및 저속 메모리 영역들 각각은 단일-비트 플래시 메모리로 구성된다.
예시적인 실시예에 있어서, 상기 고속 메모리 영역은 페이지 맵핑 방식으로 관리되고 상기 저속 메모리 영역은 블록 맵핑 방식으로 관리된다.
예시적인 실시예에 있어서, 상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값을 포함한다.
예시적인 실시예에 있어서, 상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값, 상기 데이터의 크기, 상기 어드레스 영역의 연속성, 그리고 외부로부터 제공되는 상기 데이터의 부가 정보를 포함한다.
예시적인 실시예에 있어서, 상기 콜드 데이터로 분류된 상기 데이터가 머지 동작을 유발하는 경우, 상기 데이터는 상기 머지 동작에 필요한 시간 및 데이터 연속성에 따라 상기 저장 매체의 고속 메모리 영역에 저장된다.
본 발명의 또 다른 예시적인 실시예들은 저장 매체와; 그리고 상기 저장 매 체를 제어하도록 구성된 컨트롤러를 포함하며, 상기 컨트롤러는 상기 저장 매체에 저장될 데이터의 유형에 따라 상기 저장 매체의 제 1 및 제 2 메모리 영역들 중 어느 하나에 상기 데이터가 저장되도록 상기 저장 매체를 제어하되, 상기 제 1 메모리 영역에 저장된 데이터는 상기 컨트롤러의 제어하에 선택적으로 상기 제 2 메모리 영역으로 옮겨지는 반도체 디스크를 제공한다.
예시적인 실시예에 있어서, 상기 저장 매체와 상기 컨트롤러는 복수의 채널들을 통해 연결되고, 상기 채널들 각각에는 상기 제 2 메모리 영역을 구성하는 불 휘발성 메모리들이 연결되며, 상기 채널들 중 적어도 하나에는 상기 제 1 메모리 영역을 구성하는 불 휘발성 메모리가 연결된다.
예시적인 실시예에 있어서, 상기 컨트롤러는 분류 기준 정보에 따라 상기 저장 매체에 저장될 데이터를 핫 데이터 또는 콜드 데이터로 분류하도록 구성된다.
예시적인 실시예에 있어서, 상기 저장 매체에 저장될 데이터가 상기 핫 데이터로 분류되는 경우, 상기 데이터는 상기 제 1 메모리 영역에 저장된다.
예시적인 실시예에 있어서, 상기 저장 매체에 저장될 데이터가 상기 콜드 데이터로 분류되는 경우, 상기 데이터는 상기 제 1 메모리 영역을 경유하지 않고 상기 제 2 메모리 영역에 직접 저장된다.
예시적인 실시예에 있어서, 상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값을 포함한다.
예시적인 실시예에 있어서, 상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값, 상기 데이터의 크기, 상기 어드레스 영역의 연속성, 그리고 외부로부터 제공되는 상기 데이터의 부가 정보를 포함한다.
예시적인 실시예에 있어서, 상기 제 2 메모리 영역은 복수의 어드레스 영역들을 포함하며, 상기 컨트롤러는 상기 제 1 메모리 영역에 저장된 데이터가 상기 각 어드레스 영역에 대한 쓰기 카운트 값에 따라 상기 제 2 메모리 영역으로 선택적으로 옮겨지도록 상기 저장 매체를 제어한다.
예시적인 실시예에 있어서, 상기 제 2 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되는 반면에, 상기 제 1 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되지 않는다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 쓰기 버퍼 및 캐쉬로서 사용된다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 단일-비트 플래시 메모리로 구성되고, 상기 제 2 메모리 영역은 멀티-비트 플래시 메모리로 구성된다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 멀티-비트 플래시 메모리로 구성되고, 상기 제 2 메모리 영역은 멀티-비트 플래시 메모리로 구성되되, 상기 제 1 메모리 영역의 멀티-비트 플래시 메모리는 LSB 프로그램 동작을 통해 프로그램 동작을 수행한다.
예시적인 실시예에 있어서, 상기 제 1 및 제 2 메모리 영역들 각각은 단일-비트 플래시 메모리로 구성된다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 페이지 맵핑 방식으로 관리되고 상기 제 2 메모리 영역은 블록 맵핑 방식으로 관리된다.
본 발명의 반도체 드라이브에 따르면, 고속 불 휘발성 메모리(페이지 맵핑 방식으로 관리됨)를 통해 쓰기 동작을 지원하고, 고속 불 휘발성 메모리의 데이터 중 전부 또는 일부를 저속 불 휘발성 메모리(블록 맵핑 방식으로 관리됨)에 저장함으로써 전반적인 쓰기 성능을 향상시키는 것이 가능하다.
도 1은 본 발명에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 본 발명에 따른 반도체 드라이브(이하, "SSD"라 칭함)(1000)는 SSD 컨트롤러(1200) 및 저장 매체(1400)를 포함할 것이다. SSD 컨트롤러(1200)는 외부(예를 들면, 호스트)의 요청에 응답하여 저장 매체(1400)에 대한 읽기 및 쓰기 동작들을 제어하도록 구성될 것이다. SSD 컨트롤러(1200)는 제 1 및 제 2 인터페이스 블록들(1210, 1230), 컨트롤러(1220), 그리고 메모리(1240)를 포함할 것이다. 제 1 인터페이스 블록(1210)은 외부(예를 들면, 호스트)와의 인터페이스를 제공하고, 제 2 인터페이스 블록(1230)은 저장 매체(1400)와의 인터페이스를 제공할 것이다. 제 1 인터페이스 블록(1210)은 하나 또는 그 보다 많은 채널들(또는, 포트들) (미도시됨)을 통해 외부와 연결될 것이다. 예를 들면, 제 1 인터페이스 블록(1210)은 2개의 채널들 즉, 병렬 ATA 버스 (parallel AT attachment bus, "PATA 버스"라 불림)와 직렬 ATA 버스 (serial AT attachment, "SATA 버스"라 불림) 중 어느 하나를 통해 외부와 연결될 것이다. 또는, 제 1 인터페이스 블 록(1210)은 PATA 버스 및 SATA 버스를 통해 외부와 연결될 것이다. 또는, 제 1 인터페이스 블록(1210)은 SCSI, USB, 등을 통해 외부와 연결될 것이다.
메모리(1240)는 컨트롤러(1220)의 제어에 따라 동작하며, 워크 메모리 영역, 맵핑 테이블 영역, 버퍼 영역 등으로 구분될 것이다. 워크 메모리 영역에는 컨트롤러(1220)에 의해서 처리되는 데이터가 임시 저장될 것이다. 버퍼 영역은 호스트에서 저장 매체(1400)로 또는 저장 매체(1400)에서 호스트로 전송될 데이터를 버퍼링하는 데 사용될 것이다. 맵핑 테이블 영역은 저장 매체(1400)의 맵핑 정보를 저장하는 데 사용될 것이다. 메모리(1240)는 하나의 칩으로 또는 각 영역에 대응하는 복수의 칩들로 구성될 수 있다. 컨트롤러(1220)는 저장 매체(1400)에 대한 전반적인 동작(예를 들면, 읽기, 소거, 프로그램, 파일 시스템 관리, 등)을 제어하도록 구성될 것이다. 예를 들면, 비록 도면에는 도시되지 않았지만, 컨트롤러(1220)는 중앙처리장치/프로세서, 에스램, DMA 제어기, ECC 엔진 등을 포함할 것이다. 예시적인 컨트롤러(1220)는 미국공개특허 제2006-0152981호에 "Solid State Disk Controller Apparatus"라는 제목으로 게재되어 있으며, 이 출원의 레퍼런스로서 포함될 것이다.
저장 매체(1400)는 SSD 컨트롤러(1200)에 의해서 제어되며, SSD 컨트롤러(1200)의 요청에 대응하는 동작들(예를 들면, 읽기 동작, 소거 동작, 프로그램 동작, 머지 동작, 등)을 수행할 것이다. 저장 매체(1400)는 제 1 레이어(LAYER)(1410)와 제 2 레이어(1420)로 구분될 것이다. 제 1 레이어(1410)는 고속 동작을 수행하는 메모리(이하, 고속 불 휘발성 메모리)로 구성되며, 제 2 레이 어(1420)는 저속 동작을 수행하는 메모리로 구성될 수 있다. 고속 불 휘발성 메모리는 고속 동작에 적합한 맵핑 스킴을 사용하도록 구성되며, 저속 불 휘발성 메모리는 저속 동작에 적합한 맵핑 스킴을 사용하도록 구성될 것이다. 예를 들면, 고속 불 휘발성 메모리를 구성하는 제 1 레이어(1410)는 페이지 맵핑 스킴을 통해 관리되고, 저속 불 휘발성 메모리를 구성하는 제 2 레이어(1420)는 블록 맵핑 스킴을 통해 관리될 것이다. 페이지 맵핑 스킴은 동작 성능(예를 들면, 쓰기 성능)의 저하를 유발하는 머지 동작을 필요로 하지 않으며, 그 결과 페이지 맵핑 스킴이 적용되는 제 1 레이어(1410)는 고속 동작 성능을 제공할 것이다. 이에 반해서, 블록 맵핑 스킴은 동작 성능(예를 들면, 쓰기 성능)의 저하를 유발하는 머지 동작을 필요로 하며, 그 결과 블록 맵핑 스킴이 적용되는 제 2 레이어(1420)는 저속 동작 성능을 제공할 것이다.
예시적인 실시예에 있어서, 제 1 레이어(1410)는 셀 당 1-비트 데이터를 저장하는 단일-레벨 플래시 메모리로 구성되고, 제 2 레이어(1420)는 셀 당 N-비트 데이터(N은 2 또는 그 보다 큰 정수)를 저장하는 멀티-레벨 플래시 메모리로 구성될 수 있다. 또는, 제 1 및 제 2 레이어들(1410, 1420) 각각은 멀티-레벨 플래시 메모리로 구성될 수 있다. 이러한 경우, 제 1 레이어(1410)의 멀티-레벨 플래시 메모리는 단일-레벨 플래시 메모리와 같이 동작하도록 LSB 프로그램 동작만을 수행할 것이다. 또는, 제 1 및 제 2 레이어들(1410, 1420) 각각은 단일-레벨 플래시 메모리로 구성될 수 있다. 하지만, 본 발명의 제 1 및 제 2 레이어들(1410, 1420)이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자 명하다. 예시적인 맵핑 기법들이 미국특허 제5404485호에 "FLASH FILE SYSTEM"이라는 제목으로, 미국특허 제5937425호에 "FLASH FILE SYSTEM OPTIMIZED FOR PAGE-MODE FLASH TECHNOLOGIES"라는 제목으로, 그리고 미국특허 제6381176호에 "METHOD OF DRIVING REMAPPING IN FLASH MEMORY AND FLASH MEMORY ARCHITECTURE SUITABLE THEREFOR"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로서 포함된다.
도 2는 본 발명의 일 실시예에 따른 쓰기 동작을 설명하기 위한 흐름도이다. 이하, 본 발명의 일 실시예에 따른 쓰기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
도 2를 참조하면, SSD 컨트롤러(1200)는 외부(예를 들면, 호스트)로부터 쓰기 동작을 위한 명령, 어드레스, 그리고 데이터를 입력받는다(100). 입력된 데이터는 메모리(1240)에 임시 저장될 것이다. 또는, 입력된 데이터(1240)는 컨트롤러(1220) 내의 버퍼(미도시됨)에 임시 저장될 수도 있다. 컨트롤러(1220)는 쓰기 카운트 값에 의거하여 입력된 데이터가 핫 데이터(hot data)인 지 또는 콜드 데이터(cold data)인 지의 여부를 판별할 것이다(110). 여기서, 제 2 레이어(또는, 저속 불 휘발성 메모리)(1420)가 복수의 어드레스 영역들로 구분될 때, 쓰기 카운트 값은 각 어드레스 영역에 대한 쓰기 액세스 빈도를 나타낼 것이다. 이는 핫 데이터와 콜드 데이터가 쓰기 액세스 빈도에 따라 분류됨을 의미한다. 기본적으로, 저장 매체(1400)에 대한 첫 번째 쓰기 액세스시 데이터는 제 1 레이어(1410)에 저장될 것이다. 이후 설명된 바와 같이, 제 1 레이어(1410)에 저장된 데이터는 선별적으로 제 2 레이어(1420)로 옮겨질 것이다. 각 어드레스 영역에 대한 쓰기 카운트 값은 테이블 형태로 메모리(1240)에 저장될 것이다. 이하, 그러한 테이블을 "쓰기 카운트 테이블"이라 칭한다. 예를 들면, 컨트롤러(1220)는 쓰기 카운트 값이 기준값보다 클 때 입력 데이터를 핫 데이터로 결정/분류할 것이다. 이에 반해서, 컨트롤러(1220)는 쓰기 카운트 값이 기준값보다 작을 때 입력 데이터를 콜드 데이터로 결정/분류할 것이다.
쓰기 카운트 테이블과 달리, 입력된 데이터가 핫 데이터인 지 또는 콜드 데이터인 지의 여부는 잘 알려진 LRU(Least recently Used) 방식에 의거하여 판별될 수도 있다. 현재 입력된 데이터는 LRU 테이블에 존재하는 지의 여부에 따라 핫 데이터 또는 콜드 데이터로서 결정/분류될 것이다. 예를 들면, 현재 입력된 데이터에 대한 정보가 LRU 테이블에 존재할 때, 현재 입력된 데이터는 핫 데이터로서 결정/분류될 것이다. 현재 입력된 데이터는 LRU 테이블에 존재하지 않을 때 콜드 데이터로서 결정될 것이다. LRU 테이블은 컨트롤러(1220)에 의해서 관리되며, 메모리(1240)에 저장될 것이다. 또한, 최근에 쓰기 동작이 일어난 어드레스 영역은 LRU 리스트에 추가될 것이다. LRU 리스트가 특정 길이에 도달하였을경우, LRU 기준에 의해 LRU 리스트에 존해하던 기존 항목을 제거하는 것이 가능하다.
본 발명의 예시적인 실시예에 있어서, 핫 데이터와 콜드 데이터를 구별하는 방식이 앞서 언급된 것에 국한되지 않고 다양하게 변경될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
만약 입력된 데이터가 핫 데이터로서 결정되면, 입력된 데이터는 SSD 컨트롤러(1200)의 제어하에 저장 매체(1400)의 제 1 레이어(또는, 고속 불 휘발성 메모 리)(1410)에 저장될 것이다(120). 앞서 언급된 바와 같이, 제 1 레이어(1410)는 머지 동작이 유발되지 않는 페이지 맵핑 방식으로 관리될 것이다. 또는, 제 1 레이어(1410)는 머지 동작의 빈도가 상대적으로 낮은 맵핑 방식으로 관리될 것이다. 제 1 레이어(1410)의 고속 불 휘발성 메모리가 단일-레벨 플래시 메모리로 구성되는 경우, 잘 알려진 단일-비트 프로그램/쓰기 방식에 따라 입력된 데이터가 제 1 레이어(1410)에 저장될 것이다. 또는, 제 1 레이어(1410)의 고속 불 휘발성 메모리가 멀티-레벨(2-비트) 플래시 메모리로 구성되는 경우, LSB 프로그램/쓰기 방식에 따라 입력된 데이터가 제 1 레이어(1410)에 저장될 것이다.
이에 반해서, 만약 입력된 데이터가 콜드 데이터로서 결정/분류되면, 입력된 데이터는 SSD 컨트롤러(1200)의 제어하에 저장 매체(1400)의 제 2 레이어(또는, 저속 불 휘발성 메모리)(1420)에 저장될 것이다(130). 다시 말해서, 입력된 데이터가 콜드 데이터로서 결정/분류되는 경우, 입력된 데이터는 SSD 컨트롤러(1200)의 제어하에 제 1 레이어(1410)를 경유하지 않고 저장 매체(1400)의 제 2 레이어(또는, 저속 불 휘발성 메모리)(1420)에 직접 저장될 것이다(130). 제 2 레이어(1420)는 머지 동작이 유발되는 블록 맵핑 방식으로 관리될 것이다. 제 2 레이어(1420)의 저속 불 휘발성 메모리가 멀티-레벨 플래시 메모리로 구성되는 경우, 잘 알려진 멀티-비트 프로그램/쓰기 방식에 따라 입력된 데이터가 제 2 레이어(1420)에 저장될 것이다.
제 1 레이어(1410)를 구성하는 고속 불 휘발성 메모리는 제 2 레이어(1420)를 구성하는 저속 불 휘발성 메모리의 용량의 10% 내지 15%에 대응하는 용량을 갖 도록 구현될 것이다. 예를 들면, 제 2 레이어(1420)가 64GB 저속 불 휘발성 메모리로 구성되는 경우, 제 1 레이어(1410)는 8GB 고속 불 휘발성 메모리로 구성될 것이다. 하지만, 제 1 레이어(1410)와 제 2 레이어(1420) 사이의 관계가 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 제 1 레이어(1410)를 구성하는 고속 불 휘발성 메모리의 용량은 컴퓨터 시스템의 일일 데이터 사용량의 추정치 및 SSD 성능 개선 효과 등을 고려하여 결정될 것이다.
이 실시예에 있어서, 앞서 설명된 쓰기 카운트 테이블(또는, LRU 테이블)은 제 1 레이어(또는, 고속 불 휘발성 메모리)에 저장될 것이다.
도 3은 본 발명의 다른 실시예에 따른 쓰기 동작을 설명하기 위한 흐름도이다. 이하, 본 발명의 일 실시예에 따른 쓰기 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
도 3을 참조하면, SSD 컨트롤러(1200)는 외부(예를 들면, 호스트)로부터 쓰기 동작을 위한 명령, 어드레스, 그리고 데이터를 입력받는다(200). 입력된 데이터는 메모리(1240) 또는 컨트롤러(1220)의 버퍼(미도시됨)에 임시 저장될 것이다. 컨트롤러(1220)는 앞서 설명된 쓰기 카운트 레지스터의 쓰기 카운트 값(또는, LRU 리스트)에 의거하여 입력된 데이터가 핫 데이터(hot data)인 지 또는 콜드 데이터(cold data)인 지의 여부를 판별할 것이다(210). 컨트롤러(1220)는 쓰기 카운트 값이 기준값보다 클 때 입력 데이터를 핫 데이터로 결정/분류할 것이다. 이에 반해서, 컨트롤러(1220)는 쓰기 카운트 값이 기준값보다 작을 때 입력 데이터를 콜드 데이터로 결정/분류할 것이다.
만약 입력된 데이터가 핫 데이터로서 결정되면, 입력된 데이터는 SSD 컨트롤러(1200)의 제어하에 저장 매체(1400)의 제 1 레이어(또는, 고속 불 휘발성 메모리)(1410)에 저장될 것이다(220). 이에 반해서, 만약 입력된 데이터가 콜드 데이터로서 결정/분류되면, 절차는 230 블록으로 진행될 것이다. 230 블록에서, 컨트롤러(1220)는 입력된 데이터가 머지 동작을 유발하는 지의 여부를 판별할 것이다. 만약 입력된 데이터가 머지 동작을 유발하지 않는 것으로 판별되면, 입력된 데이터는 SSD 컨트롤러(1200)의 제어하에 저장 매체(1400)의 제 2 레이어(또는, 저속 불 휘발성 메모리)(1420)에 저장될 것이다(240). 만약 입력된 데이터가 머지 동작을 유발하는 것으로 판별되면, 절차는 220 블록으로 진행할 것이다. 220 블록에서, 컨트롤러는 머지 동작을 유발하는 콜드 데이터가 제 1 레이어(1410)에 저장되도록 저장 매체(1400)를 제어할 것이다.
다른 예로서, 230 블록에서, 입력된 데이터가 머지 동작을 유발하는 지의 여부와 함께 머지 동작에 소요되는 시간(비용), 이전 데이터와의 연속성, 등을 고려하여 판별 동작을 수행하는 것이 가능하다.
도 4는 본 발명에 따른 반도체 드라이브에서 제 1 레이어에서 제 2 레이어로의 데이터 이동을 설명하기 위한 흐름도이다. 이하, 본 발명에 따른 반도체 드라이브에서 제 1 레이어에서 제 2 레이어로 데이터를 옮기는 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
제 1 레이어에서 제 2 레이어로 데이터를 옮기는 동작은 다양한 방식들을 통 해 개시될 것이다. 예를 들면, 제 1 레이어에서 제 2 레이어로 데이터를 옮기는 동작은 제 1 레이어(1410)의 남은 용량이 미리 설정된 용량(예를 들면, 30%) 이하인 지의 여부에 따라 개시될 수 있다. 또는, 제 1 레이어에서 제 2 레이어로 데이터를 옮기는 동작은 정해진 시간마다 주기적으로 개시될 수도 있다. 또는, 제 1 레이어에서 제 2 레이어로 데이터를 옮기는 동작은 SSD의 유휴 시간을 감지함으로써 개시될 수도 있다.
제 1 레이어에서 제 2 레이어로 데이터를 옮기는 동작은 앞서의 기준들 중 어느 하나에 의거하여 개시되면, 먼저, 컨트롤러(1220)는 쓰기 카운트 값에 의거하여 제 1 레이어(1410)에 저장된 데이터를 핫 데이터와 콜드 데이터로 분류할 것이다(300). 앞서 언급된 바와 같이, 쓰기 카운트 값은 쓰기 카운트 레지스터를 통해 관리될 것이다. 만약 임의의 어드레스 영역에 속하는 쓰기 카운트 값이 미리 설정된 기준값보다 크면, 임의의 어드레스 영역에 대응하는 데이터는 핫 데이터로서 결정/분류될 것이다. 이에 반해서, 만약 임의의 어드레스 영역에 속하는 쓰기 카운트 값이 미리 설정된 기준값보다 작으면, 임의의 어드레스 영역에 대응하는 데이터는 콜드 데이터로서 결정/분류될 것이다. 그 다음에, 절차는 310 블록으로 진행할 것이다. 310 블록에서, 컨트롤러(1220)는 콜드 데이터로 분류된 데이터가 제 2 레이어(1420)로 옮겨지도록 저장 매체(1400)를 제어할 것이다. 이에 반해서, 핫 데이터로 분류된 데이터는 제 2 레이어(1420)의 이동 없이 제 1 레이어(1410)에 그대로 유지될 것이다.
도 5는 본 발명에 따른 저장 매체를 설명하기 위한 도면이다.
도 5를 참조하면, 본 발명에 따른 저장 매체(1400)는 제 1 레이어로서 고속 불 휘발성 메모리와 제 2 레이어로서 저속 불 휘발성 메모리를 포함할 것이다. 제 1 레이어는 저장 매체(1400) (또는, SSD)의 전체 용량의 약 10% 내지 15%를 갖도록 설정되며, 사용자에게 보여지지 않는다 (또는 표시되지 않는다). 다시 말해서, 제 1 레이어의 고속 불 휘발성 메모리는 히든 영역으로서 존재할 것이다. 본 발명에 의하면, 제 1 레이어의 고속 불 휘발성 메모리는 쓰기 버퍼로서 그리고 캐쉬로서 사용될 것이다. 단, 제 1 레이어의 고속 불 휘발성 메모리는, 앞서 언급된 바와 같이, 제 1 레이어에 저장된 데이터가 선택적으로 제 2 레이어로 옮겨진다(또는, 제 1 레이어에 저장된 데이터 중 일부(핫 데이터)가 그대로 유지된다)는 점에서 일반적인 버퍼와 구별될 것이다.
이상의 설명으로부터 알 수 있듯이, 제 1 레이어인 히든 영역을 쓰기 버퍼 및 캐쉬로서 사용하는 것이 가능하며, OS 또는 다른 필터 드라이버의 지원없이 SSD 자체적으로 데이터의 종류를 분류하여 저장할 수 있다. 그러한 까닭에, 쓰기 데이터를 장시간 동안 버퍼링하는 것이 가능함에 따라 랜덤 쓰기 성능이 향상될 수 있다. 또한, 자주 갱신되는 데이터의 관리를 통해서 SSD의 내구성을 향상시키는 것이 가능하다.
도 6은 도 1에 도시된 제 2 인터페이스 블록과 저장 매체 사이의 포트를 개략적으로 보여주는 블록도이다.
도 6을 참조하면, 제 2 인터페이스 블록(1230)은 복수의, 예를 들면, 4개의 채널들을 통해 저장 매체(1400)와 전기적으로 연결될 것이다. 각 채널에는 고속 불 휘발성 메모리(1410)와 저속 불 휘발성 메모리(1420)가 연결될 것이다. 여기서, 고속 불 휘발성 메모리(1410)는 하나 또는 그 보다 많은 칩들로 구성될 것이다. 도 6에서 알 수 있듯이, 고속 불 휘발성 메모리(1410)와 저속 불 휘발성 메모리(1420)는 동일한 채널을 공유하도록 구성될 것이다. 이러한 채널 구조의 의하면, 하나의 채널을 통해 가비지 콜렉션 동작이 수행되는 동안, 다른 채널을 통해 읽기/쓰기 동작이 수행될 수 있다.
앞서 언급된 바와 같이, 고속 불 휘발성 메모리는 셀 당 1-비트 데이터를 저장하는 단일-레벨 플래시 메모리로 구성되고, 저속 불 휘발성 메모리(1420)는 셀 당 N-비트 데이터(N은 2 또는 그 보다 큰 정수)를 저장하는 멀티-레벨 플래시 메모리로 구성될 수 있다. 또는, 고속 및 저속 불 휘발성 메모리들(1410, 1420) 각각은 멀티-레벨 플래시 메모리로 구성될 수 있다. 이러한 경우, 고속 불 휘발성 메모리(1410)의 멀티-레벨 플래시 메모리는 단일-레벨 플래시 메모리와 같이 동작하도록 LSB 프로그램 동작만을 수행할 것이다. 또는, 고속 및 저속 불 휘발성 메모리들(1410, 1420) 각각은 단일-레벨 플래시 메모리로 구성될 수 있다. 고속 불 휘발성 메모리는 머지 동작이 유발되지 않는 페이지 맵핑 방식으로 관리되고, 저속 불 휘발성 메모리는 머지 동작이 유발되는 블록 맵핑 방식으로 관리될 것이다.
도 6에 도시된 채널 구조과 달리, 고속 불 휘발성 메모리를 위한 전용 채널이 사용될 수 있다. 즉, 도 7에 도시된 바와 같이, 고속 불 휘발성 메모리는 저속 불 휘발성 메모리와 다른 채널들을 통해 제 2 인터페이스 블록(1230)와 전기적으로 연결될 수도 있다. 이러한 채널 구조의 의하면, 하나의 채널을 통해 가비지 콜렉션 동작이 수행되는 동안, 다른 채널을 통해 읽기/쓰기 동작이 수행될 수 있다.
여기서, 저장 매체(1400)와 제 2 인터페이스 블록(1230)을 연결하는 데 사용되는 채널들의 수가 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 또한, 각 채널에 연결된 고속 및 저속 불 휘발성 메모리들 각각을 구성하는 칩들의 수 역시 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 8은 본 발명에 따른 반도체 디스크를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 8을 참조하면, 컴퓨팅 시스템(2000)은 프로세서 유니트(2100)와 메인 메모리(2200)를 포함할 것이다. 프로세서 유니트(2100)는 하나 또는 그 보다 많은 마이크로프로세서들을 포함할 것이다. 컴퓨팅 시스템(2000)은 사용자로부터 제어 정보를 입력받기 위한 입력 장치(2300), 복수의 입출력 장치들(2400), 그리고 출력 장치(2600)를 더 포함할 것이다. 프로세서 유니트(2100), 입력 장치(2300), 복수의 입출력 장치들(2400), 그리고 출력 장치(2600)는 버스(2001)에 전기적으로 연결되며, 이 분야의 통상적인 지식을 습득한 자들에게 잘 알려져 있다. 컴퓨팅 시스템(2000)은 반도체 디스크(2600)를 더 포함할 것이다. 본 발명에 따라 동작하는 반도체 디스크(2600)는 프로세서 유니트와 같은 호스트가 빠른 액세스 시간으로 저장 매체에 대한 쓰기 동작을 수행하게 할 것이다. 도 8에 도시된 반도체 디스크(2600)는 도 1에 도시된 것과 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.
본 발명에 있어서, 저장 매체에 저장될 데이터는 분류 기준 정보로서 쓰기 카운트 값을 기초로 하여 핫 데이터 및 콜드 데이터로 분류하는 예가 설명되었다. 하지만, 저장 매체에 저장될 데이터를 분류하는 기준이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 쓰기 카운트 값과 더불어, 저장 매체에 저장될 데이터는 데이터 크기(예를 들면, 8KB 이하), 데이터 주소의 연속성(최근 쓰기 명령과 비교함), 호스트로부터 주어진 부가 정보(예를 들면, 파일 타입 등), 등에 기초로 하여 분류될 수도 있다.
또한, 본 발명의 경우, 쓰기 카운트 값을 사용함에 있어서, 누적 쓰기 횟수 뿐만 아니라 쓰기 동작이 얼마나 최근에 일어났는 지를 함께 고려할 수도 있다. 이러한 경우, 다음과 같은 방식들을 통해 쓰기 카운트 값이 운영될 것이다. 쓰기 카운트 값과 함께 최근의 액세스 시간에 관한 정보를 기록하는 방식, 주기적으로 쓰기 카운트 값에서 일정값을 빼주는 방식, 주기적으로 쓰기 카운트 값에 특정 가중치(x: 0<x<1)를 곱하는 방식 등을 이용하여 쓰기 카운트 값이 운영될 수 있다. 주기적으로 쓰기 카운트 값에서 일정값을 빼주는 방식의 경우, 쓰기 카운트 값이 '0'이 되면 계산은 중단될 것이다. 계속적으로 쓰기 동작이 일어나지 않는 영역에 대한 쓰기 카운트 값은 시간이 지남에 따라 감소할 것이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 반도체 드라이브가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 쓰기 동작을 설명하기 위한 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 쓰기 동작을 설명하기 위한 흐름도이다.
도 4는 본 발명에 따른 반도체 드라이브에서 제 1 레이어에서 제 2 레이어로의 데이터 이동을 설명하기 위한 흐름도이다.
도 5는 본 발명에 따른 저장 매체를 설명하기 위한 도면이다.
도 6 및 도 7은 도 1에 도시된 제 2 인터페이스 블록과 저장 매체 사이의 포트를 개략적으로 보여주는 블록도들이다.
도 8은 본 발명에 따른 반도체 디스크를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.

Claims (43)

  1. 저장 매체에 데이터를 저장하는 방법에 있어서:
    상기 저장 매체에 저장될 데이터의 유형에 따라 상기 저장 매체의 제 1 및 제 2 메모리 영역들 중 어느 하나에 상기 데이터를 저장하되, 상기 제 1 메모리 영역에 저장된 데이터는 선택적으로 상기 제 2 메모리 영역으로 옮겨지는 것을 특징으로 하는 데이터 저장 방법.
  2. 제 1 항에 있어서,
    상기 저장 매체에 저장될 데이터는 분류 기준 정보에 따라 핫 데이터 또는 콜드 데이터로 분류되는 것을 특징으로 하는 데이터 저장 방법.
  3. 제 2 항에 있어서,
    상기 저장 매체에 저장될 데이터가 상기 핫 데이터로 분류되는 경우, 상기 데이터는 상기 제 1 메모리 영역에 저장되는 것을 특징으로 하는 데이터 저장 방법.
  4. 제 3 항에 있어서,
    상기 저장 매체에 저장될 데이터가 상기 콜드 데이터로 분류되는 경우, 상기 데이터는 상기 제 1 메모리 영역을 경유하지 않고 상기 제 2 메모리 영역에 직접 저장되는 것을 특징으로 하는 데이터 저장 방법.
  5. 제 2 항에 있어서,
    상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값을 포함하는 것을 특징으로 하는 데이터 저장 방법.
  6. 제 2 항에 있어서,
    상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값, 상기 데이터의 크기, 상기 어드레스 영역의 연속성, 그리고 외부로부터 제공되는 상기 데이터의 부가 정보를 포함하는 것을 특징으로 하는 데이터 저장 방법.
  7. 제 1 항에 있어서,
    상기 제 2 메모리 영역은 복수의 어드레스 영역들을 포함하며,
    상기 제 1 메모리 영역에 저장된 데이터는 상기 각 어드레스 영역에 대한 쓰기 카운트 값에 따라 상기 제 2 메모리 영역으로 선택적으로 옮겨지는 것을 특징으로 하는 데이터 저장 방법.
  8. 제 1 항에 있어서,
    상기 제 2 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되는 반 면에, 상기 제 1 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되지 않는 것을 특징으로 하는 데이터 저장 방법.
  9. 제 8 항에 있어서,
    상기 제 1 메모리 영역은 쓰기 버퍼 및 캐쉬로서 사용되는 것을 특징으로 하는 데이터 저장 방법.
  10. 제 1 항에 있어서,
    상기 제 1 메모리 영역은 단일-비트 플래시 메모리로 구성되고, 상기 제 2 메모리 영역은 멀티-비트 플래시 메모리로 구성되는 것을 특징으로 하는 데이터 저장 방법.
  11. 제 1 항에 있어서,
    상기 제 1 메모리 영역은 멀티-비트 플래시 메모리로 구성되고, 상기 제 2 메모리 영역은 멀티-비트 플래시 메모리로 구성되되, 상기 제 1 메모리 영역의 멀티-비트 플래시 메모리는 LSB 프로그램 동작을 통해 프로그램 동작을 수행하는 것을 특징으로 하는 데이터 저장 방법.
  12. 제 1 항에 있어서,
    상기 제 1 및 제 2 메모리 영역들 각각은 단일-비트 플래시 메모리로 구성되 는 것을 특징으로 하는 데이터 저장 방법.
  13. 제 1 항에 있어서,
    상기 제 1 메모리 영역은 페이지 맵핑 방식으로 관리되고 상기 제 2 메모리 영역은 블록 맵핑 방식으로 관리되는 것을 특징으로 하는 데이터 저장 방법.
  14. 저장 매체에 데이터를 저장하는 방법에 있어서:
    입력된 데이터의 분류 기준 정보에 따라 상기 입력된 데이터를 핫 데이터 또는 콜드 데이터로 분류하고,
    상기 데이터가 콜드 데이터로서 분류될 때 상기 콜드 데이터가 머지 동작을 유발하는 지의 여부를 판별하고,
    상기 콜드 데이터로 분류된 상기 데이터가 머지 동작을 유발하지 않는 것으로 판별될 때 상기 데이터를 상기 저장 매체의 저속 메모리 영역에 저장하는 것을 포함하는 것을 특징으로 하는 데이터 저장 방법.
  15. 제 14 항에 있어서,
    상기 데이터가 상기 핫 데이터로서 분류될 때 상기 데이터는 상기 저장 매체의 고속 메모리 영역에 저장되는 것을 특징으로 하는 데이터 저장 방법.
  16. 제 15 항에 있어서,
    상기 콜드 데이터로 분류된 상기 데이터가 머지 동작을 유발하는 것으로 판별될 때 상기 데이터는 상기 저장 매체의 고속 메모리 영역에 저장되는 것을 특징으로 하는 데이터 저장 방법.
  17. 제 16 항에 있어서,
    상기 저속 메모리 영역은 복수의 어드레스 영역들을 포함하며,
    상기 고속 메모리 영역에 저장된 데이터는 상기 각 어드레스 영역에 대한 쓰기 카운트 값에 따라 상기 저속 메모리 영역으로 선택적으로 옮겨지는 것을 특징으로 하는 데이터 저장 방법.
  18. 제 16 항에 있어서,
    상기 저속 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되는 반면에, 상기 고속 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되지 않는 것을 특징으로 하는 데이터 저장 방법.
  19. 제 18 항에 있어서,
    상기 고속 메모리 영역은 쓰기 버퍼 및 캐쉬로서 사용되는 것을 특징으로 하는 데이터 저장 방법.
  20. 제 16 항에 있어서,
    상기 고속 메모리 영역은 단일-비트 플래시 메모리로 구성되고, 상기 저속 메모리 영역은 멀티-비트 플래시 메모리로 구성되는 것을 특징으로 하는 데이터 저장 방법.
  21. 제 16 항에 있어서,
    상기 고속 메모리 영역은 멀티-비트 플래시 메모리로 구성되고, 상기 저속 메모리 영역은 멀티-비트 플래시 메모리로 구성되되, 상기 고속 메모리 영역의 멀티-비트 플래시 메모리는 LSB 프로그램 동작을 통해 프로그램 동작을 수행하는 것을 특징으로 하는 데이터 저장 방법.
  22. 제 16 항에 있어서,
    상기 고속 및 저속 메모리 영역들 각각은 단일-비트 플래시 메모리로 구성되는 것을 특징으로 하는 데이터 저장 방법.
  23. 제 16 항에 있어서,
    상기 고속 메모리 영역은 페이지 맵핑 방식으로 관리되고 상기 저속 메모리 영역은 블록 맵핑 방식으로 관리되는 것을 특징으로 하는 데이터 저장 방법.
  24. 제 14 항에 있어서,
    상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영 역에 대한 쓰기 카운트 값을 포함하는 것을 특징으로 하는 데이터 저장 방법.
  25. 제 14 항에 있어서,
    상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값, 상기 데이터의 크기, 상기 어드레스 영역의 연속성, 그리고 외부로부터 제공되는 상기 데이터의 부가 정보를 포함하는 것을 특징으로 하는 데이터 저장 방법.
  26. 제 14 항에 있어서,
    상기 콜드 데이터로 분류된 상기 데이터가 머지 동작을 유발하는 경우, 상기 데이터는 상기 머지 동작에 필요한 시간 및 데이터 연속성에 따라 상기 저장 매체의 고속 메모리 영역에 저장되는 것을 특징으로 하는 데이터 저장 방법.
  27. 저장 매체와; 그리고
    상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하며,
    상기 컨트롤러는 상기 저장 매체에 저장될 데이터의 유형에 따라 상기 저장 매체의 제 1 및 제 2 메모리 영역들 중 어느 하나에 상기 데이터가 저장되도록 상기 저장 매체를 제어하되, 상기 제 1 메모리 영역에 저장된 데이터는 상기 컨트롤러의 제어하에 선택적으로 상기 제 2 메모리 영역으로 옮겨지는 반도체 디스크.
  28. 제 27 항에 있어서,
    상기 저장 매체와 상기 컨트롤러는 복수의 채널들을 통해 연결되고, 상기 채널들 각각에는 상기 제 2 메모리 영역을 구성하는 불 휘발성 메모리들이 연결되며, 상기 채널들 중 적어도 하나에는 상기 제 1 메모리 영역을 구성하는 불 휘발성 메모리가 연결되는 반도체 디스크.
  29. 제 27 항에 있어서,
    상기 컨트롤러는 분류 기준 정보에 따라 상기 저장 매체에 저장될 데이터를 핫 데이터 또는 콜드 데이터로 분류하도록 구성되는 반도체 디스크.
  30. 제 29 항에 있어서,
    상기 저장 매체에 저장될 데이터가 상기 핫 데이터로 분류되는 경우, 상기 데이터는 상기 제 1 메모리 영역에 저장되는 반도체 디스크.
  31. 제 29 항에 있어서,
    상기 저장 매체에 저장될 데이터가 상기 콜드 데이터로 분류되는 경우, 상기 데이터는 상기 제 1 메모리 영역을 경유하지 않고 상기 제 2 메모리 영역에 직접 저장되는 반도체 디스크.
  32. 제 29 항에 있어서,
    상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값을 포함하는 반도체 디스크.
  33. 제 29 항에 있어서,
    상기 분류 기준 정보는 상기 데이터가 저장될 상기 저장 매체의 어드레스 영역에 대한 쓰기 카운트 값, 상기 데이터의 크기, 상기 어드레스 영역의 연속성, 그리고 외부로부터 제공되는 상기 데이터의 부가 정보를 포함하는 반도체 디스크.
  34. 제 27 항에 있어서,
    상기 제 2 메모리 영역은 복수의 어드레스 영역들을 포함하며,
    상기 컨트롤러는 상기 제 1 메모리 영역에 저장된 데이터가 상기 각 어드레스 영역에 대한 쓰기 카운트 값에 따라 상기 제 2 메모리 영역으로 선택적으로 옮겨지도록 상기 저장 매체를 제어하는 반도체 디스크.
  35. 제 27 항에 있어서,
    상기 제 2 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되는 반면에, 상기 제 1 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되지 않는 반도체 디스크.
  36. 제 35 항에 있어서,
    상기 제 1 메모리 영역은 쓰기 버퍼 및 캐쉬로서 사용되는 반도체 디스크.
  37. 제 27 항에 있어서,
    상기 제 1 메모리 영역은 단일-비트 플래시 메모리로 구성되고, 상기 제 2 메모리 영역은 멀티-비트 플래시 메모리로 구성되는 반도체 디스크.
  38. 제 27 항에 있어서,
    상기 제 1 메모리 영역은 멀티-비트 플래시 메모리로 구성되고, 상기 제 2 메모리 영역은 멀티-비트 플래시 메모리로 구성되되, 상기 제 1 메모리 영역의 멀티-비트 플래시 메모리는 LSB 프로그램 동작을 통해 프로그램 동작을 수행하는 반도체 디스크.
  39. 제 27 항에 있어서,
    상기 제 1 및 제 2 메모리 영역들 각각은 단일-비트 플래시 메모리로 구성되는 반도체 디스크.
  40. 제 27 항에 있어서,
    상기 제 1 메모리 영역은 페이지 맵핑 방식으로 관리되고 상기 제 2 메모리 영역은 블록 맵핑 방식으로 관리되는 반도체 디스크.
  41. 저장 매체와; 그리고
    상기 저장 매체를 제어하도록 구성된 컨트롤러를 포함하며,
    상기 컨트롤러는 상기 저장 매체에 저장될 데이터의 유형에 따라 상기 저장 매체의 제 1 및 제 2 메모리 영역들 중 어느 하나에 상기 데이터가 저장되도록 상기 저장 매체를 제어하며, 상기 제 2 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되는 반면에 상기 제 1 메모리 영역의 용량은 상기 저장 매체의 용량으로서 표시되지 않는 반도체 디스크.
  42. 프로세서 유니트와; 그리고
    상기 프로세서 유니트에 연결된 반도체 디스크를 포함하며,
    상기 반도체 디스크는 청구항 27에 기재된 반도체 디스크를 포함하는 컴퓨팅 시스템.
  43. 프로세서 유니트와; 그리고
    상기 프로세서 유니트에 연결된 반도체 디스크를 포함하며,
    상기 반도체 디스크는 청구항 41에 기재된 반도체 디스크를 포함하는 컴퓨팅 시스템.
KR1020070081832A 2007-08-14 2007-08-14 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템 KR101498673B1 (ko)

Priority Applications (15)

Application Number Priority Date Filing Date Title
KR1020070081832A KR101498673B1 (ko) 2007-08-14 2007-08-14 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US12/015,548 US20090049234A1 (en) 2007-08-14 2008-01-17 Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
CN2013102935199A CN103400598A (zh) 2007-08-14 2008-05-27 固态存储器、包含其的计算机系统和操作其的方法
CNA2008101085798A CN101369451A (zh) 2007-08-14 2008-05-27 固态存储器、包含其的计算机系统和操作其的方法
JP2008138348A JP2009048613A (ja) 2007-08-14 2008-05-27 ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
DE102008036822A DE102008036822A1 (de) 2007-08-14 2008-08-06 Verfahren zum Speichern von Daten in einem Solid-State-Speicher, Solid-State-Speichersystem und Computersystem
US12/657,029 US8429358B2 (en) 2007-08-14 2010-01-11 Method and data storage device for processing commands
US13/027,299 US20110138115A1 (en) 2007-08-14 2011-02-15 Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
US13/647,630 US8626996B2 (en) 2007-08-14 2012-10-09 Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
JP2013155538A JP2013242908A (ja) 2007-08-14 2013-07-26 ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
US14/101,469 US20140101377A1 (en) 2007-08-14 2013-12-10 Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
US14/146,870 US20140122783A1 (en) 2007-08-14 2014-01-03 Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
US14/445,126 US20140337566A1 (en) 2007-08-14 2014-07-29 Solid state memory (ssm), computer system including an ssm, and method of operating an ssm
US14/717,476 US9208079B2 (en) 2007-08-14 2015-05-20 Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
US15/130,464 US20160231941A1 (en) 2007-08-14 2016-04-15 Solid state memory (ssm), computer system including an ssm, and method of operating an ssm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070081832A KR101498673B1 (ko) 2007-08-14 2007-08-14 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템

Publications (2)

Publication Number Publication Date
KR20090017238A true KR20090017238A (ko) 2009-02-18
KR101498673B1 KR101498673B1 (ko) 2015-03-09

Family

ID=40363885

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070081832A KR101498673B1 (ko) 2007-08-14 2007-08-14 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템

Country Status (5)

Country Link
US (8) US20090049234A1 (ko)
JP (2) JP2009048613A (ko)
KR (1) KR101498673B1 (ko)
CN (2) CN103400598A (ko)
DE (1) DE102008036822A1 (ko)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100979750B1 (ko) * 2009-11-06 2010-09-03 (주)피스페이스 분산 저장 시스템에서 파일을 관리하는 장치 및 방법
US8438195B2 (en) 2011-02-15 2013-05-07 Samsung Electronics Co., Ltd. File system operating method and devices using the same
US8812775B2 (en) 2011-03-28 2014-08-19 Samsung Electronics Co., Ltd. System and method for controlling nonvolatile memory
WO2015002481A1 (ko) * 2013-07-03 2015-01-08 아주대학교산학협력단 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법
WO2015116173A3 (en) * 2014-01-31 2015-12-17 Hewlett-Packard Development Company, L.P. Unifying memory controller
KR20160070658A (ko) * 2014-12-10 2016-06-20 한양대학교 산학협력단 입출력 정보 공유 방법, 상기 방법을 수행하는 저장 장치 및 호스트 장치
KR20160087426A (ko) * 2015-01-13 2016-07-22 삼성전자주식회사 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치
KR20170036964A (ko) * 2015-09-24 2017-04-04 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
KR20180102483A (ko) * 2017-03-07 2018-09-17 삼성전자주식회사 이종 불휘발성 메모리 형태를 갖는 솔리드 스테이트 드라이브
US10853236B2 (en) 2018-03-19 2020-12-01 SK Hynix Inc. Storage device and method for operating the same
US11243716B2 (en) 2018-12-21 2022-02-08 SK Hynix Inc. Memory system and operation method thereof
KR20220074685A (ko) * 2020-11-27 2022-06-03 한양대학교 에리카산학협력단 데이터 저장 처리 장치 및 방법

Families Citing this family (249)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007132456A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
WO2007132452A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
US8156403B2 (en) * 2006-05-12 2012-04-10 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US8151166B2 (en) * 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8369141B2 (en) * 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US20080306723A1 (en) * 2007-06-08 2008-12-11 Luca De Ambroggi Emulated Combination Memory Device
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8429358B2 (en) 2007-08-14 2013-04-23 Samsung Electronics Co., Ltd. Method and data storage device for processing commands
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8527819B2 (en) * 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8270246B2 (en) * 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
CN101441597B (zh) * 2007-11-22 2012-09-26 威刚科技股份有限公司 可调式混合密度内存储存装置的控制方法及其热门数据控管模块
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) * 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8060719B2 (en) * 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
KR101521493B1 (ko) 2008-07-16 2015-05-19 시게이트 테크놀로지 엘엘씨 통신 속도를 조절할 수 있는 컨트롤러, 상기 컨트롤러를포함하는 데이터 저장 장치, 및 상기 데이터 저장 장치를포함하는 데이터 통신 시스템
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
JP2011022933A (ja) * 2009-07-17 2011-02-03 Toshiba Corp メモリ管理装置を含む情報処理装置及びメモリ管理方法
KR101038167B1 (ko) 2008-09-09 2011-05-31 가부시끼가이샤 도시바 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) * 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) * 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8543756B2 (en) * 2009-02-02 2013-09-24 Marvell World Trade Ltd. Solid-state drive command grouping
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
JP5298982B2 (ja) * 2009-03-17 2013-09-25 日本電気株式会社 ストレージシステム
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
EP2417524A4 (en) * 2009-04-10 2013-03-06 Kaminario Tehnologies Ltd MASS STORAGE SYSTEM USING AN AUXILIARY SEMICONDUCTOR STORAGE SUBSYSTEM
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
KR101600951B1 (ko) * 2009-05-18 2016-03-08 삼성전자주식회사 고체 상태 드라이브 장치
TWI400707B (zh) * 2009-07-09 2013-07-01 Phison Electronics Corp 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
JP5322978B2 (ja) * 2010-03-04 2013-10-23 株式会社東芝 情報処理装置及び方法
JP2011186558A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
JP2011186562A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
EP2455865B1 (en) * 2009-07-17 2020-03-04 Toshiba Memory Corporation Memory management device
JP2011186554A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
JP2011186559A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置
JP2011186561A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置
US20110047316A1 (en) * 2009-08-19 2011-02-24 Dell Products L.P. Solid state memory device power optimization
WO2011030290A1 (en) * 2009-09-08 2011-03-17 International Business Machines Corporation Data management in solid-state storage devices and tiered storage systems
US8473680B1 (en) * 2009-09-18 2013-06-25 Marvell International Ltd. Hotspot detection and caching for storage devices
WO2011036015A1 (en) * 2009-09-24 2011-03-31 International Business Machines Corporation Data storage using bitmaps
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
EP2507700A1 (en) * 2009-12-04 2012-10-10 Marvell World Trade Ltd. Virtualization of storage devices
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8438334B2 (en) * 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
CN102110063B (zh) * 2009-12-28 2013-11-06 宇瞻科技股份有限公司 可提升作业速度的存储系统
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
JP2011154547A (ja) * 2010-01-27 2011-08-11 Toshiba Corp メモリ管理装置及びメモリ管理方法
US20120311113A1 (en) * 2010-02-10 2012-12-06 Nec Corporation Storage device
US8458417B2 (en) * 2010-03-10 2013-06-04 Seagate Technology Llc Garbage collection in a storage device
US8438361B2 (en) * 2010-03-10 2013-05-07 Seagate Technology Llc Logical block storage in a storage device
US8700949B2 (en) 2010-03-30 2014-04-15 International Business Machines Corporation Reliability scheme using hybrid SSD/HDD replication with log structured management
US8700841B2 (en) * 2010-04-19 2014-04-15 International Business Machines Corporation Sub-LUN input/output profiling for SSD devices
US9183134B2 (en) 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
US8635494B2 (en) * 2010-04-30 2014-01-21 Taejin Info Tech Co., Ltd. Backup and restoration for a semiconductor storage device
US9015441B2 (en) * 2010-04-30 2015-04-21 Microsoft Technology Licensing, Llc Memory usage scanning
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US9355109B2 (en) * 2010-06-11 2016-05-31 The Research Foundation For The State University Of New York Multi-tier caching
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
JP5553309B2 (ja) * 2010-08-11 2014-07-16 国立大学法人 東京大学 データ処理装置
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
CN101923514A (zh) * 2010-08-27 2010-12-22 深圳市江波龙电子有限公司 一种闪存存储设备的管理方法及系统
US8959057B2 (en) * 2010-08-30 2015-02-17 Oracle International Corporation Techniques for automatic data placement with compression and columnar storage
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9684590B2 (en) 2010-10-25 2017-06-20 Seagate Technology Llc Storing corresponding data units in a common storage unit
CN102073602B (zh) * 2010-12-14 2012-11-21 鸿富锦精密工业(深圳)有限公司 计算机系统、连接控制装置及连接与断开方法
CN103620547B (zh) 2011-01-27 2018-07-10 英特尔公司 使用处理器的转换后备缓冲器的基于客户指令到本机指令范围的映射
WO2012103245A2 (en) 2011-01-27 2012-08-02 Soft Machines Inc. Guest instruction block with near branching and far branching sequence construction to native instruction block
WO2012103253A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Multilevel conversion table cache for translating guest instructions to native instructions
WO2012103359A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Hardware acceleration components for translating guest instructions to native instructions
WO2012103367A2 (en) 2011-01-27 2012-08-02 Soft Machines, Inc. Guest to native block address mappings and management of native code storage
CN103620563B (zh) 2011-04-26 2015-04-29 Lsi公司 用于非易失性存储器的可变超量配置
US8782370B2 (en) * 2011-05-15 2014-07-15 Apple Inc. Selective data storage in LSB and MSB pages
KR20120132278A (ko) * 2011-05-26 2012-12-05 삼성전자주식회사 메모리 칩, 메모리 시스템, 및 메모리 칩에 대한 액세스 방법
US20120317337A1 (en) * 2011-06-09 2012-12-13 Microsoft Corporation Managing data placement on flash-based storage by use
JP2013061847A (ja) * 2011-09-14 2013-04-04 Sony Corp 情報処理装置および情報処理方法
US8838916B2 (en) 2011-09-15 2014-09-16 International Business Machines Corporation Hybrid data storage management taking into account input/output (I/O) priority
US9417803B2 (en) * 2011-09-20 2016-08-16 Apple Inc. Adaptive mapping of logical addresses to memory devices in solid state drives
CN103946813B (zh) 2011-09-30 2017-08-25 英特尔公司 基于使用统计量追踪的远存储器访问信号的生成
WO2013048493A1 (en) 2011-09-30 2013-04-04 Intel Corporation Memory channel that supports near memory and far memory access
CN107608910B (zh) 2011-09-30 2021-07-02 英特尔公司 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US9317429B2 (en) 2011-09-30 2016-04-19 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy over common memory channels
EP3712774B1 (en) * 2011-09-30 2023-02-15 Tahoe Research, Ltd. Apparatus and method for implementing a multi-level memory hierarchy
CN103092867B (zh) * 2011-11-03 2017-02-01 中国移动通信集团甘肃有限公司 一种数据管理方法及系统、数据分析装置
US8977803B2 (en) * 2011-11-21 2015-03-10 Western Digital Technologies, Inc. Disk drive data caching using a multi-tiered memory
CN105718223B (zh) * 2011-12-27 2019-11-12 英特尔公司 管理工作负载存储器分配的方法和设备
CN103999056B (zh) 2011-12-27 2017-05-31 英特尔公司 管理工作负载存储器分配的方法、设备和系统
CN106469029B (zh) * 2011-12-31 2019-07-23 华为数字技术(成都)有限公司 数据分层存储处理方法、装置和存储设备
CN102609360B (zh) * 2012-01-12 2015-03-25 华为技术有限公司 一种数据处理方法、装置及系统
JP5790532B2 (ja) * 2012-02-13 2015-10-07 セイコーエプソン株式会社 電子機器、及びメモリー制御方法
WO2014021779A1 (en) * 2012-07-30 2014-02-06 Agency For Science, Technology And Research Servers and methods for controlling a server
KR20140033964A (ko) * 2012-09-11 2014-03-19 삼성전자주식회사 단말기의 데이터 저장장치 및 방법
CN102902628B (zh) * 2012-09-18 2016-06-01 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、系统及闪存
CN103677654B (zh) * 2012-09-24 2018-03-23 联想(北京)有限公司 一种存储数据的方法及电子设备
WO2014059613A1 (zh) * 2012-10-17 2014-04-24 华为技术有限公司 降低内存系统功耗的方法和内存控制器
CN103839578B (zh) * 2012-11-27 2017-02-08 广东华晟数据固态存储有限公司 一种提高基于nand的固态存储器数据保持时间的方法
US9684593B1 (en) * 2012-11-30 2017-06-20 EMC IP Holding Company LLC Techniques using an encryption tier property with application hinting and I/O tagging
US8984251B2 (en) * 2012-12-04 2015-03-17 Apple Inc. Hinting of deleted data from host to storage device
CN103853500A (zh) * 2012-12-07 2014-06-11 中国移动通信集团河南有限公司 一种基于海量数据的数据分配方法、装置及系统
US9098402B2 (en) 2012-12-21 2015-08-04 Intel Corporation Techniques to configure a solid state drive to operate in a storage mode or a memory mode
US9715445B2 (en) 2013-03-14 2017-07-25 Sandisk Technologies Llc File differentiation based on data block identification
US20140281129A1 (en) * 2013-03-15 2014-09-18 Tal Heller Data tag sharing from host to storage systems
WO2014151652A1 (en) 2013-03-15 2014-09-25 Soft Machines Inc Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor
US10198265B2 (en) 2013-03-15 2019-02-05 Intel Corporation Microprocessor for gating a load operation based on entries of a prediction table
US10467010B2 (en) 2013-03-15 2019-11-05 Intel Corporation Method and apparatus for nearest potential store tagging
CN109358948B (zh) 2013-03-15 2022-03-25 英特尔公司 用于支持推测的访客返回地址栈仿真的方法和装置
US9606935B2 (en) * 2013-03-15 2017-03-28 Intel Corporation Method and apparatus for preventing non-temporal entries from polluting small structures using a transient buffer
KR102023351B1 (ko) 2013-03-19 2019-11-04 삼성전자 주식회사 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치
JP6070371B2 (ja) * 2013-03-29 2017-02-01 富士通株式会社 データ配置プログラム、及び情報処理装置
WO2014209234A1 (en) * 2013-06-26 2014-12-31 Agency For Science, Technology And Research Method and apparatus for hot data region optimized dynamic management
US9563371B2 (en) * 2013-07-26 2017-02-07 Globalfoundreis Inc. Self-adjusting phase change memory storage module
KR102133362B1 (ko) 2013-08-14 2020-07-15 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 및 그것의 프로그램 방법
US9513692B2 (en) 2013-09-18 2016-12-06 Intel Corporation Heterogenous memory access
CN103744796A (zh) * 2013-09-29 2014-04-23 记忆科技(深圳)有限公司 采用uSSD实现缓存的方法及其系统
CN103617007B (zh) * 2013-12-04 2017-06-23 深圳市华云中盛科技有限公司 多级智能存储实现方法和系统
CN103631538B (zh) 2013-12-05 2017-04-05 华为技术有限公司 冷热数据识别门限值计算方法、装置和系统
US9323457B2 (en) * 2013-12-09 2016-04-26 Xilinx, Inc. Memory arrangement for implementation of high-throughput key-value stores
US9851923B2 (en) * 2013-12-30 2017-12-26 Teradata Us, Inc. Management of data in multi-storage systems that can include non-volatile and volatile storages
CN103713861A (zh) * 2014-01-09 2014-04-09 浪潮(北京)电子信息产业有限公司 一种基于层次划分的文件处理方法及系统
US10061532B2 (en) 2014-01-30 2018-08-28 Hewlett Packard Enterprise Development Lp Migrating data between memories
KR102218712B1 (ko) 2014-02-11 2021-02-22 삼성전자주식회사 저장 장치의 어드레스 맵핑 방법 및 저장 장치의 데이터 독출 방법
CN104915298B (zh) * 2014-03-13 2019-02-12 腾讯科技(北京)有限公司 关系链处理方法及装置
CN104932830B (zh) * 2014-03-17 2019-01-15 联想(北京)有限公司 信息处理方法及电子设备
KR102289919B1 (ko) * 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
DE102014216130A1 (de) * 2014-08-13 2016-02-18 Siemens Aktiengesellschaft Vorrichtung und Verfahren zur Speicherung von Protokollierungsdaten
CN104391652A (zh) * 2014-10-20 2015-03-04 北京兆易创新科技股份有限公司 一种硬盘的损耗均衡方法及装置
CN104461397A (zh) * 2014-12-19 2015-03-25 上海新储集成电路有限公司 一种固态硬盘及其读写方法
US9564216B2 (en) 2015-01-30 2017-02-07 Macronix International Co., Ltd. Stress trim and modified ISPP procedures for PCM
CN104793901B (zh) * 2015-04-09 2018-01-23 北京鲸鲨软件科技有限公司 一种存储装置及存储方法
CN104808953B (zh) * 2015-05-07 2018-11-27 广东欧珀移动通信有限公司 控制数据存储的方法、装置及移动终端
CN106354718B (zh) * 2015-07-13 2021-05-25 中国移动通信集团公司 用户识别模块的文件管理方法及装置
KR20170009000A (ko) * 2015-07-15 2017-01-25 에스케이하이닉스 주식회사 메모리 콘트롤러, 이를 포함하는 메모리 시스템 및 메모리 콘트롤러의 동작 방법
JP6538496B2 (ja) * 2015-09-11 2019-07-03 東芝メモリ株式会社 メモリシステム
CN105869028A (zh) * 2015-11-11 2016-08-17 乐卡汽车智能科技(北京)有限公司 订单回退处理系统、处理方法以及业务支撑系统
US9832277B2 (en) * 2015-11-13 2017-11-28 Western Digital Technologies, Inc. Systems and methods for adaptive partitioning in distributed cache memories
US9934154B2 (en) * 2015-12-03 2018-04-03 Samsung Electronics Co., Ltd. Electronic system with memory management mechanism and method of operation thereof
JP2017107321A (ja) * 2015-12-08 2017-06-15 京セラドキュメントソリューションズ株式会社 電子機器およびデータアクセス制御プログラム
EP3376394B1 (en) 2015-12-30 2022-09-28 Huawei Technologies Co., Ltd. Method and device for processing access request, and computer system
WO2017113211A1 (zh) * 2015-12-30 2017-07-06 华为技术有限公司 访问请求处理方法、装置及计算机系统
CN105760114B (zh) * 2016-02-05 2020-07-03 浪潮(北京)电子信息产业有限公司 一种并行文件系统资源管理方法、装置和系统
CN107203330B (zh) * 2016-03-17 2021-03-23 北京忆恒创源科技有限公司 一种面向读写数据流的闪存数据分布方法
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10698732B2 (en) * 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10474557B2 (en) 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10452539B2 (en) 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
KR102550343B1 (ko) 2016-07-27 2023-07-03 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 그것의 동작 방법
CN106503079A (zh) * 2016-10-10 2017-03-15 语联网(武汉)信息技术有限公司 一种日志管理方法及系统
CN106406771B (zh) * 2016-10-20 2019-10-11 福建天泉教育科技有限公司 日志记录方法及日志记录器
US10649665B2 (en) * 2016-11-08 2020-05-12 Micron Technology, Inc. Data relocation in hybrid memory
CN107122126B (zh) * 2016-12-22 2020-09-08 华为技术有限公司 数据的迁移方法、装置和系统
CN108268485B (zh) * 2016-12-30 2021-04-30 亿阳安全技术有限公司 一种日志实时分析方法及系统
CN106873912B (zh) * 2017-02-16 2020-02-07 苏州浪潮智能科技有限公司 Tlc芯片固态硬盘的动态分区存储方法及装置、系统
US10761750B2 (en) * 2017-03-09 2020-09-01 Netapp Inc. Selectively storing data into allocation areas using streams
CN107341112A (zh) * 2017-06-29 2017-11-10 西安交通大学 一种基于页面访问间隔的闪存数据缓冲区置换方法
CN107368436B (zh) * 2017-06-29 2020-08-18 西安交通大学 一种联合地址映射表的闪存冷热数据分离存储方法
CN107291633A (zh) * 2017-07-14 2017-10-24 长沙开雅电子科技有限公司 一种新型集群存储写缓存分级管理方法
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
CN107480073A (zh) * 2017-08-20 2017-12-15 长沙曙通信息科技有限公司 一种存储系统热点数据缓存预读实现方法
CN107562378A (zh) * 2017-08-28 2018-01-09 记忆科技(深圳)有限公司 一种提升固态存储设备寿命的方法
US11100996B2 (en) * 2017-08-30 2021-08-24 Micron Technology, Inc. Log data storage for flash memory
CN107748649B (zh) * 2017-09-18 2021-03-30 北京京东尚科信息技术有限公司 一种缓存数据的方法和装置
US10909271B2 (en) 2017-09-28 2021-02-02 Citrix Systems, Inc. Policy based persistence
CN107621927B (zh) * 2017-09-29 2020-08-14 南京宏海科技有限公司 一种基于超融合系统的纵向扩展方法及其装置
US10915475B2 (en) * 2017-10-12 2021-02-09 Western Digital Technologies, Inc. Methods and apparatus for variable size logical page management based on hot and cold data
CN107844269B (zh) * 2017-10-17 2020-06-02 华中科技大学 一种基于一致性哈希的分层混合存储系统
CN107967121B (zh) 2017-10-25 2020-04-14 华为技术有限公司 数据写入方法和存储设备
CN107807796B (zh) * 2017-11-17 2021-03-05 北京联想超融合科技有限公司 一种基于超融合存储系统的数据分层方法、终端及系统
CN108108131B (zh) * 2017-12-29 2020-09-22 深圳忆联信息系统有限公司 一种ssd硬盘的数据处理方法和装置
KR20190085642A (ko) * 2018-01-11 2019-07-19 에스케이하이닉스 주식회사 메모리 시스템
CN108519862B (zh) * 2018-03-30 2020-03-17 百度在线网络技术(北京)有限公司 区块链系统的存储方法、装置、系统和存储介质
US10776268B2 (en) * 2018-04-19 2020-09-15 Western Digital Technologies, Inc. Priority addresses for storage cache management
CN108984124B (zh) * 2018-07-13 2022-03-25 深圳忆联信息系统有限公司 减少写放大的方法、装置、计算机设备及存储介质
CN108920107B (zh) * 2018-07-13 2022-02-01 深圳忆联信息系统有限公司 筛选冷数据的方法、装置、计算机设备及存储介质
CN108920108B (zh) * 2018-07-13 2022-02-01 深圳忆联信息系统有限公司 冷数据的筛选方法、装置、计算机设备及存储介质
CN110737391B (zh) * 2018-07-20 2023-08-22 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机程序产品
US11010410B1 (en) * 2018-10-12 2021-05-18 Facebook, Inc. Processing data groupings belonging to data grouping containers
US11188250B2 (en) * 2018-10-25 2021-11-30 Micron Technology, Inc. Two-stage hybrid memory buffer for multiple streams
CN109407995B (zh) * 2018-11-05 2020-03-27 北京三快在线科技有限公司 冷热数据管理方法、装置、电子设备及计算机可读介质
US11163473B2 (en) * 2018-11-19 2021-11-02 Micron Technology, Inc. Systems, devices, techniques, and methods for data migration
US11256437B2 (en) 2018-11-19 2022-02-22 Micron Technology, Inc. Data migration for memory operation
US11182090B2 (en) 2018-11-19 2021-11-23 Micron Technology, Inc. Systems, devices, and methods for data migration
CN109739646A (zh) * 2018-12-28 2019-05-10 北京神州绿盟信息安全科技股份有限公司 一种数据处理方法及装置
CN109799958A (zh) * 2019-01-17 2019-05-24 湖南大学 固态硬盘及其数据处理方法
KR20200092710A (ko) * 2019-01-25 2020-08-04 주식회사 리얼타임테크 이기종 스토리지 기반의 데이터베이스 관리시스템에서 하이브리드 색인장치
CN110134514B (zh) * 2019-04-18 2021-04-13 华中科技大学 基于异构内存的可扩展内存对象存储系统
CN110109620B (zh) * 2019-04-25 2023-08-04 上海淇毓信息科技有限公司 混合存储方法、装置和电子设备
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
US11088707B2 (en) * 2019-06-29 2021-08-10 Intel Corporation Low density parity check (LDPC) decoder architecture with check node storage (CNS) or bounded circulant
US11036434B2 (en) 2019-08-22 2021-06-15 Micron Technology, Inc. Hierarchical memory systems
CN110531938A (zh) * 2019-09-02 2019-12-03 广东紫晶信息存储技术股份有限公司 一种基于多维度的冷热数据迁移方法及系统
CN111078144A (zh) * 2019-11-30 2020-04-28 苏州浪潮智能科技有限公司 一种提高自动分层效率的方法、系统、终端及存储介质
KR20210077230A (ko) * 2019-12-17 2021-06-25 에스케이하이닉스 주식회사 메모리 시스템의 동작 방법 및 장치
CN113010091B (zh) * 2019-12-20 2023-06-16 华为技术有限公司 数据写入固态硬盘的方法、垃圾回收的方法、装置
CN111506262B (zh) * 2020-03-25 2021-12-28 华为技术有限公司 一种存储系统、文件存储和读取方法及终端设备
CN111581024A (zh) * 2020-05-06 2020-08-25 深圳忆联信息系统有限公司 Ssd日志的动态备份恢复方法、装置和计算机设备
CN111722804B (zh) * 2020-06-12 2022-07-08 浪潮电子信息产业股份有限公司 一种非易失内存调度的方法、系统、设备及可读存储介质
CN112114748B (zh) * 2020-09-02 2022-10-25 厦门安胜网络科技有限公司 一种用于冷热数据的分离方法和系统
CN112214169B (zh) * 2020-09-28 2021-08-10 深圳大学 一种数据存储装置及存储数据的迁移方法
US11515891B2 (en) 2020-12-22 2022-11-29 Intel Corporation Application of low-density parity-check codes with codeword segmentation
CN112650453A (zh) * 2020-12-31 2021-04-13 北京千方科技股份有限公司 一种用于存储、查询交通数据的方法和系统
US11681471B2 (en) * 2021-04-07 2023-06-20 EMC IP Holding Company LLC Bypassing of tier-1 storage in a streaming data storage system
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
KR20220169772A (ko) 2021-06-21 2022-12-28 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
US11822699B1 (en) * 2021-10-21 2023-11-21 Secure Computing, Llc Preventing surreptitious access to file data by malware
KR20230059911A (ko) * 2021-10-26 2023-05-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0628246A (ja) * 1991-06-24 1994-02-04 Nec Corp 記憶装置
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JPH08314794A (ja) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム
US5671388A (en) * 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
KR100205240B1 (ko) 1996-09-13 1999-07-01 윤종용 단일 비트 및 다중 비트 셀들이 장착된 불휘발성 반도체 메모리 장치
JP3282525B2 (ja) * 1996-12-20 2002-05-13 松下電器産業株式会社 データ管理装置及びネットワークデータ管理システム
WO2000004483A2 (en) * 1998-07-15 2000-01-27 Imation Corp. Hierarchical data storage management
US7457897B1 (en) * 2004-03-17 2008-11-25 Suoer Talent Electronics, Inc. PCI express-compatible controller and interface for flash memory
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US6701421B1 (en) * 2000-08-17 2004-03-02 International Business Machines Corporation Application-level memory affinity control
US6785767B2 (en) * 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
JP2003022687A (ja) 2001-07-09 2003-01-24 Mitsubishi Electric Corp 半導体記憶装置
JP2003216460A (ja) * 2002-01-21 2003-07-31 Hitachi Ltd 階層ストレージ装置及びその制御装置
AU2003272358A1 (en) * 2002-09-16 2004-04-30 Tigi Corporation Storage system architectures and multiple caching arrangements
US7010645B2 (en) * 2002-12-27 2006-03-07 International Business Machines Corporation System and method for sequentially staging received data to a write cache in advance of storing the received data
US8788764B2 (en) * 2003-10-08 2014-07-22 Oracle International Corporation Access controller for storage devices
US20050251617A1 (en) * 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US8315973B1 (en) * 2004-09-28 2012-11-20 Symantec Operating Corporation Method and apparatus for data moving in multi-device file systems
KR100621631B1 (ko) * 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
KR100704037B1 (ko) * 2005-04-15 2007-04-04 삼성전자주식회사 이종의 비휘발성 메모리를 가지는 데이터 저장장치와 그의구동 방법
US8010764B2 (en) * 2005-07-07 2011-08-30 International Business Machines Corporation Method and system for decreasing power consumption in memory arrays having usage-driven power management
KR101257848B1 (ko) * 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
US7752382B2 (en) * 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
SG130988A1 (en) * 2005-09-29 2007-04-26 Trek 2000 Int Ltd Portable data storage device incorporating multiple flash memory units
EP1929482B1 (en) * 2005-09-29 2013-06-12 Trek 2000 International Ltd Portable data storage using slc and mlc flash memory
US7558913B2 (en) * 2006-06-20 2009-07-07 Microsoft Corporation Atomic commit of cache transfer with staging area
US7496711B2 (en) * 2006-07-13 2009-02-24 International Business Machines Corporation Multi-level memory architecture with data prioritization
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR100833188B1 (ko) * 2006-11-03 2008-05-28 삼성전자주식회사 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템
US8370562B2 (en) * 2007-02-25 2013-02-05 Sandisk Il Ltd. Interruptible cache flushing in flash memory systems
US7730171B2 (en) * 2007-05-08 2010-06-01 Teradata Us, Inc. Decoupled logical and physical data storage within a database management system
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7975105B1 (en) * 2007-12-03 2011-07-05 Yingju Sun Solid state storage devices with changeable capacity

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100979750B1 (ko) * 2009-11-06 2010-09-03 (주)피스페이스 분산 저장 시스템에서 파일을 관리하는 장치 및 방법
US8438195B2 (en) 2011-02-15 2013-05-07 Samsung Electronics Co., Ltd. File system operating method and devices using the same
US8812775B2 (en) 2011-03-28 2014-08-19 Samsung Electronics Co., Ltd. System and method for controlling nonvolatile memory
WO2015002481A1 (ko) * 2013-07-03 2015-01-08 아주대학교산학협력단 플래시 메모리 기반 세가지 상태를 가지는 버퍼 관리 장치 및 방법
US9921747B2 (en) 2014-01-31 2018-03-20 Hewlett Packard Enterprise Development Lp Unifying memory controller
WO2015116173A3 (en) * 2014-01-31 2015-12-17 Hewlett-Packard Development Company, L.P. Unifying memory controller
KR20160070658A (ko) * 2014-12-10 2016-06-20 한양대학교 산학협력단 입출력 정보 공유 방법, 상기 방법을 수행하는 저장 장치 및 호스트 장치
KR20160087426A (ko) * 2015-01-13 2016-07-22 삼성전자주식회사 속도 모드 관리자를 포함하는 저장 장치 및 사용자 장치
KR20170036964A (ko) * 2015-09-24 2017-04-04 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
KR20180102483A (ko) * 2017-03-07 2018-09-17 삼성전자주식회사 이종 불휘발성 메모리 형태를 갖는 솔리드 스테이트 드라이브
US10853236B2 (en) 2018-03-19 2020-12-01 SK Hynix Inc. Storage device and method for operating the same
US11243716B2 (en) 2018-12-21 2022-02-08 SK Hynix Inc. Memory system and operation method thereof
KR20220074685A (ko) * 2020-11-27 2022-06-03 한양대학교 에리카산학협력단 데이터 저장 처리 장치 및 방법

Also Published As

Publication number Publication date
DE102008036822A1 (de) 2009-04-02
JP2009048613A (ja) 2009-03-05
JP2013242908A (ja) 2013-12-05
US20110138115A1 (en) 2011-06-09
CN103400598A (zh) 2013-11-20
US8626996B2 (en) 2014-01-07
KR101498673B1 (ko) 2015-03-09
US20140337566A1 (en) 2014-11-13
US20160231941A1 (en) 2016-08-11
US20090049234A1 (en) 2009-02-19
US9208079B2 (en) 2015-12-08
US20150261667A1 (en) 2015-09-17
US20140101377A1 (en) 2014-04-10
US20130042058A1 (en) 2013-02-14
US20140122783A1 (en) 2014-05-01
CN101369451A (zh) 2009-02-18

Similar Documents

Publication Publication Date Title
KR101498673B1 (ko) 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
US10282130B2 (en) Coherency of data in data relocation
US8429358B2 (en) Method and data storage device for processing commands
US9146688B2 (en) Advanced groomer for storage array
US20130080689A1 (en) Data storage device and related data management method
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
EP0978040B1 (en) Memory device
KR20090102192A (ko) 메모리 시스템 및 그것의 데이터 저장 방법
KR20100100394A (ko) 반도체 디스크 장치 그리고 그것의 데이터 기록 및 읽기 방법
US20130339644A1 (en) Methods of operating memory devices within a communication protocol standard timeout requirement
KR20130024271A (ko) 하드 디스크 드라이브와 불휘발성 메모리를 포함하는 스토리지 시스템
CN114637694A (zh) 固态驱动器中的持久性存储器中的逻辑到物理地址间接表
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
CN102160038A (zh) 管理非易失性磁盘高速缓存的方法和设备
US10459658B2 (en) Hybrid data storage device with embedded command queuing
TWI701662B (zh) 快閃記憶裝置的資料存取控制方法及電腦程式產品
Liang et al. Boosting performance of SSD with chip-level RAID by deferring garbage collection
CN105575425A (zh) 存储器晶片、其资料读取方法以及资料储存系统
TW202147126A (zh) 瞬間斷電回復處理方法及裝置以及電腦程式產品
KR20160026023A (ko) 파일시스템용 Flash Translation Layer를 이용한 SSD

Legal Events

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

Payment date: 20200131

Year of fee payment: 6