KR102336294B1 - 프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼 - Google Patents

프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼 Download PDF

Info

Publication number
KR102336294B1
KR102336294B1 KR1020170093014A KR20170093014A KR102336294B1 KR 102336294 B1 KR102336294 B1 KR 102336294B1 KR 1020170093014 A KR1020170093014 A KR 1020170093014A KR 20170093014 A KR20170093014 A KR 20170093014A KR 102336294 B1 KR102336294 B1 KR 102336294B1
Authority
KR
South Korea
Prior art keywords
data
memory
command
address
processing
Prior art date
Application number
KR1020170093014A
Other languages
English (en)
Other versions
KR20180042111A (ko
Inventor
오성일
김남승
손영훈
김찬경
송호영
안정호
황상준
Original Assignee
삼성전자주식회사
서울대학교산학협력단
위스콘신 얼럼나이 리서어치 화운데이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 서울대학교산학협력단, 위스콘신 얼럼나이 리서어치 화운데이션 filed Critical 삼성전자주식회사
Priority to CN201710953332.5A priority Critical patent/CN107958679B/zh
Publication of KR20180042111A publication Critical patent/KR20180042111A/ko
Application granted granted Critical
Publication of KR102336294B1 publication Critical patent/KR102336294B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

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

프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼{MEMORY MODULE HAVING A PROCESSOR MODE AND PROCESSING DATA BUFFER}
본 발명은 반도체 메모리 장치에 관한 것으로, 보다 상세하게는 프로세서 모드를 가지는 메모리 모듈, 상기 메모리 모듈에 포함된 프로세싱 데이터 버퍼, 및 상기 메모리 모듈을 포함하는 메모리 시스템에 관한 것이다.
종래의 컴퓨팅 시스템 구조에서는, 명령어(또는 프로그램) 및 데이터가 호스트 프로세서로부터 이격된 메모리 장치에 저장되고, 상기 명령어에 기초하여 상기 데이터에 대한 데이터 처리를 수행하기 위해서는 상기 명령어 및 상기 데이터가 전송되어 한다. 이에 따라, 호스트 프로세서의 처리 속도가 증가하더라도, 호스트 프로세서와 메모리 장치 사이의 데이터 전송 속도가 성능 향상의 장애물(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)을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 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 커맨드/어드레스 비트들을 수신하는 제1 세트의 입출력 단자들; 및
    데이터 비트들 및 제2 커맨드/어드레스 비트들을 수신하는 제2 세트의 입출력 단자들을 포함하는 메모리 장치;
    상기 제1 세트의 입출력 단자들에 상기 제1 커맨드/어드레스 비트들을 출력하는 커맨드/어드레스 버퍼링 장치; 및
    상기 제2 세트의 입출력 단자들에 상기 데이터 비트들 및 상기 제2 커맨드/어드레스 비트들을 출력하는 프로세싱 데이터 버퍼를 포함하고,
    상기 메모리 장치는, 상기 제1 커맨드/어드레스 비트들, 상기 제2 커맨드/어드레스 비트들 및 상기 데이터 비트들은 모두 상기 메모리 셀 어레이를 액세스하는 데에 이용되도록 구성되고,
    상기 제2 세트의 입출력 단자들은 상기 프로세싱 데이터 버퍼가 데이터 버퍼로서 동작하는 상기 메모리 장치의 일반 동작 모드 동안 데이터 단자들의 역할을 하고, 상기 프로세싱 데이터 버퍼가 상기 메모리 장치에 저장된 데이터에 대한 산술 연산 또는 논리 연산을 수행하는 상기 메모리 장치의 프로세서 동작 모드 동안 커맨드 및 어드레스 단자들의 역할을 하는 메모리 모듈.
  2. 제1 항에 있어서, 상기 메모리 장치는, 커맨드 디코더, 어드레스 레지스터, 및 데이터 입출력 버퍼를 구비하는 주변 회로를 포함하고,
    상기 제2 세트의 입출력 단자들에서 수신된 비트들을, 상기 커맨드 디코더 및 상기 어드레스 레지스터에 전송할지, 또는 상기 데이터 입출력 버퍼에 전송할지를 선택하는 선택 회로를 더 포함하는 메모리 모듈.
  3. 제1 항에 있어서,
    메모리 컨트롤러로부터 수신된 비트들을 상기 커맨드/어드레스 버퍼링 장치에 전송하도록 구성된 제1 버스; 및
    상기 메모리 컨트롤러로부터 수신된 비트들을 상기 프로세싱 데이터 버퍼에 전송하도록 구성된 제2 버스를 더 포함하는 메모리 모듈.
  4. 제3 항에 있어서, 상기 메모리 장치는,
    상기 제2 버스를 통하여 수신되는 비트들을 수신하고, 상기 수신된 비트들을 상기 메모리 셀 어레이의 주변 회로에 내부 데이터 경로를 통하여 전송할지 또는 내부 커맨드/어드레스 경로를 통하여 전송할지를 선택하는 선택 회로를 더 포함하는 메모리 모듈.
  5. 제1 항에 있어서, 상기 메모리 장치는 반도체 칩 또는 반도체 패키지이고,
    상기 프로세싱 데이터 버퍼는 반도체 칩 또는 반도체 패키지인 메모리 모듈.
  6. 제1 항에 있어서, 상기 메모리 장치는,
    상기 데이터 버퍼에 연결되고, 상기 일반 동작 모드 및 상기 프로세서 동작 모드 모두에서 데이터 단자들로서 역할을 하는 제3 세트의 입출력 단자들을 더 포함하는 메모리 모듈.
  7. 메모리 셀 어레이;
    제1 커맨드/어드레스 비트들을 수신하는 제1 세트의 입출력 단자들; 및
    데이터 비트들 및 제2 커맨드/어드레스 비트들을 수신하는 제2 세트의 입출력 단자들을 각각 포함하는 복수의 메모리 장치들;
    상기 제1 세트의 입출력 단자들에 상기 제1 커맨드/어드레스 비트들을 출력하는 커맨드/어드레스 버퍼링 장치; 및
    각각이, 상기 복수의 메모리 장치들 중 상응하는 메모리 장치의 데이터 버퍼로서 동작하는 것, 및 상기 상응하는 메모리 장치로부터 수신된 데이터에 대한 처리 동작들을 수행하는 프로세서로서 동작하는 것을 전환하는 복수의 프로세싱 데이터 버퍼들을 포함하고,
    상기 복수의 메모리 장치들 각각은 반도체 칩 또는 반도체 패키지이고,
    상기 복수의 프로세싱 데이터 버퍼들 각각은 반도체 칩 또는 반도체 패키지인 메모리 모듈.
  8. 제7 항에 있어서, 상기 복수의 프로세싱 데이터 버퍼들 각각은 상기 메모리 모듈의 외부의 장치로부터 프로세서 모드 진입 커맨드를 수신한 후 상기 프로세서로서 동작하는 메모리 모듈.
  9. 제7 항에 있어서, 상기 처리 동작들은 산술 연산 및 논리 연산 중 적어도 하나를 포함하는 메모리 모듈.
  10. 제9 항에 있어서, 상기 처리 동작들은 그래픽 데이터 처리(graphic data processing), 인-메모리 데이터베이스 데이터 처리(in-memory database data processing) 또는 실시간 분석(real-time analysis)을 포함하는 메모리 모듈.
  11. 제7 항에 있어서,
    상기 커맨드/어드레스 버퍼링 장치와 상기 복수의 프로세싱 데이터 버퍼들 각각의 사이에 연결되고, 상기 커맨드/어드레스 버퍼링 장치와 상기 복수의 프로세싱 데이터 버퍼들 각각의 사이에서 커맨드 및 어드레스 정보를 전송하기 위한 버스를 더 포함하는 메모리 모듈.
  12. 제11 항에 있어서, 상기 버스는 상기 프로세싱 데이터 버퍼들 각각에 포함된 프로세서에 연결되는 메모리 모듈.
  13. 제7 항에 있어서,
    상기 메모리 모듈의 일 모서리에 위치하고, 상기 메모리 모듈을 외부 장치에 연결하기 위한 하나의 세트의 메모리 모듈 단자들을 더 포함하고,
    상기 복수의 프로세싱 데이터 버퍼들은 상기 하나의 세트의 메모리 모듈 단자들과 상기 복수의 메모리 장치들 사이에 위치하는 메모리 모듈.
  14. 제13 항에 있어서, 상기 커맨드/어드레스 버퍼링 장치는 상기 복수의 메모리 장치들 중 제1 서브세트의 메모리 장치들과 상기 복수의 메모리 장치들 중 제2 서브세트의 메모리 장치들 사이에 위치하는 메모리 모듈.
  15. 제14 항에 있어서, 상기 커맨드/어드레스 버퍼링 장치는 상기 커맨드/어드레스 버퍼링 장치의 양 옆에 동일한 수의 상기 메모리 장치들을 가지는 메모리 모듈.
  16. 제7 항에 있어서, 상기 프로세싱 데이터 버퍼들 각각은,
    커맨드 비트들을 송수신하는 제3 세트의 입출력 단자들;
    상기 복수의 메모리 장치들 중 상응하는 메모리 장치로부터 데이터 비트들을 수신하고, 상기 상응하는 메모리 장치에 데이터 비트들을 전송하는 제4 세트의 입출력 단자들; 및
    상기 메모리 모듈의 외부와 통신을 위한 상응하는 세트의 메모리 모듈 단자들에 데이터 비트들을 송수신하기 위한 제5 세트의 입출력 단자들을 포함하는 메모리 모듈.
  17. 메모리 모듈에 포함된 프로세싱 데이터 버퍼에 있어서,
    데이터 버퍼부;
    산술 논리 유닛(arithmetic logical unit)을 포함하는 프로세서부;
    상기 데이터 버퍼부 및 상기 프로세서부에 연결되고, 상기 데이터 버퍼부 또는 상기 프로세서부를 선택하는 선택 회로;
    상기 선택 회로와 상기 데이터 버퍼부 사이에 연결된 복수의 제1 입출력 라인들;
    상기 선택 회로와 상기 프로세서부 사이에 연결된 복수의 제2 입출력 라인들;
    상기 데이터 버퍼부에 연결되고, 상기 프로세싱 데이터 버퍼의 외부의 메모리 컨트롤러와 통신을 위한 제1 세트의 입출력 단자들; 및
    상기 선택 회로에 연결되고, 상기 프로세싱 데이터 버퍼의 외부의 메모리 장치와 통신을 위한 제2 세트의 입출력 단자들을 포함하고,
    상기 프로세싱 데이터 버퍼는, 상기 산술 논리 유닛의 이용 없이 상기 메모리 장치를 위한 데이터 버퍼로서 동작하는 것, 및 상기 산술 논리 유닛을 이용하여 상기 메모리 장치로부터 수신된 데이터에 대한 처리 동작들을 수행하는 프로세서로서 동작하는 것을 전환하는 프로세싱 데이터 버퍼.
  18. 제17 항에 있어서,
    상기 제1 세트의 입출력 단자들은 데이터 비트들을 전송하고,
    상기 제2 세트의 입출력 단자들은 데이터 비트들을 전송하는 프로세싱 데이터 버퍼.
  19. 제18 항에 있어서,
    상기 복수의 제1 입출력 라인들은 데이터 비트들을 전송하고,
    상기 복수의 제2 입출력 라인들은 데이터 비트들 및 커맨드/어드레스 비트들을 전송하는 프로세싱 데이터 버퍼.
  20. 제19 항에 있어서,
    상기 제2 세트의 입출력 단자들은 커맨드/어드레스 비트들을 더욱 전송하는 프로세싱 데이터 버퍼.
KR1020170093014A 2016-10-14 2017-07-21 프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼 KR102336294B1 (ko)

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 KR20180042111A (ko) 2018-04-25
KR102336294B1 true 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)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
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
US10908820B2 (en) 2017-09-14 2021-02-02 Samsung Electronics Co., Ltd. Host-based and client-based command scheduling in 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 삼성전자주식회사 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
KR102665410B1 (ko) 2018-07-30 2024-05-13 삼성전자주식회사 메모리 장치의 내부 프로세싱 동작 방법
CN108777155A (zh) * 2018-08-02 2018-11-09 北京知存科技有限公司 闪存芯片
US11334284B2 (en) 2018-09-24 2022-05-17 Samsung Electronics Co., Ltd. Database offloading engine
KR102144185B1 (ko) * 2018-10-24 2020-08-12 전자부품연구원 상용 메모리 버스를 이용하는 프로세싱 인 메모리 장치
US20200201566A1 (en) * 2018-12-19 2020-06-25 Micron Technology, Inc. Module processing resource
DE102020105628A1 (de) * 2019-03-11 2020-09-17 Samsung Electronics Co., Ltd. Verfahren zur Durchführung interner Verarbeitungsvorgänge mit vordefinierter Protokollschnittstelle einer Speichervorrichtung
CN111679785A (zh) 2019-03-11 2020-09-18 三星电子株式会社 用于处理操作的存储器装置及其操作方法、数据处理***
WO2020255087A1 (en) * 2019-06-20 2020-12-24 Smolka John Michael Memory module and processor contained in the memory module
US11526441B2 (en) 2019-08-19 2022-12-13 Truememory Technology, LLC Hybrid memory systems with cache management
US11055220B2 (en) * 2019-08-19 2021-07-06 Truememorytechnology, LLC Hybrid memory systems with cache management
US11055003B2 (en) 2019-08-20 2021-07-06 Micron Technology, Inc. Supplemental AI processing in memory
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
US11829729B2 (en) * 2019-09-05 2023-11-28 Micron Technology, Inc. Spatiotemporal fused-multiply-add, and related systems, methods and devices
US11934824B2 (en) 2019-09-05 2024-03-19 Micron Technology, Inc. Methods for performing processing-in-memory operations, and related memory devices and systems
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
US11163490B2 (en) 2019-09-17 2021-11-02 Micron Technology, Inc. Programmable engine for data movement
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
US11537323B2 (en) 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
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 삼성전자주식회사 메모리 모듈 및 그의 동작 방법
US11537861B2 (en) 2020-06-23 2022-12-27 Micron Technology, Inc. Methods of performing processing-in-memory operations, and related devices and systems
KR20220066662A (ko) 2020-11-16 2022-05-24 에스케이하이닉스 주식회사 인메모리 연산을 수행하는 반도체 장치
FR3119483B1 (fr) 2021-01-29 2023-12-29 Commissariat Energie Atomique Dispositif comportant un circuit mémoire non volatil
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148482A1 (en) * 2003-01-13 2004-07-29 Grundy Kevin P. Memory chain

Also Published As

Publication number Publication date
US20180107406A1 (en) 2018-04-19
US10416896B2 (en) 2019-09-17
KR20180042111A (ko) 2018-04-25
US20190354292A1 (en) 2019-11-21
US11169711B2 (en) 2021-11-09

Similar Documents

Publication Publication Date Title
KR102336294B1 (ko) 프로세서 모드를 가지는 메모리 모듈 및 프로세싱 데이터 버퍼
CN107958679B (zh) 存储器模块和用于存储器模块的处理数据缓冲器
US9818707B2 (en) Stacked memory chip having reduced input-output load, memory module and memory system including the same
TWI492059B (zh) 多串列介面堆疊式晶粒記憶體架構
US10509594B2 (en) Memory module and memory system including the same
KR101529675B1 (ko) 멀티 칩 패키지 메모리 장치
US20140169111A1 (en) Device including a plurality of memory banks and a pipeline control circuit configured to execute a command on the plurality of memory banks
TW201519237A (zh) 用於組態用於混合記憶體模組之記憶體之輸入/輸出之裝置及方法
US10642503B2 (en) Extensible storage system and method
US9607667B1 (en) Memory device and electronic apparatus including the same
US11409676B2 (en) System on chip, memory device, electronic device comprising the SoC and memory device, and method for storing data in the electronic device
US11355181B2 (en) High bandwidth memory and system having the same
US20240161794A1 (en) Internal and external data transfer for stacked memory dies
US20190213162A1 (en) Integrated circuit system
US10373654B1 (en) Memory device with a signaling mechanism
US7403445B2 (en) Configuration of memory device
JP2017045498A (ja) メモリシステム
US7830740B2 (en) Semiconductor memory device having selectable transfer modes
CN115982071A (zh) 一种面向ddr3控制器的片上网络转换接口
KR100438736B1 (ko) 어드레스 라인을 이용해 데이터 쓰기를 수행하는 메모리제어 장치
CN111694772A (zh) 存储器控制器
US20230342034A1 (en) Methods, devices and systems for including alternate memory access operations over memory interface
CN116569151A (zh) 多通道存储器***

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant