KR20110095935A - 메모리 시스템 제어기 - Google Patents

메모리 시스템 제어기 Download PDF

Info

Publication number
KR20110095935A
KR20110095935A KR1020117015980A KR20117015980A KR20110095935A KR 20110095935 A KR20110095935 A KR 20110095935A KR 1020117015980 A KR1020117015980 A KR 1020117015980A KR 20117015980 A KR20117015980 A KR 20117015980A KR 20110095935 A KR20110095935 A KR 20110095935A
Authority
KR
South Korea
Prior art keywords
memory
memory system
insns
system controller
storage nodes
Prior art date
Application number
KR1020117015980A
Other languages
English (en)
Other versions
KR101274306B1 (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 마이크론 테크놀로지, 인크.
Publication of KR20110095935A publication Critical patent/KR20110095935A/ko
Application granted granted Critical
Publication of KR101274306B1 publication Critical patent/KR101274306B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • 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/1056Simplification
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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/7211Wear leveling

Abstract

본 발명은 메모리 시스템 제어기를 위한 방법들 및 장치들을 포함한다. 하나 이상의 실시예들에서, 메모리 시스템 제어기는 시스템 제어기와 통신이 되도록 결합된 호스트 인터페이스를 포함한다. 상기 시스템 제어기는 다수의 메모리 인터페이스들을 구비하며, 상기 다수의 메모리 인터페이스들에 통신이 되도록 결합된 복수의 지능형 스토리지 노드들을 제어하도록 구성된다. 상기 시스템 제어기는 물리 및 논리 메모리 주소들 간을 매핑하도록 구성된 로직, 및 상기 복수의 지능형 스토리지 노드들에 결쳐 질러 웨어 레벨을 관리하도록 구성된 로직을 포함한다.

Description

메모리 시스템 제어기{MEMORY SYSTEM CONTROLLER}
본 발명은 일반적으로 반도체 메모리 장치들, 방법들, 및 시스템들에 관한 것으로, 특히 메모리 시스템 제어기에 관한 것이다.
메모리 장치들은 전형적으로 컴퓨터들 또는 그외 전자장치들 내에 내부 반도체 집적회로들로서 제공된다. 휘발성 및 비휘발성 메모리를 포함한 많은 서로 다른 유형들의 메모리가 있다. 휘발성 메모리는 자신의 데이터를 유지하기 위해 전력을 필요로 할 수 있으며, 그 중에서도 랜덤-액세스 메모리(random-access memory; RAM), 동적 랜덤-액세스 메모리(dynamic random access memory; DRAM), 및 동기 동적 랜덤 액세스 메모리(synchronous dynamic random access memory; SDRAM)를 포함한다. 비휘발성 메모리는, 전원이 없을 때, 저장된 정보를 보존함으로써 영속적 데이터를 제공할 수 있고, 그 중에서도, NAND 플래시 메모리, NOR 플래시 메모리, 판독 전용 메모리(read only memory; ROM), 전기적 소거가능 프로그램가능 ROM(Electrically Erasable Programmabel ROM; EEPROM), 소거가능 프로그램가능 ROM(Erasable Programmable ROM; EPROM), 및 상변화 랜덤 액세스 메모리(phase change random access memory; PCRAM)를 포함할 수 있다.
메모리 장치들은 함께 결합되어 솔리드 스테이트 드라이브(solid state drive; SSD)를 형성할 수 있다. 솔리드 스테이트 드라이브는 여러 다른 유형들의 비휘발성 및 휘발성 메모리 중에서도, 비휘발성 메모리, 예를 들면, NAND 플래시 메모리 및 NOR 플래시 메모리를 포함할 수 있고, 및/또는 휘발성 메모리, 예를 들면, DRAM 및 SRAM을 포함할 수 있다.
SSD는 솔리드 스테이트 드라이브가 성능, 크기, 무게, 견고성, 동작온도 범위, 및 전력 소비면에서 하드드라이브들에 비해 장점들을 가질 수 있기 때문에, 컴퓨터용 주 저장장치로서 하드디스크 드라이브들을 대체하기 위해 사용될 수 있다. 예를 들면, SSD들은 그들의 가동(moving) 부품들이 없어 자기 디스크 드라이브들에 연관된 탐색시간(seek time), 레이턴시(latency), 및 다른 전기-기계적 지연들을 개선할 수 있어 자기 디스크 드라이브들과 비교했을 때 우수한 성능을 가질 수 있다. SSD 제조업자들은 내부 배터리 서플라이를 사용하지 않을 수 있는 플래시 SSD들을 만들기 위해 비휘발성 플래시 메모리를 사용할 수 있어, 이에 따라 드라이브를 더 다목적이고 콤팩트하게 할 수 있다.
SSD는 다수의 메모리 장치들, 예를 들면, 다수의 메모리 칩들을 포함할 수 있다(여기에서 사용되는 바와 같이, "다수의" 어떤 것은 하나 이상의 이러한 것들을 지칭할 수 있는데, 예를 들면, 다수의 메모리 장치들은 하나 이상의 메모리 장치들을 지칭할 수 있다). 당업자가 알게 되는 바와 같이, 메모리 칩은 다수의 다이들(dies)을 포함할 수 있다. 각각의 다이는 이에 다수의 메모리 어레이(memory array)들 및 주변 회로를 포함할 수 있다. 메모리 어레이는 다수의 플레인(plane)들을 포함할 수 있고, 각각의 플레인은 다수의 물리 블록들의 메모리 셀들을 포함한다. 각각의 물리 블록은 다수의 섹터들의 데이터를 저장할 수 있는 다수의 페이지들의 메모리 셀들을 포함할 수 있다.
큰 저장용량에 걸쳐 낮은 레이턴시와 고 대역폭을 달성하기 위해서, SSD들은 각 채널이 메모리의 어떤 부분을 동작시키는 것인, 병렬로 동작하는 복수의 채널들을 포함할 수 있다. 이에 따라, 복수의 동일 메모리 채널 제어기, 예를 들면, NAND 플래시 제어기 로직은 SSD의 복수-채널 시스템 제어기 상에 통합될 수 있다. 이러한 구성에서, 각각의 채널은 물리-논리 매핑(physical to logical mapping) 및 블록 관리, 예를 들면, 웨어 레벨링을 수행하는 것을 포함한, 채널이 관할하는 연관된 메모리를 동작시키는 기능을 행한다. 그러므로, 복수의 채널들 각각에 대응한, 복수의 메모리 채널 제어기들 각각은 매핑기능 및 블록 관리 기능을 수행하기 위해 사용되는 고속 버퍼 메모리를 구비할 수 있다. 또한, 복수의 메모리 채널 제어기들 각각은 각각의 채널에 보내지는 전송하고 있는 데이터를 위한 버퍼 메모리를 포함할 수 있다.
복수의 메모리 채널 제어기들 각각과 메모리의 대응하는 부분들 간의 병렬 통신들은 이들 간에 데이터, 제어, 파워, 및 접지 연결을 위해서 대략 20개의 핀들을 요구할 수 있다. 이것은 기존의 디스크 드라이브 프로토콜들과의 호환성을 보증하기 위해서 많은 핀 수를 갖는 고가의 메모리 시스템 ASIC이 되도록 할 수 있다.
도 1은 본 발명의 하나 이상의 실시예들에 따른 계산 시스템의 기능 블록도이다.
도 2는 메모리 시스템을 포함하는 종래기술의 계산 시스템의 기능 블록도이다.
도 3은 본 발명의 하나 이상의 실시예들에 따라 메모리 시스템 제어기를 포함하는 계산 시스템의 기능 블록도이다.
도 4는 본 발명의 하나 이상의 실시예들에 따라, 통신이 되도록 직렬로 결합된 다수의 지능형 스토리지 노드들을 포함한 메모리 시스템의 기능 블록도이다.
도 5는 본 발명의 하나 이상의 실시예들에 따라, 통신이 되도록 병렬로 결합된 다수의 지능형 스토리지 노드들을 포함한 메모리 시스템의 기능 블록도이다.
도 6은 본 발명의 하나 이상의 실시예들에 따라, 병렬로 통신이 되도록 결합된 다수의 지능형 NAND 스토리지 노드들과 직렬로 통신이 되도록 결합된 적어도 한 지능형 NAND 스토리지 노드들을 포함하는 메모리 시스템의 기능 블록도이다.
도 7은 본 발명의 하나 이상의 실시예들에 따라, 지능형 스토리지 노드의 기능 블록도이다.
본 발명은 메모리 시스템 제어기 장치들 및 방법들을 포함한다. 하나 이상의 실시예들에서, 메모리 시스템 제어기는 시스템 제어기에 통신하도록 결합된 호스트 인터페이스를 포함한다. 시스템 제어기는 다수의 메모리 인터페이스들을 구비하며, 다수의 메모리 인터페이스들에 통신하게 결합된 복수의 지능형 스토리지 노드들을 제어하도록 구성된다. 시스템 제어기는 물리 메모리 주소와 논리 메모리 주소 간에 매핑하게 구성된 로직, 및 복수의 지능형 스토리지 노드들에 걸쳐 웨어 레벨을 관리하게 구성된 로직을 포함한다.
본 발명의 하나 이상의 실시예들은 통상적으로 분산된 솔리드 스테이트 드라이브 기능, 이를테면 NAND 제어, 물리-논리 주소 변환, 결함관리 및 블록관리, 예를 들면 웨어 레벨링을 중앙 메모리 시스템 제어기에 대해 "상류측"에 중앙집중된(centralize) 메모리 시스템을 기술한다. 위에 언급된 기능을 중앙에 배치함으로써, 스토리지 노드들 대해 간이화된 노드 제어기들이 이용될 수 있고, 그에 의해 낮은 레이턴시, 고 메모리 밀도, 구성가능성, 및 낮은 메모리 시스템 비용을 제공할 수 있다.
여기에서 도면들에서 표시한 숫자에서 앞의 숫자 또는 숫자들은 도면 번호에 대응하는 것이고 그 뒤의 숫자들은 도면에서 요소 혹은 성분을 나타낸다. 도면들 간에 유사한 요소들 혹은 성분들은 비슷한 숫자들을 사용하여 확인될 수 있다. 예를 들어, 104는 도 1에서 참조요소가 "04"일 수 있고, 유사한 요소는 도 2에서의 204 등으로서 참조될 수 있다.
도 1은 본 발명의 하나 이상의 실시예들에 따른 계산 시스템의 기능 블록도이다. 계산 시스템(computing system; 100)은 호스트 시스템(102)에 통신이 되도록 결합된, 예를 들면 이상의 솔리드 스테이트 드라이브들(SSDs)인 메모리 시스템(104)을 포함한다. 메모리 시스템(104)은 예를 들면 직렬 어드밴스드 기술 탈부착(Seiral Advanced Technology Attachment; SATA) 인터페이스인 통신 인터페이스(106)를 통해 호스트 시스템(102)에 통신이 되도록 결합될 수 있다.
호스트 시스템(102)은 다수의 개별적 집적회로들을 포함할 수 있고, 혹은 하나 이상의 성분 또는 기능이 동일 집적회로 상에 있을 수 있다. 하나 이상의 실시예들에 따라, 호스트 시스템(102)은 적어도 부분적으로, '머더보드(motherboard)'로서, 계산 시스템(100) 내에 물리적으로 구현될 수 있고, 메모리 시스템(104)은 별도로 물리적으로 구현되며, 머더보드 및 메모리 시스템(104)은 이를테면 백플레인 또는 버스에 의해서, 통신 인터페이스(106)를 통해 통신이 되도록 결합된다.
호스트 시스템(102)은 메모리 및 버스 제어(107)에 통신이 되도록 결합된 하나 이상의 프로세서들(105), 예를 들면, 병렬 프로세서들, 코-프로세서들, 등을 포함할 수 있다. 프로세서, 예를 들면, 프로세서(105)는 하나 이상의 마이크로프로세서들, 혹은 이외 어떤 다른 유형의 제어회로, 이를테면 예를 들어 하나 이상의 응용특정 집적회로들(application-specific integrated circuits; ASICs)일 수 있다. 계산 시스템의 그외 다른 성분들도 프로세서들을 구비할 수 있다. 메모리 및 버스 제어(107)는 메모리 및 이에 직접 통신이 되도록 결합된 그외 성분들, 예를 들면 동적 랜덤 액세스 메모리(DRAM)(111), 그래픽 사용자 인터페이스(113), 혹은 그외 사용자 인터페이스, 예를 들면, 디스플레이 모니터, 키보드, 마우스, 등을 구비할 수 있다.
메모리 및 버스 제어(107)는 이에 통신이 되도록 결합된 주변 장치 및 버스 제어(peripheral and bus control; 109)를 구비할 수 있고, 이것은 USB(universal serial bus) 인터페이스를 사용하는 플래시 드라이브(115), 비휘발성 메모리 호스트 제어 인터페이스(non-volatile memory host control interface; NVMHCI) 플래시 메모리(117), 혹은 메모리 시스템(104)과 같은 다수의 장치들에 연결할 수 있다. 당업자가 알게 되는 바와 같이, 메모리 시스템(104)은 다수의 서로 다른 계산 시스템 내 하드디스크 드라이브(hard disk drive; HDD)에 더하여, 혹은 이를 대신하여 사용될 수 있다. 도 1에 도시된 계산 시스템(100)은 이러한 시스템의 일예이며, 그러나, 본 발명의 실시예들은 도 1에 도시된 구성으로 제한되지 않는다.
기업용 솔리드 스테이트 스토리지 기기들은 테라바이트 저장 및 고성능 능력들, 예를 들면 100MB/sec, 초당 100K 입력들/출력들(inputs/outputs per second; IOPS), 등 중 하나 이상에 의해 특징지워질 수 있는 한 부류의 메모리 시스템들이다. 본 발명의 하나 이상의 실시예들에 따라, 기업용 솔리드 스테이트 스토리지 기기는 블록들을 형성하는 솔리드 스테이트 드라이브(SSD)를 사용하여 구성될 수 있다. 예를 들면 도 1에 관련하여, 메모리 시스템(104)은 하나 이상의 성분 SSD들을 사용하여 구현되는 기업용 솔리드 스테이트 스토리지 기기일 수 있고, 하나 이상의 SSD들은 메모리 시스템 제어기에 의해 메모리 시스템으로서 동작된다.
도 2는 메모리 시스템을 포함하는 종래기술의 계산 시스템의 기능 블록도이다. 계산 시스템(200)은 인터페이스(206)를 통해 호스트 시스템(202)에 연결된 메모리 시스템(204), 예를 들면, SSD를 포함한다. 종래기술의 메모리 시스템(204)은 시스템 제어기(210), 물리 인터페이스(208), 예를 들면, 컨넥터, 및 시스템 제어기(210)의 각각의 채널들에 대응하여 다수의 메모리 장치들(212-1,..., 212-N)을 포함한다. 인터페이스(206)는 메모리 시스템(204)과 호스트 시스템(202) 간에 정보를 통신하기 위해 사용된다.
시스템 제어기(210)는 다수의 메모리 장치들(212-1,..., 212-N)에 대응하여, 다수의 채널들에 걸친 액세스를 제어하기 위한 제어 회로를 포함할 수 있고, 각각의 채널은 메모리 제어기, 예를 들면,(218-1,..., 218-N)를 구비한다. 각각의 메모리 채널 제어기, 예를 들면,(218-1,..., 218-N)은 특정 채널에 연관된 물리 주소와 논리 주소 간에 매핑을 제공하는 것을 포함하여, 대응하는 메모리 장치들(212-1,..., 212-N)에의 액세스를 관리한다. 또한, 각각의 메모리 채널 제어기, 예를 들면, 218-1,..., 218-N은 특정 채널에 연관된 메모리 장치들에 대한 웨어 레벨링을 관리한다.
메모리 시스템(204)은 호스트 시스템에 인터페이스하고 디스크 드라이브를 에뮬레이트하게 다수의 메모리 장치들(212-1,..., 212-N)을 제어하는 모든 로직을 일체화한다. 이에 따라, 시스템 제어기(210)는 디스크 드라이브 에뮬레이션 로직(disk drive emulation logic)(216)과 통신하는 호스트 인터페이스(214)를 포함하며, 디스크 드라이브 에뮬레이션 로직(216)은 다수의 메모리 제어기들(218-1,..., 218-N)과 통신한다.
도 3은 본 발명의 하나 이상의 실시예들에 따라, 메모리 시스템 제어기를 포함하는 계산 시스템의 기능 블록도이다. 계산 시스템(300)은 인터페이스(306)을 통해 호스트 시스템(302)에 통신이 되도록 결합된 메모리 시스템(304)을 포함할 수 있다. 메모리 시스템(304)은 계산 시스템(300), 예를 들면, 하나 이상의 SSD들을 구비한 기업용 솔리드 스테이트 스토리지 기기에서 대량 데이터 저장 메모리 시스템으로서 사용될 수 있다. 메모리 시스템(304)은 예를 들면, 플러그-인 접속성을 가진, 계산 시스템(300)을 위한 외부, 혹은 휴대 메모리 시스템으로서 사용될 수 있다. 인터페이스(306)는 그 중에서도 USB, PCI, SATA/150, SATA/300, 또는 SATA/600 인터페이스와 같은, 케이블 또는 버스일 수 있다. 메모리 시스템(304)은 도 1의 메모리 시스템(104)과 유사할 수 있다.
메모리 시스템(304)은 물리 인터페이스(308), 예를 들면, 컨넥터와 다수의 스토리지 노드들(330-1,..., 330-N) 간에 통신하는 시스템 제어기 및 호스트 인터페이스(320)(system controller and host interface; SCHI)를 포함할 수 있다. 메모리 시스템 제어기(315)는 다수의 스토리지 노드들(330-1,..., 330-N)과 통신할 수 있고, 각각의 스토리지 노드는 예를 들면 메모리 장치들의 메모리 셀들을 동작, 예를 들면, 판독, 기입, 이동, 프로그램, 감지, 소거하기 위해 다수의 메모리 장치들(312-1,..., 312-N)을 구비한다. 이에 따라, 메모리 시스템 제어기(315)는 메모리 장치들(312-1,..., 312-N)과의 통신, 및 이에 저장된 데이터를 관리할 수 있다. 메모리 시스템 제어기(315)는 다른 개별적 성분들 뿐만 아니라, 하나 이상의 집적회로들을 이용하는 회로를 구비할 수 있다. 하나 이상의 실시예들에서, 메모리 시스템 제어기(315) 내 회로는 다수의 채널들에 걸친 액세스를 제어하기 위한 제어회로를 포함할 수 있고, 각각의 채널은 직렬 인터페이스, 예를 들면,(324-1,..., 324-N)을 구비하며, 각각의 직렬 인터페이스는 하나 이상의 스토리지 노드들(330-1,..., 330-N)과 통신하며, 각각의 스토리지 노드는 다수의 메모리 장치들(312-1,..., 312-N)을 구비한다. 이에 따라, 메모리 시스템 제어기(315)는 하나 이상의 특정 채널들을 통해 메모리 장치들(312-1,..., 312-N)과 선택적으로 통신할 수 있다.
각각의 메모리 장치(312-1,..., 312-N)는 다수의 메모리 셀들을 포함할 수 있다. 메모리 장치들(312-1,..., 312-N)은 다양한 유형들의 휘발성 혹은 비휘발성 메모리 어레이들, 예를 들면, 특히 NAND 플래시, DRAM을 사용하여 형성될 수 있다. 본 발명의 하나 이상의 실시예들에 따라, 메모리 장치들(312-1,..., 312-N)은 NAND 아키텍처, NOR 아키텍처, AND 아키텍처, 혹은 이외 어떤 다른 메모리 어레이 아키텍처 -이들 중 하나 이상은 조합하여 사용될 수도 있다- 로 구성되는 다수의 플로팅 게이트 플래시 메모리 셀들(floating gate flash memory cells)을 포함할 수 있다.
메모리 장치들(312-1,..., 312-N)은 이를테면 페이지, 블록, 플레인, 어레이, 또는 그외 그룹과 같은 특정 물리 혹은 논리 구성들을 제공하도록 구성될 수 있는 다수의 메모리 셀들을 포함할 수 있다. 여기에서 사용되는 한 페이지의 메모리 셀들은 한번에 프로그램될 수 있는 다수의 메모리 셀들을 의미한다. 예를 들면, 일부 메모리 어레이들은 한 블록의 메모리 셀들을 구성하는 다수의 페이지의 메모리 셀들을 포함할 수 있고, 한 블록은 한번에 소거될 수 있는 다수의 메모리 셀들을 말한다. 다수의 블록들은 메모리 셀들의 플레인 내에 포함될 수 있다. 다수의 플레인들의 메모리 셀들은 다이 상에 포함될 수 있다. 어레이는 하나 이상의 다이를 포함할 수 있다. 예로서, 제한없이, 128 GB 메모리 장치는 페이지당 4314 바이트의 데이터, 블록 당 128 페이지, 플레인당 2048 블록, 및 장치당 16 플레인을 포함할 수 있다.
SCHI(320)는 시스템 제어기(315)와 통신하는 호스트 인터페이스(314)를 포함할 수 있다. 시스템 제어기(315)는 물리-논리 매핑을 수행하게 구성된 로직(326)(고속 메모리를 포함함), "전송중의" 데이터 버퍼링을 하게 구성된 로직(327), 블록 관리, 예를 들면, 웨어 레벨링을 위해 구성된 로직(328), 및 다수의 직렬 인터페이스들(324-1,..., 324-N)을 포함할 수 있다. 다수의 직렬 인터페이스들(324-1,..., 324-N) 각각은 이하 도 4에 관련하여 더욱 기술되는 바와 같이 직렬 버스(334-1,..., 334-N)에 의해 다수의 스토리지 노드들(330-1,..., 330-N) 중 대응하는 하나 이상에 통신 되도록 결합된다.
호스트 시스템(302)과 메모리 시스템(304) 간의 통신 프로토콜은 특정 스토리지 노드(330-1,..., 330-N), 혹은 이 노드 상에 메모리 장치들, 예를 들면, 312-1,..., 312-N에 액세스하기 위해 사용되는 것과는 다를 수 있다. 메모리 시스템 제어기(315)는 호스트 시스템(302)로부터 수신된 명령들을 의도된 메모리 동작을 달성하기 위해 적합한 명령들로 변환하며, 그에 의해 호스트 시스템(302) 및 메모리 시스템(304) 간에 변환층(translation layer)을 제공할 수 있다. 또한, 메모리 시스템 제어기(315)는 예를 들면 데이터를 저장하고 인출하기 위해서 호스트 명령 시퀀스들 및 연관된 데이터, 및 기타 정보를 적합한 채널 명령 시퀀스들로 처리할 수 있다.
하나 이상의 실시예들에서, 그리고 도 3에 도시된 바와 같이, 스토리지 노드(330-1,..., 330-N)는 하나 이상의 메모리 장치들(312-1,..., 312-N) 및 노드 제어기(332-1,..., 332-N)를 포함할 수 있다. 하나 이상의 실시예들에서, 메모리 장치들(312-1,..., 312-N) 각각은 다수의 메모리 셀들을 갖는 칩일 수 있다. 그러나, 실시예들은 이것으로 제한되는 것은 아니다. 예를 들면, 여기에서 사용되는 바와 같이, 메모리 장치는 제어 입력들을 공유하며 하나 이상의 메모리 셀 유형들, 예를 들면, NAND 플래시를 사용하여 제조될 수 있는 다이, 어레이, 또는 그외 다른 그룹의 메모리 셀들일 수 있다. 제어 입력들은 일반적으로 어드레스 래치 인에이블(address latch enable; ALE), 칩 인에이블(chip enable; CE), 판독 인에이블(read enable; RE), 준비/비지(ready/busy; R/B), 기입 보호(write protect; WP), 및 핀들, 패드들 등과 같은 입력/출력(input/output; I/O) 연결들을 포함할 수 있다.
본 발명의 하나 이상의 실시예들에 따라, 스토리지 노드들(330-1,..., 330-N)은 지능형 NAND 스토리지 노드들(INSN들)일 수 있다. 특정 채널에 연관하여 단일 INSN이 도시되었을지라도, 본 발명의 실시예들은 이것으로 제한되는 것은 아니며, 예를 들면, 다수의 INSN들은 특정 시스템 제어기 채널에 연관될 수 있다. 예를 들면, 도 3에 관련하여 이하 더 논의되는 바와 같이, 하나 이상의 실시예들에서, 적어도 2개의 INSN들은 다수의 특정 채널들 각각에 연관된다.
각각의 INSN은 다수의 메모리 장치들(312-1,..., 312-N)에 통신이 되도록 결합된 노드 제어기(332-1,..., 332-N)를 포함할 수 있다. 메모리 장치들(312-1,..., 312-N)은 앞에서 기술된 바와 같이, 특정 물리적 또는 논리적 구성들, 이를테면 페이지, 블록, 플레인, 어레이, 혹은 그외 그룹을 제공하게 구성될 수 있는 다수의 메모리 셀들을 포함할 수 있다.
본 발명의 하나 이상의 실시예들에 따라, 노드 제어기(332-1,..., 332-N)는 개방 NAND 플래시 인터페이스(Open NAND Flash Interface; ONFi)(336-1,..., 336-N)에 의해 다수의 메모리 장치들(312-1,..., 312-N)에 통신이 되도록 결합될 수 있다. ONFi는 소비자 전자 장치들, 계산 플랫폼들, 및 산업용 시스템들에 NAND 플래시 메모리의 통합을 단순화하기 위해 의도된 NAND 플래시를 위한 특별한 인터페이스이다. ONFi는 NAND 장치들 간에 상호운용성을 용이하게 하며, 그에 의해 NAND-기반 제품들의 출시시간을 가속화할 수 있다. ONFi의 몇가지 특징들은 자체 식별, 명령 세트 표준화, 및 핀 아웃 표준화이다. NAND 자체 식별은 NAND 장치들이 메모리 레이아웃, 타이밍 지원, 및 인터리빙 어드레싱과 같은 향상된 특징들을 포함하는 자신들의 능력들을 호스트에 스스로 기술할 수 있게 한다. NAND용 명령 세트를 표준화하는 것은 벤더 전용의 최적화들을 위한 적응성을 제공하면서도, NAND 능력들의 장래에 개선을 위한 기반구조를 확립한다. 표준 핀 아웃을 정의하는 것은 새로운 NAND 장치들과의 보드 수준에서의 호환성을 증진시킨다.
본 발명의 하나 이상의 실시예들에 따라, 시스템 제어기(315)는 예를 들면 웨어 레벨링 -이것으로 제한되는 것은 아니다- 를 포함한, 블록 선택과 같은 블록 관리를 위해 구성된 로직(328)을 포함할 수 있다. 메모리 시스템(304) 내에서 메모리 블록 선택은 예를 들면, 물리 블록들이 기입되고 소거될 순서뿐만 아니라, 어느 물리 블록들에 데이터를 기입할지와 어느 물리 블록들을 소거할지를 판정하는 것을 포함할 수 있다. 메모리 시스템(304)에서 사용되는 메모리 셀들은 유한한 수의 기입-소거 사이클들로 제한될 수 있고, 이것은 메모리 시스템(304)의 수명을 결정할 수 있다. 따라서, 효율적 메모리 블록 관리는 메모리 시스템(304)이 다수의 프로그램 및/또는 소거 사이클들 후에 고장이 발생할 수 있기 때문에 메모리 시스템(304)의 수명을 증가시킬 수 있다.
시스템 제어기(210)가 다수의 메모리 장치들(212-1,..., 212-N) 각각을 위한 별도의 메모리 제어기 회로(218-1,..., 218-N)를 포함하는 도 2에 도시된 메모리 시스템(200)과 같은 종래의 메모리 시스템들과는 반대로, 본 발명의 하나 이상의 실시예들은 특정 채널에 연관된 메모리 장치들보다는, 메모리 장치들(312-1,..., 312-N)에 걸쳐 웨어 레벨링을 관리하게 구성된 중앙집중형 웨어 레벨링 로직(328)을 구비하는 메모리 시스템 제어기(315)를 포함한다. 웨어 레벨링을 중앙집중화함으로써, 웨어 레벨링은 메모리 시스템의 일부, 예를 들면 특정 채널에 걸쳐 행하기보다는 전체 메모리 시스템에 관련하여, 예를 들면 전체 메모리 시스템에 걸쳐 행해질 수 있다.
하나 이상의 실시예들에 따라, 웨어 레벨링을 관리하는 것은 INSN들 간에, 그리고 특정 INSN에 연관된 INSN 메모리 장치들 간에, 그리고 복수의 INSN들에 연관된 INSN 메모리 장치들 간에 마모(wear)의 차이들을 검출하는 것을 포함할 수 있다. 마모 차이들을 검출하는 것 외에도, 웨어 레벨링을 관리하는 것은 개개의 INSN 혹은 INSN 메모리 장치에서 한계 이상의 마모를 검출하는 것을 포함할 수 있다. 한계는 사전설정된 고정된 한계, 동적 한계, 혹은 이들의 조합일 수 있다.
웨어 레벨링 로직(328)은 웨어 레벨링을 관리하기 위한 기술들을 구현할 수 있다. 여기에서 사용되는 바와 같이, 웨어 레벨링을 관리하는 것은 불량 블록 관리를 포함한다. 이들 기술들은 데이터가 기입되는 메모리 장치들 간에 셀들을 순환(rotate)시키는 것을 포함할 수 있다. 또한, 웨어 레벨링은 다수의 무효 페이지들(즉, 다른 페이지에 재기입된 및/또는 무효 페이지들 상에 더 이상 필요하지 않은 데이터를 가진 페이지들)을 가진 블록들이 블록을 소거함으로써 재이용되는 가비지 수거(garbage collection)라고 하는 기술을 포함할 수 있다. 가비지 수거에는 데이터의 동적 또는 정적 특성을 고려하기 위해 메모리 장치들 간에 데이터를 재배열할 것이 수반된다. 웨어 레벨링 기술들에 포함된 가비지 수거는 특정 메모리 장치의 개개의 셀들의 마모율(wear rate)을 관리하는데 도움을 줄 수 있다. 이들 웨어 레벨링 기술들은 메모리 시스템(304) 상에 기입되는 데이터량을 제한하지 않으며, 이들은 드라이브의 성능에 영향을 미칠 수 있는 요인으로서 데이터 기입율 및 장치 상에 데이터가 기입되는 기간을 고려하지 않는다.
여러 실시예들에서, 웨어 레벨링은 블록을 재이용하기 위해 이동되는 유효 블록들의 량을 최소화하기 위한 동적 웨어 레벨링을 포함할 수 있다. 동적 웨어 레벨링에서, 가장 많은 량의 무효 페이지들을 가진 데이터 블록들은 재이용될 수 있다. 메모리 어레이 내 한 페이지 또는 한 블록의 셀들은 페이지 또는 블록으로부터의 유효 데이터를 제 1 위치에서 제 2 위치 또는 블록 위치로 이동시키고 제 1 페이지 또는 블록 위치를 소거함으로써 재이용될 수 있다. 유효 데이터는 요망되어 메모리 셀들 내 보존되어야 하는 데이터일 수 있고, 반면 무효 데이터는 더 이상 요망되지 않아 소거될 수 있는 데이터일 수 있다. 블록 내 총 무효 페이지들의 수에 대한 임계값은 블록이 재이용될 것인지를 판정하기 위해 설정될 수 있다. 특정 블록들은 임계값 이상의 다수의 무효 페이지들을 가진 블록들에 대해 블록 테이블을 조사함으로써 재이용될 수 있다. 블록 테이블은 메모리 셀들 내 데이터에 대해, 무엇보다도, 유형, 위치, 및 상태를 상세히 한 정보를 가질 수 있다.
정적 웨어 레벨링은 블록의 수명을 늘리기 위해서 고 소거 횟수를 갖는 블록들에 정적 데이터를 기입하는 것을 포함한다. 정적 웨어 레벨링에서, 정적 데이터를 저장하고 있는 블록들은 정적 데이터 및 저 소거 횟수를 가진 블록들이 재이용되도록 고 소거 횟수를 갖는 블록들과 교환될 수 있다. 고 소거 횟수를 가진 블록들은 이제 정적 데이터를 가지며, 따라서 이 블록에 대한 소거율을 감소시킨다.
일부 실시예들에서, 다수의 블록들은 메모리 장치들 간에 데이터를 기입하는 것에 연관된 기입 증폭량을 감소시키기 위해 예비 블록들로서 지정될 수 있다. 예비 블록은 데이터가 기입될 수 없는 블록으로서 지정될 수 있는 메모리 장치 내 블록일 수 있다. 기입 증폭(write amplification)은 데이터를 솔리드 스테이트 메모리 장치들에 기입할 때 일어나는 프로세스이다. 데이터를 메모리 시스템에 무작위로 기입할 때, 시스템 내 자유 공간에 대한 스캔이 행해진다. 메모리 시스템 내 자유 공간은 하나 이상의 메모리 장치들에서 프로그램되지 않은 개개의 셀들, 페이지들, 및/또는 다수 블록들의 메모리 셀들일 수 있다. 데이터를 기입할 충분한 자유 공간 이 있다면, 데이터는 메모리 시스템 내 자유 공간에 기입된다. 한 위치에 충분한 자유 공간이 없다면, 메모리 시스템 내 데이터는 메모리 시스템 내 이미 있는 데이터를 소거하고, 이동하고, 새로운 위치에 재기입하여 메모리 시스템 내 기입될 새로운 데이터에 대한 자유 공간을 남겨 둠으로써 재배열된다. 메모리 시스템 내 이전 데이터를 재배열하는 것은 새로운 데이터를 기입하기 위해 행해야 하는 메모리 시스템이 기입하는 양이 메모리 시스템 내 자유 공간양 및 메모리 시스템에 기입할 새로운 데이터의 크기에 기초하여 증폭되기 때문에 기입 증폭이라고 한다. 기입 증폭은 자유 공간으로서 지정되는 (즉, 정적 데이터가 기입되지 않을 공간) 메모리 시스템내 공간량을 증가시킴으로써 감소될 수 있고, 이에 따라 데이터가 덜 재배열되어야 할 것이기 때문에 기입되어야 하는 데이터량의 증폭이 덜 일어나게 한다.
여러 실시예들에서, 메모리 시스템(304)에 의해 수행되는 호스트 및/또는 사용자 트래픽 및/또는 프로그램/소거 사이클들은 메모리 시스템(304)의 성능을 개선하기 위해, 시스템 제어기(315) 내 중앙집중형 웨어 레벨링 로직(328)에 의해 모니터될 수 있다. 호스트 및/또는 사용자 트래픽 요청들은 메모리 시스템(304)에서 데이터를 판독 및/또는 데이터를 소거/기입하기 위해서, 시스템 제어기(315)를 통해 호스트 시스템 프로세서에 의해 행해질 수 있다. 프로그램 및/또는 소거 사이클들은 메모리 시스템(304) 내 블록들, 페이지들, 또는 그외 다른 그룹들의 메모리 셀들의 마모율 및 기대 수명을 판정하기 위해서, 모든 채널들, 예를 들면, 직렬 인터페이스들(324-1,..., 324-N)에 걸쳐, 모든 INSN들(330-1,..., 330-N)에 걸쳐, 및/또는 메모리 시스템(304)을 포함하는 INSN들의 메모리 장치들(312-1,..., 312-N)에 걸쳐, 중앙에서 모니터될 수 있다. 당업자는 특정 블록의 메모리 셀들은 유한한 회수로 소거되고 기입될 수 있을 뿐임을 알 것이다.
호스트 및/또는 사용자 트래픽 경향은 메모리 시스템(304)이 요망되는 동작 수명(예를 들면, 시간, 일, 주, 년, 등과 같은 기간) 동안 수행할 수 있도록 중앙집중형 웨어 레벨링 로직(328)에 의해 중앙에서 모니터링되고 변경될 수 있다. 중앙집중형 웨어 레벨링 로직(328)은 요망되는 동작 수명을 보증하기 위해서, 메모리 시스템(304)의 부분들에 의해 수행되는 프로그램 및/또는 소거 사이클 횟수를 모니터하고 제한할 수 있다. 또한, 중앙집중형 웨어 레벨링 로직(328)은 다수의 공간 블록들 및 메모리 시스템(304)의 요망되는 동작 수명이 주어진 드라이브에 대해 허용가능한 프로그램 및/또는 소거 사이클율을 계산하는 방법을 결정하기 위해서 특정 기간동안 수행되는 프로그램 및/또는 소거 사이클들의 회수를 모니터할 수 있다.
또한, 일부 실시예들에서, 메모리 시스템(304)의 메모리 장치들 내 예비 블록들의 수는 요망되는 기입 회수 IOPS에 대해 요망되는 동작 수명 동안 동작가능성을 보증하기 위해 제어될 수 있다. 예비 블록들의 퍼센티지는 메모리 시스템(304) 상에 프로그램되는 데이터의 유형에 대해 최적화될 수 있다. 정적 데이터(즉, 소거 및/또는 재기입됨이 없이 장기간 드라이브 상에 저장되는 데이터)를 가진 메모리 시스템(304)은 몇개의 프로그램 및/또는 소거 사이클들을 가진 데이터의 정적 특성에 기인하여 드라이브에서 블록들을 재이용할 필요성이 덜하기 때문에 낮은 퍼센티지의 예비 블록들을 가질 수 있다. 동적 데이터(즉, 더 빈번하게 프로그램 및/또는 소거되는 데이터)를 가진 메모리 시스템(304)에서는 메모리 장치에서 프로그램 및/또는 소거 사이클들을 수행하기 위해 블록들을 재이용해야 하는 것에 연관된 기입 증폭을 감소시키기 위해 더 큰 퍼센티지의 예비 블록들이 사용될 수 있다.
본 발명의 하나 이상의 실시예들에 따라, 시스템 제어기(315)는 물리-논리 주소 매핑(326), 예를 들면, 이들 간에 변환을 수행하게 구성된 로직을 포함할 수 있다. 예를 들면, 물리-논리 주소 매핑(physical to logical mapping) 로직(326)은 논리-물리 주소간 맵에 따라 프로그램되는 고속 메모리, 예를 들면, DRAM을 포함할 수 있다. 논리-물리 주소간 맵은 솔리드 스테이트 메모리 시스템, 혹은 특정 INSN 메모리 장치들, 예를 들면, 330-1,..., 330-N의 논리 블록 주소(logical block address; LBA)와 물리 블록 주소(physical block address; PBA) 간 상관(correlation)을 유지할 수 있다.
본 발명의 하나 이상의 실시예들에 따라, 도 4는 직렬로 통신이 되도록 결합된 다수의 지능형 NAND 스토리지 노드들을 포함하는 메모리 시스템의 기능 블록도이다. 하나 이상의 실시예들에서, 그리고 도 4에 도시된 바와 같이, 메모리 시스템 제어기(415)는 다수의 스토리지 노드들, 이를테면 지능형 NAND 스토리지 노드들(intelligent NAND storage nodes; INSN들), 예를 들면, 430-1A, 430-1B,..., 430-NA, 430-NB에 통신이 되도록 결합될 수 있다. 상기 INSN들은 예를 들면, 데이지 체인 배열(daisy chain arrangement)로 직렬로 결합될 수 있다. 시스템 제어기(415)는 다수의 직렬 인터페이스들, 예를 들면, 424-1,..., 424-N을 포함할 수 있다. 시스템 제어기(415)에 관한 기타 상세는 명확성을 위해 도 4에서 생략되었는데, 그러나 시스템 제어기(415)은 도 3에 시스템 제어기(315)와 유사할 수 있다. 다수의 직렬 인터페이스들, 예를 들면, 424-1,..., 424-N 각각은 도 3에 도시된 바와 같은 직렬 버스, 예를 들면 334-1,..., 334-N에 의해 다수의 스토리지 노드들, 예를 들면, 430-1A, 430-1B,..., 430-NA, 430-NB 중 대응하는 하나 이상에 통신이 되도록 결합된다.
본 발명의 하나 이상의 실시예들에 따라, 그리고 도 4에 도시된 바와 같이, 각각의 직렬 버스는 클럭 신호 라인, 예를 들면, 444-1,..., 444-N, 제 1 데이터 라인(D+/-), 예를 들면, 448-1,..., 448-N, 및 제 2 데이터 라인 (Q+/-), 예를 들면, 446-1,..., 446-N을 포함할 수 있다. 예를 들면, 제 1 데이터 라인(D+/-)(448-1,..., 448-N)은, 도 4에 도시된 방향 화살표들로 나타낸 바와 같이, 예를 들면, 시스템 제어기(415)에서 INSN들로 제 1 방향으로 데이터를 송신하도록 구성될 수 있고, 제 2 데이터 라인(Q+/-)(446-1,..., 446-N)은 INSN들에서 시스템 제어기(415)로 제 2 방향으로 데이터를 송신하도록 구성될 수 있다. 클럭에 따르며 래치되어 데이터가 전송되는 직렬 버스의 한 특정한 구현이 도 4에 도시되었지만, 발명의 실시예들은 도 4에 도시된 특정 구현으로 제한되지 않으며, 직렬 통신들은 다른 구성들로 구현될 수도 있다.
하나 이상의 실시예들에서, 각각의 INSN은 특정 채널에 대응하며 각각의 특정 채널의 직렬 버스에 통신이 되도록 결합되는 버스 관리 모듈을 포함할 수 있다. 예를 들면, 도 4에 도시된 실시예에서, 채널 1에 대응하는 버스 관리 모듈들(442-1A, 442-1B)은 통신이 되도록 채널 1의 직렬 버스에 결합되는데, 예를 들면, 각각의 신호 라인들(444-1, 446-1, 448-1)은 채널 1에 연관된다. 유사하게, 버스 관리 모듈들(442-NA, 442-NB)은 채널 N에 대응하며 채널 N의 직렬 버스에 통신이 되도록 결합되는데, 예를 들면, 각각의 신호 라인들(444-N, 446-N, 448-N)은 채널 N에 연관된다. 버스 관리 모듈은 특정 채널에 연관된 복수의 INSN들을 상호연결하는 클럭된 직렬 버스(clocked serial bus)를 제어하도록 구성된다. 노드 제어기, 예를 들면, 채널 1에 대응하는 432-1A, 432-1B, 등,..., 채널 N에 대응하는 432-NA, 432-NB, 등은 버스 관리 모듈, 예를 들면, 채널 1에 대응하는 442-1A, 442-1B, 등,..., 채널 N에 대응하는 442-NA, 442-NB, 등과 다수의 메모리 장치들, 예를 들면, 채널 1에 대응하는 412-1A1, 412-1A2, 412-1B1, 412-1B2, 등.,..., 채널 N에 대응하는 412-NA1, 412-NA2, 412-NB1, 412-NB2, 등 간에 통신이 되도록 결합될 수 있다.
메모리 장치들, 예를 들면, 채널 1에 대응하는 412-1A1, 412-1A2, 412-1B1, 412-1B2,..., 채널 N에 대응하는 412-NA1, 412-NA2, 412-NB1, 412-NB2, 등은 페이지, 블록, 플레인, 어레이, 또는 다른 그룹 과 같은 특정 물리적 또는 논리적 구성들을 제공하도록 구성될 수 있는 다수의 메모리 셀들을 포함할 수 있다. 하나 이상의 실시예들에 따라, INSN들은 각각 멀티칩 패키지, 예를 들면, 440-1A, 440-1B,..., 440-NA, 440-NB로서 구성될 수 있다. 일부 실시예들에서, 멀티칩 패키지는 데이터, 제어, 파워, 및 접지 신호들을 위한 20 핀 미만을 가질 수 있다. 예를 들면, 하나 이상의 실시예들의 멀티칩 패키지는 도 4에 도시된 바와 같이, 데이터 및 제어 신호들을 위한 3개(혹은 더 적은) 핀들을 가질 수 있다.
도 4에 도시된 바와 같이, 그리고 본 발명의 하나 이상의 실시예들에 따라, 복수의 INSN들, 예를 들면, 430-1A, 430-1B,..., 430-NA, 430-NB은 특정 직렬 버스에 통신이 되도록 결합될 수 있고, 이에 따라 예를 들면, 다수의 직렬 인터페이스들, 예를 들면, 424-1,..., 424-N의 특정 인터페이스, 예를 들면 채널에 연관된다. 일부 실시예들에서, 복수의 INSN들은 각각의 채널에 연관될 수 있는데, 예를 들면, 각각의 채널에 대응하는 직렬 버스에 통신이 되도록 결합될 수 있다.
하나 이상의 실시예들에 따라, 복수의 INSN들, 예를 들면, 430-1A, 430-1B,..., 430-NA, 430-NB은 다수의 직렬 메모리 인터페이스들 중 특정 인터페이스에 관련하여 데이지 체인 배열로 특정 직렬 버스에 통신이 되도록 결합될 수 있다. 2개의 INSN들이 각각의 채널의 직렬 버스에 통신이 되도록 결합된 것으로 도 4에 도시되었을지라도, 본 발명의 실시예들은 이 수량의 INSN들로 제한되는 것은 아니며, 더 많은 혹은 더 적은 수(없는 것을 포함하여)의 INSN들은 특정 직렬 버스에 통신이 되도록 결합될 수 있다. 또한, 본 발명의 실시예들은 동일 수량의 INSN들이 각각의 채널의 직렬 버스에 통신이 되도록 결합되게 하는 것으로 제한되지 않으며, 특정 직렬 버스 상에 INSN들의 수는 또 다른 특정 직렬 버스 상에 INSN들보다 더 많거나 적을 수도 있다.
도 5은 본 발명의 하나 이상의 실시예들에 따라 병렬로 통신이 되도록 결합되는 다수의 지능형 NAND 스토리지 노드들을 포함하는 메모리 시스템의 기능 블록도이다. 하나 이상의 실시예들에서, 그리고 도 5에 도시된 바와 같이, 메모리 시스템 제어기(515)는 이를테면 지능형 NAND 스토리지 노드들 (INSN들), 예를 들면, 530-1A, 530-1B, 530-1C와 같은 다수의 스토리지 노드들에 통신이 되도록 결합될 수 있다. 시스템 제어기(515)는 동기 통신들을 위한 다수의 인터페이스들, 예를 들면, 524-1을 포함할 수 있다. 시스템 제어기(515)에 관한 다른 상세는 명확성을 위해 도 5로부터 생략된다. 단지 한 채널만이 도 5에 도시되었지만, 본 발명의 실시예들은 이것으로 제한되는 것은 아니며, 메모리 시스템 제어기(515)는 동기 통신들을 위해 구성된 추가의 채널들을 포함할 수 있고 추가된 수의 INSN들, 및/또는 추가된 채널들은 다수의 추가된 INSN들과 통신하도록 구성된다.
다수의 인터페이스들 각각, 예를 들면, 524-1은 동기 버스, 예를 들면, 병렬 로컬 버스에 의해 다수의 스토리지 노드들 중 대응하는 하나 이상, 예를 들면, 530-1A, 530-1B, 530-1C에 통신이 되도록 결합될 수 있다. 스토리지 노드들은 병렬로 통신이 되도록 결합될 수 있다. 예를 들면, 제 1 수의 INSN들, 예를 들면, 530-1A, 530-1B, 530-1C는 제 1 동기 인터페이스(synchronous interface)(524-1)에 병렬로 통신이 되도록 결합될 수 있고, 또 다른 수의 INSN들(명확성을 위해 도 5에 도시되지 않음)은 하나 이상의 추가된 채널 동기 인터페이스들에 병렬로 통신이 되도록 결합될 수 있다. 본 발명의 실시예들은 임의의 특정 수량의 채널들로 제한되는 것은 아니며, 하나 이상, 예를 들면, N개의 채널들을 포함할 수 있고, 각각은 이에 통신이 되도록 결합되게 이에 제로 혹은 그 이상의 INSN들을 가지며, 예를 들면, 한 특정 채널에 대응하는 INSN들은 병렬로 배열된다.
본 발명의 하나 이상의 실시예들에 따라, 그리고 도 5에 도시된 바와 같이, 하나 이상의 INSN들은 병렬 로컬 버스를 통해 각각의 동기 인터페이스에 통신이 되도록 결합될 수 있다. 병렬 로컬 버스는 동기 버스일 수 있고, 클럭 신호 라인(clock; CLK), 예를 들면, 544-1, 제 1 데이터 라인(Q[Y:0]), 예를 들면, 546-1, 및 제 2 데이터 라인(D[X:0]), 예를 들면, 548-1을 포함할 수 있다. 예를 들면, 도 5에 도시된 방향 화살표로 나타낸 바와 같이, 제 1 데이터 라인(Q[Y:0])(546-1)은 예를 들면 INSN들에서 시스템 제어기(515)로 제 1 방향으로 데이터를 송신하도록 구성될 수 있고, 제 2 데이터 라인(D[X:0])(548-1)은 시스템 제어기(515)에서 INSN들로 제 2 방향으로 데이터를 송신하도록 구성될 수 있다. 제 1 데이터 라인(Q[Y:0])은 정보의 Y+1 데이터 비트의 폭을 갖도록 구성될 수 있고, 제 2 데이터 라인(D[X:0])은 정보의 X+1 데이터 비트의 폭을 갖도록 구성될 수 있다. 클럭에 따르며 래치되어 데이터가 전송되는 동기 버스의 한 특정 구현이 도 5에 도시되었지만, 본 발명의 실시예들은 도 5에 도시된 특정 구별으로 제한되지 않으며, INSN들에 병렬 통신들은 다른 구성들로, 혹은 다른 통신 프로토콜들을 사용하여 구현될 수 있다.
하나 이상의 실시예들에서, 각각의 INSN은 특정 채널에 대응하며 각각의 특정 채널의 동기 버스에 통신이 되도록 결합되는 버스 관리 모듈을 포함할 수 있다. 예를 들면, 도 5에 도시된 실시예에서, 채널 1에 대응하여, 버스 관리 모듈들(542-1A, 542-1B, 542-1C)은 채널 1의 병렬 로컬 버스, 예를 들면, 신호 라인들(544-1, 546-1, 548-1)에 통신이 되도록 결합된다. 버스 관리 모듈은 특정 채널, 예를 들면, 병렬 로컬 버스에 연관된 복수의 INSN들을 상호연결하는 클럭사용 동기 버스를 제어하도록 구성된다. 특정 채널 1에 대응하는 노드 제어기, 예를 들면, 532-1A, 532-1B, 532-1C는 각각의 버스 관리 모듈, 예를 들면, 542-1A, 542-1B, 542-1C 간에 통신이 되도록 결합될 수 있다.
채널 1에 대응하는 메모리 장치들, 예를 들면, INSN 530-1A에 대응하는 512-1A1 및 512-1A2, INSN 530-1B에 대응하는 512-1B1 및 512-1B2, 및 INSN 530-1C에 대응하는 512-1C1 및 512-1C2은 페이지, 블록, 플레인, 어레이, 또는 다른 그룹과 같은 특정 물리 또는 논리적 구성들을 제공하도록 구성될 수 있는 다수의 메모리 셀들을 포함할 수 있다. 하나 이상의 실시예들에 따라, INSN들은 각각 멀티칩 패키지, 예를 들면, 540-1A, 540-1B, 540-1C로서 구성될 수 있다. 일부 실시예들에서, 멀티칩 패키지는 데이터, 제어, 파워, 및 접지 신호들을 위한 20 핀 미만을 가질 수 있다.
도 5에 도시된 바와 같이, 그리고 본 발명의 하나 이상의 실시예들에 따라, 복수의 INSN들, 예를 들면, 530-1A, 530-1B, 530-1C은 통신이 되도록 특정 동기 버스에 결합될 수 있고, 이에 따라, 예를 들면 특정 채널에 대응하여 다수의 인터페이스들 중 특정한 인터페이스, 예를 들면, 524-1에 연관된다. 일부 실시예들에서, 복수의 INSN들은 특정 채널에 연관될 수 있는데, 예를 들면 각각의 채널에 대응하는 병렬 로컬 버스에 통신이 되도록 결합될 수 있다. 일부 실시예들에서, 한 INSN은 특정 채널에 연관될 수 있는데, 예를 들면 각각의 채널에 대응하는 병렬 로컬 버스에 통신이 되도록 결합될 수 있다. 일부 실시예들에서, 어떠한 INSN은 특정 채널에 연관되지 않는데, 예를 들면, 각각의 채널에 대응하는 병렬 로컬 버스에 통신이 되도록 결합되지 않는다. 또한, 본 발명의 실시예들은 특정 채널에 통신이 되도록 결합되는 동일 수량의 INSN들을 갖는 것으로 제한되지 않으며 특정 채널 상에 INSN들 의 수는 또 다른 특정 채널 상에 INSN들의 수보다 많거나 적을 수 있다.
도 6은 본 발명의 하나 이상의 실시예들에 따라, 병렬로 통신이 되도록 결합된 다수의 지능형 NAND 스토리지 노드들과 직렬로 통신이 되도록 결합된 적어도 한 지능형 NAND 스토리지 노드들을 포함하는 메모리 시스템의 기능 블록도이다. 하나 이상의 실시예들에서, 그리고 도 6에 도시된 바와 같이, 메모리 시스템 제어기(615)는 이를테면 지능형 NAND 스토리지 노드들(INSN들), 예를 들면, 630-1A, 630-1B, 630-NB와 같은 다수의 스토리지 노드들에 통신이 되도록 결합될 수 있다. 본 발명의 실시예들은 임의의 특정한 수의 채널들로 제한되지 않으며, 하나 이상, 예를 들면, N개의 채널들을 포함할 수 있고, 그 각각은 이에 통신이 되도록 결합된 제로 또는 그 이상의 INSN들을 가지며, 예를 들면, 특정 채널에 대응하는 INSN들은 이에 직렬 및 병렬 통신 경로들 둘 다를 포함하도록 구성된다.
시스템 제어기(615)는 직렬 통신들을 위해 구성된 다수의 인터페이스들, 예를 들면, 624-1을 포함할 수 있다. 시스템 제어기(615)에 관한 다른 상세는 명확성을 위해 도 6으로부터 생략되었다. 단지 한 채널만이 도 6에 도시되었으나, 본 발명의 실시예들은 이것으로 제한되는 것은 아니며, 메모리 시스템 제어기(615)는 예를 들면, 도 4에 도시된 바와 같이, 추가된 다수의 INSN들과 직렬 통신들을 위해 구성된 추가의 채널들을 포함할 수 있다. 또한, 시스템 제어기(615)는 예를 들면 도 5에 도시된 바와 같이 다수의 추가된 INSN들과의 동기 병렬 통신들을 위한 추가의 채널들을 포함할 수 있고, 및/또는 예를 들면, 도 6에 도시된 바와 같이, 다수의 추가된 INSN들과의 동기 직렬 통신들을 위한 추가의 채널들을 포함할 수 있다.
도 6은 다수의 인터페이스들, 예를 들면, 624-1이 직렬 버스에 의해 다수의 스토리지 노드들중 대응하는 하나 이상, 예를 들면, INSN 630-1A에 통신이 되도록 결합될 수 있음을 도시한 것이다. 도 6이 인터페이스(624-1)에 직렬로 통신이 되도록 결합된 한 INSN, 예를 들면, 630-1A을 보이고 있을지라도, 본 발명의 실시예들은 이것으로 제한되는 것은 아니며, 더 많은 혹은 더 적은 직렬로 결합된 INSN들을 포함할 수 있다. 제로 내지 많은 추가의 INSN들, 예를 들면, 630-1B,..., 630-MB이 하나 이상의 직렬로-연결된 INSN들 중 일부 또는 모두, 예를 들면, 630-1A에 병렬로 통신이 되도록 결합될 수 있다. 예를 들면 도 6에 도시된 바와 같이, 제 1 다수의 INSN들, 예를 들면, 630-1B,..., 630-MB은 INSN, 예를 들면, 630-1A에 병렬로 통신이 되도록 결합될 수 있다.
본 발명의 하나 이상의 실시예들에 따라, 그리고 도 6에 도시된 바와 같이, 하나 이상의 INSN들, 예를 들면, 630-1A는 호스트 버스를 통해 각각의 직렬 인터페이스, 예를 들면, 624-1에 통신이 되도록 결합될 수 있다. 호스트 버스는 직렬 버스일 수 있고, 클럭 신호 라인(CLK), 예를 들면, 644-1, 제 1 데이터 라인(Q+/-), 예를 들면, 646-1, 및 제 2 데이터 라인(D+/-), 예를 들면, 648-1을 포함할 수 있다. 예를 들어, 제 1 데이터 라인 (Q+/-), 예를 들면, 646-1은, 도 6에 방향 화살표로 나타낸 바와 같이, 예를 들면, 직렬-결합 INSN(630-1A)에서 시스템 제어기(615)로 제 1 방향으로 데이터를 송신하도록 구성될 수 있고, 제 2 데이터 라인 (D+/-)(648-1)은 예를 들면, 시스템 제어기(615)에서 직렬-결합 INSN들, 예를 들면, 630-1A로 제 2 방향으로 데이터를 송신하도록 구성될 수 있다. 클럭에 따라 래치되어 데이터가 전송되는 직렬 버스의 한 특정 구현이 도 6에 도시되었지만, 본 발명의 실시예들은 도 6에 도시된 특정 구현으로 제한되지 않으며, 직렬-결합 INSN들, 예를 들면, 630-1A에 직렬 통신들은 다른 구성들로, 혹은 다른 통신 프로토콜들을 사용하여 구현될 수 있다.
본 발명의 하나 이상의 실시예들에 따라, 그리고 도 6에 도시된 바와 같이, 특정 직렬 인터페이스에 대응하는 하나 이상의 직렬-결합 INSN들, 예를 들면, 630-1A는 병렬 로컬 버스를 통해 추가된 수의 INSN들, 예를 들면, 630-1B,..., 630-MB에 통신이 되도록 결합될 수 있다. 추가된 수의 INSN들, 예를 들면, 630-1B,..., 630-MB는 병렬 로컬 버스에 병렬로 통신이 되도록 결합될 수 있다.
병렬 로컬 버스는 동기 버스, 일 수 있고, 클럭 신호 라인(CLK), 예를 들면, 645-1, 제 1 데이터 라인(Q[Y:0]), 예를 들면, 647-1, 및 제 2 데이터 라인(D[X:0]), 예를 들면, 649-1을 포함할 수 있다. 예를 들면, 도 6에 방향 화살표나 나타낸 바와 같이, 제 1 데이터 라인(Q[Y:0])(647-1)은 직렬-결합 INSN, 예를 들면, 630-1A에의 방향으로 데이터를 송신하게 구성될 수 있고, 제 2 데이터 라인(D[X:0])(649-1)은 직렬-결합 INSN, 예를 들면, 630-1A로부터 데이터를 송신하게 구성될 수 있다. 동기로 클럭에 따라 래치되어 데이터가 전송되는 병렬 로컬 버스의 한 특정 구현이 도 6에 도시되었지만, 본 발명의 실시예들은 도 6에 도시된 특정 구현으로 제한되지 않으며, 직렬-결합 INSN과 이에 병렬로 통신이 되도록 결합된 하나 이상의 INSN들 간에 병렬 로컬 통신들은 다른 구성들로, 혹은 다른 통신 프로토콜들을 사용하여 구현될 수 있다.
하나 이상의 실시예들에서, INSN은 버스 관리 모듈, 예를 들면, 643-1A, 643-1B,..., 643-MB를 포함할 수 있다. 예를 들면, 도 6에 도시된 실시예에서, 버스 관리 모듈(643-1A)은 채널 1의 직렬 호스트 버스, 예를 들면, 신호 라인들( 644-1, 646-1, 648-1), 및 채널 1에 연관된 동기 병렬 로컬 버스, 예를 들면, 신호 라인들(645-1, 647-1, 649-1)에 통신이 되도록 결합된다. 버스 관리 모듈들(643-1B,..., 643-MB)은 채널 1에 연관된 병렬 로컬 버스, 예를 들면, 신호 라인들(645-1, 647-1, 649-1)에 통신이 되도록 결합된다. 버스 관리 모듈은 이에 연결된 클럭사용 직렬 호스트 버스 및/또는 클럭사용 동기 병렬 로컬 버스를 제어하게 구성될 수 있다.
미디어 제어기(media controller), 예를 들면, 632-1A, 632-1B,..., 632-MB는 각각의 버스 관리 모듈, 예를 들면, 643-1A, 643-1B,..., 643-MB와 채널 1에 대응하여, 각각의 다수의 메모리 장치들, 예를 들면, 612-1A1, 612-1A2, 612-1B1, 612-1B2,..., 612-MB1, 612-MB2 간에 통신이 되도록 결합될 수 있다.
채널 1에 대응하여 메모리 장치들, 예를 들면, 612-1A1, 612-1A2, 612-1B1, 612-1B2,..., 612-MB1, 612-MB2는 이를테면 페이지, 블록, 플레인, 어레이, 혹은 다른 그룹과 같은 특정 물리 또는 논리 구성들을 제공하게 구성될 수 있는 다수의 메모리 셀들을 포함할 수 있다. 하나 이상의 실시예들에 따라, INSN들은 각각이 멀티칩 패키지, 예를 들면, 640-1A, 640-1B,..., 640-MB로서 구성된다. 일부 실시예들에서, 멀티칩 패키지는 데이터, 제어, 파워, 및 접지 신호들을 위한 20 핀 미만을 가질 수 있다. 예를 들면, 하나 이상의 실시예들의 멀티칩 패키지는 도 6에 도시된 바와 같이, 호스트 버스를 위해 데이터 및 제어 신호들을 위한 3개(혹은 더 적은) 핀들 및 병렬 로컬 버스를 위한 추가의 핀들을 가질 수 있다.
다수의 INSN들, 예를 들면, 630-1B,..., 630-MB가 도 6에서 직렬-결합 INSN, 예를 들면, 630-1A에 병렬로 통신이 되도록 결합된 것으로 도시되었을지라도, 본 발명의 실시예들은 각각 이들 개수들의 직렬-결합 및 병렬-결합 INSN들로 제한되는 것은 아니다. 더 많은, 혹은 더 적은 INSN들이 특정 직렬-결합 INSN, 예를 들면, 630-1A에 대응하여 병렬로 통신이 되도록 결합될 수 있다. 또한, 본 발명의 실시예들은 각 채널에 통신이 되도록 결합된 동일 개수의 직렬-결합 INSN들 및/또는 병렬-결합 INSN들을 갖는 것으로 제한되지 않으며, 특정 채널 상에 직렬-결합 INSN들 및/또는 병렬-결합 INSN들의 수는 또 다른 특정 채널 상에 각각의 직렬-결합 INSN들 및/또는 병렬-결합 INSN들의 수보다 많거나 적을 수 있다.
도 7은 본 발명의 하나 이상의 실시예들에 따라 지능형 NAND 스토리지 노드(INSN)의 기능 블록도이다. INSN(730)은 도 6에 도시된 INSN들 예를 들면, 630-1A, 630-1B, 630-1C와 유사할 수 있다. INSN(730)은 제어 회로(731), 예를 들면, 버스 관리자(743) 및 미디어 제어기(732)를 포함할 수 있는 제어기를 포함할 수 있다. 미디어 제어기(732)는 도 6에 도시된 INSN들 내에 제어기들, 예를 들면, 632-1A, 632-1B, 632-1C과 유사할 수 있다.
버스 관리자(743)는 호스트 버스와 인터페이스하는 PCle 부분(741), 예를 들면, 클럭 신호 라인(CLK)(744)(도 6에 도시된 클럭 신호 라인(644-1)과 유사할 수 있는), 제 1 데이터 라인(Q+/-)(746)(도 6에 도시된제 1 데이터 라인(646-1)과 유사할 수 있는), 및 제 2 데이터 라인(D+/-)(748)(도 6에 도시된 제 2 데이터 라인(648-1)과 유사할 수 있는)을 포함할 수 있다. 또한, 버스 관리자(743)는 로컬 버스와 인터페이스하는 로컬 버스 부분(743), 예를 들면, 클럭 신호 라인(CLK)(745), 제 1 데이터 라인(Q[X:0])(747), 및 제 2 데이터 라인(D[X:0])(749)을 포함할 수 있다. 당업자가 도 7로부터 알게 되는 바와 같이, 제 1 데이터 라인(Q)은 Y+1 데이터 비트 정보의 폭을 갖게 구성될 수 있고, 제 2 데이터 라인(D)은 X+1 데이터 비트 정보의 폭을 갖게 구성될 수 있다.
하나 이상의 실시예들에 따라, 메모리의 하나 이상의 채널들은 미디어 제어기(732), 에 통신이 되도록 결합될 수 있고, 각각의 채널은 채널당 16개까지의 NAND, 예를 들면, 712-1, 712-2을 포함한다. 다른 유형들, 수량들 또는 구성들의 메모리 장치들이 본 발명의 실시예들에 의해 고찰되며, 채널들의 수는 도 7에 도시된 2개의 채널들보다 많거나 적을 수 있다.
결론
본 발명은 메모리 시스템 제어기를 위한 방법들 및 장치들을 포함한다. 하나 이상의 실시예들에서, 메모리 시스템 제어기는 시스템 제어기에 통신이 되도록 결합된 호스트 인터페이스를 포함한다. 시스템 제어기는 다수의 메모리 인터페이스들을 구비하며, 다수의 메모리 인터페이스들에 통신이 되도록 결합된 복수의 지능형 스토리지 노드들을 제어하게 구성된다. 시스템 제어기는 물리 메모리 주소와 논리 메모리 주소간에 매핑하게 구성된 로직, 및 복수의 지능형 스토리지 노드들에 걸친 웨어 레벨을 관리하게 구성된 로직을 포함한다.
본 발명의 상세한 설명에서, 이의 일부를 이루며 본 발명의 하나 이상의 실시예들이 어떻게 실시될 수 있는가를 예시로서 도시한 동반된 도면들이 참조되었다. 이들 실시예들은 당업자들이 본 발명의 실시예를 실시할 수 있게 충분히 상세히 기술되었으며, 다른 실시예들이 이용될 수도 있다는 것과 본 발명의 범위 내에서 프로세스, 전기적, 또는 구조적 변경들이 행해질 수 있음이 이해될 것이다.
여기에서 사용되는 바와 같이, 도면들에서 특히 참조부호에 관련하여, "N", "M", "X", 및 "Y"로 나타낸 것은 이와 같이 표시된 다수의 특정한 특징이 본 발명의 하나 이상의 실시예들에 포함될 수 있음을 나타낸다. 알게 되는 바와 같이, 여기에 여러 실시예들에 보인 요소들은 본 발명의 추가의 다수의 실시예들을 제공하기 위해서 추가되고, 교환되고, 또는 제거될 수 있다. 또한, 알게 되는 바와 같이, 도면들에서 제공된 요소들의 부분 및 상대적 스케일은 본 발명의 실시예들을 예시하기 위한 것이며 제한하려고 취해진 것이 아니다.
제 1 요소가 다른 요소 "에 연결된" 혹은 "에 결합된"이라 언급될 때, 제 1 요소는 2개의 요소들 중 다른 요소에 물리적으로 부착될 수 있음이 이해될 것이다. 반대로, 요소들이 "에 통신이 되도록 결합된"이라고 언급될 때, 요소들은 서로 통신됨을 알 것이다.
요소가 다른 요소 "상에", "에 연결된" 혹은 "에 결합된"이라 언급될 때, 이것은 직접 다른 요소 혹은 층 상에, 혹은 이에 연결되거나, 이에 결합될 수 있고 혹은 개재된 요소들 혹은 층들이 있을 수 있음이 이해될 것이다. 반대로, 요소가 다른 요소 혹은 층 "상에 직접", "에 직접 연결" 혹은 "에 직접 결합"되는 것으로 언급될 때, 개재되는 요소들 혹은 층들은 없다. 여기에서 사용되는 바와 같이, "및/또는"이라는 용어는 연관된 나열된 항목들 중 하나 이상의 어느 하나 및 모든 조합들을 포함한다.
제 1, 제 2, 등의 용어들이 여기에서 다양한 요소들, 성분들, 영역들, 층들, 및 부분들을 기술하기 위해 사용될 수 있을지라도, 이들 요소들, 성분들, 영역들, 배선라인들, 층들, 및 부분들은 이들 용어들에 의해 제한되는 것은 아님을 알 것이다. 이들 용어들은 단지 한 요소, 성분, 영역, 배선라인, 층 혹은 부분을 다른 영역, 층, 혹은 부분과 구별하기 위해 사용될 뿐이다. 따라서, 이하 논의되는 제 1 요소, 성분, 영역, 배선라인, 층 혹은 부분은 본 발명의 교시되는 범위 내에서 제 2 요소, 성분, 영역, 배선라인, 층, 혹은 부분이라는 용어가 사용될 수도 있을 것이다.
이를테면 "밑", "아래", "하부", "위", "상측" 등과 같은 공간적 상대적 용어들은 여기에서는 공간 내 놓이는 절대적 방위보다는 도면들에서 도시된 바와 같은 다른 요소(들) 혹은 특징(들)에 대한 한 요소 혹은 특징의 관계를 기술하기 위해 설명을 용이하게 위해 사용된다. 공간적인 상대적 용어들은 도면들에 도시된 방위 외에도 사용 혹은 동작시 장치의 서로 다른 방위들을 포괄하기 위한 것임을 알 것이다. 예를 들어, 도면들에서 장치가 뒤집어 진다면, 다른 요소들 혹은 특징들 "아래" 혹은 "밑에"로서 기술된 요소들은 다른 요소들 혹은 특징들 "위"에 놓이는 방위가 될 것이다. 따라서, "아래"라는 용어의 예는 위 및 아래라는 방위 둘 다를 포괄할 수 있다. 장치는 다른 방위에 놓여질 수도 있는데(90도 회전되거나 다른 방위들에) 여기에서 사용되는 공간적 상대적 설명은 그에 따라 해석될 수 있다.
여기에서 사용되는 용어는 특정 실시예들을 설명할 목적을 위한 것일 뿐이며 개시된 바를 제한하려는 것이 아니다. 여기에서 사용되는 바와 같이, 문맥이 다른 것을 명학히 나타내지 않는 한 단수 형태들은 복수 형태도 포함하게 한 것이다. "포함하다"라는 용어가 이 명세서에서 사용될 때 이 용어는 언급된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 성분들의 존재를 명시하는 것이며 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 성분들 및/또는 이들의 그룹들의 존재 혹은 이들의 추가를 배제하는 것은 아님을 알 것이다.
달리 정의되지 않는 한 여기에서 사용되는 모든 용어들(기술적 및 과학용어들 포함하여)은 본 발명이 관련된 당업자가 일반적으로 이해하는 바와 동일한 의미를 갖는다. 또한, 일반적으로 사용되는 사전들에 정의된 것들과 같은 용어들은 관련 기술 및 본 발명의 맥락에서 이들의 의미와 일관된 의미를 갖는 것으로서 해석되어야 하며, 이상적인 혹은 지나치게 형식적 의미로 여기에 분명하게 정의되지 않는 한 이러한 의미로 해석되지 않아야 함을 알 것이다.
본 발명의 실시예들은 본 발명의 이상적인 실시예들을 개략적으로 도시한 기능 블록도를 참조로 여기에 기술된다. 이러하기 때문에 예를 들어 제조 기술들 및 공차들의 결과로서 여기 도시된 바들의 형상들로부터 변동들이 예상될 것이다. 따라서, 본 발명의 실시예들은 여기에 도시된 영역들의 특정 형상들로 제한되는 것으로 해석되는 것이 아니라 예를 들어 제조에 기인하여 나타나는 형상들의 변화들도 포함하는 것으로 해석되어야 한다. 예를 들어, 평탄으로서 예시 또는 기술된 영역은 전형적으로 기복이 있거나 비선형 특징들을 가질 수도 있다. 또한, 도시된 예리한 각들은 둥글 수도 있다. 따라서, 도면들에 도시된 영역들은 본질적으로 개략적인 것이고 이들의 형상들 및 상대적 크기들, 두께들 등은 영역의 정밀한 형상/크기/두께를 예시하려는 것이 아니며 본 발명의 범위를 제한하려는 것이 아니다.
특정한 실시예들이 여기에 도시되고 기술되었을지라도, 당업자들은 동일 결과들을 달성하기 위해 계산된 구성이 여기 도시된 구체적 실시예들을 대체할 수 있음을 알 것이다. 본 개시된 바는 본 발명의 하나 이상의 실시예들의 개조 혹은 변형들도 포함한다. 위에 기술된 바는 제약적 형태가 아니라 예시적 형태로 행해졌음을 알아야 한다. 위에 실시예들의 조합, 및 특정하게 여기 기술되지 않은 다른 실시예들의 의 조합은 위에 기술된 바를 검토하였을 때 당업자들에게 명백할 것이다. 본 발명의 하나 이상의 실시예들의 범위는 위에 구조들 및 방법들이 사용되는 다른 적용들을 포함한다. 그러므로, 본 발명의 하나 이상의 실시예들의 범위는 이러한 청구항들이 부여하는 일범위의 전체 등가물들과 더불어 첨부된 청구항들에 관련하여 판정되어야 한다.
전술한 상세한 설명에서, 일부 특징들은 효율적 설명을 위해 단일 실시예에 그룹화하였다. 개시된 이 방법은 본 발명의 개시된 실시예들이 각 청구항에 분명하게 인용된 것보다 더 많은 특징들을 사용해야 하는 의도를 반영하는 것으로 해석되지 않아야 한다. 그보다는, 다음 청구항들이 반영하는 바와 같이, 발명의 요체는 개시된 단일 실시예의 모든 특징들 미만의 특징들에 놓여 있다. 따라서, 다음 청구항들은 상세한 설명에 포함되고 각 청구항은 자체가 별도의 실시예를 구성한다.

Claims (42)

  1. 메모리 시스템 제어기에 있어서,
    호스트 인터페이스; 및
    상기 호스트 인터페이스에 통신이 되도록 결합되고, 다수의 메모리 인터페이스들을 구비하는 시스템 제어기를 포함하며,
    상기 시스템 제어기는 상기 다수의 메모리 인터페이스들에 통신이 되도록 결합된 복수의 지능형 NAND 스토리지 노드들(INSNs)을 제어하도록 구성되고, 상기 시스템 제어기는 물리 및 논리 메모리 주소들 간을 매핑하도록 구성된 로직, 및 상기 복수의 INSN들에 걸쳐 웨어 레벨을 관리하도록 구성된 로직을 포함하는, 메모리 시스템 제어기.
  2. 청구항 1에 있어서, 상기 메모리 인터페이스들은 동기 메모리 인터페이스들인, 메모리 시스템 제어기.
  3. 청구항 2에 있어서, 상기 INSN들의 제 1 부분은 상기 다수의 동기 메모리 인터페이스들 중 하나에 병렬로 통신이 되도록 결합되는, 메모리 시스템 제어기.
  4. 청구항 3에 있어서, 상기 INSN들의 제 2 부분은 상기 다수의 동기 메모리 인터페이스들 중 다른 하나에 병렬로 통신이 되도록 결합되는, 메모리 시스템 제어기.
  5. 청구항 1에 있어서, 상기 메모리 인터페이스들은 직렬 메모리 인터페이스들인, 메모리 시스템 제어기.
  6. 청구항 5에 있어서, 상기 시스템 제어기는 논리 블록 정보 없이 물리 페이지 메모리 액세스 요청들을 생성하도록 구성된, 메모리 시스템 제어기.
  7. 청구항 5에 있어서, 상기 다수의 직렬 메모리 인터페이스들 각각은 이에 통신이 되도록 결합된 적어도 2개의 INSN들과 통신하도록 구성된, 메모리 시스템 제어기.
  8. 청구항 5에 있어서, 상기 시스템 제어기는 모든 상기 INSN들에 걸쳐 웨어 레벨을 관리하도록 구성된 로직을 포함하는, 메모리 시스템 제어기.
  9. 청구항 1 내지 8 중 어느 한 항에 있어서, 상기 INSN들 각각은 다수의 메모리 장치들을 구비하는, 메모리 시스템 제어기.
  10. 청구항 9에 있어서, 상기 다수의 INSN들에 걸쳐 웨어 레벨을 관리하도록 구성된 상기 로직은 특정 INSN의 상기 다수의 메모리 장치들에 걸친 웨어 레벨링을 관리하는 로직을 포함하는, 메모리 시스템 제어기.
  11. 청구항 9에 있어서, 상기 다수의 INSN들에 걸쳐 웨어 레벨을 관리하도록 구성된 상기 로직은 복수의 INSN들의 상기 다수의 메모리 장치들에 걸쳐 웨어 레벨링을 관리하도록 구성된 로직을 포함하는, 메모리 시스템 제어기.
  12. 청구항 11에 있어서, 상기 다수의 INSN들에 걸쳐 웨어 레벨을 관리하도록 구성된 상기 로직은 모든 INSN들의 모든 메모리 장치들에 걸쳐 웨어 레벨링을 관리하도록 구성된 로직을 포함하는, 메모리 시스템 제어기.
  13. 메모리 시스템에 있어서,
    호스트 인터페이스, 및 상기 호스트 인터페이스에 통신이 되도록 결합되고 적어도 2개의 직렬 메모리 인터페이스들을 구비하는 메모리 시스템 제어기를 포함하는, 시스템 제어기 및 호스트 인터페이스(SCHI); 및
    상기 적어도 2개의 직렬 메모리 인터페이스들에 통신이 되도록 결합된 복수의 스토리지 노드들을 포함하고,
    상기 메모리 시스템 제어기는 상기 복수의 스토리지 노드들에 대해 중앙집중형으로 물리-논리 주소 변환을 제공하며, 상기 복수의 스토리지 노드들에 걸쳐 웨어 레벨링을 관리하는 것을 포함하는, 상기 복수의 스토리지 노드들을 제어하도록 구성된, 메모리 시스템.
  14. 청구항 13에 있어서, 상기 복수의 스토리지 노드들은 지능형 NAND 스토리지 노드들(INSN들)인, 메모리 시스템.
  15. 청구항 13에 있어서, 상기 복수의 스토리지 노드들은 다수의 메모리 장치들을 포함하는, 메모리 시스템.
  16. 청구항 15에 있어서, 상기 복수의 스토리지 노드들 각각은 상기 다수의 메모리 장치들에 통신이 되도록 결합된 노드 메모리 제어기를 포함하는, 메모리 시스템.
  17. 청구항 16에 있어서, 상기 다수의 메모리 장치들은 NAND 플래시 메모리 장치들인, 메모리 시스템.
  18. 청구항 17에 있어서, 각각의 노드 메모리 제어기는 개방 NAND 플래시 인터페이스(ONFi)에 의해 상기 다수의 NAND 플래시 메모리 장치들에 통신이 되도록 결합된, 메모리 시스템.
  19. 청구항 13 내지 18 중 어느 한 항에 있어서, 상기 복수의 스토리지 노드들은 각각이 멀티칩 패키지에 구성되는, 메모리 시스템.
  20. 청구항 19에 있어서, 상기 멀티칩 패키지는 20 미만의 핀들을 갖는, 메모리 시스템.
  21. 청구항 20에 있어서, 상기 멀티칩 패키지는 데이터 및 제어 신호들을 위한 단지 3개의 핀들을 구비하는, 메모리 시스템.
  22. 청구항 13 내지 15 중 어느 항에 있어서, 상기 복수의 스토리지 노드들은 솔리드 스테이트 드라이브들인, 메모리 시스템.
  23. 메모리 시스템에 있어서,
    복수의 지능형 NAND 스토리지 노드들(INSN들); 및
    제 1 직렬 인터페이스를 통해 상기 복수의 INSN들의 제 1 부분에 통신이 되도록 결합되고 제 2 직렬 인터페이스를 통해 상기 복수의 INSN들의 제 2 부분에 통신이 되도록 결합된 메모리 시스템 제어기를 포함하며,
    상기 메모리 시스템 제어기는 호스트 시스템에 의해 이용되는 논리 주소들과 상기 복수의 INSN들에 의해 이용되는 물리 주소들 간을 매핑하도록 구성되며, 상기 메모리 시스템 제어기는 상기 복수의 INSN들에 걸친 웨어 레벨링을 관리하도록 구성된, 메모리 시스템.
  24. 청구항 23에 있어서, 상기 복수의 INSN들의 상기 제 1 부분은 복수의 INSN들을 포함하는, 메모리 시스템.
  25. 청구항 23 또는 24에 있어서, 상기 복수의 INSN들의 상기 제 2 부분은 복수의 INSN들을 포함하는, 메모리 시스템.
  26. 청구항 23 또는 24에 있어서, 상기 제 1 및 제 2 직렬 인터페이스들은 직렬 통신 버스이며, 상기 복수의 INSN들의 상기 제 1 부분은 상기 제 1 직렬 통신 버스에 데이지 체인으로 배열되며, 상기 복수의 INSN들의 상기 제 2 부분은 상기 제 2 직렬 통신 버스에 데이지 체인으로 배열되는, 메모리 시스템.
  27. 청구항 26에 있어서, 상기 INSN들 각각은 버스 관리 모듈을 포함하는, 메모리 시스템.
  28. 청구항 27에 있어서, 각각의 버스 관리 모듈은 상기 노드 메모리 제어기에 통신이 되도록 결합되고, 상기 메모리 시스템 제어기에 데이터를 송신하기 위해 직렬 통신 버스를 제어하도록 구성된, 메모리 시스템.
  29. 청구항 27에 있어서, 상기 복수의 INSN들 각각은 다수의 NAND 플래시 메모리 장치들, 및 그 위의 상기 NAND 플래시 메모리 장치들과 노드 제어기 간에 통신이 되도록 결합된 상기 노드 제어기를 포함하는, 메모리 시스템.
  30. 청구항 29에 있어서, 각각의 노드 제어기는 NAND 플래시 메모리 장치 액세스를 제어하며 NAND 플래시 메모리 장치 결함들을 관리하도록 구성된, 메모리 시스템.
  31. 청구항 29에 있어서, 각각의 노드 제어기는 상기 NAND 플래시 메모리 장치들에 저장된 데이터에 오류들을 검출하여 정정하도록 구성된, 메모리 시스템.
  32. 메모리 시스템을 동작하는 방법에 있어서,
    다수의 직렬 통신 인터페이스들을 사용하여 복수의 스토리지 노드들과 메모리 시스템 제어기 간에 통신들을 수립하는 단계로서, 상기 복수의 스토리지 노드들 각각은 특정 직렬 통신 인터페이스와 다수의 메모리 장치들 간에 통신이 되도록 결합된 노드 제어기를 구비하는 것인, 상기 통신들을 수립하는 단계;
    상기 메모리 시스템 제어기에서 상기 복수의 스토리지 노드들 간에 웨어 레벨링을 관리하는 단계; 및
    상기 메모리 시스템 제어기에서 상기 복수의 스토리지 노드들을 위해 논리 주소들 및 물리 주소들 간을 변환하는 단계를 포함하는, 메모리 시스템을 동작하는 방법.
  33. 청구항 32에 있어서, 상기 메모리 시스템 제어기에서 특정 스토리지 노드의 상기 다수의 메모리 장치들 간에 웨어 레벨링을 관리하는 단계를 포함하는, 방법.
  34. 청구항 33에 있어서, 상기 특정 스토리지 노드에 연관된 상기 노드 제어기에서 특정 스토리지 노드의 상기 다수의 메모리 장치들 간에 오류 정정을 관리하는 단계를 포함하는, 방법.
  35. 청구항 34에 있어서, 상기 메모리 시스템 제어기에서 복수의 스토리지 노드들의 상기 다수의 메모리 장치들 간에 웨어 레벨링을 관리하는 단계를 포함하는, 방법.
  36. 청구항 35에 있어서, 복수의 스토리지 노드들의 상기 다수의 메모리 장치들 간에 웨어 레벨링을 관리하는 단계는 상기 다수의 메모리 장치들 간에 마모에서의 차이들을 검출하는 단계를 포함하는, 방법.
  37. 청구항 35 또는 36에 있어서, 복수의 스토리지 노드들의 상기 다수의 메모리 장치들 간에 웨어 레벨링을 관리하는 단계는 개별 메모리 장치 내에서 한계 이상의 마모를 검출하는 단계를 포함하는, 방법.
  38. 청구항 37에 있어서, 상기 한계는 사전에 설정된 고정된 한계인, 방법.
  39. 청구항 37에 있어서, 상기 한계는 동적 한계인, 방법.
  40. 메모리 시스템을 동작하는 방법에 있어서,
    일정 범위의 논리 주소들에 대응하는 기입 명령 및 연관된 데이터를 호스트 시스템으로부터 수신하는 단계:
    다수의 스토리지 노드들간에 웨어 레벨링에 기초하여, 상기 연관된 데이터를 저장할 상기 다수의 스토리지 노드들 중 특정 스토리지 노드를 메모리 시스템 제어기에서 판정하는 단계;
    상기 범위의 논리 주소들을 상기 특정 스토리지 노드의 물리 주소들에 매핑하는 단계; 및
    스토리지 노드들의 데이지 체인을 통해 직렬로 상기 데이터를 상기 특정 스토리지 노드에 송신하는 단계를 포함하는, 방법.
  41. 청구항 40에 있어서, 상기 다수의 스토리지 노드들은 지능형 NAND 스토리지 노드들(INSN들)이며, 상기 방법은 상기 메모리 시스템 제어기에 의한 물리 페이지 액세스 요청들을 논리 블록들에 참조함이 없이 상기 INSN들에 전달하는 단계를 포함하는, 방법.
  42. 청구항 40 또는 41에 있어서, 상기 데이터를 스토리지 노드들의 데이지 체인을 통해 직렬로 송신하기 전에 디스크 드라이브 프로토콜들을 상기 메모리 시스템 제어기에서 로우(raw) NAND 명령들로 변환하는 단계를 포함하는, 방법.
KR1020117015980A 2009-01-08 2009-12-30 메모리 시스템 제어기 KR101274306B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/350,686 2009-01-08
US12/350,686 US8412880B2 (en) 2009-01-08 2009-01-08 Memory system controller to manage wear leveling across a plurality of storage nodes
PCT/US2009/006740 WO2010080141A2 (en) 2009-01-08 2009-12-30 Memory system controller

Publications (2)

Publication Number Publication Date
KR20110095935A true KR20110095935A (ko) 2011-08-25
KR101274306B1 KR101274306B1 (ko) 2013-06-13

Family

ID=42312440

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117015980A KR101274306B1 (ko) 2009-01-08 2009-12-30 메모리 시스템 제어기

Country Status (7)

Country Link
US (2) US8412880B2 (ko)
EP (1) EP2377027B1 (ko)
JP (1) JP5453661B2 (ko)
KR (1) KR101274306B1 (ko)
CN (1) CN102272745B (ko)
TW (2) TWI484341B (ko)
WO (1) WO2010080141A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014081100A1 (ko) * 2012-11-22 2014-05-30 주식회사 이에프텍 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법
KR20170092538A (ko) * 2014-12-09 2017-08-11 인텔 코포레이션 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정
KR20200108363A (ko) * 2018-02-05 2020-09-17 마이크론 테크놀로지, 인크. 집적 회로 메모리의 패키지에 내장된 컨트롤러를 갖는 메모리 시스템

Families Citing this family (208)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924661B1 (en) * 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US9037986B2 (en) * 2009-03-20 2015-05-19 Lara M. Sosnosky Online virtual safe deposit box user experience
US8341338B2 (en) * 2009-05-06 2012-12-25 Samsung Electronics Co., Ltd. Data storage device and related method of operation
US8370712B2 (en) * 2009-07-23 2013-02-05 International Business Machines Corporation Memory management in a non-volatile solid state memory device
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
WO2012060824A1 (en) 2010-11-02 2012-05-10 Hewlett-Packard Development Company, L.P. Solid-state disk (ssd) management
US10108684B2 (en) 2010-11-02 2018-10-23 Micron Technology, Inc. Data signal mirroring
US8595415B2 (en) 2011-02-02 2013-11-26 Micron Technology, Inc. At least semi-autonomous modules in a memory system and methods
US8626989B2 (en) 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US8732431B2 (en) 2011-03-06 2014-05-20 Micron Technology, Inc. Logical address translation
US8856482B2 (en) 2011-03-11 2014-10-07 Micron Technology, Inc. Systems, devices, memory controllers, and methods for memory initialization
US9239806B2 (en) * 2011-03-11 2016-01-19 Micron Technology, Inc. Systems, devices, memory controllers, and methods for controlling memory
US9135160B1 (en) 2011-03-28 2015-09-15 Rambus Inc. Devices, systems, and methods for wear leveling memory
US9514838B2 (en) * 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
US8806090B2 (en) * 2011-05-31 2014-08-12 Micron Technology, Inc. Apparatus including buffer allocation management and related methods
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8700834B2 (en) 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8880819B2 (en) 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
US9740439B2 (en) 2011-12-23 2017-08-22 International Business Machines Corporation Solid-state storage management
KR101404260B1 (ko) * 2011-12-23 2014-06-05 한양대학교 산학협력단 플래시 메모리의 수명 인디케이터를 제공하는 장치 및 장치
US20130185487A1 (en) * 2012-01-18 2013-07-18 Samsung Electronics Co., Ltd Memory system and mobile device including host and flash memory-based storage device
CN103226528A (zh) * 2012-01-31 2013-07-31 上海华虹集成电路有限责任公司 多通道与非型闪存控制器
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
US9003224B2 (en) 2012-04-25 2015-04-07 Western Digital Technologies, Inc. Managing unreliable memory in data storage systems
US9846641B2 (en) 2012-06-18 2017-12-19 International Business Machines Corporation Variability aware wear leveling
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
TWI492051B (zh) * 2012-09-05 2015-07-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9367262B2 (en) * 2013-02-26 2016-06-14 Seagate Technology Llc Assigning a weighting to host quality of service indicators
US10042750B2 (en) * 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9117504B2 (en) 2013-07-03 2015-08-25 Micron Technology, Inc. Volume select for affecting a state of a non-selected memory volume
US9898404B2 (en) * 2013-07-14 2018-02-20 Cnex Labs Method and apparatus for providing improved garbage collection process in solid state drive
US9645895B2 (en) 2013-12-26 2017-05-09 Silicon Motion, Inc. Data storage device and flash memory control method
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9612952B2 (en) 2014-06-04 2017-04-04 Pure Storage, Inc. Automatically reconfiguring a storage memory topology
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) * 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9959203B2 (en) 2014-06-23 2018-05-01 Google Llc Managing storage devices
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
CN104123249B (zh) * 2014-07-22 2018-03-09 山西达鑫核科技有限公司 一种串行访问的新型动态存储器sddr架构阵列
JP5971423B2 (ja) * 2014-07-23 2016-08-17 富士通株式会社 情報処理装置、メモリコントローラ、記憶装置の制御プログラム及び記憶装置の制御方法
US10528461B2 (en) * 2014-08-04 2020-01-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling wear among flash memory devices based on remaining warranty
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9710176B1 (en) * 2014-08-22 2017-07-18 Sk Hynix Memory Solutions Inc. Maintaining wear spread by dynamically adjusting wear-leveling frequency
WO2016032817A1 (en) * 2014-08-26 2016-03-03 Marvell World Trade Ltd. Storage device controller architecture
US9582201B2 (en) 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
US10338817B2 (en) * 2014-12-30 2019-07-02 Sandisk Technologies Llc Systems and methods for storage recovery
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US9502082B1 (en) * 2015-06-24 2016-11-22 Intel Corporation Power management in dual memory platforms
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10452560B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US9921969B2 (en) 2015-07-14 2018-03-20 Western Digital Technologies, Inc. Generation of random address mapping in non-volatile memories using local and global interleaving
US10445251B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US10445232B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Determining control states for address mapping in non-volatile memories
US10452533B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Access network for address mapping in non-volatile memories
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US20170091127A1 (en) * 2015-09-25 2017-03-30 Intel Corporation Techniques to Couple with a Storage Device via Multiple Communication Ports
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
TWI582684B (zh) * 2015-11-10 2017-05-11 慧榮科技股份有限公司 儲存裝置及其任務執行方法、對應於儲存裝置的主機及其任務執行方法、以及應用於儲存裝置的控制單元
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
KR102395195B1 (ko) * 2016-01-07 2022-05-10 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US10353588B1 (en) * 2016-06-30 2019-07-16 EMC IP Holding Company LLC Managing dynamic resource reservation for host I/O requests
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
KR102409760B1 (ko) * 2017-03-17 2022-06-17 에스케이하이닉스 주식회사 메모리 시스템
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10140222B1 (en) 2017-07-06 2018-11-27 Micron Technology, Inc. Interface components
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
JP7010667B2 (ja) * 2017-11-06 2022-01-26 キオクシア株式会社 メモリシステムおよび制御方法
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
CN108334459B (zh) * 2018-02-27 2020-11-13 联芸科技(杭州)有限公司 一种多端口固态硬盘的实现方案
TWI689816B (zh) * 2018-03-06 2020-04-01 群聯電子股份有限公司 區塊管理方法、記憶體控制電路單元與記憶體儲存裝置
CN110275668B (zh) * 2018-03-14 2022-09-13 群联电子股份有限公司 区块管理方法、存储器控制电路单元与存储器存储装置
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
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
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US10635610B1 (en) * 2019-03-14 2020-04-28 Toshiba Memory Corporation System and method for serial interface memory using switched architecture
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11211136B2 (en) * 2019-06-26 2021-12-28 Micron Technology, Inc. Memory system tester using test pad real time monitoring
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11402999B2 (en) 2019-12-03 2022-08-02 Burlywood, Inc. Adaptive wear leveling using multiple partitions
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
KR20210158579A (ko) * 2020-06-24 2021-12-31 삼성전자주식회사 용량 확장성을 가지는 스토리지 시스템 및 그 구동 방법
US11210168B1 (en) 2020-06-25 2021-12-28 Micron Technology, Inc. Error handling optimization in memory sub-system mapping
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
JP2022188572A (ja) * 2021-06-09 2022-12-21 キオクシア株式会社 半導体装置、メモリシステム、及びチップ
US11556467B1 (en) * 2021-07-13 2023-01-17 Micron Technology, Inc. Optimizing garbage collection that uses a logical-to-physical table search
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235685A (en) * 1989-05-11 1993-08-10 Data General Corp. Interface bus with independent data, command and direct control sections for parallel transfer of information between host and intelligent storage
US5278961A (en) * 1990-02-22 1994-01-11 Hewlett-Packard Company Physical address to logical address translator for memory management units
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US7690031B2 (en) 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
US7827348B2 (en) * 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
US7953931B2 (en) * 1999-08-04 2011-05-31 Super Talent Electronics, Inc. High endurance non-volatile memory devices
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US8266367B2 (en) * 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
KR100437609B1 (ko) * 2001-09-20 2004-06-30 주식회사 하이닉스반도체 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치
EP1546929A4 (en) * 2002-09-18 2008-07-02 Netezza Corp INTELLIGENT CONTROLLER OF STORAGE DEVICE
TWI227409B (en) * 2003-06-05 2005-02-01 Carry Computer Eng Co Ltd Storage device capable of enhancing transmission speed
US7139863B1 (en) * 2003-09-26 2006-11-21 Storage Technology Corporation Method and system for improving usable life of memory devices using vector processing
JP3912355B2 (ja) * 2003-10-14 2007-05-09 ソニー株式会社 データ管理装置、データ管理方法、不揮発性メモリ、不揮発性メモリを有する記憶装置及びデータ処理システム
US20090204872A1 (en) * 2003-12-02 2009-08-13 Super Talent Electronics Inc. Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
JP4828816B2 (ja) * 2004-10-25 2011-11-30 株式会社東芝 メモリカード、半導体装置、及びメモリカードの制御方法
US8055833B2 (en) * 2006-10-05 2011-11-08 Google Inc. System and method for increasing capacity, performance, and flexibility of flash storage
US7934049B2 (en) * 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
US8024508B2 (en) * 2006-03-21 2011-09-20 Lg Electronics Inc. Computer storage control
KR101128172B1 (ko) * 2006-03-21 2012-03-23 엘지전자 주식회사 컴퓨터 시스템의 스토리지 제어장치 및 방법
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
DE602007010439D1 (de) * 2006-03-31 2010-12-23 Mosaid Technologies Inc Flash-speichersystem-steuerverfahren
US7586784B2 (en) * 2006-06-09 2009-09-08 Micron Technology, Inc. Apparatus and methods for programming multilevel-cell NAND memory devices
JP4945183B2 (ja) 2006-07-14 2012-06-06 株式会社東芝 メモリコントローラ
CN101118783A (zh) * 2006-09-07 2008-02-06 晶天电子(深圳)有限公司 带有闪存坏块控制系统的电子数据闪存卡
JP4942446B2 (ja) * 2006-10-11 2012-05-30 株式会社日立製作所 ストレージ装置及びその制御方法
US8010768B2 (en) * 2007-05-09 2011-08-30 Kingston Technology Corporation Secure and scalable solid state disk system
US20100017556A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
KR100974215B1 (ko) * 2008-10-02 2010-08-06 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014081100A1 (ko) * 2012-11-22 2014-05-30 주식회사 이에프텍 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법
KR20170092538A (ko) * 2014-12-09 2017-08-11 인텔 코포레이션 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정
KR20220151227A (ko) * 2014-12-09 2022-11-14 인텔 코포레이션 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정
KR20200108363A (ko) * 2018-02-05 2020-09-17 마이크론 테크놀로지, 인크. 집적 회로 메모리의 패키지에 내장된 컨트롤러를 갖는 메모리 시스템

Also Published As

Publication number Publication date
US8412880B2 (en) 2013-04-02
TWI484341B (zh) 2015-05-11
JP2012514808A (ja) 2012-06-28
US20130219113A1 (en) 2013-08-22
CN102272745B (zh) 2014-11-26
WO2010080141A2 (en) 2010-07-15
TW201102827A (en) 2011-01-16
WO2010080141A3 (en) 2010-09-23
TW201418989A (zh) 2014-05-16
EP2377027A4 (en) 2012-12-12
US9104555B2 (en) 2015-08-11
KR101274306B1 (ko) 2013-06-13
CN102272745A (zh) 2011-12-07
EP2377027A2 (en) 2011-10-19
US20100174851A1 (en) 2010-07-08
EP2377027B1 (en) 2014-05-14
JP5453661B2 (ja) 2014-03-26

Similar Documents

Publication Publication Date Title
KR101274306B1 (ko) 메모리 시스템 제어기
JP6163532B2 (ja) メモリシステムコントローラを含む装置
KR101573591B1 (ko) 메모리 시스템 제어기를 구비하는 장치 및 관련 방법
US10579548B2 (en) Adaptive interleaving of data transfer requests
EP2715729B1 (en) Apparatus including memory system controllers and related methods
CN106445724A (zh) 与受保护数据分开存储奇偶校验数据
US20100199019A1 (en) Logical memory blocks
CN107111456A (zh) 用于生成与主机命令相关联的提示信息的系统和方法
US11262928B2 (en) Storage system and method for enabling partial defragmentation prior to reading in burst mode
WO2021247093A1 (en) Storage system and method for retention-based zone determination
KR101070511B1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
WO2015085414A1 (en) System and method of operation for high capacity solid-state drive
US20230384966A1 (en) Storage System and Method for Data Placement in Zoned Storage
KR20230094943A (ko) 저장 단편화를 정량화하고 성능 저하를 예측하기 위한 저장 시스템 및 방법
US11409468B2 (en) Storage system and method for using proactive device timeout information
US20210181975A1 (en) Storage System and Method for User-Defined Data Archiving
US11550487B2 (en) Data storage device and method for enabling endurance re-evaluation
US11921653B2 (en) Data storage device and method for lane detection and configuration
US11698751B2 (en) Data storage device and method for low-latency power state transitions by having power islanding in a host memory buffer
WO2021242331A1 (en) Storage system, host, and method for optimizing storage of a sequence of images
CN112860175A (zh) 具有自适应命令处理的非易失性存储系统
CN114730287A (zh) 具有由主机选择的控制水平的基于分区的设备

Legal Events

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

Payment date: 20160427

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180518

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190607

Year of fee payment: 7