KR102262807B1 - 불휘발성 메모리 모듈 어레이 시스템 - Google Patents
불휘발성 메모리 모듈 어레이 시스템 Download PDFInfo
- Publication number
- KR102262807B1 KR102262807B1 KR1020160009471A KR20160009471A KR102262807B1 KR 102262807 B1 KR102262807 B1 KR 102262807B1 KR 1020160009471 A KR1020160009471 A KR 1020160009471A KR 20160009471 A KR20160009471 A KR 20160009471A KR 102262807 B1 KR102262807 B1 KR 102262807B1
- Authority
- KR
- South Korea
- Prior art keywords
- port
- nonvolatile memory
- memory module
- configuration
- nonvolatile
- Prior art date
Links
- 239000007787 solid Substances 0.000 claims abstract description 11
- 238000011144 upstream manufacturing Methods 0.000 claims description 27
- 238000000034 method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 4
- 239000004744 fabric Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 238000003491 array Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
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)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Logic Circuits (AREA)
Abstract
본 발명의 일 실시 예는 불휘발성 메모리 모듈 어레이 시스템을 포함한다. 상기 시스템은 제1 포트, 제2 포트, 복수의 솔리드 스테이트 드라이브들, 스위치, 및 포트 구성 로직 섹션을 포함하는 하나 또는 그 이상의 불휘발성 메모리 모듈들을 포함하고, 상기 스위치는 상기 제1 및 제2 포트들 및 상기 복수의 솔리드 스테이트 드라이브들을 연결하도록 구성되고, 상기 포트 구성 로직 섹션은 상기 제2 포트와 관련된 제1 포트 구성 및 상기 제2 포트와 관련된 제2 포트 구성 사이를 토글하도록 구성된다.
Description
본 발명은 메모리 모듈 어레이들에 관한 것으로, 더욱 상세하게는 향상된 집적화 및 구성 가능한 불휘발성 메모리 모듈 어레이에 관한 것이다.
플래시 메모리 모듈들과 같은 불휘발성 메모리 모듈들을 포함하는 최신 장치들의 개수가 급격히 증가하고 있다. 예를 들어, 인터넷 가능 장치들, 컴퓨터 서버 팜들, 모바일 장치들, 고속 네트워크들 등은 비용, 용량, 및 성능을 포함하는 불휘발성 메모리 모듈들의 특별한 이점을 갖는다. 성능 및 용량을 증가시키기 위하여, 불휘발성 메모리 메모리 모듈들을 공유된 어레이들로 그룹화하는 시도가 수행되고 있다.
그러나, 일반적인 불휘발성 메모리 모듈 어레이들은 제한된 스케일링 및 고정된 구성들과 같은 문제점이 있다. 예를 들어, 일반적인 처리 방법들은 특정 애플리케이션 각각을 위하여 특별하거나 또는 주문 제작된 어레이를 설계하는 것을 포함한다. 각 애플리케이션들은 요구사항들이 서로 다르기 때문에, 다른 애플리케이션들을 목표로 하는 것은 다른 설계들을 요구한다. 이는 긴 디자인 주기 및 짧은 제품 수명을 야기한다. 본 발명의 기술적 사상에 따른 실시 예들은 이러한 문제 및 종래 기술에서의 다른 제약들을 해결한다.
본 발명의 목적은 본 발명의 기술적 사상에 따른 실시 예들은 상술된 문제 및 종래 기술에서의 다른 제약들을 해결하기 위한, 불휘발성 메모리 모듈 어레이 시스템을 제공하는데 있다.
본 발명의 일 실시 예는 불휘발성 메모리 모듈 어레이 시스템을 포함한다. 상기 시스템은 제1 포트, 제2 포트, 복수의 솔리드 스테이트 드라이브들, 스위치, 및 포트 구성 로직 섹션을 포함하는 하나 또는 그 이상의 불휘발성 메모리 모듈들을 포함하고, 상기 스위치는 상기 제1 및 제2 포트들 및 상기 복수의 솔리드 스테이트 드라이브들을 연결하도록 구성되고, 상기 포트 구성 로직 섹션은 상기 제2 포트와 관련된 제1 포트 구성 및 상기 제2 포트와 관련된 제2 포트 구성 사이를 토글하도록 구성된다.
실시 예로서, 상기 포트 구성 로직 섹션은 상기 제2 포트와 관련된 상기 제1 포트 구성을 저장하도록 구성되는 제1 불휘발성 구성 섹션, 및 상기 제2 포트와 관련된 상기 제2 포트 구성을 저장하도록 구성되는 제2 불휘발성 구성 섹션을 포함하고, 상기 제1 포트 구성은 상기 제2 포트가 다운스트림 포트로써 동작하도록 하고, 상기 제2 포트 구성은 상기 제2 포트가 업스트림 포트로써 동작하도록 하는 것을 특징으로 한다.
본 발명의 일 실시 예에 따르면, 불휘발성 메모리 모듈 어레이를 구성하기 위한 컴퓨터 실행 방법이 제공된다. 상기 어레이의 불휘발성 메모리 모듈들 각각은 제1 포트 및 제2 포트를 포함한다. 상기 컴퓨터 실행 방법은, 상기 복수의 불휘발성 메모리 모듈들 중 제1 불휘발성 메모리 모듈의 선택기에 의해, 상기 제2 포트와 관련된 제1 포트 구성 및 상기 제2 포트와 관련된 제2 포트 구성 중 적어도 하나를 선택하는 단계, 상기 제2 포트 구성을 선택한 상기 선택기에 응답하여 상기 제1 불휘발성 메모리 모듈의 제2 포트를 업스트림 포트로 구성하는 단계, 및 상기 제1 포트 구성을 선택한 상기 선택기에 응답하여 상기 제1 불휘발성 메모리 모듈의 제2 포트를 다운스트림 포트로 구성하는 단계를 포함한다.
본 발명의 일 실시 예는 불휘발성 메모리 모듈을 포함한다. 상기 불휘발성 메모리 모듈은 제1 포트, 제2 포트, 복수의 솔리드 스테이트 드라이브들, 상기 제1 포트 및 상기 제2 포트를 상기 복수의 솔리드 스테이트 드라이브들로 연결하도록 구성되는 스위치, 및 포트 구성 로직 섹션을 포함한다. 상기 포트 구성 로직 섹션은 상기 제2 포트와 관련된 제1 포트 구성을 저장하도록 구성되는 제1 불휘발성 구성; 및 상기 제2 포트와 관련된 제2 포트 구성을 저장하도록 구성되는 제2 불휘발성 구성을 포함하고, 상기 제1 포트 구성은 상기 제2 포트가 다운스트림 포트로서 동작하도록 하고, 상기 제2 포트 구성은 상기 제2 포트가 업스트림 포트로서 동작하도록 하고, 상기 포트 구성 로직 섹션은 상기 제2 포트와 관련된 상기 제1 포트 구성 및 상기 제2 포트와 관련된 제2 포트 구성 사이를 토글하도록 구성된다.
본 발명에 따르면, 향상된 성능 및 증가된 용량을 갖는 불휘발성 메모리 모듈 어레이 시스템이 제공된다.
도 1은 본 발명의 실시 예에 따른 미사용된 포트들을 사용하여 병렬적인 확장 구성의 불휘발성 메모리 모듈 어레이 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 연속적인 포트들을 포함하는 연속적인 확장 구성의 불휘발성 메모리 모듈 어레이 시스템을 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 X2 대역폭 확장 구성의 불휘발성 메모리 모듈 시스템을 보여주는 블록도이다.
도 4는 본 발명의 실시 예에 따른 X2 대역폭 및 연속적인 하이브리드 확장 구성의 불휘발성 메모리 모듈 어레이를 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른 X2 대역폭, 병렬적인, 및 연속적인 하이브리드 확장 구성의 불휘발성 메모리 모듈 어레이 시스템을 보여주는 블록도이다.
도 6은 본 발명의 실시 예에 따른 병렬적인 확장 구성, 연속적인 확장 구성 또는 대역폭 확장 구성에서, 불휘발성 메모리 모듈 어레이를 구성하기 위한 기법을 보여주는 순서도이다.
도 7은 불휘발성 메모리 모듈 및 호스트를 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 연속적인 포트들을 포함하는 연속적인 확장 구성의 불휘발성 메모리 모듈 어레이 시스템을 보여주는 블록도이다.
도 3은 본 발명의 실시 예에 따른 X2 대역폭 확장 구성의 불휘발성 메모리 모듈 시스템을 보여주는 블록도이다.
도 4는 본 발명의 실시 예에 따른 X2 대역폭 및 연속적인 하이브리드 확장 구성의 불휘발성 메모리 모듈 어레이를 보여주는 블록도이다.
도 5는 본 발명의 실시 예에 따른 X2 대역폭, 병렬적인, 및 연속적인 하이브리드 확장 구성의 불휘발성 메모리 모듈 어레이 시스템을 보여주는 블록도이다.
도 6은 본 발명의 실시 예에 따른 병렬적인 확장 구성, 연속적인 확장 구성 또는 대역폭 확장 구성에서, 불휘발성 메모리 모듈 어레이를 구성하기 위한 기법을 보여주는 순서도이다.
도 7은 불휘발성 메모리 모듈 및 호스트를 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
첨부된 도면들에 도시된 실시 예들을 참조하여, 본 발명의 실시 예들이 상세하게 설명된다. 이하의 상세한 설명에서, 다양한 상세한 설명들은 본 발명의 완벽한 이해를 위한 것이다. 그러나, 이러한 상세한 설명들 없이 당업자에 의해 이해될 수 있다. 다른 예로서, 실시 예의 사상이 불필요하게 모호해지지 않기 위하여, 잘 알려진 방법들, 절차들, 구성들, 회로들, 및 네트워크들은 상세하게 설명되지 않는다.
비록 다양한 요소들을 설명하기 위하여, 제1, 제2 등과 같은 용어들이 본문에서 사용될 수 있으나, 이러한 요소들은 이러한 용어들에 의해 한정되지 않음은 잘 이해될 것이다. 이러한 용어들은 오직 다른 구성들로부터 하나의 구성을 구분하기 위하여 사용된다. 예를 들어, 본 발명의 기술적 사상으로부터의 벗어남 없이, 제1 불휘발성 메모리 모듈은 제2 불휘발성 메모리 모듈을 지칭할 수 있고, 유사하게, 제2 불휘발성 메모리 모듈은 제1 불휘발성 메모리 모듈을 지칭할 수 있다.
본 발명의 상세한 설명에서 사용되는 전문 용어는 특정 실시 예들을 설명하기 위한 것이며, 본 발명의 한정을 의도하는 것은 아니다. 첨부된 특허청구범위 및 본 발명의 상세한 설명에서 사용된 바와 같이, 하나, 상기와 같은 단수 용어들은 복수의 형태들을 포함할 수 있다. 본문에서 사용되는 "또는"의 용어는 하나 또는 그 이상의 관련된 객체들의 가능한 조합들을 포함한다. 또한, 본문에서 사용되는 "포함하다"의 용어는 언급된 특징들, 숫자들, 단계들, 동작들, 요소들, 또는 구성들의 존재를 특정하나, 추가적인 하나 또는 그 이상의 특징들, 숫자들, 단계들, 동작들, 요소들, 또는 구성들의 추가를 배제하지 않는다. 도면들의 구성들 및 특징들 반드시 일정한 비율로 도시된 것은 아니다.
본 발명의 실시 예는 높은 확장성 및 구성 가능성을 갖는 (highly scalable and configurable) 불휘발성 메모리 모듈 어레이 시스템을 포함한다. 불휘발성 메모리 모듈 어레이 시스템은 단일 설계 및 다른 설정 조합들을 사용하여 다양한 요구들을 이행할 수 있다. 예를 들어, 불휘발성 메모리 모듈 어레이는 PCIe (peripheral component interconnect express) 버스에 장착될 수 있는 SSD(solid-state drives)와 호환되는 NVMe(Nonvolatile Memory express)를 포함할 수 있다. 다른 설정 조합들은 하드웨어 설정 조합일 수 있다. 각 불휘발성 메모리 모듈은 업스트림 PCIe 포트를 다수의 다운스트림 PCIe 포스들로 확장할 수 있는 PCIe 스위치를 포함할 수 있다. 이로 인하여, 다수의 NVMe 모듈들의 연결이 가능하다. 불휘발성 메모리 모듈 어레이 시스템은 병렬적인 확장성 구성 (parallel scalability configuration), 연속적인 확장성 구성 (cascading scalability configuration), X2 대역 구성(X2 bandwidth configuration), 또는 하이브리드 구성(hybrid configuration)을 포함할 수 있다.
도 1은 본 발명의 실시 예에 따른 미사용된 포트들(unused ports)을 사용하여 병렬적인 확장 구성(parallel scaling configuration)의 불휘발성 메모리 모듈 어레이 시스템을 보여주는 블록도이다. 불휘발성 메모리 모듈 어레이 시스템(100)은 하나 또는 그 이상의 불휘발성 메모리 모듈들(예를 들어, 115, 120, 125)을 포함할 수 있다. 다른 불휘발성 메모리 모듈들이 시스템(100)에 포함될 수 있음은 잘 이해될 것이다. 하나 또는 그 이상의 불휘발성 메모리 모듈들(예를 들어, 115, 120, 125)은 포트 (145, 150), 하나 또는 그 이상의 솔리드 스테이트 드라이브들(135)(SSD; solid state driver), 및 스위치(130)를 포함할 수 있다. 스위치(130)는 포트들(145, 150)을 SSD(135)와 연결하도록 구성된다. 예를 들어, 스위치(130)는 PCIe 스위치일 수 있다. 추가적으로, 하나 또는 그 이상의 불휘발성 메모리 모듈들(예를 들어, 115, 120, 125)은 포트 구성 로직 섹션(162)(port configuration logic section)을 포함할 수 있다. 포트 구성 로직 섹션(162)은 포트(150)가 업스트림 포트로써 구성되는지 또는 다운스트림 포트로써 구성되는지 판별할 수 있다. 판별 동작은 이하에서 상세하게 설명된다. 예시적으로, 병렬적인 확장 구성(parallel scaling configuration)은 포트(150)가 사용될 필요가 없다.
불휘발성 메모리 모듈 어레이 시스템(100)은 고속 버스 또는 패브릭(110)(high speed bus and/or fabric)를 포함할 수 있다. 예를 들어, 고속 버스 또는 패브릭(110)는 고속 PCIe 버스 또는 스위치드 패브릭(swiched fabric)을 포함할 수 있다. 고속 버스 또는 패브릭(110)는 배선들(165)을 통해, 하나 또는 그 이상의 불휘발성 메모리 모듈들(115, 120, 125)의 포트들(145, 150) 중 적어도 하나와 연결될 수 있다. 예시적인 실시 예, 즉, 병렬적인 확장 구성(parallel scaling configuration)에서, 고속 버스 또는 패브릭(110)은 포트(150)와 연결될 필요가 없다.
불휘발성 메모리 모듈 어레이 시스템(100)은 호스트(105)를 포함할 수 있다. 호스트(105)는 고속 버스 또는 패브릭(110)를 통해 하나 또는 그 이상의 불휘발성 메모리 모듈들(115, 120, 125)와 통신하도록 구성될 수 있다. 예를 들어, 호스트(105)는 호스트 에이전트, 호스트 컴퓨터, 호스트 프로세스, 호스트 로직 섹션, 서버 등을 포함할 수 있다. 불휘발성 메모리 모듈(115)의 포트(145)는 고속 버스 또는 고속 패브릭(110)를 통해 호스트(105)와 연결될 수 있다. 불휘발성 메모리 모듈(120)의 포트(145)는 고속 버스 또는 고속 패브릭(110)를 통해 호스트(105)와 연결될 수 있다. 불휘발성 메모리 모듈(125)의 포트(145)는 고속 버스 또는 고속 패브릭(110)를 통해 호스트(105)와 연결될 수 있다. 병렬적인 확장 구성(parallel scaling configuration)에서, 불휘발성 메모리 모듈들(115, 120, 125) 각각의 포트(150)는 호스트(105)와 연결되지 않을 수 있다.
포트 구성 로직 섹션(162)은 포트(150)와 관련된 제1 포트 구성(158) 및 포트(150)와 관련된 제2 포트 구성(126) 사이를 토글(toggle)할 수 있다. 포트 구성 로직 섹션(162)은 포트(150)와 관련된 제1 포트 구성(158)을 저장할 수 있는 불휘발성 구성 섹션(155)을 포함할 수 있다. 제1 포트 구성(158)은 포트(150)가 다운스트림 포트로써 동작하도록 할 수 있다. 포트 구성 로직 섹션(162)은 포트(150)와 관련된 제2 포트 구성(126)을 저장할 수 있는 제2 불휘발성 구성 섹션(160)을 포함할 수 있다. 제2 포트 구성(126)은 포트(150)가 업스트림 포트로써 동작하도록 할 수 있다. 예를 들어, 포트(150)가 업스트림 포트 또는 다운스트림 포트로써 구성될 수 있도록, 불휘발성 메모리 모듈들(115, 120, 125)의 포트 구성 로직 섹션(162)의 선택기(140)는 제1 포트 구성(158) 또는 제2 포트 구성(126)이 스위치(130)에 의해 엑세스되도록 할 수 있다. 선택기(140)는 다중화기, 딥 스위치(dip switch), 모듈 스트래핑 스위치 등일 수 있다. 선택기(140)는 로직에 의해 자동으로 또는 사용자에 의해 수동으로 제어될 수 있다. 본문에 기재된 다양한 실시 예들에서, 포트 구성들의 특정 조합들이 사용될 수 있다. 이는 이하에서 더욱 상세하게 설명된다.
병렬적인 확장 구성에서, 선택기(140), EEPROM(155, 160)(electrically erasable programmable read-only memory)을 포함하는 포트 구성 로직 섹션(162)은 사용 또는 활성화될 필요가 없다. 예를 들어, 저장 용량 및 대역폭을 위하여 함께 확장되는 것이 바람직한 경우, 병렬적인 확장 구성은 이점을 가질 수 있다. 다시 말해서, 하나 또는 그 이상의 SSD를 SSD(135)의 그룹에 추가함으로써, 대응하는 불휘발성 메모리 모듈의 대역폭 및 저장 용량 모두를 확장(scale-up)하는 효과를 가질 수 있다.
도 2는 본 발명의 실시 예에 따른 연속적인 포트들을 포함하는 연속적인 확장 구성(cascading scaling configuration)의 불휘발성 메모리 모듈 어레이 시스템을 보여주는 블록도이다. 불휘발성 메모리 시스템(200)은 하나 또는 그 이상의 불휘발성 메모리 모듈들(115, 120, 125)을 포함할 수 있다. 불휘발성 메모리 모듈들(115, 120, 125) 각각은 포트(145), 포트(150), 하나 또는 그 이상의 SSD(135) 및 스위치(130)를 포함할 수 있다. 스위치(130)는 포트들(145, 150) 및 SSD(135)를 연결하도록 구성될 수 있다. 추가적으로, 불휘발성 메모리 모듈들(115, 120, 125) 각각은 포트 구성 로직 섹션(162)을 포함할 수 있다.
포트 구성 로직 섹션(162)은 제1 포트 구성(158) 또는 제2 포트 구성(126)이 제1 불휘발성 구성 섹션(155) 또는 제2 불휘발성 구성 섹션(160)으로부터 각각 로드되도록 하는 선택기(140)를 포함할 수 있다. 불휘발성 메모리 모듈(115)의 포트(145)는 호스트(105)와 직접적으로 또는 고속 서브 또는 패브릭(110)(도 1 참조)를 통해 연결될 수 있다. 불휘발성 메모리 모듈(115)의 포트(150)는 배선(210)을 통해 연속되는 방식(cascaded fashion)으로 불휘발성 메모리 모듈(120)의 포트(145)와 연결될 수 있다. 불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(155)에 저장된 제1 포트 구성(158)을 액세스하여 불휘발성 메모리 모듈(115)의 포트(150)가 다운스트림 포트로써 동작하도록 할 수 있다. 예를 들어, 불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)의 선택기(140)는 포트(150)가 다운스트림 포트로써 구성될 수 있도록 스위치(130)에 의해 제1 포트 구성(158)가 액세스되게 할 수 있다.
불휘발성 메모리 모듈(120)의 포트(150)는 연속되는 방식(cascaded fashion)으로 배선(215)을 통해 불휘발성 메모리 모듈(125)의 포트(145)와 연결될 수 있다. 불휘발성 메모리 모듈(125)의 포트(150)는 사용될 필요가 없다. 불휘발성 메모리 모듈(120)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(155)에 저장된 제1 포트 구성(158)을 액세스하여 불휘발성 메모리 모듈(120)의 포트(150)가 다운스트림 포트로써 동작하도록 할 수 있다. 예를 들어, 불휘발성 메모리 모듈(120)의 포트 구성 로직 섹션(162)의 선택기(140)는 포트(150)가 다운스트림 포트로써 구성될 수 있도록 스위치(130)에 의해 제1 포트 구성(158)가 액세스되게 할 수 있다.
다운스트림 포트로써 동작하는 불휘발성 메모리 모듈(115)의 포트(150)는 불휘발성 메모리 모듈(115)의 포트(145)로부터의 다운스트림일 수 있다. 유사하게, 다운스트림 포트로써 동작하는 불휘발성 메모리 모듈(120)의 포트(150)는 불휘발성 메모리 모듈(115)의 포트(145), 불휘발성 메모리 모듈(115)의 포트(150), 및 불휘발성 메모리 모듈(120)의 포트(145)로부터의 다운스트림일 수 있다.
연속적인 확장 구성에서, 포트 구성 로직 섹션(162)은 EEPROM(155)에 저장된 제1 포트 구성(158)이 활성화되거나 또는 불휘발성 메모리 모듈들(115, 120, 125) 각각에 대하여 사용되도록 할 수 있다. 예를 들어, 업스트림 대역폭을 변경하지 않으면서, 저장 용량의 증가가 필요한 경우, 연속적인 확장 구성이 유리할 수 있다. 다시 말해서, 하나 또는 그 이상의 추가적인 SSD를 SSD(135)의 그룹에 추가함으로써, 대역폭을 변경하지 않고, 대응하는 불휘발성 메모리 모듈의 저장 용량을 증가시킬 수 있는 효과가 있다. 이는 저 부하 및 고용량의 애플리케이션에서 유리할 수 있다.
도 3은 본 발명의 실시 예에 따른 X2 대역폭 확장 구성의 불휘발성 메모리 모듈 시스템을 보여주는 블록도이다. X2(즉, 더블) 대역폭 확장 구성(X2 bandwidth scaling configuration)에서, 불휘발성 메모리 모듈들(115, 120, 125) 각각의 포트(145)는 배선(305) 및 고속 버스 또는 패브릭(110)을 통해 호스트(105)와 연결될 수 있다. 또한, 불휘발성 메모리 모듈들(115, 120, 125) 각각의 포트(150)는 배선(305) 및 고속 버스 또는 패브릭(110)을 통해 호스트(105)와 연결될 수 있다.
불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(160)에 저장된 제2 포트 구성(126)을 액세스하여 불휘발성 메모리 모듈들(115, 120, 125) 각각의 포트(150)가 업스트림 포트로서 동작하도록 할 수 있다. 예를 들어, 포트(150)가 업스트림 포트로서 구성되도록 하기 위하여 불휘발성 메모리 모듈들(115, 120, 125)의 포트 구성 로직 섹션(162)의 선택기(140)는 제2 포트 구성(126)이 스위치(130)에 의해 액세스되도록 할 수 있다.
불휘발성 메모리 모듈(120)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(160)에 저장된 포트 구성 로직 섹션(162)을 액세스하여 불휘발성 메모리 모듈(120)의 포트(150)가 업스트림 포트로써 동작하도록 할 수 있다. 유사하게, 불휘발성 메모리 모듈(125)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(160)에 저장된 제2 포트 구성(126)을 액세스하여 불휘발성 메모리 모듈(125)의 포트(150)가 업스트림 포트로서 동작하도록 할 수 있다.
X2 대역폭 확장 구성에서, 포트 구성 로직 섹션(162)은 EEPROM(160)에 저장된 제2 포트 구성(126)이 불휘발성 메모리 모듈들(115, 120, 125) 각각에서 사용 또는 활성화되도록 할 수 있다. 예를 들어, 병렬적인 확장 구성 및 연속적인 확장 구성과 비교하여 2배 이상의 성능이 요구되는 경우에 X2 대역폭 확장 구성이 유리할 수 있다. 다시 말해서, 불휘발성 메모리 모듈은 X2 업스트림 대역폭을 달성하여 고성능 중심의 애플리케이션 요구를 충족할 수 있다.
도 4는 본 발명의 실시 예에 따른 X2 대역폭 및 연속적인 하이브리드 확장 구성의 불휘발성 메모리 모듈 어레이를 보여주는 블록도이다. 불휘발성 메모리 모듈(115)의 포트(145)는 고속 버스 또는 패브릭(110) 및 배선들(405)을 통해 호스트(105)와 연결될 수 있다. 불휘발성 메모리 모듈(115)의 포트(150)는 배선들(405) 중 하나를 통해, 그리고 고속 버스 또는 패브릭(110)을 통해 호스트(105)와 연결될 수 있다.
불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(160)에 저장된 제2 포트 구성(126)을 액세스하여 불휘발성 메모리 모듈(115)의 포트(150)가 업스트림 포트로써 동작하도록 할 수 있다. 예를 들어, 포트(150)가 업스트림 포트로써 구성되도록 하기 위하여, 불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)의 선택기(140)는 스위치(130)에 의해 제2 포트 구성(126)에 액세스되도록 할 수 있다.
불휘발성 메모리 모듈(120)의 포트(145)는 고속 버스 또는 패브릭(110) 및 배선(410)을 통해 호스트(105)와 연결될 수 있다. 불휘발성 메모리 모듈(120)의 포트(150)는 불휘발성 메모리 모듈(125)의 포트(145)와 배선(415)을 통해 연결될 수 있다. 불휘발성 메모리 모듈(120)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(155)에 저장된 제1 포트 구성(158)을 액세스하여 불휘발성 메모리 모듈(120)의 포트(150)가 다운스트림 포트로써 동작하도록 할 수 있다. 불휘발성 메모리 모듈(125)의 포트(150)는 사용될 필요가 없다.
X2 대역폭 및 연속적인 하이브리드 확장 구성에서, 불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)은 EEPROM(160)에 저장된 제2 포트 구성(126)이 불휘발성 메모리 모듈(115)에서 사용되거나 또는 활성화되도록 할 수 있다. 불휘발성 메모리 모듈(120)의 포트 구성 로직 섹션(162)은 EEPROM(155)에 저장된 제1 포트 구성(158)이 불휘발성 메모리 모듈(120)에서 사용되거나 또는 활성화되도록 할 수 있다. 예를 들어, 업스트림 대역폭이 변경되지 않는 반면에, 시스템의 일부에서 증가된 저장 용량이 요구되고, 시스템의 다른 영역에서 증가된 성능이 함께 요구되는 경우, X2 대역폭 및 연속적인 하이브리드 확장 구성이 유리할 수 있다.
도 5는 본 발명의 실시 예에 따른 X2 대역폭, 병렬적인, 그리고, 연속적인 하이브리드 확장 구성의 불휘발성 메모리 모듈 어레이 시스템을 보여주는 블록도이다. 불휘발성 메모리 모듈(115)의 포트(145)는 배선들(505) 중 어느 하나 그리고 고속 버스 또는 패브릭(115)을 통해 호스트(105)와 연결된다. 불휘발성 메모리 모듈(115)의 포트(150)는 배선들(505) 중 어느 하나 그리고 고속 버스 또는 패브릭(115)을 통해 호스트(105)와 연결된다.
불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(160)에 저장된 제2 포트 구성(126)을 액세스하여, 불휘발성 메모리 모듈(115)의 포트(150)가 업스트림 포트로써 동작하도록 할 수 있다. 예를 들어, 포트(150)가 업스트림 포트로써 구성되기 위하여 불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)의 선택기(140)는 스위치(130)에 의해 액세스되도록 할 수 있다.
불휘발성 메모리 모듈(120)의 포트(145)는 배선(510)을 통해 그리고 고속 버스 또는 패브릭(110)을 통해 호스트(105)와 연결될 수 있다. 불휘발성 메모리 모듈(120)의 포트(150)는 사용될 필요가 없다.
불휘발성 메모리 모듈(125)의 포트(145)는 배선(515)을 통해 그리고 고속 버스 또는 패브릭(110)을 통해 호스트(105)와 연결될 수 있다. 불휘발성 메모리 모듈(125)의 포트(150)는 배선(520)을 통해 불휘발성 메모리 모듈(128)의 포트(145)와 연결될 수 있다. 불휘발성 메모리 모듈(128)의 포트(150)는 사용될 필요가 없다.
불휘발성 메모리 모듈(125)의 포트 구성 로직 섹션(162)은 불휘발성 구성 섹션(155)에 저장된 제1 포트 구성(158)을 액세스하여, 불휘발성 메모리 모듈(125)의 포트(150)가 다운스트림 포트로서 동작하도록 할 수 있다.
X2 대역폭, 병렬적인, 그리고 연속적인 하이브리드 확장 구성에서, 불휘발성 메모리 모듈(115)의 포트 구성 로직 섹션(162)은 EEPROM(160)에 저장된 제2 포트 구성(126)이 불휘발성 메모리 모듈(115)에서 사용되거나 또는 활성화되도록 할 수 있다. 불휘발성 메모리 모듈(125)의 포트 구성 로직 섹션(162)은 EEPROM(155)에 저장된 제1 포트 구성(158)이 불휘발성 메모리 모듈(125)에서 사용되거나 또는 활성화되도록 할 수 있다. 예를 들어, 업스트림 대역폭이 변경되지 않는 반면에, 시스템의 제1 일부에 증가된 저장 용량이 요구되고, 시스템의 다른 일부에서 향상된 성능이 요구되고, 시스템의 또 다른 일부에서 향상된 저장 용량 및 대역폭이 함께 요구되는 경우에, 하이브리드 X2 대역폭, 병렬, 및 연속적인 구성이 유리할 수 있다.
이하의 표 1은 상술된 불휘발성 메모리 어레이 시스템의 예시적인 구성들을 상세하게 보여준다.
구성 | 대역폭/성능 | 용량 | 확장 설정 |
병렬적인 확장 | (불휘발성 메모리 모듈의 개수) X (불휘발성 메모리 모듈 당 단위 대역폭) | (불휘발성 메모리 모듈의 개수) X (불휘발성 메모리 모듈의 단위 용량) | 불휘발성 메모리 모듈들을 병렬로 확장 - 제2 포트 구성은 무관 |
연속적인 확장 | 불휘발성 메모리 모듈의 단위 대역폭 | (불휘발성 메모리 모듈의 개수) X (불휘발성 메모리 모듈의 단위 용량) |
불휘발성 메모리 모듈들을 연속적인 형태로 확장 - 업스트림 포트가 선택되도록 제2 포트를 구성하기 위한 EDPROM 이미지 |
X2 대역폭 | (불휘발성 메모리 모듈의 개수) X (불휘발성 메모리 모듈 당 단위 대역폭) X 2 | (불휘발성 메모리 모듈의 개수) X (불휘발성 메모리 모듈의 단위 용량) |
불휘발성 메모리 모듈들을 직접 연결 방식으로 확장 - 다운스트림 포트가 선택되도록 제2 포트를 구성하기 위한 EDPROM 이미지 |
도 6은 본 발명의 실시 예에 따른 병렬적인 확장 구성, 연속적인 확장 구성 또는 대역폭 확장 구성에서, 불휘발성 메모리 모듈 어레이를 구성하기 위한 기법을 보여주는 순서도이다.
605 단계에서, 불휘발성 메모리 모듈 어레이의 병렬적인 확장 구성이 요구되는지 판별될 수 있다. 만약 그렇다면, 610 단계에서, 각 불휘발성 메모리 모듈의 제1 포트는 호스트와 고속 버스 또는 패브릭을 통해 연결될 수 있다. 만약 그렇지 않다면, 615 단계에서, 불휘발성 메모리 모듈 어레이의 연속적인 확장 구성이 요구되는지 판별될 수 있다.
만약 그렇다면, 620 단계에서, 불휘발성 메모리 모듈의 제1 포트는 호스트와 연결될 수 있다. 625 단계에서, 제1 불휘발성 메모리 모듈의 제2 포트는 제2 불휘발성 메모리 모듈의 제1 포트와 연결될 수 있다. 630 단계에서, 제2 불휘발성 메모리 모듈의 제2 포트는 제3 불휘발성 메모리 모듈의 제1 포트와 연결될 수 있다. 635 단계에서, 제1 및 제2 불휘발성 메모리 모듈들의 제2 포트와 관련된 제1 포트 구성은 각 불휘발성 메모리 모듈의 제2 포트가 다운스트림 포트로써 동작하도록 선택될 수 있다. 연속적인 확장 구성이 요구되지 않는다면, 640 단계에서, 대역폭 구성이 요구되는지 판별될 수 있다.
만약 그렇다면, 645 단계에서, 어레이의 각 불휘발성 메모리 모듈의 제1 및 제2 포트들은 호스트와 연결될 수 있다. 650 단계에서, 어레이의 불휘발성 메모리 모듈들 각각의 제2 포트와 관련된 제2 포트 구성이 불휘발성 메모리 모듈들 각각의 제2 포트가 업스트림 포트로써 동작하도록 선택될 수 있다.
상술된 동작 방법이 도시된 순서에 따라 수행되는 것이 아니라, 다른 순서 또는 단계들 사이에서 수행될 수 있음은 잘 이해될 것이다.
도 7은 불휘발성 메모리 모듈(예를 들어, 도 1의 불휘발성 메모리 모듈과 유사하거나 또는 동일한 불휘발성 메모리 모듈) 및 호스트를 포함하는 컴퓨팅 시스템을 보여주는 블록도이다. 컴퓨팅 시스템(700)은 클럭(710), 랜덤 액세스 메모리(RAM; Random Access Memory)(715), 사용자 인터페이스(720), 기저대역 칩셋과 같은 모뎀(725), 솔리드 스테이트 드라이브(SSD; Solid State Drive)(740), 또는 프로세서(735)를 포함할 수 있다. 컴퓨팅 시스템(700)에 포함된 구성 요소들은 시스템 버스(705)를 통해 전기적으로 연결될 수 있다. 시스템 버스(705)는 상술된 바와 같은 고속 버스 또는 패브릭일 수 있다. 호스트(105)는 상술된 것들과 대응될 수 있고, 시스템 버스(705)와 전기적으로 연결될 수 있다. 호스트(105)는 불휘발성 메모리 모듈들(745), 클럭(710), 랜덤 액세스 메모리(715), 사용자 인터페이스(720), 모뎀(725), 솔리드 스테이트 드라이브(740), 또는 프로세서(735)를 포함하거나 또는 서로 통신할 수 있다.
상술된 상세한 설명은 본 발명의 특정 사상들이 구현될 수 있는 적절한 장치 또는 장치들의 일반적인 설명을 제공하기 위한 것이다. 일반적으로, 장치 또는 장치들은 프로세서들, 메모리(예를 들어, RAM, ROM, 또는 다른 상태의 저장 장치), 저장 장치들, 비디오 인터페이스, 및 입출력 인터페이스 포트들과 연결된 시스템 버스를 포함한다. 키보드, 마이크 등과 같은 일반적인 입력 장치들로부터의 입력뿐만 아니라, 다른 장치로부터의 명령, 가상 현실 환경(virtual reality environment)과의 상호 작용, 생체 신호의 피드백, 또는 다른 입력 신호에 의해 장치 및 장치들의 적어도 일부가 제어될 수 있다. 본문에 기재된 장치(machine)의 용어는 단일 장치, 가상 장치, 또는 장치들, 가상 장치들, 또는 함께 동작하는 다른 장치들과 연결된 시스템을 포함할 수 있다. 예시적인 장치들은 퍼스널 컴퓨터, 워크스테이션, 서버, 휴대용 컴퓨터, 휴대용 장치, 전화, 태블릿 등과 같은 컴퓨팅 장치들 뿐만 아니라, 개인 또는 공용 운송(예를 들어, 자동차, 기차, 택시 등)과 같은 수송 장치들을 포함할 수 있다.
장치 또는 장치들은 프로그램 가능하거나 또는 프로그램 불가능한 로직 장치들 또는 어레이들과 같은 내장 컨트롤러들, ASIC(Application Specific Integrated Circuit), 내장 컴퓨터, 스마트 카드 등을 포함할 수 있다. 장치 또는 장치들은 네트워크 인터페이스, 모뎀, 또는 다른 통신 연결과 같은 하나 또는 그 이상의 무선 장치들과의 하나 또는 그 이상의 연결들을 활용할 수 있다. 장치들은 인트라넷, 인터넷, LAN(Local Area Network), WAN(Wide Area Network) 등과 같은 물리적 또는 논리적 네트워크의 방식으로 연결될 수 있다. 당업자는 네트워크 통신이 무선 주파수(RF; Radio Frequency), 위성, 마이크로파, IEEE 545.11, 블루투스, 광, 적외선, 케이블, 레이저 등과 같은 다양한 유선/무선 단거리 또는 장거리 캐리어들 및 프로토콜을 활용할 수 있음을 이해할 수 있다.
본 발명의 실시 예들은, 장치에 의해 액세스될 때, 장치가 로우-레벨 하드웨어 컨텍스트 또는 추상적인 데이터를 정의하거나 또는 작업을 수행하게 하는 기능들, 절차들, 데이터 구조들, 애플리케이션 프로그램들 등을 포함하는 데이터와 관련된 결합 또는 그것들을 참조함으로써 설명될 수 있다. 예를 들어, 관련된 데이터는 RAM, ROM, 하드 드라이브, 플로피 디스크들, 광 스토리지, 테이프, 플래시 메모리, 메모리 스틱, 디지털 비디오 디스크, 생체 스토리지 등과 같은 휘발성 또는 불휘발성 메모리 또는 다른 저장 장치들에 저장될 수 있다. 관련된 데이터는 물리적 또는 논리적 네트워크와 같은 전송 환경을 통해 패킷, 직렬 데이터, 병렬 데이터, 전파 신호 등과 같은 형태로 전송될 수 있고, 압축 또는 암호화 형태로 사용될 수 있다. 관련된 데이터는 분산 환경에서 사용될 수 있고, 지역적으로 또는 원격으로, 장치 액세스를 위하여 저장될 수 있다.
실시 예들을 참조하여 본 발명의 이론들이 설명되었으나, 실시 예들은 본 발명의 기술적 사상으로부터의 벗어남 없이 변형될 수 있고, 다른 적절한 방식과 조합될 수 있음은 잘 이해될 것이다. 그리고, 상세한 설명이 특정 실시 예들을 집중되었으나, 다른 구성들이 고려된다. 특히, 본문에서 "본 발명의 실시 예에 따르면"과 같은 표현들이 사용되었으나, 이러한 표현들은 일반적으로, 참조 실시 예의 가능성을 의미하며, 본 발명이 특정 실시 예 구성들에 한정됨을 의미하지 않는다. 본문에 기재된 바와 같이, 이러한 용어들은 다른 실시 예들과 조합될 수 있는 동일한 또는 다른 실시 예들을 참조할 수 있다.
본 발명의 실시 예들은 하나 또는 그 이상의 프로세서들에 의해 수행될 수 있는 명령어들을 포함하는 비-일시적인 판독 가능 매체를 포함할 수 있다. 명령어들은 본문에 기재된 본 발명의 구성 요소들을 실행하는 명령어들을 포함할 수 있다.
상술된 실시 예들은 본 발명을 한정하는 것은 아니다. 비록 일부 실시 예들이 설명되었으나, 당업자는 본문의 이점들 및 새로운 특징으로부터의 벗어남 없이 본 발명의 가능한 다양한 변형을 용이하게 수행할 수 있다. 따라서, 이러한 변형들은 특허청구범위에 정의된 본 발명의 사상 내에 포함되도록 의도될 수 있다.
100: 불휘발성 메모리 모듈 어레이 시스템
105: 호스트
110: 고속 버스 또는 패브릭
115, 120, 125: 불휘발성 메모리 모듈들
145: 제1 포트
150: 제2 포트
130: 스위치
135: SSD
140: 선택기
155: 제1 불휘발성 구성(EEPROM)
160: 제2 불휘발성 구성(EEPROM)
158: 제1 포트 구성
162: 제2 포트 구성
105: 호스트
110: 고속 버스 또는 패브릭
115, 120, 125: 불휘발성 메모리 모듈들
145: 제1 포트
150: 제2 포트
130: 스위치
135: SSD
140: 선택기
155: 제1 불휘발성 구성(EEPROM)
160: 제2 불휘발성 구성(EEPROM)
158: 제1 포트 구성
162: 제2 포트 구성
Claims (10)
- 불휘발성 메모리 모듈 어레이 시스템에 있어서,
각각 제1 포트, 제2 포트, 복수의 솔리드 스테이트 드라이브들, 스위치, 및 포트 구성 로직 섹션을 포함하고, 상기 스위치는 상기 제1 및 제2 포트들을 상기 복수의 솔리드 스테이트 드라이브들에 연결하도록 구성되고, 상기 포트 구성 로직 섹션은 상기 제2 포트와 연관된 제1 포트 구성 및 상기 제2 포트와 연관된 제2 포트 구성 사이를 토글하도록 구성되는 하나 또는 그 이상의 불휘발성 메모리 모듈들;
상기 제2 포트와 연관된 상기 제1 포트 구성을 저장하도록 구성된 제1 불휘발성 구성 섹션; 및
상기 제2 포트와 연관된 상기 제2 포트 구성을 저장하도록 구성된 제2 불휘발성 구성 섹션을 포함하고,
상기 제1 포트 구성은 상기 제2 포트가 다운스트림 포트로써 동작하도록 구성되고,
상기 제2 포트 구성은 상기 제2 포트가 업스트림 포트로써 동작하도록 구성되는 불휘발성 메모리 모듈 어레이 시스템. - 제 1 항에 있어서,
상기 포트 구성 로직 섹션은:
상기 제1 포트 구성 또는 상기 제2 포트 구성 중 적어도 하나가 상기 제1 불휘발성 구성 섹션 또는 상기 제2 불휘발성 구성 섹션으로부터 각각 로드되도록 구성된 선택기를 더 포함하는 불휘발성 메모리 모듈 어레이 시스템. - 제 1 항에 있어서,
상기 하나 또는 그 이상의 불휘발성 메모리 모듈들은 제1 불휘발성 메모리 모듈 및 제2 불휘발성 메모리 모듈을 포함하고,
상기 제1 불휘발성 메모리 모듈의 상기 제1 포트는 버스를 통해 호스트와 연결되도록 구성되고,
상기 제2 불휘발성 메모리 모듈의 상기 제1 포트는 상기 버스를 통해 상기 호스트와 연결되도록 구성되고,
상기 제1 불휘발성 메모리 모듈의 상기 제2 포트는 상기 호스트와 분리되도록 구성되고,
상기 제2 불휘발성 메모리 모듈의 상기 제2 포트는 상기 호스트와 분리되도록 구성된 불휘발성 메모리 모듈 어레이 시스템. - 제 1 항에 있어서,
상기 하나 또는 그 이상의 불휘발성 메모리 모듈들은 제1 불휘발성 메모리 모듈 및 제2 불휘발성 메모리 모듈을 포함하고,
상기 제1 불휘발성 메모리 모듈의 상기 제1 포트는 버스를 통해 호스트와 연결되도록 구성되고,
상기 제1 불휘발성 메모리 모듈의 상기 제2 포트는 상기 제2 불휘발성 메모리 모듈의 상기 제1 포트와 연결되도록 구성되고,
상기 제1 불휘발성 메모리 모듈의 상기 포트 구성 로직 섹션은 상기 제1 불휘발성 구성 섹션에 저장된 상기 제1 포트 구성을 액세스하여 상기 제1 불휘발성 메모리 모듈의 상기 제2 포트가 다운스트림 포트로써 동작하도록 구성된 불휘발성 메모리 모듈 어레이 시스템. - 제 4 항에 있어서,
상기 하나 또는 그 이상의 불휘발성 메모리 모듈들은 제3 불휘발성 메모리 모듈을 더 포함하고,
상기 제2 불휘발성 메모리 모듈의 상기 제2 포트는 상기 제3 불휘발성 메모리 모듈의 상기 제1 포트와 연결되도록 구성되고,
상기 제2 불휘발성 메모리 모듈의 상기 포트 구성 로직 섹션은 상기 제1 불휘발성 구성 섹션에 저장된 상기 제1 포트 구성을 액세스하여 상기 제2 불휘발성 메모리 모듈의 상기 제2 포트가 다운스트림 포트로써 동작하도록 구성된 불휘발성 메모리 모듈 어레이 시스템. - 제 5 항에 있어서,
상기 다운스트림 포트로써 동작하도록 구성된 상기 제1 불휘발성 메모리 모듈의 상기 제2 포트는 상기 제1 불휘발성 메모리 모듈의 상기 제1 포트로부터 다운스트림되고,
상기 다운스트림 포트로써 동작하도록 구성된 상기 제2 불휘발성 메모리 모듈의 상기 제2 포트는 상기 제1 불휘발성 메모리 모듈의 상기 제1 포트로부터 다운스트림되고, 상기 제1 불휘발성 메모리 모듈의 상기 제2 포트로부터 다운스트림되고, 상기 제2 불휘발성 메모리 모듈의 상기 제1 포트로부터 다운스트림되는 불휘발성 메모리 모듈 어레이 시스템. - 제 1 항에 있어서,
상기 하나 또는 그 이상의 불휘발성 메모리 모듈들은 제1 불휘발성 메모리 모듈 및 제2 불휘발성 메모리 모듈을 포함하고,
상기 제1 불휘발성 메모리 모듈의 상기 제1 포트는 버스를 통해 호스트와 연결되고,
상기 제1 불휘발성 메모리 모듈의 상기 제2 포트는 상기 버스를 통해 상기 호스트와 연결되고,
상기 제1 불휘발성 메모리 모듈의 상기 포트 구성 로직 섹션은 상기 제2 불휘발성 구성 섹션에 저장된 상기 제2 포트 구성을 액세스하여 상기 제1 불휘발성 메모리 모듈의 상기 제2 포트가 업스트림 포트로써 동작하도록 구성되고,
상기 제2 불휘발성 메모리 모듈의 상기 제1 포트는 상기 버스를 통해 상기 호스트와 연결되고,
상기 제2 불휘발성 메모리 모듈의 상기 제2 포트는 상기 버스를 통해 상기 호스트와 연결되고,
상기 제2 불휘발성 메모리 모듈의 상기 포트 구성 로직 섹션은 상기 제2 불휘발성 구성 섹션에 저장된 상기 제2 포트 구성을 액세스하여 상기 제2 불휘발성 메모리 모듈의 상기 제2 포트가 업스트림 포트로써 동작하도록 구성된 불휘발성 메모리 모듈 어레이 시스템. - 제 7 항에 있어서,
상기 하나 또는 그 이상의 불휘발성 메모리 모듈들은 제3 불휘발성 메모리 모듈을 더 포함하고,
상기 제3 불휘발성 메모리 모듈의 상기 제1 포트는 상기 버스를 통해 상기 호스트와 연결되도록 구성되고,
상기 제3 불휘발성 메모리 모듈의 상기 제2 포트는 상기 버스를 통해 상기 호스트와 연결되도록 구성되고,
상기 제3 불휘발성 메모리 모듈의 상기 포트 구성 로직 섹션은 상기 제2 불휘발성 구성 섹션에 저장된 상기 제2 포트 구성을 액세스하여 상기 제3 불휘발성 메모리 모듈의 상기 제2 포트가 업스트림 포트로써 동작하도록 구성된 불휘발성 메모리 모듈 어레이 시스템. - 제 1 항에 있어서,
상기 하나 또는 그 이상의 불휘발성 메모리 모듈들은 제1 불휘발성 메모리 모듈, 제2 불휘발성 메모리 모듈, 및 제3 불휘발성 메모리 모듈을 포함하고,
상기 제1 불휘발성 메모리 모듈의 상기 제1 포트는 버스를 통해 호스트와 연결되도록 구성되고,
상기 제1 불휘발성 메모리 모듈의 상기 제2 포트는 상기 버스를 통해 상기 호스트와 연결되도록 구성되고,
상기 제1 불휘발성 메모리 모듈의 상기 포트 구성 로직 섹션은 상기 제2 불휘발성 구성 섹션에 저장된 상기 제2 포트 구성을 액세스하여 상기 제1 불휘발성 메모리 모듈의 상기 제2 포트가 업스트림 포트로써 동작하도록 구성되고,
상기 제2 불휘발성 메모리 모듈의 상기 제1 포트는 상기 버스를 통해 상기 호스트와 연결되도록 구성되고,
상기 제2 불휘발성 메모리 모듈의 상기 제2 포트는 상기 제3 불휘발성 메모리 모듈의 상기 제1 포트와 연결되도록 구성되고,
상기 제2 불휘발성 메모리 모듈의 상기 포트 구성 로직 섹션은 상기 제1 불휘발성 구성 섹션에 저장된 상기 제1 포트 구성을 액세스하여 상기 제2 불휘발성 메모리 모듈의 상기 제2 포트가 다운스트림 포트로써 동작하도록 구성된 불휘발성 메모리 모듈 어레이 시스템. - 불휘발성 메모리 모듈 어레이를 구성하는 컴퓨터-구현의 방법에 있어서,
상기 불휘발성 메모리 모듈 어레이의 불휘발성 메모리 모듈들 각각은 제1 포트 및 제2 포트를 포함하고,
상기 방법은:
상기 불휘발성 메모리 모듈들 중 제1 불휘발성 메모리 모듈의 선택기에 의해 상기 제2 포트와 연관된 제1 포트 구성 및 상기 제2 포트와 연관된 제2 포트 구성 중 적어도 하나를 선택하는 단계;
상기 선택기가 상기 제2 포트 구성을 선택한 것에 응답하여, 상기 제1 불휘발성 메모리 모듈의 상기 제2 포트를 업스트림 포트로 구성하는 단계; 및
상기 선택기가 상기 제1 포트 구성을 선택한 것에 응답하여, 상기 제1 불휘발성 메모리 모듈의 상기 제2 포트를 상기 제1 포트에 대한 다운스트림 포트로 구성하는 단계를 포함하는 방법.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562127210P | 2015-03-02 | 2015-03-02 | |
US62/127,210 | 2015-03-02 | ||
US14/809,165 | 2015-07-24 | ||
US14/809,165 US9841904B2 (en) | 2015-03-02 | 2015-07-24 | Scalable and configurable non-volatile memory module array |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160106486A KR20160106486A (ko) | 2016-09-12 |
KR102262807B1 true KR102262807B1 (ko) | 2021-06-09 |
Family
ID=56849827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160009471A KR102262807B1 (ko) | 2015-03-02 | 2016-01-26 | 불휘발성 메모리 모듈 어레이 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9841904B2 (ko) |
KR (1) | KR102262807B1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467163B1 (en) * | 2015-10-27 | 2019-11-05 | Pavilion Data Systems, Inc. | Solid state drive multiplexer |
KR20180034778A (ko) * | 2016-09-27 | 2018-04-05 | 삼성전자주식회사 | 직렬로 연결되는 스토리지 장치들 중 직접 연결되지 않은 스토리지 장치로의 바이패스 경로를 제공하도록 구성되는 전자 장치, 그것에 포함되는 스토리지 장치, 그것을 포함하는 컴퓨팅 시스템, 및 그것을 이용하여 통신하는 방법 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126698A1 (en) | 2006-09-13 | 2008-05-29 | Hitachi, Ltd. | Storage system effectively using free ports |
US20090319716A1 (en) | 2008-06-20 | 2009-12-24 | Kabushiki Kaisha Toshiba | Memory system and bus switch |
US20100281227A1 (en) | 2009-04-29 | 2010-11-04 | Micron Technology, Inc. | Multi-port memory devices and methods |
US20100332860A1 (en) | 2009-06-26 | 2010-12-30 | Jon David Trantham | Systems, methods and devices for configurable power control with storage devices |
US8015386B1 (en) | 2008-03-31 | 2011-09-06 | Xilinx, Inc. | Configurable memory manager |
US20120023278A1 (en) | 2010-07-23 | 2012-01-26 | International Business Machines Corporation | Expander to control multipaths in a storage network |
WO2012124431A1 (ja) | 2011-03-17 | 2012-09-20 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2014026637A (ja) | 2012-07-27 | 2014-02-06 | Hitachi Ltd | プロビジョニング前に冗長パスを認証する方法および装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
WO2007024740A2 (en) * | 2005-08-25 | 2007-03-01 | Silicon Image, Inc. | Smart scalable storage switch architecture |
US20130086311A1 (en) | 2007-12-10 | 2013-04-04 | Ming Huang | METHOD OF DIRECT CONNECTING AHCI OR NVMe BASED SSD SYSTEM TO COMPUTER SYSTEM MEMORY BUS |
CN101763221B (zh) | 2008-12-24 | 2013-01-30 | 成都市华为赛门铁克科技有限公司 | 一种存储方法、存储系统及控制器 |
US8074038B2 (en) * | 2009-05-12 | 2011-12-06 | Microsoft Corporation | Converting luns into files or files into luns in real time |
US8874838B2 (en) * | 2009-12-28 | 2014-10-28 | Juniper Networks, Inc. | Providing dynamic databases for a TCAM |
US8589723B2 (en) | 2010-12-22 | 2013-11-19 | Intel Corporation | Method and apparatus to provide a high availability solid state drive |
EP2761481A4 (en) | 2011-09-30 | 2015-06-17 | Intel Corp | PRESENTATION OF DIRECT ACCESS STORAGE DEVICE IN LOGIC READER MODEL |
US20130135816A1 (en) | 2011-11-17 | 2013-05-30 | Futurewei Technologies, Inc. | Method and Apparatus for Scalable Low Latency Solid State Drive Interface |
US9003071B2 (en) | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US20140331001A1 (en) | 2013-05-02 | 2014-11-06 | Lsi Corporation | Command Barrier for a Solid State Drive Controller |
US9298648B2 (en) | 2013-05-08 | 2016-03-29 | Avago Technologies General Ip (Singapore) Pte Ltd | Method and system for I/O flow management using RAID controller with DMA capabilitiy to directly send data to PCI-E devices connected to PCI-E switch |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
US10223316B2 (en) * | 2014-06-18 | 2019-03-05 | Ngd Systems, Inc. | Interface compatible with M.2 connector socket for ultra high capacity solid state drive |
US9804977B2 (en) * | 2015-04-28 | 2017-10-31 | Microchip Technology Incorporated | Universal serial bus smart hub |
US10102169B2 (en) * | 2015-08-10 | 2018-10-16 | Microsemi Solutions (U.S.), Inc. | System and method for port migration in a PCIE switch |
-
2015
- 2015-07-24 US US14/809,165 patent/US9841904B2/en active Active
-
2016
- 2016-01-26 KR KR1020160009471A patent/KR102262807B1/ko active IP Right Grant
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126698A1 (en) | 2006-09-13 | 2008-05-29 | Hitachi, Ltd. | Storage system effectively using free ports |
US8015386B1 (en) | 2008-03-31 | 2011-09-06 | Xilinx, Inc. | Configurable memory manager |
US20090319716A1 (en) | 2008-06-20 | 2009-12-24 | Kabushiki Kaisha Toshiba | Memory system and bus switch |
US20100281227A1 (en) | 2009-04-29 | 2010-11-04 | Micron Technology, Inc. | Multi-port memory devices and methods |
US20100332860A1 (en) | 2009-06-26 | 2010-12-30 | Jon David Trantham | Systems, methods and devices for configurable power control with storage devices |
US20120023278A1 (en) | 2010-07-23 | 2012-01-26 | International Business Machines Corporation | Expander to control multipaths in a storage network |
WO2012124431A1 (ja) | 2011-03-17 | 2012-09-20 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
JP2014026637A (ja) | 2012-07-27 | 2014-02-06 | Hitachi Ltd | プロビジョニング前に冗長パスを認証する方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
US9841904B2 (en) | 2017-12-12 |
KR20160106486A (ko) | 2016-09-12 |
US20160259551A1 (en) | 2016-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7105710B2 (ja) | マルチモード及び/又はマルチ速度NVMe-oFデバイスを支援するシステム及び方法 | |
US10466923B2 (en) | Modular non-volatile flash memory blade | |
US9053252B2 (en) | Storage expansion apparatus and server | |
US20180157418A1 (en) | Solid state drive (ssd) memory cache occupancy prediction | |
KR20160106493A (ko) | 하드 디스크 드라이브 폼 팩터 솔리드 스테이트 드라이브 멀티-카드 어댑터 및 그것을 포함하는 컴퓨터 서버 시스템 | |
KR101483534B1 (ko) | 구성가능한 포트형 PCIe/SATA 호스트 제어기 아키텍처를 용이하게 하기 위한 매커니즘 | |
US20170344506A1 (en) | Qos-aware io management for pcie storage system with reconfigurable multi-ports | |
KR101736593B1 (ko) | 온-다이 상호접속부의 아키텍처 | |
US11237757B2 (en) | Data storage for accelerating functions | |
CN103034295A (zh) | 输入输出能力增强的可重构微服务器 | |
EP2808778A1 (en) | Capacity expansion method and device | |
US20180210851A1 (en) | Apparatus, method, and electronic device for implementing solid-state drive data interaction | |
KR102262807B1 (ko) | 불휘발성 메모리 모듈 어레이 시스템 | |
CN111581152A (zh) | 可重构硬件加速soc芯片系统 | |
US10268620B2 (en) | Apparatus for connecting non-volatile memory locally to a GPU through a local switch | |
CN103092787A (zh) | 一种基于PowerPC架构的多功能低功耗总线通讯模块 | |
JP2016532960A (ja) | チップセレクトを低減させるデバイス、システム、及び方法 | |
Mehta | Xilinx ultrascale architecture for high-performance, smarter systems | |
CN103246623A (zh) | Soc计算设备扩展系统 | |
RU2686004C1 (ru) | Вычислительный модуль | |
US10339074B1 (en) | Integrated circuit with dynamically-adjustable buffer space for serial interface | |
DE112011106026T5 (de) | Seitenbandinitialisierung | |
CN112835515B (zh) | 用于存储设备扩展挂载闪存颗粒数量的方法及存储设备 | |
CN111930648B (zh) | 一种缓存配置方法、装置及电子设备和存储介质 | |
US20130271354A1 (en) | Shared configurable physical layer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |