KR20140027859A - 호스트 장치 및 이를 포함하는 시스템 - Google Patents

호스트 장치 및 이를 포함하는 시스템 Download PDF

Info

Publication number
KR20140027859A
KR20140027859A KR1020120136551A KR20120136551A KR20140027859A KR 20140027859 A KR20140027859 A KR 20140027859A KR 1020120136551 A KR1020120136551 A KR 1020120136551A KR 20120136551 A KR20120136551 A KR 20120136551A KR 20140027859 A KR20140027859 A KR 20140027859A
Authority
KR
South Korea
Prior art keywords
data
partial data
module
controller
storage
Prior art date
Application number
KR1020120136551A
Other languages
English (en)
Inventor
임전택
김태균
최재영
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20140027859A publication Critical patent/KR20140027859A/ko

Links

Images

Classifications

    • 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
    • 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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage 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
    • 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
    • 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/1673Details of memory controller using buffers
    • 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/0656Data buffering 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)

Abstract

용량 증설 및 동작 속도 향상에 기여할 수 있는 호스트 장치 및 이를 포함하는 시스템이 개시된다. 이를 위해 본 발명은 호스트 컨트롤러, 복수의 저장 모듈이 연결되도록 제공된 복수의 커넥터들, 및 호스트 컨트롤러와 복수의 커넥터들 사이에 연결된 단일 호스트 인터페이스 버스를 포함하고, 호스트 컨트롤러는, 덩어리 데이터를 복수의 커넥터들과 연결된 복수의 저장 모듈들에 나누어 기입시키기 위해, 단일 호스트 인터페이스 버스를 제어하도록 구성된 것을 특징으로 하는 호스트 장치를 제공한다.

Description

호스트 장치 및 이를 포함하는 시스템{Host device and system including the same}
본 발명은 호스트 장치에 관한 것으로, 더욱 상세하게는 공유 버스를 이용하는 호스트 장치 및 이를 포함하는 시스템에 관한 것이다.
최근 들어 동영상과 같은 고용량의 컨텐츠가 보편화되어가고 있어 저장 장치의 용량 증설에 대한 요구가 증대되고 있다. 또한 유무선 통신 기술과 함께 클라우드 컴퓨팅 기술이 발전하면서, 저장 장치의 동작 속도의 향상에 대한 요구도 증대되고 있다. 이와 같이 호스트 장치와의 데이터 통신을 통해 데이터의 기입/독출 동작을 수행하는 저장 장치에 대한 용량 증설 및 동작 속도 향상에 대한 필요성이 부각되고 있다.
본 발명이 해결하고자 하는 과제는, 용량 증설 및 동작 속도 향상에 기여할 수 있는 호스트 장치 및 이를 포함하는 시스템을 제공하는 것이다.
본 발명의 일 태양에 따른 시스템이 제공된다. 상기 시스템은, 호스트 장치, 제1 저장 모듈, 및 제2 저장 모듈 간의 데이터 통신을 수행하도록 구성된 시스템으로서, 상기 호스트 장치는, 호스트 컨트롤러; 상기 제1 저장 모듈이 연결되도록 제공된 제1 커넥터; 상기 제2 저장 모듈이 연결되도록 제공된 제2 커넥터; 및 상기 호스트 컨트롤러와 상기 제1 커넥터 및 상기 제2 커넥터 사이에 연결된 단일 호스트 인터페이스 버스를 포함하고, 상기 호스트 컨트롤러는, 덩어리 데이터(chunk data)를 상기 제1 커넥터와 연결된 제1 저장 모듈 및 상기 제2 커넥터와 연결된 제2 저장 모듈에 나누어 기입시키기 위해, 상기 단일 호스트 인터페이스 버스를 제어하도록 구성될 수 있다.
본 발명의 일 예에 따르면, 상기 덩어리 데이터는 제1 부분 데이터 및 제2 부분 데이터를 포함하고, 상기 호스트 컨트롤러는 상기 덩어리 데이터의 기입 동작 동안, 상기 제1 부분 데이터를 상기 제1 저장 모듈에 전달하고, 상기 제2 부분 데이터를 상기 제2 저장 모듈에 전달하도록 구성될 수 있다.
본 발명의 다른 예에 따르면, 상기 제1 저장 모듈은, 상기 단일 호스트 인터페이스 버스와 연결되며 상기 덩어리 데이터의 제1 부분 데이터를 수신하도록 구성된 제1 모듈 컨트롤러; 및 상기 제1 모듈 컨트롤러와 연결되며 상기 제1 부분 데이터를 저장하도록 구성된 제1 저장 유닛들을 포함하고, 상기 제2 저장 모듈은, 상기 단일 호스트 인터페이스 버스와 연결되며 상기 덩어리 데이터의 제2 부분 데이터를 수신하도록 구성된 제2 모듈 컨트롤러; 및 상기 제2 모듈 컨트롤러와 연결되며 상기 제2 부분 데이터를 저장하도록 구성된 제1 저장 유닛들을 포함할 수 있다.
본 발명의 다른 예에 따르면, 상기 제1 모듈 컨트롤러는 상기 제1 부분 데이터를 상기 제1 저장 유닛들로 기입하고, 이와 동시에 상기 제2 모듈 컨트롤러는 상기 제2 부분 데이터를 상기 제2 저장 유닛들로 기입할 수 있다.
본 발명의 다른 예에 따르면, 상기 제1 저장 모듈은 추가 부분 데이터를 저장하도록 구성된 버퍼 메모리를 더 포함하고, 상기 제1 모듈 컨트롤러는, 상기 제1 부분 데이터의 상기 제1 저장 유닛들로의 기입 동작을 수행하는 동안, 상기 호스트 장치로부터 상기 추가 부분 데이터를 수신하여 상기 버퍼 메모리에 저장하도록 구성될 수 있다.
본 발명의 다른 예에 따르면, 상기 버퍼 메모리의 용량은 상기 기입 동작에 소요되는 시간 동안 수신되는 상기 추가 부분 데이터의 용량과 대응될 수 있다.
본 발명의 다른 예에 따르면, 상기 제1 부분 데이터는 복수의 제1 조각 데이터들을 포함하고, 상기 제1 모듈 컨트롤러는 상기 복수의 제1 조각 데이터들을 상기 제1 저장 유닛들에 각각 저장하도록 구성되며, 상기 제2 부분 데이터는 복수의 제2 조각 데이터들을 포함하고, 상기 제2 모듈 컨트롤러는 상기 복수의 제2 조각 데이터들을 상기 제2 저장 유닛들에 각각 저장하도록 구성될 수 있다.
본 발명의 다른 예에 따르면, 상기 제1 저장 유닛들의 개수는, 상기 제1 부분 데이터의 용량을 상기 복수의 제1 조각 데이터들의 용량으로 나눈 값 이상일 수 있다.
본 발명의 다른 예에 따르면, 상기 제1 저장 유닛들 각각은 비휘발성 메모리 장치의 페이지-기입 단위(page-storing unit)인 플레인(plane)과 대응될 수 있다.
본 발명의 다른 예에 따르면, 상기 제1 저장 모듈은 복수의 메모리 패키지들을 포함하고, 상기 복수의 메모리 패키지들 각각은 적어도 하나의 메모리 칩을 포함하며, 상기 적어도 하나의 메모리 칩 각각은 단일-플레인(single-plane) 타입 또는 복수-플레인(plural-plane) 타입의 메모리 칩으로 구현될 수 있다.
본 발명의 다른 태양에 따른 호스트 장치가 제공된다. 상기 호스트 장치는, 호스트 컨트롤러; 복수의 저장 모듈이 연결되도록 제공된 복수의 커넥터들; 및 상기 호스트 컨트롤러와 상기 복수의 커넥터들 사이에 연결된 단일 호스트 인터페이스 버스를 포함하고, 상기 호스트 컨트롤러는, 덩어리 데이터(chunk data)를 상기 복수의 커넥터들과 연결된 상기 복수의 저장 모듈들에 나누어 기입시키기 위해, 상기 단일 호스트 인터페이스 버스를 제어하도록 구성될 수 있다.
본 발명의 일 예에 따르면, 상기 덩어리 데이터는 복수의 부분 데이터들을 포함하고, 상기 호스트 컨트롤러는 상기 덩어리 데이터를 상기 부분 데이터들로 나누고, 상기 부분 데이터들을 상기 저장 모듈들에 나누어 기입하도록 구성될 수 있다.
본 발명의 다른 예에 따르면, 상기 저장 모듈들 각각은 복수의 저장 영역들 및 모듈 컨트롤러를 포함하고, 상기 호스트 컨트롤러는, 상기 복수의 부분 데이터들 중 상기 저장 영역들의 개수와 대응되는 수의 부분 데이터들을, 상기 모듈 컨트롤러로 전송하도록 구성될 수 있다.
본 발명의 다른 예에 따르면, 상기 호스트 컨트롤러는, 상기 부분 데이터의 용량, 상기 저장 영역들의 개수, 및 상기 저장 모듈들의 개수를 곱한 용량의 데이터를 실질적으로 동시에 기입하도록 구성될 수 있다.
본 발명의 다른 예에 따르면, 상기 모듈 컨트롤러가 상기 복수의 부분 데이터들 중 상기 저장 영역들의 개수와 대응되는 수의 부분 데이터들을 상기 저장 영역들에 각각 저장하는 동작을 수행하는 동안, 상기 호스트 컨트롤러는 상기 복수의 부분 데이터들 중 추가 부분 데이터들을 상기 모듈 컨트롤러로 전송하도록 구성될 수 있다.
본 발명의 다른 예에 따르면, 상기 커넥터들은 상기 저장 모듈들을 장착하기 위해 제공된 복수의 슬롯들을 포함할 수 있다.
PCIe, SATA, USF와 같은 종래 기술의 경우, 호스트 인터페이스 버스당 하나의 저장 모듈만이 연결되기 때문에, 2개 이상의 저장 모듈을 사용하고자 하는 경우 별도의 호스트 인터페이스 버스를 사용하여야 한다는 문제가 있었다. 또한, 호스트 인터페이스 버스를 추가하지 않고 저장 모듈의 용량을 증가시키기 위해서는, 기존의 저장 모듈을 제거하고 새로운 고용량의 저장 모듈을 호스트 인터페이스 버스와 연결시켜야 했으며, 저장 모듈을 증가시킨다고 하더라도 저장 용량만이 증가될 뿐 쓰기 등의 데이터 전송 속도는 증가되지 않아 동작 속도 향상에 대한 요구에 부응하기 어려웠다.
그러나 본 발명의 기술적 사상에 의한 실시예들에 따른 호스트 장치 및 시스템은 단일 공유 인터페이스 버스를 사용함으로써, 간단하게 저장 모듈이 추가될 수 있고, 그에 따라 저장 용량이 증설될 수 있다. 나아가, 용량을 증가시키기 위해 저장 모듈을 추가함으로써, 더욱 빠른 속도로 데이터의 기입이 가능해진다. 예를 들어, 본 발명의 일 실시예에서 단일 호스트 인터페이스 버스와 연결된 저장 모듈의 개수가 8개인 경우, 4개의 저장 모듈이 연결된 실시예에 비해 2배 빠른 속도로 데이터의 기입 동작이 수행될 수 있다.
도 1은 본 발명의 기술적 사상에 의한 실시예에 따른 호스트 장치 및 이를 포함하는 시스템을 개략적으로 나타낸 블록도이다.
도 2는 본 발명의 기술적 사상에 의한 일부 실시예들에 따른 호스트 장치 및 이를 포함하는 시스템을 개략적으로 나타낸 블록도이다.
도 3 및 도 4는 도 2의 저장 모듈의 일 예인 SSS 모듈을 개략적으로 나타낸 평면도들이다.
도 5는 본 발명의 기술적 사상에 의한 다른 실시예들에 따른 호스트 장치 및 이를 포함하는 시스템을 개략적으로 나타낸 블록도이다.
도 6은 본 발명의 기술적 사상에 의한 또 다른 실시예들에 따른 호스트 장치 및 이를 포함하는 시스템을 개략적으로 나타낸 블록도이다.
도 7은 본 발명의 기술적 사상에 의한 또 다른 실시예들에 따른 저장 모듈을 개략적으로 나타낸 블록도이다.
도 8은 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터 전송 방법을 개략적으로 나타낸 흐름도이다.
도 9는 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터 전송 방법을 개략적으로 나타낸 흐름도이다.
도 10은 본 발명의 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 11은 본 발명의 저장 모듈들을 포함하는 서버 및 네트워크 시스템을 나타내는 도면이다.
도 12는 본 발명의 기술적 사상에 의한 실시예들에 따른 SSS 모듈을 개략적으로 나타낸 블록도이다.
도 13은 본 발명의 기술적 사상에 의한 다른 실시예들에 따른 SSS 모듈을 개략적으로 나타낸 블록도이다.
도 14는 도 12 및 도 13의 크로스바 스위치의 입출력 신호를 나타낸 블록도이다.
도 15는 본 발명의 기술적 사상에 의한 실시예들에 따른 크로스바 스위치를 개략적으로 나타낸 블록도이다.
도 16 및 도 17은 본 발명의 기술적 사상에 의한 실시예들에 따른 상태 표시 신호의 타이밍도를 나타낸 그래프들이다.
도 18은 본 발명의 기술적 사상에 의한 또 다른 실시예들에 따른 저장 모듈을 개략적으로 나타낸 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 “포함한다(comprise)” 및/또는 “포함하는(comprising)”은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 “및/또는”은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다.
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열의 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 본 발명의 실시예들은 본 발명의 이상적인 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명한다. 도면들에 있어서, 예를 들면, 제조 기술 및/또는 공차에 따라, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 되며, 예를 들면 제조상 초래되는 형상의 변화를 포함하여야 한다.
도 1은 본 발명의 기술적 사상에 의한 실시예에 따른 호스트 장치(HOST) 및 이를 포함하는 시스템(SYS)을 개략적으로 나타낸 블록도이다.
도 1을 참조하면, 호스트 장치(HOST)는 호스트 컨트롤러(HC), 단일 호스트 인터페이스 버스(SHIB), 및 커넥터들(CN)을 포함할 수 있다. 시스템(SYS)은 호스트 장치(HOST) 및 복수의 저장 모듈들(SM)을 포함하며, 단일 호스트 인터페이스 버스(SHIB)를 통해 호스트 장치(HOST)와 복수의 저장 모듈들(SM) 간의 데이터 통신을 수행하도록 구성될 수 있다.
호스트 컨트롤러(HC)는 호스트 장치(HOST)를 제어하도록 구성된 연산 장치를 포함할 수 있다. 예를 들어, 상기 연산 장치는, 예를 들어 코어(core)와 캐시 메모리(cache memory)를 포함하는 CPU(central process unit), 및 DSP(digital signal processor)를 포함할 수 있다. 호스트 컨트롤러(HC)는, 덩어리 데이터(CD)(chunk data)를 복수의 저장 모듈들(SM)에 나누어 기입시키기 위해, 단일 호스트 인터페이스 버스(SHIB)를 제어하도록 구성될 수 있다.
단일 호스트 인터페이스 버스(SHIB)는 커넥터들(CN)과 호스트 컨트롤러(HC) 사이에 위치될 수 있다. 복수의 커넥터들(CN)은 단일 호스트 인터페이스 버스(SHIB)를 공유할 수 있다. 예를 들어, 복수의 커넥터들(CN)은 상기 공유된 단일 인터페이스 버스를 통해 호스트 컨트롤러(HC)와 연결될 수 있다. 예를 들어, 커넥터들(CN)은 저장 모듈들(SM)을 장착하기 위해 제공된 복수의 슬롯들일 수 있다. 그러나 본 발명은 이에 제한되지 아니하며, 커넥터들(CN)은 저장 모듈들(SM)이 연결되기 위한 장소로서 기능할 수 있다.
복수의 저장 모듈들(SM)(예를 들어, 제1 저장 모듈(SM1) 및 제2 저장 모듈(SM2))이 연결되기 위해 커넥터들(CN)(예를 들어, 제1 커넥터(CN1) 및 제2 커넥터(CN2))이 제공될 수 있다. 호스트 컨트롤러(HC)는, 덩어리 데이터(CD)(chunk data)를 복수의 커넥터들(CN)과 연결된 복수의 저장 모듈들(SM)에 나누어 기입시키기 위해, 단일 호스트 인터페이스 버스(SHIB)를 제어하도록 구성될 수 있다. 이를 위해, 호스트 컨트롤러(HC)는 상기 덩어리 데이터(CD)를 부분 데이터들로 나누고, 상기 부분 데이터들을 저장 모듈들(SM)에 각각 기입하도록 구성될 수 있다.
예를 들어, 호스트 컨트롤러(HC)는, 제1 부분 데이터(PD1) 및 제2 부분 데이터(PD2)로 구성된 덩어리 데이터(CD)를 제1 커넥터(CN1)과 연결된 제1 저장 모듈(SM1) 및 제2 커넥터(CN2)과 연결된 제2 저장 모듈(SM2)에 나누어 기입시키기 위해, 단일 호스트 인터페이스 버스(SHIB)를 제어하도록 구성될 수 있다.
이 경우, 덩어리 데이터(CD)의 기입 동작 동안, 호스트 컨트롤러(HC)는 먼저 제1 부분 데이터(PD1)가 제1 저장 모듈(SM1)에 기입되도록 단일 호스트 인터페이스 버스(SHIB)를 제어하고, 이후 제2 부분 데이터(PD2)가 제2 저장 모듈(SM2)에 기입되도록 단일 호스트 인터페이스 버스(SHIB)를 제어할 수 있다. 그에 따라 제1 부분 데이터(PD1)는 단일 호스트 인터페이스 버스(SHIB)를 통해 제1 저장 모듈(SM1)로 전달되고, 제2 부분 데이터(PD2)는 단일 호스트 인터페이스 버스(SHIB)를 통해 제2 저장 모듈(SM2)로 전달될 수 있다.
제1 저장 모듈(SM1)은 제1 모듈 컨트롤러(MC1), 제1 메모리 유닛(MU1), 및 제1 버퍼 메모리(BM1)를 포함할 수 있다. 제1 모듈 컨트롤러(MC1)는 단일 호스트 인터페이스 버스(SHIB)와 연결되며 덩어리 데이터(CD)의 제1 부분 데이터(PD1)를 수신하도록 구성될 수 있다. 제1 메모리 유닛(MU1)은 제1 모듈 컨트롤러(MC1)와 연결되며 제1 부분 데이터(PD1)를 저장하도록 구성될 수 있다. 제1 모듈 컨트롤러(MC1)는 제1 부분 데이터(PD1)를 제1 메모리 유닛(MU1)에 기입하거나, 제1 메모리 유닛(MU1)에 저장된 부분 데이터를 독출하도록 구성될 수 있다.
제2 저장 모듈(SM2)은 제2 모듈 컨트롤러(MC2), 제2 메모리 유닛(MU2), 및 제2 버퍼 메모리(BM2)를 포함할 수 있으며, 이들 구성요소는 제1 저장 모듈(SM1)의 제1 모듈 컨트롤러(MC1), 제1 메모리 유닛(MU1), 및 제1 버퍼 메모리(BM1)와 동일하거나 유사한 기능을 수행할 수 있다.
제1 저장 모듈(SM1)로 전달된 제1 부분 데이터(PD1)는 제1 모듈 컨트롤러(MC1)에 의해 제1 메모리 유닛(MU1)으로 저장될 수 있다. 또한, 이와 동시에 제2 저장 모듈(SM2)로 전달된 제2 부분 데이터(PD2)는 제2 모듈 컨트롤러(MC2)에 의해 제2 메모리 유닛(MU2)으로 저장될 수 있다. 즉, 제1 부분 데이터(PD1)의 제1 저장 모듈(SM1)로의 기입 동작이 수행되는 동안, 제2 부분 데이터(PD2)의 제2 저장 모듈(SM2)로의 기입 동작이 병렬적으로 수행될 수 있다.
예를 들어, 호스트 장치(HOST)가 덩어리 데이터(CD)를 제1 저장 모듈(SM1) 및 제2 저장 모듈(SM2)에 기입하고자 하는 경우, 호스트 컨트롤러(HC)는 제1 부분 데이터(PD1)를 제1 저장 모듈(SM1)에 전송하고, 이후 제2 부분 데이터(PD2)를 제2 저장 모듈(SM2)에 전송할 수 있다.
제1 부분 데이터(PD1)의 제1 저장 모듈(SM1)로의 전송이 완료되면, 제1 모듈 컨트롤러(MC1)는 제1 부분 데이터(PD1)를 제1 저장 모듈(SM1)에 저장하는 제1 기입 동작을 수행할 수 있다. 한편, 호스트 컨트롤러(HC)는 제2 부분 데이터(PD2)를 제2 저장 모듈(SM2)로 전송할 수 있다. 제2 부분 데이터(PD2)의 제2 저장 모듈(SM2)로의 전송이 완료되면, 제2 모듈 컨트롤러(MC2)는 제2 부분 데이터(PD2)를 제2 저장 모듈(SM2)에 저장하는 제2 기입 동작을 수행할 수 있다.
제2 부분 데이터(PD2)의 제2 저장 모듈(SM2)로의 전송 동작은 상기 제1 기입 동작이 완료되기 이전에 완료될 수 있다. 이는 직렬 데이터 통신 방식을 이용하는 단일 호스트 인터페이스 버스(SHIB)를 통해 제2 부분 데이터(PD2)가 제2 저장 모듈(SM2)로 신속하게 전송될 수 있기 때문이다. 예를 들어, 호스트 컨트롤러(HC)가 단일 호스트 인터페이스 버스(SHIB)를 통해 64 킬로바이트(KB)의 부분 데이터를 저장 모듈로 전송하는데 걸리는 시간은 저장 모듈이 64 KB의 부분 데이터를 메모리 유닛에 저장하는데 걸리는 시간에 비해 30배 작을 수 있다.
이렇듯 호스트 컨트롤러(HC)의 데이터 전송 속도가 매우 빠르기 때문에, 제1 기입 동작(즉, 제1 모듈 컨트롤러(MC1)에 의해 제1 부분 데이터(PD1)가 제1 저장 모듈(SM1)에 저장되는 동작)이 완료되기 전에, 제2 기입 동작(즉, 제2 모듈 컨트롤러(MC2)에 의해 제2 부분 데이터(PD2)가 제2 저장 모듈(SM2)에 저장되는 동작)이 시작될 수 있다. 따라서 상기 제1 기입 동작과 상기 제2 기입 동작이 병렬적으로 수행될 수 있다. 상기 제1 기입 동작과 상기 제2 기입 동작이 병렬적으로 수행되므로, 결과적으로 데이터의 신속한 기입 동작이 수행될 수 있다.
제1 저장 모듈(SM1)의 제1 버퍼 메모리(BM1) 및 제2 저장 모듈(SM2)의 제2 버퍼 메모리(BM2)는 추가 부분 데이터들(APD1, APD2)을 저장하도록 구성될 수 있다. 예를 들어, 제1 모듈 컨트롤러(MC1)는, 제1 부분 데이터(PD1)의 제1 메모리 유닛(MU1)으로의 제1 기입 동작이 수행되는 동안, 호스트 장치(HOST)로부터 추가 부분 데이터(APD1)를 수신하고 추가 부분 데이터(APD1)를 제1 버퍼 메모리(BM1)에 저장할 수 있다. 상기 제1 기입 동작이 완료되면, 제1 모듈 컨트롤러(MC1)는 제1 버퍼 메모리(BM1)에 저장된 상기 추가 부분 데이터를 독출하고 상기 독출된 추가 부분 데이터를 제1 메모리 유닛(MU1)에 기입할 수 있다. 제2 모듈 컨트롤러(MC2)가 제1 모듈 컨트롤러(MC1)와 유사한 동작을 수행할 수 있음은 전술한 바와 같다.
더욱 구체적으로, 덩어리 데이터(CD)가 제1 부분 데이터(PD1), 제2 부분 데이터(PD2), 제1 추가 부분 데이터(APD1), 및 제2 추가 부분 데이터(APD2)로 구성된 경우, 호스트 컨트롤러(HC)는, 먼저 제1 부분 데이터(PD1)를 제1 저장 모듈(SM1)에 전송하고, 이후 제2 부분 데이터(PD2)를 제2 저장 모듈(SM2)에 전송할 수 있다. 이후 전술한 바와 같이 제1 부분 데이터(PD1)가 제1 메모리 유닛(MU1)으로 저장되는 제1 기입 동작과 제2 부분 데이터(PD2)가 제2 메모리 유닛(MU2)으로 저장되는 제2 기입 동작이 병렬적으로 수행될 수 있다.
한편, 호스트 컨트롤러(HC)가 제2 부분 데이터(PD2)를 제2 저장 모듈(SM2)로 전송한 후에, 호스트 컨트롤러(HC)는 제1 추가 부분 데이터(APD1)를 제1 저장 모듈(SM1)로 전송할 수 있다. 제1 부분 데이터(PD1)가 제1 메모리 유닛(MU1)으로 기입되는 제1 기입 동작이 완료되지 않았기 때문에, 제1 추가 부분 데이터(APD1)는 제1 메모리 유닛(MU1)으로 기입될 수 없을 것이다. 상기 제1 기입 동작 동안, 제1 모듈 컨트롤러(MC1)는 상기 제1 추가 부분 데이터(APD1)를 제1 버퍼 메모리(BM1)에 저장할 수 있다. 상기 제1 기입 동작이 완료되면, 제1 모듈 컨트롤러(MC1)는 제1 버퍼 메모리(BM1)에 저장된 제1 추가 부분 데이터(APD1)를 독출하고, 상기 독출된 제1 추가 부분 데이터(APD1)를 제1 메모리 유닛(MU1)에 기입할 수 있다.
제1 추가 부분 데이터(APD1)의 제1 저장 모듈(SM1)로의 전송이 완료된 후, 호스트 컨트롤러(HC)는 제2 추가 부분 데이터(APD2)를 제2 저장 모듈(SM2)로 전송할 수 있다. 제2 부분 데이터(PD2)가 제2 메모리 유닛(MU2)으로 기입되는 제2 기입 동작이 완료되지 않았기 때문에, 제2 추가 부분 데이터(APD2)는 제2 메모리 유닛(MU2)으로 기입될 수 없을 것이다. 상기 제2 기입 동작 동안, 제2 모듈 컨트롤러(MC2)는 상기 제2 추가 부분 데이터(APD2)를 제2 버퍼 메모리(BM2)에 저장할 수 있다. 상기 제2 기입 동작이 완료되면, 제2 모듈 컨트롤러(MC2)는 제2 버퍼 메모리(BM2)에 저장된 제2 추가 부분 데이터(APD2)를 독출하고, 상기 독출된 제2 추가 부분 데이터(APD2)를 제2 메모리 유닛(MU2)에 기입할 수 있다.
제1 버퍼 메모리(BM1)의 용량은 제1 기입 동작에 소요되는 시간 동안 수신되는 추가 부분 데이터의 용량과 대응될 수 있다. 예를 들어, 제1 저장 모듈(SM1)이 SSS 모듈(solid state storage module)로서 제1 메모리 유닛(MU1)이 플래시 메모리로 구성된 경우, 제1 기입 동작을 수행하기 위해서는 블록 소거 동작과 프로그램 동작이 수행되어야 하며, 상기 동작들을 수행하는데 3 밀리세컨드(ms)가 소요될 수 있다. 상기 3 ms 동안 수신되는(또는 수신될 수 있는) 추가 부분 데이터의 용량이 약 60 MB인 경우, 제1 버퍼 메모리(BM1)는 64 메가바이트(MB)로 설정될 수 있다. 만일 상기 제1 기입 동작을 수행하는데 6 ms가 소요되는 경우, 제1 버퍼 메모리(BM1)는 128 MB로 설정될 수도 있다.
SSS 모듈이 플래시 메모리에 데이터를 기입하는 동안 호스트 컨트롤러(HC)가 계속적으로 상기 SSS 모듈에 데이터를 기입하고자 하는 경우, 모듈 컨트롤러는 호스트 컨트롤러부터 데이터를 수신하여 DRAM(dynamic random access memory)과 같은 버퍼 메모리에 상기 데이터를 임시 기입할 수 있다. 상기 버퍼 메모리의 용량은, 모듈 컨트롤러의 플래시 메모리로의 데이터 기입 동작에 소요되는 시간과 대응되도록 설정될 수 있고, 그에 따라 버퍼 메모리의 용량을 최소화하여 비용을 줄이는 반면 성능을 극대화시킬 수 있다.
버퍼 메모리가 제공됨으로써, 호스트 컨트롤러는 준비가 된 SSS 모듈 순서에 따라 돌아가면서 추가 부분 데이터를 기입할 수 있다. 따라서 SSS 모듈 내에서의 플래시 메모리로의 기입 동작과, 호스트 차원에서의 SSS 모듈 내 버퍼 메모리로의 기입 동작이 동시에 수행될 수 있다.
도 2는 본 발명의 기술적 사상에 의한 일부 실시예들에 따른 호스트 장치(HOST) 및 이를 포함하는 시스템을 개략적으로 나타낸 블록도이다.
도 2를 참조하면, 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)은 SSS 모듈들(solid state storage modules)로서, 상기 SSS 모듈들은 단일 호스트 인터페이스 버스(SHIB)를 공유하여 호스트 컨트롤러(HC)와 연결될 수 있다. 각각의 SSS 모듈은 메모리 유닛, 버퍼 메모리, 및 메모리 유닛과 버퍼 메모리 사이에 연결된 모듈 컨트롤러를 포함할 수 있다.
호스트 컨트롤러(HC)는 각 SSS 모듈들에 대한 기입 동작을 수행할 때, 다음과 같은 방법으로 쓰기를 진행하며, 이때 각 SSS 모듈들의 메모리 유닛 구조는 상기 기입 동작에 따라 구성될 수 있다.
<호스트 컨트롤러의 SSS 모듈로의 기입 동작 및 메모리 유닛 구조>
도 2를 참조하면, 호스트 컨트롤러(HC)는, SSS 모듈에 데이터를 쓸 때, 부분 데이터의 기입 단위(storing unit)의 크기(예를 들어, 64 킬로바이트(KB))만큼의 데이터를, 준비된 각각의 SSS 모듈들에 돌아가면서 쓰도록 구성될 수 있다. 이 때 모듈 컨트롤러에 연결된 메모리 유닛 상의 전체 플레인(plane) 수는 상기 기입 단위들에 포함된 페이지의 개수 이상일 수 있다. 예를 들어, 제1 부분 데이터(PD1)의 기입 단위가 64 KB이고 페이지의 용량이 4 KB인 경우, 상기 기입 단위들에 포함된 페이지의 개수는 16개일 수 있다. 이 경우 제1 메모리 유닛(MU1)은 16개 이상의 플레인을 포함하도록 구성될 수 있다.
여기서 플레인(plane)은 메모리 장치의 페이지(page)가 기입되는 물리적 공간(예를 들어, 플래시 메모리 어레이)을 의미하는, 페이지-기입 단위(page-storing unit)로 정의될 수 있다. 플레인 및 메모리 유닛의 구성에 대해서는 도 3 및 도 4에서 더욱 구체적으로 설명하기로 한다.
일 실시예에서, 호스트 컨트롤러(HC)는 256 KB의 덩어리 데이터(CD)를 64 KB의 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4)로 분할하고, 상기 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4)를 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 전송할 수 있다. 예를 들어, 제1 저장 모듈(SM1), 제4 저장 모듈(SM4), 제2 저장 모듈(SM2), 제3 저장 모듈(SM3) 순으로 각각의 저장 모듈의 쓰기 준비가 완료 되었다면, 상기 순서에 따라 64 KB의 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4)를 저장할 수 있다. 이 경우, 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 저장된 부분 데이터는 다음 표 1과 같을 것이다.
제1 저장 모듈(SM1) 제2 저장 모듈(SM2) 제3 저장 모듈(SM3) 제4 저장 모듈(SM4)
제1 부분 데이터(PD1) 제3 부분 데이터(PD3) 제4 부분 데이터(PD4) 제2 부분 데이터(PD2)
다른 예에서, 제1 저장 모듈(SM1), 제2 저장 모듈(SM2), 제3 저장 모듈(SM3), 제4 저장 모듈(SM4) 순으로 각각의 저장 모듈의 쓰기 준비가 완료 되었다면, 상기 순서에 따라 64 KB의 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4)가 저장될 수 있다. 이 경우, 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 저장된 부분 데이터는 다음 표 2과 같을 것이다.
제1 저장 모듈(SM1) 제2 저장 모듈(SM2) 제3 저장 모듈(SM3) 제4 저장 모듈(SM4)
제1 부분 데이터(PD1) 제2 부분 데이터(PD2) 제3 부분 데이터(PD3) 제4 부분 데이터(PD4)
표 2에 나타난 예에서, 제1 모듈 컨트롤러 내지 제4 모듈 컨트롤러(MC1-MC4) 각각은 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4)를 제1 메모리 유닛 내지 제 4 메모리 유닛(MU1-MU4)에 각각 기입할 수 있다.
예를 들어, 제1 저장 모듈(SM1)이 플래시 메모리 장치로 구성된 플래시 모듈이고, 상기 플래시 메모리 장치의 페이지(page)의 용량이 4 KB인 경우, 제1 모듈 컨트롤러(MC1)는 페이지-기입 단위(page-storing unit)인 4KB 크기 단위로 64 KB의의 제1 부분 데이터(PD1)를 분할하여 16개의 조각 데이터들을 생생하고, 제1 모듈 컨트롤러(MC1)는 상기 조각 데이터들을 16개의 플레인들에 동시에 기입하는 기입 동작을 수행할 수 있다. 즉, 조각 데이터는 부분 데이터가 분할된 부분 데이터의 하위 개념으로서, 예를 들어 페이지 데이터일 수 있다.
이 경우, 제1 메모리 유닛(MU1)은 16개 이상의 플레인을 갖도록 구성될 수 있다. 즉, 본 발명의 기술적 사상에 따르면, 메모리 모듈의 플레인의 구성이 단일 호스트 인터페이스 버스의 데이터 전송 방식에 따라 결정될 수 있다. 다른 예로, 덩어리 데이터가 1024 KB이고, 8개로 데이터가 분할되어 각각의 부분 데이터의 크기가 128 KB이며, 플래시 메모리 장치의 페이지 용량이 4 KB인 경우, 제1 모듈 컨트롤러(MC1)는 부분 데이터를 구성하는 조각 데이터들을 32개의 플레인들에 동시에 기입하는 기입 동작을 수행하도록 구성될 수 있다. 또한, 메모리 유닛은 32개 이상의 플레인을 갖도록 구성될 수 있다.
도 3 및 도 4는 도 2의 저장 모듈의 일 예인 SSS 모듈을 개략적으로 나타낸 평면도이다.
도 3 및 도 4를 참조하면, 제1 저장 모듈(SM1)은 제1 입출력 유닛(IO1), 제1 모듈 컨트롤러(MC1), 제1 메모리 유닛(MU1), 및 제1 버퍼 메모리(BM1)를 포함할 수 있다.
제1 입출력 유닛(IO1)은 호스트 컨트롤러(HC)와 데이터 통신을 수행할 수 있다. 즉, 제1 입출력 유닛(IO1)은 제1 메모리 유닛(MU1) 또는 제1 버퍼 메모리(BM1)에 기록할 데이터를 호스트 컨트롤러(HC)로부터 전송 받거나, 제1 메모리 유닛(MU1)으로부터 독출된 데이터를 호스트 컨트롤러(HC)로 전달할 수 있다. 제1 모듈 컨트롤러(MC1), 제1 메모리 유닛(MU1), 및 제1 버퍼 메모리(BM1)에 대한 설명은 도 1 및 도 2에서 설명한 바와 같으므로, 이하 생략하기로 한다.
도 2에서 설명한 바와 같이, 모듈 컨트롤러에 연결된 메모리 유닛 상의 전체 플레인(plane) 수는 부분 데이터의 기입 단위들에 포함된 페이지의 개수 이상일 수 있다. 예를 들어, 제1 부분 데이터(PD1)의 기입 단위가 64 KB이고 페이지의 용량이 4 KB인 경우, 상기 기입 단위들에 포함된 페이지의 개수는 16개일 수 있다. 이 경우 제1 메모리 유닛(MU1)은 16개 이상의 플레인들을 포함하도록 구성될 수 있다.
메모리 유닛의 플레인은 다양한 형태로 구현될 수 있다. 메모리 유닛은 복수의 메모리 패키지들을 포함할 수 있다. 상기 복수의 메모리 패키지들 각각은 적어도 하나의 메모리 칩을 포함할 수 있다. 상기 적어도 하나의 메모리 칩에는 플레인이 구현될 수 있다. 메모리 칩은 메모리 칩 각각에 하나의 플레인(도 3의 PL)이 구현된 단일-플레인 타입의 메모리 칩(도 3의 SPC)일 수도 있고, 메모리 칩 각각에 복수의 플레인들(도 4의 PL)이 구현된 복수-플레인 타입의 메모리 칩(도 4의 MPC)으로 구현될 수도 있다.
예를 들어, 제1 메모리 유닛(MU1)을 16개의 플레인을 포함하도록 구성하되, 복수의 메모리 패키지들 각각에 포함된 메모리 칩이 단일-플레인 타입의 메모리 칩일 수 있다. 이 경우, 도 3에 나타난 바와 같이, 제1 메모리 유닛(MU1)에 8개의 메모리 패키지들이 탑재된 경우, 메모리 패키지들 각각은 2개의 단일-플레인 타입의 메모리 칩(SPC)을 포함할 수 있다. 상기 단일-플레인 타입의 메모리 칩은 1개의 플레인(PL)을 포함할 수 있다. 따라서 제1 부분 데이터(PD1)를 제정하기 위해 16개의 메모리 칩들이 제1 메모리 유닛(MU1)에 제공될 수 있다. 16개의 메모리 칩들이 각각 4 KB의 조각 데이터를 저장함으로써, 64 KB의 제1 부분 데이터(PD1)가 제1 저장 모듈(SM1)에 저장될 수 있을 것이다.
한편, 제1 메모리 유닛(MU1)을 16개의 플레인을 포함하도록 구성하되, 복수의 메모리 패키지들 각각에 포함된 메모리 칩이 복수-플레인 타입의 메모리 칩일 수 있다. 이 경우, 도 4에 나타난 바와 같이, 제1 메모리 유닛(MU1)에 8개의 메모리 패키지들이 탑재된 경우, 메모리 패키지들 각각은 1개의 복수-플레인 타입의 메모리 칩(MPC)을 포함할 수 있다. 상기 복수-플레인 타입의 메모리 칩은 2개의 플레인들(PL)을 포함할 수 있다. 따라서 제1 부분 데이터(PD1)를 제정하기 위해 8개의 메모리 칩들이 제1 메모리 유닛(MU1)에 제공될 수 있다. 8개의 메모리 칩들 각각에 포함된 2개의 플레인들이 각각 4 KB의 조각 데이터를 저장하므로, 2개의 조각 데이터가 각각의 메모리 칩에 저장될 수 있고, 결과적으로 64 KB의 제1 부분 데이터(PD1)가 제1 저장 모듈(SM1)에 저장될 수 있을 것이다.
도 5는 본 발명의 기술적 사상에 의한 다른 실시예들에 따른 호스트 장치(HOST) 및 이를 포함하는 시스템을 개략적으로 나타낸 블록도이다.
도 5를 참조하면, 저장 모듈은 SSS 모듈에 한정되지 않으며, 임의의 저장 장치로 구현될 수 있다. 저장 모듈들(SM)에 데이터가 기입될 때, 호스트 컨트롤러(HC)는 상기 데이터를 준비된 각각의 저장 모듈들(SM)에 돌아가면서 쓰도록 구성될 수 있다. 이를 위해, 호스트 컨트롤러(HC)는 덩어리 데이터(CD)를 복수의 부분 데이터들로 분할하고, 상기 분할된 복수의 부분 데이터들을 단일 호스트 인터페이스 버스(SHIB)를 이용하여 저장 모듈들(SM)에 분배 전송할 수 있다. 따라서 부분 데이터들이 저장 모듈들(SM)에 나누어 기입될 수 있다.
예를 들어, 호스트 컨트롤러(HC)가 64 MB의 덩어리 데이터(CD)를 4개의 저장 모듈들(SM), 예를 들어, 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 기입하고자 하는 경우, 호스트 컨트롤러(HC)는 각각이 64 KB 용량을 갖는 1000개의 부분 데이터들로 분할하고, 상기 1000개의 부분 데이터들을 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 분배 전송할 수 있다.
이 경우, 먼저 호스트 컨트롤러(HC)는 4개의 부분 데이터들(예를 들어, 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4))을 제1 저장 모듈(SM1)에 전송할 수 있다(1개의 부분 데이터만이 제1 저장 모듈에 전송됨을 가정한 도 1의 실시예와 대조됨에 유의한다). 제1 저장 모듈(SM1)은 부분 데이터들을 저장하는 복수의 저장 영역들을 포함할 수 있다. 예를 들어, 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4)는 제1 저장 영역 내지 제4 저장 영역(SR1-SR4)에 각각 저장될 수 있다. 제1 모듈 컨트롤러(MC1)는 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4)를 수신하고, 제1 부분 데이터 내지 제4 부분 데이터(PD1-PD4)를 제1 저장 영역 내지 제4 저장 영역(SR1-SR4)에 기입하는 동작을 수행할 수 있다.
이후, 호스트 컨트롤러(HC)는 다음 4개의 부분 데이터들(예를 들어, 제5 부분 데이터 내지 제8 부분 데이터(PD5-PD8))을 제2 저장 모듈(SM2)에 전송할 수 있고, 상기 전송된 부분 데이터들은 제2 모듈 컨트롤러(MC2)에 의해 제2 저장 모듈(SM2)의 제1 저장 영역 내지 제4 저장 영역(SR1-SR4)에 각각 저장될 수 있다. 이와 같은 방식으로 16개의 부분 데이터들이 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 전송될 수 있으며, 그에 따라 다음 표 3에 나타난 바와 같이 제1 부분 데이터 내지 제16 부분 데이터(PD1-PD16)에 대한 기입 동작이 수행될 수 있다.
제1 저장 유닛(SU1) 제2 저장 유닛(SU2) 제3 저장 유닛(SU3) 제4 저장 유닛(SU4)
제1 저장 영역(SR1) 제1 부분 데이터(PD1) 제5 부분 데이터(PD5) 제9 부분 데이터(PD9) 제13 부분 데이터(PD13)
제2 저장 영역(SR2) 제2 부분 데이터(PD2) 제6 부분 데이터(PD6) 제10 부분 데이터(PD10) 제14 부분 데이터(PD14)
제3 저장 영역(SR3) 제3 부분 데이터(PD3) 제7 부분 데이터(PD7) 제11 부분 데이터(PD11) 제15 부분 데이터(PD15)
제4 저장 영역(SR4) 제4 부분 데이터(PD4) 제8 부분 데이터(PD8) 제12 부분 데이터(PD12) 제16 부분 데이터(PD16)
이와 같이, 복수(예를 들어, 1000개)의 부분 데이터들 중 저장 영역들의 개수(예를 들어, 4개)와 대응되는 수(예를 들어, 4개)의 부분 데이터들이 각각의 저장 모듈 내 저장 유닛(SU)에 기입될 수 있다. 이를 위해 호스트 컨트롤러는 상기 복수의 부분 데이터들 중 상기 저장 영역들의 개수와 대응되는 수의 부분 데이터들을, 저장 모듈 내 모듈 컨트롤러로 전송하도록 구성될 수 있다.
결과적으로, 호스트 컨트롤러는 부분 데이터의 용량, 저장 영역들의 개수, 및 저장 모듈들의 개수를 곱한 용량의 데이터를 실질적으로 동시에 기입하도록 구성될 수 있다. 도 5의 예에서, 부분 데이터의 용량이 64 KB이고, 저장 모듈 별 저장 영역들의 개수가 4개이며, 저장 모듈들의 개수가 4개이므로, 64 KB * 4 * 4 = 1024 KB 즉, 약 1 MB의 부분 데이터가 실질적으로 동시에 기입될 수 있다.
한편, 상기 제1 부분 데이터 내지 제16 부분 데이터(PD1-PD16)를 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 기입하는 동작이 수행되는 동안, 호스트 컨트롤러(HC)는 나머지 984개의 추가 부분 데이터들을 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 쓰기가 준비된 순서대로 기입 동작을 수행할 수 있다. 제1 모듈 컨트롤러 내지 제4 모듈 컨트롤러(MC1-MC4)는 상기 984개의 추가 부분 데이터들을 수신하고 상기 수신된 추가 부분 데이터들을 제1 버퍼 메모리(BM1) 내지 제4 버퍼 메모리에 임시 저장할 수 있다. 이와 같은 동작이 반복적으로 수행됨으로써, 1000개의 부분 데이터들이 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 약 250개씩 돌아가며 써지게 될 것이다.
PCIe, SATA, USF와 같은 종래 기술의 경우, 호스트 인터페이스 버스당 하나의 저장 모듈만이 연결되기 때문에, 2개 이상의 저장 모듈을 사용하고자 하는 경우 별도의 호스트 인터페이스 버스를 사용하여야 한다는 문제가 있었다. 또한, 호스트 인터페이스 버스를 추가하지 않고 저장 모듈의 용량을 증가시키기 위해서는, 기존의 저장 모듈을 제거하고 새로운 고용량의 저장 모듈을 호스트 인터페이스 버스와 연결시켜야 했으며, 저장 모듈을 증가시킨다고 하더라도 저장 용량만이 증가될 뿐 쓰기 등의 데이터 전송 속도는 증가되지 않아 동작 속도 향상에 대한 요구에 부응하기 어려웠다.
그러나 본 발명의 기술적 사상에 의한 실시예들에 따른 호스트 장치(HOST) 및 시스템은 단일 공유 인터페이스 버스를 사용함으로써, 간단하게 저장 모듈이 추가될 수 있고, 그에 따라 저장 용량이 증설될 수 있다. 나아가, 용량을 증가시키기 위해 저장 모듈을 추가함으로써, 더욱 빠른 속도로 데이터의 기입이 가능해진다. 예를 들어, 단일 호스트 인터페이스 버스(SHIB)와 연결된 저장 모듈의 개수가 8개인 경우, 1000개의 부분 데이터들이 8개의 저장 모듈들(SM)에 약 125개씩 돌아가며 써지게 될 것이기 때문에, 4개의 저장 모듈이 연결된 도 5의 실시예에 비해 2배 빠른 속도로 기입 동작이 수행될 수 있다.
도 6은 본 발명의 기술적 사상에 의한 또 다른 실시예들에 따른 호스트 장치 및 이를 포함하는 시스템을 개략적으로 나타낸 블록도이다. 이 실시예들에 따른 호스트 장치 및 시스템은 도 2 및 도 5의 실시예들에 따른 호스트 장치 및 시스템의 변형예일 수 있다. 이하 실시예들 간의 중복되는 설명은 생략하기로 한다.
도 6을 참조하면, 호스트 컨트롤러는 덩어리 데이터를 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)에 나누어 기입하도록 구성될 수 있다. 도 2에서 설명한 바와 같이, 호스트 컨트롤러는 덩어리 데이터들을 복수의 부분 데이터들로 나누고, 상기 복수의 부분 데이터들 중 일 부분 데이터를 저장 모듈(예를 들어, 제1 저장 모듈(SM1))에 포함된 메모리 유닛(예를 들어, 제1 메모리 유닛(MU1))으로 전송할 수 있다. 또한, 도 4에서 설명한 바와 같이, 호스트 컨트롤러는 덩어리 데이터들을 복수의 부분 데이터들로 나누고, 상기 복수의 부분 데이터들 중 복수(예를 들어, 4개)의 부분 데이터들을 저장 모듈(예를 들어, 제1 저장 모듈(SM1))에 포함된 저장 유닛(SU1) 내 저장 영역들(예를 들어, 제1 저장 영역 내지 제4 저장 영역(도 4의 SR1-SR4))로 전송할 수 있다.
각각의 저장 모듈들은 선택 신호에 의해 선택될 수 있다. 예를 들어, 제1 저장 모듈 내지 제4 저장 모듈(SM1-SM4)은 제1 선택 신호 내지 제4 선택 신호(SEL1-SEL4)에 의해 활성화되거나 또는 비활성화되어 기입/독출 동작을 수행할 수 있다. 상기 기입/독출 동작 동안, 저장 모듈들(SM1-SM4)은 제1 상태의 준비 신호(예를 들어, 제1 준비 신호 내지 제4 준비 신호(#RDY1-#RDY4))를 모듈 컨트롤러로 전달할 수 있다.
예를 들어, 제1 저장 모듈(SM1) 및 제3 저장 모듈(SM3)이 비활성화 상태인 경우, 제1 저장 모듈(SM1) 및 제3 저장 모듈(SM3)은 제1 상태의 제1 준비 신호(#RDY1) 및 제1 상태의 제3 준비 신호(#RDY3)를 모듈 컨트롤러로 전달할 수 있다. 이 경우 호스트 컨트롤러는 제1 저장 모듈(SM1) 및 제3 저장 모듈(SM3)에 부분 데이터들을 전송할 수 있고, 제1 저장 모듈(SM1) 및 제3 저장 모듈(SM3)의 모듈 컨트롤러들은 상기 부분 데이터들을 수신하여 상기 부분 데이터들을 메모리 유닛들(또는 저장 유닛들)에 저장하는 기입 동작을 수행할 수 있다.
제1 저장 모듈(SM1) 및 제3 저장 모듈(SM3)이 활성화되어 상기 기입 동작을 수행하는 동안, 제1 저장 모듈(SM1) 및 제3 저장 모듈(SM3)은 제2 상태의 제1 준비 신호(#RDY1) 및 제2 상태의 제3 준비 신호(#RDY3)를 모듈 컨트롤러로 전달할 수 있다. 이 경우 호스트 컨트롤러는 제1 저장 모듈(SM1) 및 제3 저장 모듈(SM3)에 추가 부분 데이터들을 전송할 수 있고, 제1 저장 모듈(SM1) 및 제3 저장 모듈(SM3)의 모듈 컨트롤러들은 상기 추가 부분 데이터들을 수신하여 상기 추가 부분 데이터들을 버퍼 메모리에 임시 저장할 수 있다.
도 7은 본 발명의 기술적 사상에 의한 또 다른 실시예들에 따른 저장 모듈을 개략적으로 나타낸 블록도이다. 이 실시예들에 따른 저장 모듈은 도 6의 호스트 장치 및 시스템에 사용되는 제1 저장 모듈(SM1)일 수 있다.
도 7을 참조하면, 제1 저장 모듈(SM1)은 제1 모듈 컨트롤러(MC1), 제1 메모리 유닛(MU1), 및 제1 버퍼 메모리(BM1)를 포함할 수 있다. 이들 구성요소는 도 2에서 설명된 제1 저장 모듈(SM1)의 제1 모듈 컨트롤러(MC1), 제1 메모리 유닛(MU1), 및 제1 버퍼 메모리(BM1)와 동일하거나 유사한 기능을 수행할 수 있다. 이하 중복되는 설명은 생략하기로 한다.
제1 모듈 컨트롤러(MC1)는 복수의 채널들과 연결될 수 있다. 예를 들어, 제1 모듈 컨트롤러(MC1)는 제1 채널 내지 제8 채널(CH8)(CH1-CH8)과 연결될 수 있고, 제1 채널 내지 제8 채널(CH8)(CH1-CH8) 각각에는 2개의 반도체 칩들이 연결될 수 있다. 제1 메모리 칩(C1) 및 제2 메모리 칩(C2)은 제1 채널(CH1)과 연결되며, 제1 칩 인에이블 신호(#CE1.CH1) 및 제2 칩 인에이블 신호(#CE2.CH1)에 의해 활성화되거나 또는 비활성화되어 기입/독출 동작을 수행할 수 있다. 마찬가지로, 채널(예를 들어, 제8 채널(CH8)) 당 2개의 반도체 칩들(예를 들어, 제15 반도체 칩(C15), 제16 반도체 칩(C16))이 연결되며, 상기 2개의 반도체 칩들은 칩 인에이블 신호(예를 들어, 제15 칩 인에이블 신호(#CE1.CH8) 및 제16 칩 인에이블 신호(#CE2.CH8))에 의해 활성화되거나 비활성화될 수 있다.
도 6에서 설명한 바와 같이, 제1 저장 모듈(SM1)은 제1 선택 신호(#SEL1)를 수신하여 활성화/비활성화 될 수 있다. 제1 저장 모듈(SM1)의 제1 모듈 컨트롤러(MC1)는 기입/독출 동작 동안 제1 상태의 준비 신호(#RDY1)를 호스트 컨트롤러로 전송할 수 있고, 상기 기입/독출 동작이 완료된 경우, 제1 모듈 컨트롤러(MC1)는 제2 상태의 준비 신호(#RDY1)를 호스트 컨트롤러로 전송할 수 있다. 이외에 제1 모듈 컨트롤러(MC1)는 단일 호스트 인터페이스 버스(SHIB)를 통해 4비트의 명령 신호를 수신하고 및 32비트의 데이터 신호를 송수신할 수 있다.
도 8은 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터 전송 방법을 개략적으로 나타낸 흐름도이다. 도 8은 호스트 컨트롤러의 데이터 전송 동작을 개략적으로 나타낸 것이다.
도 8을 참조하면, 먼저 덩어리 데이터를 제1 부분 데이터 내지 제3 부분 데이터로 분할한다(S110). 이후 단일 호스트 인터페이스 버스를 통해 제1 부분 데이터를 제1 커넥터에 연결된 제1 저장 모듈에 전송한다(S120). 상기 전송에 의해 제1 부분 데이터의 제1 저장 모듈로의 제1 기입 동작이 수행될 것이다.
단계(S120) 이후, 단일 호스트 인터페이스 버스를 통해 제2 부분 데이터를 제2 커넥터에 연결된 제2 저장 모듈에 전송한다(S130). 상기 전송에 의해 제2 부분 데이터의 제2 저장 모듈로의 제2 기입 동작이 수행될 것이다. 도 2에서 설명한 바와 같이, 단계(S130)의 경우 매우 빠른 속도로 전송 동작이 수행되기 때문에, 상기 제1 기입 동작이 완료되기 전 상기 제2 기입 동작이 수행될 수 있다. 따라서 상기 제1 기입 동작과 상기 제2 기입 동작이 동시에(즉, 병렬적으로) 수행될 수 있다.
이후 상기 단일 호스트 인터페이스 버스를 통해 제3 부분 데이터를 상기 제1 저장 모듈과 상기 제2 저장 모듈 중 쓰기가 준비 된 저장 모듈에 전송한다(S140). 예를 들어, 호스트 컨트롤러는 상기 제1 저장 모듈과 상기 제2 저장 모듈 중 제1 상태의 준비 신호를 먼저 생성하는 저장 모듈에 제3 부분 데이터를 전송할 수 있다.
도 9는 본 발명의 기술적 사상에 의한 실시예들에 따른 데이터 전송 방법을 개략적으로 나타낸 흐름도이다. 도 9는 저장 모듈의 기입 동작을 개략적으로 나타낸 것이다.
도 9를 참조하면, 먼저 제1 부분 데이터를 수신하고(S210), 상기 제1 부분 데이터를 복수의 조각 데이터들로 분할한다(S220). 이후 상기 복수의 조각 데이터들을 복수의 메모리 영역들에 각각 기입한다(S230). 일부 변형된 실시예에서, 단계들(S220, S230) 대신, 제1 부분 데이터를 저장 영역에 기입하는 단계가 수행될 수도 있다.
단계(S210)의 전후에 또는 단계(S210)와 동시에, 제3 부분 데이터를 수신한다(S240). 즉, 단계(S210)와 단계(S240)는 병렬적으로 수행될 수 있다. 단계(S240) 이후, 제3 부분 데이터를 버퍼 메모리에 저장한다(S250).
제1 부분 데이터의 기입 동작이 완료되었는지를 판단하고(S260), 기입 동작이 완료된 경우 버퍼 메모리로부터 제3 부분 데이터를 독출하여(S270) 상기 제3 부분 데이터에 대한 기입 동작을 수행한다. 상기 기입 동작 동안, 상기 제3 부분 데이터가 복수의 조각 데이터들로 분할되고(S280), 상기 복수의 조각 데이터들은 복수의 메모리 영역들에 각각 기입된다(S290).
도 10은 본 발명의 실시예에 따른 메모리 장치를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 10을 참조하면, 본 발명의 실시예에 따른 컴퓨팅 시스템은 중앙 처리 장치(central process unit, CPU), 램(random access memory, RAM), 사용자 인터페이스(user interface, UI), 전원(PS), 및 저장 모듈들(SM)을 포함할 수 있다. 저장 모듈들(SM)은 시스템 버스(BUS)를 통해, 중앙 처리 장치(CPU), 램(RAM), 사용자 인터페이스(UI) 및 전원(PS)에 전기적으로 연결된다. 사용자 인터페이스(UI)를 통해 제공되거나, 중앙 처리 장치(CPU)를 통해 처리된 덩어리 데이터는 저장 모듈들(SM)에 저장될 수 있다. 전술한 바와 같이, 상기 덩어리 데이터는 단일 호스트 인터페이스 버스(SHIB)를 통해 저장 모듈들(SM)(예를 들어, SM1, SM2, ..., SMn)에 나뉘어 저장될 수 있다.
저장 모듈들(SM)은 예를 들어 SSS 모듈(solid state storage module)로 구현될 수 있고, SSS 모듈의 메모리 유닛들은 예를 들어 플래시 메모리 유닛으로 구현될 수 있다. 또한, 상기 플래시 메모리 유닛은, 복수의 메모리 셀들이 수직으로 적층된 3차원 플래시 메모리 장치로 구현될 수도 있다.
도면에 도시하지는 않았지만, 본 발명에 따른 컴퓨팅 시스템은 응용 칩셋(application chipset), 카메라 이미지 프로세서(camera image processor) 등을 더 포함할 수 있다. 또한, 컴퓨팅 시스템은 모바일 장치로 구현될 수도 있다. 이 경우 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리 및 베이스밴드 칩셋(baseband chipset)과 같은 모뎀이 추가적으로 제공될 수 있다.
도 11은 본 발명의 저장 모듈들(SM)을 포함하는 서버 및 네트워크 시스템을 나타내는 도면이다.
도 11을 참조하면, 본 발명의 실시예에 따른 네트워크 시스템(NSYS)은 네트워크를 통해 연결되는 서버 시스템(SSYS) 및 다수의 단말들(TEM1~TEMn)을 포함할 수 있다. 본 발명의 실시예에 따른 서버 시스템(SSYS)은 네트워크에 연결되는 다수의 단말들(TEM1~TEMn)로부터 수신되는 요청을 처리하는 호스트 컨트롤러 및 단말들(TEM1~TEMn)로부터 수신되는 요청에 대응되는 덩어리 데이터를 저장하는 저장 모듈을 구비할 수 있다. 전술한 바와 같이, 상기 덩어리 데이터는 단일 호스트 인터페이스 버스(SHIB)를 통해 저장 모듈들(SM)(예를 들어, SM1, SM2, ..., SMn)에 나뉘어 저장될 수 있다.
도 12는 본 발명의 기술적 사상에 의한 실시예들에 따른 SSS 모듈을 개략적으로 나타낸 블록도이다.
도 12를 참조하면, 본 발명에 따른 SSS 모듈(solid state storage module)은 예를 들어 NAND 플래시 소자를 이용한 SSS 모듈일 수 있다. SSS 모듈은 모듈 컨트롤러(MC), 복수의 메모리 칩들을 포함하는 메모리 유닛(MU), 및 복수의 크로스바 스위치들(CS1, CS2)을 포함할 수 있다.
모듈 컨트롤러(MC)는 호스트 인터페이스 버스(미도시)와 연결되며, 호스트 컨트롤러(미도시)로부터 데이터를 수신하여 상기 데이터를 메모리 유닛(MU)에 기입하도록 구성될 수 있다. 또한, 모듈 컨트롤러(MC)는 메모리 유닛(MU)에 기입된 데이터를 독출하여 상기 데이터를 호스트 인터페이스 버스 및 호스트 컨트롤러로 전송하도록 구성될 수 있다.
메모리 유닛(MU)은 호스트 컨트롤러로부터 전달된 데이터가 저장되는 장소로서, 플래시 메모리 유닛(MU)으로 구현될 수 있다. 예를 들어, 상기 플래시 메모리 유닛(MU)은, 복수의 메모리 셀들이 수직으로 적층된 3차원 플래시 메모리 소자로 구현될 수도 있다.
크로스바 스위치들(CS1, CS2)은 메모리 유닛(MU)과 모듈 컨트롤러(MC) 사이에 배치될 수 있다. 모듈 컨트롤러(MC)가 메모리 유닛(MU)에 데이터를 기입하거나 메모리 유닛(MU)에 기입된 데이터를 독출할 경우, 모듈 컨트롤러(MC)는 크로스바 스위치들(CS1, CS2)을 통해 메모리 유닛(MU)에 접근할 수 있다.
예를 들어, 모듈 컨트롤러(MC)는 제1 컨트롤러 채널(CCH1)을 통해 제1 크로스바 스위치(CS1)와 연결될 수 있고, 제2 컨트롤러 채널(CCH2)을 통해 제2 크로스바 스위치(CS2)와 연결될 수 있다. 4개의 메모리 칩들을 포함하는 제1 메모리 패키지(MP1)는 제1 어레이 채널(ACH1)을 통해 제1 크로스바 스위치(CS1)와 연결될 수 있고, 4개의 메모리 칩들을 포함하는 제2 메모리 패키지(MP2)는 제2 어레이 채널(ACH2)을 통해 제1 크로스바 스위치(CS1)와 연결될 수 있다. 마찬가지로, 모듈 컨트롤러(MC)는 제2 컨트롤러 채널(CCH2)과 연결된 제2 크로스바 스위치(CS2)를 통해 제3 메모리 패키지(MP3) 및 제4 메모리 패키지(MP4)와 연결될 수 있다.
도 13은 본 발명의 기술적 사상에 의한 다른 실시예들에 따른 SSS 모듈을 개략적으로 나타낸 블록도이다. 도 13은 도 12을 보다 일반화한 도면이다.
도 13을 참조하면, SSS 모듈은 n*k개의 메모리 패키지들(MP11,...,MP1n,...,MPk1,...,MPkn)을 포함할 수 있다. 모듈 컨트롤러(MC)는 제1 크로스바 스위치(CS1) 내지 제k 크로스바 스위치(CSk)와 연결될 수 있다.
모듈 컨트롤러(MC)는 제1 컨트롤러 채널(CCH1)을 통해 제1 크로스바 스위치(CS1)와 연결될 수 있다. 모듈 컨트롤러(MC)와 메모리 패키지들간의 연결을 위해, [1,1]번째 메모리 패키지(MP11)는 [1,1]번째 어레이 채널(ACH11)을 통해 제1 크로스바 스위치(CS1)와 연결될 수 있다. [1,n]번째 메모리 패키지(MP1n)는 [1,n]번째 어레이 채널(ACH1n)을 통해 제1 크로스바 스위치(CS1)와 연결될 수 있다.
또한, 모듈 컨트롤러(MC)는 제k 컨트롤러 채널(CCHk)을 통해 제k 크로스바 스위치(CSk)와 연결될 수 있다. 모듈 컨트롤러(MC)와 메모리 패키지들간의 연결을 위해, [k,1]번째 메모리 패키지(MPk1)는 [k,1]번째 어레이 채널(ACHk1)을 통해 제k 크로스바 스위치(CSk)와 연결될 수 있다. [k,n]번째 메모리 패키지(MPkn)는 (k,n)번째 어레이 채널(ACHkn)을 통해 제k 크로스바 스위치(SCk)와 연결될 수 있다.
크로스바 스위치가 없는 종래 기술의 경우, n*k개의 어레이 채널들(ACH11,...,ACH1n,..., ACHk1,...,ACHkn)과 모듈 컨트롤러(MC)가 연결되어야 하므로, 매우 많은 수의 핀이 모듈 컨트롤러(MC)에 구현되어야 한다. 예를 들어 하나의 채널(예를 들어, 어레이 채널, 컨트롤러 채널)당 필요한 핀의 개수가 모두 1개인 경우, 모듈 컨트롤러(MC)에는 n*k개의 핀이 구현되어야 한다. 특히 메모리 패키지의 개수(예를 들어, n개) 또는 채널의 개수(예를 들어, k개)가 증가하는 경우, 그에 따라 핀의 개수가 기하급수적으로 증가하게 된다.
그러나 본 발명에 따른 SSM 모듈의 경우, 메모리 패키지들과 모듈 컨트롤러(MC) 사이에 크로스바 스위치가 위치하므로, 핀의 개수가 매우 줄어들 수 있다. 예를 들어 하나의 채널(예를 들어, 어레이 채널, 컨트롤러 채널)당 필요한 핀의 개수가 1개인 경우, 하나의 크로스바 스위치에는 n+k개의 핀이 구현되고, 모듈 컨트롤러(MC)에는 k개의 핀이 구현되는 것 만으로 족하다. 따라서 모듈 컨트롤러(MC)의 핀의 개수를 획기적으로 감소시킬 수 있다.
도 14는 도 12 및 도 13의 크로스바 스위치의 입출력 신호를 나타낸 블록도이다.
도 14를 참조하면, 크로스바 스위치는 메모리 유닛을 액세스할 수 있는 어레이 채널을 포함하며, 각각의 어레이 채널에는 복수의 메모리 칩들이 연결될 수 있다. 각각의 어레이 채널들은 칩 선택 신호들(chip select signals), 상태 신호들(status signals), 데이터 I/O 신호들(Data I/O signals), 및 기타 신호들을 전송할 수 있다.
상기 칩 선택 신호들은 메모리 유닛의 각각의 메모리 칩들을 Access할 수 있도록 하며, 예를 들어 입출력신호의 제어 신호 및 메모리 칩들의 동작 제어 신호를 포함할 수 있다. 상태 신호는, 예를 들어, 독출/기입 동작이 수행되는 동안, 상기 동작이 진행중이거나 또는 완료되었음 알려주는 신호를 포함할 수 있다. 데이터 I/O 신호들은 입력/출력되는 데이터를 구성하는 신호들이고, 상기 기타 신호들은 예를 들어 독출/기입 동작을 제어 하기 위한 신호들을 포함할 수 있다.
선택적으로, 하나의 어레이 채널에서, 복수의 메모리 칩들은 데이터 I/O 신호 및 기타 신호를 공유할 수 있다. 반면에, 복수의 메모리 칩들은 칩 선택 신호와 상태 신호를 공유하지 않을 수 있다. 이 경우 칩 선택 신호와 상태 신호는 개별 메모리 칩별로 분리되어 연결될 수 있다.
한편, 크로스바 스위치가 모듈 컨트롤러와 통신하는 신호들은, 모듈 컨트롤러가 크로스바 스위치를 액세스할 때 이용되는 신호(예를 들어, 크로스바 스위치의 동작을 제어하는 크로스바 스위치 선택 신호), 데이터 입력(Data Input) 신호, 데이터 출력(Data Output) 신호, 동작 및 주소 정보를 포함하는 명령(command) 신호, 상태 표시 신호(status indication signal), 및 클럭(Clock) 신호 등으로 구성 되어 있다. 상기 상태 표시 신호는, 크로스바 스위치를 통해 모듈 컨트롤러가 목표 메모리 패키지를 액세스할 수 있는지의 상태를 알려주는 신호로 정의될 수 있다.
모듈 컨트롤러는 메모리 유닛을 액세스하는데 필요한 독출, 기입, 블록 데이터 관리(Block Data Management), ECC기능 등 메모리 유닛을 액세스하고 필요로 하는 데이터 관리 기능을 수행할 수 있다. 또한, 모듈 컨트롤러는 크로스바 스위치에 연결된 메모리 유닛과 통신하기 위해, 크로스바 스위치가 메모리 유닛을 액세스할 때 필요로 하는 신호들을 이용하여, 크로스바 스위치와 통신할 수 있다.
메모리 유닛에 데이터를 기입하거나 메모리 유닛에 기입된 데이터를 독출하기 위해, 모듈 컨트롤러는 크로스바 스위치에 크로스바 스위치 선택 신호를 인가하고, 이와 동시에 모듈 컨트롤러는 크로스바 스위치에 명령 신호(기입/독출 신호 및 어드레스 신호)를 인가한다.
상기 명령 신호는 크로스바 스위치에 연결된 메모리 유닛의 어레이 채널들에 연결된 메모리 패키지들 중 어떤 어레이 채널에 연결된 메모리 패키지의 어떤 메모리 칩을 활성화 할 것인지에 대한 신호를 포함할 수 있다. 크로스바 스위치는 상기 명령 신호를 디코딩하고, 모듈 컨트롤러가 기입/독출하고자 하는 메모리 칩(즉, 해당 어레이 채널 상의 활성화 시킬 타켓 메모리 칩)을 결정, 활성화시킨다.
이후, 모듈 컨트롤러는 기입(또는 프로그램), 독출, 소거 등 타겟 메모리 칩에 어떤 동작을 시킬 것인지에 관한 정보를 포함하는 명령 신호를 크로스바 스위치에 보낼 수 있다. 이어서, 모듈 컨트롤러는 타겟 메모리 칩에 액세스할 어스레스 정보를 포함하는 명령 신호를 보낼 수 있다. 크로스바 스위치는 이러한 명렬 신호들을 차례로 디코딩하고, 타겟 메모리 칩에 대해 원하는 기입/독출/소거 등의 동작을 수행할 수 있다.
예를 들어, 메모리 유닛에 대한 기입(혹은 프로그램) 동작이 수행되는 경우, 모듈 컨트롤러는 데이터 인 포트(data in port)를 통해 기입 데이터를 크로스바 스위치로 전송할 수 있다. 크로스바 스위치는 상기 데이터를 수신하고, 상기 데이터를 쓰기가 준비된 타겟 메모리 칩에 저장하는 기입 동작을 수행한다. 데이터에 대한 기입 동작이 시작되면, 해당 메모리 칩의 상태 신호(예를 들어, 제1 상태의 RDY/#BSY 신호)가 크로스바 스위치에 입력될 수 있다. 크로스바 스위치는 상기 상태 신호를 디코딩하고, 상기 디코딩 결과를 모듈 컨트롤러에 전달하여 타겟 메모리 칩에 기입 동작이 수행되고 있음을 알려줄 수 있다.
선택적으로, 크로스바 스위치는 상기 기입 동작 동안 타겟 메모리 칩의 상태 신호와 함께 다른 메모리 칩의 상태 신호들을 포함한 신호를 디코딩하고, 상기 디코딩 결과를 모듈 컨트롤러에 전달할 수 있다. 따라서 타겟 메모리 칩의 동작 상태뿐만 아니라 다른 어레이 채널에 연결된 메모리 칩의 동작 상태도 같이 포함된 상태 표시 신호가 생성되고, 상기 상태 표시 신호가 모듈 컨트롤러에 전달될 수 있다.
타겟 메모리 칩에 대한 기입 동작이 완료되면, 해당 메모리 칩의 상태 신호(예를 들어, 제2 상태의 RDY/#BSY 신호)가 크로스바 스위치에 입력될 수 있다. 크로스바 스위치는 상기 상태 신호를 디코딩하고, 상기 디코딩 결과를 모듈 컨트롤러에 전달하여 타겟 메모리 칩에 대한 기입 동작이 완료되었음을 알려줄 수 있다.
메모리 유닛으로부터 독출 동작 동안, 모듈 컨트롤러는 메모리 유닛으로부터 원하는 데이터를 독출하기 위해 어레이 채널을 선택하기 위한 명령 신호를 생성하고 상기 명령 신호를 해당 크로스바 스위치로 전송할 수 있다. 이후, 모듈 컨트롤러는 선택된 어레이 채널의 타겟 메모리 칩 신호를 선택하기 위한 명령 신호 및 독출하고자 하는 블록 및 페이지의 어드레스 신호를 포함하는 명령 신호를 크로스바 스위치로 전송할 수 있다. 크로스바 스위치는 상기 명령 신호들을 디코딩하고, 모듈 컨트롤러가 독출하고자 하는 메모리 칩을 활성화시킨다.
선택된 메모리 칩에서 데이터가 독출되어 크로스바 스위치로 전송될 준비가 되면, 타겟 메모리 칩의 상태 신호가 출력되어 크로스바 스위치로 입력된다. 상기 상태 신호는 디코딩되어 크로스바 스위치의 데이터 전송준비가 됨을 알려주는 상태 표시 신호로 생성된다. 상기 상태 표시 신호는 모듈 컨트롤러로 전달될 수 있다. 모듈 컨트롤러는 상기 상태 표시 신호를 수신하여 타겟 메모리 칩의 독출된 데이터를 크로스바 스위치로부터 수신한다.
도 15는 본 발명의 기술적 사상에 의한 실시예들에 따른 크로스바 스위치(CS)를 개략적으로 나타낸 블록도이다.
도 15를 참조하면, 크로스바 스위치(CS)는 NAND 플래시 메모리 유닛과 NAND 플래시 모듈 컨트롤러 사이에 연결된 NAND 플래시 크로스바 스위치일 수 있다.
먼저, 메모리 유닛 측의 어레이 채널을 구성하는 신호들을 살펴보기로 한다. 어레이 채널을 구성하는 신호들은, 칩 인에이블 신호들(#CE_0 내지 #CE_3), 상태 신호들(RDY/#BSY_0 내지 RDY/#BSY_3), 데이터 신호들(DQ_0 내지 DQ_7 및 DQS), 기타 신호들(CLE, ALE, #RE, #WE, RESET)을 포함할 수 있다. 전술한 바와 같이, 복수의 메모리 칩들은 데이터 신호들(DQ_0 내지 DQ_7 및 DQS) 및 기타 신호들(CLE, ALE, #RE, #WE, RESET)을 공유할 수 있다. 반면에, 복수의 메모리 칩들은 칩 선택 신호들(#CE_0 내지 #CE_3)과 상태 신호들(RDY/#BSY_0 내지 RDY/#BSY_3)를 공유하지 않을 수 있고, 상기 신호들은 개별 메모리 칩별로 분리되어 연결될 수 있다.
모듈 컨트롤러 측의 컨트롤러 채널을 구성하는 신호들을 살펴보기로 한다. 컨트롤러 채널을 구성하는 신호들은, 클록 신호들(CKE, #CLK, CLK), 크로스바 스위치 선택 신호(#SEL), 명령 신호(CMD[0-3]), 상태 표시 신호들(STAT_EN, STAT_CK, STAT_Q), 데이터 입력 신호들(D[0-7], DS), 및 데이터 출력 신호들(Q[0-7], QS)을 포함할 수 있다.
클록 신호들(CKE, #CLK, CLK) 중 신호(CKE)는 신호들(#CLK, CLK)를 활성화/비활성화시키는 역할을 수행한다. 신호(CKE)가 활성화 되는 경우 크로스바 스위치(CS)는 활성화 상태가 되고, 신호(CKE)가 비활성화 되는 경우 크로스바 스위치(CS)는 비활성화 상태가 될 수 있다. 신호들(#CLK, CLK)은 어레이 채널을 구성하는 신호들이 동기화되어 입력될 수 있도록 하는 기능을 수행한다.
크로스바 스위치 선택 신호(#SEL)에 의해 크로스바 스위치(CS)가 선택될 수 있다. 모듈 컨트롤러는 크로스바 스위치 선택 신호(#SEL)를 통해 크로스바 스위치(CS)를 제어할 수 있다.
명령 신호(CMD[0-3])는 기입/독출/소거 동작에 필요한 신호들을 포함할 수 있다. 예를 들어, 상기 신호들은 메모리 유닛의 타겟 채널 정보, 상기 타겟 채널 상의 메모리 칩에 대한 정보, 및 상기 메모리 칩에 대한 어드레스 정보 등을 포함할 수 있다.
상태 표시 신호들(STAT_EN, STAT_CK, STAT_Q)은 메모리 칩들에 대한 기입/독출 동작이 수행될 준비가 되었는지 여부를 알려주는 기능을 수행한다. 모듈 컨트롤러의 액세스 요청에 따라, 메모리 칩들의 준비 여부에 관한 정보가 포함된 상태 표시 신호들(STAT_EN, STAT_CK, STAT_Q)이 모듈 컨트롤러로 전달될 수 있다. 상태 표시 신호들(STAT_EN, STAT_CK, STAT_Q)에 대한 자세한 설명은 도 16 및 도 17에서 후술하기로 한다.
데이터 입력 신호들(D[0-7], DS) 및 데이터 출력 신호들(Q[0-7], QS)은 기입 동작 및 독출 동작 동안 데이터가 전송되고 동기화되도록 하는 신호들을 포함할 수 있다. 본 실시예에서는 데이터의 입력 신호와 출력 신호가 구별되었지만, 선택적인 실시예에서, 상기 입력 신호와 출력 신호는 동일한 데이터 핀(예를 들어, DQ[0-7], DQS)을 통해 전송될 수도 있다.
비록 도면에 도시되지는 않았지만, 크로스바 스위치(CS)는 제1 디코더(미도시)를 포함할 수 있다. 상기 제1 디코더는 메모리 유닛으로부터 출력되는 상태 신호를 디코딩하여 상태 표시 신호를 생성할 수 있다. 크로스바 스위치(CS)는 상기 상태 표시 신호를 모듈 컨트롤러로 전달할 수 있다.
또한, 크로스바 스위치(CS)는 제2 디코더(미도시)를 포함할 수 있다. 상기 제2 디코더는 모듈 컨트롤러로부터 출력되는 명령 신호를 디코딩하여 칩 인이에블 신호를 생성할 수 있다. 크로스바 스위치(CS)는 상기 칩 인에이블 신호를 메모리 유닛으로 전달할 수 있다.
도 16 및 도 17은 본 발명의 기술적 사상에 의한 실시예들에 따른 상태 표시 신호의 타이밍도를 나타낸 그래프들이다.
도 16 및 도 17은 도 15의 구성에 상응하는 크로스바 스위치의 상태 표시 신호를 개략적으로 나타낸 그래프이다. 상기 크로스바 스위치는 4개의 어레이 채널들을 통해 4개의 메모리 패키지들과 연결될 수 있고, 상기 메모리 패키지 각각은 4개의 메모리 칩들을 포함할 수 있다. 따라서 상기 크로스바 스위치는 총 16개의 메모리 칩들에 대한 독출/기입/소거 동작을 수행할 수 있다.
먼저 도 15를 다시 참조하면, 예를 들어 독출 동작 동안, 모듈 컨트롤러는 크로스바 스위치 선택 신호(#SEL)를 크로스바 스위치(CS)로 인가하여, 크로스바 스위치(CS)를 활성화 시킬 수 있다. 이와 동시에, 모듈 컨트롤러는 명령 신호를 크로스바 스위치(CS)로 인가할 수 있다. 크로스바 스위치(CS)는 상기 명령 신호를 디코딩하여 타겟 어레이 채널 및 어드레스를 메모리 칩으로 전달할 수 있다.
예를 들어, 명령 신호가 크로스바 스위치(CS)와 연결된 16개의 메모리 칩들 중 제1 메모리 칩에 저장된 데이터를 독출하고자 하는 신호인 경우, 크로스바 스위치(CS)는 상기 명령 신호를 디코딩하여 제1 메모리 칩에 대한 칩 인에이블 신호(예를 들어, #CE_0), 및 어드레스 신호를 생성하고, 상기 칩 인에이블 신호 및 상기 어드레스 신호를 상기 제1 메모리 칩으로 전달할 수 있다.
상기 제1 메모리 칩은 상기 칩 인에이블 신호 및 상기 어드레스 신호를 수신하여 독출 동작을 수행한다. 상기 독출 동작 동안, 제1 메모리 칩은 상태 신호(예를 들어, RDY/#BSY_0)를 생성하고, 상기 상태 신호를 크로스바 스위치(CS)로 전달할 수 있다.
크로스바 스위치(CS)로 전달된 상기 상태 신호는 디코딩되어 상태 표시 신호(#STAT_EN, STAT_CK, STAT_Q)로 변환될 수 있다. 상기 상태 표시 신호는 모듈 컨트롤러로 전달되며, 상기 모듈 컨트롤러는 상기 상태 표시 신호를 해독하여 자신이 요청한 (독출) 데이터가 준비 중임을 확인한다.
전술한 제1 메모리 칩의 독출 동작을 나타낸 상태 표시 신호들(#STAT_EN, STAT_CK, STAT_Q)가 도 16에 나타난다. 제1 메모리 칩에 대한 독출 동작이 수행되어 제1 메모리 칩으로부터 상태 신호(예를 들어, RDY/#BSY_0)가 출력되면, 모듈 컨트롤러는 상기 상태 신호를 디코딩하여 도 16과 같은 상태 표시 신호들을 출력할 수 있다.
도 16에 나타난 상태 표시 신호들(#STAT_EN, STAT_CK, STAT_Q) 중 신호(STAT_Q)는 '0000'이다. 예를 들어, 신호(STAT_CK)의 라이징 에지의 시점에서, 신호(#STAT_EN)를 래치함으로써, '0000'의 신호(STAT_Q)가 생성될 수 있다. 신호(STAT_Q)는 액세스 중인 메모리 칩의 위치를 의미하며, 도 16에서의 '0000'은 제1 메모리 칩과 대응될 수 있다. 모듈 컨트롤러는 상기 '0000' 신호를 수신함으로써, 자신이 요청한 제1 메모리 칩의 독출 데이터가 준비 중임을 확인할 수 있다.
도 17에 나타난 상태 표시 신호들(#STAT_EN, STAT_CK, STAT_Q) 중 신호(STAT_Q)는 '0011'이다. 예를 들어, 신호(STAT_CK)의 라이징 에지의 시점에서, 신호(#STAT_EN)를 래치함으로써, '0011'의 신호(STAT_Q)가 생성될 수 있다. 신호(STAT_Q)는 액세스 중인 메모리 칩의 위치를 의미하며, 도 17에서의 '0011'은 제3 메모리 칩과 대응될 수 있다. 모듈 컨트롤러는 상기 '0011' 신호를 수신함으로써, 자신이 요청한 제3 메모리 칩의 독출 데이터가 준비 중임을 확인할 수 있다.
도 18은 본 발명의 기술적 사상에 의한 또 다른 실시예들에 따른 저장 모듈을 개략적으로 나타낸 블록도이다. 이 실시예들에 따른 저장 모듈은 도 12의 SSS 모듈의 변형예일 수 있다. 이하 실시예들 간의 중복되는 설명은 생략하기로 한다.
도 18를 참조하면, 모듈 컨트롤러(MC)는 크로스바 스위치와의 통신을 위해 제공된 컨트롤러 채널(CCH)과 연결될 수 있으며, 컨트롤러 채널(CCH)은 복수의 크로스바 스위치들(예를 들어, CS11, CS12)과 연결될 수 있다. 즉, 복수의 크로스바 스위치들(예를 들어, CS11, CS12)은 컨트롤러 채널(CCH)을 공유할 수 있다.
컨트롤러 채널(CCH)은, 1개의 컨트롤러 채널과 연결된 복수의 크로스바 스위치(CS1, CS12)들을 선택할 수 있는 크로스바 스위치 선택 신호들(#SEL1_1, #SEL1_2)을 포함할 수 있다. 모듈 컨트롤러(MC)는 상기 크로스바 스위치 선택 신호들(#SEL1_1, #SEL1_2)을 기초로 복수의 크로스바 스위치들(CS11, CS12)을 활성화시킬 수 있다.
본 발명을 명확하게 이해시키기 위해 첨부한 도면의 각 부위의 형상은 예시적인 것으로 이해하여야 한다. 도시된 형상 외의 다양한 형상으로 변형될 수 있음에 주의하여야 할 것이다. 도면들에 기재된 동일한 번호는 동일한 요소를 지칭한다.
이상에서 설명한 본 발명이 전술한 실시예 및 첨부된 도면에 한정되지 않으며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.

Claims (10)

  1. 호스트 장치, 제1 저장 모듈, 및 제2 저장 모듈 간의 데이터 통신을 수행하도록 구성된 시스템으로서,
    상기 호스트 장치는,
    호스트 컨트롤러;
    상기 제1 저장 모듈이 연결되도록 제공된 제1 커넥터;
    상기 제2 저장 모듈이 연결되도록 제공된 제2 커넥터; 및
    상기 호스트 컨트롤러와 상기 제1 커넥터 및 상기 제2 커넥터 사이에 연결된 단일 호스트 인터페이스 버스를 포함하고,
    상기 호스트 컨트롤러는, 덩어리 데이터(chunk data)를 상기 제1 커넥터와 연결된 제1 저장 모듈 및 상기 제2 커넥터와 연결된 제2 저장 모듈에 나누어 기입시키기 위해, 상기 단일 호스트 인터페이스 버스를 제어하도록 구성된 것을 특징으로 하는 시스템.
  2. 제1항에 있어서,
    상기 덩어리 데이터는 제1 부분 데이터 및 제2 부분 데이터를 포함하고,
    상기 호스트 컨트롤러는 상기 덩어리 데이터의 기입 동작 동안, 상기 제1 부분 데이터를 상기 제1 저장 모듈에 전달하고, 상기 제2 부분 데이터를 상기 제2 저장 모듈에 전달하도록 구성되는 것을 특징으로 하는 시스템.
  3. 제1항에 있어서,
    상기 제1 저장 모듈은,
    상기 단일 호스트 인터페이스 버스와 연결되며 상기 덩어리 데이터의 제1 부분 데이터를 수신하도록 구성된 제1 모듈 컨트롤러; 및
    상기 제1 모듈 컨트롤러와 연결되며 상기 제1 부분 데이터를 저장하도록 구성된 제1 저장 유닛들을 포함하고,
    상기 제2 저장 모듈은,
    상기 단일 호스트 인터페이스 버스와 연결되며 상기 덩어리 데이터의 제2 부분 데이터를 수신하도록 구성된 제2 모듈 컨트롤러; 및
    상기 제2 모듈 컨트롤러와 연결되며 상기 제2 부분 데이터를 저장하도록 구성된 제1 저장 유닛들을 포함하는 것을 특징으로 하는 시스템.
  4. 제3항에 있어서,
    상기 제1 모듈 컨트롤러는 상기 제1 부분 데이터를 상기 제1 저장 유닛들로 기입하고, 이와 동시에 상기 제2 모듈 컨트롤러는 상기 제2 부분 데이터를 상기 제2 저장 유닛들로 기입하는 것을 특징으로 하는 시스템.
  5. 제3항에 있어서,
    상기 제1 부분 데이터는 복수의 제1 조각 데이터들을 포함하고, 상기 제1 모듈 컨트롤러는 상기 복수의 제1 조각 데이터들을 상기 제1 저장 유닛들에 각각 저장하도록 구성되며,
    상기 제2 부분 데이터는 복수의 제2 조각 데이터들을 포함하고, 상기 제2 모듈 컨트롤러는 상기 복수의 제2 조각 데이터들을 상기 제2 저장 유닛들에 각각 저장하도록 구성되는 것을 특징으로 하는 시스템.
  6. 제5항에 있어서,
    상기 제1 저장 유닛들의 개수는, 상기 제1 부분 데이터의 용량을 상기 복수의 제1 조각 데이터들의 용량으로 나눈 값 이상인 것을 특징으로 하는 시스템.
  7. 호스트 컨트롤러;
    복수의 저장 모듈이 연결되도록 제공된 복수의 커넥터들; 및
    상기 호스트 컨트롤러와 상기 복수의 커넥터들 사이에 연결된 단일 호스트 인터페이스 버스를 포함하고,
    상기 호스트 컨트롤러는, 덩어리 데이터(chunk data)를 상기 복수의 커넥터들과 연결된 상기 복수의 저장 모듈들에 나누어 기입시키기 위해, 상기 단일 호스트 인터페이스 버스를 제어하도록 구성된 것을 특징으로 하는 호스트 장치.
  8. 제7항에 있어서,
    상기 덩어리 데이터는 복수의 부분 데이터들을 포함하고,
    상기 호스트 컨트롤러는 상기 덩어리 데이터를 상기 부분 데이터들로 나누고, 상기 부분 데이터들을 상기 저장 모듈들에 나누어 기입하도록 구성된 것을 특징으로 하는 호스트 장치.
  9. 제8항에 있어서,
    상기 저장 모듈들 각각은 복수의 저장 영역들 및 모듈 컨트롤러를 포함하고,
    상기 호스트 컨트롤러는, 상기 복수의 부분 데이터들 중 상기 저장 영역들의 개수와 대응되는 수의 부분 데이터들을, 상기 모듈 컨트롤러로 전송하도록 구성된 것을 특징으로 하는 호스트 장치.
  10. 제9항에 있어서,
    상기 호스트 컨트롤러는, 상기 부분 데이터의 용량, 상기 저장 영역들의 개수, 및 상기 저장 모듈들의 개수를 곱한 용량의 데이터를 실질적으로 동시에 기입하도록 구성된 것을 특징으로 하는 호스트 장치.
KR1020120136551A 2012-08-27 2012-11-28 호스트 장치 및 이를 포함하는 시스템 KR20140027859A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20120093881 2012-08-27
KR1020120093881 2012-08-27

Publications (1)

Publication Number Publication Date
KR20140027859A true KR20140027859A (ko) 2014-03-07

Family

ID=50149073

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120136551A KR20140027859A (ko) 2012-08-27 2012-11-28 호스트 장치 및 이를 포함하는 시스템

Country Status (2)

Country Link
US (2) US9268500B2 (ko)
KR (1) KR20140027859A (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5991398B1 (ja) * 2015-03-30 2016-09-14 日本電気株式会社 コンピュータ、サーバー、コネクターセット、組立方法、制御方法、開通制御プログラム
KR20170011645A (ko) * 2015-07-23 2017-02-02 에스케이하이닉스 주식회사 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
US20170054786A1 (en) * 2015-08-21 2017-02-23 TransferSoft, Inc. Transfer of files over a network while still being written
US20170123991A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. System and method for utilization of a data buffer in a storage device
US20170123721A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. System and method for utilization of a data buffer by command completion in parts
US9880783B2 (en) 2015-10-28 2018-01-30 Sandisk Technologies Llc System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller
CN105788636A (zh) * 2016-04-05 2016-07-20 山东华芯半导体有限公司 一种基于并行多通道结构的eMMC控制器
WO2018055768A1 (ja) * 2016-09-26 2018-03-29 株式会社日立製作所 半導体記憶装置
JP6862951B2 (ja) * 2017-03-15 2021-04-21 富士通株式会社 メモリ制御装置、情報処理装置およびメモリ制御方法
KR20190026233A (ko) * 2017-09-04 2019-03-13 에스케이하이닉스 주식회사 패키지모듈 및 칩들의 동작을 테스트하는 방법
KR20200031894A (ko) * 2018-09-17 2020-03-25 에스케이하이닉스 주식회사 메모리 모듈 및 이를 포함하는 메모리 시스템
JP2023000031A (ja) * 2021-06-17 2023-01-04 富士通株式会社 データ配置プログラム、プロセッサ、及びデータ配置方法
FR3126249B1 (fr) * 2021-08-18 2023-07-07 Continental Automotive Procédé, dispositif et système d’autorisation d’accès à un véhicule partagé
CN114500772A (zh) * 2022-03-02 2022-05-13 深圳市深视智能科技有限公司 一种成像装置及成像系统
CN114709205B (zh) * 2022-06-02 2022-09-09 西安紫光国芯半导体有限公司 一种三维堆叠芯片及其数据处理方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657281A (en) * 1996-03-11 1997-08-12 Cirrus Logic, Inc. Systems and methods for implementing inter-device cell replacements
JP2001265580A (ja) 2000-03-16 2001-09-28 Nec Eng Ltd レビュー支援システム及びそれに用いるレビュー支援方法
US6820148B1 (en) 2000-08-17 2004-11-16 Sandisk Corporation Multiple removable non-volatile memory cards serially communicating with a host
KR100432884B1 (ko) 2001-08-28 2004-05-22 삼성전자주식회사 공유된 행 선택 구조를 갖는 불 휘발성 반도체 메모리 장치
TW200301485A (en) 2001-12-04 2003-07-01 Hitachi Ltd Method of controlling the operation of non-volatile semiconductor memory chips
JP5138869B2 (ja) 2002-11-28 2013-02-06 ルネサスエレクトロニクス株式会社 メモリモジュール及びメモリシステム
US7752380B2 (en) 2003-07-31 2010-07-06 Sandisk Il Ltd SDRAM memory device with an embedded NAND flash controller
WO2008022094A2 (en) 2006-08-14 2008-02-21 Plankton Technologies, Llc Data storage device
US7924863B2 (en) * 2007-01-10 2011-04-12 Etherntty Networks Ltd. Device and method for processing data chunks
KR100888261B1 (ko) * 2007-02-22 2009-03-11 삼성전자주식회사 뱅크 id를 이용할 수 있는 메모리 서브 시스템과 그 방법
KR100909965B1 (ko) 2007-05-23 2009-07-29 삼성전자주식회사 버스를 공유하는 휘발성 메모리 및 불휘발성 메모리를구비하는 반도체 메모리 시스템 및 불휘발성 메모리의 동작제어 방법
US7623365B2 (en) 2007-08-29 2009-11-24 Micron Technology, Inc. Memory device interface methods, apparatus, and systems
US20100036999A1 (en) 2008-08-05 2010-02-11 Zhiqing Zhuang Novel method of flash memory connection topology in a solid state drive to improve the drive performance and capacity
KR20090071337A (ko) 2008-08-08 2009-07-01 (주)인디링스 읽기 신호 타이밍을 조정하는 플래시 메모리 장치 및 플래시 메모리 장치의 읽기 제어 방법
KR20100035327A (ko) 2008-09-26 2010-04-05 주식회사 엠트론스토리지테크놀로지 동기화장치가 구비된 에스에스디와 이를 이용한 비휘발성 메모리의 데이터 안정화 방법
US8370603B2 (en) 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
TWI432961B (zh) 2009-02-12 2014-04-01 Toshiba Kk 記憶體系統及控制記憶體系統之方法
US8239724B2 (en) 2009-04-08 2012-08-07 Google Inc. Error correction for a data storage device
KR101824227B1 (ko) 2009-08-07 2018-02-05 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
US8463979B2 (en) 2009-09-08 2013-06-11 Ocz Technology Group Inc. Non-volatile storage devices, methods of addressing, and control logic therefor
US20110102997A1 (en) 2009-11-02 2011-05-05 Ocz Technology Group, Inc. Mass storage device and method of accessing memory devices thereof
KR101648531B1 (ko) 2010-02-12 2016-08-17 삼성전자주식회사 불휘발성 메모리 시스템과 이의 동작 방법
US8873282B2 (en) 2011-10-18 2014-10-28 Micron Technology, Inc. Interfaces and die packages, and appartuses including the same
US20130166865A1 (en) * 2011-12-22 2013-06-27 Alex Lemberg Systems and Methods for Managing Parallel Access to Multiple Storage Systems

Also Published As

Publication number Publication date
US20140059276A1 (en) 2014-02-27
US9268500B2 (en) 2016-02-23
US20140059280A1 (en) 2014-02-27

Similar Documents

Publication Publication Date Title
KR20140027859A (ko) 호스트 장치 및 이를 포함하는 시스템
US11068170B2 (en) Multi-tier scheme for logical storage management
US9927999B1 (en) Trim management in solid state drives
US9842059B2 (en) Wear leveling in storage devices
JP2017079050A (ja) 保護されたデータとは別個のパリティデータの記憶
KR20170118594A (ko) 가비지 컬렉션에 대한 유효성 추적
WO2007037757A1 (en) Portable data storage using slc and mlc flash memory
US11210167B2 (en) Memory wordline isolation for improvement in reliability, availability, and scalability (RAS)
US9971515B2 (en) Incremental background media scan
US20200174705A1 (en) Configurable write command delay in nonvolatile memory
US20180129440A1 (en) Self-virtualizing flash memory for solid state drive
CN112035381A (zh) 一种存储系统及存储数据处理方法
US20220293162A1 (en) Randomization of directed refresh management (drfm) pseudo target row refresh (ptrr) commands
US11200113B2 (en) Auto-increment write count for nonvolatile memory
JP2023518242A (ja) メモリサブシステムにおける作業負荷レベルに基づく電力モードの設定
WO2022256067A1 (en) Double fetch for long burst length memory data transfer
US10254985B2 (en) Power management of storage devices
US8750068B2 (en) Memory system and refresh control method thereof
CN110444237B (zh) 半导体器件
US20220012173A1 (en) Flexible configuration of memory module data width
US11614896B2 (en) UFS out of order hint generation
CN111694772A (zh) 存储器控制器
US9836215B2 (en) Real time protocol generation
CN109783395B (zh) 内存访问方法、交换芯片、内存模组及电子设备
US20240170038A1 (en) Adaptive Refresh Staggering

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid