KR20220047839A - 데이터 이동을 위한 프로그래밍 가능한 엔진 - Google Patents
데이터 이동을 위한 프로그래밍 가능한 엔진 Download PDFInfo
- Publication number
- KR20220047839A KR20220047839A KR1020227008829A KR20227008829A KR20220047839A KR 20220047839 A KR20220047839 A KR 20220047839A KR 1020227008829 A KR1020227008829 A KR 1020227008829A KR 20227008829 A KR20227008829 A KR 20227008829A KR 20220047839 A KR20220047839 A KR 20220047839A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- chip
- memory chip
- data
- microchip
- Prior art date
Links
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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H01L27/2481—
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B63/00—Resistance change memory devices, e.g. resistive RAM [ReRAM] devices
- H10B63/80—Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays
- H10B63/84—Arrangements comprising multiple bistable or multi-stable switching components of the same type on a plane parallel to the substrate, e.g. cross-point arrays arranged in a direction perpendicular to the substrate, e.g. 3D cell arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
- Dram (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Abstract
마이크로칩으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역을 갖는 메모리 칩. 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 제2 메모리 칩으로부터 데이터를 판독하고 제2 메모리 칩에 데이터를 기록하기 위해 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진을 갖는 메모리 칩. 미리 정의된 메모리 영역은 프로그래밍 가능한 엔진에 대한 커맨드 큐로 구성된 부분을 포함할 수 있으며, 프로그래밍 가능한 엔진은 커맨드 큐에 따라 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성될 수 있다.
Description
관련 출원
본 출원은 2019년 9월 17일에 출원된 "데이터 이동을 위한 프로그래밍 가능한 엔진"이라는 명칭의 미국 특허 출원 번호 제16/573,785호의 우선권을 주장하며, 그 전체 내용이 본원에 참조로 통합된다.
기술 분야
본원에 개시된 적어도 일부 실시예는 데이터 이동(data movement)을 위한 프로그래밍 가능한 엔진(programmable engine)을 갖는 메모리 칩에 관한 것이다. 또한, 본원에 개시된 적어도 일부 실시예는 메모리를 형성하기 위해 메모리 칩들의 스트링의 플랙서블 프로비저닝(provisioning)에서 이러한 메모리 칩을 사용하는 것에 관한 것이다.
컴퓨팅 시스템의 메모리는 계층적일 수 있다. 종종 컴퓨터 아키텍처에서 메모리 계층이라고 하는, 메모리 계층은 응답 시간, 복잡성, 용량, 지속성 및 메모리 대역폭과 같은 특정 요소들을 기반으로 컴퓨터 메모리를 계층으로 분리할 수 있다. 이러한 요소들은 관련될 수 있으며 종종 메모리 계층 구조의 유용성을 더욱 강조하는 트레이드오프(tradeoff)가 될 수 있다.
일반적으로 메모리 계층은 컴퓨터 시스템의 성능에 영향을 준다. 다른 요인보다 메모리 대역폭과 속도의 우선 순위를 지정하려면 응답 시간, 복잡성, 용량 및 지속성과 같은 메모리 계층의 제한 사항을 고려해야 할 수 있다. 이러한 우선 순위를 관리하기 위해, 다양한 유형의 메모리 칩들을 결합하여 더 빠른 칩과 더 안정적이거나 비용 효율적인 칩의 균형을 맞출 수 있다. 다양한 칩들의 각각은 메모리 계층의 일부로 볼 수 있다. 예를 들어, 더 빠른 칩의 레이턴시를 줄이기 위해 메모리 칩 조합의 다른 칩은 버퍼를 채운 다음 칩들 간의 데이터 전송을 활성화하기 위한 신호를 보내 응답할 수 있다.
메모리 계층 구조는 상이한 유형의 메모리 유닛들을 갖는 칩들로 구성될 수 있다. 예를 들어, 메모리 유닛은 동적 랜덤 액세스 메모리(DRAM) 유닛일 수 있습니다. DRAM은 메모리 셀에 데이터의 각 비트를 저장하는 일종의 랜덤 액세스 반도체 메모리이며, 이는 일반적으로 커패시터와 금속 산화물 반도체 전계 효과 트랜지스터(MOSFET)를 포함한다. 커패시터는 충전 또는 방전되어 비트 "0"과 "1"의 두 값들을 나타낼 수 있다. DRAM에서는 커패시터의 전하가 누출되므로, DRAM은 커패시터당 원래 전하를 복원하여 커패시터의 데이터를 주기적으로 재기록하는 외부 메모리 리프레시 회로(refresh circuit)가 필요하다. 반면 정적 랜덤 액세스 메모리(SRAM) 유닛에서는 리프레시 기능이 필요하지 않다. 또한 DRAM은 전원이 차단되면 데이터가 빠르게 손실되기 때문에 휘발성 메모리로 간주된다. 이것은 플래시 메모리 및 데이터 저장이 더 영구적인 비휘발성 랜덤 액세스 메모리(NVRAM)와 같은 다른 유형의 비휘발성 메모리와 다르다.
NVRAM의 한 종류는 3D XPoint 메모리입니다. 3D XPoint 메모리를 사용하면, 메모리 유닛은 적층 가능한 교차 그리드(cross-gridded) 데이터 액세스 어레이와 함께 벌크 저항의 변화를 기반으로 비트를 저장한다. 3D XPoint 메모리는 DRAM보다 비용 효율적일 수 있지만 플래시 메모리보다 덜 비용 효율적일 수 있다.
플래시 메모리는 또 다른 유형의 비휘발성 메모리이다. 플래시 메모리의 장점은 전기적으로 소거되고 재 프로그래밍될 수 있다는 것이다. 플래시 메모리는 NAND형 플래시 메모리와 NOR형 플래시 메모리의 두 가지 주요 유형을 갖는 것으로 간주되며, 이는 플래시 메모리의 메모리 유닛을 구현할 수 있는 NAND 및 NOR 논리 게이트의 이름을 따서 명명되었다. 플래시 메모리 유닛 또는 셀은 대응하는 게이트와 유사한 내부 특성을 보인다. NAND형 플래시 메모리는 NAND 게이트를 포함한다. NOR형 플래시 메모리는 NOR 게이트를 포함한다. NAND형 플래시 메모리는 전체 디바이스보다 작을 수 있는 블록 단위로 기록되고 판독될 수 있다. NOR형 플래시는 단일 바이트를 지워진 위치에 기록하거나 독립적으로 판독될 수 있도록 한다. NAND형 플래시 메모리의 장점으로 인해 이러한 메모리는 메모리 카드, USB 플래시 드라이브 및 솔리드 스테이트 드라이브에 자주 활용되었다. 그러나 일반적으로 플래시 메모리를 사용할 때의 주요 단점은 DRAM 및 NVRAM과 같은 다른 유형의 메모리에 비해 특정 블록에서 상대적으로 적은 수의 기록 사이클만 가능하다는 것이다.
본 개시내용은 이하에 주어진 상세한 설명 및 본 개시내용의 다양한 실시예의 첨부 도면으로부터 보다 완전하게 이해될 것이다.
도 1은 본 개시내용의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템을 도시한다.
도 2는 본 개시내용의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템 및 프로세서 칩을 도시한다.
도 3은 본 개시내용의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템 및 메모리 제어기 칩을 도시한다.
도 4는 본 개시내용의 일부 실시예에 따른, 각각이 다중 메모리 칩들을 포함하는 계층을 갖는 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템을 도시한다.
도 5는 본 개시내용의 일부 실시예에 따른, 예시적인 컴퓨팅 디바이스의 예시적인 부분을 도시한다.
도 6은 본 개시내용의 일부 실시예에 따른, 통합 데이터 이동기를 갖는 메모리 칩을 포함하는 예시적인 시스템을 도시한다.
도 7은 본 개시내용의 일부 실시예에 따른 도 6에 도시된 메모리 칩뿐만 아니라 데이터 이동기로부터 전송된 데이터를 수신하고 수신된 데이터를 매핑하기 위한 논리적 대 물리적 매핑을 갖는 마이크로칩 또는 디바이스를 포함하는 예시적인 시스템을 도시한다.
도 8은 본 개시내용의 일부 실시예에 따른 암호화 및 인증 회로를 갖는 것으로 도시된 도 6에 도시된 메모리 칩을 포함하는 예시적인 시스템을 도시한다.
도 9는 본 개시내용의 일부 실시예에 따른 프로세서 칩 및 제2 메모리 칩에 대한 직접 연결 및 데이터 이동을 위한 프로그래밍 가능 엔진을 갖는 메모리 칩을 포함하는 예시적인 시스템을 도시한다.
도 10은 본 개시내용의 일부 실시예에 따른 프로그래밍 가능한 엔진, 제2 메모리 칩에 대한 직접 연결, 및 버스를 통한 프로세서 칩에 대한 연결을 갖는 도 9에 도시된 메모리 칩을 포함하는 예시적인 시스템을 도시한다.
도 11은 본 개시내용의 일부 실시예에 따른 프로그래밍 가능한 엔진과 제2 및 제3 메모리 칩들에 대한 직접 연결을 갖는 도 9에 도시된 메모리 칩을 포함하는 예시적인 시스템을 도시한다. 도 11에서, 메모리 칩은 제2 및 제3 메모리 칩들 사이에 있다.
도 1은 본 개시내용의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템을 도시한다.
도 2는 본 개시내용의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템 및 프로세서 칩을 도시한다.
도 3은 본 개시내용의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템 및 메모리 제어기 칩을 도시한다.
도 4는 본 개시내용의 일부 실시예에 따른, 각각이 다중 메모리 칩들을 포함하는 계층을 갖는 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템을 도시한다.
도 5는 본 개시내용의 일부 실시예에 따른, 예시적인 컴퓨팅 디바이스의 예시적인 부분을 도시한다.
도 6은 본 개시내용의 일부 실시예에 따른, 통합 데이터 이동기를 갖는 메모리 칩을 포함하는 예시적인 시스템을 도시한다.
도 7은 본 개시내용의 일부 실시예에 따른 도 6에 도시된 메모리 칩뿐만 아니라 데이터 이동기로부터 전송된 데이터를 수신하고 수신된 데이터를 매핑하기 위한 논리적 대 물리적 매핑을 갖는 마이크로칩 또는 디바이스를 포함하는 예시적인 시스템을 도시한다.
도 8은 본 개시내용의 일부 실시예에 따른 암호화 및 인증 회로를 갖는 것으로 도시된 도 6에 도시된 메모리 칩을 포함하는 예시적인 시스템을 도시한다.
도 9는 본 개시내용의 일부 실시예에 따른 프로세서 칩 및 제2 메모리 칩에 대한 직접 연결 및 데이터 이동을 위한 프로그래밍 가능 엔진을 갖는 메모리 칩을 포함하는 예시적인 시스템을 도시한다.
도 10은 본 개시내용의 일부 실시예에 따른 프로그래밍 가능한 엔진, 제2 메모리 칩에 대한 직접 연결, 및 버스를 통한 프로세서 칩에 대한 연결을 갖는 도 9에 도시된 메모리 칩을 포함하는 예시적인 시스템을 도시한다.
도 11은 본 개시내용의 일부 실시예에 따른 프로그래밍 가능한 엔진과 제2 및 제3 메모리 칩들에 대한 직접 연결을 갖는 도 9에 도시된 메모리 칩을 포함하는 예시적인 시스템을 도시한다. 도 11에서, 메모리 칩은 제2 및 제3 메모리 칩들 사이에 있다.
본원에 개시된 적어도 일부 실시예는 데이터 이동을 위한 프로그래밍 가능한 엔진(예를 들어, 도 9 내지 11에 도시된 프로그래밍 가능한 엔진(910) 참조)을 포함하는 메모리 칩(예를 들어, 도 9 내지 도 11에 도시된 제1 메모리 칩(902) 참조)에 관한 것이다. 프로그래밍 가능한 엔진을 갖는 메모리 칩의 하나 이상의 인스턴스(instance)는 메모리를 형성하기 위해 메모리 칩들의 스트링(string)(예를 들어, 도 1 내지 3에 도시된 메모리 칩들의 스트링(102) 및 도 4에 도시된 메모리 칩들의 스트링(402) 참조)의 플랙서블 프로비저닝(flexible provisioning)에서 하나 이상의 메모리 칩으로서 사용될 수 있다. 또한, 프로그래밍 가능한 엔진을 갖는 메모리 칩은 데이터 이동기(data mover)를 갖는 메모리 칩(예를 들어, 도 6 내지 8에 도시된 메모리 칩(602) 참조)일 수 있거나 이를 포함하거나 이에 포함될 수 있다. 예를 들어, 프로그래밍 가능한 엔진은 데이터 이동기를 제공할 수 있다.
프로그래밍 가능한 엔진은 프로그래밍 가능한 엔진을 갖는 메모리 칩의 메모리 영역을 통해 또는 프로그래밍 가능한 엔진을 갖는 메모리 칩에 연결된 메모리 칩의 메모리 영역을 통해 프로그래밍될 수 있는 논리 회로(logic circuit)를 가질 수 있다. 메모리 영역에 있는 것을 기반으로, 프로그래밍 가능한 엔진은 상이한 동작들을 수행하여 데이터를 다운스트림 플래시 메모리 칩과 같은 다운스트림 메모리 칩으로 이동시킬 수 있다. 예를 들어, 시스템 온 칩(SoC)과 같은 프로세서는 다운스트림 메모리 칩으로 이동할 메모리 영역을 식별하기 위해 메모리 칩의 두 개의 미리 결정된 메모리 어드레스들에 데이터를 저장할 수 있다. 그리고, 프로세서는 메모리 칩의 세 번째 미리 결정된 메모리 어드레스에 커맨드를 기록(예를 들어, 커맨드 실행)할 수 있다.
엔진의 프로그래밍 가능성은 이동할 메모리 영역의 크기, 이동할 메모리 영역의 위치, 이동 방향(예를 들어, 다운스트림 플래시 메모리 칩으로 또는 그로부터)일 수 있다. 이전 예를 다시 참조하면, 프로그래밍 가능한 엔진이 메모리 칩에서 커맨드를 검출하면 칩에 저장된 데이터를 이동시킨다. 커맨드를 실행하는 동안 프로그래밍 가능한 엔진은 동작을 반복하지 않도록 세 번째 메모리 어드레스를 소거할 수 있다.
일부 실시예에서, 프로그래밍 가능한 엔진은 명령어의 형태로 커맨드 세트를 실행할 수 있으며, 이는 기존 프로세서와 어느 정도 유사하다. 일부 실시예에서, 프로그래밍 가능한 엔진은 메모리 칩으로부터 다운스트림 메모리 칩으로의 데이터 이동을 위한 파라미터를 보유할 수 있는 레지스터(register)를 포함할 수 있다. 예를 들어, 레지스터는 이동 동작에 대한 커맨드 및 이동할 데이터를 저장하는 메모리 영역을 정의하기 위한 개별 레지스터를 포함할 수 있다.
SoC와 같은 프로세서 칩은 프로그래밍 가능한 엔진을 갖는 메모리 칩에 직접 연결될 수 있다(예를 들어, 도 9에 도시된 프로세서 칩(924) 참조). 또한, 프로세서 칩은 버스를 통해 프로그래밍 가능한 엔진을 갖는 메모리 칩에 연결될 수 있다(예를 들어, 도 10에 도시된 버스(1004) 참조). 또는, 프로세서 칩은 다른 메모리 칩을 통해 프로그래밍 가능한 엔진을 갖는 메모리 칩에 연결될 수 있다(예를 들어, 도 1에 도시된 프로세서 칩(1112) 및 제3 메모리 칩(1102) 참조). 프로그래밍 가능한 엔진을 갖는 메모리 칩과 프로세서 칩 사이에 간접적인 연결을 갖는 실시예에서, 두 칩 사이의 다른 메모리 칩은 프로그래밍 가능한 엔진을 갖는 메모리 칩을 위한 캐시를 포함할 수 있다(예를 들어, 도 11에 도시된 제1 메모리 칩(902)에 대한 캐시(1114) 참조).
프로세서 칩은 프로그래밍 가능한 엔진을 갖는 메모리 칩의 미리 정의된 메모리 영역에 데이터를 저장함으로써 프로그래밍 가능한 엔진을 프로그래밍 할 수 있다(예를 들어, 도 9 내지 11에 도시된 미리 정의된 메모리 영역(908) 참조). 미리 정의된 메모리 영역은 프로그래밍 가능한 엔진에 대한 커맨드 큐(command queue)로 구성된 부분을 포함할 수 있다(예를 들어, 도 9 내지 11에 도시된 커맨드 큐(912) 참조). 따라서, 프로세서 칩은 데이터를 미리 정의된 메모리 영역에 기록함으로써 메모리 칩으로 또는 그로부터 데이터를 이동시키도록 프로그래밍 가능한 엔진을 갖는 메모리 칩을 제어할 수 있다. 그리고 기록된 데이터 중 일부는 커맨드 큐를 제어한다. 프로그래밍 가능한 엔진에 따라 데이터는 프로그래밍 가능한 엔진에 의해 메모리 칩으로부터 제2 메모리 칩(예를 들어, 제2 메모리 칩(926) 참조)으로 이동될 수 있다.
일부 실시예에서, 메모리 칩은 마이크로칩으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역을 포함할 수 있다. 그리고, 메모리 칩은 또한 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 제2 메모리 칩으로부터 데이터를 판독하고 제2 메모리 칩에 데이터를 기록하기 위해 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진을 포함할 수 있다. 이러한 실시예에서, 미리 정의된 메모리 영역은 프로그래밍 가능한 엔진에 대한 커맨드 큐로 구성된 부분을 포함할 수 있고, 프로그래밍 가능한 엔진은 커맨드 큐에 따라 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성될 수 있다. 또한, 저장된 프로그램 데이터의 일부는 커맨드 큐를 제어하도록 구성될 수 있다. 그리고, 메모리의 일부는 제2 메모리 칩으로 이동할 데이터를 저장하도록 구성될 수 있고, 메모리의 일부에 저장된 데이터는 커맨드 큐에 따라 이동될 수 있다.
데이터 이동을 위한 프로그래밍 가능한 엔진을 포함하는 메모리 칩은 프로세서와 메모리 마이크로칩에 대한 각각의 개별 연결을 위한 두 개의 개별 핀 세트들(예를 들어, 도 9에 도시된 핀 세트들(904 및 906) 참조) 또는 두 개의 서로 다른 메모리 칩들에 대한 각각의 개별 연결을 위한 두 개의 개별 핀 세트들(예를 들어, 도 11에 도시된 핀 세트들(1104 및 906) 참조)을 가질 수 있다. 프로세서는 또한 프로그래밍 가능한 엔진(도면에는 도시되지 않음)을 갖는 메모리 칩에 대한 연결을 포함하는 적어도 두 개의 상이한 메모리 칩들에 대한 연결을 위한 두 개의 개별 핀 세트들을 가질 수 있다. 일부 실시예에서, 프로세서가 다중 메모리 칩들에 액세스하기 위해 다중 개별 핀 세트들을 가질 필요는 없다. 프로세서의 핀을 절약하기 위해, 다중 메모리 칩들이 버스를 통해 프로세서에 연결될 수 있다. 이러한 실시예에서, 프로세서는 버스(예를 들어, 도 10에 도시된 버스(1004) 참조)를 통해 엔진을 갖는 메모리 칩의 메모리 데이터를 판독하거나 기록함으로써 프로그래밍 가능한 엔진에 액세스할 수 있다. 또한, 메모리 칩의 핀을 절약하기 위해, 일부 예들에서 다중 메모리 칩들이 버스를 통해 서로 연결될 수 있다.
프로그래밍 가능한 엔진을 포함하는 메모리 칩은 메모리 칩이 복수의 NVRAM 셀들을 포함한다는 점에서 비휘발성 랜덤 액세스 메모리(NVRAM) 칩일 수 있다. 그리고, 일부 실시예에서, 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들을 포함할 수 있다. 대안적으로, 프로그래밍 가능한 엔진을 포함하는 메모리 칩은 메모리 칩이 복수의 DRAM 셀들을 포함한다는 점에서 동적 랜덤 액세스 메모리(DRAM) 칩일 수 있다. 또한, 프로그래밍 가능한 엔진을 포함하는 메모리 칩은 메모리 칩이 복수의 플래시 메모리 셀들을 포함한다는 점에서 플래시 메모리 칩일 수 있다. 복수의 플래시 메모리 셀들은 복수의 NAND형 플래시 메모리 셀들을 포함할 수 있다.
프로그래밍 가능한 엔진을 갖는 메모리 칩의 메모리의 부분에 저장된 데이터는 프로세서 칩에 의해 직접 또는 간접적으로 액세스될 수 있다(예를 들어, 도 9 내지 11에 도시된 메모리의 부분(914) 참조). 그리고, 프로세서 칩은 프로그래밍 가능한 엔진을 갖는 메모리 칩으로부터 데이터를 판독할 수 있을 뿐만 아니라 메모리 칩에 데이터를 기록할 수도 있다. 데이터의 판독 및 기록은 메모리 칩의 메모리의 부분으로부터 또는 메모리 부분에 대해 수행될 수 있다.
일부 실시예에서, 프로그래밍 가능한 엔진을 갖는 메모리 칩에 연결된 제2 메모리 칩(예를 들어, 제2 메모리 칩(926) 참조)은 DRAM 칩이다. 일부 실시예에서, 제2 메모리 칩은 NVRAM 칩이다. 일부 실시예에서, 제2 메모리 칩은 플래시 메모리 칩(예를 들어, NAND형 플래시 메모리 칩)이다.
프로그래밍 가능한 엔진을 갖는 메모리 칩에 연결된 제2 메모리 칩의 메모리의 부분(예를 들어, 도 9에 도시된 메모리의 부분(930) 참조)에 저장된 데이터는 프로그래밍 가능한 엔진을 갖는 메모리 칩에 의해 또는 이를 통해 액세스될 수 있다. 또한, 제2 메모리 칩의 부분에 저장된 데이터가 메모리 칩을 통해 액세스 가능할 때 이는 다른 메모리 칩 또는 프로세서 칩(예를 들어, 도 9 내지 10에 도시된 프로세서 칩(924)과 같은)에 의해 액세스되는 경우가 있다. 그리고, 프로그래밍 가능한 엔진을 갖는 메모리 칩은 제2 메모리 칩에 데이터를 기록할 뿐만 아니라 제2 메모리 칩으로부터 데이터를 판독할 수 있다. 데이터의 판독 및 기록은 두 번째 메모리 칩의 메모리의 부분으로부터 또는 메모리의 부분에 대한 것일 수 있다.
본원에 설명된 일부 실시예는 제1 메모리 칩, 제2 메모리 칩, 및 마이크로칩을 포함하는 시스템을 포함할 수 있다. 그러한 실시예에서, 제1 메모리 칩은 마이크로칩으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역을 포함할 수 있다. 제1 메모리 칩은 또한 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 제2 메모리 칩으로부터 데이터를 판독하고 제2 메모리 칩에 데이터를 기록하기 위해 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진을 포함할 수 있다. 또한, 이러한 실시예에서, 마이크로칩은 제1 메모리 칩의 미리 정의된 메모리 영역에 데이터를 기록함으로써 프로그래밍 가능한 엔진을 프로그래밍하도록 구성될 수 있다.
본원에 설명된 일부 실시예는 제1 메모리 칩, 제2 메모리 칩, 제3 메모리 칩, 및 제3 메모리 칩을 통해 제1 메모리 칩에 연결된 프로세서 칩을 포함하는 시스템을 포함할 수 있다. 그러한 실시예에서, 제1 메모리 칩은 제3 메모리 칩을 통해 프로세서 칩으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역을 포함할 수 있다. 제1 메모리 칩은 또한 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 제2 메모리 칩으로부터 데이터를 판독하고 제2 메모리 칩에 데이터를 기록하기 위해 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진을 포함할 수 있다. 프로세서 칩은 제3 메모리 칩을 통해 제1 메모리 칩의 미리 정의된 메모리 영역에 데이터를 기록함으로써 프로그래밍 가능한 엔진을 프로그래밍하도록 구성될 수 있다.
또한, 본원에 개시된 적어도 일부 실시예는 통합 데이터 이동기를 갖는 메모리 칩에 관한 것이다(예를 들어, 도 6 내지 8 및 본원의 대응하는 텍스트 참조). 그리고, 본원에 개시된 적어도 일부 실시예는 메모리를 형성하기 위해 메모리 칩들의 스트링의 플랙서블 프로비저닝에서 이러한 메모리 칩을 사용하는 것에 관한 것이다(예를 들어, 도 1 내지 8 및 본원의 대응하는 텍스트 참조). 예를 들어, 도 6 내지 8에 도시된 메모리 칩의 하나 이상의 인스턴스(instance)는 도 1 내지 3에 도시된 메모리 칩들의 스트링(102)뿐만 아니라 도 4에 도시된 메모리 칩들의 스트링(402)의 플랙서블 프로비저닝에서 하나 이상의 메모리 칩으로 사용될 수 있다.
본 개시의 목적을 위해, 데이터 이동기는 다른 메모리 칩 또는 디바이스로의 데이터 전송을 관리하는 메모리 칩 또는 디바이스의 회로이다. 이러한 데이터 이동기는 메모리 계층의 메모리 칩들 또는 디바이스들의 그룹에서 사용될 수 있다. 따라서, 데이터 이동기는 메모리 계층에서 하나의 메모리 칩 또는 디바이스로부터 다른 메모리 칩 또는 디바이스로의 데이터 이동을 용이하게 할 수 있다.
통합 데이터 이동기(예를 들어, 데이터 이동기(608) 참조)를 포함하는 메모리 칩(예를 들어, 메모리 칩(602) 참조)은 제1 마이크로칩 또는 디바이스(예를 들어, 도 6 내지 8에 도시된 제1 마이크로칩 또는 디바이스(624) 참조) 및 제2 마이크로칩 또는 디바이스(예를 들어, 도 6 내지 8에 도시된 제2 마이크로칩 또는 디바이스(626) 참조)에 대한 각각의 개별 연결을 위한 두 개의 개별 핀 세트들(예를 들어, 도 6 내지 8에 도시된 핀 세트들(604 및 606) 참조)을 가질 수 있다. 제1 마이크로칩 또는 디바이스는 시스템 온 칩(SoC) 또는 다른 메모리 칩과 같은 프로세서일 수 있다. 제2 마이크로칩 또는 디바이스는 다른 메모리 칩 또는 대용량 저장 디바이스와 같은 메모리 디바이스일 수 있다.
일부 실시예에서, 메모리 칩은 제2 마이크로칩 또는 디바이스로 이동될 데이터를 보호하기 위해 데이터 이동기 외에 암호화 엔진(encryption engine)(예를 들어, 도 8에 도시된 암호화 엔진(802) 참조)을 포함할 수 있다. 또한, 이러한 실시예 및 기타 실시예에서, 메모리 칩은 제2 마이크로칩 또는 디바이스에 저장된 데이터의 액세스에 대한 인증(authentication)을 수행할 수 있는 게이트키퍼(gatekeeper) 디바이스(예를 들어, 도 8에 도시된 게이트키퍼(804) 참조)를 포함할 수 있다.
데이터 이동기는 다양한 전략을 사용하여 제2 마이크로칩 또는 디바이스로 향하는 메모리 칩에 저장된 데이터(예를 들어, 도 6 내지 8에 도시된 바와 같이 제1 마이크로칩 또는 디바이스(624)에 의해 액세스 가능한 데이터를 갖는 메모리의 부분(610) 참조)를 결합할 수 있다. 이는 제2 마이크로칩 또는 디바이스의 기록 성능과 내구성을 향상시킬 수 있다.
일반적으로, 메모리 칩은 제1 핀 세트, 제2 핀 세트 및 통합 데이터 이동기를 포함할 수 있다. 제1 핀 세트는 메모리 칩이 제1 배선을 통해 제1 마이크로칩 또는 디바이스에 결합되게 하도록 구성될 수 있다. 제2 핀 세트는 메모리 칩이 제1 배선과 별개인 제2 배선을 통해 제2 마이크로칩 또는 디바이스에 결합되게 하도록 구성될 수 있다. 데이터 이동기는 제2 마이크로칩 또는 디바이스로부터 데이터를 판독하고 또는 제2 마이크로칩 또는 디바이스에 데이터를 기록하기 위해, 제2 핀 세트를 통해, 제2 마이크로칩 또는 디바이스에 대한 액세스를 용이하게 하도록 구성될 수 있다.
메모리 칩은 메모리 칩이 복수의 NVRAM 셀들을 포함한다는 점에서 비휘발성 랜덤 액세스 메모리(NVRAM) 칩일 수 있다. 그리고, 일부 실시예에서, 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들을 포함할 수 있다. 또한, 메모리 칩은 메모리 칩이 복수의 DRAM 셀들을 포함한다는 점에서 동적 랜덤 액세스 메모리(DRAM) 칩일 수 있다. 또한, 메모리 칩은 메모리 칩이 복수의 플래시 메모리 셀들을 포함한다는 점에서 플래시 메모리 칩일 수 있다. 복수의 플래시 메모리 셀들은 복수의 NAND형 플래시 메모리 셀들을 포함할 수 있다.
제1 마이크로칩 또는 디바이스는 다른 메모리 칩 또는 메모리 디바이스 또는 프로세서 칩 또는 프로세서 디바이스일 수 있다. 일부 실시예에서, 예를 들어, 제1 마이크로칩 또는 디바이스는 SoC이다. 일부 실시예에서, 예를 들어, 제1 마이크로칩 또는 디바이스는 DRAM 칩이다. 일부 실시예에서, 예를 들어, 제1 마이크로칩 또는 디바이스는 NVRAM 칩이다. 메모리 칩의 부분에 저장된 데이터는 제1 핀 세트를 통해 제1 마이크로칩 또는 디바이스에 의해 또는 이를 통해 액세스 가능할 수 있다. 또한, 메모리 칩의 부분에 저장된 데이터가 제1 마이크로칩 또는 디바이스를 통해 액세스 가능한 경우 이는 다른 메모리 칩 또는 디바이스 또는 프로세서 칩 또는 디바이스에 의해 액세스 된다. 그리고, 제1 마이크로칩 또는 디바이스는 메모리 칩에 데이터를 기록할 뿐만 아니라 메모리 칩으로부터 데이터를 판독할 수 있다.
제2 마이크로칩 또는 디바이스는 다른 메모리 칩 또는 메모리 디바이스일 수 있다. 일부 실시예에서, 예를 들어, 제2 마이크로칩 또는 디바이스는 DRAM 칩이다. 일부 실시예에서, 예를 들어, 제2 마이크로칩 또는 디바이스는 NVRAM 칩이다. 일부 실시예에서, 예를 들어, 제2 마이크로칩 또는 디바이스는 플래시 메모리 칩(예를 들어, NAND형 플래시 메모리 칩)이다. 제2 마이크로칩 또는 디바이스의 부분에 저장된 데이터는 제2 핀 세트를 통해 메모리 칩에 의해 또는 이를 통해 액세스 가능할 수 있다. 또한, 제2 마이크로칩 또는 디바이스의 부분에 저장된 데이터가 메모리 칩을 통해 액세스 가능한 경우 이는 다른 메모리 칩 또는 디바이스 또는 프로세서 칩 또는 디바이스(제1 마이크로칩 또는 디바이스와 같은)에 의해 액세스된다. 그리고, 메모리 칩은 제2 마이크로칩 또는 디바이스로부터 데이터를 판독할 수 있을 뿐만 아니라 제2 마이크로칩 또는 디바이스에 데이터를 기록할 수 있다.
데이터 이동기는 블록 단위로 데이터를 제2 마이크로칩 또는 디바이스로 이동시킴으로써 메모리 칩의 부분에 저장된 데이터를 결합하도록 구성될 수 있다. 예를 들어, 데이터 이동기는 데이터를 블록 단위로 제2 마이크로칩 또는 디바이스로 이동시킴으로써 제1 핀 세트를 통해 제1 마이크로칩 또는 디바이스에 의해 또는 이를 통해 액세스 가능한 메모리 칩의 부분에 저장된 데이터를 결합하도록 구성될 수 있다. 데이터를 블록 단위로 이동시킴으로써 데이터 이동기는 제2 마이크로칩 또는 디바이스의 기록 성능과 내구성을 향상시킬 수 있으며 메모리 칩에 대한 순차 또는 블록 액세스는 메모리 칩에 대한 랜덤 액세스보다 수십 배 더 빠르다.
일부 실시예에서, 블록은 메모리 칩의 부분에 초기에 저장된 데이터보다 더 거친(coarser) 세분성(granularity)에 있다. 예를 들어, 블록은 제1 핀 세트를 통해 제1 마이크로칩 또는 디바이스에 의해 또는 이를 통해 액세스 가능한 메모리 칩의 부분에 초기에 저장된 데이터보다 더 거친 세분성에 있다. 제1 마이크로칩 또는 디바이스에 의해 액세스되는 데이터와 같이 메모리 칩에서 사전 차단된(pre-blocked) 데이터보다 더 거친 세분성에 있는 블록은 제2 마이크로칩 또는 디바이스에 대한 데이터 기록의 빈도(frequency)를 감소시킬 수 있다.
데이터 이동기는 또한 제1 마이크로칩 또는 디바이스에 대해 액세스 가능한 메모리 칩의 부분에 저장된 데이터와 같은 메모리 칩의 부분에 저장된 데이터에 대한 변경의 이동을 버퍼링하도록 구성될 수 있다. 그리고, 그러한 실시예에서, 데이터 이동기는 또한 데이터 이동기에 의한 버퍼링으로 인해 적절한 크기로 제2 마이크로칩 또는 디바이스에 기록 요청을 전송하도록 구성될 수 있다. 제2 마이크로칩 또는 디바이스가 제2 마이크로칩 또는 디바이스이고 제2 마이크로칩 또는 디바이스에 대한 기록이 데이터 이동기에 의한 버퍼링으로 인해 적절한 크기인 경우, 제2 마이크로칩 또는 디바이스는 제2 마이크로칩 또는 디바이스에서의 추가 처리 또는 최소 처리 없이 기록에 따라 블록을 소거하고 제2 마이크로칩 또는 디바이스의 블록을 프로그래밍할 수 있다. 이것은 메모리 칩에 통합된 데이터 이동기가 제2 마이크로칩 또는 디바이스의 기록 성능과 내구성을 향상시킬 수 있는 한 가지 예시적인 방법이다. 또한, 데이터 이동기에 의한 버퍼링과 메모리 칩의 부분에서 데이터(제1 마이크로칩 또는 디바이스에 의해 액세스 가능한 칩의 부분의 데이터와 같은)에 대한 빈번한 및/또는 무작위 변경이 있을 때, 제2 마이크로칩 또는 디바이스는 메모리 칩의 부분에서 발생하는 변경에 상응하는 방식으로 자주 소거되고 재프로그래밍될 필요가 없다.
데이터 이동기에 의한 버퍼링은 버퍼링이 플래시 메모리에서 발생하는 기록 증폭의 영향을 제거하거나 최소한 제한할 수 있기 때문에 제2 마이크로칩 또는 디바이스가 플래시 메모리 칩인 경우 훨씬 더 유리하다. 기록 증폭은 버퍼링에 의해 감소되거나 심지어 제거될 수 있고, 이는 버퍼링을 사용하면 메모리 칩에 의해 전송된 기록 요청이 수신 플래시 메모리 칩에서 예상되는 적절한 크기 또는 세분성으로 수정될 수 있기 때문이다. 따라서, 플래시 메모리 칩은 기록의 중복 가능성 없이 기록 요청에 따라 블록을 소거하고 블록을 프로그래밍할 수 있으므로 제2 마이크로칩 또는 디바이스에서 추가 처리를 피할 수 있다.
데이터 이동기는 또한 메모리 칩의 부분에 저장된 데이터(예를 들어, 제1 마이크로칩 또는 디바이스에 대해 액세스 가능한 메모리 칩의 부분의 데이터)에 대한 변경들에서 변경된 어드레스들을 번들링하도록 구성될 수 있다. 그러한 실시예에서, 데이터 이동기는 또한 제2 마이크로칩 또는 디바이스에 대한 기록 요청을 통해 제2 마이크로칩 또는 디바이스로 이동될 메모리 칩의 다른 부분에 번들링된 변경된 어드레스들을 기록하도록 구성될 수 있다. 데이터 이동기의 이러한 기능은 데이터 이동기에 의한 버퍼링과 버퍼링에 따른 기록 요청 전송을 개선할 수 있으며, 이는 변경된 어드레스들의 번들링이 수신하는 제2 마이크로칩 또는 디바이스가 예상하는 적절한 크기 또는 세분성에 대응하도록 데이터 이동기에 의해 제어될 수 있기 때문이다.
일부 실시예에서, 메모리 칩은 또한 제2 마이크로칩 또는 디바이스에 대한 논리적-물리적 매핑(logical-to-physical mapping)을 포함할 수 있다(예를 들어, 도 6에 도시된 논리적-물리적 매핑(612) 참조). 그리고, 제2 마이크로칩 또는 디바이스에 대한 논리적-물리적 매핑은 번들링된 변경된 어드레스들을 입력으로 사용하도록 구성될 수 있다. 일부 다른 실시예에서, 제2 마이크로칩 또는 디바이스는 번들로 변경된 어드레스들이 제2 마이크로칩 또는 디바이스에 대한 쓰기 요청으로 전송되면 번들링된 변경된 어드레스들을 입력으로 사용하도록 구성된 논리적-물리적 매핑(예를 들어, 도 7에 도시된 논리적-물리적 매핑(712) 참조)을 자체적으로 포함할 수 있다.
본원에 설명된 일부 실시예는 중간 메모리 칩(예를 들어, 메모리 칩(602) 참조), 제1 메모리 칩(예를 들어, 제1 마이크로칩 또는 디바이스(624) 참조), 및 제2 메모리 칩(예를 들어, 제2 마이크로칩 또는 디바이스(626) 참조)을 포함하는 시스템을 포함할 수 있다. 그러한 실시예에서, 중간 메모리 칩은 NVRAM 칩(예를 들어, 3D XPoint 메모리 칩)일 수 있고, 제2 메모리 칩은 플래시 메모리 칩(예를 들어, NAND형 플래시 메모리 칩)일 수 있고, 제1 메모리 칩은 DRAM 칩일 수 있다. 본원에 설명된 일부 다른 실시예는 중간 메모리 칩(예를 들어, 메모리 칩(602) 참조), 제2 메모리 칩(예를 들어, 제2 마이크로칩 또는 디바이스(626) 참조), 및 SoC와 같은 프로세서 칩(예를 들어, 제1 마이크로칩 또는 디바이스(624) 참조)을 포함하는 시스템을 포함할 수 있다. 그러한 실시예에서, 중간 메모리 칩은 NVRAM 칩(예를 들어, 3D XPoint 메모리 칩) 또는 DRAM 칩일 수 있고 제2 메모리 칩은 플래시 메모리 칩(예를 들어, NAND형 플래시 메모리 칩) 또는 NVRAM 칩일 수 있다.
또한, 본 개시내용의 적어도 일부 양태들은 프로세서 칩 또는 시스템 온 칩(SoC)에 대한 메모리를 형성하기 위해 메모리 칩들의 스트링의 플랙서블 프로비저닝에 관한 것이고, 예를 들어, 도 1 내지 5와 본원의 대응하는 텍스트를 참조한다. 메모리에 배선된 프로세서 칩 또는 SoC의 관점에서, 메모리의 메모리 칩들의 스트링은 단일 메모리 칩 구현과 다르지 않은 것처럼 보인다; 그러나 플랙서블 프로비저닝을 사용하면, 메모리 칩들의 스트링을 사용하는 이점이 달성된다. 예를 들어, 플랙서블 프로비저닝을 통해, 메모리 계층 구조가 있는 메모리 칩들의 스트링을 사용하는 이점을 얻을 수 있다.
프로세서 칩 또는 SoC는 스트링의 제1 메모리 칩에 직접 배선될 수 있고 제1 메모리 칩의 스트링 다운스트림의 메모리 칩을 인식하지 않고 제1 메모리 칩과 상호작용할 수 있다. 메모리에서, 제1 메모리 칩은 제2 메모리 칩에 직접 배선될 수 있고 제2 메모리 칩과 상호 작용하여, 프로세서 칩 또는 SoC가 제2 메모리 칩을 인식하지 않고도 제1 및 제2 메모리 칩들의 스트링의 이점을 얻도록 할 수 있다. 그리고, 제2 메모리 칩은 제3 메모리 칩에 직접 배선될 수 있어서 프로세서 칩 또는 SoC는 제1 메모리 칩의 다운스트림의 다중 메모리 칩들을 인식하고 상호작용하지 않고 다중 메모리 칩들 스트링의 이점을 얻다. 또한, 일부 실시예에서, 스트링의 각 칩은 스트링의 더 업스트림 또는 다운스트림에 있는 칩을 인식하지 않고 스트링의 즉각적인 업스트림 칩 및 다운스트림 칩을 인식하고 상호작용한다.
일부 실시예에서, 스트링의 제1 메모리 칩은 DRAM 칩일 수 있다. 제1 칩의 바로 다운스트림에 있는 스트링의 제2 메모리 칩은 NVRAM 칩(예를 들어, 3D XPoint 메모리 칩)일 수 있다. 제2 칩의 바로 다운스트림에 있는 스트링의 제3 메모리 칩은 플래시 메모리 칩(예를 들어, NAND형 플래시 메모리 칩)일 수 있다. 또한, 예를 들어, 스트링은 DRAM-DRAM-NVRAM, 또는 DRAM-NVRAM-NVRAM, 또는 DRAM-플래시 메모리-플래시 메모리일 수 있지만; 그러나 DRAM-NVRAM-플래시 메모리는 멀티-계층 메모리로 플랙서블하게 프로비저닝되는 메모리 칩들의 스트링에 대해 보다 효과적인 솔루션을 제공할 수 있다. 또한, 본원에 개시된 메모리 칩들의 스트링의 플랙서블 프로비저닝을 이해하기 위해, 예시는 종종 메모리 칩들의 3 칩 스트링을 언급할 것이며; 그러나 메모리 칩들의 스트링은 3개 이상의 메모리 칩들을 포함할 수 있음을 이해해야 한다.
또한, 본 개시의 목적을 위해, DRAM, NVRAM, 3D XPoint 메모리, 및 플래시 메모리가 개별 메모리 유닛들을 위한 기술이며 본원에 설명된 메모리 칩들 중 어느 하나에 대한 메모리 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로는 물론 DRAM, NVRAM, 3D XPoint 메모리 또는 플래시 메모리의 메모리 유닛들의 어레이를 포함할 수 있다는 것이 이해되어야 한다. 예를 들어, 본원에 설명된 DRAM 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로와 DRAM의 메모리 유닛들의 어레이를 포함한다. 또한, 예를 들어, 본원에 설명된 NVRAM 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로와 NVRAM의 메모리 유닛들의 어레이를 포함한다. 그리고, 예를 들어, 본원에 설명된 플래시 메모리 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로와 플래시 메모리의 메모리 유닛들의 어레이를 포함한다.
또한, 본원에 기술된 메모리 칩들 중 어느 하나에 대한 메모리 칩은 들어오는 및/또는 나가는 데이터를 위한 캐시 또는 버퍼 메모리를 포함할 수 있다. 일부 실시예에서, 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 캐시 또는 버퍼 메모리를 호스팅하는 칩 상의 유닛과 상이할 수 있다. 예를 들어, 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 SRAM의 메모리 유닛일 수 있다.
메모리 칩들의 스트링의 칩들의 각각은 예를 들어, 주변 컴포넌트 상호연결 익스프레스(PCIe) 또는 직렬 고급 기술 부착(SATA)과 같은 배선을 통해 바로 다운스트림 및/또는 업스트림 칩에 연결될 수 있다. 메모리 칩들의 스트링의 칩들 사이의 연결들의 각각은 배선으로 순차적으로 연결될 수 있고 연결들은 서로 분리될 수 있다. 메모리 칩들의 스트링의 각 칩은 스트링의 업스트림 칩 및/또는 다운스트림 칩에 연결하기 위한 하나 이상의 핀 세트들을 포함할 수 있다. 일부 실시예들에서, 메모리 칩들의 스트링의 각각의 칩은 IC 패키지 내에 봉입된 단일 집적 회로(IC)를 포함할 수 있다. 이러한 실시예에서, IC 패키지는 패키지의 경계에 핀 세트를 포함할 수 있다.
프로세서 칩 또는 SoC에 대한 메모리의 메모리 칩들의 스트링의 제1 메모리 칩(예를 들어, DRAM 칩)은, 예를 들어 프로세서 칩 또는 SoC에 의해, 메모리 칩들의 스트링의 제2 메모리 칩(예를 들어, NVRAM 칩)에 대한 캐시로서 구성될 수 있는 부분을 포함할 수 있다. 제1 메모리 칩에 있는 메모리 유닛들의 일부는 제2 메모리 칩에 대한 캐시 메모리로 사용될 수 있다.
프로세서 칩 또는 SoC에 대한 메모리의 메모리 칩들의 스트링 내의 제2 메모리 칩은, 제1 메모리 칩에 의해 직접적으로 및 프로세서 칩 또는 SoC에 의해 간접적으로, 메모리 칩들의 스트링 내의 제3 메모리 칩(예를 들어, 플래시 메모리 칩)에 액세스하기 위한 버퍼로서 구성될 수 있는 부분을 포함할 수 있다. 제2 메모리 칩의 메모리 유닛들의 일부는 제3 메모리 칩에 액세스하기 위한 버퍼로 사용될 수 있다. 또한, 제2 메모리 칩은, 제1 메모리 칩에 의해 직접적으로 및 프로세서 칩 또는 SoC에 의해 간접적으로, 논리적-물리적 어드레스 매핑을 위한 테이블(논리적-물리적 테이블) 또는 일반적으로 논리적-물리적 어드레스 매핑으로 구성될 수 있는 부분을 포함할 수 있다. 제2 메모리 칩의 메모리 유닛들의 일부는 논리적-물리적 어드레스 매핑에 사용될 수 있다.
프로세서 칩 또는 SoC에 대한 메모리의 메모리 칩들의 스트링 내의 제3 메모리 칩은 제3 메모리 칩의 변환 계층(translation layer)(예를 들어, 플래시 변환 계층 기능)을 관리하기 위해 제2 메모리 칩의 논리적-물리적 어드레스 매핑을 사용할 수 있는 제어기를 포함할 수 있다. 제3 메모리 칩의 변환 계층은 제2 메모리 칩의 논리적-물리적 어드레스 매핑의 사본(copy) 또는 파생물(derivative)과 같은 논리적-물리적 어드레스 매핑을 포함할 수 있다.
또한, 일부 실시예에서, 메모리에 연결된 프로세서 칩 또는 SoC는 제1 메모리 칩에 데이터를 기록함으로써 제1 칩의 캐시 정책 파라미터(cache policy parameter)(예를 들어, 연속 스루(write through) vs 기록 백(write back)), 제2 메모리 칩의 논리적-물리적 어드레스 매핑 및 버퍼, 및 제1 메모리 칩의 캐시의 위치 및 크기를 구성할 수 있다. 그리고, 프로세서 칩 또는 SoC에 의한 상술한 구성 및 설정은 이러한 작업이 프로세서 칩 또는 SoC에서 제거되도록 제2 데이터 처리 칩에 위임될 수 있다. 예를 들어, 메모리 칩들의 스트링을 갖는 메모리는 메모리에 대한 전술한 구성 및 설정을 제공하고 제어하도록 구성된 SoC 또는 프로세서 칩과 별개의 전용 제어기를 가질 수 있다.
일반적으로, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하기 위해 본원에 설명된 기술로, 캐시 또는 버퍼로 칩들의 스트링의 특정 메모리 칩들에 메모리 유닛들의 일부를 할당하는 유연성(flexibility)은 연결을 작동 가능하고 유연하게 만들도록 메모리 칩(예를 들어, DRAM, NVRAM 및 플래시 메모리 칩)을 구성하는 방법이다. 캐시 및 버퍼 동작은 다른 크기 및/또는 다른 유형의 다운스트림 메모리 디바이스들이 업스트림 디바이스들에 연결되도록 하며 그 반대의 경우도 마찬가지이다. 어떤 의미에서, 메모리 제어기의 일부 기능은 메모리 칩의 캐시 및 버퍼의 작동을 가능하게 하기 위해 메모리 칩에서 구현된다.
도 1은 본 개시의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템(100)을 도시한다. 메모리 시스템(100)은 메모리의 메모리 칩들의 스트링(102)의 제1 메모리 칩(104)을 포함한다. 메모리 시스템(100)은 또한 메모리 칩들의 스트링(102)의 제2 메모리 칩(106) 및 메모리 칩들의 스트링에 제3 메모리 칩(108)을 포함한다.
도 1에서, 제1 메모리 칩(104)은 제2 메모리 칩(106)에 직접 배선되고(예를 들어, 배선(124) 참조) 제2 메모리 칩과 직접 상호작용하도록 구성된다. 또한, 제2 메모리 칩(106)은 제3 메모리 칩(108)에 직접 배선되고(예를 들어, 배선(126) 참조) 제3 메모리 칩과 직접 상호작용하도록 구성된다.
또한, 메모리 칩들 스트링(102)의 각 칩은 스트링의 업스트림 칩 및/또는 다운스트림 칩에 연결하기 위한 하나 이상의 핀 세트를 포함할 수 있다(예를 들어, 핀 세트들(132, 134, 136 및 138) 참조). 일부 실시예에서, 메모리 칩들의 스트링(예를 들어, 메모리 칩들의 스트링(102) 또는 도 4에 도시된 메모리 칩들의 그룹들의 스트링(402) 참조)의 각 칩은 IC 패키지 내에 봉입된 단일 IC를 포함할 수 있다. 예를 들어, 핀 세트(132)는 제1 메모리 칩(104)의 일부이고 배선(124) 및 제2 메모리 칩(106)의 일부인 핀 세트(134)를 통해 제1 메모리 칩(104)을 제2 메모리 칩(106)에 연결한다. 배선(124)은 두 핀 세트들(132, 134)을 연결한다. 또한, 예를 들어, 핀 세트(136)는 제2 메모리 칩(106)의 일부이고 배선(126) 및 제3 메모리 칩(108)의 일부인 핀 세트(138)를 통해 제2 메모리 칩(106)을 제3 메모리 칩(108)에 연결한다. 배선(126)은 두 핀 세트들(136, 138)을 연결한다.
또한, 도시된 바와 같이, 제1 메모리 칩(104)은 제2 메모리 칩(106)을 위한 캐시(114)를 포함한다. 그리고, 제2 메모리 칩(106)은 제3 메모리 칩(108)을 위한 버퍼(116)뿐만 아니라 제3 메모리 칩(108)을 위한 논리적-물리적 매핑(118)을 포함한다.
제2 메모리 칩(106)에 대한 캐시(114)는 프로세서 칩 또는 메모리 제어기 칩(예를 들어, 도 2에 도시된 프로세서 칩(202) 및 도 3에 도시된 메모리 제어기 칩(302) 참조)에 의해 구성될 수 있다. 제1 메모리 칩(104) 내의 캐시(114)의 위치 및 크기는 대응하는 데이터가 프로세서 또는 메모리 제어기 칩에 의해 제1 메모리 칩에 기록됨으로써 프로세서 칩 또는 메모리 제어기 칩에 의해 구성될 수 있다. 또한, 제1 메모리 칩(104)의 캐시(114)의 캐시 정책 파라미터는 프로세서 또는 메모리 제어기 칩에 의해 대응하는 데이터가 제1 메모리 칩에 기록됨으로써 프로세서 또는 메모리 제어기 칩에 의해 구성될 수 있다.
제3 메모리 칩(108)에 대한 버퍼(116)는 프로세서 칩 또는 메모리 제어기 칩에 의해 구성될 수 있다(예를 들어, 도 2에 도시된 프로세서 칩(202) 및 도 3에 도시된 메모리 제어기 칩(302) 참조). 제2 메모리 칩(106)의 버퍼(116)의 위치 및 크기는 프로세서 또는 메모리 제어기 칩에 의해, 예를 들어 제1 메모리 칩(104)을 통해 간접적으로, 대응하는 데이터가 제2 메모리 칩에 기록됨으로써 프로세서 칩 또는 메모리 제어기 칩에 의해 구성될 수 있다. 또한, 제2 메모리 칩(106)의 버퍼(116)의 버퍼 정책 파라미터는 프로세서 또는 메모리 제어기 칩에 의해, 예를 들어 제1 메모리 칩(104)을 통해 간접적으로, 대응하는 데이터가 제2 메모리 칩에 기록됨으로써 프로세서 또는 메모리 제어기 칩에 의해 구성될 수 있다.
제3 메모리 칩(108)에 대한 논리적-물리적 매핑(118)은 프로세서 칩 또는 메모리 제어기 칩에 의해 구성될 수 있다(예를 들어, 도 2에 도시된 프로세서 칩(202) 및 도 3에 도시된 메모리 제어기 칩(302) 참조). 제2 메모리 칩(106)의 논리적-물리적 매핑(118)의 위치 및 크기는 프로세서 또는 메모리 제어기 칩에 의해, 예를 들어 제1 메모리 칩(104)을 통해 간접적으로, 대응하는 데이터가 제2 메모리 칩에 기록됨으로써 프로세서 칩 또는 메모리 제어기 칩에 의해 구성될 수 있다. 또한, 제2 메모리 칩(106)의 논리적-물리적 매핑(118)의 버퍼 정책 파라미터는 프로세서 또는 메모리 제어기 칩에 의해, 예를 들어 제1 메모리 칩(104)을 통해 간접적으로, 대응하는 데이터가 제2 메모리 칩에 기록됨으로써 프로세서 또는 메모리 제어기 칩에 의해 구성될 수 있다.
일부 실시예에서, 제3 메모리 칩(108)은 스트링의 칩들 중 가장 낮은 메모리 대역폭을 가질 수 있다. 일부 실시예에서, 제1 메모리 칩(104)은 스트링의 칩들 중 가장 높은 메모리 대역폭을 가질 수 있다. 그러한 실시예에서, 제2 메모리 칩(106)은 스트링의 칩들 중의 다음으로 가장 높은 메모리 대역폭을 가질 수 있어서, 제1 메모리 칩(104)이 스트링의 칩들 중 가장 높은 메모리 대역폭을 갖고 제3 메모리 칩(108)이 스트링의 칩들 중 가장 낮은 메모리 대역폭을 갖게 된다.
일부 실시예에서, 제1 메모리 칩(104)은 DRAM 칩이거나 이를 포함한다. 일부 실시예에서, 제1 메모리 칩(104)은 NVRAM 칩이거나 이를 포함한다. 일부 실시예에서, 제2 메모리 칩(106)은 DRAM 칩이거나 이를 포함한다. 일부 실시예에서, 제2 메모리 칩(106)은 NVRAM 칩이거나 이를 포함한다. 일부 실시예에서, 제3 메모리 칩(108)은 DRAM 칩이거나 이를 포함한다. 일부 실시예에서, 제3 메모리 칩(108)은 NVRAM 칩이거나 이를 포함한다. 그리고, 일부 실시예에서, 제3 메모리 칩(108)은 플래시 메모리 칩이거나 이를 포함한다.
하나 이상의 DRAM 칩을 갖는 실시예에서, DRAM 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로뿐만 아니라 DRAM의 메모리 유닛들의 어레이를 포함할 수 있다. 또한, 본원에 설명된 DRAM 칩은 들어오는 및/또는 나가는 데이터를 위한 캐시 또는 버퍼 메모리를 포함할 수 있다. 일부 실시예에서, 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 캐시 또는 버퍼 메모리를 호스팅하는 칩 상의 DRAM 유닛과 상이할 수 있다. 예를 들어, DRAM 칩에 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 SRAM의 메모리 유닛일 수 있다.
하나 이상의 NVRAM 칩을 갖는 실시예에서, NVRAM 칩은 3D XPoint 메모리의 유닛들과 같은 NVRAM의 메모리 유닛들의 어레이 뿐만아니라 커맨드 및 어드레스 디코딩을 위한 논리 회로를 포함할 수 있다. 또한, 본원에 설명된 NVRAM 칩은 들어오는 및/또는 나가는 데이터를 위한 캐시 또는 버퍼 메모리를 포함할 수 있다. 일부 실시예에서, 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 캐시 또는 버퍼 메모리를 호스팅하는 칩 상의 NVRAM 유닛과 상이할 수 있다. 예를 들어, NVRAM 칩에 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 SRAM의 메모리 유닛일 수 있다.
일부 실시예에서, NVRAM 칩은 비휘발성 메모리 셀들의 교차점 어레이를 포함할 수 있다. 비휘발성 메모리의 교차점 어레이는 적층 가능한 교차 그리드 데이터 액세스 어레이와 함께 벌크 저항의 변화에 따라 비트 저장을 수행할 수 있다. 또한 많은 플래시 기반 메모리와 달리 교차점 비휘발성 메모리는 인-플레이스 기록(write in-place) 동작을 수행할 수 있고, 여기서, 비휘발성 메모리 셀은 비휘발성 메모리 셀이 사전에 소거되지 않고 프로그래밍 될 수 있다.
본원에 언급된 바와 같이, NVRAM 칩은 교차점 스토리지 및 메모리 디바이스(예를 들어, 3D XPoint 메모리)이거나 이를 포함할 수 있다. 교차점 메모리 디바이스는 트랜지스터가 없는(transistor-less) 메모리 요소들을 사용하며, 이의 각각은 컬럼(column)으로서 함께 적층된 메모리 셀과 선택기를 갖는다. 메모리 요소 컬럼들은 배선들의 두 개의 수직 레이(lay)들을 통해 연결되며, 여기서 하나의 레이는 메모리 요소 컬럼 위에 있고 다른 하나의 레이는 메모리 요서 컬럼 아래에 있다. 각 메모리 요소는 두 층들 각각에 있는 한 배선의 교차점에서 개별적으로 선택될 수 있다. 교차점 메모리 디바이스는 빠르고 비휘발성이며 처리 및 저장을 위한 통합 메모리 풀(pool)로 사용될 수 있다.
하나 이상의 플래시 메모리 칩을 갖는 실시예에서, 플래시 메모리 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로는 물론 NAND형 플래시 메모리의 유닛들과 같은 플래시 메모리의 메모리 유닛들의 어레이를 포함할 수 있다. 또한, 본원에 기술된 플래시 메모리 칩은 들어오는 및/또는 나가는 데이터를 위한 캐시 또는 버퍼 메모리를 포함할 수 있다. 일부 실시예에서, 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 캐시 또는 버퍼 메모리를 호스팅하는 칩 상의 플래시 메모리 유닛과 상이할 수 있다. 예를 들어, 플래시 메모리 칩에 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 SRAM의 메모리 유닛일 수 있다.
또한, 예를 들어, 메모리 칩들의 스트링의 실시예는 DRAM-DRAM-NVRAM 또는 DRAM-NVRAM-NVRAM, 또는 DRAM-플래시 메모리-플래시 메모리를 포함할 수 있고; 그러나 DRAM-NVRAM-플래시 메모리는 멀티-계층 메모리로 플랙서블하게 프로비저닝되는 메모리 칩들의 스트링에 대해 보다 효과적인 솔루션을 제공할 수 있다.
또한, 본 개시의 목적을 위해, DRAM, NVRAM, 3D XPoint 메모리, 및 플래시 메모리는 개별 메모리 유닛들을 위한 기술이며, 본원에 설명된 메모리 칩들 중 어느 하나를 위한 메모리 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로는 물론 DRAM, NVRAM, 3D XPoint 메모리 또는 플래시 메모리의 메모리 유닛들의 어레이를 포함할 수 있다는 것을 이해할 수 있다. 예를 들어, 본원에 설명된 DRAM 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로와 DRAM의 메모리 유닛들의 어레이를 포함한다. 예를 들어, 본원에 설명된 NVRAM 칩은 NVRAM의 메모리 유닛들의 어레이뿐만 아니라 커맨드 및 어드레스 디코딩을 위한 논리 회로를 포함한다. 예를 들어, 본원에 설명된 플래시 메모리 칩은 커맨드 및 어드레스 디코딩을 위한 논리 회로는 물론 플래시 메모리의 메모리 유닛들의 어레이를 포함한다.
또한, 본원에 기술된 메모리 칩들 중 어느 하나를 위한 메모리 칩은 들어오는 및/또는 나가는 데이터를 위한 캐시 또는 버퍼 메모리를 포함할 수 있다. 일부 실시예에서, 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 캐시 또는 버퍼 메모리를 호스팅하는 칩 상의 유닛과 상이할 수 있다. 예를 들어, 캐시 또는 버퍼 메모리를 구현하는 메모리 유닛은 SRAM의 메모리 유닛일 수 있다.
도 2는 본 개시의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템(100) 및 프로세서 칩(202)을 도시한다. 도 2에서, 프로세서 칩(202)은 제1 메모리 칩(104)에 직접 배선되고(예를 들어, 배선(204) 참조) 제1 메모리 칩과 직접 상호작용하도록 구성된다.
일부 실시예에서, 프로세서 칩(202)은 SoC이거나 이를 포함한다. 본원에서 설명되는 SoC는 컴퓨팅 디바이스의 임의의 둘 이상의 컴포넌트들을 통합하는 집적 회로 또는 칩이거나 이를 포함할 수 있다. 둘 이상의 컴포넌트들은 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 메모리, 입/출력 포트, 및 보조 저장 장치 중 적어도 하나 이상을 포함할 수 있다. 예를 들어, 본원에 설명된 SoC는 또한 CPU, GPU, 그래픽 및 메모리 인터페이스, 하드 디스크, USB 연결, 랜덤 액세스 메모리, 판독 전용 메모리, 보조 저장소 또는 단일 회로 다이에서 이들의 조합을 포함할 수 있다. 또한, 프로세서 칩(202)이 SoC인 경우, SoC는 적어도 CPU 및/또는 GPU를 포함한다.
본원에 설명된 SoC의 경우, 두 개 이상의 컴포넌트들이 단일 기판 또는 마이크로칩(칩)에 내장될 수 있다. 일반적으로, SoC가 모든 그의 컴포넌트들을 단일 집적 회로에 통합한다는 점에서 SoC는 기존 마더보드 기반 아키텍처와 다르다; 마더보드는 분리 또는 교체 가능한 컴포넌트들을 수용하고 연결한다. 두 개 이상의 컴포넌트들이 단일 기판이나 칩에 통합되기 때문에, SoC는 동일한 기능을 가진 멀티-칩 설계보다 전력 소비가 적고 면적을 훨씬 적게 차지한다. 따라서, 일부 실시예에서, 본원에 설명된 메모리 시스템은 모바일 컴퓨팅 디바이스(스마트폰과 같은), 임베디드 시스템 및 사물 인터넷 디바이스에서 SoC와 연결되거나 그의 일부일 수 있다.
프로세서 칩(202)은 제2 메모리 칩(106)에 대한 캐시(114)를 구성하도록 구성될 수 있다. 프로세서 칩(202)은 또한 대응하는 데이터를 제1 메모리 칩(104)에 기록함으로써 캐시(114)의 위치 및 크기를 구성하도록 구성될 수 있다. 프로세서 칩(202)은 또한 대응하는 데이터를 제1 메모리 칩(104)에 기록함으로써 캐시 정책 파라미터를 구성하도록 구성될 수 있다.
또한, 프로세서 칩(202)은 제3 메모리 칩(108)에 대한 버퍼(116) 및/또는 제3 메모리 칩에 대한 논리적-물리적 매핑(118)을 구성하도록 구성될 수 있다. 프로세서 칩(202)은 또한 대응하는 데이터를 제1 메모리 칩(104)에 기록함으로써 버퍼(116)의 위치 및 크기를 구성하도록 구성될 수 있다. 프로세서 칩(202)은 또한 대응하는 데이터를 제1 메모리 칩(104)에 기록함으로써 논리적-물리적 매핑(118)의 위치 및 크기를 구성하도록 구성될 수 있다.
도 3은 본 개시의 일부 실시예에 따른, 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템(100) 및 메모리 제어기 칩(302)을 도시한다. 도 3에서, 메모리 제어기 칩(302)은 제1 메모리 칩(104)에 직접 배선되고(예를 들어, 배선(304) 참조) 제1 메모리 칩과 직접 상호작용하도록 구성된다.
일부 실시예에서, 메모리 제어기 칩(302)은 SoC이거나 이를 포함한다. 그러한 SoC는 컴퓨팅 디바이스의 임의의 두 개 이상의 컴포넌트들을 통합하는 집적 회로 또는 칩이거나 이를 포함할 수 있다. 두 개 이상의 컴포넌트들은 별도의 메모리, 입력/출력 포트 및 별도의 보조 저장소 중 적어도 하나 이상을 포함할 수 있다. 예를 들어, SoC는 메모리 인터페이스, 하드 디스크, USB 연결, 랜덤 액세스 메모리, 판독 전용 메모리, 보조 저장소 또는 단일 회로 다이에 이들의 조합을 포함할 수 있다. 또한, 메모리 제어기 칩(302)이 SoC인 경우, SoC는 적어도 데이터 처리 유닛을 포함한다.
메모리 제어기 칩(302)은 제2 메모리 칩(106)에 대한 캐시(114)를 구성하도록 구성될 수 있다. 메모리 제어기 칩(302)은 또한 대응하는 데이터를 제1 메모리 칩(104)에 기록함으로써 캐시(114)의 위치 및 크기를 구성하도록 구성될 수 있다. 메모리 제어기 칩(302)은 또한 대응하는 데이터를 제1 메모리 칩(104)에 기록함으로써 캐시 정책 파라미터를 구성하도록 구성될 수 있다.
또한, 메모리 제어기 칩(302)은 제3 메모리 칩(108)에 대한 버퍼(116) 및/또는 제3 메모리 칩에 대한 논리적-물리적 매핑(118)을 구성하도록 구성될 수 있다. 메모리 제어기 칩(302)은 또한 대응하는 데이터를 제1 메모리 칩(104)에 기록함으로써 버퍼(116)의 위치 및 크기를 구성하도록 구성될 수 있다. 메모리 제어기 칩(302)은 또한 대응하는 데이터를 제1 메모리 칩(104)에 기록함으로써 논리적-물리적 매핑(118)의 위치 및 크기를 구성하도록 구성될 수 있다.
도 4는 본 개시내용의 일부 실시예에 따른, 각각이 다중 메모리 칩들을 포함하는 계층들로 멀티-계층 메모리의 플랙서블 프로비저닝을 제공하도록 구성된 예시적인 메모리 시스템(400)을 도시한다. 메모리 시스템(400)은 메모리 칩들의 그룹들의 스트링(402)을 포함한다. 메모리 칩들의 그룹들의 스트링(402)은 제1 유형의 메모리 칩들(예를 들어, 동일한 유형의 칩들인 메모리 칩들(404a 및 404b) 참조)을 포함하는 제1 그룹의 메모리 칩들을 포함한다. 메모리 칩들의 그룹들의 스트링(402)은 제1 유형의 메모리 칩들 또는 제2 유형의 메모리 칩들(예를 들어, 동일한 유형의 칩들인 메모리 칩들(406a 및 406b) 참조)을 포함하는 제2 그룹의 메모리 칩들을 포함한다. 메모리 칩들의 그룹들의 스트링(402)은 또한 제1 유형의 메모리 칩들, 제2 유형의 메모리 칩들, 또는 제3 유형의 메모리 칩들(예를 들어, 동일한 유형의 칩들인 메모리 칩들(408a 및 408b) 참조)을 포함하는 제3 그룹의 메모리 칩들을 포함한다. 제1 유형의 메모리 칩은 DRAM 칩이거나 이를 포함할 수 있다. 제2 유형의 메모리 칩은 NVRAM 칩이거나 이를 포함할 수 있다. 제3 유형의 메모리 칩은 플래시 메모리 칩이거나 이를 포함할 수 있다.
또한, 도 4에 도시된 바와 같이, 제1 그룹의 메모리 칩들의 칩들은 배선(424)을 통해 제2 그룹의 메모리 칩들의 칩들에 직접 배선되고 제2 그룹의 메모리 칩들의 하나 이상의 칩과 직접 상호 작용하도록 구성된다. 또한, 도 4에 도시된 바와 같이, 제2 그룹의 메모리 칩들의 칩들은 배선(426)을 통해 제3 그룹의 메모리 칩들의 칩들에 직접 배선되고 제3 그룹의 메모리 칩들의 하나 이상의 칩과 직접 상호 작용하도록 구성된다.
또한, 도 4에 도시된 바와 같이, 제1 그룹의 메모리 칩들의 각각의 칩은 제2 그룹의 메모리 칩들에 대한 캐시(예를 들어, 캐시(414) 참조)를 포함한다. 그리고, 제2 그룹의 메모리 칩들의 각각의 칩은 제3 그룹의 메모리 칩들에 대한 버퍼(416)뿐만 아니라 제3 그룹의 메모리 칩들에 대한 논리적-물리적 매핑(418)을 포함한다.
일부 실시예에서, 제3 그룹의 메모리 칩들의 각각의 칩(예를 들어, 메모리 칩들(408a 및 408b) 참조)은 메모리 칩들의 그룹들의 스트링(402)의 다른 칩들에 비해 가장 낮은 메모리 대역폭을 가질 수 있다. 일부 실시예에서, 제1 그룹의 메모리 칩들의 각각의 칩(예를 들어, 메모리 칩들(404a 및 404b) 참조)은 메모리 칩들의 그룹들의 스트링(402)의 다른 칩들에 비해 가장 높은 메모리 대역폭을 가질 수 있다. 이러한 실시예에서, 제2 그룹의 메모리 칩들의 각각의 칩(예를 들어, 메모리 칩들(406a, 406b) 참조)은 메모리 칩들 그룹의 스트링(402)의 다른 칩들에 비해 다음으로 가장 높은 메모리 대역폭을 가질 수 있고, 따라서 제1 그룹의 메모리 칩들의 각각의 칩은 가장 높은 메모리 대역폭을 갖고 제3 그룹의 메모리 칩들의 각각의 칩은 가장 낮은 메모리 대역폭을 갖는다.
일부 실시예에서, 제1 그룹의 메모리 칩들(예를 들어, 메모리 칩들(404a 및 404b) 참조)은 DRAM 칩들 또는 NVRAM 칩들을 포함할 수 있다. 일부 실시예에서, 제2 그룹의 메모리 칩들(예를 들어, 메모리 칩들(406a 및 406b) 참조)은 DRAM 칩들 또는 NVRAM 칩들을 포함할 수 있다. 일부 실시예에서, 제3 그룹의 메모리 칩들(예를 들어, 메모리 칩들(408a 및 408b) 참조)은 DRAM 칩들, NVRAM 칩들, 또는 플래시 메모리 칩들을 포함할 수 있다.
도 1 내지 4에 도시된 바와 같이, 본 개시는 메모리 칩들의 스트링의 플랙서블 프로비저닝에 관한 것이다(예를 들어, 도 1 내지 3에 도시된 메모리 칩들의 스트링(102) 또는 도 4에 도시된 메모리 칩들의 그룹들의 스트링(402) 참조). 그리고, 메모리 칩들의 스트링의 플랙서블 프로비저닝은 메모리를 형성한다(예를 들어, 도 2에 도시된 메모리 시스템(100) 또는 도 4에 도시된 메모리 시스템(400) 참조).
메모리 시스템(100 또는 400)과 같은 본원에 개시된 메모리 시스템은 자체 장치이거나 자체 패키징 내에 있을 수 있다.
일부 실시예에서, 메모리 시스템(100 또는 400)과 같은 본원에 개시된 메모리 시스템은 프로세서 칩 또는 SoC(예를 들어, 도 2 참조)와 결합될 수 있다. 프로세서 칩 또는 SoC와 결합할 때, 메모리 시스템과 프로세서 칩 또는 SoC는 단일 장치의 일부일 수 있고 및/또는 단일 패키징으로 결합될 수 있다.
또한, 일부 실시예에서, 메모리 시스템(100 또는 400)과 같은 본원에 개시된 메모리 시스템은 메모리 제어기 칩과 결합될 수 있다(예를 들어, 도 3 참조). 메모리 제어기 칩과 결합될 때, 메모리 시스템 및 메모리 제어기 칩은 단일 장치의 일부가 될 수 있고 및/또는 단일 패키징으로 결합될 수 있다. 대안적으로, 칩들의 스트링의 각각의 칩, 또는 적어도 제1 메모리 칩 및 제2 메모리 칩은 도 3에 도시된 메모리 제어기 칩에 유사한 기능을 제공하는 각각의 메모리 제어기를 포함할 수 있다.
메모리에 배선된 프로세서 칩 또는 SoC(예를 들어, 도 2에 도시된 프로세서 칩(202) 참조) 또는 메모리 제어기 칩(예를 들어, 도 3에 도시된 메모리 제어기 칩(302) 참조)의 관점에서, 메모리의 메모리 칩들의 스트링은 단일 메모리 칩 구현과 다르지 않다; 그러나 플랙서블 프로비저닝을 사용하면, 메모리 칩들의 스트링을 사용하는 이점이 달성된다. 이러한 실시예에서, 프로세서 칩 또는 SoC-또는 메모리 제어기 칩-는 메모리 칩들의 스트링(102)의 제1 메모리 칩(예를 들어, 제1 메모리 칩(104) 참조)에 직접 배선(예를 들어, 도 2에 도시된 배선(204) 또는 도 3에 도시된 배선(304) 참조)될 수 있고, 제1 메모리 칩의 다운스트림에 있는 스트링 내의 메모리 칩들(예를 들어, 제1 메모리 칩(104)의 다운스트림인 제2 메모리 칩(106) 및 제3 메모리 칩(108) 참조)을 인식하지 않고 제1 메모리 칩과 상호작용할 수 있다.
메모리(예를 들어, 메모리 시스템(100 또는 400) 참조)에서, 제1 메모리 칩(예를 들어, 제1 메모리 칩(104) 또는 메모리 칩들(404a 또는 404b) 중 하나 참조)은 제2 메모리 칩(예를 들어, 제2 메모리 칩(106) 또는 메모리 칩들(406a 또는 406b) 중 하나 참조)에 직접 배선될 수 있고, 제2 메모리 칩과 상호 작용하여 프로세서 칩, SoC 또는 메모리 제어기 칩(예를 들어, 프로세서 칩(202) 및 메모리 제어기 칩(302) 참조)이 제2 메모리 칩을 인식하지 않고 제1 및 제2 메모리 칩의 스트링의 이점을 얻을 수 있다. 그리고, 제2 메모리 칩(예를 들어, 제1 메모리 칩(104) 또는 메모리 칩들(404a 또는 404b) 중 하나 참조)은 제3 메모리 칩(예를 들어, 제3 메모리 칩(108) 또는 메모리 칩들(408a 또는 408b) 중 하나 참조)에 직접 배선되어 프로세서 칩, SoC 또는 메모리 제어기 칩이 제1 메모리 칩의 다운스트림에 있는 다중 메모리 칩들을 인식 및 상호 작용하지 않고 다중 메모리 칩들의 스트링(예를 들어, 메모리 칩들의 스트링(102) 또는 메모리 칩들의 그룹들의 스트링(402) 참조)의 이점을 얻을 수 있다. 또한, 일부 실시예에서, 스트링의 각각의 칩은 스트링의 더 높은 업스트림 또는 다운스트림에 있는 칩을 인식하지 않고 스트링의 즉각적인 업스트림 칩 및 다운스트림 칩을 인식하고 상호작용한다.
언급한 바와 같이, 플랙서블 프로비저닝으로, 메모리 계층 구조가 있는 메모리 칩들의 스트링을 사용하는 이점이 달성될 수 있다. 따라서, 예를 들어, 일부 실시예에서, 스트링의 제1 메모리 칩(예를 들어, 제1 메모리 칩(104) 참조)은 메모리에서 가장 높은 메모리 대역폭을 갖는 칩일 수 있다. 제1 칩의 바로 다운스트림에 있는 스트링의 제2 메모리 칩(예를 들어, 제2 메모리 칩(106) 참조)은 메모리의 다음으로 높은 메모리 대역폭을 갖는 칩(이는 제1 칩보다 제조 비용이 저렴하거나 데이터를 저장할 때 제1 칩보다 더 안정적이거나 지속성인 것과 같은 다른 이점을 가질 수 있음)일 수 있다. 제2 칩의 바로 다운스트림에 있는 스트링의 제3 메모리 칩(예를 들어, 제3 메모리 칩(108) 참조)(또는 스트링에 3개 이상의 메모리 칩들을 갖는 경우 스트링의 최종 다운스트림 칩)은 가장 낮은 메모리 대역폭을 가질 수 있다. 이러한 예에서 제3 메모리 칩(또는 3개 이상의 메모리 칩들이 있는 다른 예에서 최종 다운스트림 칩)은 가장 비용 효율적인 칩이거나 데이터를 저장하기 위한 가장 안정적이거나 지속성이 있는 칩일 수 있다.
일부 실시예에서, 스트링의 제1 메모리 칩은 DRAM 칩일 수 있다. 이러한 실시예에서, 제1 칩의 바로 다운스트림에 있는 스트링의 제2 메모리 칩은 NVRAM 칩(예를 들어, 3D XPoint 메모리 칩)일 수 있다. 그리고, 그러한 실시예에서, 제2 칩의 바로 다운스트림에 있는 스트링의 제3 메모리 칩은 플래시 메모리 칩(예를 들어, NAND형 플래시 메모리 칩)일 수 있다.
언급된 바와 같이, 본원에 개시된 메모리 칩들의 스트링의 플랙서블 프로비저닝을 이해하기 위해, 예시는 종종 메모리 칩들의 3칩 스트링을 언급한다(예를 들어, 도 1 내지 3에 도시된 메모리 칩들의 스트링(102) 및 도 4에 도시된 메모리 칩들 그룹들의 스트링(402) 참조); 그러나, 메모리 칩들의 스트링은 3개 이상의 메모리 칩 또는 3개 이상의 칩들의 그룹들을 포함할 수 있으며, 여기서 그룹들의 각각은 칩들의 계층이다.
언급된 바와 같이, 메모리 칩들의 스트링의 일부 실시예는 스트링의 제1 칩인 DRAM 메모리 칩, 스트링의 제2 칩인 NVRAM 칩, 및 스트링의 제3 칩이며 스트링에서 벌크 메모리 칩으로 사용할 수 있는 플래시 메모리 칩(예를 들어, NAND형 플래시 메모리 칩)을 포함할 수 있다. 이러한 실시예 및 메모리 칩 유형들의 다른 배열을 갖는 다른 실시예에서, 메모리 칩들의 스트링의 칩들의 각각은 배선(예를 들어, PCIe 또는 SATA)을 통해 바로 다운스트림 및/또는 업스트림 칩에 연결된다. 메모리 칩들의 스트링의 칩들 간의 연결들의 각각은 배선으로 순차적으로 연결될 수 있고 연결들은 서로 분리될 수 있다(예를 들어, 배선(124 및 126)과 배선(424 및 426) 참조). 또한, 메모리 칩들 스트링의 각각의 칩은 스트링의 업스트림 칩 및/또는 다운스트림 칩에 연결하기 위한 하나 이상의 핀 세트(예를 들어, 도 1에 도시된 핀 세트(132, 134, 136 및 138) 참조)를 포함할 수 있다. 일부 실시예에서, 메모리 칩들의 스트링(예를 들어, 메모리 칩들의 스트링(102) 또는 메모리 칩들의 그룹들의 스트링(402) 참조)의 각각의 칩은 IC 패키지 내에 봉입된 단일 IC를 포함할 수 있다. 그러한 실시예에서, IC 패키지는 패키지의 경계에 핀 세트(핀 세트(132, 134, 136 및 138)와 같은)를 포함할 수 있다.
프로세서 칩 또는 SoC에 대한 메모리의 메모리 칩들의 스트링의 제1 메모리 칩(예를 들어, DRAM 칩)은, 예를 들어 프로세서 칩 또는 SoC에 의해, 스트링의 제2 메모리 칩(예를 들어, NVRAM 칩)에 대한 캐시(예를 들어, 제2 메모리 칩에 대한 캐시(114) 참조)로서 구성될 수 있는 부분을 포함할 수 있다. 제1 메모리 칩의 메모리 유닛들의 일부는 제2 메모리 칩에 대한 캐시 메모리로 사용될 수 있다.
프로세서 칩 또는 SoC에 대한 메모리의 메모리 칩들의 스트링의 제2 메모리 칩은, 제1 메모리 칩에 의해 직접적으로 및 프로세서 칩 또는 SoC에 의해 간접적으로, 스트링의 제3 메모리 칩(예를 들어, 플래시 메모리 칩)에 액세스하기 위한 버퍼(예를 들어, 제3 메모리 칩(116)에 대한 버퍼 참조)로서 구성될 수 있는 부분을 포함할 수 있다. 제2 메모리 칩의 메모리 유닛들의 일부는 제3 메모리 칩에 액세스하기 위한 버퍼로 사용될 수 있다. 또한, 제2 메모리 칩은, 제1 메모리 칩에 의해 직접적으로 및 프로세서 칩 또는 SoC에 의해 간접적으로, 논리적-물리적 어드레스 매핑을 위한 테이블(논리적-물리적 테이블)로 또는 일반적으로 논리적-물리적 어드레스 매핑으로(예를 들어, 논리적-물리적 매핑(118) 참조) 구성될 수 있는 부분을 포함할 수 있습니다. 제2 메모리 칩의 메모리 유닛들 일부는 논리적-물리적 어드레스 매핑에 대해 사용될 수 있다.
프로세서 칩 또는 SoC에 대한 메모리의 메모리 칩들의 스트링의 제3 메모리 칩은 제3 메모리 칩의 변환 계층(예를 들어, 플래시 변환 계층 기능)을 관리하기 위해(예를 들어, 변환 계층(130) 참조) 제2 메모리 칩의 논리적-물리적 어드레스 매핑을 사용할 수 있는 제어기(예를 들어, 제어기(128) 참조)를 포함할 수 있다. 제3 메모리 칩의 변환 계층은 제2 메모리 칩의 논리적-물리적 어드레스 매핑의 사본 또는 파생물과 같은 논리적-물리적 어드레스 매핑을 포함할 수 있다.
또한, 일부 실시예에서, 메모리에 연결된 프로세서 칩 또는 SoC(예를 들어, 프로세서 칩(202) 참조)는 제1 메모리 칩(예를 들어, 제1 메모리 칩(104) 참조)에 데이터를 기록함으로써 제1 칩의 캐시 정책 파라미터(예를 들어, 기록 스루 vs 기록 백)뿐만 아니라 제2 메모리 칩의 버퍼 및 논리적-물리적 어드레스 매핑 및, 제1 메모리 칩의 캐시의 위치 및 크기를 구성할 수 있다. 그리고, 프로세서 칩 또는 SoC에 의한 전술한 구성 및 설정은 이러한 작업이 프로세서 칩 또는 SoC로부터 제거되도록 제2 데이터 처리 칩에 위임될 수 있다(예를 들어, 도 3에 도시된 메모리 제어기 칩(302) 참조). 예를 들어, 메모리 칩들의 스트링을 갖는 메모리는 메모리에 대한 전술한 구성 및 설정을 제공하고 제어하도록 구성된 프로세서 칩 또는 SoC와 별도의 전용 제어기를 가질 수 있다(예를 들어, 메모리 제어기 칩(302) 참조).
본 개시의 목적을 위해, 스트링이 유사한 칩들의 그룹들의 스트링을 포함하도록(예를 들어, 도 4에 도시된 메모리 칩들의 그룹들의 스트링(402) 참조) 메모리 칩들의 스트링의 메모리 칩은 유사한 메모리 칩들의 그룹으로 대체될 수 있다는 것을 이해해야 한다. 이러한 예에서 유사한 칩들의 각각의 그룹은 스트링의 노드이다. 또한, 일부 실시예에서, 메모리 칩들의 스트링의 노드들은 단일 칩 노드들 및 다중 칩 노드들의 조합으로 구성될 수 있다(도면에 도시되지 않음). 예를 들어 메모리 칩들의 스트링에서, 제1 메모리 칩(예를 들어, DRAM 칩)은 유사한 메모리 칩들의 그룹(예를 들어, DRAM 칩들의 그룹)으로 대체될 수 있으며, 제2 메모리 칩(예를 들어, NVRAM 칩)은 유사한 메모리 칩들의 그룹(예를 들어, NVRAM 칩들의 그룹)으로 대체될 수 있으며, 제3 메모리 칩(예를 들어, 플래시 메모리 칩)은 유사한 메모리 칩들의 그룹(예를 들어, 플래시 메모리 칩 그룹)으로 대체될 수 있으며, 또는 이들의 일부 조합이 가능하다.
도 5는 본 개시의 일부 실시예에 따른 예시적인 컴퓨팅 장치(500)의 예시적인 부분을 도시한다. 컴퓨팅 장치(500)는 도 5에 도시된 바와 같이 컴퓨터 네트워크(502)를 통해 다른 컴퓨팅 장치에 통신 가능하게 연결될 수 있다. 컴퓨팅 장치(500)는 적어도 버스(504), 프로세서(506)(예를 들어, 도 2에 도시된 CPU 및/또는 프로세서 칩(202)), 메인 메모리(508), 네트워크 인터페이스(510), 및 데이터 저장 시스템(512)을 포함한다. 버스(504)는 프로세서(506), 메인 메모리(508), 네트워크 인터페이스(510), 및 데이터 저장 시스템(512)을 통신 가능하게 연결한다. 컴퓨팅 장치(500)는 버스(504)(다중 버스들 및 배선들을 포함할 수 있음)를 통해 서로 통신하는 적어도 프로세서(506), 메인 메모리(508)(예를 들어, 판독 전용 메모리(ROM), 플래시 메모리, DRAM, 예를 들어, 동기식 DRAM(SDRAM) 또는 램버스 DRAM(RDRAM), NVRAM, SRAM 등), 및 데이터 저장 시스템(512)을 포함하는 컴퓨터 시스템을 포함한다.
메인 메모리(508)는 도 1에 도시된 메모리 시스템(100)을 포함할 수 있다. 또한, 메인 메모리(508)는 도 4에 도시된 메모리 시스템(400)을 포함할 수 있다. 일부 실시예에서, 데이터 저장 시스템(512)은 도 1에 도시된 메모리 시스템(100)을 포함할 수 있다. 그리고, 데이터 저장 시스템(512)은 도 4에 도시된 메모리 시스템(400)을 포함할 수 있다.
프로세서(506)는 마이크로프로세서, 중앙 처리 장치 등과 같은 하나 이상의 범용 처리 디바이스를 나타낼 수 있다. 프로세서(506)는 도 2에 도시된 프로세서(202)이거나 이를 포함할 수 있다. 프로세서(506)는 복합 명령어 세트 컴퓨팅(CISC) 마이크로프로세서, 감소된 명령어 세트 컴퓨팅(RISC) 마이크로프로세서, 베로 로그 명령어 워드(VLIW) 마이크로프로세서 또는 다른 명령어 세트를 구현하는 프로세서, 또는 명령어 세트의 조합을 구현하는 프로세서일 수 있다. 프로세서(506)는 또한 하나 이상의 특수 목적 처리 디바이스, 예를 들어, 어플리케이션 특정 집적 회로(ASIC), 필드 프로그래밍 가능 게이트 어레이(FPGA), 디지털 신호 처리기(DSP), 네트워크 프로세서, 프로세서 인 메모리(PIM) 등일 수 있다. 프로세서(506)는 본원에서 논의된 동작 및 단계를 수행하기 위한 명령어를 실행하도록 구성될 수 있다. 프로세서(506)는 네트워크(502)와 같은 하나 이상의 통신 네트워크를 통해 통신하기 위해 네트워크 인터페이스(510)와 같은 네트워크 인터페이스 디바이스를 더 포함할 수 있다.
데이터 저장 시스템(512)은 본원에 기술된 방법론 또는 기능들 중 임의의 하나 이상을 구현하는 하나 이상의 명령어 또는 소프트웨어 세트가 저장되어 있는 머신 판독가능 저장 매체(컴퓨터 판독 가능 매체라고도 함)를 포함할 수 있다. 명령어는 또한 컴퓨터 시스템, 메인 메모리(508) 및 머신 판독 가능한 저장 매체를 또한 구성하는 프로세서(506)에 의해 실행 동안 메인 메모리(508) 및/또는 프로세서(506) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다.
예시적인 실시예에서는 메모리, 프로세서 및 데이터 저장 부분들이 각각 단일 부분인 것으로 도시되어 있지만, 각 부분은 명령어를 저장하고 각각의 동작을 수행할 수 있는 단일 부분 또는 다중 부분들을 포함하는 것으로 간주되어야 한다. "머신 판독 가능 저장 매체"라는 용어는 머신에 의해 실행되고 머신이 본 개시의 방법론들 중 임의의 하나 이상을 수행하게 하는 명령어 세트를 저장하거나 인코딩할 수 있는 임의의 매체를 포함하는 것으로 간주된다. 따라서 "머신 판독 가능 저장 매체"라는 용어는 솔리드 스테이트 메모리, 광학 매체 및 자기 매체를 포함하지만 이에 제한되지 않는 것으로 간주되어야 한다.
데이터 이동기를 갖는 메모리 칩을 다시 참조하면, 도 6은 본 개시내용의 일부 실시예에 따른 통합 데이터 이동기(608)를 갖는 메모리 칩(602)을 포함하는 예시적인 시스템(600)을 도시한다. 도 6에서, 메모리 칩(602)은 메모리 칩(602)이 제1 배선(634)을 통해 제1 마이크로칩 또는 디바이스(624)에 결합될 수 있도록 구성된 제1 핀 세트(604)를 포함한다. 또한 도시된 바와 같이, 제1 마이크로칩 또는 디바이스(624)는 제1 마이크로칩 또는 디바이스(624)가 제1 배선(634)을 통해 메모리 칩(602)에 결합되게 하도록 구성된 핀 세트(605)를 갖는다. 메모리 칩(602)은 또한 메모리 칩(602)이 제1 배선(634)과 별개인 제2 배선(636)을 통해 제2 마이크로칩 또는 디바이스(626)에 결합되게 하도록 구성된 제2 핀 세트(606)를 포함한다. 또한 도시된 바와 같이, 제2 마이크로칩 또는 디바이스(626)는 제2 마이크로칩 또는 디바이스(626)가 제2 배선(636)을 통해 메모리 칩(602)에 결합되게 하도록 구성된 핀 세트(607)를 갖는다. 메모리 칩(602)은 또한 제2 핀 세트(606)를 통해, 제2 마이크로칩 또는 디바이스(626)로부터 데이터를 판독하고 제2 마이크로칩 또는 디바이스(626)에 데이터를 기록하기 위해 제2 마이크로칩 또는 디바이스(626)에 대한 액세스를 용이하게 하도록 구성된 데이터 이동기(608)를 포함한다.
일반적으로, 데이터 이동기(608)는 다양한 전략을 사용하여 제2 마이크로칩 또는 디바이스(626)로 가는 메모리 칩(602)에 저장된 데이터를 결합할 수 있다. 이것은 제2 마이크로칩 또는 디바이스(626)의 기록 성능 및 내구성을 향상시킬 수 있다. 예를 들어, 메모리 칩에 대한 순차적 또는 블록 액세스는 메모리 칩에 대한 랜덤 액세스보다 수십 배 더 빠르다. 일부 실시예에서, 메모리 칩(602)의 메모리(610)의 부분에 저장된 데이터는 제1 핀 세트(604)를 통해 제1 마이크로칩 또는 디바이스(624)에 의해 또는 이를 통해 액세스 가능하다. 그리고, 그러한 실시예에서, 데이터 이동기(608)는 블록 단위로 데이터를 제2 마이크로칩 또는 디바이스(626)로 이동시킴으로써 메모리 칩(602)의 메모리의 부분(610)에 저장된 데이터를 결합하도록 구성된다. 따라서, 제2 마이크로칩 또는 디바이스(626)의 기록 성능 및 내구성이 개선된다.
또한, 이러한 실시예 및 기타 실시예에서, 블록들은 메모리 칩(602)의 메모리 부분(610)에 저장된 데이터보다 더 거친 세분성(granularity)에 있을 수 있다. 제1 마이크로칩 또는 디바이스에 의해 액세스될 데이터와 같은 메모리 칩(602)의 사전 차단된 데이터보다 더 거친 세분성에 있는 블록은 제2 마이크로칩 또는 디바이스에 대한 데이터 기록 빈도를 줄일 수 있다.
도 6에 도시된 것과 같은 일부 실시예에서, 메모리 칩(602)의 메모리의 부분(610)에 저장된 데이터는 제1 핀 세트(604)를 통해 제1 마이크로칩 또는 디바이스(624)에 의해 또는 이를 통해 액세스 가능할 수 있다. 또한, 메모리 칩(602)의 메모리의 부분(610)에 저장된 데이터가 제1 마이크로칩 또는 디바이스(624)를 통해 액세스 가능할 때, 이는 다른 메모리 칩 또는 디바이스 또는 프로세서 칩 또는 디바이스에 의해 액세스된다(이는 도 6에는 도시되지 않았지만 제2 메모리 칩(106)이 메모리 칩(602)의 역할을 하는 도 2 및 3에 어느 정도 도시되어 있음). 그리고, 제 1 마이크로칩 또는 디바이스(624)는 메모리 칩(602)에 데이터를 기록할 뿐만 아니라 메모리 칩(602)으로부터 데이터를 판독할 수 있다.
도 6에 도시된 것과 같은 일부 실시예에서, 제2 마이크로칩 또는 디바이스(626)의 메모리의 부분(630)에 저장된 데이터는 제2 핀 세트(606)를 통해 메모리 칩(602)에 의해 또는 이를 통해 액세스 가능할 수 있다. 또한, 제2 마이크로칩 또는 디바이스(626)의 메모리의 부분(630)에 저장된 데이터가 메모리 칩(602)을 통해 액세스 가능한 경우, 이는 다른 메모리 칩 또는 디바이스 또는 프로세서 칩 또는 디바이스(제1 마이크로칩 또는 디바이스(624)와 같은)에 의해 액세스된다. 그리고, 메모리 칩(602)은 제2 마이크로칩 또는 디바이스(626)로부터 데이터를 판독할 수 있을 뿐만 아니라 제2 마이크로칩 또는 디바이스(626)에 데이터를 기록할 수 있다.
도 6에 도시된 바와 같은 일부 실시예에서, 데이터 이동기(608)는 메모리 칩(602)의 메모리의 부분(610)에 저장된 데이터에 대한 변경의 이동을 버퍼링하도록 구성된다. 또한, 데이터 이동기(608)는 데이터 이동기(608)에 의한 버퍼링으로 인해 적절한 크기로 제2 마이크로칩 또는 디바이스(626)에 기록 요청을 전송하도록 구성된다.
데이터 이동기(608)에 의한 버퍼링으로 인해 제2 마이크로칩 또는 디바이스(626)에 대한 기록이 적절한 크기일 때, 제2 마이크로칩 또는 디바이스는 제2 마이크로칩 또는 디바이스에서의 최소 처리 또는 추가 처리 없이 기록에 따라 블록을 소거하고 제2 마이크로칩 또는 디바이스의 블록을 프로그래밍할 수 있다. 이것은 메모리 칩(602)에 통합된 데이터 이동기(608)가 제2 마이크로칩 또는 디바이스의 기록 성능 및 내구성을 향상시킬 수 있는 한 가지 예시적인 방법이다. 또한, 데이터 이동기(608)에 의한 버퍼링으로 그리고 메모리 칩의 일부(602)의 데이터(제1 마이크로칩 또는 디바이스에 의해 액세스 가능한 메모리의 부분(610)의 데이터와 같은)에 빈번한 및/또는 랜덤 변경이 이루어질 때, 제2 마이크로칩 또는 디바이스(626)는 메모리 칩(602)에서 발생하는 변경에 대응하는 방식으로 자주 소거되고 재프로그래밍될 필요가 없다.
데이터 이동기(608)에 의한 버퍼링은 제2 마이크로칩 또는 디바이스(626)가 플래시 메모리 칩일 때 훨씬 더 유리하며 이는 버퍼링이 플래시 메모리에서 발생하는 기록 증폭의 영향을 제거하거나 최소한 제한할 수 있기 때문이다. 기록 증폭은 버퍼링에 의해 감소되거나 제거될 수 있으며, 이는, 버퍼링으로, 메모리 칩(602)에 의해 전송된 기록 요청이 수신 플래시 메모리 칩에 의해 예상되는 적절한 크기 또는 세분성으로 수정될 수 있기 때문이다. 따라서, 플래시 메모리 칩은 기록의 중복 가능성 없이 기록 요청에 따라 블록을 소거하고 블록을 프로그래밍할 수 있으므로 제2 마이크로칩 또는 디바이스(626)에서의 추가 처리를 피할 수 있다.
또한, 데이터 이동기(608)는 메모리 칩(602)의 메모리의 부분(610)에 저장된 데이터에 대한 변경에서 변경된 어드레스들을 번들링하도록 구성될 수 있다. 그리고, 데이터 이동기(608)는 제2 마이크로칩 또는 디바이스(626)에 대한 기록 요청을 통해 제2 마이크로칩 또는 디바이스(626)로 이동될 메모리 칩(602)의 다른 부분에 번들링된 변경된 어드레스들을 기록하도록 구성될 수 있다. 데이터 이동기(608)에 의한 번들링은 데이터 이동기에 의한 버퍼링 및 버퍼링에 따른 기록 요청 전송을 개선할 수 있고, 이는 변경된 어드레스들의 번들링이 수신하는 제2 마이크로칩 또는 디바이스(626)에 의해 예상되는 적절한 크기 또는 세분성에 대응하도록 데이터 이동기에 의해 제어될 수 있기 때문이다.
도 6에 도시된 것과 같은 일부 실시예에서, 메모리 칩(602)은 번들링된 변경된 어드레스들을 입력으로 사용하도록 구성된 제2 마이크로칩 또는 디바이스(626)에 대한 논리적-물리적 매핑(612)을 포함한다.
도 7은 본 개시내용의 일부 실시예에 따른 도 6에 도시된 메모리 칩(602)뿐만 아니라 데이터 이동기로부터 전송된 데이터를 수신하고 수신된 데이터를 매핑하기 위한 논리적-물리적 매핑(예를 들어, 논리적-물리적 매핑(712) 참조)을 갖는 마이크로칩 또는 디바이스를 포함하는 예시적인 시스템(700)을 도시한다. 시스템(700)은 시스템(700)에서 제2 마이크로칩 또는 디바이스(626)에 대한 논리적-물리적 매핑(712)이 제2 마이크로칩 또는 디바이스(626)에 제공된다는 점을 제외하고는 시스템(600)과 유사하다. 이것은 제2 마이크로칩 또는 디바이스에 대한 논리적-물리적 매핑을 메모리 칩(602) 상에 제공하는 것 대신이다(예를 들어, 도 6에 도시된 논리적-물리적 매핑(612) 참조).
시스템(700)과 유사한 실시예에서, 제2 마이크로칩 또는 디바이스(626)는 그 자체에 대한 논리적-물리적 매핑(712)을 포함한다. 그리고 논리적-물리적 매핑(712)은 번들링된 변경된 어드레스들이 메모리 칩(602)의 데이터 이동기(608)로부터 제2 마이크로칩 또는 디바이스(626)에 대한 쓰기 요청에서 전송되면 번들링된 변경된 어드레스들을 입력으로 사용하도록 구성된다. 다른 말로 하자면, 번들링된 변경된 어드레스들이 제2 마이크로칩 또는 디바이스(626)에 대한 기록 요청에서 메모리 칩(602)의 데이터 이동기(608)로부터 제2 마이크로칩 또는 디바이스(626)에 의해 수신되면, 논리적-물리적 매핑(712)은 번들링된 변경된 어드레스들을 입력으로 사용하도록 구성된다.
도 8은 본 개시의 일부 실시예에 따른 암호화 및 인증 회로(예를 들어, 암호화 엔진(802) 및 게이트키퍼(804) 참조)를 갖는 것으로 도시된 도 6에 도시된 메모리 칩(602)을 포함하는 예시적인 시스템(800)을 도시한다. 도 8에 도시된 바와 같이, 일부 실시예에서, 메모리 칩(602)은 장기간 저장을 위해 제2 마이크로칩 또는 디바이스(626)로 이동할 데이터를 보호하도록 구성된 암호화 엔진(802)을 포함한다. 또한, 도시된 바와 같이, 이러한 실시예에서, 메모리 칩(602)은 제2 마이크로칩 또는 디바이스(626)에 저장된 보안 데이터의 액세스를 위한 인증 프로세스를 제공하도록 구성된 게이트키퍼(804)를 포함한다. 또한, 게이트키퍼(804)는 인증 프로세스에 따라 보안 데이터를 복호화하도록 구성될 수 있다. 일부 다른 실시예에서, 암호화 엔진은 메모리 칩(602) 상에서 호스팅되는 대신에 다른 칩 또는 디바이스 상에서 호스팅될 수 있다.
도 7 및 8은 또한 도 6에 예시된 다른 컴포넌트를 도시한다. 예를 들어, 도 7 및 8은 메모리 칩(602)이 제1 배선(634)을 통해 제1 마이크로칩 또는 디바이스(624)에 결합되도록 하도록 구성된 제1 핀 세트(604)를 포함하는 메모리 칩(602)을 도시한다. 또한 도 7 및 8에 도시된 바와 같이, 제1 마이크로칩 또는 디바이스(624)는 제1 마이크로칩 또는 디바이스(624)가 제1 배선(634)을 통해 메모리 칩(602)에 결합될 수 있도록 구성된 핀 세트(605)를 갖는다. 또한 도 7 및 8에 도시된 바와 같이, 메모리 칩(602)은 또한 메모리 칩(602)이 제1 배선(634)과 별개인 제2 배선(636)을 통해 제2 마이크로칩 또는 디바이스(626)에 결합되게 하도록 구성된 제2 핀 세트(606)을 포함한다. 또한 도시된 바와 같이, 제2 마이크로칩 또는 디바이스(626)는 제2 마이크로칩 또는 디바이스(626)가 제2 배선(636)을 통해 메모리 칩(602)에 결합되게 하도록 구성된 핀 세트(607)를 갖는다. 메모리 칩(602)은 또한 제2 핀 세트(606)를 통해, 제2 마이크로칩 또는 디바이스(626)로부터 데이터를 판독하고 제2 마이크로칩 또는 디바이스(626)에 데이터를 기록하기 위해 제2 마이크로칩 또는 디바이스(626)에 대한 액세스를 용이하게 하도록 구성된 데이터 이동기(608)를 포함한다.
도 6 내지 8에 도시된 시스템과 관련하여, 메모리 칩(602)은 NVRAM 칩일 수 있고, 이러한 실시예에서, 메모리 칩(602)은 복수의 NVRAM 셀들을 포함한다. 이러한 예들에서 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들이거나 이를 포함할 수 있다. 대안적으로, 메모리 칩(602)은 동적 DRAM 칩일 수 있고, 이러한 실시예에서, 메모리 칩(602)은 복수의 DRAM 셀들을 포함한다. 또한, 메모리 칩(602)은 플래시 메모리 칩일 수 있고, 이러한 실시예에서, 메모리 칩(602)은 복수의 플래시 메모리 셀들을 포함한다. 이러한 실시예에서 복수의 플래시 메모리 셀들은 복수의 NAND형 플래시 메모리 셀들이거나 이를 포함할 수 있다.
제2 마이크로칩 또는 디바이스(626)는 다른 메모리 칩 또는 메모리 디바이스일 수 있다. 일부 실시예에서, 예를 들어, 제2 마이크로칩 또는 디바이스(626)는 DRAM 칩이다. 일부 실시예에서, 예를 들어, 제2 마이크로칩 또는 디바이스(626)는 NVRAM 칩이다. 일부 실시예에서, 예를 들어, 제2 마이크로칩 또는 디바이스(626)는 플래시 메모리 칩(예를 들어, NAND형 플래시 메모리 칩)이다.
일부 실시예는 중간 메모리 칩(예를 들어, 도 6에 도시된 메모리 칩(602) 참조), 제1 메모리 칩(예를 들어, 제1 마이크로칩 또는 디바이스(624) 참조), 및 제2 메모리 칩(예를 들어, 제2 마이크로칩 또는 디바이스(626) 참조)을 갖는 시스템을 포함할 수 있다. 그리고, 그러한 실시예에서, 중간 메모리 칩은 중간 메모리 칩이 제1 배선(예를 들어, 배선(634) 참조)을 통해 제1 메모리 칩에 결합되게 하도록 구성된 제1 핀 세트(예를 들어, 제1 핀 세트(604) 참조)를 포함한다. 중간 메모리 칩은 또한 중간 메모리 칩이 제1 배선과 별개인 제2 배선(예를 들어, 배선(636) 참조)을 통해 제2 메모리 칩에 결합되게 하도록 구성된 제2 핀 세트(예를 들어, 제2 핀 세트(606) 참조)를 포함할 수 있다. 그리고, 중간 메모리 칩은 제2 핀 세트를 통해 제2 메모리 칩으로부터 데이터를 판독하고 제2 메모리 칩에 데이터를 기록하기 위해 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성된 데이터 이동기(예를 들어, 데이터 이동기(608) 참조)를 포함할 수 있다.
그러한 실시예에서, 중간 메모리 칩은 NVRAM 칩일 수 있고, NVRAM 칩은 복수의 NVRAM 셀들을 포함한다. 대안적으로, 중간 메모리 칩은 DRAM 칩일 수 있고, DRAM 칩은 복수의 DRAM 셀들을 포함한다. 이러한 예들에서 복수의 NVRAM 셀은 복수의 3D XPoint 메모리 셀이거나 이를 포함할 수 있다.
또한, 이러한 실시예에서, 제2 메모리 칩은 플래시 메모리 칩일 수 있고, 플래시 메모리 칩은 복수의 플래시 메모리 셀들을 포함한다. 이러한 실시예에서 복수의 플래시 메모리 셀들은 복수의 NAND형 플래시 메모리 셀들이거나 이를 포함할 수 있다. 대안적으로, 제2 메모리 칩은 NVRAM 칩일 수 있고, NVRAM 칩은 복수의 NVRAM 셀들을 포함한다. 이러한 예들에서 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들이거나 이를 포함할 수 있다. 또한, 제2 메모리 칩은 DRAM 칩일 수 있고, DRAM 칩은 복수의 DRAM 셀들을 포함한다.
또한, 이러한 실시예에서, 제1 메모리 칩은 DRAM 칩일 수 있고, DRAM 칩은 복수의 DRAM 셀들을 포함한다. 대안적으로, 제1 메모리 칩은 NVRAM 칩일 수 있고, NVRAM 칩은 복수의 NVRAM 셀들을 포함한다. 이러한 예들에서 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들이거나 이를 포함할 수 있다.
일부 실시예는 중간 메모리 칩(예를 들어, 도 6에 도시된 메모리 칩(602) 참조), 제2 메모리 칩(예를 들어, 제2 마이크로칩 또는 디바이스(626) 참조), 및 SoC와 같은 프로세서 칩(예를 들어, 제1 마이크로칩 또는 디바이스(624) 참조)을 갖는 시스템을 포함할 수 있다. 이러한 실시예에서, 중간 메모리 칩은 중간 메모리 칩이 제1 배선(예를 들어, 배선(634) 참조)을 통해 프로세서 칩에 결합되게 하도록 구성된 제1 핀 세트(예를 들어, 제1 핀 세트(604) 세트 참조)를 포함한다. 또한, 중간 메모리 칩은 중간 메모리 칩이 제1 배선과 별개인 제2 배선(예를 들어, 배선(636) 참조)을 통해 제2 메모리 칩에 결합되게 하도록 구성된 제2 핀 세트(예를 들어, 제 핀 세트(606) 참조)를 포함할 수 있다. 그리고, 중간 메모리 칩은 제2 핀 세트 및 제2 배선을 통해 제2 메모리 칩으로부터 데이터를 판독하고 제2 메모리 칩에 데이터를 기록하기 위해 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성된 데이터 이동기(예를 들어, 데이터 이동기(608) 참조)를 포함할 수 있다.
일부 실시예에서, 메모리 칩(602)의 하나 이상의 인스턴스(instance)(도 6 내지 8에 도시된 메모리 칩(602)의 다른 인스턴스와 같은)들은 도 1 내지 3에 도시된 메모리 칩들의 스트링(102)의 플랙서블 프로비저닝에서 하나 이상의 메모리 칩으로서 사용될 수 있다. 또한, 메모리 칩(602)의 하나 이상의 인스턴스는 도 4에 도시된 메모리 칩들의 스트링(402)의 플랙서블 프로비저닝에서 하나 이상의 메모리 칩으로서 사용될 수 있다.
또한, 중간 메모리 칩(예를 들어, 도 6에 도시된 메모리 칩(602) 참조), 제1 메모리 칩(예를 들어, 제1 마이크로칩 또는 디바이스(624) 참조), 및 제2 메모리 칩(예를 들어, 제2 마이크로칩 또는 디바이스(626) 참조)을 갖는 시스템은 도 1 내지 3에 도시된 메모리 칩들의 스트링(102)에 포함될 수 있다. 예를 들어, 메모리 칩(602)은 제2 메모리 칩(106)이거나 이를 포함할 수 있고, 제1 마이크로칩 또는 디바이스(624)는 제1 메모리 칩(104)이거나 이를 포함할 수 있고, 제2 마이크로칩 또는 디바이스(626)는 제3 메모리 칩(108)이거나 이를 포함할 수 있다.
일부 실시예에서, 메모리 칩(602)은 메모리 칩들의 스트링(102)의 제1 메모리 칩(104)이거나 이를 포함할 수 있다. 그러한 실시예에서, 예를 들어, 제1 마이크로칩 또는 디바이스(624)는 도 2에 도시된 프로세서 칩(202) 또는 도 3에 도시된 메모리 제어기 칩(302)이거나 이를 포함할 수 있다. 또한, 이러한 실시예에서, 제2 마이크로칩 또는 디바이스(626)는 메모리 칩들의 스트링(102)의 제2 메모리 칩(106)이거나 이를 포함할 수 있다.
일부 실시예에서, 시스템들(600, 700, 800) 중 임의의 하나 이상은 도 5에 도시된 메인 메모리(508) 및/또는 데이터 저장 시스템(512)에 포함될 수 있다. 이러한 실시예 및 기타 실시예에서, 제1 마이크로칩 또는 디바이스(624)는 프로세서(506)이거나, 이의 일부이거나, 이를 포함할 수 있다.
메모리 칩(602)과 마찬가지로, 본원에 설명된 메모리 칩들 중 임의의 다른 메모리 칩(예를 들어, 메모리 칩들(104, 106 및 108) 참조)은 메모리 칩으로 또는 이를 통해 이동되는 데이터를 보호하기 위한 암호화 엔진 및/또는 인증 게이트키퍼(예를 들어, 도 8에 도시된 암호화 엔진(802) 및 게이트키퍼(804) 참조)를 포함할 수 있다. 또한, 메모리 칩(602)과 마찬가지로, 본원에 설명된 메모리 칩들 중 임의의 다른 칩(예를 들어, 메모리 칩들(104, 106 및 108) 참조)은 데이터 이동기(608)와 같은 데이터 이동기를 포함할 수 있다.
데이터 이동을 위한 프로그래밍 가능한 엔진을 갖는 메모리 칩을 다시 참조하면, 도 9는 본 개시내용의 일부 실시예에 따른 데이터 이동 및 프로세서 칩(924)(예를 들어, SoC) 및 제2 메모리 칩(926)에 대한 직접 연결을 위한 프로그래밍 가능한 엔진(910)을 갖는 제1 메모리 칩(902)을 포함하는 예시적인 시스템(900)을 도시한다.
도 9에서, 제1 메모리 칩(902)은 제1 배선(934)을 통해 프로세서 칩(924)에 제1 메모리 칩(902)이 결합되게 하도록 구성된 제1 핀 세트(904)를 포함한다. 또한 도시된 바와 같이, 프로세서 칩(924)은 프로세서 칩(924)이 제1 배선(934)을 통해 제1 메모리 칩(902)에 결합되게 하도록 구성된 핀 세트(905)를 갖는다. 제1 메모리 칩(902)은 또한 제1 배선(934)과 별개인 제2 배선(936)을 통해 제1 메모리 칩(902)이 제2 메모리 칩(926)에 결합하게 하도록 구성된 제2 핀 세트(906)를 포함한다. 또한 도시된 바와 같이, 제2 메모리 칩(926)은 제2 메모리 칩(926)이 제2 배선(936)을 통해 제1 메모리 칩(902)에 결합되게 하도록 구성된 핀 세트(907)를 갖는다. 제1 메모리 칩(902)은 또한 핀 세트들(904, 905) 및 배선(934)을 통해 프로세서 칩(924)으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역(908)을 포함한다. 제1 메모리 칩(902)은 또한 미리 정의된 메모리 영역(908)에 저장된 프로그램 데이터에 따라 제2 메모리 칩(926)으로부터 데이터를 판독하고 제2 메모리 칩(926)에 데이터를 기록하기 위해 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진(910)을 포함한다. 제2 메모리 칩(926)에 대한 액세스는 핀 세트들(906, 907) 및 배선(936)을 통해 발생한다.
도 9에 도시된 바와 같이, 미리 정의된 메모리 영역(908)은 프로그래밍 가능한 엔진(910)을 위한 커맨드 큐(command queue)(912)로서 구성된 부분을 포함할 수 있다. 이러한 실시예에서, 프로그래밍 가능한 엔진(910)은 커맨드 큐(912)에 따라 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성될 수 있다. 미리 정의된 메모리 영역(908)에 저장된 프로그램 데이터의 부분은 커맨드 큐(912)를 제어하도록 구성될 수 있다. 또한, 제1 메모리 칩(902)은 제2 메모리 칩(926)으로 이동할 데이터를 저장하도록 구성된 메모리의 부분(914)을 포함할 수 있다. 메모리의 부분에 저장된 데이터는 커맨드 큐(912)에 따라 제2 메모리 칩(926)으로 이동될 수 있다. 메모리의 부분(914)에 저장된 데이터는 핀 세트들(904, 905) 및 배선(934)을 통해 프로세서 칩(924)에 의해 해당 부분에 기록될 수 있다.
프로그래밍 가능한 엔진(910)은 핀 세트들(906, 907) 및 배선(936)을 통해 제2 메모리 칩(926)으로부터 데이터를 판독하고 제2 메모리 칩(926)에 데이터를 기록하기 위해 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성될 수 있다. 제2 메모리 칩(926)의 메모리의 부분(930)에 저장된 데이터는 프로그래밍 가능한 엔진(910)을 갖는 제1 메모리 칩(902)에 의해 또는 이를 통해 액세스될 수 있다. 제2 메모리 칩(926)의 메모리의 부분(930)에 저장된 데이터가 제1 메모리 칩(902)을 통해 액세스될 때 이는 프로세서 칩(924)에 의해 액세스된다. 제1 메모리 칩(902)은 핀 세트들(906, 907) 및 배선(936)을 제2 메모리 칩(926)의 메모리의 부분(930)에 데이터를 기록할 뿐만 아니라 제2 메모리 칩(926)의 메모리의 부분(930)으로부터 데이터를 판독할 수 있다.
일부 실시예에서, 제1 메모리 칩(902)은 복수의 NVRAM 셀들을 포함하는 NVRAM 칩이거나 이를 포함할 수 있다. 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들이거나 이를 포함할 수 있다. 일부 실시예에서, 제1 메모리 칩(902)은 복수의 DRAM 셀들을 포함하는 DRAM 칩이거나 이를 포함할 수 있다. 일부 실시예에서, 제1 메모리 칩(902)은 복수의 플래시 메모리 셀들을 포함하는 플래시 메모리 칩이거나 이를 포함할 수 있다. 복수의 플래시 메모리 셀들은 복수의 NAND형 플래시 메모리 셀들이거나 이를 포함할 수 있다.
일부 실시예에서, 제2 메모리 칩(926)은 복수의 NVRAM 셀들을 포함하는 NVRAM 칩이거나 이를 포함할 수 있다. 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들이거나 이를 포함할 수 있다. 일부 실시예에서, 제2 메모리 칩(926)은 복수의 플래시 메모리 셀들을 포함하는 플래시 메모리 칩이거나 이를 포함할 수 있다. 복수의 플래시 메모리 셀들은 복수의 NAND형 플래시 메모리 셀들이거나 이를 포함할 수 있다.
도 10은 본 개시내용의 일부 실시예에 따른 프로그래밍 가능한 엔진(910), 제2 메모리 칩(926)에 대한 직접 연결, 및 버스(1004)를 통한 프로세서 칩(924)에 대한 연결을 갖는 도 9에 도시된 제1 메모리 칩(902)을 포함하는 예시적인 시스템(1000)을 도시한다. 버스(1004)는 도 5에 도시된 버스(504)이거나 이를 포함하거나 이에 포함될 수 있다. 또한, 시스템(1000)은 도 9에 도시된 제2 메모리 칩(926)을 포함한다.
도 10에서, 제1 메모리 칩(902)이 제2 배선(936)을 통해 제2 메모리 칩(926)에 결합되게 하도록 구성된 제2 핀 세트(906)를 포함하는 제1 메모리 칩(902)이 도시되어 있다. 또한, 제2 메모리 칩(926)이 제2 배선(936)을 통해 제1 메모리 칩(902)에 결합되도록 구성된 핀 세트(907)를 갖는 제2 메모리 칩(926)이 도시되어 있다. 도 10에서, 제1 메모리 칩(902)은 또한 미리 정의된 메모리 영역(908), 프로그래밍 가능한 엔진(910), 및 프로그래밍 가능한 엔진(910)에 대한 커맨드 큐(912)로서 구성된 부분을 포함하는 것으로 도시되어 있다. 그러나, 도 10에 도시된 실시예에서, 메모리의 부분(914)에 저장된 데이터는 버스(1004)를 통해 프로세서 칩(924)에 의해 해당 부분에 기록될 수 있다. 또한 도 10에는 제1 메모리 칩(902)과 별개의 제3 메모리 칩(1002)이 도시되어 있다. 제3 메모리 칩(1002)은 버스(1004)를 통해 프로세서 칩(924)에 결합된다.
도 9에 도시된 실시예와 유사하게, 도 10에 도시된 시스템(1000)에서, 프로그래밍 가능한 엔진(910)은 핀 세트들(906, 907) 및 배선(936)을 통해 제2 메모리 칩(926)으로부터 데이터를 판독하고 제2 메모리 칩(926)에 데이터를 기록하기 위해 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성될 수 있다. 제2 메모리 칩(926)의 메모리의 부분(930)에 저장된 데이터는 프로그래밍 가능한 엔진(910)을 갖는 제1 메모리 칩(902)에 의해 또는 이를 통해 액세스될 수 있다. 그러나, 제2 메모리 칩(926)의 메모리의 부분(930)에 저장된 데이터가 제1 메모리 칩(902)을 통해 액세스될 때 이는 버스(1004)를 통해 프로세서 칩(924)에 의해 액세스된다.
도 9에 도시된 실시예와 유사하게, 도 10에 도시된 시스템(1000)에서, 제1 메모리 칩(902)은 핀 세트들(906, 907) 및 배선(936)을 통해 제2 메모리 칩(926)의 메모리의 부분(930)에 데이터를 기록할 뿐만 아니라 제2 메모리 칩(926)의 메모리의 부분(930)으로부터 데이터를 판독할 수 있다. 그러나, 시스템(1000)에서, 제1 메모리 칩(902)(또는 프로세서 칩(924))은 버스(1004)를 통해 제3 메모리 칩(1002)의 메모리의 부분으로부터 데이터를 판독할 수 있을 뿐만 아니라 버스(1004)를 통해 제3 메모리 칩(1002)의 메모리의 부분에 데이터를 기록한다.
일부 실시예에서, 제3 메모리 칩(1002)은 복수의 NVRAM 셀들을 포함하는 NVRAM 칩이거나 이를 포함할 수 있다. 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들이거나 이를 포함할 수 있다. 일부 실시예에서, 제3 메모리 칩(1002)은 복수의 DRAM 셀들을 포함하는 DRAM 칩이거나 이를 포함할 수 있다. 일부 실시예에서, 제3 메모리 칩(1002)은 복수의 플래시 메모리 셀들을 포함하는 플래시 메모리 칩이거나 이를 포함할 수 있다. 복수의 플래시 메모리 셀들은 복수의 NAND형 플래시 메모리 셀들이거나 이를 포함할 수 있다.
도 11은 본 개시내용의 일부 실시예에 따른 프로그래밍 가능한 엔진(910) 및 제2 메모리 칩(926) 및 제3 메모리 칩(1102)에 대한 직접 연결을 갖는 도 9에 도시된 제1 메모리 칩(902)을 포함하는 예시적인 시스템(1100)을 도시한다. 도 11에서, 제1 메모리 칩(902)은 제2 메모리 칩(926)과 제3 메모리 칩(1102) 사이에 있고 이를 분리한다. 시스템(1100)은 SoC이거나 이를 포함하거나 이에 포함될 수 있는 프로세서 칩(1112)을 포함한다. 프로세서 칩(1112)은 제3 메모리 칩(1102)에 직접 연결된다. 제3 메모리 칩(1102)은 프로세서 칩(1112) 및 제1 메모리 칩(902)에 직접 연결된다. 그리고, 제3 메모리 칩(1102)은 제1 메모리 칩(902)과 프로세서 칩(1112) 사이에 있고 이를 분리한다. 다른 말로 하자면, 네 개의 마이크로칩들의 스트링에서 프로세서 칩(1112)은 제1 노드이고, 제3 메모리 칩(1102)은 제2 노드이고, 제1 메모리 칩(902)은 제3 노드이고, 제2 메모리 칩(926)은 제4 노드이다.
도 11에서, 제1 메모리 칩(902)은 제1 메모리 칩(902)이 배선(1106)을 통해 제3 메모리 칩(1102)에 결합되게 하도록 구성된 핀 세트(1104)를 포함한다. 또한 도시된 바와 같이, 제3 메모리 칩(1102)은 제3 메모리 칩(1102)이 배선(1106)을 통해 제1 메모리 칩(902)에 결합되게 하도록 구성된 핀 세트(1105)를 갖는다. 도 9 및 10에 도시된 실시예와 유사하게, 제1 메모리 칩(902)은 또한 제1 메모리 칩(902)이 배선(1106)과 별개인 제2 배선(936)을 통해 제2 메모리 칩(926)에 결합되게 하도록 구성된 제2 핀 세트(906)를 포함한다. 또한 도시된 바와 같이, 제3 메모리 칩(1102)은 제3 메모리 칩(1102)이 배선(1110)을 통해 프로세서 칩(1112)에 결합되게 하도록 구성된 핀 세트(1108)를 갖는다. 그리고, 프로세서 칩(1112)은 프로세서 칩(112)이 배선(1110)을 통해 제3 메모리 칩(1102)에 결합되게 하도록 구성된 핀 세트(1109)를 갖는다.
일부 실시예에서, 제3 메모리 칩(1102)은 복수의 NVRAM 셀들을 포함하는 NVRAM 칩이거나 이를 포함할 수 있다. 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들이거나 이를 포함할 수 있다. 일부 실시예에서, 제3 메모리 칩(1102)은 복수의 DRAM 셀들을 포함하는 DRAM 칩이거나 이를 포함할 수 있다.
다시 말하면, 시스템(1100)은 마이크로칩들의 스트링에서 제1 메모리 칩(902), 제2 메모리 칩(926), 제3 메모리 칩(1102), 및 프로세서 칩(1112)을 포함한다. 마이크로칩들의 스트링에서, 프로세서 칩(1112)은 제3 메모리 칩(1102)을 통해 제1 메모리 칩(902)에 연결된다. 그리고, 제1 메모리 칩(902)은 제2 및 제3 메모리 칩들 사이에 있다. 제1 메모리 칩(902)은 제3 메모리 칩(1102)을 통해 프로세서 칩(1112)으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역(908)을 포함한다. 제1 메모리 칩(902)은 또한 미리 정의된 메모리 영역(908)에 저장된 프로그램 데이터에 따라 제2 메모리 칩(926)으로부터 데이터를 판독하고 제2 메모리 칩(926)에 데이터를 기록하기 위해 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진(910)을 포함한다. 프로세서 칩(1112)은 제3 메모리 칩(1102)을 통해 제1 메모리 칩(902)의 미리 정의된 메모리 영역(908)에 데이터를 기록함으로써 프로그래밍 가능한 엔진(910)을 프로그래밍하도록 구성될 수 있다.
또한, 도 11에 도시된 바와 같이, 제3 메모리 칩(1102)은 제1 메모리 칩(902)에 대한 캐시(1114)를 포함할 수 있다. 이러한 실시예에서, 프로세서 칩(1112)은 제1 메모리 칩(902)에 대한 캐시(1114)를 통해 미리 정의된 메모리 영역(908)에 데이터를 기록함으로써 프로그래밍 가능한 엔진(910)을 프로그래밍하도록 구성될 수 있다.
일반적으로, 도 9 내지 도 11에 도시된 실시예 및 다른 실시예와 관련하여, 제1 메모리 칩(902)은 마이크로칩으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역(908)을 포함한다(예를 들어, 도 9 내지 10에 도시된 프로세서 칩(924) 및 도 11에 도시된 제3 메모리 칩(1102) 참조). 제1 메모리 칩(902)은 또한 미리 정의된 메모리 영역(908)에 저장된 프로그램 데이터에 따라 제2 메모리 칩(926)으로부터 데이터를 판독하고 제2 메모리 칩(926)에 데이터를 기록하기 위해 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진(910)을 포함한다. 그러한 실시예에서, 미리 정의된 메모리 영역(908)은 프로그래밍 가능한 엔진(910)에 대한 커맨드 큐(912)로서 구성된 부분을 포함할 수 있고, 프로그래밍 가능한 엔진(910)은 커맨드 큐(912)에 따라 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성될 수 있다. 또한, 제1 메모리 칩(902)은 커맨드 큐(912)를 제어하도록 구성된 미리 정의된 메모리 영역(908)에 저장된 프로그램 데이터의 일부를 포함할 수 있다. 제1 메모리 칩(902)은 또한 제2 메모리 칩(926)으로 이동할 데이터를 저장하도록 구성된 메모리의 부분(914)을 포함할 수 있고, 메모리의 부분(914)에 저장된 데이터는 커맨드 큐(912)에 따라 이동될 수 있다.
일반적으로, 도 9 내지 도 11에 도시된 실시예 및 다른 실시예와 관련하여, 시스템들(900, 1000, 1100) 중 하나와 같은 시스템은 제1 메모리 칩(902), 제2 메모리 칩(926), 및 마이크로칩(예를 들어, 도 9 내지 10에 도시된 프로세서 칩(924) 및 도 11에 도시된 제3 메모리 칩(1102) 참조)을 포함한다. 그러한 실시예에서, 제1 메모리 칩(902)은 미리 정의된 메모리 영역(908)에 저장된 프로그램 데이터에 따라 제2 메모리 칩(926)으로부터 데이터를 판독하고 제2 메모리 칩(926)에 데이터를 기록하기 위해 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진(910)과 마이크로칩으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역(908)을 포함한다. 마이크로칩은 제1 메모리 칩(902)의 미리 정의된 메모리 영역(908)에 데이터를 기록함으로써 프로그래밍 가능한 엔진(910)을 프로그래밍하도록 구성된다. 유사하게, 그러한 실시예에서, 미리 정의된 메모리 영역(908)은 프로그래밍 가능한 엔진(910)을 위한 커맨드 큐(912)로서 구성된 부분을 포함할 수 있고, 프로그래밍 가능 엔진(910)은 커맨드 큐(912)에 따라 제2 메모리 칩(926)에 대한 액세스를 용이하게 하도록 구성될 수 있다. 또한, 미리 정의된 메모리 영역(908)에 저장된 프로그램 데이터의 부분은 커맨드 큐(912)를 제어하도록 구성될 수 있다. 그리고, 제1 메모리 칩(902)은 제2 메모리 칩(926)으로 이동할 데이터를 저장하도록 구성된 메모리의 부분(914)을 포함할 수 있고, 메모리의 부분(914)에 저장된 데이터는 커맨드 큐(912)에 따라 이동될 수 있다.
이러한 실시예에서, 마이크로칩은 프로세서 칩(예를 들어, 프로세서 칩(924) 참조) 또는 제3 메모리 칩(예를 들어, 제3 메모리 칩(1102) 참조)이다. 마이크로칩이 제3의 메모리칩인 경우, 프로세서 칩(예를 들어, 프로세서 칩(1112) 참조)은 제3 메모리 칩(예를 들어, 제3 메모리 칩(1102) 참조)을 통해 제1 메모리 칩(902)의 미리 정의된 메모리 영역(908)에 데이터를 기록함으로써 프로그래밍 가능한 엔진(910)을 프로그래밍하도록 구성될 수 있다. 그러한 예들에서, 제3 메모리 칩은 제1 메모리 칩(902)에 대한 캐시를 포함할 수 있고(예를 들어, 제1 메모리 칩(902)에 대한 캐시(1114) 참조), 프로세서 칩은 제1 메모리 칩(902)에 대한 캐시(1114)를 통해 제1 메모리 칩(902)의 미리 정의된 메모리 영역(908)에 데이터를 기록함으로써 프로그래밍 가능한 엔진(910)을 프로그래밍하도록 구성될 수 있다.
일부 실시예에서, 제1 메모리 칩(902)의 하나 이상의 인스턴스들(예를 들어, 도 9 내지 11에 도시된 제1 메모리 칩(902)의 상이한 인스턴스들)은 도 1 내지 3에 도시된 메모리 칩들의 스트링(102)의 플랙서블 프로비저닝에서 하나 이상의 메모리 칩들로서 사용될 수 있다. 또한, 제1 메모리 칩(902)의 하나 이상의 인스턴스들은 도 4에 도시된 메모리 칩들의 스트링(402)의 플랙서블 프로비저닝에서 하나 이상의 메모리 칩들로서 사용될 수 있다. 또한, 프로그래밍 가능한 엔진(910)을 갖는 제1 메모리 칩(902)은 도 6 내지 8에 도시된 데이터 이동기(608)를 갖는 메모리 칩(602)이거나 이를 포함하거나 이에 포함될 수 있다. 예를 들어, 프로그래밍 가능한 엔진(910)은 데이터 이동기(608)를 제공할 수 있다.
또한, 시스템들(900, 1000, 1100)의 적어도 일부는 도 1 내지 3에 도시된 메모리 칩들의 스트링(102)에 포함될 수 있다.
일부 실시예에서, 제1 메모리 칩(902)은 메모리 칩들의 스트링(102)에서 제1 메모리 칩(104) 또는 제2 메모리 칩(106)이거나 이를 포함할 수 있다. 이러한 실시예에서, 예를 들어, 프로세서 칩(924 또는 1112)은 도 2에 도시된 프로세서 칩(202) 또는 도 3에 도시된 메모리 제어기 칩(302)이거나 이를 포함할 수 있다. 또한, 일부 실시예에서, 제3 메모리 칩(1102)은 메모리 칩들의 스트링(102)에서 제1 메모리 칩(104) 또는 제2 메모리 칩(106)이거나 이를 포함할 수 있다. 이러한 실시예에서, 예를 들어, 프로세서 칩(924 또는 1112)은 도 2에 도시된 프로세서 칩(202) 또는 도 3에 도시된 메모리 제어기 칩(302)이거나 이를 포함할 수 있다.
일부 실시예에서, 시스템들(900, 1000, 1100) 중 임의의 하나 이상의 메모리 칩들은 도 5에 도시된 메인 메모리(508) 및/또는 데이터 저장 시스템(512)에 포함될 수 있다. 이러한 실시예 및 기타에서, 시스템들(900, 1000, 1100) 중 임의의 하나 이상의 프로세서 칩은 도 5에 도시된 프로세서(506)이거나 그 일부이거나 이를 포함할 수 있다.
메모리 칩(602)과 마찬가지로, 시스템들(900, 1000, 1100) 중 임의의 하나 이상의 메모리 칩들 중 임의의 하나 이상은 메모리 칩으로 또는 이를 통해 이동되는 데이터를 보호하기 위한 암호화 엔진 및/또는 인증 게이트키퍼(예를 들어, 도 8에 도시된 암호화 엔진(802) 및 게이트키퍼(804) 참조)를 포함할 수 있다. 또한, 메모리 칩(602)과 같이, 시스템들(900, 1000, 1100) 중 임의의 하나 이상의 메모리 칩들 중 임의의 하나 이상은 데이터 이동기(608)와 같은 데이터 이동기를 포함할 수 있다.
또한, 본원에 설명된 메모리 칩들 중 임의의 하나는 도 9 내지 11에 도시된 제1 메모리 칩(902)의 하나 이상의 양태를 포함할 수 있다. 예를 들어, 본원에 설명된 메모리 칩들 중 임의의 하나 이상은 미리 정의된 메모리 영역(908), 프로그래밍 가능한 엔진(910), 및 커맨드 큐(912)를 포함할 수 있다.
전술한 명세서에서, 본 개시의 실시예들은 그 특정 예시적인 실시예들을 참조하여 설명되었다. 다음의 청구범위에 기재된 본 개시내용의 실시예의 보다 넓은 사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있음이 명백할 것이다. 따라서, 본원 및 도면은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.
Claims (20)
- 메모리 칩(memory chip)에 있어서,
마이크로칩(microchip)으로부터 전송된 프로그램 데이터(program data)를 저장하도록 구성된 미리 정의된 메모리 영역; 및
상기 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 제2 메모리 칩으로부터 데이터를 판독하고 상기 제2 메모리 칩에 데이터를 기록하기 위해 상기 제2 메모리 칩에 대한 액세스(access)를 용이하게 하도록 구성된 프로그래밍 가능한 엔진(programmable engine)을 포함하는, 메모리 칩. - 제1항에 있어서, 상기 미리 정의된 메모리 영역은 상기 프로그래밍 가능한 엔진에 대한 커맨드 큐(command queue)로서 구성된 부분을 포함하고, 상기 프로그래밍 가능한 엔진은 상기 커맨드 큐에 따라 상기 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성되는, 메모리 칩.
- 제2항에 있어서, 상기 미리 정의된 메모리 영역에 저장된 상기 프로그램 데이터의 부분은 상기 커맨드 큐를 제어하도록 구성되는, 메모리 칩.
- 제3항에 있어서, 상기 제2 메모리 칩으로 이동될 데이터를 저장하도록 구성된 메모리의 부분을 포함하고, 상기 메모리의 부분에 저장된 데이터는 상기 커맨드 큐에 따라 이동되는, 메모리 칩.
- 제4항에 있어서,
상기 메모리 칩이 제1 배선(wiring)을 통해 상기 마이크로칩에 결합될 수 있도록 구성된 제1 핀 세트;
상기 메모리 칩이 상기 제1 배선과 별개인 제2 배선을 통해 상기 제2 메모리 칩에 결합될 수 있도록 구성된 제2 핀 세트를 포함하고; 그리고
상기 프로그래밍 가능한 엔진은 상기 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 상기 제2 핀 세트를 통해 상기 제2 메모리 칩으로부터 데이터를 판독하고 상기 제2 메모리 칩에 데이터를 기록하기 위해 상기 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성되는, 메모리 칩. - 제1항에 있어서, 상기 메모리 칩은 비휘발성 랜덤 액세스 메모리(NVRAM) 칩이고, 상기 메모리 칩은 복수의 NVRAM 셀들을 포함하는, 메모리 칩.
- 제6항에 있어서, 상기 복수의 NVRAM 셀들은 복수의 3D XPoint 메모리 셀들인, 메모리 칩.
- 제1항에 있어서, 상기 메모리 칩은 동적 랜덤 액세스 메모리(DRAM) 칩이고, 상기 메모리 칩은 복수의 DRAM 셀들을 포함하는, 메모리 칩.
- 제1항에 있어서, 상기 메모리 칩은 플래시 메모리 칩이고, 상기 메모리 칩은 복수의 플래시 메모리 셀들을 포함하는, 메모리 칩.
- 시스템에 있어서,
제1 메모리 칩;
제2 메모리 칩; 및
마이크로칩을 포함하고,
상기 제1 메모리 칩은:
상기 마이크로칩으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역; 및
상기 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 상기 제2 메모리 칩으로부터 데이터를 판독하고 상기 제2 메모리 칩에 데이터를 기록하기 위해 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진을 포함하고, 그리고
상기 마이크로칩은 제1 메모리 칩의 상기 미리 정의된 메모리 영역에 데이터를 기록함으로써 상기 프로그래밍 가능한 엔진을 프로그래밍하도록 구성되는, 시스템. - 제10항에 있어서, 상기 미리 정의된 메모리 영역은 상기 프로그래밍 가능한 엔진에 대한 커맨드 큐로서 구성된 부분을 포함하고, 상기 프로그래밍 가능한 엔진은 상기 커맨드 큐에 따라 상기 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성되는, 시스템.
- 제11항에 있어서, 상기 미리 정의된 메모리 영역에 저장된 상기 프로그램 데이터의 부분은 상기 커맨드 큐를 제어하도록 구성되는, 시스템.
- 제12항에 있어서, 상기 제1 메모리 칩은 상기 제2 메모리 칩으로 이동될 데이터를 저장하도록 구성된 메모리의 부분을 포함하고, 상기 메모리의 부분에 저장된 데이터는 상기 커맨드 큐에 따라 이동되는, 시스템.
- 제13항에 있어서, 상기 제1 메모리 칩은:
상기 제1 메모리 칩이 제1 배선을 통해 상기 마이크로칩에 결합될 수 있도록 구성된 제1 핀 세트;
상기 제1 메모리 칩이 상기 제1 배선과 별개인 제2 배선을 통해 상기 제2 메모리 칩에 결합될 수 있도록 구성된 제2 핀 세트를 포함하고; 그리고
상기 프로그래밍 가능한 엔진은 상기 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 상기 제2 핀 세트를 통해 상기 제2 메모리 칩으로부터 데이터를 판독하고 상기 제2 메모리 칩에 데이터를 기록하기 위해 상기 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성되는, 시스템. - 제14항에 있어서, 상기 마이크로칩은 프로세서 칩인, 시스템.
- 제14항에 있어서, 상기 마이크로칩은 제3 메모리 칩인, 시스템.
- 제16항에 있어서, 상기 프로세서 칩은 상기 제3 메모리 칩을 통해 상기 제1 메모리 칩의 상기 미리 정의된 메모리 영역에 데이터를 기록함으로써 상기 프로그래밍 가능한 엔진을 프로그래밍하도록 구성되는, 시스템.
- 제17항에 있어서, 상기 제3 메모리 칩은 상기 제1 메모리 칩을 위한 캐시(cache)를 포함하고, 상기 프로세서 칩은 상기 제1 메모리 칩에 대한 상기 캐시를 통해 상기 제1 메모리 칩의 상기 미리 정의된 메모리 영역에 데이터를 기록함으로써 상기 프로그래밍 가능한 엔진을 프로그래밍하도록 구성되는, 시스템.
- 시스템에 있어서,
제1 메모리 칩;
제2 메모리 칩;
제3 메모리 칩; 및
상기 제3 메모리 칩을 통해 상기 제1 메모리 칩에 연결된 프로세서 칩을 포함하고,
상기 제1 메모리 칩은:
상기 제3 메모리 칩을 통해 상기 프로세서 칩으로부터 전송된 프로그램 데이터를 저장하도록 구성된 미리 정의된 메모리 영역; 및
상기 미리 정의된 메모리 영역에 저장된 프로그램 데이터에 따라 상기 제2 메모리 칩으로부터 데이터를 판독하고 상기 제2 메모리 칩에 데이터를 기록하기 위해 제2 메모리 칩에 대한 액세스를 용이하게 하도록 구성된 프로그래밍 가능한 엔진을 포함하고, 그리고
상기 프로세서 칩은 상기 제3 메모리 칩을 통해 제1 메모리 칩의 상기 미리 정의된 메모리 영역에 데이터를 기록함으로써 상기 프로그래밍 가능한 엔진을 프로그래밍하도록 구성되는, 시스템. - 제19항에 있어서, 상기 제3 메모리 칩은 상기 제1 메모리 칩을 위한 캐시를 포함하고, 상기 프로세서 칩은 상기 제1 메모리 칩에 대한 상기 캐시를 통해 상기 미리 정의된 메모리 영역에 데이터를 기록함으로써 상기 프로그래밍 가능한 엔진을 프로그래밍하도록 구성되는, 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/573,785 US11163490B2 (en) | 2019-09-17 | 2019-09-17 | Programmable engine for data movement |
US16/573,785 | 2019-09-17 | ||
PCT/US2020/049940 WO2021055207A1 (en) | 2019-09-17 | 2020-09-09 | Programmable engine for data movement |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220047839A true KR20220047839A (ko) | 2022-04-19 |
Family
ID=74868617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020227008829A KR20220047839A (ko) | 2019-09-17 | 2020-09-09 | 데이터 이동을 위한 프로그래밍 가능한 엔진 |
Country Status (7)
Country | Link |
---|---|
US (2) | US11163490B2 (ko) |
EP (1) | EP4031979A4 (ko) |
JP (1) | JP2022547730A (ko) |
KR (1) | KR20220047839A (ko) |
CN (1) | CN114521250A (ko) |
TW (1) | TWI772877B (ko) |
WO (1) | WO2021055207A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11163490B2 (en) | 2019-09-17 | 2021-11-02 | Micron Technology, Inc. | Programmable engine for data movement |
US11397694B2 (en) | 2019-09-17 | 2022-07-26 | Micron Technology, Inc. | Memory chip connecting a system on a chip and an accelerator chip |
US11416422B2 (en) | 2019-09-17 | 2022-08-16 | Micron Technology, Inc. | Memory chip having an integrated data mover |
US12019558B2 (en) | 2020-12-15 | 2024-06-25 | Intel Corporation | Logical to physical address indirection table in a persistent memory in a solid state drive |
US12014081B2 (en) * | 2020-12-15 | 2024-06-18 | Intel Corporation | Host managed buffer to store a logical-to physical address table for a solid state drive |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030112613A1 (en) | 2002-10-22 | 2003-06-19 | Hitachi, Ltd. | IC card |
JP2003006041A (ja) | 2001-06-20 | 2003-01-10 | Hitachi Ltd | 半導体装置 |
US20030023958A1 (en) | 2001-07-17 | 2003-01-30 | Patel Mukesh K. | Intermediate language accelerator chip |
US20030212845A1 (en) | 2002-05-07 | 2003-11-13 | Court John William | Method for high-speed data transfer across LDT and PCI buses |
WO2004079583A1 (ja) * | 2003-03-05 | 2004-09-16 | Fujitsu Limited | データ転送制御装置およびdmaデータ転送制御方法 |
US20050086040A1 (en) * | 2003-10-02 | 2005-04-21 | Curtis Davis | System incorporating physics processing unit |
US7739479B2 (en) * | 2003-10-02 | 2010-06-15 | Nvidia Corporation | Method for providing physics simulation data |
US7895411B2 (en) * | 2003-10-02 | 2011-02-22 | Nvidia Corporation | Physics processing unit |
US7210008B2 (en) * | 2003-12-18 | 2007-04-24 | Intel Corporation | Memory controller for padding and stripping data in response to read and write commands |
US7185153B2 (en) * | 2003-12-18 | 2007-02-27 | Intel Corporation | Packet assembly |
US7206915B2 (en) | 2004-06-03 | 2007-04-17 | Emc Corp | Virtual space manager for computer having a physical address extension feature |
US7406634B2 (en) | 2004-12-02 | 2008-07-29 | Cisco Technology, Inc. | Method and apparatus for utilizing an exception handler to avoid hanging up a CPU when a peripheral device does not respond |
US20070165457A1 (en) | 2005-09-30 | 2007-07-19 | Jin-Ki Kim | Nonvolatile memory system |
JP5401444B2 (ja) | 2007-03-30 | 2014-01-29 | ラムバス・インコーポレーテッド | 異なる種類の集積回路メモリ素子を有する階層メモリモジュールを含むシステム |
US7627744B2 (en) * | 2007-05-10 | 2009-12-01 | Nvidia Corporation | External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level |
US8077644B2 (en) | 2007-07-20 | 2011-12-13 | Infineon Technologies Ag | Data transfer in a computing device |
US20090063786A1 (en) | 2007-08-29 | 2009-03-05 | Hakjune Oh | Daisy-chain memory configuration and usage |
US7721010B2 (en) | 2007-10-31 | 2010-05-18 | Qimonda North America Corp. | Method and apparatus for implementing memory enabled systems using master-slave architecture |
US20100217977A1 (en) * | 2009-02-23 | 2010-08-26 | William Preston Goodwill | Systems and methods of security for an object based storage device |
US8219746B2 (en) | 2009-10-08 | 2012-07-10 | International Business Machines Corporation | Memory package utilizing at least two types of memories |
US8131889B2 (en) * | 2009-11-10 | 2012-03-06 | Apple Inc. | Command queue for peripheral component |
US8463984B2 (en) * | 2009-12-31 | 2013-06-11 | Seagate Technology Llc | Dynamic data flow management in a multiple cache architecture |
US8595429B2 (en) | 2010-08-24 | 2013-11-26 | Qualcomm Incorporated | Wide input/output memory with low density, low latency and high density, high latency blocks |
US8726107B2 (en) * | 2011-07-15 | 2014-05-13 | Seagate Technology Llc | Measurement of latency in data paths |
CN107608910B (zh) | 2011-09-30 | 2021-07-02 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
US9256915B2 (en) * | 2012-01-27 | 2016-02-09 | Qualcomm Incorporated | Graphics processing unit buffer management |
US9055069B2 (en) * | 2012-03-19 | 2015-06-09 | Xcelemor, Inc. | Hardware computing system with software mediation and method of operation thereof |
JP5888050B2 (ja) * | 2012-03-27 | 2016-03-16 | 株式会社ソシオネクスト | 半導体集積回路およびそのdma制御方法 |
US9256369B2 (en) * | 2012-04-18 | 2016-02-09 | Samsung Electronics Co., Ltd. | Programmable memory controller |
US9304828B2 (en) | 2012-09-27 | 2016-04-05 | Hitachi, Ltd. | Hierarchy memory management |
US10073626B2 (en) | 2013-03-15 | 2018-09-11 | Virident Systems, Llc | Managing the write performance of an asymmetric memory system |
US9274951B2 (en) | 2013-05-31 | 2016-03-01 | Altera Corporation | Cache memory controller for accelerated data transfer |
WO2015101827A1 (en) | 2013-12-31 | 2015-07-09 | Mosys, Inc. | Integrated main memory and coprocessor with low latency |
US10445025B2 (en) | 2014-03-18 | 2019-10-15 | Micron Technology, Inc. | Apparatuses and methods having memory tier structure and recursively searching between tiers for address in a translation table where information is only directly transferred between controllers |
US10437479B2 (en) | 2014-08-19 | 2019-10-08 | Samsung Electronics Co., Ltd. | Unified addressing and hierarchical heterogeneous storage and memory |
KR102208072B1 (ko) | 2014-09-01 | 2021-01-27 | 삼성전자주식회사 | 데이터 처리 시스템 |
US20170017576A1 (en) | 2015-07-16 | 2017-01-19 | Qualcomm Incorporated | Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications |
US10237350B2 (en) | 2016-04-06 | 2019-03-19 | Reniac, Inc. | System and method for a database proxy |
US10747694B2 (en) * | 2016-06-07 | 2020-08-18 | Ncorium | Multi-level data cache and storage on a memory bus |
US10397337B2 (en) | 2016-07-27 | 2019-08-27 | International Business Machines Corporation | Independent internet connection generation |
US10416896B2 (en) | 2016-10-14 | 2019-09-17 | Samsung Electronics Co., Ltd. | Memory module, memory device, and processing device having a processor mode, and memory system |
US10860244B2 (en) | 2017-12-26 | 2020-12-08 | Intel Corporation | Method and apparatus for multi-level memory early page demotion |
EP3746903B1 (en) * | 2018-01-29 | 2022-03-09 | Micron Technology, Inc. | Memory controller with programmable atomic operations |
KR20190106228A (ko) | 2018-03-08 | 2019-09-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10949356B2 (en) | 2019-06-14 | 2021-03-16 | Intel Corporation | Fast page fault handling process implemented on persistent memory |
US11163490B2 (en) | 2019-09-17 | 2021-11-02 | Micron Technology, Inc. | Programmable engine for data movement |
US11416422B2 (en) | 2019-09-17 | 2022-08-16 | Micron Technology, Inc. | Memory chip having an integrated data mover |
US20210081353A1 (en) | 2019-09-17 | 2021-03-18 | Micron Technology, Inc. | Accelerator chip connecting a system on a chip and a memory chip |
US11397694B2 (en) | 2019-09-17 | 2022-07-26 | Micron Technology, Inc. | Memory chip connecting a system on a chip and an accelerator chip |
US20210081318A1 (en) | 2019-09-17 | 2021-03-18 | Micron Technology, Inc. | Flexible provisioning of multi-tier memory |
-
2019
- 2019-09-17 US US16/573,785 patent/US11163490B2/en active Active
-
2020
- 2020-09-07 TW TW109130608A patent/TWI772877B/zh active
- 2020-09-09 KR KR1020227008829A patent/KR20220047839A/ko unknown
- 2020-09-09 WO PCT/US2020/049940 patent/WO2021055207A1/en unknown
- 2020-09-09 JP JP2022517125A patent/JP2022547730A/ja active Pending
- 2020-09-09 EP EP20866165.2A patent/EP4031979A4/en active Pending
- 2020-09-09 CN CN202080064772.5A patent/CN114521250A/zh active Pending
-
2021
- 2021-10-29 US US17/515,229 patent/US12045503B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
TW202125267A (zh) | 2021-07-01 |
US12045503B2 (en) | 2024-07-23 |
US20220050639A1 (en) | 2022-02-17 |
EP4031979A1 (en) | 2022-07-27 |
WO2021055207A1 (en) | 2021-03-25 |
US11163490B2 (en) | 2021-11-02 |
EP4031979A4 (en) | 2023-09-27 |
TWI772877B (zh) | 2022-08-01 |
US20210081141A1 (en) | 2021-03-18 |
JP2022547730A (ja) | 2022-11-15 |
CN114521250A (zh) | 2022-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20220047839A (ko) | 데이터 이동을 위한 프로그래밍 가능한 엔진 | |
US10275378B2 (en) | Data buffer pointer fetching for direct memory access | |
US10467037B2 (en) | Storage device and user device supporting virtualization function | |
US10613778B2 (en) | Dynamic host memory allocation to a memory controller | |
CN114402307B (zh) | 具有集成数据移动器的存储器芯片 | |
KR20220048020A (ko) | 멀티-계층 메모리의 플랙서블 프로비저닝 | |
US10846017B2 (en) | Secure digital (SD) to NVMe buffer manager | |
JP2022548643A (ja) | システムオンチップ及びメモリチップを接続するアクセラレータチップ | |
US11372543B2 (en) | Zone-append command scheduling based on zone state | |
CN111796759B (zh) | 多平面上的片段数据读取的计算机可读取存储介质及方法 | |
KR102462048B1 (ko) | 이중 slc/qlc 프로그래밍 및 리소스 해제 | |
US20210181980A1 (en) | Storage System and Method for Improving Utilization of a Communication Channel between a Host and the Storage System | |
JP7457342B2 (ja) | データストレージ装置 |