KR102312747B1 - 인터페이스 구성 요소 - Google Patents

인터페이스 구성 요소 Download PDF

Info

Publication number
KR102312747B1
KR102312747B1 KR1020207000129A KR20207000129A KR102312747B1 KR 102312747 B1 KR102312747 B1 KR 102312747B1 KR 1020207000129 A KR1020207000129 A KR 1020207000129A KR 20207000129 A KR20207000129 A KR 20207000129A KR 102312747 B1 KR102312747 B1 KR 102312747B1
Authority
KR
South Korea
Prior art keywords
interface component
interface
controller
packet
component
Prior art date
Application number
KR1020207000129A
Other languages
English (en)
Other versions
KR20200008653A (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 KR20200008653A publication Critical patent/KR20200008653A/ko
Application granted granted Critical
Publication of KR102312747B1 publication Critical patent/KR102312747B1/ko

Links

Images

Classifications

    • 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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0626Reducing size or complexity of storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
    • 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/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/107Serial-parallel conversion of data or prefetch
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

일 예에서, 장치는 호스트에 커플링되는 컨트롤러, 컨트롤러에 커플링된 인터페이스 구성 요소, 및 인터페이스 구성 요소에 커플링된 복수의 메모리 디바이스들을 가질 수 있다. 인터페이스 구성 요소는 복수의 메모리 디바이스들의 메모리 디바이스가 컨트롤러로부터의 커맨드에 응답하여 동작을 수행하게 할 수 있다.

Description

인터페이스 구성 요소
본 발명은 일반적으로 데이터 저장소와 같은 저장소에 관한 것으로, 보다 구체적으로는 인터페이스 구성 요소에 관한 것이다.
(예를 들어, 데이터를 저장하기 위한) 저장 시스템은 컴퓨터, 셀 폰, 핸드-헬드 디바이스 등과 같은 전자 시스템에서 구현될 수 있다. 저장 시스템은 종종 (예를 들어, 데이터의) 저장을 위해 사용될 수 있는 메모리 디바이스를 제어하기 위한 컨트롤러(예를 들어, 메모리 컨트롤러)를 포함한다.
솔리드-스테이트 저장 디바이스(예를 들어, 솔리드 스테이트 드라이브)와 같은 일부 저장 시스템은 비휘발성 메모리 디바이스를 포함할 수 있다. 비휘발성 메모리 디바이스는 전원이 공급되지 않을 때 저장된 데이터를 보유함으로써 영구 데이터를 제공하며, NAND 플래시 메모리, NOR 플래시 메모리, 질화물-판독-전용 메모리(NROM), 위상-변화 메모리(예를 들어, 위상-변화 랜덤 액세스 메모리), 저항성 메모리(예를 들어, 저항성 랜덤-액세스 메모리) 등을 포함할 수 있다.
일부 예에서, 저장 시스템은 컴퓨터와 같은 호스트와 통신할 수 있고 주소 신호(예를 들어, 주소), 커맨드 신호(예를 들어, 커맨드) 및 데이터 신호(데이터)를 호스트로부터 수신할 수 있고 데이터를 호스트로 전송할 수 있는 컨트롤러(예를 들어, 메모리 컨트롤러)를 가질 수 있다. 컨트롤러는 통신 채널(예를 들어, 메모리 채널)과 같은 채널을 통해 메모리 디바이스와 통신할 수 있다. 예를 들어, 채널은 주소, 커맨드 및 데이터를 컨트롤러로부터 메모리 디바이스로 그리고 데이터를 메모리 디바이스로부터 컨트롤러로 전달할 수 있다. 복수의 핀이 예를 들어, 채널을 컨트롤러에 커플링할 수 있다. 일부 예에서, 컨트롤러는 복수의 채널을 통해 메모리 디바이스의 복수의 그룹과 통신할 수 있다. 예를 들어, 컨트롤러는 각각의 그룹에 커플링된 채널을 통해 각각의 그룹을 개별적으로 제어할 수 있다.
도 1은 종래 기술에 따른 장치의 예를 나타내는 블록도이다.
도 2a는 본 개시의 다수의 실시예에 따른 장치의 예를 나타내는 블록도이다.
도 2b는 본 개시의 다수의 실시예에 따른 인터페이스 구성 요소의 예를 나타내는 블록도이다.
도 3은 본 개시의 다수의 실시예에 따른 장치의 다른 예를 나타내는 블록도이다.
일 예에서, 장치는 호스트에 커플링되는 컨트롤러, 컨트롤러에 커플링된 인터페이스 구성 요소, 및 인터페이스 구성 요소에 커플링된 복수의 메모리 디바이스를 가질 수 있다. 인터페이스 구성 요소는 복수의 메모리 디바이스의 메모리 디바이스가 컨트롤러로부터의 커맨드에 응답하여 동작을 수행하게 할 수 있다.
본 개시의 다수의 실시예는 이전 저장 시스템에 비해 저장 시스템의 증가된 저장 용량과 같은 이점을 제공한다. 예를 들어, 더 많은 메모리 디바이스가 컨트롤러의 대역폭, 컨트롤러의 핀의 개수, 및/또는 컨트롤러의 물리적 크기(예를 들어, 실리콘 양)의 작은(예를 들어, 없음) 증가로, 이전 저장 시스템에 비해, 저장 시스템의 메모리 컨트롤러와 같은 컨트롤러에 커플링될 수 있다. 추가적인 이점은 이전 저장 시스템에 비해 저장 단위 당 감소된 비용, 향상된 성능 및 감소된 전력 소비를 포함할 수 있다.
이하의 상세한 설명에서, 본원의 일부를 형성하고 특정 예를 예시의 방식으로 나타낸 첨부 도면을 참조한다. 도면에서, 동일한 번호는 여러 도면 전체에서 실질적으로 유사한 구성 요소를 설명한다. 다른 예가 이용될 수 있으며, 본 개시의 범위를 벗어나지 않고 구조적 및 전기적 변화가 이루어질 수 있다. 그러므로, 이하의 상세한 설명은 한정적인 의미로 이해되지 않아야 하고, 본 개시의 범위는 첨부된 청구항 및 그 등가물에 의해서만 정의된다.
도 1은 종래 기술에 따른 시스템(100)(예를 들어, 인터넷-기반(예를 들어, "클라우드") 컴퓨팅 시스템, 엔터프라이즈 컴퓨팅 시스템 등과 같은 컴퓨팅 시스템)의 일부와 같은 장치의 블록도이다. 시스템(100)은 예를 들어, 하나 이상의 프로세서를 포함할 수 있는 호스트(105)를 포함할 수 있다. 시스템(100)은 호스트 인터페이스와 같은 인터페이스(108)에 의해 호스트(105)에 커플링된 저장 시스템(110)(예를 들어, 솔리드-스테이트 드라이브와 같은 메모리 시스템)을 포함할 수 있다. "커플링된"이라는 용어는 무선 커플링, 개재 요소 없이 직접 커플링 및/또는 직접 접속(예를 들어, 직접적인 물리적 접촉에 의함), 또는 개재 요소를 갖고 간접 커플링 및/또는 접속되는 것을 포함할 수 있다.
저장 시스템(110)은 메모리 시스템 컨트롤러와 같은 컨트롤러(115)(예를 들어, 메모리 제어 회로, 펌웨어 및/또는 소프트웨어)를 포함할 수 있다. 저장 시스템(110)은 예를 들어, 엔터프라이즈 저장 시스템일 수 있고, 컨트롤러(115)는 예를 들어, 엔터프라이즈 컨트롤러일 수 있다. 예를 들어, 엔터프라이즈 저장 시스템은 예를 들어, 100 MB/초, 초당 100 K 입력/출력 등의 테라바이트의 저장 및 고속 성능 기능에 의해 현재 특성화될 수 있다. 일부 예에서, 저장 시스템(110)은 클라우드 저장 시스템일 수 있고, 컨트롤러(115)는 클라우드 컨트롤러일 수 있다.
컨트롤러(115)는 채널(118-1(Ch1) 내지 118-1(ChN))과 같은 복수의 채널(118)을 통해 통신할 수 있으며, 일부 예에서 N은 8, 16, 32, 64 등일 수 있다. 채널(예를 들어, 각각의 채널(118-1 내지 118-N))은 NAND 메모리 디바이스와 같은 하나 이상의 메모리 디바이스(120)와 컨트롤러(115) 사이에 커플링될 수 있다. 예를 들어, 각각의 채널(118)은 메모리 디바이스(120-1 내지 120-M)와 컨트롤러(115) 사이에 커플링될 수 있다. 일부 예에서, 메모리 디바이스(120-1 내지 120-M)는 메모리 패키지(122)에 포함될 수 있다. 예를 들어, 컨트롤러(115)는 채널들(118-1 내지 118-N) 중 각각의 채널을 통해 메모리 패키지들(122-1 내지 122-N) 중 각각의 패키지와 각각 통신할 수 있다. 본원에서 사용되는 채널은 하나 이상의 유선과 같은 물리적 전송 매체 또는 무선 전송 매체를 포함할 수 있다.
저장 요건이 계속 증가함에 따라, 예를 들어, 저장 시스템(110)과 같은 저장 시스템의 용량은 계속 증가하지만 때때로 채널 대역폭을 비용으로 한다. 예를 들어, 저장 용량은 각 채널(118)에 커플링된 메모리 디바이스의 수를 증가시킴으로써 증가될 수 있다.
저장 용량을 증가시키는 다른 방식은 예를 들어, 채널(118)의 수를 증가시키는 것일 수 있다. 그러나, 이는 실리콘 면적, 핀의 수, 인쇄 회로 보드 라우팅 레이어의 수, 및 컨트롤러의 전력 요건과 같은 컨트롤러(115)의 크기를 증가시킬 수 있다.
도 2a는 본 개시의 다수의 실시예에 따른, 저장 시스템(210)(예를 들어, 솔리드 드라이브와 같은 메모리 시스템)과 같은 장치의 블록도이다. 일부 예에서, 저장 시스템(210)은 컴퓨팅 시스템의 일부를 형성하기 위해 링크(208)에 의해 호스트에 커플링될 수 있다.
저장 시스템(210)은 링크(208)에 의해 호스트에 커플링될 수 있는 메모리 시스템 컨트롤러와 같은 컨트롤러(215)(예를 들어, 메모리 제어 회로, 펌웨어 및/또는 소프트웨어)를 포함할 수 있다. 예를 들어, 컨트롤러(215)는 호스트로부터 커맨드, 주소 및 데이터를 수신할 수 있고 데이터 및 상태 신호를 호스트로 전송할 수 있다. 저장 시스템(210)은 예를 들어, 엔터프라이즈 저장 시스템일 수 있고, 컨트롤러(215)는 예를 들어, 엔터프라이즈 컨트롤러일 수 있다. 일부 예에서, 저장 시스템(110)은 클라우드 저장 시스템일 수 있고, 컨트롤러(215)는 클라우드 컨트롤러일 수 있다.
메모리 시스템(210)은 인터페이스 구성 요소(225-1 내지 225-N)와 같은 복수의 인터페이스 구성 요소(225)(예를 들어, 어플리케이션 특정 집적 회로(ASIC))를 포함할 수 있다. 컨트롤러(215)는 각각의 채널(218)을 통해 각각의 인터페이스 구성 요소(225)와 통신할 수 있다. 예를 들어, 컨트롤러(215)는 채널(218)을 통해 인터페이스 구성 요소(225)를 제어할 수 있다. 각각의 채널(218)은 주소, 커맨드 및 데이터를 컨트롤러(215)로부터 각각의 인터페이스 구성 요소(225)로 전달할 수 있고, 데이터 및 상태 신호를 각각의 인터페이스 구성 요소(225)로부터 컨트롤러(215)로 전달할 수 있다. 일부 예에서, 컨트롤러(215)는 마스터 컨트롤러로서 작용할 수 있고 인터페이스 구성 요소(225)는 컨트롤러(215)에 대한 슬레이브로서 작용할 수 있다.
일부 예에서, 컨트롤러는 채널들(218-1(Ch1) 내지 218-N(ChN)) 중 각각의 채널을 통해 각각의 인터페이스 구성 요소들(225-1 내지 225-N) 중 각각의 인터페이스 구성 요소와 각각 통신(예를 들어, 제어)할 수 있다. 예를 들어, 채널들(218-1 내지 218-N) 중 각각의 채널은 인터페이스 구성 요소들(225-1 내지 225-N) 중 각각의 인터페이스 구성 요소와 컨트롤러(215) 사이에 각각 커플링될 수 있다.
각각의 인터페이스 구성 요소(225)는 채널(227)을 통해 메모리 디바이스(230-1 내지 230-M)의 그룹(예를 들어, 메모리 패키지(232))과 같은 하나 이상의 메모리 디바이스와 통신(예를 들어, 제어)할 수 있다. 예를 들어, 각각의 인터페이스 구성 요소(225-1 내지 225-N)는 채널들(227-1 내지 227-L) 중 각각의 채널을 통해 메모리 패키지들(232-1 내지 232-L) 중 각각의 메모리 패키지와 각각 통신할 수 있다. 예를 들어, 채널들(227-1 내지 227-L) 중 각각의 채널은 메모리 패키지들(232-1 내지 232-L) 중 각각의 메모리 패키지와 인터페이스 구성 요소(225) 사이에 각각 커플링될 수 있다. 예를 들어, 각각의 채널(227)은 주소, 커맨드 및 데이터를 각각의 인터페이스 구성 요소(225)로부터 각각의 패키지(232)로, 따라서 각각의 패키지(232)의 각각의 메모리 디바이스(230)로 전달할 수 있고, 데이터 및 상태 신호를 각각의 인터페이스 패키지(232)로부터 각각의 인터페이스 구성 요소(225)로 전달할 수 있다.
각각의 인터페이스 구성 요소(225)는 예를 들어, 각각의 채널(218)을 L 채널로 확장할 수 있다. 인터페이스 구성 요소(225) 당 복수의 채널(227)을 사용하는 것은 (예를 들어, 컨트롤러(215) 당 채널의 수를 증가시키지 않고도) 메모리 디바이스의 수 및 따라서 저장 시스템(210)의 저장 용량을 증가시키도록 작용할 수 있다. 예를 들어, 이것은 실리콘 면적, 컨트롤러(215)의 핀 수, 및 컨트롤러(215)의 인쇄 회로 보드 라우팅 레이어의 수, 및/또는 컨트롤러(215)의 전력 요건과 같은 컨트롤러(215)의 크기의 약간의(예를 들어, 없음) 증가로, 저장 시스템(110)에 비해 저장 시스템(210)의 저장 용량을 증가시킬 수 있다.
일부 예에서, 인터페이스 구성 요소(225)(예를 들어, 각각의 인터페이스 구성 요소(225-1 내지 225-N))는 컨트롤러(예를 들어, 프로세서) 기반일 수 있고, 인터페이스 구성 요소(225)에 커플링된 메모리 디바이스(230)로부터의 판독 및 이로의 기입과 같은 액세스 동작을 관리할 수 있다. 예를 들어, 인터페이스 구성 요소(225)는 컨트롤러(215)로부터 패킷화된 전송(예를 들어, 패킷)을 수신할 수 있고, 전송을 역패킷화(예를 들어, 패킷을 분해)할 수 있고, 재구성된 패킷에 포함된 명령(예를 들어, 커맨드)에 기초하여 어떠한 메모리 디바이스(230)가 액세스할지 그리고 어떠한 액세스 동작(예를 들어, 판독 또는 기입)을 수행할지를 결정할 수 있다. 저장 시스템(110)과 같은 이전의 저장 시스템에서, 예를 들어, 컨트롤러(115)는 각각의 메모리 디바이스에 대한 액세스 동작을 관리할 수 있다. 도 2a의 예에서, 컨트롤러(215) 상의 부하 중 일부는 본 개시의 다수의 실시예에 따라 인터페이스 구성 요소(225)로 전달될 수 있다.
예를 들어, 인터페이스 구성 요소(225)는 컨트롤러(215)로부터의 커맨드에 응답하여, 메모리 디바이스들(230-1 내지 230-M) 중 어떤 메모리 디바이스가 패키지들(232-1 내지 232-L) 중 어떤 패키지와 통신할지(예를 들어, 어떤 메모리 디바이스가 액세스할지)를 결정할 수 있다. 예를 들어, 인터페이스 구성 요소(225)는 컨트롤러(215)로부터 기입 커맨드, 주소(예를 들어, 논리적 주소), 및 논리적 주소에 대응하는 위치에 기입할 데이터를 수신할 수 있고, 어떤 메모리 디바이스가 데이터를 기입할지를 결정할 수 있다. 예를 들어, 인터페이스 구성 요소(225)는 그 메모리 디바이스에 대한 기입 동작을 관리(예를 들어, 제어)할 수 있다. 인터페이스 구성 요소(225)는 컨트롤러(215)로부터 판독 커맨드 및 주소를 수신할 수 있고, 어떤 메모리 디바이스가 이로부터 데이터를 판독할지를 결정할 수 있다. 예를 들어, 인터페이스 구성 요소(225)는 그 메모리 디바이스에 대한 판독 동작을 관리할 수 있다.
도 2b는 본 개시의 다수의 실시예에 따른 인터페이스 구성 요소들(225-1 내지 225-N) 중 임의의 하나와 같은 인터페이스 구성 요소(225)의 예의 블록도이다. 예를 들어, 인터페이스 구성 요소(225)는 인터페이스 구성 요소(225)의 동작을 제어할 수 있는 컨트롤러(예를 들어, 중앙과 같은 메인 컨트롤러)(250)를 포함할 수 있다. 컨트롤러(250)는 예를 들어 프로세서를 포함할 수 있다. 인터페이스 구성 요소(225)는 인터페이스 구성 요소(225)에 커플링된 패키지들(232-1 내지 232-L) 각각의 메모리 디바이스(230-1 내지 230-M) 각각의 동작을 제어할 수 있다. 각각의 채널(227-1 내지 227-L), 인터페이스 구성 요소(225)는 예를 들어, 독립적으로 어드레싱(예를 들어, 및 제어)될 수 있다.
일부 예에서, 인터페이스 구성 요소(225)는 채널(218)에 커플링될 수 있고 채널(218)을 통해 컨트롤러(215)와 통신할 수 있는 직렬 인터페이스와 같은 (예를 들어, 고속) 인터페이스(252)를 포함할 수 있다. 예를 들어, 인터페이스(252)는 직렬화기/역직렬화기(SerDes) 인터페이스, 저전압 차동 시그널링(LVDS) 인터페이스, SerDes ONFI 인터페이스 등과 같은 직렬화된 개방 NAND 플래시 인터페이스 워킹 그룹(ONFI: Open NAND Flash Interface Working Group) 인터페이스일 수 있다. 인터페이스(252)는 예를 들어, 직렬 포맷(예를 들어, 직렬 전송)을 사용하여 채널(218)을 통해 컨트롤러(215)와 통신할 수 있다. 예를 들어, 인터페이스(252)는 컨트롤러(215)로부터의 입력으로서 직렬 전송을 수신할 수 있고, 직렬 전송을 컨트롤러(215)에 출력할 수 있다. 예를 들어, 직렬 전송은 예를 들어, 커맨드(예를 들어, 판독 및 기입), 주소 및 데이터를 포함할 수 있는 일련의 패킷을 포함할 수 있다. 일부 예에서, 인터페이스(252)는 컨트롤러(215)로부터의 직렬 입력(예를 들어, 일련의 패킷을 포함)을 역직렬화할 수 있고 컨트롤러(215)로의 출력을 위해 병렬 신호(예를 들어, 패킷)를 직렬화할 수 있다.
인터페이스 구성 요소(225)는 인터페이스(252)에 대응하는 인터페이스 컨트롤러(254)를 포함하여, 인터페이스(252)를 거치는 주소, 커맨드 및 데이터의 흐름과 같은 신호의 흐름을 제어하여 고속 직렬 표준, SerDes 표준, SerDes ONFI 표준, LVDS 표준 등과 같은 특정 표준에 따를 수 있다.
일부 예에서, 인터페이스 구성 요소(225)는 채널(227-1 내지 227-L)을 통해 각각 메모리 패키지(232-1 내지 232-L)와 통신할 수 있는 인터페이스(256)를 포함할 수 있다. 예를 들어, 인터페이스(256)는 (예를 들어, 표준) ONFI 인터페이스, 직렬화된 ONFI 인터페이스, LVDS 인터페이스 등일 수 있다. 일부 예에서, 인터페이스(256)는 표준 ONFI 인터페이스와 같은 병렬 인터페이스일 수 있고, 병렬 포맷(예를 들어, 병렬 전송)을 사용하여 각각의 채널(227-1 내지 227-L)을 통해 통신할 수 있다. 다른 예에서, 인터페이스(256)는 직렬 인터페이스일 수 있고, 직렬 포맷을 사용하여 각각의 채널(227-1 내지 227-L)을 통해 통신할 수 있다. 일부 예에서, 인터페이스(256)는 채널(227)로부터의 직렬 입력을 (예를 들어, 신호와 같은 병렬 입력으로) 역직렬화할 수 있으며, 병렬 신호를 채널(227)로의 출력을 위해 직렬화할 수 있다.
인터페이스 구성 요소(225)는 ONFI 표준, SerDes ONFI 표준, LVDS 표준 등과 같은 특정 표준에 따르도록 인터페이스(256)를 통한 주소, 커맨드 및 데이터의 흐름과 같은 흐름 전송을 제어하기 위해 인터페이스(256)에 대응하는 인터페이스 컨트롤러(258)를 포함할 수 있다.
일부 예에서, 컨트롤러(250)는 패킷화기/역패킷화기(264)에 커플링될 수 있고 패킷화기/역패킷화기(264)를 제어할 수 있다. 예를 들어, 컨트롤러(250)는 패킷화기/역패킷화기(264)가 인터페이스(252)로부터, 따라서 컨트롤러(215)로부터의 패킷을 역패킷화되게 할 수 있다. 예를 들어, 패킷화기/역패킷화기(264)는 커맨드(예를 들어, 판독, 기입 또는 삭제), 채널(227)에 커플링된 메모리 디바이스(230-1 내지 230-M)의 메모리 디바이스(230)에서와 같은 (예를 들어, 판독, 기록 또는 소거될) 주소, 및 기입할 데이터를 포함할 수 있는 컨트롤러(215)로부터의 패킷을 역패킷화할 수 있다. 패킷화기/역패킷화기(264) 예를 들어, 컨트롤러(215)로의 출력을 위해 메모리 디바이스(230)로부터 판독된 데이터를 패킷화할 수 있다. 일부 예에서, 패킷화기/역패킷화기(264)는 각각의 패키지(232)에서 메모리 디바이스(230)로 채널(227)을 통해 전송하기 위한 커맨드, 주소 및 데이터를 역패킷화할 수 있다.
일부 예에서, 인터페이스 구성 요소(225)는 컨트롤러(250)에 커플링된 메모리-관리 유닛(예를 들어, 메모리-관리 엔진)(270)을 포함할 수 있다. 예를 들어, 메모리-관리 유닛(270)은 채널(227)을 통해 메모리 디바이스(230)에 대한 액세스를 제어하는 데 사용될 수 있다. 일부 예에서, 메모리-관리 유닛(270)은 컨트롤러(215)로부터의 역패킷화된 패킷의 커맨드(예를 들어, 판독 커맨드 또는 기입 커맨드)와 같은 커맨드에 응답하여 메모리 디바이스(230)에 대한 액세스를 제어할 수 있다.
인터페이스 구성 요소(225)는 예를 들어, 컨트롤러(250)에 커플링된 웨어-레벨링(wear-leveling) 엔진(272)을 포함할 수 있다. 컨트롤러(250)는 예를 들어, 컨트롤러(215)로부터의 명령에 응답하여 채널(227)에 커플링된 메모리 디바이스(230)에서 수행되는 웨어-레벨링 동작을 제어하기 위해 웨어-레벨링 엔진(272)을 사용할 수 있다. 인터페이스 구성 요소(225)는 예를 들어, 컨트롤러(215)에 대해 웨어-레벨링의 완료를 나타낼 수 있다.
인터페이스 구성 요소(225)는 컨트롤러(250)에 커플링된 저밀도-패리티-검사 엔진과 같은 오류-정정 엔진(274)을 포함할 수 있다. 예를 들어, 컨트롤러(250)는 저밀도-패리티-검사 정정 코드와 같은 오류 정정 코드를 사용하여 컨트롤러(215)로부터의 명령에 응답하여 채널(227)에 커플링된 메모리 디바이스(230)로부터 판독된 데이터를 정정하기 위해 오류-정정 엔진(274)을 사용할 수 있다. 인터페이스 구성 요소(225)는 예를 들어, 오류 정정이 성공적이었는지와 같은 오류 정정의 결과를 컨트롤러(215)에 보고할 수 있다.
일부 예에서, 컨트롤러(250)는 예를 들어, 컨트롤러(215)로부터의 명령에 응답하여 채널(227)에 커플링된 메모리 디바이스(230)에서 수행되는 가비지(garbage)-수집 동작을 제어할 수 있다. 인터페이스 구성 요소(225)는 예를 들어, 컨트롤러(215)에 대해 가비지-수집 동작의 완료를 표시할 수 있다.
일부 예에서, 컨트롤러(250)는 예를 들어, 컨트롤러(215)로부터의 명령에 응답하여 채널(227)에 커플링된 메모리 디바이스(230)에서 수행되는 오버프로비저닝(overprovisioning) 동작을 제어할 수 있다. 예를 들어, 인터페이스 구성 요소(225)는 메모리 디바이스(230)의 메모리 셀의 블록과 같은 메모리 셀의 그룹에 판독/기입 동작이 수행될 때마다 컨트롤러(215)에 통지할 수 있다. 메모리 디바이스(230)의 특정 블록에 대해 특정 수의 기입/삭제 동작에 도달될 때, 컨트롤러(215)는 인터페이스 구성 요소(225)에게 메모리 디바이스가 특정 블록을 다른 블록으로 교체하게 하도록 명령할 수 있다. 인터페이스 구성 요소(225)는 예를 들어, 컨트롤러(215)로의 교체의 완료를 나타낼 수 있다.
예를 들어, 저장 시스템(110)과 같은 이전의 저장 시스템에서, 컨트롤러(115)는 각각의 메모리 디바이스에 대해 웨어 레벨링, 오류 정정, 가비지 수집, 메모리 관리, 오버프로비저닝 등을 관리할 수 있다. 이는 예를 들어, 달리 판독 및 기입에 사용될 수 있는 대역폭을 소진할 수 있다. 이들 동작을 인터페이스 구성 요소(225)에 할당함으로써, 컨트롤러(215)의 대역폭은 각각의 메모리 디바이스에 대해 웨어 레벨링, 오류 정정, 가비지 수집, 메모리 관리, 오버프로비저닝 등을 관리하는 대신 판독 및 기입을 위해 사용될 수 있다. 이는 저장 시스템(110)과 같은 이전의 저장 시스템에 비해 감소된 전력 소비 및 향상된 성능(예를 들어, 컨트롤러(215)가 인터페이스 구성 요소(225)에 할당될 수 있는 어플리케이션으로 점유되지 않을 수 있다는 점에서 더 빠른 판독 및 기입)으로 귀결될 수 있다.
일부 예에서, (예를 들어, 직렬화된) 패킷(예를 들어, 일련의 패킷)은 패킷을 패킷화기/역패킷화기(264)로 전송할 수 있는 인터페이스(252)에서 컨트롤러(215)로부터 수신될 수 있다. 예를 들어, 인터페이스(252)는 패킷을 패킷화기/역패킷화기(264)로 전송하기 전에 일련의 패킷으로부터 패킷을 역직렬화할 수 있다. 그 후, 패킷화기/역패킷화기(264)는 예를 들어, 커맨드 및 주소로 역패킷화(예를 들어, 패킷을 분해)하여 어떤 메모리 디바이스(230)에서 어떤 패키지(232)에 대해(예를 들어, 어떤 채널(227)에 커플링되는지) 어떤 동작을 수행할지를 결정할 수 있다. 예를 들어, 주소는 특정 패키지(232)의 특정 메모리 디바이스(230)의 특정 위치를 포함할 수 있다.
커맨드는 예를 들어, 판독 커맨드일 수 있다. 인터페이스 구성 요소(225)(예를 들어, 컨트롤러(250))는 판독 커맨드에 응답하여 주소를 갖는 위치(예를 들어, 주소 위치)로부터 데이터가 판독되게 할 수 있다. 예를 들어, 컨트롤러(250)는 판독 커맨드 및 주소가 인터페이스(256)로 전송되게 할 수 있고, 인터페이스(256)가 주소 위치를 갖는 메모리 디바이스(230)로 채널(227)(예를 들어, 특정 패키지(232)에 커플링된 채널들(227-1 내지 227-L) 중 각각의 채널)을 통해 판독 커맨드 및 주소를 전송하게 할 수 있다. 메모리 디바이스(230)는 판독 커맨드 및 주소에 응답하여 주소 위치로부터 데이터를 판독할 수 있다. 판독 데이터는 메모리 디바이스(230)로부터 채널(227)을 통해 인터페이스(256)로 전송될 수 있다. 예를 들어, 판독 데이터는 인터페이스(256)에서 메모리 디바이스(230)로부터 수신될 수 있다.
일부 예에서, 컨트롤러(250)는 판독 데이터가 판독 데이터를 패킷화하는 패킷화기/역패킷화기(264)로 전송되게 할 수 있다. 컨트롤러(250)는 패킷화된 판독 데이터가 메모리 컨트롤러(215)로 패킷화된 판독 데이터를 전송하는 인터페이스(252)로 전송되게 할 수 있다. 예를 들어, 인터페이스(252)는 패킷화된 판독 데이터를 메모리 컨트롤러(215)로 전송하기 전에 (예를 들어, 다른 패킷화된 판독 데이터와 직렬로) 패킷화된 판독 데이터를 직렬화할 수 있다.
일부 예에서, 역패킷화된 패킷은 기입 커맨드 및 주소 위치에 기입될 데이터를 포함할 수 있다. 컨트롤러(250)는 기입 커맨드에 응답하여 데이터가 주소 위치에 기입되게 할 수 있다. 예를 들어, 컨트롤러(250)는 기입 커맨드, 주소 및 데이터가 인터페이스(256)로 전송되게 할 수 있고, 인터페이스(256)가 채널(227)을 통해 기입 커맨드, 주소 및 데이터를 주소 위치를 갖는 메모리 디바이스(230)로 전송하게 할 수 있다. 메모리 디바이스(230)는 기입 커맨드 및 주소에 응답하여 데이터를 주소 위치에 기입할 수 있다.
도 3은 본 개시의 다수의 실시예에 따른 저장 시스템(310)(예를 들어, 솔리드-스테이트 드라이브와 같은 메모리 시스템)과 같은 장치의 블록도이다. 일부 예에서, 저장 시스템(310)은 컴퓨팅 시스템의 일부를 형성하기 위해 호스트에 커플링될 수 있다.
저장 시스템(310)은 컨트롤러(215)와 유사할 수 있는(예를 들어, 같음) 메모리 시스템 컨트롤러와 같은 컨트롤러(315)(예를 들어, 메모리 제어 회로, 펌웨어 및/또는 소프트웨어)를 포함할 수 있다. 컨트롤러(315)는 호스트에 커플링될 수 있고, 호스트로부터 커맨드, 주소 및 데이터를 수신할 수 있고, 데이터 및 상태 신호를 호스트에 전송할 수 있다.
컨트롤러(315)는 각각의 채널(318)(예를 들어, 채널들(318-1 내지 318-N) 중 각각의 채널)을 통해 ASIC와 같은 직렬-커플링된 인터페이스 구성 요소(325)(예를 들어, 직렬-커플링된 인터페이스 구성 요소(325-1 내지 325-K))의 시퀀스와 같은 각각의 그룹(324)(예를 들어, 그룹들(324-1 내지 324-N) 중 각각의 그룹)과 통신할 수 있다. 예를 들어, 컨트롤러(315)는 채널들(318-1 내지 318-N) 중 각각의 채널을 통해 그룹들(324-1 내지 324-N) 중 각각의 그룹과 각각 통신할 수 있다. 채널들(318-1 내지 318-N) 중 각각의 채널은 예를 들어, 그룹들(324-1 내지 324-N) 중 각각의 그룹과 컨트롤러(315) 사이에 각각 커플링될 수 있다.
각각의 채널(318)은 컨트롤러(315)로부터 각각의 그룹(324)으로의 주소, 컨트롤러(315)로부터 각각의 그룹(324)으로의 커맨드, 각각의 그룹(324)으로부터 컨트롤러(315)로의 상태 신호, 및 컨트롤러(315)로부터 각각의 그룹(324)으로 및/또는 각각의 그룹(324)으로부터 컨트롤러(315)로의 데이터와 같은 신호를 컨트롤러(315)와 인터페이스 구성 요소(325)의 각각의 그룹(324) 사이에서 전달할 수 있다.
그룹(324)(예를 들어, 각각의 그룹(324-1 내지 325-N))의 각각의 인터페이스 구성 요소(325)(예를 들어, 각각의 인터페이스 구성 요소(325-1 내지 325-K))는 (예를 들어, 병렬) 채널(327-1 내지 327-L)과 같은 하나 이상의 채널을 통해 통신할 수 있다. 각각의 채널(327-1 내지 327-L)은 각각의 인터페이스 구성 요소(325)와 메모리 디바이스(330-1 내지 330-M)의 그룹(예를 들어, 메모리 패키지(332)) 사이에 커플링될 수 있다.
예를 들어, 채널(327)은 인터페이스 구성 요소(325)와 각각의 패키지(332), 따라서 각각의 패키지의 각각의 메모리 디바이스 사이에서 인터페이스 구성 요소(325)로부터 각각의 패키지(332)로의 주소, 인터페이스 구성 요소(325)로부터 각각의 패키지(332)로의 커맨드, 각각의 패키지(332)로부터 인터페이스 구성 요소(325)로의 상태 신호, 및 인터페이스 구성 요소(325)로부터 각각의 패키지(332)로의 데이터 및/또는 각각의 패키지(332)로부터 인터페이스 구성 요소(325)로의 데이터와 같은 신호를 전달할 수 있다.
인터페이스 구성 요소의 그룹(324)의 인터페이스 구성 요소(325)(예를 들어, 인터페이스 구성 요소(325-1 내지 325-K))는 예를 들어, 양방향 링크(335)에 의해 직렬로 상호 접속될 수 있다(예를 들어, 인터페이스 구성 요소(325-1 내지 325-K)의 시퀀스를 형성). 예를 들어, 양방향 링크(335-1 내지 335-(K-1)) 중 하나와 같은 양방향 링크(335)는 2개의 연속적인(예를 들어, 바로 인접한) 인터페이스 구성 요소(325)를 커플링할 수 있다. 예를 들어, 링크(335-1)는 연속적인 인터페이스 구성 요소(325-1 및 325-2)를 직렬로 커플링할 수 있다.
일부 예에서, 그룹(324)의 인터페이스 구성 요소(325-1 및 325-2)는 컨트롤러(315)로부터 (예를 들어, 다운스트림) 신호(예를 들어, 패킷)에 작용할지 또는 패킷을 그룹(324)의 다음(예를 들어, 다운스트림) 인터페이스 구성 요소로 패킷을 전달할지를 결정할 수 있다. 인터페이스 구성 요소(325-3)(예를 들어, K = 3에 대한 그룹(324)의 마지막 인터페이스 구성 요소)는 인터페이스 구성 요소(325-2)와 같은 업스트림 인터페이스 구성 요소로부터 수신된 패킷에 대해 작용할 수 있다. 예를 들어, 인터페이스 구성 요소(325-1)는 (예를 들어, 인터페이스 구성 요소(325-1)의 식별자와 매칭되지 않는 패킷 식별자에 응답하여) 패킷을 인터페이스 구성 요소(325-2)로 전달할 수 있고, 인터페이스 구성 요소(325-2)는 (예를 들어, 인터페이스 구성 요소(325-2)의 식별자와 매칭되지 않는 패킷 식별자에 응답하여) 패킷을 인터페이스 구성 요소(325-3)로 전달할 수 있다.
일부 예에서, 인터페이스 구성 요소(325-1)는 컨트롤러(315)의 각각의 채널(318)로부터의 패킷이 인터페이스 구성 요소(325-1)에 대해 의도되고 따라서 이에 의해 작용될 것인지를 결정할 수 있다. 예를 들어, 패킷이 인터페이스 구성 요소(325-1)에 대해 의도된 경우(예를 들어, 패킷 식별자가 인터페이스 구성 요소(325-1)의 식별자와 매칭됨), 인터페이스 구성 요소(325-1)는 패킷을 역패킷화할 수 있고 어떤 메모리 패키지(332)의 어떤 메모리 디바이스(330)에 대해 패킷이 의도되었는지를 결정할 수 있다. 인터페이스 구성 요소(325-1)가 역패킷화된 패킷으로부터 그에 커플링된 메모리 디바이스로부터 데이터가 판독될 것으로 결정하면, 인터페이스 구성 요소(325-1)는 데이터가 판독되게 할 수 있고, 판독 데이터를 패킷화할 수 있으며, 판독 데이터를 컨트롤러(315)로 (예를 들어, 업스트림) 전송할 수 있다.
패킷이 인터페이스 구성 요소(325-1)에 대해 의도되지 않은 경우(예를 들어, 패킷 식별자가 인터페이스 구성 요소(325-1)의 식별자와 매칭되지 않음), 인터페이스 구성 요소(325-1)는 예를 들어, 패킷이 인터페이스 구성 요소(325-2)에 대해 의도되었는지 여부를 결정할 수 있는 인터페이스 구성 요소(325-2)(예를 들어, K = 3에 대한 메모리 인터페이스 구성 요소의 그룹(325-1 내지 325-3)의 다음 인터페이스 구성 요소)로 패킷을 (예를 들어, 다운스트림(예를 들어, 제1 역패킷화 없이)) 전달할 수 있다. 예를 들어, 패킷이 인터페이스 구성 요소(325-2)에 대해 의도된 경우(예를 들어, 패킷 식별자가 인터페이스 구성 요소(325-2)의 식별자와 매칭됨), 인터페이스 구성 요소(325-2)는 패킷을 역패킷화할 수 있고 어떤 메모리 패키지(332)의 어떤 메모리 디바이스(330)에 대해 패킷이 의도되었는지를 결정할 수 있다. 그렇지 않으면, 인터페이스 구성 요소(325-2)는 패킷에 작용할 수 있는 인터페이스 구성 요소(325-3)로 패킷을 (예를 들어, 다운스트림) 전달할 수 있다. 예를 들어, 인터페이스 구성 요소(325-3)가 시퀀스의 마지막 인터페이스 구성 요소인 경우, 인터페이스 구성 요소(325-3)에 의해 수신된 패킷은 그것이 시퀀스에서 선행 인터페이스 구성 요소(예를 들어, 인터페이스 구성 요소(325-1 및 325-2))에 의해 의도되지 않았고 이에 의해 작용되지 않았다는 점에서 디폴트로 작용될 수 있다.
인터페이스 구성 요소(325-2)가 역패킷화된 패킷으로부터 그에 커플링된 메모리 디바이스로부터 데이터가 판독될 것으로 결정할 때, 인터페이스 구성 요소(325-2)는 데이터가 판독되게 할 수 있고, 판독 데이터를 패킷화할 수 있으며, 패킷화된 판독 데이터를 인터페이스 구성 요소(325-1)를 통해 컨트롤러(315)로 (예를 들어, 업스트림) 전송할 수 있다. 예를 들어, 인터페이스 구성 요소(325-1)는 인터페이스 구성 요소(325-2)(예를 들어, 시퀀스의 다운스트림 인터페이스 구성 요소)로부터 데이터를 (예를 들어, 업스트림 이동) 전달할 수 있다.
인터페이스 구성 요소(325-3)가 인터페이스 구성 요소(325-2)로부터 패킷을 수신할 때, 인터페이스 구성 요소(325-3)는 패킷을 역패킷화할 수 있다. 인터페이스 구성 요소(325-3)가 역패킷화된 패킷으로부터 그에 커플링된 메모리 디바이스로부터 데이터가 판독될 것으로 결정할 때, 인터페이스 구성 요소(325-3)는 데이터가 판독되게 할 수 있고, 판독 데이터를 패킷화할 수 있으며, 패킷화된 판독 데이터를 인터페이스 구성 요소(325-1 및 325-2)와 같은 인터페이스 구성 요소(325-3)와 컨트롤러(315) 사이의 시퀀스에서 인터페이스 구성 요소를 통해 컨트롤러(315)로 (예를 들어, 업스트림) 전송할 수 있다. 예를 들어, 인터페이스 구성 요소(325-1 및 325-2)는 컨트롤러(315)를 향해 이동하는 (예를 들어, 다운스트림 인터페이스 구성 요소로부터) 데이터를 (예를 들어, 업스트림) 전달할 수 있다.
일부 예에서, 인터페이스 구성 요소(325)(예를 들어, 각각의 인터페이스 구성 요소(325-1 내지 325-K))는 예를 들어, 인터페이스 구성 요소(325)의 동작을 제어하기 위한 컨트롤러(250)와 유사할(예를 들어, 동일) 수 있는 컨트롤러(예를 들어, 메인 컨트롤러)를 포함할 수 있다. 인터페이스 구성 요소(325)는 예를 들어, 인터페이스(252)와 유사할(예를 들어, 동일) 수 있는 인터페이스(352)를 포함할 수 있다. 예를 들어, 인터페이스 구성 요소(325-1)의 인터페이스(352)는 채널(318)에, 인터페이스 구성 요소(325-2)의 인터페이스(352)는 링크(335-1)에, 인터페이스 구성 요소(325-K)의 인터페이스(352)는 링크(335-(K-1))에 커플링될 수 있다. 인터페이스 구성 요소(325)는 예를 들어, 인터페이스(352)를 통한 주소, 커맨드 및 데이터의 흐름과 같은 전송의 흐름을 제어하기 위하여 인터페이스(352)에 대응하는, 인터페이스 컨트롤러(254)와 유사할(예를 들어, 동일) 수 있는 인터페이스 컨트롤러를 포함할 수 있다.
일부 예에서, 인터페이스 구성 요소(325)는 예를 들어, 인터페이스(256)와 유사할(예를 들어, 동일) 수 있는 인터페이스(356)를 포함할 수 있다. 예를 들어, 인터페이스(356)는 메모리 패키지(332-1 내지 332-M)에 커플링될 수 있다. 인터페이스 구성 요소(325)는 예를 들어, 인터페이스(356)를 통한 주소, 커맨드 및 데이터의 흐름과 같은 전송의 흐름을 제어하기 위하여 인터페이스(356)에 대응하는, 인터페이스 컨트롤러(258)와 유사할(예를 들어, 동일) 수 있는 인터페이스 컨트롤러를 포함할 수 있다. 일부 예에서, 인터페이스 구성 요소(325)는 예를 들어, 인터페이스 구성 요소(325)의 컨트롤러에 커플링될 수 있는 패킷화기/역패킷화기(264)와 유사할(예를 들어, 동일) 수 있는 패킷화기/역패킷화기를 포함할 수 있다.
일부 예에서, 인터페이스 구성 요소(325-K)와 컨트롤러(315) 사이의 인터페이스 구성 요소(325-1 및 325-2)와 같은 인터페이스 구성 요소(325)는 예를 들어, 인터페이스(252)와 유사할(예를 들어, 동일) 수 있는 인터페이스(362)를 포함할 수 있다. 예를 들어, 인터페이스 구성 요소(325-1)의 인터페이스(362)는 인터페이스 구성 요소(325-2)의 인터페이스(352)에 커플링될 수 있고, 인터페이스 구성 요소(325-2)의 인터페이스(362)는 인터페이스 구성 요소(325-3)(예를 들어, K = 3인 예)의 인터페이스(352)에 커플링될 수 있다. 인터페이스(362)를 포함할 수 있는 인터페이스 구성 요소(325)는 예를 들어, 인터페이스(362)를 통한 주소, 커맨드 및 데이터의 흐름과 같은 전송의 흐름을 제어하기 위하여 인터페이스(362)에 대응하는, 인터페이스 컨트롤러(254)와 유사할(예를 들어, 동일) 수 있는 인터페이스 컨트롤러를 포함할 수 있다.
일부 예에서, 인터페이스 구성 요소(325)는 예를 들어, 인터페이스 구성 요소(325)의 컨트롤러에 커플링된 메모리 관리 유닛(270)과 유사할(예를 들어, 동일) 수 있는 메모리 관리 유닛, 예를 들어, 인터페이스 구성 요소(325)의 컨트롤러에 커플링된 웨어-레벨링 엔진(272)과 유사할(예를 들어, 동일) 수 있는 웨어-레벨링 엔진, 및 예를 들어, 인터페이스 구성 요소(325)의 컨트롤러에 커플링된 오류 정정 엔진(274)과 유사할(예를 들어, 동일) 수 있는 오류 정정 엔진을 포함할 수 있다.
일부 예에서, 인터페이스 구성 요소(325)의 컨트롤러는 예를 들어, 컨트롤러(315)로부터의 명령에 응답하여 채널(327)에 커플링된 메모리 디바이스(330)에 대한 가비지-수집 동작을 제어할 수 있다. 일부 예에서, 인터페이스 구성 요소(325)의 컨트롤러는 예를 들어, 도 2b와 연계하여 상술한 오버프로비저닝과 유사한(예를 들어, 동일) 방식으로, 컨트롤러(315)로부터의 명령에 응답하여 채널(327)에 커플링된 메모리 디바이스들(330)에 대한 오버프로비저닝 동작을 제어할 수 있다.
일부 예에서, 패킷은 그룹(324)에서 인터페이스 구성 요소(325-1)의 인터페이스(352)에서 수신될 수 있다. 인터페이스 구성 요소(325-1)의 컨트롤러는 (예를 들어, 패킷의 식별자가 인터페이스 구성 요소(325-1)의 식별자와 매칭되는지를 결정함으로써) 패킷이 인터페이스 구성 요소(325-1)에 대한 것인지 여부를 결정할 수 있다. 컨트롤러는 식별자 매칭에 응답하여 패킷이 인터페이스 구성 요소(325-1)에 대한 것으로 결정할 수 있다. 패킷이 인터페이스 구성 요소(325-1)에 대해 의도된 경우, 예를 들어, 인터페이스 구성 요소(325-1)에 커플링된 어떤 패키지(332)의 어떤 메모리 디바이스(330)에 대해 어떤 동작을 수행할지를 결정하기 위해, 인터페이스 구성 요소(325-1)의 패킷화기/역패킷화기는 패킷을 커맨드 및 주소로 역패킷화할 수 있다. 일부 예에서, 인터페이스 구성 요소(325-1)의 인터페이스(352)는, 구성 요소(325-1)의 컨트롤러가 패킷이 인터페이스 구성 요소(325-1)에 대해 의도된 것이라고 결정하는 것에 응답하여 패킷을 역패킷화하기 전에 패킷을 역직렬화할 수 있다.
커맨드가 판독 커맨드인 경우, 예를 들어, 인터페이스 구성 요소(325-1)(예를 들어, 인터페이스 구성 요소(325-1)의 컨트롤러)는 도 2a 및 도 2b와 연계하여 상술한 방식과 유사한(예를 들어, 동일한) 방식과 같이 판독 커맨드에 응답하여 데이터가 인터페이스 구성 요소(325-1)의 인터페이스(356)에 커플링된 메모리 디바이스(330)로부터 판독되게 할 수 있다. 판독 데이터는 메모리 디바이스(330)로부터 채널(327)을 통해 인터페이스(356)로 전송될 수 있다. 일부 예에서, 컨트롤러는 판독 데이터가 판독 데이터를 패킷화하는 패킷화기/역패킷화기로 전송되게 할 수 있다. 컨트롤러는 패킷화된 판독 데이터가 패킷화된 판독 데이터를 컨트롤러(315)로 전송하는 인터페이스(352)로 전송되게 할 수 있다. 일부 예에서, 인터페이스 구성 요소(325-1)의 인터페이스(352)는 패킷화된 판독 데이터를 컨트롤러(315)로 전송하기 전에 직렬화할 수 있다.
일부 예에서, 역패킷화된 패킷은 기입 커맨드 및 인터페이스 구성 요소(325-1)에 커플링된 메모리 디바이스(330)에 기입될 데이터를 포함할 수 있다. 인터페이스 구성 요소(325-1)의 컨트롤러는 도 2a 및 도 2b와 연계하여 상술한 방식과 유사한 방식(예를 들어, 동일한 방식)에서와 같이 기입 커맨드에 응답하여 데이터가 메모리 디바이스(330)에 기입되게 할 수 있다.
식별자가 인터페이스 구성 요소(325-1)에서 매칭되지 않을 때, 패킷은 인터페이스 구성 요소(325-1)에 대한 것이 아닐 수 있으며, 패킷은 인터페이스 구성 요소(325-1)의 인터페이스(362)로 (예를 들어, 역직렬화 또는 역패킷화 없이) 전송될 수 있으며, 후속적으로 인터페이스 구성 요소(325-1)의 인터페이스(362)로부터 링크(335-1)를 통해 인터페이스 구성 요소(325-2)의 인터페이스(352)로 전송될 수 있다. 인터페이스 구성 요소(325-2)의 컨트롤러는 (예를 들어, 패킷의 식별자가 인터페이스 구성 요소(325-2)의 식별자와 매칭되는지 여부를 결정함으로써) 패킷이 인터페이스 구성 요소(325-2)에 대해 의도된 것인지 여부를 결정할 수 있다. 컨트롤러는 식별자 매칭에 응답하여 패킷이 인터페이스 구성 요소(325-2)에 대해 의도된 것이라고 결정할 수 있다.
패킷이 인터페이스 구성 요소(325-2)에 대해 의도된 경우, 인터페이스 구성 요소(325-2)의 패킷화기/역패킷화기는 예를 들어, 인터페이스 구성 요소(325-2)에 커플링된 어떤 패키지(332)의 어떤 메모리 디바이스(330)에 대해 어떤 동작을 수행할지를 결정하기 위해 패킷을 커맨드 및 주소로 역패킷화할 수 있다. 일부 예에서, 인터페이스 구성 요소(325-2)의 인터페이스(352)는 인터페이스 구성 요소(325-2)의 컨트롤러가 패킷이 인터페이스 구성 요소(325-2)에 대해 의도된 것이라고 결정하는 것에 응답하여 패킷을 역패킷화하기 전에 패킷을 역직렬화할 수 있다. 커맨드가 판독 또는 기입 커맨드인지에 따라, 인터페이스 구성 요소(325-2)의 컨트롤러는 인터페이스 구성 요소(325-1)에 대해 상술한 방식과 유사한 방식(예를 들어, 동일한 방식)에서와 같이, 인터페이스 구성 요소(325-2)의 인터페이스(356)에 커플링된 메모리 디바이스(330)로부터 데이터가 판독되게 하거나, 이에 패킷의 데이터가 기입되게 할 수 있다.
판독 데이터는 메모리 디바이스(330)로부터 채널(327)을 통해 인터페이스(356)로 전송될 수 있다. 일부 예에서, 인터페이스 구성 요소(325-2)의 컨트롤러는 판독 데이터가 판독 데이터를 패킷화하는 패킷화기/역패킷화기로 전송되게 할 수 있다. 컨트롤러는 패킷화된 판독 데이터를 인터페이스 구성 요소(325-1)의 인터페이스(352)로 전달할 수 있는 인터페이스 구성 요소(325-1)의 인터페이스(362)로 링크(335-1)를 통해 패킷화된 판독 데이터를 전송하는 인터페이스 구성 요소(325-2)의 인터페이스(352)로 패킷화된 판독 데이터가 전송되게 할 수 있으며, 여기서 인터페이스 구성 요소(325-1)의 인터페이스(352)는 링크(320)를 통해 패킷화된 판독 데이터를 컨트롤러(315)로 전송할 수 있다. 일부 예에서, 그룹(324)의 인터페이스 구성 요소(325-1 및 325-2)와 같은 인터페이스 구성 요소(325-K)와 컨트롤러(315) 사이의 인터페이스 구성 요소(325)의 컨트롤러는 이러한 인터페이스 구성 요소(325)가 업스트림으로 이동하고 있는 데이터(예를 들어, 판독 데이터의 패킷) 또는 신호를 컨트롤러(315)로 전달하게 할 수 있다. 일부 예에서, 인터페이스 구성 요소(325-2)의 인터페이스(352)는 패킷화된 판독 데이터를 인터페이스 구성 요소(325-1)의 인터페이스(362)로 전송하기 전에 패킷화된 판독 데이터를 직렬화할 수 있다.
컨트롤러(315)로부터의 패킷은 의도된 인터페이스 구성 요소(325)에 도달할 때까지 (예를 들어, 패킷의 식별자가 인터페이스 구성 요소(325)의 식별자와 매칭될 때까지) 인터페이스 구성 요소(325)로부터 그룹(324)의 인터페이스 구성 요소(325)로 이동(예를 들어, 다운스트림)할 수 있다. 패킷이 인터페이스 구성 요소(325-K)와 컨트롤러(315) 사이의 임의의 인터페이스 구성 요소(325)에 대한 것으로 의도되지 않은 것으로 결정되면, 패킷은 (예를 들어, 궁극적으로) 인터페이스 구성 요소(325-K)에 도달할 수 있다.
인터페이스 구성 요소(325-K)의 패킷화기/역패킷화기는 예를 들어, 인터페이스 구성 요소(325-K)에 커플링된 어떤 패키지(332)의 어떤 메모리 디바이스(330)에 대해 어떤 동작을 수행할지를 결정하기 위해 패킷을 커맨드 및 주소로 역패킷화할 수 있다. 일부 예에서, 인터페이스 구성 요소(325-K)의 인터페이스(352)는 인터페이스 구성 요소(325-K)의 컨트롤러가 패킷이 인터페이스 구성 요소(325-K)에 대해 의도된 것으로 결정하는 것에 응답하여 패킷을 역패킷화하기 전에 패킷을 역직렬화할 수 있다. 커맨드가 판독 또는 기입 커맨드인지에 따라, 인터페이스 구성 요소(325-K)의 컨트롤러는 인터페이스 구성 요소(325-1 및 325-2)에 대해 상술한 방식과 유사한 방식(예를 들어, 동일한 방식)에서와 같이, 인터페이스 구성 요소(325-K)의 인터페이스(356)에 커플링된 메모리 디바이스(330)로부터 데이터가 판독되게 하거나, 이에 패킷의 데이터가 기입되게 할 수 있다.
판독 데이터는 메모리 디바이스(330)로부터 채널(327)을 통해 인터페이스 구성 요소(325-K)의 인터페이스(356)로 전송될 수 있다. 일부 예에서, 인터페이스 구성 요소(325-K)의 컨트롤러는 판독 데이터가 판독 데이터를 패킷화하는 패킷화기/역패킷화기로 전송되게 할 수 있다. 인터페이스 구성 요소(325-K)의 컨트롤러는 패킷화된 판독 데이터가 K = 3인 경우 인터페이스 구성 요소(325-2)와 같은 다음 업스트림 인터페이스 구성 요소의 인터페이스(362)로 패킷화된 판독 데이터를 전송하는 인터페이스 구성 요소(325-K)의 인터페이스(352)로 전송되게 할 수 있다. 인터페이스 구성 요소(325-2)는 패킷화된 판독 데이터를 컨트롤러(315)로 전송할 수 있는 인터페이스(352)로 패킷화된 판독 데이터를 전달할 수 있는 인터페이스 구성 요소(325-1)의 인터페이스(362)로 패킷화된 판독 데이터를 전송할 수 있는 인터페이스(352)로 패킷화된 판독 데이터를 전달할 수 있다. 일부 예에서, 인터페이스 구성 요소(325-3)의 인터페이스(352)는 패킷화된 판독 데이터를 다음 업스트림 컨트롤러의 인터페이스(362)로 전송하기 전에 패킷화된 판독 데이터를 직렬화할 수 있다.
특정 예가 본원에서 예시되고 설명되었지만, 본 기술 분야의 통상의 기술자는 동일한 결과를 달성하기 위해 계산된 구성이 나타내어진 특정 실시예를 대체할 수 있음을 이해할 것이다. 본 개시는 본 개시의 하나 이상의 실시예의 적응 또는 변형을 포함하도록 의도된다. 상술한 설명은 제한적인 방식이 아니라 예시적인 방식으로 이루어진 것으로 이해되어야 한다. 본 개시의 하나 이상의 예의 범위는 첨부된 청구항을 참조하여, 이러한 청구항이 부여되는 등가물의 전체 범위와 함께 결정되어야 한다.

Claims (20)

  1. 장치에 있어서,
    호스트에 커플링되도록 구성된 컨트롤러;
    상기 컨트롤러 및 제1 메모리 디바이스에 커플링된 제1 인터페이스 구성 요소; 및
    제2 메모리 디바이스에 커플링되고 상기 제1 인터페이스 구성 요소와 직렬로 커플링된 제2 인터페이스 구성 요소를 포함하며,
    상기 제1 인터페이스 구성 요소는,
    상기 컨트롤러로부터 패킷을 수신하고;
    상기 패킷의 패킷 식별자가 상기 제1 인터페이스 구성 요소의 인터페이스 식별자와 매칭되는지를 결정하는 것에 의해 상기 패킷이 상기 제1 인터페이스 구성 요소에 대해 의도되었는지를 결정하고;
    상기 패킷의 상기 패킷 식별자가 상기 제1 인터페이스 구성 요소의 상기 인터페이스 식별자와 매칭되지 않는다는 결정에 응답하여 상기 패킷을 상기 제2 인터페이스 구성 요소로 전송하도록 구성되며,
    상기 제2 인터페이스 구성 요소는,
    상기 제1 인터페이스 구성 요소로부터 전송된 상기 패킷을 수신하고;
    상기 패킷의 상기 패킷 식별자가 상기 제2 인터페이스 구성 요소의 인터페이스 식별자와 매칭되는지를 결정하는 것에 의해 상기 패킷이 상기 제2 인터페이스 구성 요소에 대해 의도되었는지를 결정하고;
    상기 패킷의 상기 패킷 식별자가 상기 제2 인터페이스 구성 요소의 상기 인터페이스 식별자와 매칭된다는 결정에 응답하여 상기 패킷을 역패킷화하도록 구성되는, 장치.
  2. 청구항 1에 있어서,
    상기 제1 인터페이스 구성 요소는,
    상기 컨트롤러에 커플링된 제1 인터페이스 및 상기 제1 메모리 디바이스에 커플링된 제2 인터페이스; 및
    상기 제1 인터페이스와 관련된 인터페이스 컨트롤러를 포함하는, 장치.
  3. 청구항 1에 있어서,
    상기 제1 인터페이스 구성 요소는 패킷화기(packetizer)/역패킷화기(depacketizer) 및 상기 패킷화기/역패킷화기를 제어하도록 구성된 컨트롤러를 포함하는, 장치.
  4. 청구항 1에 있어서,
    상기 제1 및 제2 인터페이스 구성 요소는 주문형 반도체(ASIC)들인, 장치.
  5. 청구항 1에 있어서,
    상기 제1 인터페이스 구성 요소는 상기 컨트롤러로의 출력들을 직렬화하고 상기 컨트롤러로부터의 입력들을 역직렬화하도록 구성되는, 장치.
  6. 청구항 1에 있어서,
    상기 제1 인터페이스 구성 요소는 상기 제1 메모리 디바이스로부터의 입력을 패킷화하고 상기 패킷화된 입력을 상기 컨트롤러로 전송하도록 구성되는, 장치.
  7. 청구항 1에 있어서,
    상기 제1 인터페이스 구성 요소는 상기 패킷이 상기 제1 인터페이스 구성 요소에 대해 의도된 것으로 결정한 것에 응답하여 상기 컨트롤러로부터의 입력을 역패킷화하고, 상기 역패킷화된 입력으로부터 상기 제1 메모리 디바이스에서 수행될 동작을 결정하도록 구성되는, 장치.
  8. 장치에 있어서,
    제1 컨트롤러; 및
    복수의 각각의 인터페이스 구성 요소들을 포함하며,
    상기 각각의 인터페이스 구성 요소들은 각각의 채널들을 통해 상기 제1 컨트롤러에 병렬로 커플링되고;
    각각의 인터페이스 구성 요소 각각은 각각의 복수의 메모리 디바이스들에 커플링되며,
    각각의 인터페이스 구성 요소 각각은,
    제2 컨트롤러;
    상기 제1 컨트롤러로부터 수신된 일련의 패킷을 역직렬화하도록 구성된 인터페이스; 및
    각각의 상기 역직렬화된 패킷들의 각각의 패킷 식별자들이 상기 제2 컨트롤러의 식별자와 매칭된다는 상기 제2 컨트롤러에 의한 결정에 응답하여, 상기 역직렬화된 일련의 패킷의 패킷을 역패킷화하도록 구성된 패킷화기/역패킷화기를 포함하는, 장치.
  9. 청구항 8에 있어서,
    상기 제2 컨트롤러는 오류 정정, 상기 각각의 복수의 메모리 디바이스들의 메모리 디바이스에 대한 액세스, 상기 각각의 복수의 메모리 디바이스들의 메모리 디바이스에 대한 오버프로비저닝(overprovisioning) 동작, 및 상기 각각의 복수의 메모리 디바이스들의 메모리 디바이스에 대한 가비지(garbage) 수집 동작 중 적어도 하나를 제어하는, 장치.
  10. 청구항 8에 있어서,
    각각의 인터페이스 구성 요소 각각은 메모리-관리 엔진, 웨어-레벨링(wear-leveling) 엔진 및 상기 제2 컨트롤러에 커플링된 오류-정정 엔진 중 적어도 하나를 더 포함하는, 장치.
  11. 청구항 8에 있어서,
    각각의 인터페이스 구성 요소 각각은 상기 인터페이스에 해당하는 인터페이스 컨트롤러를 더 포함하는, 장치.
  12. 청구항 8에 있어서,
    상기 인터페이스는 직렬 인터페이스, SerDes 인터페이스, LVDS 인터페이스 및 직렬화된 ONFI 인터페이스를 포함하는 그룹으로부터 선택된 인터페이스를 포함하는, 장치.
  13. 방법에 있어서,
    컨트롤러에서, 복수의 제1 채널들 중 각각의 제1 채널들을 통해 복수의 인터페이스 구성 요소들 중 각각의 인터페이스 구성 요소들과 통신하는 단계;
    상기 복수의 인터페이스 구성 요소들 중 제1 인터페이스 구성 요소에서, 복수의 제2 채널들 중 제1의 제2 채널을 통해 제1 복수의 메모리 디바이스들과 통신하고, 상기 복수의 제2 채널들 중 제2의 제2 채널을 통해 제2 복수의 메모리 디바이스들과 통신하는 단계 - 제2 인터페이스 구성 요소는 상기 제1 인터페이스 구성 요소와 직렬로 커플링됨 - ;
    패킷을 역패킷화하지 않으면서,
    상기 제1 인터페이스 구성 요소에서, 상기 패킷의 패킷 식별자가 상기 제1 인터페이스 구성 요소의 인터페이스 식별자와 매칭되는지를 결정하는 것에 의해 상기 컨트롤러부터의 상기 패킷이 상기 제1 인터페이스 구성 요소에 대해 의도되었는지를 결정하는 단계;
    상기 패킷의 상기 패킷 식별자가 상기 제1 인터페이스 구성 요소의 인터페이스 식별자와 매칭되지 않는다는 결정에 응답하여, 상기 패킷을 상기 제1 인터페이스 구성요소로부터 상기 제2 인터페이스 구성 요소로 전송하는 단계; 및
    상기 제2 인터페이스 구성 요소에서, 복수의 제3 채널들 중 제1의 제3 채널을 통해 제3 복수의 메모리 디바이스들과 통신하고, 상기 복수의 제3 채널들 중 제2의 제3 채널을 통해 제4 복수의 메모리 디바이스들과 통신하는 단계
    를 포함하는, 방법.
  14. 청구항 13에 있어서,
    상기 제1 인터페이스 구성 요소에서, 상기 패킷이 상기 제1 인터페이스 구성 요소에 대해 의도된 것으로 결정한 것에 응답하여 상기 패킷에 대해 작용하는 단계를 더 포함하는, 방법.
  15. 청구항 13에 있어서,
    상기 제1 인터페이스 구성 요소에서, 상기 제2 인터페이스 구성요소로부터 상기 제1 인터페이스 구성 요소를 통해 상기 컨트롤러로 신호를 전달하는 단계를 더 포함하는, 방법.
  16. 방법에 있어서,
    제1 인터페이스 구성 요소에서, 컨트롤러로부터 패킷을 수신하는 단계;
    상기 제1 인터페이스 구성 요소에서, 상기 패킷의 패킷 식별자가 상기 제1 인터페이스 구성 요소의 인터페이스 식별자와 매칭되는지를 결정하는 것에 의해 상기 패킷이 상기 제1 인터페이스 구성 요소에 대해 의도되었는지를 결정하는 단계;
    상기 패킷이 상기 제1 인터페이스 구성 요소에 대해 의도되지 않은 것으로 결정한 것에 응답하여, 상기 패킷을 상기 제1 인터페이스 구성 요소로부터 상기 컨트롤러에 커플링된 제2 인터페이스 구성 요소로 전송하는 단계;
    상기 제2 인터페이스 구성 요소에서, 상기 제2 인터페이스 구성요소로 전송된 상기 패킷을 상기 제1 인터페이스 구성 요소로부터 수신하는 단계; 및
    상기 제2 인터페이스 구성 요소에서, 상기 제2 인터페이스 구성 요소가 직렬로 커플링된 복수의 인터페이스 구성 요소 중 마지막 인터페이스 구성 요소이고 상기 복수의 인터페이스 구성 요소 중 이전 인터페이스 구성 요소들에 의해 상기 패킷에 작용되지(be acted on) 않는 것에 응답해서, 상기 제2 인터페이스 구성 요소를 통해 상기 패킷을 역패킷화하는 단계를 포함하는, 방법.
  17. 청구항 16에 있어서, 상기 제1 인터페이스 구성 요소는 제1 메모리 디바이스에 커플링되며, 상기 제2 인터페이스 구성 요소는 제2 메모리 디바이스에 커플링되고 상기 제1 인터페이스 구성 요소와 직렬로 커플링되는, 방법.
  18. 청구항 17에 있어서,
    상기 제1 인터페이스 구성 요소에서, 상기 제1 메모리 디바이스로부터의 입력을 패킷화하는 단계; 및
    상기 패킷화된 입력을 상기 제1 인터페이스 구성 요소로부터 상기 컨트롤러로 전송하는 단계
    를 더 포함하는, 방법.
  19. 청구항 17에 있어서,
    상기 제1 인터페이스 구성 요소에서, 상기 패킷이 상기 제1 인터페이스 구성 요소에 대해 의도된 것으로 결정한 것에 응답하여 상기 컨트롤러로부터의 입력을 역패킷화하는 단계; 및
    상기 제1 인터페이스 구성 요소에서, 상기 역패킷화된 입력으로부터 상기 제1 메모리 디바이스에서 수행될 동작을 결정하는 단계
    를 더 포함하는, 방법.
  20. 청구항 16에 있어서,
    상기 제1 인터페이스 구성 요소에서, 상기 컨트롤러로의 출력들을 직렬화하는 단계; 및
    상기 제1 인터페이스 구성 요소에서, 상기 컨트롤러로부터의 입력들을 역직렬화하는 단계
    를 더 포함하는, 방법.
KR1020207000129A 2017-07-06 2018-06-25 인터페이스 구성 요소 KR102312747B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/642,906 US10140222B1 (en) 2017-07-06 2017-07-06 Interface components
US15/642,906 2017-07-06
PCT/US2018/039226 WO2019010023A1 (en) 2017-07-06 2018-06-25 INTERFACE COMPONENTS

Publications (2)

Publication Number Publication Date
KR20200008653A KR20200008653A (ko) 2020-01-28
KR102312747B1 true KR102312747B1 (ko) 2021-10-18

Family

ID=64315572

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207000129A KR102312747B1 (ko) 2017-07-06 2018-06-25 인터페이스 구성 요소

Country Status (6)

Country Link
US (4) US10140222B1 (ko)
EP (1) EP3649544A4 (ko)
KR (1) KR102312747B1 (ko)
CN (1) CN110869903B (ko)
TW (1) TWI682319B (ko)
WO (1) WO2019010023A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140222B1 (en) 2017-07-06 2018-11-27 Micron Technology, Inc. Interface components
KR102226712B1 (ko) 2020-10-14 2021-03-10 한수일 치과용 봉합 밴드
US20230068580A1 (en) * 2021-08-27 2023-03-02 Micron Technology, Inc. Memory device with multiple input/output interfaces

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011523109A (ja) * 2008-11-25 2011-08-04 株式会社日立製作所 ライト完了を検知する機能を有するストレージシステム
US20140040518A1 (en) * 2011-03-14 2014-02-06 Aniruddha Nagendran Udipi Memory interface
US20150049552A1 (en) 2013-08-19 2015-02-19 SK Hynix Inc. Data storage device
US20170060788A1 (en) 2015-08-27 2017-03-02 Samsung Electronics Co., Ltd. High performance transaction-based memory systems

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US813913A (en) 1905-02-17 1906-02-27 Joseph Reid Support for power-carrying lines.
US6215727B1 (en) * 2000-04-04 2001-04-10 Intel Corporation Method and apparatus for utilizing parallel memory in a serial memory system
US7013359B1 (en) * 2001-12-21 2006-03-14 Cypress Semiconductor Corporation High speed memory interface system and method
US20060195631A1 (en) 2005-01-31 2006-08-31 Ramasubramanian Rajamani Memory buffers for merging local data from memory modules
US7577039B2 (en) * 2005-11-16 2009-08-18 Montage Technology Group, Ltd. Memory interface to bridge memory buses
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
US7865674B2 (en) * 2007-08-31 2011-01-04 International Business Machines Corporation System for enhancing the memory bandwidth available through a memory module
US8131913B2 (en) * 2008-02-04 2012-03-06 Mosaid Technologies Incorporated Selective broadcasting of data in series connected devices
US8856434B2 (en) * 2008-09-26 2014-10-07 Cypress Semiconductor Corporation Memory system and method
US7957173B2 (en) * 2008-10-14 2011-06-07 Mosaid Technologies Incorporated Composite memory having a bridging device for connecting discrete memory devices to a system
US8254191B2 (en) * 2008-10-30 2012-08-28 Micron Technology, Inc. Switched interface stacked-die memory architecture
US8412880B2 (en) * 2009-01-08 2013-04-02 Micron Technology, Inc. Memory system controller to manage wear leveling across a plurality of storage nodes
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
US8164936B2 (en) * 2009-10-14 2012-04-24 Seagate Technology Llc Switched memory devices
US8909831B2 (en) * 2009-11-27 2014-12-09 International Business Machines Corporation Logic device
WO2011130007A1 (en) * 2010-04-14 2011-10-20 Rambus Inc. Levelization of memory interface for communicating with multiple memory devices
WO2011137541A1 (en) * 2010-05-07 2011-11-10 Mosaid Technologies Incorporated Method and apparatus for concurrently reading a plurality of memory devices using a single buffer
US9177609B2 (en) * 2011-06-30 2015-11-03 Sandisk Technologies Inc. Smart bridge for memory core
US8599623B1 (en) * 2011-12-23 2013-12-03 Suvolta, Inc. Circuits and methods for measuring circuit elements in an integrated circuit device
US9405355B2 (en) * 2012-08-21 2016-08-02 Micron Technology, Inc. Memory operation power management by data transfer time adjustment
KR101987426B1 (ko) * 2012-09-07 2019-09-30 삼성전자주식회사 불휘발성 메모리 모듈, 불휘발성 메모리 모듈을 포함하는 메모리 시스템, 그리고 불휘발성 메모리 모듈의 제어 방법
WO2014141692A1 (ja) 2013-03-13 2014-09-18 パナソニック株式会社 バス制御装置、中継装置およびバスシステム
US9213498B2 (en) * 2013-09-03 2015-12-15 Kabushiki Kaisha Toshiba Memory system and controller
US9471254B2 (en) * 2014-04-16 2016-10-18 Sandisk Technologies Llc Storage module and method for adaptive burst mode
US9846661B2 (en) * 2014-07-17 2017-12-19 Empire Technology Development Llc Utilization of solid state memory devices
US10008250B2 (en) * 2015-03-27 2018-06-26 Intel Corporation Single level cell write buffering for multiple level cell non-volatile memory
KR20170039451A (ko) * 2015-10-01 2017-04-11 삼성전자주식회사 메모리 모듈 및 이를 포함하는 반도체 메모리 시스템
US10146711B2 (en) * 2016-01-11 2018-12-04 Intel Corporation Techniques to access or operate a dual in-line memory module via multiple data channels
KR20170109108A (ko) * 2016-03-17 2017-09-28 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
US10459855B2 (en) * 2016-07-01 2019-10-29 Intel Corporation Load reduced nonvolatile memory interface
JP2018022383A (ja) * 2016-08-04 2018-02-08 東芝メモリ株式会社 メモリシステム
US10282097B2 (en) * 2017-01-05 2019-05-07 Western Digital Technologies, Inc. Storage system and method for thin provisioning
US10140222B1 (en) * 2017-07-06 2018-11-27 Micron Technology, Inc. Interface components

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011523109A (ja) * 2008-11-25 2011-08-04 株式会社日立製作所 ライト完了を検知する機能を有するストレージシステム
US20140040518A1 (en) * 2011-03-14 2014-02-06 Aniruddha Nagendran Udipi Memory interface
US20150049552A1 (en) 2013-08-19 2015-02-19 SK Hynix Inc. Data storage device
US20170060788A1 (en) 2015-08-27 2017-03-02 Samsung Electronics Co., Ltd. High performance transaction-based memory systems

Also Published As

Publication number Publication date
TW201907295A (zh) 2019-02-16
KR20200008653A (ko) 2020-01-28
EP3649544A1 (en) 2020-05-13
CN110869903B (zh) 2023-09-15
US10922247B2 (en) 2021-02-16
US20190012280A1 (en) 2019-01-10
CN110869903A (zh) 2020-03-06
US10140222B1 (en) 2018-11-27
US11436167B2 (en) 2022-09-06
TWI682319B (zh) 2020-01-11
WO2019010023A1 (en) 2019-01-10
US20210165751A1 (en) 2021-06-03
US10402351B2 (en) 2019-09-03
US20190370193A1 (en) 2019-12-05
EP3649544A4 (en) 2021-04-14

Similar Documents

Publication Publication Date Title
US11436167B2 (en) Interface components between a controller and memory devices
US11314422B2 (en) Non-volatile memory storage for multi-channel memory system
KR102300933B1 (ko) 듀얼 모드 변조를 지원하는 메모리 시스템
EP2263155B1 (en) Direct data transfer between slave devices
CN103019970B (zh) 存储装置及其控制方法
EP2474916B1 (en) Device identifier selection
KR20220104291A (ko) 메모리 디바이스의 단일 핀에서 별개 신호 멀티플렉싱
US9324435B2 (en) Data transmitting method, memory control circuit unit and memory storage apparatus
JP5533963B2 (ja) 構成可能な入出力ポートを伴うメモリモジュール
CN114579498B (zh) 跨多个存储器管芯封装的电力管理
US20110289243A1 (en) Communication control device, data communication method and program
KR20150095900A (ko) 스토리지 드라이브의 비휘발성 반도체 메모리에 그리고 상기 비휘발성 반도체 메모리로부터 데이터를 전달하기 위해 디스크립터들을 생성하는 장치 및 방법
US20220317899A1 (en) Storage system and method of operating the same
US10061720B2 (en) Storage system and signal transfer method
US9639285B2 (en) Distributed raid in a flash based memory system
CN109271108B (zh) 一种存储器控制装置及数据存储设备
US8402178B2 (en) Device to device flow control within a chain of devices
JP2013140541A (ja) 半導体記憶装置
CN111209221A (zh) 存储系统
US20220326855A1 (en) Peripheral component interconnect express interface device and operating method thereof
CN115512734A (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