KR20180042111A - 프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼 - Google Patents
프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼 Download PDFInfo
- Publication number
- KR20180042111A KR20180042111A KR1020170093014A KR20170093014A KR20180042111A KR 20180042111 A KR20180042111 A KR 20180042111A KR 1020170093014 A KR1020170093014 A KR 1020170093014A KR 20170093014 A KR20170093014 A KR 20170093014A KR 20180042111 A KR20180042111 A KR 20180042111A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- memory
- command
- address
- input
- Prior art date
Links
Images
Classifications
-
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/0656—Data buffering arrangements
-
- 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/0683—Plurality of storage devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
메모리 모듈은 메모리 장치, 커맨드/어드레스 버퍼링 장치, 프로세싱 데이터 버퍼를 포함한다. 메모리 장치는 메모리 셀 어레이, 제1 커맨드/어드레스 비트들을 수신하는 제1 세트의 입출력 단자들, 및 데이터 비트들 및 제2 커맨드/어드레스 비트들을 수신하는 제2 세트의 입출력 단자들을 포함한다. 커맨드/어드레스 버퍼링 장치는 제1 세트의 입출력 단자들에 제1 커맨드/어드레스 비트들을 출력한다. 프로세싱 데이터 버퍼는 제2 세트의 입출력 단자들에 데이터 비트들 및 제2 커맨드/어드레스 비트들을 출력한다. 메모리 장치는, 제1 커맨드/어드레스 비트들, 제2 커맨드/어드레스 비트들 및 데이터 비트들은 모두 메모리 셀 어레이를 액세스하는 데에 이용되도록 구성된다. 이에 따라, 본 발명의 실시예들에 따른 메모리 모듈은 메모리 모듈 표준에 따른 메모리 채널에 연결될 수 있고, 메모리 장치의 구조적 변경 없이 PIM(Processing In Memory) 구조로 구현될 수 있다.
Description
본 발명은 반도체 메모리 장치에 관한 것으로, 보다 상세하게는 프로세서 모드를 가지는 메모리 모듈, 상기 메모리 모듈에 포함된 프로세싱 데이터 버퍼, 및 상기 메모리 모듈을 포함하는 메모리 시스템에 관한 것이다.
종래의 컴퓨팅 시스템 구조에서는, 명령어(또는 프로그램) 및 데이터가 호스트 프로세서로부터 이격된 메모리 장치에 저장되고, 상기 명령어에 기초하여 상기 데이터에 대한 데이터 처리를 수행하기 위해서는 상기 명령어 및 상기 데이터가 전송되어 한다. 이에 따라, 호스트 프로세서의 처리 속도가 증가하더라도, 호스트 프로세서와 메모리 장치 사이의 데이터 전송 속도가 성능 향상의 장애물(bottleneck)으로 작용하여 컴퓨팅 시스템의 처리량(throughput)을 제한할 수 있다. 이러한 문제를 해결하도록, 프로세서 로직이 메모리 셀들에 밀접하게 결합된 PIM(Processing In Memory) 장치가 개발되었다. 이러한 PIM 장치는 데이터 처리 속도 및 데이터 전송 속도를 증가시킬 수 있다.
본 발명의 일 목적은 메모리 모듈 표준에 따른 메모리 채널에 연결될 수 있고, 메모리 장치의 구조적 변경 없이 PIM(Processing In Memory) 구조로 구현될 수 있는 메모리 모듈을 제공하는 것이다.
본 발명의 다른 목적은 메모리 모듈 표준에 따른 메모리 채널에 연결될 수 있고, 메모리 장치의 구조적 변경 없이 PIM 구조를 가지는 메모리 모듈에 포함된 프로세싱 데이터 버퍼를 제공하는 것이다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 메모리 모듈은 메모리 장치, 커맨드/어드레스 버퍼링 장치 및 프로세싱 데이터 버퍼를 포함한다. 상기 메모리 장치는 메모리 셀 어레이, 제1 커맨드/어드레스 비트들을 수신하는 제1 세트의 입출력 단자들, 및 데이터 비트들 및 제2 커맨드/어드레스 비트들을 수신하는 제2 세트의 입출력 단자들을 포함한다. 상기 커맨드/어드레스 버퍼링 장치는 상기 제1 세트의 입출력 단자들에 상기 제1 커맨드/어드레스 비트들을 출력한다. 상기 프로세싱 데이터 버퍼는 상기 제2 세트의 입출력 단자들에 상기 데이터 비트들 및 상기 제2 커맨드/어드레스 비트들을 출력한다. 상기 메모리 장치는, 상기 제1 커맨드/어드레스 비트들, 상기 제2 커맨드/어드레스 비트들 및 상기 데이터 비트들은 모두 상기 메모리 셀 어레이를 액세스하는 데에 이용되도록 구성된다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 메모리 모듈은 복수의 메모리 장치들, 커맨드/어드레스 버퍼링 장치 및 복수의 프로세싱 데이터 버퍼들을 포함한다. 상기 복수의 메모리 장치들 각각은 메모리 셀 어레이, 제1 커맨드/어드레스 비트들을 수신하는 제1 세트의 입출력 단자들, 및 데이터 비트들 및 제2 커맨드/어드레스 비트들을 수신하는 제2 세트의 입출력 단자들을 포함한다. 상기 커맨드/어드레스 버퍼링 장치는 상기 제1 세트의 입출력 단자들에 상기 제1 커맨드/어드레스 비트들을 출력한다. 상기 복수의 프로세싱 데이터 버퍼들 각각은, 상기 복수의 메모리 장치들 중 상응하는 메모리 장치의 데이터 버퍼로서 동작하는 것, 및 상기 상응하는 메모리 장치로부터 수신된 데이터에 대한 처리 동작들을 수행하는 프로세서로서 동작하는 것을 전환한다.
상술한 본 발명의 다른 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 메모리 모듈에 포함된 프로세싱 데이터 버퍼는 데이터 버퍼부, 프로세서부, 상기 데이터 버퍼부 및 상기 프로세서부에 연결되고, 상기 데이터 버퍼부 또는 상기 프로세서부를 선택하는 선택 회로, 상기 선택 회로와 상기 데이터 버퍼부 사이에 연결된 복수의 제1 입출력 라인들, 상기 선택 회로와 상기 프로세서부 사이에 연결된 복수의 제2 입출력 라인들, 상기 데이터 버퍼부에 연결되고, 상기 프로세싱 데이터 버퍼의 외부와 통신을 위한 제1 세트의 입출력 단자들, 및 상기 선택 회로에 연결되고, 상기 프로세싱 데이터 버퍼의 외부와 통신을 위한 제2 세트의 입출력 단자들을 포함한다.
본 발명의 실시예들에 따른 메모리 모듈은, 일반 모드에서 메모리 모듈 표준에 따른 데이터 버퍼들로서 동작하는 복수의 프로세싱 장치들을 포함함으로써, 일반 모드에서 메모리 모듈 표준에 따른 일반 메모리 모듈의 역할을 할 수 있고, 메모리 모듈 표준에 따른 메모리 채널에 연결될 수 있다. 또한, 본 발명의 실시예들에 따른 메모리 모듈에서, 상기 복수의 프로세싱 장치들이 프로세서 모드에서 상기 복수의 프로세싱 장치들에 직접 연결된 복수의 메모리 장치들에 저장된 데이터에 대한 데이터 처리를 수행하고, 이에 따라 메모리 모듈을 포함하는 컴퓨팅 시스템의 데이터 처리 속도 및 데이터 처리량이 향상될 수 있다. 게다가, 본 발명의 실시예들에 따른 메모리 모듈은 메모리 장치의 구조적 변경 없이 PIM(Processing In Memory) 구조로 구현됨으로써, 상기 메모리 장치 및 상기 메모리 모듈이 다양한 어플리케이션들에 적용될 수 있는 범용성을 가지고, 용이하게 양산될 수 있다.
본 발명의 실시예들에 따른 메모리 모듈을 포함하는 메모리 시스템은 메모리 모듈 표준에 따른 메모리 채널에 연결될 수 있는 상기 메모리 모듈을 포함한다. 이에 따라, 상기 메모리 채널에 연결되는 상기 메모리 모듈의 수를 증가시킴으로써, 상기 메모리 시스템의 저장 용량이 용이하게 증가될 수 있다. 또한, 본 발명의 실시예들에 따른 메모리 시스템에서, 각 메모리 모듈에 포함된 복수의 프로세싱 장치들이 병렬적으로 데이터 처리를 수행함으로써, 상기 메모리 시스템은 향상된 데이터 처리 성능을 가질 수 있고, 또한 상기 메모리 모듈의 수를 증가시킴으로써 상기 메모리 시스템의 데이터 처리 성능이 용이하게 더욱 향상될 수 있다.
도 1a는 본 발명의 실시예들에 따른 일반 모드에서의 메모리 모듈을 나타내는 블록도이고, 도 1b는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 2a는 메모리 모듈에 포함된 복수의 프로세싱 장치들에 프로세서 모드의 진입 및 종료를 알리는 일 예를 설명하기 위한 도면이고, 도 2b는 메모리 모듈에 포함된 복수의 프로세싱 장치들에 프로세서 모드의 진입 및 종료를 알리는 다른 예를 설명하기 위한 도면이다.
도 3a는 메모리 모듈에 포함된 복수의 프로세싱 장치들이 프로세서 상태 레지스터들에 동작 상태 정보를 기입하는 일 예를 설명하기 위한 도면이고, 도 3b는 메모리 컨트롤러가 프로세서 상태 레지스터들에 저장된 동작 상태 정보를 독출하는 일 예를 설명하기 위한 도면이다.
도 4는 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 메모리 장치의 일 예를 나타내는 도면이다.
도 5는 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 메모리 장치의 다른 예를 나타내는 도면이다.
도 6은 도 4의 메모리 장치의 데이터 핀들을 통하여 전송되는 신호의 일 예를 나타내는 타이밍도이다.
도 7은 도 5의 메모리 장치의 데이터 핀들을 통하여 전송되는 신호의 일 예를 나타내는 타이밍도이다.
도 8은 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 프로세싱 장치의 일 예를 나타내는 블록도이다.
도 8a는 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 프로세싱 장치의 다른 예를 나타내는 블록도이다.
도 9는 도 8의 프로세싱 장치에 포함된 프로세서의 일 예를 나타내는 블록도이다.
도 10은 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 프로세싱 장치의 다른 예를 나타내는 블록도이다.
도 11a는 본 발명의 실시예들에 따른 도 10의 프로세싱 장치를 포함하는 메모리 모듈의 일반 모드에서의 데이터 전송을 설명하기 위한 도면이고, 도 11b는 본 발명의 실시예들에 따른 도 10의 프로세싱 장치를 포함하는 메모리 모듈의 프로세서 모드에서의 데이터 전송을 설명하기 위한 도면이다.
도 12는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 13은 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 14는 프로세서 모드에서의 도 13의 메모리 모듈의 동작을 설명하기 위한 타이밍도이다.
도 15는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 16a는 본 발명의 실시예들에 따른 일반 모드에서의 메모리 모듈을 나타내는 블록도이고, 도 16b는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 17은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 18은 본 발명의 실시예들에 따른 메모리 시스템에서 수행되는 비트 배열 변경을 설명하기 위한 도면이다.
도 19은 비트 배열 변경을 수행하는 호스트 프로세서를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 20은 비트 배열 변경을 수행하는 비트 셔플러를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 21은 본 발명의 실시예들에 따른 비휘발성 듀얼 인라인 메모리 모듈(non-volatile dual in-line memory module; NVDIMM)을 나타내는 블록도이다.
도 2a는 메모리 모듈에 포함된 복수의 프로세싱 장치들에 프로세서 모드의 진입 및 종료를 알리는 일 예를 설명하기 위한 도면이고, 도 2b는 메모리 모듈에 포함된 복수의 프로세싱 장치들에 프로세서 모드의 진입 및 종료를 알리는 다른 예를 설명하기 위한 도면이다.
도 3a는 메모리 모듈에 포함된 복수의 프로세싱 장치들이 프로세서 상태 레지스터들에 동작 상태 정보를 기입하는 일 예를 설명하기 위한 도면이고, 도 3b는 메모리 컨트롤러가 프로세서 상태 레지스터들에 저장된 동작 상태 정보를 독출하는 일 예를 설명하기 위한 도면이다.
도 4는 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 메모리 장치의 일 예를 나타내는 도면이다.
도 5는 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 메모리 장치의 다른 예를 나타내는 도면이다.
도 6은 도 4의 메모리 장치의 데이터 핀들을 통하여 전송되는 신호의 일 예를 나타내는 타이밍도이다.
도 7은 도 5의 메모리 장치의 데이터 핀들을 통하여 전송되는 신호의 일 예를 나타내는 타이밍도이다.
도 8은 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 프로세싱 장치의 일 예를 나타내는 블록도이다.
도 8a는 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 프로세싱 장치의 다른 예를 나타내는 블록도이다.
도 9는 도 8의 프로세싱 장치에 포함된 프로세서의 일 예를 나타내는 블록도이다.
도 10은 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 프로세싱 장치의 다른 예를 나타내는 블록도이다.
도 11a는 본 발명의 실시예들에 따른 도 10의 프로세싱 장치를 포함하는 메모리 모듈의 일반 모드에서의 데이터 전송을 설명하기 위한 도면이고, 도 11b는 본 발명의 실시예들에 따른 도 10의 프로세싱 장치를 포함하는 메모리 모듈의 프로세서 모드에서의 데이터 전송을 설명하기 위한 도면이다.
도 12는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 13은 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 14는 프로세서 모드에서의 도 13의 메모리 모듈의 동작을 설명하기 위한 타이밍도이다.
도 15는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 16a는 본 발명의 실시예들에 따른 일반 모드에서의 메모리 모듈을 나타내는 블록도이고, 도 16b는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 17은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이다.
도 18은 본 발명의 실시예들에 따른 메모리 시스템에서 수행되는 비트 배열 변경을 설명하기 위한 도면이다.
도 19은 비트 배열 변경을 수행하는 호스트 프로세서를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 20은 비트 배열 변경을 수행하는 비트 셔플러를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 21은 본 발명의 실시예들에 따른 비휘발성 듀얼 인라인 메모리 모듈(non-volatile dual in-line memory module; NVDIMM)을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1a는 본 발명의 실시예들에 따른 일반 모드에서의 메모리 모듈을 나타내는 블록도이고, 도 1b는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 1a 및 도 1b를 참조하면, 메모리 모듈(100)은 각각이 커맨드/어드레스 핀들(CAP) 및 데이터 핀들(DQP)을 구비하는 복수의 메모리 장치들(111-118), 복수의 메모리 장치들(111-118)의 커맨드/어드레스 핀들(CAP)에 연결된 커맨드/어드레스 버퍼링 장치(130), 및 각각이 복수의 메모리 장치들(111-118) 중 상응하는 메모리 장치의 데이터 핀들(DAP)에 연결된 복수의 프로세싱 장치들(151-158)을 포함한다. 커맨드/어드레스 버퍼링 장치(130)는 커맨드/어드레스 버스(CA_BUS)를 통하여 메모리 컨트롤러에 연결되고, 복수의 프로세싱 장치들(151-158)은 데이터 버스(DQ_BUS)를 통하여 상기 메모리 컨트롤러에 연결된다.
커맨드/어드레스 핀들(CAP)이 일반적으로 한 세트의 입출력 단자들(또는 입출력 단자들의 세트)로 불릴 수 있고, 데이터 핀들(DQP) 또한 일반적으로 한 세트의 입출력 단자들(또는 입출력 단자들의 세트)로 불릴 수 있다. 일부 실시예들에서, 상기 입출력 단자들의 서로 다른 세트들은 제1, 제2 또는 제3 세트의 입출력 단자들로 불릴 수 있다. 이러한 입출력 단자들은 메모리 장치들(111-118)과 메모리 장치들(111-118) 외부의 장치들 사이에서 신호들을 송신 및/또는 수신하기 위한 것들이다. 커맨드/어드레스 입출력 단자들(CAP)은, 다양한 것들 중, 제1 커맨드/어드레스 비트들(예를 들어, 커맨드 및/또는 어드레스 비트들)을 수신하기 위한 제1 세트의 입출력 단자의 일 수 있다. 따라서, 커맨드/어드레스 입출력 단자들(CAP)은 커맨드/어드레스 버퍼링 장치(130)내의 회로와, 상응하는 메모리 장치내의 커맨드/어드레스를 처리하기 위한 회로 사이에서 커맨드 및/또는 어드레스 신호들을 통신하도록 연결된다. 데이터 입출력 단자들(DQP)은, 다양한 것들 중, 데이터 비트들 및 제2 커맨드/어드레스 비트들 모두를 수신하기 위한 제2 세트의 입출력 단자들일 수 있다. 데이터 입출력 단자들(DQP)은 상응하는 프로세싱 장치내의 회로와, 상응하는 메모리 장치내의 회로 사이에서 데이터 및 커맨드/어드레스 신호들 모두를 통신하도록 연결된다. 이러한 특징들이 보다 상세히 후술될 것이다.
일반 모드(또는 일반 동작 모드)에서, 메모리 모듈(100)은, 도 1a에 도시된 바와 같이, 상기 메모리 컨트롤러로부터 수신된 커맨드/어드레스 신호(CMD/ADDR)에 응답하여, 상기 메모리 컨트롤러로부터 수신된 데이터(DAT1)를 복수의 메모리 장치들(111-118)에 기입하거나, 복수의 메모리 장치들(111-118)로부터 상기 메모리 컨트롤러에 데이터(DAT1)를 독출할 수 있다.
예를 들어, 상기 일반 모드에서, 커맨드/어드레스 버퍼링 장치(130)는 상기 메모리 컨트롤러로부터 커맨드/어드레스 버스(CA_BUS)를 통하여 커맨드/어드레스 신호(CMD/ADDR)를 수신하고, 수신된 커맨드/어드레스 신호(CMD/ADDR)를 버퍼링하며, 복수의 메모리 장치들(111-118)의 커맨드/어드레스 핀들(CAP)에 동일한 버퍼링된 커맨드/어드레스 신호(CMD/ADDR)를 출력 및 제공할 수 있다. 한편, 커맨드/어드레스 버퍼링 장치(130)는 커맨드/어드레스 신호(CMD/ADDR)를 버퍼링하여 커맨드/어드레스 신호(CMD/ADDR)의 신호 무결성(signal integrity)를 향상시키고 커맨드/어드레스 신호(CMD/ADDR)에 대한 상기 메모리 컨트롤러가 겪는 부하를 감소시킬 수 있으며, 레지스터 클록 드라이버(Registering Clock Driver; RCD), 또는 간단히 커맨드/어드레스 버퍼로 불릴 수 있다. 일 실시예에서, 커맨드/어드레스 버퍼링 장치(130)는 메모리 모듈 표준, 예를 들어 DDR4 LRDIMM(Double Data Rate 4 Load Reduction Dual In-Line Memory Module) 표준에 따른 레지스터 클록 드라이버일 수 있다.
커맨드/어드레스 신호(CMD/ADDR)가 라이트 커맨드를 나타내는 경우, 복수의 프로세싱 장치들(또한, 여기서, 프로세싱 데이터 버퍼들이라 불림)(151-158)은 상기 메모리 컨트롤러로부터 데이터 버스(DQ_BUS)를 통하여 데이터(DAT1)(예를 들어, 데이터 비트들)를 수신하고, 수신된 데이터(DAT1)를 버퍼링하며, 복수의 메모리 장치들(111-118)에 데이터(DAT1)가 기입되도록 복수의 메모리 장치들(111-118)의 데이터 핀들(DQP)에 데이터(DAT1)를 출력 및 제공할 수 있다. 한편, 복수의 메모리 장치들(111-118)이 상기 일반 모드에서 동일한 커맨드/어드레스 신호(CMD/ADDR)를 수신하므로, 데이터(DAT1)는 각각의 메모리 장치들(111-118)에서 동일한 어드레스 또는 동일한 위치에 기입될 수 있다. 일부 실시예들에서, 여기에 개시된 상기 프로세싱 장치들(예를 들어, 프로세싱 데이터 버퍼들)(151-158)은 반도체 칩들(예를 들어, 웨이퍼로부터 형성된 다이들), 또는 반도체 패키지들(예를 들어, 패키지 기판 상에 패키징되고 봉합재에 의해 봉합된 하나 이상의 다이들)일 수 있다. 이와 유사하게, 일부 실시예들에서, 여기에 개시된 메모리 장치들(111-118)은 반도체 칩들 또는 반도체 패키지들일 수 있다.
커맨드/어드레스 신호(CMD/ADDR)가 리드 커맨드를 나타내는 경우, 복수의 프로세싱 장치들(151-158)은 복수의 메모리 장치들(111-118)에서 독출된 데이터(DAT1)를 데이터 핀들(DQP)을 통하여 수신하고, 수신된 데이터(DAT1)를 버퍼링하며, 데이터 버스(DQ_BUS)를 통하여 상기 메모리 컨트롤러에 데이터(DAT1)를 제공할 수 있다. 한편, 복수의 메모리 장치들(111-118)이 상기 일반 모드에서 동일한 커맨드/어드레스 신호(CMD/ADDR)를 수신하므로, 데이터(DAT1)는 각각의 메모리 장치들(111-118)의 동일한 어드레스 또는 동일한 위치에서, 예를 들어 동시에, 독출될 수 있다.
이와 같이, 복수의 프로세싱 장치들(151-158)은, 상기 일반 모드에서, 상기 메모리 컨트롤러와 복수의 메모리 장치들(111-118) 사이에서 전송되는 데이터(DAT1)를 버퍼링하는 데이터 버퍼들로서 동작할 수 있다. 일 실시예에서, 복수의 프로세싱 장치들(151-158)은 메모리 모듈 표준, 예를 들어 DDR4 LRDIMM 표준에 따른 데이터 버퍼들로서 동작할 수 있다. 복수의 프로세싱 장치들(151-158)이 상기 데이터 버퍼들로서 동작함으로써, 데이터(DAT1)의 신호 무결성이 향상될 수 있고, 데이터(DAT1)에 대한 상기 메모리 컨트롤러가 겪는 부하를 감소될 수 있다.
상술한 바와 같이, 본 발명의 실시예들에 따른 메모리 모듈(100)은 메모리 모듈 표준에 따른 커맨드/어드레스 버퍼링 장치(130) 및 메모리 모듈 표준에 따른 상기 데이터 버퍼들로서 동작하는 복수의 프로세싱 장치들(151-158)을 포함함으로써, 상기 일반 모드에서 메모리 모듈 표준에 따른 일반 메모리 모듈(예를 들어, DDR4 LRDIMM)의 역할을 할 수 있고, 메모리 모듈 표준에 따른 메모리 채널에 연결될 수 있다.
메모리 모듈(100)은 상기 메모리 컨트롤러로부터 (예를 들어, 도 2a에 도시된 바와 같이 커맨드/어드레스 버스(CA_BUS)를 통하여, 도 2b에 도시된 바와 같이 데이터 버스(DQ_BUS)를 통하여, 또는 다른 제어 라인을 통하여)(또한, 후술되는 도 8, 도 8a 및 도 13 참조) 프로세서 모드(또는 프로세서 동작 모드)로의 진입을 지시 받고, 상기 프로세서 모드로 동작할 수 있다. 상기 프로세서 모드에서, 메모리 모듈(100)은, 도 1b에 도시된 바와 같이, 복수의 메모리 장치들(111-118)에 저장된 데이터(DAT2)에 대한 데이터 처리를 수행할 수 있다. 예를 들어, 상기 프로세서 모드에서, 각 프로세싱 장치(예를 들어, 151)는 복수의 메모리 장치들(111-118) 중 상기 상응하는 프로세싱 장치(예를 들어, 151)에 연결된 메모리 장치(예를 들어, 111)에 저장된 데이터(DAT2)에 대한 데이터 처리를 수행할 수 있다. 상기 데이터 처리는 산술 연산 및/또는 논리 연산을 포함하는 임의의 데이터 처리로서, 예를 들어 그래픽 데이터 처리, 인-메모리 데이터베이스(in-memory database) 데이터 처리, 실시간 분석 데이터 처리 등을 포함할 수 있다. 상기 데이터 처리의 결과들은, 예를 들어 데이터 버스(DQ_BUS)를 통하여, 상기 메모리 컨트롤러로 돌려보내거나, 상기 메모리 장치(들)에 저장될 수 있다. 상술한 바와 같이, 일부 실시예들에서, 한 세트의 입출력 단자들(예를 들어, DQP 핀들)은 메모리 모듈(100)의 일반 모드(또는 일반 동작 모드) 동안 데이터 단자들의 역할을 하여 프로세싱 장치 또는 다수의 프로세싱 장치들이 데이터 버퍼로서 동작할 수 있고, 메모리 모듈(100)의 프로세서 모드(또는 프로세서 동작 모드) 동안 커맨드 및 어드레스 단자들의 역할을 하여 상기 프로세싱 장치 또는 다수의 프로세싱 장치들이 상응하는 메모리 장치 또는 메모리 장치들에 저장된 데이터에 대한 산술 및/또는 논리 연산들을 수행할 수 있다. 이러한 방식으로, 상기 프로세싱 장치들 각각은 상응하는 메모리 장치에 대한 데이터 버퍼로서 동작하는 것과 상기 상응하는 메모리 장치로부터 수신된 데이터에 대한 처리 동작들을 수행하기 위한 프로세서로서 동작하는 것을 전환할 수 있다. 상기 일반 동작 모드는 또한 여기서 데이터 버퍼 모드로 불릴 수 있다.
또한, 상기 프로세서 모드에서, 복수의 프로세싱 장치들(151-158)은 병렬적으로 데이터 처리를 수행할 수 있고, 복수의 메모리 장치들(111-118)은 서로 독립적으로 데이터 독출 동작 및/또는 데이터 독출 동작을 수행할 수 있다. 예를 들어, 상기 프로세서 모드에서, 복수의 메모리 장치들(111-118)의 서로 다른 어드레스들 또는 서로 다른 상대적 위치들에서 데이터(DAT2)가 독출 또는 기입될 수 있다. 복수의 프로세싱 장치들(151-158)이 복수의 메모리 장치들(111-118)의 서로 다른 어드레스들의 데이터(DAT2)를 액세스하도록, 복수의 프로세싱 장치들(151-158)은 복수의 서로 다른 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)을 각각 생성하고, 복수의 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)을 복수의 메모리 장치들(111-118)에 각각 제공할 수 있다.
도 1b에 도시된 실시예들에서, 각 프로세싱 장치(예를 들어, 151)는 상기 프로세싱 장치(예를 들어, 151)에 연결된 메모리 장치(예를 들어, 111)의 데이터 핀들(DQP)을 통하여 상기 프로세싱 장치(예를 들어, 151)에서 생성된 커맨드/어드레스 신호(예를 들어, CMD/ADDR1)를 상응하는 메모리 장치(예를 들어, 111)에 제공할 수 있다. 일부 실시예들에서, 상기 커맨드/어드레스 신호(CMD/ADDR1)는, 프로세서 모드 진입 신호를 수신하면 어떠한 커맨드/어드레스 신호들을 생성하도록 프리프로그램된 것일 수 있는, 상기 프로세싱 장치(예를 들어, 151)에 의해 생성될 수 있다. 예를 들어, 프로세서 모드 진입 신호는, 메모리 컨트롤러로부터, 일 실시예에서, 상기 DQ_BUS를 통하여 상기 프로세싱 장치로 직접(도 2b 및 도 8 참조) 수신될 수 있다. 이에 응답하여, 상기 프로세싱 장치(151)는, 하나 이상의 프리프로그램된 커맨드/어드레스 신호들(CMD/ADDR1)이 상기 상응하는 메모리 장치(111)로 전송되는, 프로세서 모드로 진입할 수 있다. 이와 달리, 메모리 컨트롤러가, 프로세서 모드 진입 신호와, 상기 프로세싱 장치(151)가 상기 상응하는 메모리 장치(111)로 전송할 추가적인 커맨드/어드레스 신호를 모두 포함하는 신호를 전송할 수 있다.
다른 실시예에서, 도 2a, 도 8a 및 도 13을 참조하여 후술되는 바와 같이, 프로세서 모드 진입 신호, 또는 추가적인 커맨드/어드레스 신호를 가진 프로세서 모드 진입 신호는 메모리 컨트롤러로부터 커맨드/어드레스 버퍼링 장치(130)에서 수신될 수 있고, 이어서 상기 신호가, 예를 들어 제어 버스(BCOM_BUS)를 통하여, 상기 커맨드/어드레스 버퍼링 장치(130)로부터 직접 상기 프로세싱 장치(151)로 전달/전송될 수 있다. 일 실시예에서, 각 프로세싱 장치(예를 들어, 151)는 상응하는 메모리 장치(예를 들어, 111)에 데이터 핀들(DQP)을 통하여 시분할 방식으로 데이터(DAT2)를 송수신하거나, 커맨드/어드레스 신호(예를 들어, CMD/ADDR1)를 송신할 수 있다. 예를 들어, 각 프로세싱 장치(예를 들어, 151)는 일 시간 구간 동안 데이터 핀들(DQP)을 커맨드/어드레스 신호(예를 들어, CMD/ADDR1)를 송신하기 위한 핀들로 이용하고, 다른 시간 구간 동안 데이터 핀들(DQP)을 데이터(DAT2)를 송수신하기 위한 핀들로 이용할 수 있고, 여기서 상기 일 및 다른 시간 구간들은 상기 프로세서 모드의 구간의 일부이다. 다른 실시예에서, 각 프로세싱 장치(예를 들어, 151)는 상응하는 메모리 장치(예를 들어, 111)에 데이터 핀들(DQP)을 통하여 공간분할 방식으로 데이터(DAT2)를 송수신하거나, 커맨드/어드레스 신호(예를 들어, CMD/ADDR1)를 송신할 수 있다. 예를 들어, 각 프로세싱 장치(예를 들어, 151)는 데이터 핀들(DQP)의 일부를 커맨드/어드레스 신호(예를 들어, CMD/ADDR1)를 송신하기 위한 핀들로 이용하고, 데이터 핀들(DQP)의 나머지를 데이터(DAT2)를 송수신하기 위한 핀들로 이용할 수 있다. 이는 보다 상세히 후술될 것이다. 따라서, 상기 프로세서 모드 동안, 데이터 및 커맨드/어드레스 신호들 모두가, 프로세싱 장치들(151-158)에 의해 수행되는 데이터 처리 동작의 일부로서, 메모리 장치들(111-118)과 상응하는 프로세싱 장치들(151-158) 사이에서 전송될 수 있다.
도 1a 및 도 1b를 참조하여 상술한 바와 같이, 프로세싱 데이터 버퍼(예를 들어, 프로세싱 장치들(151-158) 각각)은 상응하는 메모리 장치들의 한 세트의 입출력 단자들(DQP)에 데이터 비트들 및 커맨드/어드레스 비트들 모두를 출력하도록 구성될 수 있고, 상기 상응하는 메모리 장치들로부터 데이터 비트들을 더욱 수신할 수 있다. 이러한 방식으로, 각 메모리 장치는, (예를 들어, 일반 동작 동안 CAP 핀들로부터 수신되는) 제1 커맨드/어드레스 비트들, (예를 들어, 프로세서 동작 동안 DQP 핀들로부터 수신되는) 제2 커맨드/어드레스 비트들, 및 (예를 들어, 일반 동작 및 프로세서 동작 모두에서 DQP 핀들로부터 수신되는) 데이터 비트들이 메모리 셀 어레이를 액세스하도록 모두 이용되도록 구성될 수 있다.
한편, 종래의 PIM(Processing In Memory) 장치를 포함하는 메모리 모듈은, 메모리 모듈 표준에 따른 메모리 채널에 연결되는 일반 메모리 모듈과는 달리, 메모리 컨트롤러와 일대일(Point-to-Point; P-to-P) 방식으로 연결된다. 이에 따라, 상기 메모리 모듈을 포함하는 컴퓨팅 시스템에서 데이터 저장 공간의 용량을 증가시키기 위해서는, 메모리 모듈의 수뿐만 아니라 메모리 컨트롤러들 및 메모리 채널들의 수를 증가시켜야 한다. 그러나, 본 발명의 실시예들에 따른 메모리 모듈(100)은, 상기 일반 모드에서 메모리 모듈 표준에 따른 데이터 버퍼들로서 동작하는 복수의 프로세싱 장치들(151-158)을 포함함으로써, 상기 일반 모드에서 메모리 모듈 표준에 따른 일반 메모리 모듈의 역할을 할 수 있고, 메모리 모듈 표준에 따른 메모리 채널에 연결될 수 있다. 이에 따라, 본 발명의 실시예들에 따른 메모리 모듈(100)을 포함하는 컴퓨팅 시스템에서는, 상기 메모리 채널에 연결되는 메모리 모듈(100)의 수만을 증가시킴으로써 데이터 저장 공간의 용량이 용이하게 증가될 수 있다.
또한, 종래의 PIM(Processing In Memory) 장치는 메모리와 프로세서 로직이 동일한 다이에 구현되거나, 메모리 다이 상에 프로세서 로직 다이가 적층되어 구현되었다. 이에 따라, 하나의 특정한 응용을 위한 프로세서 로직을 포함하는 PIM 장치는 다른 응용에 활용되지 못하고, 이에 따라 종래의 PIM 장치는 양산에 적합하지 못하다. 그러나, 본 발명의 실시예들에 따른 메모리 모듈(100)은 메모리 모듈의 레이아웃과 관련하여 메모리 장치(111-118)의 구조적 변경 없이 PIM(Processing In Memory) 구조(architecture)(또는 NDP(Near Data Processing) 구조로 불릴 수 있음)로 구현됨으로써, 메모리 장치(111-118) 및 메모리 모듈(100)이 다양한 어플리케이션들에 적용될 수 있는 범용성을 가지고, 용이하게 양산될 수 있다.
게다가, 본 발명의 실시예들에 따른 메모리 모듈(100)에서, 복수의 프로세싱 장치들(151-158)이 상기 프로세서 모드에서 복수의 프로세싱 장치들(151-158)에 직접 연결된 복수의 메모리 장치들(111-118)에 저장된 데이터(DAT2)에 대한 병렬 데이터 처리를 수행하고, 이에 따라 메모리 모듈(100)을 포함하는 컴퓨팅 시스템의 데이터 처리 속도 및 데이터 처리량이 향상될 수 있다.
한편, 도 1a 및 도 1b에는 8 개의 메모리 장치들(111-118)을 포함하는 메모리 모듈(100)의 예가 도시되어 있으나, 실시예에 따라, 메모리 모듈(100)은 임의의 수의 메모리 장치들을 포함할 수 있다. 예를 들어, 메모리 모듈(100)은 4개 내지 36개의 메모리 장치들을 포함할 수 있다. 한편, 64 비트의 데이터 워드를 이용하는 컴퓨팅 시스템의 일 예에서, 메모리 모듈(100)은 각각이 상기 데이터 워드의 8 비트를 저장하는 8 개의 메모리 장치들(111-118)과 8 비트의 에러 정정 코드(Error Correction Code; ECC)를 저장하는 1 개의 메모리 장치를 포함하여 9 개의 메모리 장치들을 포함할 수 있다.
또한, 도 1a 및 도 1b에는 일 실시예에서 8 개의 메모리 장치들(111-118)을 포함하는 하나의 메모리 랭크를 포함하는 메모리 모듈(100)의 예가 도시되어 있으나, 실시예에 따라, 메모리 모듈(100)은 임의의 수의 메모리 랭크들을 포함할 수 있고, 예를 들어 4개까지의 메모리 랭크들을 포함할 수 있다. 이 경우, 각 프로세싱 장치(예를 들어, 151)는 1개 내지 4개의 메모리 장치들(예를 들어, 111)에 직접 연결될 수 있다.
각 프로세싱 장치(예를 들어, 151) 및 상응하는 메모리 장치(예를 들어, 111)는 서로 다른 집적 회로들 (예를 들어, 별개의 칩들) 또는 서로 다른 패키지들로 구현될 수 있다. 다만, 일부 실시예들에서, 각 프로세싱 장치(예를 들어, 151) 및 상응하는 메모리 장치(예를 들어, 111)가 단일한 집적 회로 (예를 들어, 칩) 또는 (예를 들어, 외부 DQP 핀들이 상기 프로세싱 장치 및 상기 메모리 장치를 위한 신호들을 수신하고, 상기 칩 또는 패키지 내의 별개의 채널이 상기 프로세싱 장치와 상기 메모리 장치 사이에서 신호들을 전송하는) 단일한 패키지로 구현될 수 있다.
도 2a는 메모리 모듈에 포함된 복수의 프로세싱 장치들에 프로세서 모드의 진입 및 종료를 알리는 일 예를 설명하기 위한 도면이고, 도 2b는 메모리 모듈에 포함된 복수의 프로세싱 장치들에 프로세서 모드의 진입 및 종료를 알리는 다른 예를 설명하기 위한 도면이며, 도 3a는 메모리 모듈에 포함된 복수의 프로세싱 장치들이 프로세서 상태 레지스터들에 동작 상태 정보를 기입하는 일 예를 설명하기 위한 도면이고, 도 3b는 메모리 컨트롤러가 프로세서 상태 레지스터들에 저장된 동작 상태 정보를 독출하는 일 예를 설명하기 위한 도면이다.
도 2a를 참조하면, 일 실시예에서, 메모리 모듈(100)은 메모리 컨트롤러(105)로부터 커맨드/어드레스 버스(CA_BUS)를 통하여 프로세서 모드로의 진입을 지시 받을 수 있다. 일 실시예에서, 커맨드/어드레스 버스(CA_BUS)는 메모리 컨트롤러로부터 수신된 비트들을 커맨드/어드레스 버퍼링 장치(130)로 전송하도록 구성된 버스일 수 있다. 예를 들어, 메모리 컨트롤러(105)는 커맨드/어드레스 버스(CA_BUS)를 통하여 커맨드/어드레스 신호로서 상기 프로세서 모드로의 진입을 지시하는 프로세서 모드 진입 커맨드(PMODE_ENTRY_CMD)를 전송할 수 있다. 커맨드/어드레스 버퍼링 장치(130)는 프로세서 모드 진입 커맨드(PMODE_ENTRY_CMD)에 응답하여 커맨드/어드레스 버퍼링 장치(130)와 복수의 프로세싱 장치들(151-158) 사이의 제어 버스(BCOM_BUS)를 통하여 복수의 프로세싱 장치들(151-158)에 프로세서 모드 진입 신호(SPM_ENTRY)를 전송하고, 복수의 프로세싱 장치들(151-158)은 프로세서 모드 진입 신호(SPM_ENTRY)에 응답하여 프로세서 모드로 동작할 수 있다. 제어 버스(BCOM_BUS)의 일 예가 메모리 모듈과 관련된 도 13에 또한 도시되어 있고, 프로세싱 장치와 관련된 도 8a에 또한 도시되어 있다. 일 실시예에서, 커맨드/어드레스 버퍼링 장치(130)와 복수의 프로세싱 장치들(151-158) 사이의 제어 버스(BCOM_BUS)는 버퍼 제어 커맨드 및 상태 정보를 전송하기 위한, 예를 들어 4비트의 비트 폭을 가진, 버퍼 통신(Buffer Communication; BCOM) 버스일 수 있다. (도 2a에 도시되어 있으나 도 1a 또는 도 1b에는 도시되지 않은) 상기 BCOM 버스는 커맨드/어드레스 버퍼링 장치(130) 및 프로세싱 장치들(151-158) 모두에 직접 연결될 수 있고, 도 1a 및 도 1b에 도시된 것에 추가적인 버스일 수 있다(예를 들어, 도 13 참조).
도 2b를 참조하면, 다른 실시예에서, 메모리 모듈(100)은 메모리 컨트롤러(105)로부터 데이터 버스(DQ_BUS)를 통하여 프로세서 모드로의 진입을 지시 받을 수 있다. 일 실시예에서, 데이터 버스(DQ_BUS)는 메모리 컨트롤러로부터 수신된 비트들을 상기 프로세싱 데이터 버퍼, 또는 복수의 프로세싱 데이터 버퍼들에 전송하도록 구성된 버스일 수 있다. 예를 들어, 메모리 컨트롤러(105)는 데이터 버스(DQ_BUS)를 통하여 프로세서 모드 진입 커맨드의 일부로서 상기 프로세서 모드로의 진입을 지시하는 프로세서 모드 진입 데이터(PMODE_ENTRY_DAT)를 전송할 수 있다. 복수의 프로세싱 장치들(151-158)은 프로세서 모드 진입 데이터(PMODE_ENTRY_DAT)에 응답하여 프로세서 모드로 동작할 수 있다. 이후에, 프로세서 모드 종료 커맨드와 같은 후속의 모드 커맨드가 메모리 컨트롤러(105)로부터 (일 예에서) 데이터 버스(DQ_BUS)를 통하여 프로세싱 장치들(151-158)에 전송될 수 있다. 상기 프로세서 모드 종료 커맨드는 프로세싱 장치들(151-158)에 프로세싱 장치들로서 동작하는 것을 중지하고 데이터 버퍼 모드로 동작하는 것에 재-진입할 것을 명령할 수 있다.
또 다른 실시예에서, 메모리 모듈(100)은 메모리 컨트롤러(105)로부터 커맨드/어드레스 버스(CA_BUS)의 라인들 및 데이터 버스(DQ_BUS)의 라인들이 아닌 다른 제어 라인을 통하여 프로세서 모드 진입 신호를 수신할 수 있고, 메모리 모듈(100)은 상기 프로세서 모드 진입 신호에 응답하여 프로세서 모드로 동작할 수 있다.
일 실시예에서, 메모리 모듈(100)이 상기 프로세서 모드로 동작하면, 메모리 컨트롤러(105)는 메모리 모듈(100)의 동작 상태, 특히 메모리 모듈(100)에 포함된 복수의 프로세싱 장치들(151-158)의 동작 상태를 체크할 수 있다.
도 3a에 도시된 바와 같이, 복수의 메모리 장치들(111-118) 각각은 모드 레지스터들(mode registers) 중 하나로서 프로세서 상태 레지스터(120)를 포함할 수 있고, 각 프로세싱 장치(예를 들어, 151)는, 상기 프로세서 모드에서, 상응하는 메모리 장치(예를 들어, 111)에 포함된 프로세서 상태 레지스터(120)에 동작 상태 정보(OSI)를 제공할 수 있다. 예를 들어, 각 프로세싱 장치(예를 들어, 151)는 커맨드/어드레스 신호(예를 들어, 도 1b의 CMD/ADDR1)로서 프로세서 상태 레지스터(120)에 동작 상태 정보(OSI)를 기입하는 커맨드를 상응하는 메모리 장치(예를 들어, 111)에 전송하여 프로세서 상태 레지스터(120)에 동작 상태 정보(OSI)가 저장되도록 할 수 있다.
또한, 도 3b에 도시된 바와 같이, 메모리 컨트롤러(105)는, 상기 프로세서 모드에서, 복수의 프로세싱 장치들(151-158)의 동작 상태 정보(OSI)를 (예를 들어, 주기적으로) 수신할 수 있다. 예를 들어, 상기 프로세서 모드에서, 복수의 메모리 장치들(111-118)은 메모리 컨트롤러(105)로부터 커맨드/어드레스 버스(CA_BUS) 및 커맨드/어드레스 버퍼링 장치(130)를 통하여 프로세서 상태 리드 커맨드(PST_READ_CMD)를 수신하고, 프로세서 상태 리드 커맨드(PST_READ_CMD)에 응답하여 메모리 컨트롤러(105)에 복수의 프로세싱 장치들(151-158) 및 데이터 버스(DQ_BUS)를 통하여 프로세서 상태 레지스터(120)에 저장된 동작 상태 정보(OSI)를 전송할 수 있다. 일 실시예에서, 메모리 컨트롤러(105)가 동작 상태 정보(OSI)를 수신하는 동안, 복수의 프로세싱 장치들(151-158)은 데이터 처리를 중단하고, 데이터 버퍼들로서 동작할 수 있다. 한편, 도 3a 및 도 3b에는 복수의 프로세싱 장치들(151-158)의 동작 상태 정보(OSI)가 복수의 메모리 장치들(111-118)에 포함된 프로세서 상태 레지스터(120)에 저장되는 예가 도시되어 있으나, 다른 실시예에서, 복수의 프로세싱 장치들(151-158)은 컨트롤 버스(BCOM_BUS)를 통하여 커맨드/어드레스 버퍼링 장치(130)에 동작 상태 정보(OSI)를 제공하고, 커맨드/어드레스 버퍼링 장치(130)가 동작 상태 정보(OSI)를 저장할 수 있다.
한편, 메모리 컨트롤러(105)가 동작 상태 정보(OSI)에 기초하여 복수의 프로세싱 장치들(151-158)에 의한 데이터 처리가 완료된 것으로 판단하거나, 또는 메모리 모듈(100)이 일반 모드로 동작하는 것이 필요한 것으로 판단한 경우, 메모리 컨트롤러(105)는 메모리 모듈(100)에 상기 프로세서 모드의 종료를 지시할 수 있다. 일 실시예에서, 도 2a에 도시된 바와 같이, 메모리 컨트롤러(105)는 커맨드/어드레스 버스(CA_BUS)를 통하여 프로세서 모드 종료 커맨드(PMODE_EXIT_CMD)를 전송하고, 커맨드/어드레스 버퍼링 장치(130)는 프로세서 모드 종료 커맨드(PMODE_EXIT_CMD)에 응답하여 제어 버스(BCOM_BUS)를 통하여 복수의 프로세싱 장치들(151-158)에 프로세서 모드 종료 신호(SPM_EXIT)를 전송하며, 복수의 프로세싱 장치들(151-158)은 프로세서 모드 종료 신호(SPM_EXIT)에 응답하여 일반 모드로 동작할 수 있다. 다른 실시예에서, 도 2b에 도시된 바와 같이, 메모리 컨트롤러(105)는 데이터 버스(DQ_BUS)를 통하여 프로세서 모드 종료 데이터(PMODE_EXIT_DAT)를 전송하고, 복수의 프로세싱 장치들(151-158)은 프로세서 모드 종료 데이터(PMODE_EXIT_DAT)에 응답하여 일반 모드로 동작할 수 있다. 또 다른 실시예에서, 메모리 모듈(100)은 메모리 컨트롤러(105)로부터 커맨드/어드레스 버스(CA_BUS)의 라인들 및 데이터 버스(DQ_BUS)의 라인들이 아닌 다른 제어 라인을 통하여 프로세서 모드 종료 신호를 수신할 수 있고, 메모리 모듈(100)은 상기 프로세서 모드 종료 신호에 응답하여 일반 모드로 동작할 수 있다.
도 4는 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 메모리 장치의 일 예를 나타내는 도면이다.
도 4를 참조하면, 메모리 장치(111a)(예를 들어, 도 1a 및 도 1b의 메모리 모듈(100)에 포함된 메모리 장치들(111-118) 각각)는 커맨드/어드레스 핀들(예를 들어, 제1 세트의 입출력 단자들) (CAP), 커맨드/어드레스 핀들(CAP)과 주변 회로(170)를 연결하는 커맨드/어드레스 경로(또한 채널로 설명되거나, 라인들로 설명됨)(160), 데이터 핀들(예를 들어, 제2 세트의 입출력 단자들) (DQP), 데이터 핀들(DQP)과 주변 회로(170)를 연결하는 데이터 경로(또한 채널로 설명되거나, 라인들로 설명됨) (165), 주변 회로(170), 메모리 셀 어레이(180) 및 경로 선택부(190a)를 포함할 수 있다.
메모리 셀 어레이(180)는 데이터를 저장하는 복수의 메모리 셀들을 포함할 수 있다. 일 실시예에서, 상기 메모리 셀들은 DRAM(Dynamic Random Access Memory) 셀들이고, 메모리 장치(111a)는 DRAM 장치일 수 있다. 다른 실시예에서, 메모리 장치(111a)는 SRAM(Static Random Access Memory) 장치, TRAM(Thyristor Random Access Memory) 장치와 같은 휘발성 메모리 장치이거나, 플래시 메모리 장치, FRAM(Ferroelectric Random Access Memory) 장치, MRAM(Magneto-resistive Random Access Memory) 장치, PRAM(Phase-change Random Access Memory)와 같은 비휘발성 메모리 장치일 수 있다. 주변 회로(170)는, 커맨드/어드레스 경로(160)를 통하여 수신된 커맨드/어드레스 신호(CMD/ADDR)에 응답하여, 데이터 경로(165)를 통하여 수신된 데이터(DAT)를 메모리 셀 어레이(180)에 기입하거나, 메모리 셀 어레이(180)로부터 데이터(DAT)를 리드하여 데이터 경로(165)를 통하여 출력할 수 있다.
일반 모드에서, 메모리 장치(111a)는 도 1a의 커맨드/어드레스 버퍼링 장치(130)로부터 커맨드/어드레스 핀들(CAP)에서 커맨드/어드레스 신호(CMD/ADDR)를 수신할 수 있다. 커맨드/어드레스 신호(CMD/ADDR)는 커맨드/어드레스 경로(160)를 통하여 주변 회로(170)의 커맨드 디코더(171) 및 어드레스 레지스터(173)에 전송될 수 있다. 커맨드 디코더(171)는 커맨드/어드레스 신호(CMD/ADDR)에 포함된 커맨드를 디코딩하고, 주변 회로(170)는 디코딩된 커맨드에 상응하는 동작을 수행할 수 있다.
일 예에서, 상기 디코딩된 커맨드가 데이터 라이트 커맨드를 나타내는 경우, 메모리 장치(111a)는 도 1a의 프로세싱 장치(151)로부터 데이터 핀들(DQP)에서 데이터(DAT)를 수신할 수 있다. 한편, 경로 선택부(190a)는, 상기 일반 모드에서, 데이터 핀들(DQP)을 데이터 경로(165)에 연결할 수 있다. 이에 따라, 데이터 핀들(DQP)에서 수신된 데이터(DAT)가 데이터 경로(165)를 통하여 주변 회로(170)의 데이터 입출력 버퍼(175)에 제공될 수 있다. 주변 회로(170)는 어드레스 레지스터(173)에 저장된 어드레스에 위치한 메모리 셀 어레이(180)의 메모리 셀들에 데이터 입출력 버퍼(175)에 일시적으로 저장된 데이터(DAT)를 기입할 수 있다.
다른 예에서, 상기 디코딩된 커맨드가 데이터 리드 커맨드를 나타내는 경우, 주변 회로(170)는 어드레스 레지스터(173)에 저장된 어드레스에 위치한 메모리 셀 어레이(180)의 메모리 셀들로부터 데이터(DAT)를 독출하고, 독출된 데이터(DAT)를 데이터 입출력 버퍼(175)에 일시적으로 저장할 수 있다. 한편, 경로 선택부(190a)가, 상기 일반 모드에서, 데이터 핀들(DQP)을 데이터 경로(165)에 연결하므로, 데이터 입출력 버퍼(175)에 일시적으로 저장된 데이터(DAT)는 데이터 경로(165) 및 데이터 핀들(DQP)을 통하여 도 1a의 프로세싱 장치(151)로 출력될 수 있다.
프로세서 모드에서, 메모리 장치(111a)는 데이터 핀들(DQP)에서, 시분할 방식으로, 도 1b의 프로세싱 장치(151)로부터 커맨드/어드레스 신호(CMD/ADDR1)를 수신하거나, 도 1b의 프로세싱 장치(151)에 데이터(DAT)를 송수신할 수 있다. 경로 선택부(190a)는, 상기 프로세서 모드에서, 데이터 핀들(DQP)을 데이터 경로(165) 또는 커맨드/어드레스 경로(160)에 선택적으로 연결할 수 있다. 일 실시예에서, 경로 선택부(190a)는 (디)멀티플렉서, 또는 유사한 동작을 가진 다른 회로로 구현될 수 있다. 또한, 일 실시예에서, 경로 선택부(190a)는 상기 선택적 연결을 제어하기 위한 선택 신호를 도 1b의 프로세싱 장치(151)로부터 메모리 장치(111a)의 (예를 들어, 커맨드/어드레스 핀들(CAP) 및 데이터 핀들(DQP)과 다른) 임의의 핀을 통하여 수신할 수 있다.
예를 들어, 메모리 장치(111a)는, 일 시간 구간 동안, 도 1b의 프로세싱 장치(151)로부터 데이터 핀들(DQP)을 통하여 커맨드/어드레스 신호(CMD/ADDR1)를 수신할 수 있다. 상기 시간 구간 동안, 경로 선택부(190a)는 데이터 핀들(DQP)을 커맨드/어드레스 경로(160)에 연결할 수 있다. 이에 따라, 커맨드/어드레스 신호(CMD/ADDR1)는 커맨드/어드레스 경로(160)를 통하여 주변 회로(170)의 커맨드 디코더(171) 및 어드레스 레지스터(173)에 전송될 수 있다. 일 실시예에서, 메모리 장치(111a)는 커맨드/어드레스 신호(CMD/ADDR1)를 일시적으로 저장하는 커맨드/어드레스 버퍼(195a)를 더 포함할 수 있다. 한편, 일 예에서, 데이터 핀들(DQP)의 수는 커맨드/어드레스 핀들(CAP)의 수보다 적을 수 있고, 에에 따라, 커맨드/어드레스 신호(CMD/ADDR1)는 데이터 핀들(DQP)을 통하여 복수의 클록 사이클들 동안 수신될 수 있다. 커맨드/어드레스 버퍼(195a)는 상기 복수의 클록 사이클들 동안 커맨드/어드레스 신호(CMD/ADDR1)를 일시적으로 저장하고, 온전한 커맨드/어드레스 신호(CMD/ADDR1)가 저장되면 커맨드/어드레스 신호(CMD/ADDR1)를 커맨드/어드레스 경로(160)에 제공할 수 있다.
상기 시간 구간 후 다른 시간 구간 동안 (예를 들어, 상기 프로세서 모드에서의 제2 시간 구간 동안), 경로 선택부(190a)는 데이터 핀들(DQP)을 데이터 경로(165)에 연결할 수 있다. 이에 따라, 커맨드/어드레스 신호(CMD/ADDR1)가 데이터 라이트 커맨드를 나타내는 경우, 메모리 장치(111a)는 도 1b의 프로세싱 장치(151)로부터 데이터 핀들(DQP), 경로 선택부(190a) 및 데이터 경로(165)를 통하여 수신된 데이터(DAT)를 저장할 수 있고, 커맨드/어드레스 신호(CMD/ADDR1)가 데이터 리드 커맨드를 나타내는 경우, 저장된 데이터(DAT)를 데이터 경로(165), 경로 선택부(190a) 및 데이터 핀들(DQP)을 통하여 도 1b의 프로세싱 장치(151)에 출력할 수 있다.
상술한 바와 같이, 메모리 장치(111a)는, 데이터 핀들(DQP)을 데이터 경로(165) 또는 커맨드/어드레스 경로(160)에 선택적으로 연결하는 경로 선택부(190a)를 이용하여, 상기 프로세서 모드에서 시분할 방식으로, 도 1b의 프로세싱 장치(151)로부터 데이터 핀들(DQP)을 통하여 커맨드/어드레스 신호(CMD/ADDR1)를 수신하거나, 도 1b의 프로세싱 장치(151)에 데이터 핀들(DQP)을 통하여 데이터(DAT)를 송수신할 수 있다. 이러한 방식에서, 경로 선택부(190a)는 제2 세트의 입출력 단자들(예를 들어, DQP 핀들)에서 수신된 비트들을 (예를 들어, 내부 커맨드/어드레스 경로를 통하여) 커맨드 디코더(171) 및 어드레스 레지스터(173)에 전송할지, (예를 들어, 내부 데이터 경로를 통하여) 데이터 입출력 버퍼(175)에 전송할지를 선택하도록 구성된 선택 회로일 수 있다.
도 5는 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 메모리 장치의 다른 예를 나타내는 도면이다.
도 5를 참조하면, 메모리 장치(111b)에서, 데이터 핀들(DQP)의 일부에 연결된 라인들(DQL1)이 경로 선택부(190b)에 의해 커맨드/어드레스 경로(160) 또는 데이터 경로(165)에 선택적으로 연결되고, 데이터 핀들(DQP)의 나머지에 연결된 라인들(DQL2)은 데이터 경로(165)에 연결 또는 포함될 수 있다. 경로 선택부(190b)는 일반 모드에서 데이터 핀들(DQP)의 일부에 연결된 라인들(DQL1)을 데이터 경로(165)에 연결하고, 프로세서 모드에서 데이터 핀들(DQP)의 일부에 연결된 라인들(DQL1)을 커맨드/어드레스 경로(160)에 연결할 수 있다. 즉, 상기 일반 모드에서 데이터 핀들(DQP)이 데이터(DAT)용 핀들로 이용되고, 상기 프로세서 모드에서, 데이터 핀들(DQP)은, 공간분할 방식으로, 데이터(DAT) 송수신용 핀들 및 커맨드/어드레스 신호(CMD/ADDR1) 수신용 핀들로 구분될 수 있다. 메모리 장치(111b)는, 데이터 핀들(DQP)을 공간분할 방식으로 데이터(DAT) 및 커맨드/어드레스 신호(CMD/ADDR1)용 핀들로 이용하는 것을 제외하고, 도 4의 메모리 장치(111a)와 유사한 구성 및 동작을 가질 수 있다. 일 실시예에서, 메모리 장치(111b)에서는, 커맨드/어드레스 신호(CMD/ADDR1)가 전체 데이터 핀들(DQP)을 통하여 수신되는 도 4의 메모리 장치(111a)와 달리, 커맨드/어드레스 신호(CMD/ADDR1)가 데이터 핀들(DQP)의 일부를 통하여 수신되므로, 도 4의 메모리 장치(111a)에 비하여 보다 많은 클록 사이클들 동안 커맨드/어드레스 신호(CMD/ADDR1)가 수신될 수 있고, 커맨드/어드레스 버퍼(195b)는 상기 보다 많은 클록 사이클들 동안 커맨드/어드레스 신호(CMD/ADDR1)를 저장하고, 온전한 커맨드/어드레스 신호(CMD/ADDR1)가 저장되면 커맨드/어드레스 신호(CMD/ADDR1)를 커맨드/어드레스 경로(160)에 제공할 수 있다. 따라서, 이러한 실시예에서의 상기 DQP 핀들은 메모리 장치(111b)의 제2 세트 및 제3 세트의 입출력 단자들을 포함할 수 있다. 상기 제2 세트는, 상기 프로세싱 장치가 데이터 버퍼로서 동작하도록 상기 메모리 모듈의 일반 동작 모드 동안 데이터 단자들로 역할을 하고, 상기 프로세싱 장치가 메모리 장치(111b)에 저장된 데이터에 대한 산술 및/또는 논리 연산들을 수행하도록 상기 메모리 모듈의 프로세서 동작 모드 동안 커맨드 및 어드레스 단자들로 역할을 하는 라인들(DQL1)에 연결된 세트를 포함한다. 상기 제3 세트는, 데이터 입출력 버퍼(175)에 연결되고, 상기 일반 동작 모드 동안 및 상기 프로세서 동작 모드 동안 모두에서 데이터 단자들로 역할을 하는 라인들(DQL2)에 연결된 세트를 포함한다.
도 6은 도 4의 메모리 장치의 데이터 핀들을 통하여 전송되는 신호의 일 예를 나타내는 타이밍도이다, 도 7은 도 5의 메모리 장치의 데이터 핀들을 통하여 전송되는 신호의 일 예를 나타내는 타이밍도이다.
도 4 및 도 6을 참조하면, 프로세서 모드에서, 데이터 핀들(DQP) 상의 신호(DQ[0:7])로서 데이터 리드 커맨드(RD)를 나타내는 커맨드/어드레스 신호(CMD/ADDR1)가 수신될 수 있다. 메모리 장치(111a)는 데이터 리드 커맨드(RD)에 응답하여 데이터 핀들(DQP) 상의 신호(DQ[0:7])로서 데이터(DAT)를 출력할 수 있다. 일 예에서, 메모리 장치(111a)는 8의 버스트 길이(BL8)로 데이터(DAT)를 출력할 수 있다. 이 때, 데이터 핀들(DQP)이 커맨드/어드레스 신호(CMD/ADDR1) 수신용 핀들에서 데이터(DAT) 송신용 핀들로 천이(transition)하기 위하여 일정한 시간(TINT1) 동안 데이터 핀들(DQP)이 이용되지 못할 수 있다. 또한, 데이터 핀들(DQP) 상의 신호(DQ[0:7])로서 데이터(DAT)를 출력된 후, 일정한 시간(TINT2)이 지난 후에, 메모리 장치(111a)는 데이터 핀들(DQP)을 통하여 다음 커맨드/어드레스 신호(CMD/ADDR1)(예를 들어, RD)를 수신할 수 있다.
도 5 및 도 7을 참조하면, 데이터 핀들(DQP) 중 일부 상의 신호(DQ[0:3])로서 커맨드/어드레스 신호(CMD/ADDR1)(예를 들어, 데이터 리드 커맨드(RD))가 수신될 수 있다. 한편, 도 5의 메모리 장치(111b)에서는, 프로세서 모드에서, 데이터 핀들(DQP) 중 일부가 커맨드/어드레스 신호(CMD/ADDR1)용 핀들로만 이용되고, 데이터 핀들(DQP) 중 나머지가 데이터(DAT)용 핀들로만 이용되므로, 메모리 장치(111b)는, 도 6에서와 같은 일정 시간(TINT1)의 대기 없이, 데이터 핀들(DQP) 중 나머지 상의 신호(DQ[4:7])로서 데이터(DAT)를 출력할 수 있다. 다만, 도 5의 메모리 장치(111b)는, 도 4의 메모리 장치(111a)에 비하여 보다 적은 수의 핀들을 이용하여 커맨드/어드레스 신호(CMD/ADDR1)를 수신하므로, 커맨드/어드레스 신호(CMD/ADDR1)(예를 들어, 데이터 리드 커맨드(RD))를 수신하는 시간이 도 4의 메모리 장치(111a)에 비하여 길 수 있고, 또한, 도 5의 메모리 장치(111b)는, 도 4의 메모리 장치(111a)에 비하여 보다 적은 수의 핀들을 이용하여 데이터(DAT)를 송수신하므로, 데이터(DAT)를 송수신하는 시간이 도 4의 메모리 장치(111a)에 비하여 길 수 있다. 예를 들어, 데이터 핀들(DQP)이 8개이고, 도 5의 메모리 장치(111b)에서 데이터 핀들(DQP) 중 4개가 데이터(DAT)용 핀들로 이용되며, 도 4의 메모리 장치(111a)가 8의 버스트 길이(BL8)로 데이터(DAT)를 출력할 때, 동일한 크기의 데이터(DAT)를 출력하기 위하여, 도 5의 메모리 장치(111b)는 16의 버스트 길이(BL16)로 데이터(DAT)를 출력할 수 있다.
도 8은 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 프로세싱 장치의 일 예를 나타내는 블록도이고, 도 9는 도 8의 프로세싱 장치에 포함된 프로세서의 일 예를 나타내는 블록도이다.
도 8을 참조하면, 프로세싱 장치(151a)(예를 들어, 도 1a 및 도 1b의 메모리 모듈(100)에 포함된 프로세싱 장치들(151-158) 각각)는 메모리 컨트롤러와 상응하는 메모리 장치 사이에서 전송되는 제1 데이터(DAT1)를 버퍼링하는 데이터 버퍼(210), 상기 메모리 장치에 저장된 제2 데이터(DAT2)에 대한 데이터 처리를 수행하는 프로세서(230), 및 일반 모드에서 상기 메모리 장치와 데이터 버퍼(210)를 연결하고, 프로세서 모드에서 상기 메모리 장치와 프로세서(230)를 연결하는 제어부(예를 들어, 제어 회로)(250)를 포함할 수 있다.
제어부(250)는 상기 메모리 장치의 데이터 핀들(DQP)을 데이터 버퍼(210) 또는 프로세서(230)에 선택적으로 연결하기 위한 (디)멀티플렉서(270) 및 (디)멀티플렉서(270)를 제어하기 위한 제어 로직(290)을 포함할 수 있다. 또한, 제어 로직(290)은 프로세싱 장치(151a)의 전체적인 동작을 제어할 수 있다.
데이터 버퍼(210)는 메모리 모듈 표준에 따른 데이터 버퍼일 수 있다. 데이터 버퍼(210)는 데이터 버스(DQ_BUS)에 연결되고, 상기 일반 모드에서 제어부(250)에 의해 상기 메모리 장치의 데이터 핀들(DQP)에 연결될 수 있다. 데이터 버퍼(210)는, 상기 일반 모드에서, 데이터 핀들(DQP)과 데이터 버스(DQ_BUS) 사이에서 전송되는 제1 데이터(DAT1)를 버퍼링할 수 있다. 일 실시예에서, 데이터 버퍼(210)는 동기화 회로, 신호 증폭기, 입출력 회로 등을 포함할 수 있다. 프로세싱 장치(151a)의 데이터 버퍼부로 또한 불리는 데이터 버퍼(210)는, 데이터 버퍼(210)에서 수신된 데이터와 동일한 데이터가 데이터 버퍼(210)로부터 출력되도록, 데이터를 저장 및 전송할 수 있다. 일반 모드, 즉 일반 동작 모드는 또한 여기서 데이터 버퍼 모드로 불릴 수 있다. 이러한 모드 동안, 데이터 버퍼(230)는 데이터 버스(DQ_BUS)와 데이터 핀들(DQP) 사이에서 전송되는 데이터에 대한 동작을 수행할 수 있다. 제1 데이터(DQT1)는 멀티플렉서(270)와 같은 선택 회로와 데이터 버퍼부(210) 사이에 연결된 복수의 제1 입출력 라인들을 통하여 데이터 버퍼(210)와 제어부(250) 사이에서 프로세싱 장치(151a)내에서 내부적으로 전송될 수 있다.
프로세서(230)는 상기 프로세서 모드에서 제어부(250)에 의해 상기 메모리 장치의 데이터 핀들(DQP)에 연결될 수 있다. 프로세서(230)는, 상기 프로세서 모드에서, 프로세서 모드 진입 커맨드와 같은 컨트롤러-생성 커맨드를, 예를 들어 상기 커맨드/어드레스 버퍼링 장치(130) 및 상응하는 메모리 장치 및 DQP 핀들을 통하여 우선 수신하거나, 또는 DQ_BUS, 데이터 버퍼(210) 및 멀티플렉서(270)를 통하여 메모리 컨트롤러로부터 직접 수신할 수 있다. 이에 응답하여, 프로세서(230)는 데이터 핀들(DQP)에 (도 6에 도시된 바와 같이 시분할 방식으로 또는 도 7에 도시된 바와 같이 공간분할 방식으로) 커맨드/어드레스 신호(CMD/ADDR1)를 전송하고, 상기 메모리 장치의 데이터 핀들(DQP)로부터 상기 메모리 장치에 저장된 제2 데이터(DAT2)를 수신할 수 있다. 예를 들어, 커맨드/어드레스 신호(CMD/ADDR1)는 메모리 컨트롤러로부터의 커맨드에 기초한 것이거나, 메모리 컨트롤러로부터의 프로세서 모드 진입 커맨드와 같은 커맨드에 응답하여 생성된 것일 수 있다. 프로세서(230)는 수신된 제2 데이터(DAT2)에 대한 산술 연산 및/또는 논리 연산을 포함하는 임의의 데이터 처리를 수행할 수 있다. 또한, 프로세서(230)는 커맨드/어드레스 신호(CMD/ADDR1)를 전송하고, 제2 데이터(DAT2)로서 상기 데이터 처리의 결과를 데이터 핀들(DQP)에 제공하여, 상기 데이터 처리의 결과가 상기 메모리 장치에 기입되도록 하거나, DQ_BUS를 통하여 출력할 수 있다. 실시예들에 따라, 프로세서(230)는 중앙 처리 장치(CPU), 마이크로 컨트롤러, 마이크로프로세서, 하드웨어 가속기, 또는 임의의 데이터 처리 장치일 수 있다.
일 실시예에서, 프로세서(230)는, 도 9에 도시된 바와 같이, 명령어 버퍼(231), 레지스터 파일(233), 산술 논리 장치(235), 프로세서 제어부(237) 및 인터커넥트(239)를 포함할 수 있다. 명령어 버퍼(231)는 상기 메모리 장치의 데이터 핀들(DQP)로부터 (디)멀티플렉서(270)를 통하여 제2 데이터(DAT2)로서 명령어(INST)를 수신하여 일시적으로 저장할 수 있다. 예를 들어, 명령어(INST)는 프로세서(230)에 의해 수행될 데이터 처리를 나타내는 기계어일 수 있다. 레지스터 파일(233)은 상기 메모리 장치의 데이터 핀들(DQP)로부터 (디)멀티플렉서(270)를 통하여 제2 데이터(DAT2)로서 입력 데이터(RDAT)를 수신하여 일시적으로 저장할 수 있다. 산술 논리 장치(235)는 입력 데이터(RDAT)에 대하여 상기 데이터 처리로서 명령어(INST)에 상응하는 산술 연산 또는 논리 연산을 수행할 수 있다. 상기 산술 연산 또는 상기 논리 연산의 결과는 레지스터 파일(233)에 일시적으로 저장될 수 있다. 레지스터 파일(233)에 일시적으로 저장된 상기 산술 연산 또는 상기 논리 연산의 결과는 다음 산술 연산 또는 다음 논리 연산의 입력으로 이용되거나, 상기 메모리 장치의 데이터 핀들(DQP)에 (디)멀티플렉서(270)를 통하여 기입 데이터(WDAT)로서 제공될 수 있다. 이러한 동작들을 수행하도록, 프로세서 제어부(237)는 명령어 버퍼(231)에 저장된 명령어(INST)에 기초하여 산술 논리 장치(235) 및 레지스터 파일(233)을 제어할 수 있다. 또한, 프로세서 제어부(237)는 상기 메모리 장치의 제어를 위한 커맨드/어드레스 신호(CMD/ADDR1)를 생성하고, 상기 메모리 장치의 데이터 핀들(DQP)에 (디)멀티플렉서(270)를 통하여 커맨드/어드레스 신호(CMD/ADDR1)를 전송할 수 있다. 인터커넥트(239)는 명령어 버퍼(231), 레지스터 파일(233), 산술 논리 장치(235) 및 프로세서 제어부(237)의 사이의 연결을 제공할 수 있다. 한편, 도 9에 도시된 프로세서(230)의 구성은 예시적인 것으로, 본 발명의 실시예들에 따른 프로세서(230)는 이에 한정되지 않는다.
도 10은 본 발명의 실시예들에 따른 메모리 모듈에 포함된 각 프로세싱 장치의 다른 예를 나타내는 블록도이고, 도 11a는 본 발명의 실시예들에 따른 도 10의 프로세싱 장치를 포함하는 메모리 모듈의 일반 모드에서의 데이터 전송을 설명하기 위한 도면이고, 도 11b는 본 발명의 실시예들에 따른 도 10의 프로세싱 장치를 포함하는 메모리 모듈의 프로세서 모드에서의 데이터 전송을 설명하기 위한 도면이다.
도 10을 참조하면, 프로세싱 장치(151b)는, 클록 생성기(240)를 더 포함하는 것 외에, 도 8의 프로세싱 장치(151a)와 유사한 구성 및 동작을 가질 수 있다. 클록 생성기(240)는, 프로세서 모드에서, 고속 클록 신호(FCLK)를 생성하고, 프로세서(230) 및 프로세싱 장치(151b)에 연결된 메모리 장치의 클록 핀(CKP)에 고속 클록 신호(FCLK)를 제공할 수 있다. 일 실시예에서, 상기 프로세서 모드에서 클록 생성기(240)에 의해 생성되는 고속 클록 신호(FCLK)는, 일반 모드에서 메모리 컨트롤러로부터 제공되는 클록 신호(도 11a의 CLK)보다 높은 클록 주파수를 가질 수 있다.
도 11a을 참조하면, 일반 모드에서, 프로세싱 장치(151a) 및 메모리 장치(111)는 메모리 컨트롤러(105)로부터 (도 1a의 커맨드/어드레스 버퍼링 장치(130)를 통하여) 클록 신호(CLK)를 수신할 수 있다. 메모리 컨트롤러(105)와 프로세싱 장치(151a)/메모리 장치(111) 사이의 데이터 전송은 클록 신호(CLK)에 기초하여 수행될 수 있다.
한편, 도 11b를 참조하면, 프로세서 모드에서는, 프로세싱 장치(151a)가 고속 클록 신호(FCLK)를 메모리 장치(111)에 제공할 수 있고, 프로세싱 장치(151a)와 메모리 장치(111) 사이의 데이터 전송이 고속 클록 신호(FCLK)에 기초하여 수행될 수 있다. 한편, 상기 일반 모드에서의 데이터 전송은 긴 길이를 가지는 데이터 버스(DQ_BUS)를 통하여 수행되나, 상기 프로세서 모드에서의 데이터 전송은 프로세싱 장치(151a)와 메모리 장치(111) 사이의 짧은 데이터 연결(SDC)을 통하여 수행된다. 이에 따라, 상기 프로세서 모드에서의 데이터 전송은 상기 일반 모드에서의 데이터 전송보다 좋은 신호 전송 조건(signaling condition)을 가진다. 또한, 데이터 버스(DQ_BUS)는 복수의 메모리 모듈들에 멀티-드롭 형태로 연결되나, 프로세싱 장치(151a)와 메모리 장치(111) 사이의 짧은 데이터 연결(SDC)은 일대일(Point-to-Point; P-to-P) 연결이다. 따라서, 상기 프로세서 모드에서의 데이터 전송은 보다 좋은 신호 전송 조건을 가질 수 있다. 이에 따라, 상기 프로세서 모드에서의 데이터 전송 속도가 상기 일반 모드에서의 데이터 전송 속도보다 빠르더라도, 프로세싱 장치(151a)와 메모리 장치(111) 사이에서 데이터(DAT2) 및 커맨드/어드레스 신호(CMD/ADDR1)이 정확하게 전송될 수 있다. 예를 들어, 상기 일반 모드에서의 데이터 전송 속도는 약 2.4 Gb/s이나, 상기 프로세서 모드에서의 데이터 전송 속도는 약 3.2 Gb/s일 수 있다.
도 12는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 12를 참조하면, 메모리 모듈(100a)은, 커맨드/어드레스 버퍼링 장치(130a)가 프로세서 모드에서 고속 클록 신호(FCLK)를 생성하는 클록 생성기(135)를 포함하는 것을 제외하고, 도 1b의 메모리 모듈(100)과 유사한 구성 및 동작을 가질 수 있다. 커맨드/어드레스 버퍼링 장치(130a)의 클록 생성기(135)는, 상기 프로세서 모드에서, 복수의 메모리 장치들(111-118) 및 복수의 프로세싱 장치들(151-158)에 고속 클록 신호(FCLK)를 제공할 수 있다. 상기 프로세서 모드에서, 각 프로세싱 장치(151-158)와 상응하는 메모리 장치(111-118)는 고속 클록 신호(FCLK)에 기초하여 짧은 데이터 연결(SDC)을 통하여 데이터 전송을 수행할 수 있다. 이에 따라, 상기 프로세서 모드에서의, 메모리 모듈(100a)의 데이터 전송 속도 및 데이터 처리 속도가 향상될 수 있다.
도 13은 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이고, 도 14는 프로세서 모드에서의 도 13의 메모리 모듈의 동작을 설명하기 위한 타이밍도이다.
도 13을 참조하면, 메모리 모듈(100b)은, 프로세서 모드에서 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)이 제어 버스(BCOM_BUS)를 통하여 전송되는 것을 제외하고, 도 1b의 메모리 모듈(100)과 유사한 구성 및 동작을 가질 수 있다. 상기 프로세서 모드에서, 복수의 프로세싱 장치들(151-158)은 복수의 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)을 각각 생성하고, 복수의 프로세싱 장치들(151-158)과 커맨드/어드레스 버퍼링 장치(130) 사이의 제어 버스(BCOM_BUS)를 통하여 복수의 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)을 커맨드/어드레스 버퍼링 장치(130)에 전달할 수 있다. 또한, 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)은 메모리 컨트롤러로부터 우선적으로 커맨드/어드레스 버스(CA_BUS)에 의해 수신된 커맨드(예를 들어, 프로세서 모드 진입 커맨드)에 응답하여 개시되거나 생성될 수 있고, 제어 버스(BCOM_BUS)를 통하여 프로세싱 장치들(151-158)에 전송될 수 있다. 커맨드/어드레스 버퍼링 장치(130)는 제어 버스(BCOM_BUS)를 통하여 수신된 복수의 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)을 복수의 메모리 장치들(151-158)에 각각 제공할 수 있다.
일 실시예에서, 복수의 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)은 시분할 방식으로 제어 버스(BCOM_BUS) 및 커맨드/어드레스 버퍼링 장치(130)를 통하여 복수의 메모리 장치들(111-118)에 각각 제공될 수 있다. 예를 들어, 도 14에 도시된 바와 같이, 제1 내지 제8 프로세싱 장치들(151-158)이 제1 내지 제8 커맨드/어드레스 신호들(CMD/ADDR1-CMD/ADDR8)을 순차적으로 전송할 수 있다. 제1 프로세싱 장치(151)가 제어 버스(BCOM_BUS)에 제1 커맨드/어드레스 신호(C/A1)를 전송하고, 커맨드/어드레스 버퍼링 장치(130)는 제1 커맨드/어드레스 신호(C/A1)를 제1 내지 제8 메모리 장치들(111-118)에 전송할 수 있다. 일 실시예에서, 커맨드/어드레스 버퍼링 장치(130)는 제1 커맨드/어드레스 신호(C/A1)와 함께 제1 메모리 장치(111)를 나타내는 제1 장치 아이디를 제1 내지 제8 메모리 장치들(111-118)에 전송할 수 있다. 제1 메모리 장치(111)는 제1 커맨드/어드레스 신호(C/A1) 및 상기 제1 장치 아이디에 응답하여 데이터 핀들(DQP) 상의 신호(DQ[0:7]@111)로서 데이터(DAT)를 송수신할 수 있다. 예를 들어, 상기 제1 장치 아이디는 별개의 이전 수신된 신호로서 상기 커맨드 신호의 일부로 송신되고, 그리고/또는 메모리 장치를 선택하기 위한 메모리 모듈(100b)의 별개의 라인 또는 라인들의 세트 상에 전송되는 신호를 포함할 수 있다. 제1 커맨드/어드레스 신호(C/A1)가 전송되고 일정 시간(TINT) 후, 제2 프로세싱 장치(152)는 제어 버스(BCOM_BUS)에 제2 커맨드/어드레스 신호(C/A2)를 전송하고, 커맨드/어드레스 버퍼링 장치(130)는 제2 커맨드/어드레스 신호(C/A2) 및 제2 메모리 장치(112)를 나타내는 제2 장치 아이디를 제1 내지 제8 메모리 장치들(111-118)에 전송할 수 있다. 제2 메모리 장치(112)는 제2 커맨드/어드레스 신호(C/A2) 및 상기 제2 장치 아이디에 응답하여 데이터 핀들(DQP) 상의 신호(DQ[0:7]@112)로서 데이터(DAT)를 송수신할 수 있다. 이러한 방식으로, 제3 내지 제8 프로세싱 장치들(153-158)이 순차적으로 제3 내지 제8 커맨드/어드레스 신호(C/A8)를 출력하고, 각 메모리 장치(113-118)는 상응하는 커맨드/어드레스 신호(C/A8)에 응답하여 데이터 핀들(DQP) 상의 신호(DQ[0:7]@118)로서 데이터(DAT)를 송수신할 수 있다.
도 8a는 도 13의 프로세싱 장치들(151-158) 중 하나일 수 있는 프로세싱 장치(151b)의 일 예를 나타낸다.
도 8a를 참조하면, 프로세싱 장치(151b)(예를 들어, 도 13에 도시된 프로세싱 장치들(151-158) 각각)는 메모리 컨트롤러와 상응하는 메모리 장치 사이에서 전송되는 제1 데이터(DAT1)를 버퍼링하는 데이터 버퍼(210), 상기 메모리 장치에 저장된 제2 데이터(DAT2)에 대한 데이터 처리를 수행하는 프로세서(230), 및 일반 모드에서 상기 메모리 장치와 데이터 버퍼(210)를 연결하고, 프로세서 모드에서 상기 메모리 장치와 프로세서(230)를 연결하는 제어부(예를 들어, 제어 회로)(250)를 포함할 수 있다.
제어부(250)는 상기 메모리 장치의 데이터 핀들(DQP)을 데이터 버퍼(210) 또는 프로세서(230)에 선택적으로 연결하기 위한 (디)멀티플렉서(270) 및 (디)멀티플렉서(270)를 제어하기 위한 제어 로직(290)을 포함할 수 있다. 또한, 제어 로직(290)은 프로세싱 장치(151b)의 전체적인 동작을 제어할 수 있다.
데이터 버퍼(210)는 메모리 모듈 표준(예를 들어, DDR4 LRDIMM 표준)에 따른 데이터 버퍼일 수 있다. 데이터 버퍼(210)는 데이터 버스(DQ_BUS)에 연결되고, 상기 일반 모드에서 제어부(250)에 의해 상기 메모리 장치의 데이터 핀들(DQP)에 더욱 연결될 수 있다. 데이터 버퍼(210)는, 상기 일반 모드에서, 상기 메모리 컨트롤러와 상기 메모리 장치 사이에서 전송되는 제1 데이터(DAT1)를 버퍼링할 수 있다. 일 실시예에서, 데이터 버퍼(210)는 동기화 회로, 신호 증폭기, 입출력 회로 등을 포함할 수 있다. 프로세싱 장치(151b)의 데이터 버퍼부로 또한 불리는 데이터 버퍼(210)는, 데이터 버퍼(210)에서 수신된 데이터와 동일한 데이터가 데이터 버퍼(210)로부터 출력되도록, 데이터를 저장 및 전송할 수 있다. 일반 모드, 즉 일반 동작 모드는 또한 여기서 데이터 버퍼 모드로 불릴 수 있다. 이러한 모드 동안, 데이터 버퍼(230)는 데이터 버스(DQ_BUS)와 데이터 핀들(DQP) 사이에서 전송되는 데이터에 대한 동작을 수행할 수 있다. 제1 데이터(DQT1)는 멀티플렉서(270)와 같은 선택 회로와 데이터 버퍼부(210) 사이에 연결된 복수의 제1 입출력 라인들을 통하여 데이터 버퍼(210)와 제어부(250) 사이에서 프로세싱 장치(151a)내에서 내부적으로 전송될 수 있다.
프로세서(230)는 상기 프로세서 모드에서 제어부(250)에 의해 상기 메모리 장치의 데이터 핀들(DQP)에 연결될 수 있다. 프로세서(230)는, 상기 프로세서 모드에서, 예를 들어 메모리 컨트롤러로부터, 예를 들어 제어 버스(BCOM_BUS)를 통하여 프로세서 모드 진입 커맨드를 우선 수신할 수 있다. 제어 버스(BCOM_BUS)는 프로세싱 장치(151b)의 외부 연결 단자들에 연결되고, 이러한 단자들은 내부 라인들을 통하여 프로세서(230)에 연결된다. 도 8a의 실시예에서, 상기 BCOM_BUS 라인들은 프로세서(230)에 직접 연결된 것으로 도시되어 있다. 그러나, 다른 실시예에서, 상기 BCOM_BUS 라인들은 프로세싱 장치(151b)의 외부 연결 단자들과 멀티플렉서(270) 사이에 연결될 수 있고, 외부 커맨드들이 멀티플렉서(270)를 통하여 프로세서(230)에 도달할 수 있다.
일부 실시예들에서, 각각의 메모리 장치의 데이터 핀들(DQP)로부터 전송된 및/또는 수신된 신호들, 및 데이터 버스(DQ_BUS)로부터 전송된 및/또는 수신된 신호들은 프로세싱 장치의 서로 다른 세트들의 입출력 단자들을 통하여 상기 프로세싱 장치에 전송 및 수신될 수 있고, 이들은 제어 버스(BCOM_BUS)로 이용되는 것들과 별개의 세트들의 입출력 단자들일 수 있다. 도 8의 프로세싱 장치(151a)는 DQP 및 DQ_BUS에 대한 유사한 입출력 단자들을 가질 수 있다.
프로세서 모드 진입 커맨드에 응답하여, 프로세서(230)는 다시 제어 버스(BCOM_BUS)를 통하여 커맨드/어드레스 신호(CMD/ADDR1)를 (또는 다른 프로세서들이 CMD/ADDR8을 통하여 커맨드/어드레스 신호들을 (CMD/ADDR2 내지 CMD/ADDR8)을 전송) 커맨드/어드레스 버퍼링 장치(130)에 전송하고, 이는 이어서 상기 커맨드들을 알맞은 메모리 장치 또는 장치들에 전송한다.
상기 커맨드/어드레스 신호에 응답하여, 상기 알맞은 메모리 장치가, 예를 들어 DQP 핀들을 통하여, 상기 프로세싱 장치에 데이터(DAT2)를 전송할 수 있다. 프로세서(230)는 수신된 제2 데이터(DAT2)에 대한 산술 연산 및/또는 논리 연산을 포함하는 임의의 데이터 처리를 수행할 수 있다. 또한, 프로세서(230)는 제2 데이터(DAT2)로서 상기 데이터 처리의 결과를 데이터 핀들(DQP)에 제공하여, 상기 데이터 처리의 결과가 상기 메모리 장치에 기입되도록 하거나, DQ_BUS를 통하여 출력할 수 있다. 실시예들에 따라, 프로세서(230)는 중앙 처리 장치(CPU), 마이크로 컨트롤러, 마이크로프로세서, 하드웨어 가속기, 또는 임의의 데이터 처리 장치일 수 있다.
제2 데이터(DAT2)는 멀티플렉서(270)와 같은 선택 회로와 데이터 버퍼부(210) 사이에 연결된 복수의 제2 입출력 라인들을 통하여 프로세서(230)와 제어부(250) 사이에서 프로세싱 장치(151b)내에서 내부적으로 전송될 수 있다.
도 15는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 15를 참조하면, 메모리 모듈(100c)은, 복수의 프로세싱 장치들(151-158) 사이의 연결을 제공하는 브릿지 네트워크(140)를 더 포함하는 것을 제외하고, (예를 들어, 도 15에 도시되지는 않았으나 유사한 CA_BUS 및 DQ_BUS 연결들을 포함하는) 도 1a 및 도 1b의 메모리 모듈(100)과 유사한 구성 및 동작을 가질 수 있다. 브릿지 네트워크(140)는, 프로세서 모드에서, 하나의 프로세서 장치가 다른 프로세서 장치에 연결된 메모리 장치에 저장된 데이터에 대한 데이터 처리를 수행하는 데에 이용될 수 있다. 예를 들어, 상기 프로세서 모드에서, 복수의 프로세싱 장치들(151-158) 중 제1 프로세싱 장치(151)는 복수의 프로세싱 장치들(151-158) 중 제2 프로세싱 장치(155)에 브릿지 네트워크(140)를 통하여 데이터 리드 커맨드를 나타내는 커맨드/어드레스 신호(C/A)를 전송하고, 제2 프로세싱 장치(155)는 상응하는 메모리 장치(115)에 커맨드/어드레스 신호(C/A)를 전송할 수 있다. 메모리 장치(115)는 커맨드/어드레스 신호(C/A)에 응답하여 데이터(DAT3)를 출력하고, 제1 프로세싱 장치(111)는 제2 프로세싱 장치(155) 및 브릿지 네트워크(140)를 통하여 메모리 장치(115)에서 출력된 데이터(DAT3)를 수신할 수 있다. 이에 따라, 제1 프로세싱 장치(111)는 제1 프로세싱 장치(111)에 연결된 메모리 장치(111)가 아닌 다른 메모리 장치(115)에 저장된 데이터(DAT3)를 수신할 수 있고, 다른 메모리 장치(115)에 저장된 데이터(DAT3)에 대한 데이터 처리를 수행할 수 있다.
도 16a는 본 발명의 실시예들에 따른 일반 모드에서의 메모리 모듈을 나타내는 블록도이고, 도 16b는 본 발명의 실시예들에 따른 프로세서 모드에서의 메모리 모듈을 나타내는 블록도이다.
도 16a 및 도 16b를 참조하면, 도 16a 및 도 16b의 메모리 모듈(100d)은, 도 1a 및 도 1b의 커맨드/어드레스 버퍼링 장치(130)를 포함하지 않는 것을 제외하고, 도 1a 및 도 1b의 메모리 모듈(100)과 유사한 구성 및 동작을 가질 수 있다. 메모리 모듈(100d)에서, 복수의 메모리 장치들(111-118)의 커맨드/어드레스 핀들(CAP)은 커맨드/어드레스 버스(CA_BUS)에 직접 연결되고, 메모리 컨트롤러로부터 커맨드/어드레스 신호(CMD/ADDR)를 직접 수신할 수 있다.
도 1a, 도 2a, 도 12, 도 13, 도 15, 도 16a 및 도 16b를 참조하여 더욱 설명되고, 상술한 다양한 실시예들로부터 알 수 있는 바와 같이, 메모리 모듈은 메모리 모듈을 외부 장치에 연결하기 위한 한 세트의 메모리 모듈 단자들을 포함할 수 있다. 상기 메모리 모듈 단자들은 (예를 들어, 도면들에서 아래의) 메모리 모듈의 하나의 모서리에 위치할 수 있다. 복수의 프로세싱 데이터 버퍼들은 상기 세트의 메모리 모듈 단자들과 복수의 메모리 장치들 사이에 위치할 수 있다. 일부 실시예들에서, 커맨드/어드레스 버퍼링 장치가 제1 서브세트의 메모리 장치들과 제2 서브세트의 메모리 장치들 사이에 있을 수 있다. 또한, 상기 커맨드/어드레스 버퍼링 장치는 상기 커맨드/어드레스 버퍼링 장치의 양쪽에 동일한 수(예를 들어, 도시된 실시예에서 4개)의 메모리 장치들을 가질 수 있다.
또한, 상술한 다양한 실시예들에 따라, 데이터 부근 처리(Near Data Processing; NDP) 방법이 수행될 수 있다. 상기 방법은, 예를 들어, 메모리 모듈의 프로세싱 데이터 버퍼에서 상기 프로세싱 데이터 버퍼가 프로세서 모드로 동작할 것을 명령하는 제1 모드 커맨드를 수신하는 단계를 포함할 수 있다. 상기 방법은 또한, 상기 프로세서 모드로 동작하는 동안, 상기 프로세싱 데이터 버퍼로부터, 상기 프로세싱 데이터 버퍼에 연결된 메모리 장치에 커맨드 및 어드레스 정보를 전송하는 단계, 및 상기 프로세싱 데이터 버퍼에서 상기 프로세싱 데이터 버퍼가 상기 메모리 장치에 대한 데이터 버퍼로 동작할 것을 명령하는 제2 모드 커맨드를 수신하는 단계를 포함할 수 있다. 상기 제1 모드 커맨드는, 예를 들어 프로세서 모드 진입 커맨드와 같은 호스트 또는 컨트롤러 생성 커맨드일 수 있고, 상기 제2 모드 커맨드는, 예를 들어 프로세서 모드 종료 커맨드와 같은 호스트 또는 컨트롤러 생성 커맨드일 수 있다. 상기 프로세서 모드 동안 전송되는 상기 커맨드 및 어드레스 정보는 메모리 장치 식별자를 포함할 수 있다. 상기 방법은 또한, 상기 데이터 버퍼 모드로 동작하는 동안, 상기 프로세싱 데이터 버퍼로부터 상기 메모리 장치에 데이터를 전송하는 단계를 더 포함할 수 있다.
일부 실시예들에서, 상기 프로세서 모드로 동작하는 동안, 상기 프로세싱 데이터 버퍼는 제1 시간에 상기 메모리 장치에 커맨드 및 어드레스 정보를 전송할 수 있고, 상기 제1 시간 후 제2 시간에 상기 메모리 장치에 데이터를 전송할 수 있다. 상기 프로세서 모드 동안 상기 프로세싱 데이터 버퍼로부터 상기 메모리 장치로 상기 데이터를 전송하는 데에 이용되는 클록 스피드가, 상기 데이터 버퍼 모드 동안 상기 프로세싱 데이터 버퍼로부터 상기 메모리 장치로 상기 데이터를 전송하는 데에 이용되는 클록 스피드보다 빠를 수 있다.
일 실시예에서, 상술한 바와 같이, 상기 프로세싱 데이터 버퍼로부터 상기 메모리 장치로 상기 커맨드 및 어드레스 정보를 전송하는 것을 완료한 후, 상기 프로세싱 데이터 버퍼로부터 상기 메모리 장치로 데이터를 전송하기 전까지 지연(delay)이 존재할 수 있다. 상기 지연 동안, 상기 프로세싱 데이터 버퍼의 선택 회로는 인입되는 비트들을 위해 커맨드/어드레스 경로를 선택하는 것과 인입되는 비트들을 위해 데이터 경로를 선택하는 것 사이에서 천이(transition)할 수 있다.
일부 실시예들에서, 상기 데이터 및 상기 커맨드 및 어드레스 정보가 모두 동일한 세트의 프로세싱 데이터 버퍼 출력 단자들을 통하여 메모리 장치로 전송될 수 있다. 다른 실시예들에서, 상기 데이터는 제1 세트의 프로세싱 데이터 버퍼 출력 단자들을 통하여 상기 메모리 장치로 전송되고, 상기 커맨드 및 어드레스 정보는 제2 세트의 프로세싱 데이터 버퍼 출력 단자들을 통하여 상기 메모리 장치로 전송될 수 있다.
도 17은 본 발명의 실시예들에 따른 메모리 시스템을 나타내는 블록도이고, 도 18은 본 발명의 실시예들에 따른 메모리 시스템에서 수행되는 비트 배열 변경을 설명하기 위한 도면이다.
도 17을 참조하면, 메모리 시스템(300)은 프로세싱 장치들(350, 370)을 포함하는 적어도 하나의 메모리 모듈(340, 360), 및 메모리 모듈(340, 360)을 제어하는 메모리 컨트롤러(320)를 포함할 수 있다. 프로세싱 장치들(350, 370)을 포함하는 메모리 모듈(340, 360)은 PIM(또는 NDP) 메모리 모듈로 불릴 수 있고, 예를 들어 도 1a 및 도 1b의 메모리 모듈(100), 도 12의 메모리 모듈(100a), 도 13의 메모리 모듈(100b), 도 15의 메모리 모듈(100c) 또는 도 16a 및 도 16b의 메모리 모듈(100d)일 수 있다. 메모리 모듈(340, 360)은 커맨드/어드레스 버스(CA_BUS) 및 데이터 버스(DQ_BUS)를 포함하는 메모리 채널(MCH)을 통하여 메모리 컨트롤러(320)에 연결될 수 있다. 메모리 시스템(300)은 임의의 컴퓨팅 시스템에 포함된 메모리 시스템일 수 있다. 예를 들어, 메모리 시스템(300)은 개인용 컴퓨터(personal computer), 서버 컴퓨터(server computer), 워크스테이션(workstation), 노트북(laptop), 모바일 컴퓨터(mobile computer), 디지털 TV 등과 같은 임의의 컴퓨팅 시스템에 포함된 메모리 시스템일 수 있다.
일 실시예에서, 메모리 시스템(300)은, 메모리 모듈(340, 360)과 동일한 메모리 채널(MCH)에 연결되고, 복수의 프로세싱 장치들(350, 370)을 대신하여 복수의 데이터 버퍼들(390)을 포함하는 일반 메모리 모듈(380)을 더 포함할 수 있다. 일반 메모리 모듈(380)은 메모리 모듈 표준에 따른 메모리 모듈(예를 들어, DDR4 LRDIMM)일 수 있다.
메모리 시스템(300)의 PIM(또는 NDP) 메모리 모듈(340, 360)이 메모리 모듈 표준에 따른 메모리 채널(MCH)에 연결될 수 있으므로, 메모리 채널(MCH)에 연결되는 메모리 모듈(340, 360, 380)의 수를 증가시킴으로써, 메모리 시스템(300)의 저장 용량이 용이하게 증가될 수 있다. 또한, 메모리 시스템(300)에서, 각 메모리 모듈(340, 360)에 포함된 복수의 프로세싱 장치들(350, 370)이 병렬적으로 데이터 처리를 수행함으로써, 메모리 시스템(300)은 향상된 데이터 처리 성능을 가질 수 있다. 또한, 메모리 모듈(340, 360)의 수를 증가시킴으로써 메모리 시스템(300)의 데이터 처리 성능이 용이하게 더욱 향상될 수 있다.
일 실시예에서, 메모리 컨트롤러(320)는, 각 메모리 모듈(예를 들어, 340)에 포함된 복수의 메모리 장치들 각각이 온전한 데이터 워드를 저장하도록, 일반 모드에서 비트 배열 변경이 수행된 데이터를 메모리 모듈(340)에 제공할 수 있다. 도 18은 64 비트의 데이터 워드가 이용되고, 하나의 캐시 라인이 64 바이트의 크기를 가지는 컴퓨팅 시스템에서 비트 배열 변경이 수행되는 예를 나타낸다. 일반적으로, 메모리 컨트롤러(320)는 메모리 모듈(340)에 캐시 라인 단위로 데이터를 기입할 수 있다. 예를 들어, 메모리 컨트롤러(320)는 메모리 모듈(340)에 데이터 기입 커맨드를 전송하고, 8개의 x8 메모리 장치들(341-348)을 포함하는 메모리 모듈(340)에 8의 버스트 길이로 데이터를 전송할 수 있다. 메모리 컨트롤러(320)가 제1 내지 제8 데이터 워드들(W1-W8)을 포함하는 하나의 캐시 라인의 원본 데이터를 비트 배열 변경 없이 메모리 모듈(340)에 전송하는 경우, 메모리 장치들(341-348) 각각은 제1 내지 제8 데이터 워드들(W1-W8)의 서로 다른 바이트들을 저장할 수 있다. 예를 들어, 제1 메모리 장치(341)에는 제1 내지 제8 데이터 워드들(W1-W8)의 첫 번째 바이트들(W1B1-W8B1)이 저장될 수 있다. 이 경우, 제1 메모리 장치(341)에 연결된 프로세싱 장치는, 프로세서 모드에서, 제1 메모리 장치(341)로부터 데이터 처리 단위인 온전한 데이터 워드를 독출할 수 없을 수 있다. 그러나, 본 발명의 실시예들에 따른 메모리 시스템(300)에서는, 메모리 컨트롤러(320)가 비트 배열 변경이 수행된 데이터를 메모리 모듈(340)에 제공할 수 있다. 일 실시예에서, 비트 배열 변경은 캐시 라인 단위로 수행될 수 있다. 도 18에 도시된 바와 같이, 제1 내지 제8 데이터 워드들(W1-W8)의 첫 번째 바이트들(W1B1-W8B1)이 우선 메모리 모듈(340)에 제공되고, 두 번째 바이트들(W1B2-W8B2) 내지 여덟 번째 바이트들(W1B8-W8B8)이 순차적으로 제공되도록, 상기 원본 데이터에 대한 비트 배열 변경이 수행될 수 있다. 상기 비트 배열 변경이 수행된 데이터를 수신한 메모리 모듈(340)에서, 제1 내지 제8 메모리 장치들(341-348)은 제1 내지 제8 데이터 워드들(W1-W8)을 각각 저장할 수 있다. 이에 따라, 각 메모리 장치(341-348)에 연결된 프로세싱 장치는, 프로세서 모드에서, 온전한 데이터 워드를 독출하고, 상기 온전한 데이터 워드에 대한 데이터 처리를 수행할 수 있다.
도 19은 비트 배열 변경을 수행하는 호스트 프로세서를 포함하는 컴퓨팅 시스템을 나타내는 블록도이다.
도 19를 참조하면, 컴퓨팅 시스템(400)은 호스트 프로세서(410) 및 메모리 시스템(300a)을 포함할 수 있다. 호스트 프로세서(410)는 비트 셔플링 연산(420)을 수행하여 원본 데이터(ORI_DAT)에 대한 (도 18에 도시된 바와 같은) 비트 배열 변경을 수행할 수 있다. 메모리 컨트롤러(320)는, 일반 모드에서, 메모리 채널(MCH)을 통하여 상기 비트 배열 변경이 수행된 데이터(SHF_DAT)를 메모리 모듈(340a)에 제공할 수 있다.
도 20은 비트 배열 변경을 수행하는 비트 셔플러를 포함하는 메모리 시스템을 나타내는 블록도이다.
도 20을 참조하면, 메모리 시스템(300b)의 메모리 컨트롤러(320b)는 비트 셔플러(330)를 포함할 수 있다. 비트 셔플러(330)는 원본 데이터(ORI_DAT)에 (도 18에 도시된 바와 같은) 비트 배열 변경을 수행할 수 있고, 메모리 컨트롤러(320)는, 일반 모드에서, 메모리 채널(MCH)을 통하여 상기 비트 배열 변경이 수행된 데이터(SHF_DAT)를 메모리 모듈(340b)에 제공할 수 있다.
도 21은 본 발명의 실시예들에 따른 비휘발성 듀얼 인라인 메모리 모듈(non-volatile dual in-line memory module; NVDIMM)을 나타낸다.
도 21에 도시된 바와 같이, NVDIMM의 일 예는 모듈 보드(2100), 복수의 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM) 메모리 장치들(111-118), 복수의 DRAM 메모리 장치들에 연결된 복수의 비휘발성 메모리(nonvolatile memory; NVM) 장치들(181-188), NVDIMM 컨트롤러(130a), 및 복수의 프로세싱 장치들(151-158)을 포함한다. 도 21에 도시된 일부 구성요소들은 이전에 도시된 다른 실시예들의 그것과 동일할 수 있고, 따라서 이들은 편의상 생략될 것이다. 또한, 도 21은 도 1a 및 도 1b에 도시된 것과 유사한 시스템을 도시하고 있으나, NVDIMM은 또한 도 12, 도 13, 도 15, 도 16a 및 도 16b에 도시된 메모리 모듈들에도 비휘발성 메모리 장치들을 추가함으로써 구현될 수도 있다.
각 DRAM은 메모리 셀 어레이를 포함할 수 있고, 예를 들어 도 4 또는 도 5에 도시된 것과 같은 구조 및 동작을 가질 수 있다. 예를 들어, 각 DRAM은 CAP 단자들과 같은 제1 세트의 입출력 단자들을 포함할 수 있다. 각 단자는, 예를 들어 컨트롤러(130a)로부터, 제1 커맨드/어드레스 비트들을 수신하도록 구성될 수 있다. 각 DRAM은 제2 세트의 입출력 단자들(예를 들어, DQP 단자들)을 더 포함할 수 있고, 각 단자는 제1 데이터 비트들을 수신할 수 있다. 플래시 메모리 장치들 또는 MRAM 장치들과 같은 복수의 비휘발성 메모리 장치들(181-188)은 상기 복수의 DRAM 메모리 장치들과 연결될 수 있다. 예를 들어, 각 비휘발성 메모리 장치는 메모리 셀 어레이, 각각이 (예를 들어, 컨트롤러(130a)로부터) 제2 커맨드/어드레스 비트들을 수신하는 제3 세트의 입출력 단자들(예를 들어, CAP), 및 각각이 제2 데이터 비트들을 수신하는 제4 입출력 단자들을 포함할 수 있다. 예를 들어, 상기 제2 세트의 입출력 단자들은 각각의 DRAM 장치들의 데이터 단자들에 연결될 수 있다. 상기 NVDIMM 컨트롤러(130a)는 이전에 개시된 다양한 실시예들에서 기재된 커맨드/어드레스 버퍼 링 장치(130)의 기능들을 수행할 수 있고, 상기 비휘발성 메모리 장치들에 대한 액세스를 제어하는 기능들을 더욱 수행할 수 있다. 예를 들어, 컨트롤러(130a)는, 다양한 것들 중에서, 상기 제1 세트의 입출력 단자들에 상기 제1 커맨드/어드레스 비트들을 출력하고, 상기 제3 세트의 입출력 단자들에 상기 제2 커맨드/어드레스 비트들을 출력할 수 있다. 복수의 프로세싱 데이터 버퍼들(151-158)은 복수의 DRAM 메모리 장치들에 각각 연결될 수 있고, 각 프로세싱 데이터 버퍼는, 전술한 바와 같이, 이에 상응하는 메모리 장치에 대한 데이터 버퍼로서 동작하는 것과 이에 상응하는 메모리 장치로부터 수신된 데이터에 대한 처리 동작들을 수행하는 프로세서로서 동작하는 것을 전환할 수 있다.
일부 실시예들에서, 상기 메모리 모듈을 외부 장치에 연결하기 위한 한 세트의 메모리 모듈 단자들이 상기 메모리 모듈의 하나의 모서리에 위치할 수 있고, 복수의 프로세싱 데이터 버퍼들(151-158)은 상기 세트의 메모리 모듈 단자들과 복수의 DRAM 메모리 장치들(111-118) 사이에 위치할 수 있다.
상기 컨트롤러는 제1 서브세트의 DRAM 메모리 장치들(예를 들어, 111-114) 및 제2 서브세트의 DRAM 메모리 장치들(예를 들어, 115-118) 사이에 위치할 수 있다. 예를 들어, 상기 컨트롤러의 양쪽에 동일한 수(예를 들어, 4개)의 DRAM 메모리 장치들이 존재할 수 있다.
도 21에 도시된 바와 같이, 복수의 DRAM 메모리 장치들(111-118)은 복수의 프로세싱 데이터 버퍼들(151-158)과 복수의 비휘발성 메모리 장치들(181-188) 사이에 각각 위치할 수 있다.
복수의 프로세싱 데이터 버퍼들(151-158)은 데이터 비트들을 전송하고 상기 NVDIMM 외부와의 통신을 위한 복수의 메모리 모듈 단자들에 각각 연결된 제5 세트의 입출력 단자들을 포함할 수 있다. 예를 들어, 한 세트의 입출력 단자들이 프로세싱 데이터 버퍼들(151-158)을 이들 각각의 DRAM들(111-118)에 연결할 수 있고, 다른 세트의 입출력 단자들이 프로세싱 데이터 버퍼들(151-158)을 상기 메모리 모듈 단자들을 통하여 데이터 버스(DQ_BUS)에 연결할 수 있다.
본 발명은 임의의 메모리 모듈 및 메모리 모듈을 포함하는 메모리 시스템에 적용될 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (20)
- 메모리 셀 어레이;
제1 커맨드/어드레스 비트들을 수신하는 제1 세트의 입출력 단자들; 및
데이터 비트들 및 제2 커맨드/어드레스 비트들을 수신하는 제2 세트의 입출력 단자들을 포함하는 메모리 장치;
상기 제1 세트의 입출력 단자들에 상기 제1 커맨드/어드레스 비트들을 출력하는 커맨드/어드레스 버퍼링 장치; 및
상기 제2 세트의 입출력 단자들에 상기 데이터 비트들 및 상기 제2 커맨드/어드레스 비트들을 출력하는 프로세싱 데이터 버퍼를 포함하고,
상기 메모리 장치는, 상기 제1 커맨드/어드레스 비트들, 상기 제2 커맨드/어드레스 비트들 및 상기 데이터 비트들은 모두 상기 메모리 셀 어레이를 액세스하는 데에 이용되도록 구성되는 메모리 모듈. - 제1 항에 있어서, 상기 메모리 장치는, 커맨드 디코더, 어드레스 레지스터, 및 데이터 입출력 버퍼를 구비하는 주변 회로를 포함하고,
상기 제2 세트의 입출력 단자들에서 수신된 비트들을, 상기 커맨드 디코더 및 상기 어드레스 레지스터에 전송할지, 또는 상기 데이터 입출력 버퍼에 전송할지를 선택하는 선택 회로를 더 포함하는 메모리 모듈. - 제1 항에 있어서,
메모리 컨트롤러로부터 수신된 비트들을 상기 커맨드/어드레스 버퍼링 장치에 전송하도록 구성된 제1 버스; 및
상기 메모리 컨트롤러로부터 수신된 비트들을 상기 프로세싱 데이터 버퍼에 전송하도록 구성된 제2 버스를 더 포함하는 메모리 모듈. - 제3 항에 있어서, 상기 메모리 장치는,
상기 제2 버스를 통하여 수신되는 비트들을 수신하고, 상기 수신된 비트들을 상기 메모리 셀 어레이의 주변 회로에 내부 데이터 경로를 통하여 전송할지 또는 내부 커맨드/어드레스 경로를 통하여 전송할지를 선택하는 선택 회로를 더 포함하는 메모리 모듈. - 제1 항에 있어서, 상기 제2 세트의 입출력 단자들은 상기 메모리 장치의 일반 동작 모드 동안 상기 프로세싱 데이터 버퍼가 데이터 버퍼로서 동작하도록 데이터 단자들의 역할을 하고, 상기 메모리 장치의 프로세서 동작 모드 동안 상기 프로세싱 데이터 버퍼가 상기 메모리 장치에 저장된 데이터에 대한 산술 또는 논리 연산을 수행하도록 커맨드 및 어드레스 단자들의 역할을 하는 메모리 모듈.
- 제5 항에 있어서, 상기 메모리 장치는,
상기 데이터 버퍼에 연결되고, 상기 일반 동작 모드 및 상기 프로세서 동작 모드 모두에서 데이터 단자들로서 역할을 하는 제3 세트의 입출력 단자들을 더 포함하는 메모리 모듈. - 메모리 셀 어레이;
제1 커맨드/어드레스 비트들을 수신하는 제1 세트의 입출력 단자들; 및
데이터 비트들 및 제2 커맨드/어드레스 비트들을 수신하는 제2 세트의 입출력 단자들을 각각 포함하는 복수의 메모리 장치들;
상기 제1 세트의 입출력 단자들에 상기 제1 커맨드/어드레스 비트들을 출력하는 커맨드/어드레스 버퍼링 장치; 및
각각이, 상기 복수의 메모리 장치들 중 상응하는 메모리 장치의 데이터 버퍼로서 동작하는 것, 및 상기 상응하는 메모리 장치로부터 수신된 데이터에 대한 처리 동작들을 수행하는 프로세서로서 동작하는 것을 전환하는 복수의 프로세싱 데이터 버퍼들을 포함하는 메모리 모듈. - 제7 항에 있어서, 상기 복수의 프로세싱 데이터 버퍼들 각각은 상기 메모리 모듈의 외부의 장치로부터 프로세서 모드 진입 커맨드를 수신한 후 상기 프로세서로서 동작하는 메모리 모듈.
- 제7 항에 있어서, 상기 처리 동작들은 산술 연산 및 논리 연산 중 적어도 하나를 포함하는 메모리 모듈.
- 제9 항에 있어서, 상기 처리 동작들은 그래픽 데이터 처리(graphic data processing), 인-메모리 데이터베이스 데이터 처리(in-memory database data processing) 또는 실시간 분석(real-time analysis)을 포함하는 메모리 모듈.
- 제7 항에 있어서,
상기 커맨드/어드레스 버퍼링 장치와 상기 복수의 프로세싱 데이터 버퍼들 각각의 사이에 연결되고, 상기 커맨드/어드레스 버퍼링 장치와 상기 복수의 프로세싱 데이터 버퍼들 각각의 사이에서 커맨드 및 어드레스 정보를 전송하기 위한 버스를 더 포함하는 메모리 모듈. - 제11 항에 있어서, 상기 버스는 상기 프로세싱 데이터 버퍼들 각각에 포함된 프로세서에 연결되는 메모리 모듈.
- 제7 항에 있어서,
상기 메모리 모듈의 일 모서리에 위치하고, 상기 메모리 모듈을 외부 장치에 연결하기 위한 하나의 세트의 메모리 모듈 단자들을 더 포함하고,
상기 복수의 프로세싱 데이터 버퍼들은 상기 하나의 세트의 메모리 모듈 단자들과 상기 복수의 메모리 장치들 사이에 위치하는 메모리 모듈. - 제13 항에 있어서, 상기 커맨드/어드레스 버퍼링 장치는 상기 복수의 메모리 장치들 중 제1 서브세트의 메모리 장치들과 상기 복수의 메모리 장치들 중 제2 서브세트의 메모리 장치들 사이에 위치하는 메모리 모듈.
- 제14 항에 있어서, 상기 커맨드/어드레스 버퍼링 장치는 상기 커맨드/어드레스 버퍼링 장치의 양 옆에 동일한 수의 상기 메모리 장치들을 가지는 메모리 모듈.
- 제7 항에 있어서, 상기 프로세싱 데이터 버퍼들 각각은,
커맨드 비트들을 송수신하는 제3 세트의 입출력 단자들;
상기 복수의 메모리 장치들 중 상응하는 메모리 장치로부터 데이터 비트들을 수신하고, 상기 상응하는 메모리 장치에 데이터 비트들을 전송하는 제4 세트의 입출력 단자들; 및
상기 메모리 모듈의 외부와 통신을 위한 상응하는 세트의 메모리 모듈 단자들에 데이터 비트들을 송수신하기 위한 제5 세트의 입출력 단자들을 포함하는 메모리 모듈. - 메모리 모듈에 포함된 프로세싱 데이터 버퍼에 있어서,
데이터 버퍼부;
프로세서부;
상기 데이터 버퍼부 및 상기 프로세서부에 연결되고, 상기 데이터 버퍼부 또는 상기 프로세서부를 선택하는 선택 회로;
상기 선택 회로와 상기 데이터 버퍼부 사이에 연결된 복수의 제1 입출력 라인들;
상기 선택 회로와 상기 프로세서부 사이에 연결된 복수의 제2 입출력 라인들;
상기 데이터 버퍼부에 연결되고, 상기 프로세싱 데이터 버퍼의 외부와 통신을 위한 제1 세트의 입출력 단자들; 및
상기 선택 회로에 연결되고, 상기 프로세싱 데이터 버퍼의 외부와 통신을 위한 제2 세트의 입출력 단자들을 포함하는 프로세싱 데이터 버퍼. - 제17 항에 있어서,
상기 제1 세트의 입출력 단자들은 데이터 비트들을 전송하고,
상기 제2 세트의 입출력 단자들은 데이터 비트들을 전송하는 프로세싱 데이터 버퍼. - 제18 항에 있어서,
상기 복수의 제1 입출력 라인들은 데이터 비트들을 전송하고,
상기 복수의 제2 입출력 라인들은 데이터 비트들 및 커맨드/어드레스 비트들을 전송하는 프로세싱 데이터 버퍼. - 제19 항에 있어서,
상기 제2 세트의 입출력 단자들은 커맨드/어드레스 비트들을 더욱 전송하는 프로세싱 데이터 버퍼.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710953332.5A CN107958679B (zh) | 2016-10-14 | 2017-10-13 | 存储器模块和用于存储器模块的处理数据缓冲器 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662408510P | 2016-10-14 | 2016-10-14 | |
US62/408510 | 2016-10-14 | ||
US15/603,255 US10416896B2 (en) | 2016-10-14 | 2017-05-23 | Memory module, memory device, and processing device having a processor mode, and memory system |
US15/603255 | 2017-05-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180042111A true KR20180042111A (ko) | 2018-04-25 |
KR102336294B1 KR102336294B1 (ko) | 2021-12-08 |
Family
ID=61903842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170093014A KR102336294B1 (ko) | 2016-10-14 | 2017-07-21 | 프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10416896B2 (ko) |
KR (1) | KR102336294B1 (ko) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200013461A (ko) * | 2018-07-30 | 2020-02-07 | 삼성전자주식회사 | 메모리 장치의 내부 프로세싱 동작 방법 |
WO2020085583A1 (ko) * | 2018-10-24 | 2020-04-30 | 전자부품연구원 | 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치 |
WO2021046566A1 (en) * | 2019-09-05 | 2021-03-11 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
KR20220066662A (ko) | 2020-11-16 | 2022-05-24 | 에스케이하이닉스 주식회사 | 인메모리 연산을 수행하는 반도체 장치 |
US11537323B2 (en) | 2020-01-07 | 2022-12-27 | SK Hynix Inc. | Processing-in-memory (PIM) device |
US11537861B2 (en) | 2020-06-23 | 2022-12-27 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
US11693657B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems |
US11934824B2 (en) | 2019-09-05 | 2024-03-19 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related memory devices and systems |
US12087388B2 (en) | 2019-03-11 | 2024-09-10 | Samsung Electronics Co., Ltd. | Method of performing internal processing operations with pre-defined protocol interface of memory device |
US12106107B2 (en) | 2019-03-11 | 2024-10-01 | Samsung Electronics Co., Ltd. | Memory device for processing operation, data processing system including the same, and method of operating the memory device |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10566038B2 (en) | 2017-05-29 | 2020-02-18 | Samsung Electronics Co., Ltd. | Method of controlling on-die termination and system performing the same |
US10592121B2 (en) | 2017-09-14 | 2020-03-17 | Samsung Electronics Co., Ltd. | Quasi-synchronous protocol for large bandwidth memory systems |
US10474600B2 (en) * | 2017-09-14 | 2019-11-12 | Samsung Electronics Co., Ltd. | Heterogeneous accelerator for highly efficient learning systems |
US10423510B2 (en) * | 2017-10-04 | 2019-09-24 | Arm Limited | Apparatus and method for predicting a redundancy period |
KR102424962B1 (ko) * | 2017-11-15 | 2022-07-25 | 삼성전자주식회사 | 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈 |
CN108777155B (zh) * | 2018-08-02 | 2024-07-05 | 杭州知存算力科技有限公司 | 闪存芯片 |
US11334284B2 (en) | 2018-09-24 | 2022-05-17 | Samsung Electronics Co., Ltd. | Database offloading engine |
US20210357151A1 (en) * | 2018-10-04 | 2021-11-18 | Atif Zafar | Dynamic processing memory core on a single memory chip |
US20200201566A1 (en) * | 2018-12-19 | 2020-06-25 | Micron Technology, Inc. | Module processing resource |
US11526302B2 (en) * | 2019-06-20 | 2022-12-13 | AI Plus, Inc. | Memory module and computing device containing the memory module |
US11055220B2 (en) * | 2019-08-19 | 2021-07-06 | Truememorytechnology, LLC | Hybrid memory systems with cache management |
US11526441B2 (en) | 2019-08-19 | 2022-12-13 | Truememory Technology, LLC | Hybrid memory systems with cache management |
US11055003B2 (en) | 2019-08-20 | 2021-07-06 | Micron Technology, Inc. | Supplemental AI processing in memory |
US11416422B2 (en) | 2019-09-17 | 2022-08-16 | Micron Technology, Inc. | Memory chip having an integrated data mover |
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 |
US11068200B2 (en) * | 2019-11-27 | 2021-07-20 | Alibaba Group Holding Limited | Method and system for memory control |
US11232049B2 (en) * | 2019-12-13 | 2022-01-25 | Micron Technology, Inc. | Memory module with computation capability |
KR20210093521A (ko) | 2020-01-20 | 2021-07-28 | 삼성전자주식회사 | 고대역폭 메모리 및 이를 포함하는 시스템 |
US11194744B2 (en) * | 2020-03-16 | 2021-12-07 | Qualcomm Intelligent Solutions, Inc | In-line memory module (IMM) computing node with an embedded processor(s) to support local processing of memory-based operations for lower latency and reduced power consumption |
US11262949B2 (en) * | 2020-05-28 | 2022-03-01 | Advanced Micro Devices, Inc. | Command throughput in PIM-enabled memory using available data bus bandwidth |
KR20210154277A (ko) | 2020-06-11 | 2021-12-21 | 삼성전자주식회사 | 메모리 모듈 및 그의 동작 방법 |
FR3119483B1 (fr) * | 2021-01-29 | 2023-12-29 | Commissariat Energie Atomique | Dispositif comportant un circuit mémoire non volatil |
KR20220127601A (ko) | 2021-03-11 | 2022-09-20 | 삼성전자주식회사 | 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 |
JP2022154323A (ja) | 2021-03-30 | 2022-10-13 | キオクシア株式会社 | 半導体記憶装置 |
CN115469800A (zh) | 2021-06-10 | 2022-12-13 | 三星电子株式会社 | 数据处理系统以及用于访问异构存储器系统的方法 |
US20230386534A1 (en) * | 2022-05-25 | 2023-11-30 | Samsung Electronics Co., Ltd. | Methods of operating a near memory processing-dual in-line memory module (nmp-dimm) for performing a read operation and an adaptive latency module and a system thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040148482A1 (en) * | 2003-01-13 | 2004-07-29 | Grundy Kevin P. | Memory chain |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785780B1 (en) | 2000-08-31 | 2004-08-31 | Micron Technology, Inc. | Distributed processor memory module and method |
US20050050237A1 (en) | 2003-08-28 | 2005-03-03 | Jeddeloh Joseph M. | Memory module and method having on-board data search capabilities and processor-based system using such memory modules |
US20140040532A1 (en) | 2012-08-06 | 2014-02-06 | Advanced Micro Devices, Inc. | Stacked memory device with helper processor |
-
2017
- 2017-05-23 US US15/603,255 patent/US10416896B2/en active Active
- 2017-07-21 KR KR1020170093014A patent/KR102336294B1/ko active IP Right Grant
-
2019
- 2019-07-29 US US16/524,749 patent/US11169711B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040148482A1 (en) * | 2003-01-13 | 2004-07-29 | Grundy Kevin P. | Memory chain |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11790981B2 (en) | 2018-07-30 | 2023-10-17 | Samsung Electronics Co., Ltd. | Method of performing internal processing operation of memory device |
US12073871B2 (en) | 2018-07-30 | 2024-08-27 | Samsung Electronics Co., Ltd. | Method of performing internal processing operation of memory device |
KR20200013461A (ko) * | 2018-07-30 | 2020-02-07 | 삼성전자주식회사 | 메모리 장치의 내부 프로세싱 동작 방법 |
WO2020085583A1 (ko) * | 2018-10-24 | 2020-04-30 | 전자부품연구원 | 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치 |
KR20200046270A (ko) * | 2018-10-24 | 2020-05-07 | 전자부품연구원 | 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치 |
US12106107B2 (en) | 2019-03-11 | 2024-10-01 | Samsung Electronics Co., Ltd. | Memory device for processing operation, data processing system including the same, and method of operating the memory device |
US12087388B2 (en) | 2019-03-11 | 2024-09-10 | Samsung Electronics Co., Ltd. | Method of performing internal processing operations with pre-defined protocol interface of memory device |
US11829729B2 (en) | 2019-09-05 | 2023-11-28 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
US11693657B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems |
US11934824B2 (en) | 2019-09-05 | 2024-03-19 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related memory devices and systems |
WO2021046566A1 (en) * | 2019-09-05 | 2021-03-11 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
US11537323B2 (en) | 2020-01-07 | 2022-12-27 | SK Hynix Inc. | Processing-in-memory (PIM) device |
US11537861B2 (en) | 2020-06-23 | 2022-12-27 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
US12056599B2 (en) | 2020-06-23 | 2024-08-06 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
KR20220066662A (ko) | 2020-11-16 | 2022-05-24 | 에스케이하이닉스 주식회사 | 인메모리 연산을 수행하는 반도체 장치 |
Also Published As
Publication number | Publication date |
---|---|
US11169711B2 (en) | 2021-11-09 |
US20180107406A1 (en) | 2018-04-19 |
US20190354292A1 (en) | 2019-11-21 |
US10416896B2 (en) | 2019-09-17 |
KR102336294B1 (ko) | 2021-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102336294B1 (ko) | 프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼 | |
CN107958679B (zh) | 存储器模块和用于存储器模块的处理数据缓冲器 | |
US7411859B2 (en) | Multi-port memory device for buffering between hosts | |
TWI492059B (zh) | 多串列介面堆疊式晶粒記憶體架構 | |
US7882324B2 (en) | Method and apparatus for synchronizing memory enabled systems with master-slave architecture | |
KR101529675B1 (ko) | 멀티 칩 패키지 메모리 장치 | |
US7287115B2 (en) | Multi-chip package type memory system | |
US10642503B2 (en) | Extensible storage system and method | |
US7721010B2 (en) | Method and apparatus for implementing memory enabled systems using master-slave architecture | |
KR20180127710A (ko) | 메모리 모듈 및 이를 포함하는 메모리 시스템 | |
US6523755B2 (en) | Semiconductor memory device | |
US20240161794A1 (en) | Internal and external data transfer for stacked memory dies | |
US11069400B1 (en) | High bandwidth memory and system having the same | |
US7830740B2 (en) | Semiconductor memory device having selectable transfer modes | |
US8156276B2 (en) | Method and apparatus for data transfer | |
CN115982071A (zh) | 一种面向ddr3控制器的片上网络转换接口 | |
KR100438736B1 (ko) | 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치 | |
US11281406B2 (en) | Memory system | |
US11983411B2 (en) | Methods, devices and systems for including alternate memory access operations over memory interface | |
US20230297521A1 (en) | Memory and an operating method thereof, a memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |