KR20210092467A - 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치 - Google Patents

로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치 Download PDF

Info

Publication number
KR20210092467A
KR20210092467A KR1020200005896A KR20200005896A KR20210092467A KR 20210092467 A KR20210092467 A KR 20210092467A KR 1020200005896 A KR1020200005896 A KR 1020200005896A KR 20200005896 A KR20200005896 A KR 20200005896A KR 20210092467 A KR20210092467 A KR 20210092467A
Authority
KR
South Korea
Prior art keywords
local
memory
bank
global
data
Prior art date
Application number
KR1020200005896A
Other languages
English (en)
Inventor
오성일
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200005896A priority Critical patent/KR20210092467A/ko
Priority to US16/996,434 priority patent/US11276459B2/en
Priority to CN202011025517.8A priority patent/CN113140236A/zh
Publication of KR20210092467A publication Critical patent/KR20210092467A/ko

Links

Images

Classifications

    • 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/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/1678Details of memory controller using bus width
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0652Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00 the devices being arranged next and on each other, i.e. mixed assemblies
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0657Stacked arrangements of devices
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/18Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/28Constructional details of speech recognition systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/54Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06513Bump or bump-like direct electrical connections between devices, e.g. flip-chip connection, solder bumps
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06517Bump or bump-like direct electrical connections from device to substrate
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06541Conductive via connections through the device, e.g. vertical interconnects, through silicon via [TSV]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06555Geometry of the stack, e.g. form of the devices, geometry to facilitate stacking
    • H01L2225/06565Geometry of the stack, e.g. form of the devices, geometry to facilitate stacking the devices having the same size and there being no auxiliary carrier between the devices
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L23/00Details of semiconductor or other solid state devices
    • H01L23/52Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames
    • H01L23/538Arrangements for conducting electric current within the device in operation from one component to another, i.e. interconnections, e.g. wires, lead frames the interconnection structure between a plurality of semiconductor chips being formed on, or in, insulating substrates
    • H01L23/5383Multilayer substrates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Databases & Information Systems (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

본 발명의 실시 예에 따른 메모리 다이는 제 1 메모리 셀들을 포함하는 제 1 뱅크; 제 2 메모리 셀들을 포함하는 제 2 뱅크; 제 1 뱅크의 제 1 로컬 뱅크 데이터가 전송되는 제 1 뱅크 로컬 입출력 라인들에 연결되고 그리고 제 1 로컬 뱅크 데이터에 대한 제 1 로컬 연산을 실행하도록 구성되는 제 1 로컬 프로세서; 제 2 뱅크의 제 2 로컬 뱅크 데이터가 전송되는 제 2 뱅크 로컬 입출력 라인들에 연결되고 그리고 제 2 로컬 뱅크 데이터에 대한 제 2 로컬 연산을 실행하도록 구성되는 제 2 로컬 프로세서; 및 제 1 뱅크, 제 2 뱅크, 제 1 로컬 프로세서, 및 제 2 로컬 프로세서를 제어하고 그리고 제 1 로컬 연산의 제 1 로컬 연산 결과와 제 2 로컬 연산의 제 2 로컬 연산 결과에 대한 글로벌 연산을 실행하도록 구성되는 글로벌 프로세서를 포함한다.

Description

로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치{MEMORY DIE INCLUDING LOCAL PROCESSOR AND GLOBAL PROCESSOR, MEMORY DEVICE, AND ELECTRONIC DEVICE}
본 발명은 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치에 관한 것이다.
다수의 반도체 다이들이 적층될 수 있다. 3차원 구조를 갖는 메모리 장치는 상대적으로 더 많은 데이터를 고속으로 처리할 수 있다. 3차원 구조를 형성하기 위해, 관통 실리콘 전극(Trough Silicon Via; TSV)이 다수의 반도체 다이들을 적층하는데 사용될 수 있다. 최근 데이터 처리 속도가 증가함에도 불구하고 프로세서와 메모리가 분리됨에 따라, 프로세서와 메모리 사이에서 전송되는 데이터의 레이턴시(latency)가 문제되고 있다. 이를 해결하기 위해, 프로세서와 메모리를 통합(integrate)하는 PIM(Processing In Memory)이 주목받고 있다.
본 발명은 상술한 기술적 과제를 해결하기 위한 것으로, 본 발명은 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치를 제공할 수 있다.
본 발명의 실시 예에 따른 메모리 다이는 제 1 뱅크; 제 2 뱅크; 제 1 뱅크의 제 1 로컬 뱅크 데이터가 전송되는 제 1 뱅크 로컬 입출력 라인들에 연결되고 제 1 로컬 연산을 실행하도록 구성되는 제 1 로컬 프로세서; 제 2 뱅크의 제 2 로컬 뱅크 데이터가 전송되는 제 2 뱅크 로컬 입출력 라인들에 연결되고 제 2 로컬 연산을 실행하도록 구성되는 제 2 로컬 프로세서; 및 제 1 뱅크, 제 2 뱅크, 제 1 로컬 프로세서, 및 제 2 로컬 프로세서를 제어하고 제 1 로컬 연산의 제 1 로컬 연산 결과와 제 2 로컬 연산의 제 2 로컬 연산 결과에 대한 글로벌 연산을 실행하도록 구성되는 글로벌 프로세서를 포함한다.
본 발명의 실시 예에 따른 메모리 장치의 메모리 다이는 로컬 프로세서들과 글로벌 프로세서를 모두 포함할 수 있다. 따라서, 메모리 컨트롤러는 메모리 장치에 대한 채널의 대역폭을 완전하게 활용할 수 있다.
도 1 및 도 2는 본 발명의 실시 예들에 따른 전자 장치들을 예시적으로 도시한다. 도 3 및 도 4는 도 1 및 도 2의 메모리 장치를 좀 더 구체적으로 도시한다. 도 5는 도 3 및 도 4의 PIM 다이의 블록도를 예시적으로 도시한다. 도 6은 도 5의 로컬 프로세서의 블록도를 예시적으로 도시한다. 도 7 및 도 8은 도 3 및 도 4의 PIM 다이의 블록도를 예시적으로 도시한다. 도 9는 도 1 및 도 2의 시스템 온 칩의 블록도를 예시적으로 도시한다. 도 10은 도 9의 프로세서가 메모리 컨트롤러를 접근하고 메모리 컨트롤러가 메모리 장치를 접근하는 예시를 도시한다. 도 11은 도 1 및 도 2의 전자 장치가 복수의 프로세싱들을 동시에 수행하는 예시를 도시한다. 도 12 내지 도 14는 도 1 및 도 2의 시스템 온 칩이 시스템 프로세싱을 실행하고 메모리 다이의 글로벌 프로세서의 온-다이 프로세싱을 요청하는 예시들을 도시한다. 도 15는 본 발명의 또 다른 실시 예에 따른 전자 장치를 예시적으로 도시한다.
도 1은 본 발명의 실시 예에 따른 전자 장치를 예시적으로 도시한다. 전자 장치(100a)는 전자 장치(1000), 시스템 온 칩(SoC; 2000), 및 인터포저(3000)를 포함할 수 있다. 전자 장치(100a)는 컴퓨팅 시스템 또는 전자 시스템으로도 지칭될 수 있다. 메모리 장치(1000)는 PIM(Processing In Memory/Processor In Memory) 다이들(1100~1800) 및 버퍼 다이(1900)를 포함할 수 있다. PIM 다이들(1100~1800) 각각은 메모리 다이, 코어 다이, FIM(Function In Memory) 다이, 슬레이브 다이 등으로도 지칭될 수 있고 버퍼 다이(1900)는 인터페이스 다이, 로직 다이, 마스터 다이 등으로도 지칭될 수 있다. 다이는 칩으로도 지칭될 수 있다. PIM 다이(1100)는 버퍼 다이(1900) 상에 그리고 PIM 다이(1200)는 PIM 다이(1100) 상에 적층될 수 있다. 메모리 장치(1000)는 다수의 다이들(1100~1900)이 적층되는 3차원 메모리 구조를 가질 수 있다. 다이들(1100~1900)을 적층시키기 위해, 메모리 장치(1000)는 다이들(1100~1900)을 관통하는 관통 전극들(TSV)과 관통 전극들(TSV)을 전기적으로 연결하는 마이크로 범프들(BP)을 포함할 수 있다. 관통 전극들(TSV)과 마이크로 범프들(BP)은 메모리 장치(1000) 내 다이들(1100~1900) 간의 전기적 그리고 물리적 경로들을 제공할 수 있다. 여기서, 관통 전극들(TSV)의 개수와 마이크로 범프들(BP)의 개수는 도 1에서 도시된 것으로 한정되지 않는다. 메모리 장치(1000)는 PIM 또는 FIM에 관한 것으로, 데이터를 읽고 쓰는 것에 더해 데이터에 대한 프로세싱 연산을 더 실행할 수 있다. 메모리 장치(1000)는 동일한 다이(die)에 통합된(integrated) RAM(Random Access Memory)과 PE(Processing Element)를 포함하는 계산적(computational) 메모리 장치에 해당할 수 있다. 메모리 장치(1000)의 PIM 다이들(1100~1800) 각각은 데이터를 읽고 쓰는데 사용되고 다수의 메모리 셀들을 포함하는 메모리 셀 어레이(MCA) 그리고 데이터에 대한 프로세싱 연산을 실행하는 PE(Processing Element)를 포함할 수 있다. 예를 들어, PE는 프로세서 또는 프로세싱 회로로도 지칭될 수 있다. 스택 식별자(SID0)는 PIM 다이들(1100~1400)로 할당될 수 있고 스택 식별자(SID1)는 PIM 다이들(1500~1800)로 할당될 수 있다. 스택 식별자(SID0/SID1)는 버퍼 다이(1900) 상에 적층된 다수의 PIM 다이들(1100~1800)을 식별 혹은 구별하는데 사용될 수 있다. 예를 들어, 메모리 컨트롤러(2100)는 스택 식별자(SID0/SID1)를 이용하여 PIM 다이들(1100~1400) 혹은 PIM 다이들(1500~1800)을 접근할 수 있다. 여기서, PIM 다이들(1100~1800)의 개수 및 스택 식별자(SID0/SID1) 당 PIM 다이들(1100~1400/1500~1800)의 개수는 각각 도 1에서 도시된 것으로 한정되지 않는다. 버퍼 다이(1900)는 메모리 컨트롤러(2100)와 PIM 다이들(1100~1800)에 대한 인터페이스 회로로서 동작할 수 있다. 버퍼 다이(1900)는 메모리 컨트롤러(2100)로부터 전송되는 명령, 데이터, 신호들 등을 인터포저(3000)를 통해 수신하고 그리고 수신된 명령, 데이터, 신호들 등을 관통 전극들(TSV)과 마이크로 범프들(BP)을 통해 PIM 다이들(1100~1800)로 전송할 수 있다. 버퍼 다이(1900)는 PIM 다이들(1100~1800)로부터 출력되는 데이터를 관통 전극들(TSV)과 마이크로 범프들(BP)을 통해 수신하고 그리고 수신된 데이터를 인터포저(3000)를 통해 메모리 컨트롤러(2100)로 전송할 수 있다. 버퍼 다이(1900)는 상술한 신호들을 수신하고 증폭시키는 물리 계층(PHY; 1980), 버퍼링 회로들, 혹은 인터페이스 회로들을 포함할 수 있다. 실시 예에 있어서, 메모리 장치(1000)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)과 같은 범용 DRAM 장치, LPDDR(low power double data rate) SDRAM과 같은 모바일용 DRAM 장치, GDDR(Graphics Double Data Rate) SGRAM(Synchronous Graphics Random Access Memory)과 같은 그래픽용 DRAM 장치, 또는 고용량과 고대역폭을 제공하는 Wide I/O, HBM(High Bandwidth Memory), HBM2, HBM3, HMC(Hybrid Memory Cube) 등과 같은 DRAM 장치일 수 있다. 시스템 온 칩(2000)은 메모리 장치(1000)를 이용하여 전자 장치(100a)가 지원하는 어플리케이션들을 실행할 수 있다. 시스템 온 칩(2000)은 호스트, 어플리케이션 프로세서(AP) 등으로도 지칭될 수 있다. 시스템 온 칩(2000)은 메모리 장치(1000)를 제어하고 메모리 장치(1000)와 데이터 입출력을 수행하는 메모리 컨트롤러(2100)를 포함할 수 있다. 예를 들어, 메모리 컨트롤러(2100)는 DMA(Direct Memory Access) 방식으로 메모리 장치(1000)로 접근할 수 있다. 메모리 컨트롤러(2100)는 인터포저(3000)를 통해 메모리 장치(1000)의 PHY(1980)와 전기적으로 연결되는 PHY(2180)를 포함할 수 있다. 인터포저(3000)는 시스템 온 칩(2000)과 메모리 장치(1000)를 연결할 수 있다. 인터포저(3000)는 시스템 온 칩(2000)의 PHY(2180)와 메모리 장치(1000)의 PHY(1980)와 사이를 연결하고 전기적 연결을 위한 도전성 물질들을 이용하여 형성되는 물리적 경로들을 제공할 수 있다. 인터포저(3000) 대신에 기판 혹은 PCB(Printed Circuit Board)가 사용될 수도 있다.
도 2는 본 발명의 다른 실시 예에 따른 전자 장치를 예시적으로 도시한다. 전자 장치(100b)는 메모리 장치(1000) 및 시스템 온 칩(2000)을 포함할 수 있다. 전자 장치(100a)에서 메모리 장치(1000) 및 시스템 온 칩(2000)은 인터포저(3000)를 통해 서로 연결되었으나, 전자 장치(100b)에서 메모리 장치(1000)는 시스템 온 칩(2000) 상에 적층될 수 있다. 시스템 온 칩(2000)은 메모리 장치(1000)로의 전기적 연결들을 구현하는데 사용되는 관통 전극들(TSV)을 더 포함할 수 있고 PHY들(1980, 2180)은 마이크로 범프들(BP)을 통해 서로 전기적으로 연결될 수 있다.
도 3은 도 1 및 도 2의 메모리 장치를 좀 더 구체적으로 도시한다. 메모리 컨트롤러(2100)는 채널들(CH1~CHK; K는 2 이상의 자연수)을 통해 메모리 장치(1000)를 접근할 수 있다. 예를 들어, PIM 다이들(1100, 1500)은 채널(CH1)로 할당될 수 있고, PIM 다이들(1400, 1800)은 채널(CHK)로 할당될 수 있고, 그리고 나머지 다이들(1200~1700)도 유사한 방식으로 채널들로 각각 할당될 수 있다. 동일한 채널(CH1)로 할당된 PIM 다이들(1100, 1500)은 스택 식별자(SID0/SID1)에 의해 식별될 수 있다. 메모리 장치(1000)는 채널들(CH1~CHK)에 각각 대응하고 채널들(CH1~CHK)을 통해 전송되는 신호들이 전송되는 경로들(Path_1~Path_K)을 포함할 수 있다. 경로들(Path_1~Path_K)은 버퍼 다이(1900)와 PIM 다이들(1100~1800) 간의 전기적 연결 경로들을 제공할 수 있고 그리고 도 1 및 도 2에서 전술한 관통 전극들(TSV)과 마이크로 범프들(BP)을 포함할 수 있다. PIM 다이(1100)는 뱅크 그룹들(BG0~BG3), 데이터 버스들(DB0, DB1), 뱅크 컨트롤러들(BCTRL0, BCTRL1), 글로벌 프로세서(GP), 명령 및 어드레스 디코더(CADEC), 및 데이터 입출력 회로(DATAIO)를 포함할 수 있다. PIM 다이(1100)만 상세하게 설명 및 도시되었으나 나머지 PIM 다이들(1200~1800) 각각은 PIM 다이(1100)와 실질적으로 동일하게 구현되고 동작할 수 있다. 뱅크 그룹들(BG0~BG3)은 뱅크 어드레스(BA0~BA3) 중 뱅크 어드레스(BA2, BA3)에 의해 식별될 수 있다. 예를 들어, BA2=0, BA3=0이면, 뱅크 그룹(BG0)이 선택될 수 있다. 뱅크 그룹(BG0)은 뱅크들(BK0~BK3)을 포함할 수 있다. 하나의 뱅크 그룹 내 뱅크들은 어드레스(BA0~BA3) 중 뱅크 어드레스(BA0, BA1)에 의해 식별될 수 있다. 예를 들어, BA0=0, BA1=0, BA2=0, BA3=0이면, 뱅크(BK0)가 선택될 수 있다. 도 1 및 도 2의 메모리 셀 어레이(MCA)는 뱅크들(BK0~BK15)로 나뉠 수 있다. 뱅크 어드레스(BA0~BA3) 중 LSB에 해당하는 뱅크 어드레스(BA0)가 0인 경우에 선택될 수 있는 뱅크들(BK0, BK2, BK4, BK6, BK8, BK10, BK12, BK14) 각각은 위(Top; 혹은 짝수) 뱅크로 지칭될 수 있다. 뱅크 어드레스(BA0~BA3) 중 LSB에 해당하는 뱅크 어드레스(BA0)가 1인 경우에 선택될 수 있는 뱅크들(BK1, BK3, BK5, BK7, BK9, BK11, BK13, BK15) 각각은 아래(Bottom; 혹은 홀수) 뱅크로 지칭될 수 있다. 예를 들어, 뱅크들(BK0~BK15) 각각은 동일한 개수의 메모리 셀들을 포함할 수 있고 그리고 뱅크 그룹들(BG0~BG3) 각각은 동일한 개수의 뱅크들을 포함할 수 있다. 예를 들어, 뱅크 그룹들(BG0~BG3)은 서로 동일하게 구현될 수 있고 뱅크들(BK0~BK15)도 서로 동일하게 구현될 수 있다. 뱅크 그룹(BG0)은 로컬 프로세서들(LP0~LP3)을 포함할 수 있다. 예를 들어, 로컬 프로세서(LP0)는 뱅크(BK0)의 데이터(혹은 로컬 뱅크 데이터)에 대한 로컬 연산을 실행할 수 있고, 로컬 프로세서(LP1)는 뱅크(BK1)의 데이터에 대한 로컬 연산을 실행할 수 있고, 로컬 프로세서(LP2)는 뱅크(BK2)의 데이터에 대한 로컬 연산을 실행할 수 있고, 그리고 로컬 프로세서(LP3)는 뱅크(BK3)의 데이터에 대한 로컬 연산을 실행할 수 있다. 로컬 프로세서는 로컬 프로세싱 회로, 로컬 PE, 로컬 PE 회로 등으로도 지칭될 수 있다. 뱅크 그룹(BG1)은 뱅크들(BK4~BK7)의 데이터에 대한 로컬 연산들을 각각 실행하는 로컬 프로세서들(LP4~LP7)을 포함할 수 있다. 뱅크 그룹들(BG0, BG1)과 유사하게 뱅크 그룹들(BG2, BG3)도 로컬 프로세서들(LP8~LP15)을 포함할 수 있다. 예를 들어, 로컬 프로세서들(LP0~LP15)은 도 1 및 도 2의 PIM 다이들(1100~1800) 각각의 PE에 대응하거나 도 1 및 도 2의 PIM 다이들(1100~1800) 각각의 PE를 구성할 수 있다. 하나의 PIM 다이(1100) 내 포함되는 뱅크 그룹들의 개수와 뱅크 그룹 당 뱅크들의 개수는 도 3의 예시로 한정되지 않는다. 하나의 채널(CH1)이 PIM 다이(1100)로 할당되고 하나의 채널(CH1)에 뱅크 그룹들(BG0~BG3)과 뱅크들(BK0~BK15)이 할당된 것으로 도시되었으나 이에 한정되지 않는다. PIM 다이(1100)로 다른 채널(들)이 더 할당될 수 있고 PIM 다이(1100)는 다른 채널(들)에 할당된 뱅크 그룹들과 뱅크들을 더 포함할 수 있다. 예를 들어, PIM 다이(1100)는 4개의 채널들(CH1~CH4)로 할당된 뱅크 그룹들(BG0~BG15)과 뱅크들(BK0~BK63)을 포함할 수 있으며, 도 3에서 예시된 채널(CH1)과 유사하게 각 채널에 대해 뱅크 그룹들과 뱅크들이 PIM 다이(1100) 내에서 구성될 수 있다. 하나의 뱅크 그룹은 4개의 로컬 프로세서들을 포함하고 하나의 로컬 프로세서가 하나의 뱅크로 할당된 것으로 설명되었으나, 하나의 뱅크 그룹은 뱅크들의 개수보다 작은 수의 로컬 프로세서들을 포함할 수도 있고 하나의 로컬 프로세서가 둘 이상의 뱅크들로 할당될 수도 있다. 어느 경우든, 상술한 수치들로 본 발명의 범위가 한정되지 않는다. 데이터 버스(DB0)는 뱅크 그룹들(BG0, BG1)에 관한 데이터 입출력 경로들을 포함할 수 있다. 예를 들어, 뱅크들(BK0~BK3) 또는 뱅크들(BK4~BK7)에 기입될 데이터, 뱅크들(BK0~BK3) 또는 뱅크들(BK4~BK7)로부터 독출된 데이터, 로컬 프로세서들(LP0~LP3) 또는 로컬 프로세서들(LP4~LP7)에 의해 처리될 데이터, 로컬 프로세서들(LP0~LP3) 또는 로컬 프로세서들(LP4~LP7)에 의해 처리된 데이터 등이 데이터 버스(DB0)를 통해 전송될 수 있다. 데이터 버스(DB1)는 뱅크 그룹들(BG2, BG3)에 관한 데이터 입출력 경로들을 포함할 수 있다. 할당된 뱅크 그룹들을 제외하면, 데이터 버스들(DB0, DB1)은 서로 동일하게 구현될 수 있고 서로 통합될 수도 있다. 뱅크 컨트롤러(BCTRL0)는 명령 및 어드레스 디코더(CADEC)의 제어에 기초하여 뱅크 그룹들(BG0, BG1)의 뱅크들(BK0~BK7)을 제어할 수 있다. 뱅크 컨트롤러(BCTRL2)는 명령 및 어드레스 디코더(CADEC)의 제어에 기초하여 뱅크 그룹들(BG2, BG3)의 뱅크들(BK8~BK15)을 제어할 수 있다. 예를 들어, 뱅크 컨트롤러들(BCTRL0, BCTRL1)은 뱅크들(BK0~BK15)을 활성화하거나 프리차지할 수 있다. 할당된 뱅크 그룹들을 제외하면, 뱅크 컨트롤러들(BCTRL0, BCTRL1)은 서로 동일하게 구현될 수 있고 서로 통합될 수도 있다. 글로벌 프로세서(GP)는 명령 및 어드레스 디코더(CADEC)의 제어에 기초하여 뱅크 그룹들(BG0~BG3)의 뱅크들(BK0~BK15)과 로컬 프로세서들(LP0~LP15)을 제어할 수 있다. 예를 들어, 글로벌 프로세서(GP)는 로컬 프로세서들(LP0~LP15)에 의해 처리될 데이터 또는 로컬 프로세서들(LP0~LP15)에 의해 처리된 데이터를 선택하거나, 로컬 프로세서들(LP0~LP15)가 로컬 연산들을 실행을 개시하거나 종료하는 시점들을 제어할 수 있다. 도 3의 도시와 달리, 예를 들어, 글로벌 프로세서(GP)는 뱅크 그룹들(BG0, BG1)의 뱅크들(BK0~BK7)과 로컬 프로세서들(LP0~LP7)을 제어하는 제 1 글로벌 프로세서 및 뱅크 그룹들(BG2, BG3)의 뱅크들(BK8~BK15)과 로컬 프로세서들(LP8~LP15)을 제어하는 제 2 글로벌 프로세서로 나뉠 수도 있다. 명령 및 어드레스 디코더(CADEC)는 채널(CH1)과 경로(Path_1)를 통해 전송되는 클럭 신호(CK; 도 9 참조)에 기초하여 채널(CH1)과 경로(Path_1)를 통해 전송되는 명령 및 어드레스 신호들(CA; 도 9 참조)을 수신할 수 있다. 명령 및 어드레스 디코더(CADEC)는 명령 및 어드레스 신호들(CA)을 디코딩할 수 있다. 명령 및 어드레스 디코더(CADEC)는 디코딩 결과에 기초하여 PIM 다이(1100)의 구성 요소들을 제어할 수 있다. 데이터 입출력 회로(DATAIO)는 명령 및 어드레스 디코더(CADEC)의 제어에 기초하여 채널(CH1)과 경로(Path_1)를 통해 전송되는 데이터 입출력 신호들(DQ; 도 9 참조)을 수신하고 데이터 입출력 신호들(DQ)에 포함된 쓰기 데이터를 뱅크 그룹들(BG0~BG3)의 뱅크들(BK0~BK15)로 제공할 수 있다. 데이터 입출력 회로(DATAIO)는 뱅크 그룹들(BG0~BG3)의 뱅크들(BK0~BK15)과 로컬 프로세서들(LP0~LP15)로부터 출력되는 읽기 데이터를 수신하고 읽기 데이터를 포함하는 데이터 입출력 신호들(DQ)을 출력할 수 있다. 읽기 데이터를 포함하는 데이터 입출력 신호들(DQ)은 경로(Path_1)와 채널(CH1)을 통해 메모리 컨트롤러(2100)로 전송될 수 있다.
도 4는 도 1 및 도 2의 메모리 장치를 좀 더 구체적으로 도시한다. 도 3의 메모리 장치(1000)와 도 4의 메모리 장치(1000) 간의 차이점이 주로 설명될 것이다. 메모리 장치(1000)는 PIM 다이들(1100~1400)과 메모리 다이들(1500~1800)을 포함할 수 있다. PIM 다이들(1100~1400) 각각은 도 3의 PIM 다이(1100)와 동일할 수 있다. 메모리 다이들(1500~1800) 각각은 도 3의 PIM 다이(1100)와 상이하게 구현될 수 있다. 메모리 다이(1500)는 뱅크 그룹들(BG0~BG3), 뱅크들(BK0~BK15), 데이터 버스들(DB0, DB1), 뱅크 컨트롤러들(BCTRL0, BCTRL1), 명령 및 어드레스 디코더(CADEC), 및 데이터 입출력 회로(DATAIO)를 포함할 수 있고 상술한 구성 요소들은 도 3에서 설명되었다. 메모리 다이(1500)는 로컬 프로세서들(LP0~LP15), 글로벌 프로세서(GP)를 포함하지 않을 수 있고 PIM 다이로 지칭되지 않을 수 있다. 나머지 메모리 다이들(1600~1800) 각각은 메모리 다이(1500)와 실질적으로 동일하게 구현되고 동작할 수 있다.
도 5는 도 3 및 도 4의 PIM 다이의 블록도를 예시적으로 도시한다. 도 5에서는 뱅크 그룹(BG0)만이 상세하게 도시되었으나, 전술한대로, 다른 뱅크 그룹들(BG1~BG3)도 뱅크 그룹(BG0)과 실질적으로 동일하게 구현될 수 있다. 도 5에서 생략된 구성 요소들(CADEC, DATAIO)에 대한 설명은 도 7 및 도 8에서 설명될 것이다. 뱅크 그룹(BG0)은 로우 디코더(RD0) 및 컬럼 디코더(CD0)를 포함할 수 있다. 로우 디코더(RD0)는 메모리 어드레스의 로우 어드레스를 디코딩하고 뱅크(BK0)의 워드 라인(WL0)을 선택하고 활성화할 수 있다. 여기서, 메모리 어드레스는 도 1 및 도 2의 메모리 컨트롤러(2100)로부터 출력되고 메모리 장치(1000)의 구성 요소들을 접근하는데 사용될 수 있다. 예를 들어, 워드 라인(WL0)이 활성화되면(비활성화되면) 뱅크(BK0)는 활성화 상태(프리차지 상태)일 수 있다. 컬럼 디코더(CD0)는 메모리 어드레스의 컬럼 어드레스를 디코딩하고 뱅크(BK0)의 컬럼 선택 라인(CSL0)을 선택하고 활성화할 수 있다. 뱅크(BK0)는 워드 라인(WL0)과 컬럼 선택 라인(CSL0)을 통해 접근되는 메모리 셀들(MC0)을 포함할 수 있다. 뱅크(BK0)는 다른 워드 라인들과 다른 컬럼 선택 라인들을 통해 접근되는 메모리 셀들을 더 포함할 수 있다.
뱅크 그룹(BG0)은 입출력 감지 증폭기(IOSA0), 쓰기 드라이버(WDRV0), 뱅크 로컬 입출력 게이팅 회로(BLIOGT0), 뱅크 글로벌 입출력 게이팅 회로(BGIOGT0), 및 데이터 버스 입출력 게이팅 회로(DBIOGT0)를 포함할 수 있다. 입출력 감지 증폭기(IOSA0)는 메모리 셀들(MC0)로부터 셀 입출력 라인들(CIO0)을 통해 출력되는 읽기 데이터를 감지 및 증폭할 수 있고 그리고 읽기 데이터를 뱅크 로컬 입출력 라인들(BLIO0)로 출력할 수 있다. 쓰기 드라이버(WDRV0)는 뱅크 로컬 입출력 라인들(BLIO0)을 통해 전송되는 쓰기 데이터를 수신하고 쓰기 데이터를 셀 입출력 라인들(CIO0)을 통해 메모리 셀들(MC0)로 기입할 수 있다. 뱅크 로컬 입출력 게이팅 회로(BLIOGT0)는 쓰기 드라이버(WDRV0)를 뱅크 로컬 입출력 라인들(BLIO0)로 전기적으로 연결하거나 차단할 수 있다. 뱅크 로컬 입출력 게이팅 회로(BLIOGT0)는 입출력 감지 증폭기(IOSA0)를 뱅크 로컬 입출력 라인들(BLIO0)로 전기적으로 연결하거나 차단할 수도 있다. 뱅크 글로벌 입출력 게이팅 회로(BGIOGT0)는 뱅크 로컬 입출력 라인들(BLIO0)을 뱅크 글로벌 입출력 라인들(BGIO0)로 전기적으로 연결하거나 차단할 수 있다. 뱅크 글로벌 입출력 라인들(BGIO0)은 뱅크 그룹(BG0) 내 뱅크들(BK0~BK3)에 의해 공유될 수 있다. 데이터 버스 입출력 게이팅 회로(DBIOGT0)는 뱅크 글로벌 입출력 라인들(BGIO0)를 데이터 버스(DB0)로 전기적으로 연결하거나 차단할 수 있다. 데이터 버스(DB0)는 뱅크 그룹들(BG0, BG1)에 의해 공유될 수 있다. 예를 들어, 뱅크 로컬 입출력 게이팅 회로(BLIOGT0), 뱅크 글로벌 입출력 게이팅 회로(BGIOGT0), 및 데이터 버스 입출력 게이팅 회로(DBIOGT0) 각각은 입출력 멀티플렉서 또는 스위치로서 동작할 수 있다. 상술한 구성 요소들(RD0, CD0, IOSA0, WDRV0, BLIOGT0, BGIOGT0)은 뱅크(BK0)의 데이터 입출력을 위한 것이다. 유사하게, 뱅크 그룹(BG0)은, 뱅크들(BK1~BK3)의 데이터 입출력들을 위해, 로우 디코더들(RD1~RD3), 컬럼 디코더들(CD1~CD3), 입출력 감지 증폭기들(IOSA1~IOSA3), 쓰기 드라이버들(WDRV1~WDRV3), 뱅크 로컬 입출력 게이팅 회로들(BLIOGT1~BLIOGT3), 및 뱅크 글로벌 입출력 게이팅 회로들(BGIOGT1~ BGIOGT3)을 포함할 수 있다.
로컬 프로세서(LP0)는 뱅크 로컬 입출력 라인들(BLIO0)과 뱅크 글로벌 입출력 라인들(BGIO0)에 각각 연결될 수 있다. 뱅크 로컬 입출력 라인들(BLIO0)을 통해 전송되는 데이터, 뱅크 글로벌 입출력 라인들(BGIO0)을 통해 전송되는 데이터, 내부적으로 발생하는 데이터 중 적어도 하나에 대한 로컬 연산을 실행할 수 있다. 예를 들어, 뱅크 글로벌 입출력 라인들(BGIO0)을 통해 전송되는 데이터는 데이터 버스(DB0)를 통해 전송되는 데이터와 실질적으로 동일할 수 있다.
전술한대로, 뱅크 그룹들(BG0~BG4)은 서로 동일하게 구현될 수 있다. 도 5에서 뱅크 그룹들(BG1~BG3)은 각각 데이터 버스 입출력 게이팅 회로들(DBIOGT1~DBIOGT3)을 포함하는 것으로 도시되었으나, 뱅크 그룹들(BG1~BG3)은 전술한 뱅크 그룹(BG0)의 구성 요소들을 포함할 수 있다.
글로벌 프로세서(GP)는 데이터 버스들(DB0, DB1)에 각각 연결될 수 있다. 글로벌 프로세서(GP)는 데이터 버스(DB0)를 통해 전송되는 데이터, 데이터 버스(DB1)를 통해 전송되는 데이터, 내부적으로 발생하는 데이터, 및 메모리 장치(1000) 외부(예를 들어, 시스템 온 칩(2000))로부터 전송되는 데이터 중 적어도 하나에 대한 글로벌 연산을 실행할 수 있다. 예를 들어, 글로벌 프로세서(GP)는 뱅크 글로벌 입출력 라인들(BGIO0~BGIO3), 데이터 버스 입출력 게이팅 회로들(DBIOGT0~DBIOGT3), 및 데이터 버스들(DB0, DB1)을 통해 전송되는 로컬 프로세서들(LP0~LP15)의 로컬 연산 결과들 중 적어도 일부 또는 전체에 대한 글로벌 연산을 실행할 수 있다.
도 6은 도 5의 로컬 프로세서의 블록도를 예시적으로 도시한다. 로컬 프로세서(LP0)는 입력 멀티플렉서(IMUX), LPE(Local Processing Element) 어레이(LPA), 로컬 레지스터(REG), 및 출력 멀티플렉서(OMUX)를 포함할 수 있다. 입력 멀티플렉서(IMUX)는 뱅크 로컬 입출력 라인들(BLIO0)을 통해 뱅크(BK0)의 로컬 뱅크 데이터(쓰기 데이터 혹은 읽기 데이터), 뱅크 글로벌 입출력 라인들(BGIO0)을 통해 뱅크 그룹(BG0)의 데이터, 및 레지스터 출력 라인들(RO0)의 로컬 레지스터 데이터를 수신할 수 있다. 여기서, 뱅크 그룹(BG0)의 데이터는 뱅크 그룹(BG0) 내 다른 뱅크들(BK1~BK3)의 데이터, 데이터 버스들(DB0, DB1)을 통해 전송되는 다른 뱅크 그룹들(BG1~BG3)의 다른 뱅크들(BK4~BK15)의 데이터, 데이터 버스들(DB0, DB1)을 통해 전송되고 글로벌 프로세서(GP)에 의해 브로드캐스트되는 브로드캐스트 데이터, 데이터 입출력 회로(DATAIO)에 의해 수신되고 데이터 버스들(DB0, DB1)을 통해 전송되는 외부 데이터 중 어느 하나일 수 있다. 브로드캐스트 데이터는 글로벌 프로세서(GP)가 모든 로컬 프로세서들(LP0~LP15) 또는 모든 뱅크들(BK0~BK15)로 전송하는 데이터를 나타낼 수 있다. 입력 멀티플렉서(IMUX)는 입력 제어 신호(ICTRL0)에 기초하여 상술한 데이터 중 적어도 하나를 LPE 어레이(LPA)로 제공할 수 있으며, 상술한 데이터는 피연산자들(OPA~OPD)로서 LPE 어레이(LPA)로 제공될 수 있다.
LPE 어레이(LPA)는 프로세싱 제어 신호(PCTRL0)에 기초하여 상술한 데이터 중 적어도 하나에 대한 로컬 연산을 실행할 수 있다. 예를 들어, LPE 어레이(LPA)에 의해 실행되는 로컬 연산은 덧셈, 뺄셈, 곱셈, 나눗셈, 쉬프트, AND, NAND, OR, NOR, XNOR, XOR 등의 다양한 산술 혹은 로직 연산(들)일 수 있다. 로컬 레지스터(REG)는 레지스터 제어 신호(RCTRL0)에 기초하여 레지스터 입력 라인들(RI0)을 통해 LPE 어레이(LPA)의 로컬 연산의 로컬 연산 결과를 수신하고 저장할 수 있다. 로컬 레지스터(REG)는 레지스터 제어 신호(RCTRL0)에 기초하여 저장된 로컬 연산 결과를 로컬 레지스터 데이터로서 레지스터 출력 라인들(RO0)로 출력할 수 있다. 출력 멀티플렉서(OMUX)는 출력 제어 신호(OCTRL0)에 기초하여 로컬 레지스터(REG)의 로컬 레지스터 데이터를 뱅크 로컬 입출력 라인들(BLIO0), 레지스터 출력 라인들(RO1), 및 뱅크 글로벌 입출력 라인들(BGIO0) 중 적어도 하나로 출력할 수 있다.
도 7은 도 3 및 도 4의 PIM 다이의 블록도를 예시적으로 도시한다. PIM 다이(1100a)는 도 3 및 도 4의 PIM 다이(1100)의 일 예시일 수 있다. 명령 및 어드레스 디코더(CADEC)는 명령 및 어드레스 신호들(CA)을 디코딩하고 디코딩 결과에 기초하여 뱅크 컨트롤러들(BCTRL0, BCTRL1), 데이터 입출력 회로(DATAIO), 및 글로벌 프로세서(GPa)를 제어할 수 있다. 뱅크 컨트롤러(BCTRL0)는 뱅크 그룹들(BG0, BG1)의 메모리 셀들에 대한 읽기 및 쓰기를 제어할 수 있다. 뱅크 컨트롤러(BCTRL1)는 뱅크 그룹들(BG2, BG3)의 메모리 셀들에 대한 읽기 및 쓰기를 제어할 수 있다. 데이터 입출력 회로(DATAIO)는 데이터 입출력 신호들(DQ)의 데이터를 데이터 버스들(DB0, DB1)로 출력하거나 데이터 버스들(DB0, DB1)의 데이터를 포함하는 데이터 입출력 신호들(DQ)을 출력할 수 있다. 데이터 버스들(DB0, DB1)은 도 3 내지 도 5의 예시들과 같이 각각 분할될 수 있거나 또는 도 7의 예시와 같이 하나의 버스로서 통합될 수도 있다.
글로벌 프로세서(GPa)는 도 5의 글로벌 프로세서(GP)의 일 예시일 수 있다. 글로벌 프로세서(GPa)는 프로세서 컨트롤러(1001a), 프로그램 버퍼(1002), 명령어 큐(1003), 명령어 디코더(1004), 로컬 프로세서 및 메모리 컨트롤러(1005), GPE(Global Processing Element) 어레이(1006), 글로벌 레지스터(1007), 및 데이터 버퍼(1008)를 포함할 수 있다. 프로세서 컨트롤러(1001a)는 명령 및 어드레스 디코더(CADEC)로부터 명령(CMD)과 메모리 어드레스(ADD)를 수신할 수 있다. 프로세서 컨트롤러(1001a)는 명령(CMD)과 메모리 어드레스(ADD)에 기초하여 글로벌 프로세서(GPa)의 다른 구성 요소들(1002~1008)을 제어할 수 있다. 예를 들어, 프로세서 컨트롤러(1001a)는 제어 정보를 저장하는 제어 레지스터를 포함할 수 있다. 제어 레지스터에 저장된 제어 정보는 명령(CMD)과 메모리 어드레스(ADD)에 의해 변경될 수 있다. 프로세서 컨트롤러(1001a)는 제어 정보에 기초하여 글로벌 프로세서(GPa)의 다른 구성 요소들(1002~1008)을 제어할 수 있다.
프로그램 버퍼(1002)는 호스트의 프로그램을 저장할 수 있다. 호스트는 시스템 온 칩(2000) 혹은 메모리 장치(1000)에 대한 외부 장치일 수 있다. 일 실시 예에 있어서, 도 7의 도시와 같이, 데이터 입출력 회로(DATAIO)는 호스트의 프로그램을 포함하는 데이터 입출력 신호들(DQ)을 수신하고 호스트의 프로그램을 데이터 버스들(DB0, DB1)로 출력할 수 있다. 프로그램 버퍼(1002)는 데이터 버스들(DB0, DB1)을 통해 호스트의 프로그램을 수신하고 저장할 수 있다. 다른 실시 예에 있어서, 도 7의 도시와 달리, 명령 및 어드레스 디코더(CADEC)는 호스트의 프로그램을 포함하는 명령 및 어드레스 신호들(CA)을 수신하고 호스트의 프로그램을 프로그램 버퍼(1002)로 출력할 수도 있다. 어느 경우든, 프로그램 버퍼(1002)에 저장되는 호스트의 프로그램은 업데이트될 수 있다. 프로그램 버퍼(1002)는 프로그램의 명령어들을 명령어 큐(1003)로 기입하거나 제공할 수 있다. 명령어 큐(1003)는 프로그램 버퍼(1002)의 프로그램의 명령어들을 저장할 수 있다. 명령어 디코더(1004)는 명령어 큐(1003)에 저장된 명령어들을 인출(fetch)하고 명령어들을 디코딩할 수 있다. 명령어 디코더(1004)는 디코딩된 명령어가 로컬 연산(혹은 프로세싱)에 관한 것인지 혹은 글로벌 연산에 관한 것인지를 확인할 수 있다. 예를 들어, 로컬 연산은 도 3 내지 도 6에서 전술한 로컬 프로세서들(LP0~LP15)에 의해 실행되는 연산들을 나타낼 수 있고 그리고 글로벌 연산은 글로벌 프로세서(GP)에 의해 실행되는 연산을 나타낼 수 있다.
디코딩된 명령어가 로컬 연산에 관한 것이면, 명령어 디코더(1004)는 로컬 연산 명령어 정보(LP_INSTR)를 로컬 프로세서 및 메모리 컨트롤러(1005)로 제공할 수 있다. 로컬 프로세서 및 메모리 컨트롤러(1005)는 로컬 연산 명령어 정보(LP_INSTR)에 기초하여 로컬 프로세서들(LP0~LP15)과 뱅크들(BK0~BK15)을 제어할 수 있다. 예를 들어, 로컬 프로세서 및 메모리 컨트롤러(1005)는 로컬 연산 명령어 정보(LP_INSTR)에 기초하여 PE 제어 신호들(PE_CTRL)을 생성할 수 있다. PE 제어 신호들(PE_CTRL)은 도 6에서 전술한 로컬 프로세서(LP0)로 제공되는 제어 신호들(ICTRL0, PCTRL0, RCTRL0, OCTRL0) 그리고 다른 로컬 프로세서들(LP1~LP15)로 제공되는 다른 제어 신호들을 포함할 수 있다. 또한, 로컬 프로세서 및 메모리 컨트롤러(1005)는 로컬 연산 명령어 정보(LP_INSTR)에 기초하여 뱅크 제어 신호들(BK_CTRL)을 생성할 수 있다. 로컬 프로세서 및 메모리 컨트롤러(1005)는 뱅크 제어 신호들(BK_CTRL)을 뱅크 컨트롤러들(BCTRL0, BCTRL1)로 제공하거나 전송할 수 있다. 뱅크 컨트롤러들(BCTRL0, BCTRL1)은 뱅크 제어 신호들(BK_CTRL)에 응답하여 뱅크 그룹들(BG0~BG3)의 메모리 셀들에 대한 읽기 및 쓰기를 제어할 수 있다. 글로벌 프로세서(GPa)는 호스트의 프로그램을 실행할 수 있고 이러한 실행에 따라 로컬 프로세서들(LP0~LP15)을 제어하거나 뱅크들(BK0~BK15)을 제어할 수 있다. 글로벌 프로세서(GPa)의 제어에 따라, 로컬 프로세서들(LP0~LP15)은 연산들을 실행할 수 있고 뱅크들(BK0~BK15)에 대한 데이터 입출력들이 수행될 수 있다. 글로벌 프로세서(GPa)는 로컬 프로세서들(LP0~LP15)에 의해 실행되는 연산들 또는 뱅크들(BK0~BK15)에 대한 데이터 입출력들을 요청함으로써 호스트의 프로그램을 실행할 수 있다. 실시 예에 있어서, 로컬 프로세서 및 메모리 컨트롤러(1005)는 로컬 연산 명령어 정보(LP_INSTR)에 기초하여 로컬 프로세서들(LP0~LP15) 중 하나를 제어하거나 둘 이상을 동시에 제어할 수 있다. 또한, 로컬 프로세서 및 메모리 컨트롤러(1005)는 로컬 연산 명령어 정보(LP_INSTR)에 기초하여 뱅크들(BK0~BK15) 중 하나를 제어하거나 둘 이상을 동시에 제어할 수 있다. 예를 들어, 로컬 프로세서 및 메모리 컨트롤러(1005)는 뱅크들(BK0~BK15)을 식별하는 뱅크 어드레스의 비트들 중 적어도 하나를 Don't Care 비트로서 처리할 수 있다.
디코딩된 명령어가 글로벌 연산에 관한 것이면, 명령어 디코더(1004)는 글로벌 연산 명령어 정보(GP_INSTR)를 GPE 어레이(1006)로 제공할 수 있다. GPE 어레이(1006)는 글로벌 연산 명령어 정보(GP_INSTR)에 기초하여 글로벌 연산을 실행할 수 있다. 예를 들어, GPE 어레이(1006)에 의해 실행되는 연산은 덧셈, 뺄셈, 곱셈, 나눗셈, 쉬프트, AND, NAND, OR, NOR, XNOR, XOR 등의 다양한 산술 혹은 로직 연산(들)일 수 있다. 글로벌 레지스터(1007)는 GPE 어레이(1006)에 의해 실행된 글로벌 연산의 글로벌 연산 결과를 저장할 수 있다. 글로벌 레지스터(1007)는 글로벌 연산 결과를 글로벌 연산 출력 데이터(GP_DOUT)로서 데이터 버퍼(1008)로 제공할 수 있다. 데이터 버퍼(1008)는 데이터 버스들(DB0, DB1)을 통해 로컬 프로세서들(LP0~LP15)에 의해 실행되는 로컬 연산들의 로컬 연산 결과들, 데이터 입출력 회로(DATAIO)로부터 데이터 버스들(DB0, DB1)을 통해 전송되는 데이터 입출력 신호들(DQ)에 포함된 외부 데이터, 및 글로벌 연산 출력 데이터(GP_DOUT)를 수신할 수 있다. 데이터 버퍼(1008)는 로컬 연산 결과들, 외부 데이터, 및 글로벌 연산 출력 데이터(GP_DOUT) 중 적어도 하나를 글로벌 연산 입력 데이터(GP_DIN)로서 GPE 어레이(1006)로 제공할 수 있다. 데이터 버퍼(1008)는 글로벌 연산 출력 데이터(GP_DOUT)를 데이터 버스들(DB0, DB1)로 출력할 수 있다. 데이터 입출력 회로(DATAIO)는 글로벌 연산 출력 데이터(GP_DOUT)를 포함하는 데이터 입출력 신호들(DQ)을 출력할 수 있다.
시스템 온 칩(2000)의 메모리 컨트롤러(2100)는 명령 및 어드레스 신호들(CA)을 메모리 장치(1000)로 전송함으로써 로컬 프로세서들(LP0~LP15)에 의해 실행되는 연산들 또는 뱅크들(BK0~BK15)에 대한 데이터 입출력들을 요청할 수 있다. 전술한대로 글로벌 프로세서(GPa)는 호스트의 프로그램을 실행할 수 있다. 글로벌 프로세서(GPa)는 내장된 메모리 컨트롤러로서 메모리 컨트롤러(2100)와 유사하게 로컬 프로세서들(LP0~LP15)에 의해 실행되는 연산들 또는 뱅크들(BK0~BK15)에 대한 데이터 입출력들을 요청할 수 있다. 예를 들어, 글로벌 프로세서(GPa)는, 호스트의 프로그램을 실행함에 따라, 뱅크들(BK0~BK15)의 데이터 입출력들(읽기 및 쓰기 동작들) 또는 로컬 프로세서들(LP0~LP15)에 의해 실행되는 연산들을 요청하거나, 또는 글로벌 연산을 실행함으로써 온-다이 프로세싱을 실행할 수 있다.
도 8은 도 3 및 도 4의 PIM 다이의 블록도를 예시적으로 도시한다. PIM 다이(1100b)는 도 3 및 도 4의 PIM 다이(1100)의 다른 예시일 수 있다. PIM 다이(1100b)와 PIM 다이(1100a) 간의 차이점이 주로 설명될 것이다. PIM 다이(1100b)는 인터럽트 입출력 회로(1010)를 더 포함할 수 있다. 인터럽트 입출력 회로(1010)는 시스템 온 칩(2000)의 메모리 컨트롤러(2100)로부터 전송되는 인터럽트 신호(INTR; 시작 인터럽트 신호)를 수신할 수 있고 인터럽트 신호(INTR)를 글로벌 프로세서(GPb)의 프로세서 컨트롤러(1001b)로 제공할 수 있다. 인터럽트 입출력 회로(1010)는 글로벌 프로세서(GPb)의 프로세서 컨트롤러(1001b)로부터 제공되는 인터럽트 신호(INTR; 종료 인터럽트 신호)를 수신할 수 있고 인터럽트 신호(INTR)를 시스템 온 칩(2000)의 메모리 컨트롤러(2100)로 전송할 수 있다. 예를 들어, 인터럽트 신호(INTR)는 데이터 입출력 신호들(DQ)과 유사한 양방향 신호일 수 있다. 다른 예를 들어, 인터럽트 신호(INTR)는 단방향 신호일 수 있고 시스템 온 칩(2000)의 메모리 컨트롤러(2100)로부터 전송되는 시작 인터럽트 신호(INTR)와 글로벌 프로세서(GPb)의 프로세서 컨트롤러(1001b)로부터 제공되는 종료 인터럽트 신호(INTR)는 서로 상이할 수도 있다.
프로세서 컨트롤러(1001b)는 명령(CMD) 및 어드레스(ADD)뿐만 아니라 인터럽트 신호(INTR)에 기초하여 글로벌 프로세서(GPb)의 다른 구성 요소들(1002~1008)을 제어할 수 있다. 예를 들어, 프로세서 컨트롤러(1001b)는 인터럽트 신호(INTR)에 응답하여 온-다이 프로세싱의 실행이 개시되도록 프로세서(GPb)의 다른 구성 요소들(1002~1008)을 제어할 수 있다. 프로세서 컨트롤러(1001b)는 글로벌 연산이 완료되면 글로벌 연산이 완료되었음을 나타내는 인터럽트 신호(INTR)를 생성할 수 있고 인터럽트 신호(INTR)를 인터럽트 입출력 회로(1010)로 제공할 수 있다.
도 9는 도 1 및 도 2의 시스템 온 칩의 블록도를 예시적으로 도시한다. 시스템 온 칩(2000)은 메모리 컨트롤러(2100), 프로세서(2200), 온-칩 메모리(2300), 및 시스템 버스(2400)를 포함할 수 있다.
메모리 컨트롤러(2100)는 제어 레지스터(2111), 뱅크 상태 레지스터(2112), 시스템 버스 인터페이스 회로(2120), 메모리 요청 큐(2130), 어드레스 변환기(2140), 메모리 명령 큐(2150), 명령 스케줄러(2160), 명령 시퀀서(2170), PHY(2180), 읽기 버퍼(2191), 및 쓰기 버퍼(2192)를 포함할 수 있다.
제어 레지스터(2111)는 메모리 컨트롤러(2100) 내 구성 요소들(2120, 2130, 2140, 2150, 2160, 2170, 2180, 2191, 2192)의 제어 정보들을 저장 및 제공할 수 있다. 제어 레지스터(2111)에 저장된 제어 정보는 프로세서(2200) 혹은 유저의 요청에 의해 변경될 수 있다. 구성 요소들(2120, 2130, 2140, 2150, 2160, 2170, 2180, 2191, 2192)은 각각 제어 레지스터(2111)에 저장된 제어 정보들에 기초하여 동작할 수 있다.
뱅크 상태 레지스터(2112)는 메모리 장치(1000) 내 다수의 뱅크들(도 3 및 도 4 참조)의 상태 정보들을 저장할 수 있다. 예를 들어, 상태 정보는 뱅크가 활성화되었는지 여부 또는 뱅크가 프리차지 되었는지 여부 등을 나타낼 수 있다.
시스템 버스 인터페이스 회로(2120)는 시스템 버스(2400)의 통신 규약에 기초하여 프로세서(2200) 내 다수의 코어들(2210~2240)로부터 시스템 버스(2400)를 통해 전송되는 메모리 요청들을 수신할 수 있다. 시스템 버스 인터페이스 회로(2120)는 수신된 메모리 요청들을 메모리 요청 큐(2130)로 제공하거나, 전송하거나, 또는 기입할 수 있다.
메모리 요청 큐(2130)는 시스템 온 칩(2000) 내부에서 발생되고 시스템 버스 인터페이스 회로(2120)로부터 제공되는 메모리 요청을 수신하고 저장할 수 있다. 메모리 장치(1000)에 관한 메모리 요청은 메모리 장치(1000)의 동작(예를 들어, 읽기, 쓰기, 리프레쉬, 프로세싱 등)을 요청할 수 있고 그리고 메모리 장치(1000)에 대한 물리 어드레스를 포함할 수 있다. 물리 어드레스는 메모리 장치(1000)를 접근하는데 사용될 수 있으며 가상 어드레스와 달리 메모리 장치(1000)의 용량에 따라 한정적일 수 있다. 시스템 온 칩(2000)에서 메모리 요청이 발생하는 속도는 메모리 장치(1000)에 의해 메모리 요청이 처리되는 속도보다 빠를 수 있다. 메모리 요청 큐(2130)는 다수의 메모리 요청들을 저장할 수 있다.
어드레스 변환기(2140)는 메모리 요청 큐(2130)에 저장된 메모리 요청의 물리 어드레스를 메모리 어드레스로 변환할 수 있다. 예를 들어, 어드레스 변환기(2140)는 물리 어드레스의 일부 비트들을 메모리 어드레스로 맵핑할 수 있다. 물리 어드레스의 일부 비트들은 메모리 어드레스에 해당할 수 있다. 메모리 어드레스는 스택 식별자(SID), 뱅크 어드레스, 로우 어드레스, 및 컬럼 어드레스를 포함할 수 있다. 스택 식별자(SID)는 도 1 및 도 2에서 전술한 PIM 다이들(1100~1800)을 식별할 수 있다. 뱅크 어드레스는 PIM 다이들(1100~1800) 각각의 메모리 셀 어레이(MCA)를 구성하는 뱅크들(BK0~BK15)을 식별할 수 있다. 로우 어드레스와 컬럼 어드레스는 뱅크 내 메모리 셀들(예를 들어, MC0)을 식별할 수 있다.
메모리 명령 큐(2150)는 메모리 요청 큐(2130)에 저장된 메모리 요청들에 대한 메모리 명령들 그리고 어드레스 변환기(2140)에 의해 변환된 메모리 어드레스들을 저장할 수 있다. 명령 스케줄러(2160)는 뱅크 상태 레지스터(2112)에 저장된 뱅크들의 상태 정보들에 기초하여 메모리 명령 큐(2150)에 저장된 메모리 명령들과 메모리 어드레스들이 처리되는 순서를 조정할 수 있다. 명령 스케줄러(2160)는 메모리 명령 큐(2150)에 저장된 메모리 명령들과 메모리 어드레스들에 대한 스케줄링(scheduling)을 수행할 수 있다. 명령 시퀀서(2170)는 명령 스케줄러(2160)에 의해 스케줄링된 순서에 기초하여 메모리 명령 큐(2150)에 저장된 메모리 명령들과 메모리 어드레스들을 PHY(2180)로 출력하거나 제공할 수 있다.
PHY(2180)는 명령 시퀀서(2170)로부터 제공되는 메모리 명령과 메모리 어드레스에 기초하여 메모리 장치(1000)를 접근할 수 있다. PHY(2180)는 메모리 인터페이스 회로로도 지칭될 수 있다. 예를 들어, PHY(2180)는 메모리 요청 큐(2130)의 메모리 요청과 어드레스 변환기(2140)의 메모리 어드레스에 기초하여 명령 및 어드레스 신호들(CA)을 생성 및 출력할 수 있다. PHY(2180)는 메모리 요청에 기반한 메모리 명령과 메모리 어드레스를 메모리 장치(1000)로 전송할 수 있다. PHY(2180)는 클럭 생성기(2181), 명령 및 어드레스 생성기(2182), 수신기(2183), 및 송신기(2184)를 포함할 수 있다. 클럭 생성기(2181)는 메모리 장치(1000)로 출력되는 클럭 신호(CK)를 생성할 수 있다. 예를 들어, 메모리 장치(1000)는 클럭 신호(CK)에 기초하여 동작하는 동기식 메모리 장치일 수 있다. 명령 및 어드레스 생성기(2182)는 명령 시퀀서(2170)로부터 메모리 명령과 메모리 어드레스를 수신하고 메모리 장치(1000)로 메모리 명령과 메모리 어드레스를 포함하는 명령 및 어드레스 신호들(CA)을 전송할 수 있다. 명령 및 어드레스 생성기(2182)는 메모리 요청 큐(2130)의 메모리 요청과 어드레스 변환기(2140)의 메모리 어드레스에 따라 명령 및 어드레스 신호들(CA)의 논리 값들을 다양하게 변경할 수 있다. 수신기(2183)는 메모리 장치(1000)로부터 전송되는 읽기 데이터를 갖는 데이터 입출력 신호들(DQ)을 수신할 수 있다. 수신기(2183)는 수신된 읽기 데이터를 읽기 버퍼(2191)로 제공할 수 있다. 송신기(2184)는 쓰기 버퍼(2192)로부터 쓰기 데이터를 수신할 수 있다. 송신기(2184)는 쓰기 데이터를 갖는 데이터 입출력 신호들(DQ)을 메모리 장치(1000)로 출력할 수 있다.
도 9의 채널(CH)은 도 3 및 도 4의 채널들(CH1~CHK) 중 어느 하나에 해당할 수 있다. 명령 및 어드레스 신호들(CA)과 데이터 입출력 신호들(DQ)은 채널(CH)에 대하여 제공될 수 있다. PHY(2180)는 채널들(CH1~CHK) 각각의 클럭 신호(CK) 그리고 명령 및 어드레스 신호들(CA)을 생성 및 출력할 수 있고 그리고 채널들(CH1~CHK) 각각의 데이터 입출력 신호들(DQ)을 메모리 장치(1000)와 교환할 수 있다. 도 3 및 도 4의 채널들(CH1~CHK)의 개수의 4인 것으로 가정한다(즉, K=4). 다만 상술한 수치로 본 발명의 범위가 한정되지 않는다. 예를 들어, 메모리 컨트롤러(2100)는 채널(CH1)을 통해 PIM 다이들(1100, 1500)을, 채널(CH2)을 통해 PIM 다이들(1200, 1600)을, 채널(CH3)을 통해 PIM 다이들(1300, 1700)을, 그리고 채널(CH4)을 통해 PIM 다이들(1400, 1800)을 접근할 수 있다. PIM 다이들(1100, 1500)은 채널(CH1)을 공유할 수 있고, PIM 다이들(1200, 1600)은 채널(CH2)을 공유할 수 있고, PIM 다이들(1300, 1700)은 채널(CH3)을 공유할 수 있고, 그리고 PIM 다이들(1400, 1800)은 채널(CH4)을 공유할 수 있다.
메모리 컨트롤러(2100)는 메모리 어드레스의 스택 식별자(SID)를 이용하여 하나의 채널에 할당된 복수의 PIM 다이들 중 어느 하나를 선택할 수 있다. 메모리 컨트롤러(2100)는 메모리 어드레스에 기초하여 하나의 채널에 할당된 복수의 PIM 다이들 중 하나를 접근할 수 있다. 예를 들어, 스택 식별자(SID)가 제 1 논리 값을 가지면(즉, SID0), 채널들(CH1~CH4)을 통해 전송되는 명령 및 어드레스 신호들(CA)과 데이터 입출력 신호들(DQ)은 PIM 다이들(1100~1400)에 관한 것일 수 있다. 예를 들어, 스택 식별자(SID)가 제 2 논리 값을 가지면(즉, SID1, 채널들(CH1~CH4)을 통해 전송되는 명령 및 어드레스 신호들(CA)과 데이터 입출력 신호들(DQ)은 PIM 다이들(1500~1800)에 관한 것일 수 있다. 예를 들어, 채널 당 할당된 PIM 다이들의 개수, 채널들의 개수, 하나의 PIM 다이에 할당된 채널의 개수 등은 상술한 예시들로 한정되지 않는다. 예를 들어, 물리 어드레스의 일부 비트는 메모리 어드레스가 채널들(CH1~CH4) 중 어느 채널에 관한 것인지를 나타낼 수 있고 채널들(CH1~CH4)을 구별하는데 사용될 수 있다.
읽기 버퍼(2191)는 수신기(2183)로부터 제공되는 읽기 데이터를 저장할 수 있다. 예를 들어, 읽기 버퍼(2191)는 캐시 라인(CL)만큼의 읽기 데이터를 시스템 버스 인터페이스 회로(2120)로 제공할 수 있고 시스템 버스 인터페이스 회로(2120)는 읽기 데이터를 시스템 버스(2400)를 통해 프로세서(2200) 또는 온-칩 메모리(2300)로 전송할 수 있다. 쓰기 버퍼(2192)는 시스템 버스 인터페이스 회로(2120)로부터 제공되고 메모리 장치(1000)로 전송될 쓰기 데이터를 수신 및 저장할 수 있다. 쓰기 버퍼(2192)는 메모리 장치(1000)의 데이터 입출력 단위만큼의 쓰기 데이터를 송신기(2184)로 제공할 수 있다.
프로세서(2200)는 온-칩 메모리(2300)에 로드된 다양한 소프트웨어(응용 프로그램, 운영 체제, 파일 시스템, 장치 드라이버 등)을 실행할 수 있다. 프로세서(2200)는 동종 멀티-코어 또는 이종 멀티-코어를 포함할 수 있고 다수의 코어들(2210~2240)을 포함할 수 있다. 예를 들어, 코어들(2210~2240) 각각은 CPU(Central Processing Unit), ISP(Image Signal Processing Unit), DSP(Digital Signal Processing Unit), GPU(Graphics Processing Unit), VPU(Vision Processing Unit), TPU(Tensor Processing Unit), 및 NPU(Neural Processing Unit) 중 어느 하나일 수 있다. 코어들(2210~2240) 각각은 메모리 장치(1000)에 대한 메모리 요청을 생성할 수 있다. 코어들(2210~2240) 각각에서 생성되는 메모리 요청은 전술한 물리 어드레스를 포함할 수 있다. 예를 들어, 프로세서(2200)는 채널(CH)을 공유하는 메모리 장치(1000)의 PIM 다이들(1100, 1500) 중 채널(CH)을 통해 PIM/메모리 다이(1500)를 접근하는 메모리 컨트롤러(2100)를 이용하여 시스템 프로세싱을 실행할 수 있다. 시스템 프로세싱과 도 7 및 도 8의 글로벌 프로세서(GPa/GPb)에 의해 실행되는 온-다이 프로세싱은 서로 독립적으로(혹은 별개로) 실행될 수 있다.
온-칩 메모리(2300)에는 전자 장치(100a/100b)를 구동하기 위한 응용 프로그램, 운영 체제, 파일 시스템, 장치 드라이버 등이 로드될 수 있다. 예를 들어, 온-칩 메모리(2300)는 메모리 장치(1000)보다 빠른 데이터 입출력 속도를 갖는 SRAM(Static RAM) 장치 혹은 코어들(2210~2240)에 의해 공유되는 캐시 메모리일 수 있으나 이에 한정되지 않는다. 시스템 버스(2400)는 메모리 컨트롤러(2100), 프로세서(2200), 및 온-칩 메모리(2300) 간의 통신 경로를 제공할 수 있다. 예를 들어, 시스템 버스(2400)는 AMBA(Advanced Microcontroller Bus Architecture)에 기반한 AHB(Advanced High-performance Bus), ASB(Advanced System Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface) 등일 수 있다.
도 10은 도 9의 프로세서가 메모리 컨트롤러를 접근하고 메모리 컨트롤러가 메모리 장치를 접근하는 예시를 도시한다. 예를 들어, 프로세서(2200)는 메모리 맵 입출력(Memory Mapped I/O; MMIO) 방식으로 메모리 컨트롤러(2100)를 접근할 수 있다. 시스템 어드레스 공간(영역)은 메모리 컨트롤러(2100)로 할당된 공간을 포함할 수 있다. 도시되진 않았으나, 시스템 어드레스 공간은 시스템 온 칩(2000) 내 다른 구성 요소들(예를 들어, 온-칩 메모리(2300), IP(Intellectual Property) 블록들, 컨트롤러들 등)로 각각 할당된 공간들을 더 포함할 수 있다. 프로세서(2200)는 동일한 시스템 어드레스 공간을 이용하여 메모리 컨트롤러(2100)와 시스템 온 칩(2000) 내 다른 구성요소들을 접근하고 제어할 수 있다. 프로세서(2200)는 시스템 어드레스 공간 중 메모리 컨트롤러(2100)로 할당된 공간을 접근하고 쓰기 명령어를 이용하여 메모리 컨트롤러(2100)에 할당된 공간에 값을 쓸 수 있다. 메모리 컨트롤러(2100)는 이 값에 응답할 수 있고 그리고 예를 들어 프로세서(2200)의 메모리 요청을 수신할 수 있다. 메모리 컨트롤러(2100)는 시스템 어드레스 공간 중 메모리 컨트롤러(2100)로 할당된 공간 외의 공간에 쓰여진 값은 무시할 수 있다.
시스템 어드레스 공간 중 메모리 컨트롤러(2100)로 할당된 공간은 물리 어드레스 공간이거나, 물리 어드레스 공간에 대응하거나, 또는 물리 어드레스 공간으로 맵핑될 수 있다. 물리 어드레스 공간은 메모리 요청의 물리 어드레스의 범위에 해당할 수 있다. 물리 어드레스 공간은 제어 레지스터(2111)로 할당된 공간과 메모리 장치(1000)로 할당된 공간을 포함할 수 있다. 시스템 어드레스 공간 중 메모리 컨트롤러(2100)로 할당된 공간은 물리 어드레스 공간 중 제어 레지스터(2111)로 할당된 공간에 대응하는 공간을 포함할 수 있으며, 프로세서(2200)는 이 공간을 접근함으로써 제어 레지스터(2111)의 값(정보)을 변경할 수 있다. 유사하게, 시스템 어드레스 공간 중 메모리 컨트롤러(2100)로 할당된 공간은 물리 어드레스 공간 중 메모리 장치(1000)로 할당된 공간에 대응하는 공간을 포함할 수 있으며, 프로세서(2200)는 이 공간을 접근함으로써 메모리 장치(1000)로 접근할 수 있다.
메모리 컨트롤러(2100)도 MMIO 방식으로 메모리 장치(1000)를 접근할 수 있다. 물리 어드레스 공간은 메모리 장치(1000)로 할당된 공간을 포함할 수 있다. 메모리 컨트롤러(2100)는 물리 어드레스 공간 중 메모리 장치(1000)로 할당된 공간을 접근하고 물리 어드레스 공간 중 메모리 장치(1000)로 할당된 공간의 물리 어드레스를 메모리 어드레스로 변환할 수 있다.
물리 어드레스 공간 중 메모리 장치(1000)로 할당된 공간은 메모리 어드레스 공간이거나, 메모리 어드레스 공간에 대응하거나, 또는 메모리 어드레스 공간으로 맵핑될 수 있다. 메모리 어드레스 공간은 메모리 어드레스의 범위에 해당할 수 있다. 메모리 어드레스 공간은 글로벌 프로세서(GP)의 프로그램 버퍼(1002)로 할당된 공간, 글로벌 프로세서(GP)의 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터들로 할당된 공간, 및 메모리 셀들로 할당된 공간을 포함할 수 있다. 물리 어드레스 공간 중 메모리 장치(1000)로 할당된 공간은 메모리 어드레스 공간 중 글로벌 프로세서(GP)의 프로그램 버퍼(1002)로 할당된 공간에 대응하는 공간을 포함할 수 있으며, 메모리 컨트롤러(2100)는 이 공간을 접근함으로써 글로벌 프로세서(GP)의 프로그램 버퍼(1002)의 값(정보)를 변경할 수 있다. 물리 어드레스 공간 중 메모리 장치(1000)로 할당된 공간은 메모리 어드레스 공간 중 글로벌 프로세서(GP)의 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터들로 할당된 공간에 대응하는 공간을 포함할 수 있으며, 메모리 컨트롤러(2100)는 이 공간을 접근함으로써 글로벌 프로세서(GP)의 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터들의 값(정보)를 변경할 수 있다. 물리 어드레스 공간 중 메모리 장치(1000)로 할당된 공간은 메모리 어드레스 공간 중 메모리 셀들로 할당된 공간에 대응하는 공간을 포함할 수 있으며, 메모리 컨트롤러(2100)는 이 공간을 접근함으로써 메모리 셀들로 접근할 수 있다.
메모리 장치(1000)의 PIM 다이들(1100~1800) 각각의 뱅크들(BK0~BK15) 각각의 메모리 셀들 그리고 메모리 장치(1000)의 PIM 다이들(1100~1800) 각각의 글로벌 프로세서(GPa/GPb)의 프로그램 버퍼(1002)와 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터는, 메모리 장치(1000)의 PIM 다이들(1100~1800) 각각에 관한 메모리 어드레스에 모두 맵핑될 수 있다. 예를 들어, 메모리 컨트롤러(2100)는 JEDEC(Joint Electron Device Engineering Council) 표준에 정의된 메모리 장치(1000)에 대한 다양한 명령들을 생성하거나 발행함으로써 상술한 메모리 셀들, 프로그램 버퍼(1002), 그리고 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터를 접근할 수 있다. 예를 들어, 메모리 장치(1000)에 대한 다양한 명령들은 메모리 셀들에 대한 활성화 명령, 프리차지 명령, 읽기 명령, 쓰기 명령 등을 포함할 수 있다. 메모리 셀들, 프로그램 버퍼(1002), 그리고 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터가 모두 메모리 어드레스에 맵핑되어 있으므로, 메모리 컨트롤러(2100)는 상술한 메모리 셀들에 대한 명령들을 이용하여 글로벌 프로세서(GPa/GPb)의 프로그램 버퍼(1002)와 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터를 접근할 수 있다. 다른 예를 들어, 메모리 장치(1000)에 대한 다양한 명령들은 상술한 메모리 셀들에 대한 명령들뿐만 아니라 글로벌 프로세서(GPa/GPb)의 프로그램 버퍼(1002)와 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터를 접근하기 위한 전용의 명령(들)을 더 포함할 수도 있다.
도 11은 도 1 및 도 2의 전자 장치가 복수의 프로세싱들을 동시에 수행하는 예시를 도시한다. 시스템 온 칩(2000)은 채널(CH1; 도 3 및 도 4 참조)을 통해 메모리 장치(1000)의 PIM 다이들(1100, 1500)을 접근할 수 있다.
예를 들어, 시스템 온 칩(2000)의 프로세서(2200; 이하 시스템 프로세서)는 채널(CH1)을 통해 PIM 다이(1500; 도 3 참조)의 뱅크들(BK0~BK15)을 접근하는 메모리 컨트롤러(2100)를 이용하여 시스템 프로세싱을 실행할 수 있다. 다른 예를 들어, 시스템 프로세서(2200)는 채널(CH1)을 통해 글로벌 프로세서(GP)를 포함하지 않는 메모리 다이(1500; 도 4 참조)의 뱅크들(BK0~BK15)을 접근하는 메모리 컨트롤러(2100)를 이용하여 시스템 프로세싱을 실행할 수도 있다.
예를 들어, 시스템 프로세싱은 뉴럴 네트워크(예를 들어, 컨볼루션 뉴럴 네트워크(CNN))에 기반한 이미지 프로세싱일 수 있으나, DNN(Deep Neural Network), RNN(Recurrent Neural Network), SNN(Spiking Neural Network) 등일 수도 있으며, 또한 상술한 예시들로 한정되지 않는다. PIM/메모리 다이(1500)는 메모리 컨트롤러(2100)의 제어에 기초하여 메모리 컨트롤러(2100)로부터 전송되는 데이터를 뱅크들(BK0~BK15)로 기입하거나 또는 뱅크들(BK0~BK15)의 데이터를 메모리 컨트롤러(2100)로 전송할 수 있다. PIM/메모리 다이(1500)는 메모리 컨트롤러(2100)와 데이터 입출력을 수행할 수 있다. 메모리 컨트롤러(2100)는 시스템 프로세서(2200)의 메모리 요청에 응답하여 PIM/메모리 다이(1500)의 뱅크들(BK0~BK15), 로컬 프로세서들(LP0~LP15), 또는 글로벌 프로세서(GP)를 접근할 수 있다. PIM 다이(1500)의 글로벌 프로세서(GP)는 메모리 컨트롤러(2100)의 요청에 기초하여 글로벌 연산을 실행할 수 있다. 다만, 메모리 컨트롤러(2100)가 뱅크들(BK0~BK15) 또는 로컬 프로세서들(LP0~LP15)을 접근할 수 있으므로, PIM 다이(1500)의 글로벌 프로세서(GP)는 메모리 컨트롤러(2100)의 요청에만 응답하여 뱅크들(BK0~BK15) 또는 로컬 프로세서들(LP0~LP15)을 제어할 수 있고 스스로 뱅크들(BK0~BK15)과 로컬 프로세서들(LP0~LP15)을 제어하지 않을 수 있다.
시스템 프로세서(2200)는 하나의 채널(CH1)을 공유하는 메모리 장치(1000)의 복수의 PIM 다이들(1100, 1500)을 이용하여 복수의 프로세싱들을 동시에 수행할 수 있다. 복수의 프로세싱들 중 하나는 전술한 시스템 프로세싱일 수 있다. 메모리 컨트롤러(2100)는 시스템 프로세서(2200)의 메모리 요청에 기초하여 PIM 다이(1100)의 글로벌 프로세서(GP)의 프로그램 버퍼(1002)로 복수의 프로세싱들 중 어느 하나에 관한 프로그램을 전송할 수 있다. 메모리 컨트롤러(2100)는 채널(CH1)을 통해 프로그램을 포함하는 데이터 입출력 신호들(DQ)을 PIM 다이(1100)로 전송할 수 있고 PIM 다이(1100)의 데이터 입출력 회로(DATAIO)는 데이터 버스들(DB0, DB1)을 통해 프로그램을 프로그램 버퍼(1002)로 전송할 수 있다. PIM 다이(1100)의 글로벌 프로세서(GP)는 프로그램의 명령어를 디코딩하고, 디코딩 결과에 기초하여 뱅크들(BK0~BK15)과 로컬 프로세서들(LP0~LP15)을 제어할 수 있다. 글로벌 프로세서(GP)는 뱅크들(BK0~BK15)의 데이터 입출력들 또는 로컬 프로세서들(LP0~LP15)의 로컬 연산들을 요청하거나, 또는 글로벌 연산을 실행함으로써 온-다이 프로세싱을 실행할 수 있다. 즉, 시스템 프로세서(2200)는 PIM/메모리 다이(1500)와 데이터 입출력을 수행하는 메모리 컨트롤러(2100)를 이용하여 시스템 프로세싱을 실행할 수 있고 그리고 메모리 컨트롤러(2100)를 이용하여 PIM 다이(1100)의 글로벌 프로세서(GP)로 온-다이 프로세싱의 실행을 요청할 수 있다. 시스템 프로세서(2200)의 메모리 요청에 따라 메모리 컨트롤러(2100)는 채널(CH1)을 공유하는 PIM 다이들(1100, 1500) 중 PIM 다이(1100)가 온-다이 프로세싱을 실행하도록 PIM 다이(1100)를 제어할 수 있고 그리고 채널(CH1)을 공유하는 PIM 다이들(1100, 1500) 중 나머지 PIM 다이(1500)가 시스템 프로세서(2200)에 의해 실행되는 시스템 프로세싱에 사용되도록 PIM 다이(1500)를 제어할 수 있다. 예를 들어, 온-다이 프로세싱은 뉴럴 네트워크(예를 들어, LSTM(Long Short Term Memory) 네트워크)에 기반한 음성 인식 프로세싱일 수 있으나 이에 한정되지 않는다.
도 11을 참조하면, T1 내지 T2 구간 그리고 T3 내지 T4 구간 동안, 시스템 프로세서(2200)는 채널(CH1)을 통해 PIM/메모리 다이(1500)를 접근하는 메모리 컨트롤러(2100)를 이용하여 시스템 프로세싱을 실행할 수 있다. 또한, 시스템 프로세서(2200)는 메모리 컨트롤러(2100)를 이용하여 PIM 다이(1100)의 온-다이 프로세싱을 요청할 수 있고 그리고 PIM 다이(1100)의 글로벌 프로세서(GP)는 온-다이 프로세싱을 실행할 수 있다. T2 내지 T3 구간 동안, 시스템 프로세서(2200)는 메모리 컨트롤러(2100)를 이용하여 PIM 다이(1100)의 온-다이 프로세싱의 온-다이 프로세싱 결과를 수신할 수 있다. 시스템 프로세서(2200)는 시스템 프로세싱 결과와 온-다이 프로세싱 결과에 대한 연산을 실행하여 새로운 데이터를 생성할 수 있다. 또는 시스템 프로세서(2200)는 PIM/메모리 다이(1500)와 PIM 다이(1100)로부터 데이터를 수신하고 수신된 데이터에 대한 연산을 실행하여 새로운 데이터를 생성할 수도 있다. 시스템 프로세서(2200)는 메모리 컨트롤러(2100)를 이용하여 새로운 데이터를 PIM/메모리 다이(1500) 또는 PIM 다이(1100)로 전송하고 저장할 수 있다.
전술한대로, PIM/메모리 다이(1500)와 PIM 다이(1100)는 채널(CH1)을 공유할 수 있다. 또한, 채널(CH1)의 경로(Path_1)를 통해 다이들(1100, 1500)에 대한 명령 및 어드레스 신호들(CA)과 데이터 입출력 신호들(DQ)이 전송될 수 있다. 채널(CH1)의 경로(Path_1)는 PIM/메모리 다이(1500), PIM 다이(1100), 및 버퍼 다이(1900)를 각각 관통하는 관통 전극들(TSV)과 마이크로 범프들(BUMP)을 포함할 수 있다. 시스템 프로세서(2200)는 채널(CH1)을 통해 PIM/메모리 다이(1500)를 접근하는 메모리 컨트롤러(2100)를 이용하여 시스템 프로세싱을 실행하고, PIM/메모리 다이(1500)는 메모리 컨트롤러(2100)의 명령들을 수신하고 메모리 컨트롤러(2100)와 데이터 입출력 수행하고, 그리고 PIM 다이(1100)의 글로벌 프로세서(GP)는 온-다이 프로세싱을 실행하는 동안, 채널(CH1)의 경로(Path_1)는 메모리 컨트롤러(2100)의 명령들이 전송되고 PIM/메모리 다이(1500)와 메모리 컨트롤러(2100) 간의 데이터 입출력에 사용될 수 있다. 채널(CH1)의 경로(Path_1)는 글로벌 프로세서(GP)는 온-다이 프로세싱에 사용되지 않을 수 있다.
실시 예에 있어서, 메모리 장치(1000)가 서로 동일하게 구현되는 PIM 다이들(1100~1800)을 포함하는 경우, 시스템 프로세서(2200)는 채널(CH1)을 통해 PIM 다이(1100)를 접근하는 메모리 컨트롤러(2100)를 이용하여 시스템 프로세싱을 실행할 수 있고 메모리 컨트롤러(2100)를 이용하여 PIM 다이(1500)의 온-다이 프로세싱을 요청할 수 있다. 즉, 시스템 프로세싱과 온-다이 프로세싱이 실행되는 PIM 다이들의 위치들은 상술한 예시들로 한정되지 않는다.
도 12는 도 1 및 도 2의 시스템 온 칩이 시스템 프로세싱을 실행하고 메모리 다이의 글로벌 프로세서의 온-다이 프로세싱을 요청하는 예시를 도시한다. 예를 들어, 도 12의 타이밍도는 도 11의 T1 내지 T2 구간 그리고 T3 내지 T4 구간의 일부일 수 있다. 시스템 프로세서(2200)의 메모리 요청에 따라 메모리 컨트롤러(2100)는 다수의 읽기 명령들(RD1~RD7)을 채널(CH1)을 통해 메모리 장치(1000)로 전송할 수 있다. 읽기 명령들(RD1, RD3, RD5, RD7)은 스택 식별자(SID0)를 갖는 PIM 다이(1100)에 관한 것이고 읽기 명령들(RD2, RD4, RD6)은 스택 식별자(SID1)를 갖는 PIM/메모리 다이(1500)에 관한 것일 수 있다. 읽기 명령들(RD1~RD7) 간의 간격은 메모리 장치(1000)의 표준(예를 들어, JEDEC(Joint Electron Device Engineering Council) 표준)에서 결정된 tCCD(CAS(Column Address Strobe) to CAS delay)일 수 있으나 이에 한정되지 않는다. 읽기 명령들(RD1~RD7)의 개수는 도 12의 예시로 한정되지 않는다.
PIM 다이(1100)의 명령 및 어드레스 디코더(CADEC)는 스택 식별자(SID0)를 확인하고 읽기 명령들(RD1~RD7) 중 읽기 명령들(RD1, RD3, RD5, RD7)만을 유효하게 디코딩할 수 있다. PIM 다이(1100)의 글로벌 프로세서(GP)는 읽기 명령들(RD1, RD3, RD5, RD7)의 디코딩 결과에 기초하여 글로벌 연산들을 실행할 수 있다.
PIM 다이(1500)의 명령 및 어드레스 디코더(CADEC)는 스택 식별자(SID1)를 확인하고 읽기 명령들(RD1~RD7) 중 읽기 명령들(RD2, RD4, RD6)만을 유효하게 디코딩할 수 있다. PIM 다이(1500)의 명령 및 어드레스 디코더(CADEC)는 디코딩 결과에 기초하여 PIM 다이(1500)의 다른 구성 요소들(예를 들어, BG0, BG1, BG2, BG3, DB0, DB1, BCTRL0, BCTRL1, DATAIO 중 적어도 일부)을 제어할 수 있다. 데이터 입출력 회로(DATAIO)는 데이터 버스들(DB0, DB1)을 통해 읽기 명령들(RD2, RD4, RD6)에 의해 요청된 읽기 데이터를 수신하고 읽기 데이터를 포함하는 데이터 입출력 신호들(DQ)을 채널(CH1)로 출력할 수 있다(DOUT2, DOUT4, DOUT6). 즉, PIM 다이(1500)는 읽기 명령들(RD2, RD4, RD6)에 응답하여 읽기 동작들을 수행하고 데이터 입출력 신호들(DQ)을 채널(CH1)로 출력할 수 있다. 예를 들어, PIM 다이(1500)가 읽기 명령(RD2)을 수신하고 PIM 다이(1500)가 데이터 입출력 신호들(DQ)을 채널(CH1)로 출력하는 시점들 간의 간격은, RL(Read Latency)일 수 있다.
시스템 프로세서(2200)의 메모리 요청에 따라 메모리 컨트롤러(2100)는 다수의 읽기 명령들(RD1~RD7)을 생성하는 것으로 도 12에서 설명되었다. 다른 예를 들어, 메모리 컨트롤러(2100)는 읽기 명령이 아닌 메모리 셀에 관한 다른 명령(예를 들어, 활성화 명령, 쓰기 명령, 프리차지 명령, 등)을 생성할 수 있고, PIM 다이(1100)의 명령 및 어드레스 디코더(CADEC)는 다른 명령을 디코딩할 수 있고, 그리고 PIM 다이(1100)의 글로벌 프로세서(GP)는 다른 명령의 디코딩 결과에 기초하여 온-다이 프로세싱을 실행할 수 있다. PIM 다이(1500)의 명령 및 어드레스 디코더(CADEC)는 다른 명령을 디코딩할 수 있다. PIM 다이(1500)는 다른 명령에 응답하여 다른 동작들을 수행할 수 있다.
도 13은 도 1 및 도 2의 시스템 온 칩이 시스템 프로세싱을 실행하고 메모리 다이의 글로벌 프로세서의 온-다이 프로세싱을 요청하는 다른 예시를 도시한다. 도 13의 타이밍도와 도 12의 타이밍도 간의 차이점이 주로 설명될 것이다. 시스템 프로세서(2200)의 메모리 요청에 따라 메모리 컨트롤러(2100)는 PIM 다이(1100)의 글로벌 프로세서(GP)의 온-다이 프로세싱의 실행 시작과 실행 종료를 요청하는 명령들을 메모리 장치(1000)로 전송할 수 있다. 온-다이 프로세싱의 실행 시작과 실행 종료를 요청하는 명령들은 스택 식별자(SID0)를 가질 수 있다. 예를 들어, 온-다이 프로세싱의 실행 시작과 실행 종료를 요청하는 명령들 각각은 전술한 메모리 셀에 관한 활성화 명령, 읽기 명령, 쓰기 명령, 프리차지 명령 등일 수 있다. 다른 예를 들어, 온-다이 프로세싱의 실행 시작과 실행 종료를 요청하는 명령들 각각은 메모리 셀에 관한 명령이 아닌 글로벌 프로세서(GPa/GPb)의 프로그램 버퍼(1002)와 프로세서 컨트롤러(1001a/1001b)의 제어 레지스터를 접근하기 위한 전용의 명령일 수도 있다. 시스템 프로세서(2200)의 메모리 요청에 따라 연이은(consecutive) 읽기 명령들(RD1~RD7)을 채널(CH1)을 통해 메모리 장치(1000)로 전송할 수 있다. 다수의 읽기 명령들(RD1~RD7)은 모두 스택 식별자(SID1)를 가질 수 있다.
PIM 다이(1100)의 명령 및 어드레스 디코더(CADEC)는 스택 식별자(SID0)를 확인하고 온-다이 프로세싱의 실행 시작과 실행 종료를 요청하는 명령들을 유효하게 디코딩할 수 있다. PIM 다이(1100)의 글로벌 프로세서(GP)는 온-다이 프로세싱의 실행 시작과 실행 종료를 요청하는 명령들의 디코딩 결과에 기초하여 글로벌 연산을 시작하고 종료할 수 있다. PIM 다이(1500)는 읽기 명령들(RD1~RD7)에 응답하여 읽기 동작들을 수행하고 데이터 입출력 신호들(DQ)을 채널(CH1)로 출력할 수 있다(DOUT1~DOUT7).
도 12에서 메모리 컨트롤러(2100)는 PIM 다이(1100)의 글로벌 프로세서(GP)의 온-다이 프로세싱의 실행 시작을 요청하는 명령과 PIM 다이(1500)의 데이터를 요청하는 읽기 명령을 tCCD 간격으로 교대로 발행하였다. PIM 다이(1100)의 글로벌 프로세서(GP)의 온-다이 프로세싱의 실행 시작을 요청하는 명령에 의해 메모리 장치(1000)로부터 읽기 데이터를 포함하는 데이터 입출력 신호들(DQ)이 출력되지 않고 PIM 다이(1500)의 데이터를 요청하는 읽기 명령에 의해 데이터를 포함하는 데이터 입출력 신호들(DQ)이 출력된다. 이에 따라, 메모리 컨트롤러(2100)는 메모리 장치(1000)로부터 읽기 데이터를 포함하는 데이터 입출력 신호들(DQ)을 비심리스(non-seamless) 방식으로 수신하게 된다. 반면에, 도 13에서, 메모리 컨트롤러(2100)는 PIM 다이(1100)의 글로벌 프로세서(GP)의 온-다이 프로세싱의 실행 시작을 요청하는 명령을 메모리 장치(1000)로 전송한 다음에 PIM 다이(1500)의 데이터를 요청하는 연이은 읽기 명령들(RD1~RD7)을 tCCD 간격으로 메모리 장치(1000)로 전송할 수 있다. 따라서, 메모리 컨트롤러(2100)는 메모리 장치(1000)로부터 읽기 데이터를 포함하는 데이터 입출력 신호들(DQ)을 심리스(seamless) 방식으로 수신할 수 있다. 도 12에서 메모리 컨트롤러(2100)는 채널(CH1)의 대역폭을 완전하게 활용하지 못하였으나(채널(CH1)의 최대 대역폭의 절반만 활용), 도 13에서, 메모리 컨트롤러(2100)는 채널(CH1)의 대역폭을 완전하게 활용할 수 있다.
도 14는 도 1 및 도 2의 시스템 온 칩이 시스템 프로세싱을 실행하고 메모리 다이의 글로벌 프로세서의 온-다이 프로세싱을 요청하는 또 다른 예시를 도시한다. 도 14의 타이밍도와 도 13의 타이밍도 간의 차이점이 주로 설명될 것이다. 도 13에서 메모리 컨트롤러(2100)는 PIM 다이(1100)의 글로벌 프로세서(GP)의 온-다이 프로세싱의 실행 시작을 요청하는 명령을 메모리 장치(1000)로 전송한 다음에 PIM 다이(1500)의 데이터를 요청하는 연이은 읽기 명령들(RD1~RD7)을 tCCD 간격으로 메모리 장치(1000)로 전송하였다. PIM 다이(1100)가 도 8의 글로벌 프로세서(GPb)와 인터럽트 입출력 회로(1010)를 포함하는 경우, 메모리 컨트롤러(2100)는 PIM 다이(1100)의 글로벌 프로세서(GP)의 온-다이 프로세싱의 실행 시작을 요청하는 인터럽트 신호를 생성할 수 있다. 글로벌 프로세서(GPb)는 온-다이 프로세싱의 실행 시작을 요청하는 인터럽트 신호에 응답하여 온-다이 프로세싱을 실행할 수 있다. 온-다이 프로세싱이 완료되면(종료되면), 글로벌 프로세서(GPb)는 온-다이 프로세싱의 실행 종료를 알리는 인터럽트 신호를 생성할 수 있다. 상술한 인터럽트 신호들은 메모리 컨트롤러(2100)와 메모리 장치(1000) 간에서 전송될 수 있다.
도 15는 본 발명의 또 다른 실시 예에 따른 전자 장치를 예시적으로 도시한다. 전자 장치(100c)는 메모리 장치들(1000_1~1000_4), 시스템 온 칩(2000), 인터포저(3000), 및 패키지 기판(4000)을 포함할 수 있다. 메모리 장치들(1000_1~1000_4) 각각은 전술한 메모리 장치(1000)에 해당할 수 있고 메모리 장치들(1000_1~1000_4)의 개수는 도 15에 도시된 것으로 한정되지 않는다. 인터포저(3000)는 시스템 온 칩(2000)이 메모리 장치들(1000_1~1000_4)을 접근하기 위한 다수의 채널들의 경로들을 포함할 수 있다. 인터포저(3000)는 패키지 기판 상(4000)에 적층될 수 있거나, 인터포저(3000)없이 패키지 기판 상(4000)에 메모리 장치들(1000_1~1000_4)과 시스템 온 칩(2000)이 적층될 수 있다.

Claims (20)

  1. 제 1 메모리 셀들을 포함하는 제 1 뱅크;
    제 2 메모리 셀들을 포함하는 제 2 뱅크;
    상기 제 1 뱅크의 제 1 로컬 뱅크 데이터가 전송되는 제 1 뱅크 로컬 입출력 라인들에 연결되고 그리고 상기 제 1 로컬 뱅크 데이터에 대한 제 1 로컬 연산을 실행하도록 구성되는 제 1 로컬 프로세서;
    상기 제 2 뱅크의 제 2 로컬 뱅크 데이터가 전송되는 제 2 뱅크 로컬 입출력 라인들에 연결되고 그리고 상기 제 2 로컬 뱅크 데이터에 대한 제 2 로컬 연산을 실행하도록 구성되는 제 2 로컬 프로세서; 및
    상기 제 1 뱅크, 상기 제 2 뱅크, 상기 제 1 로컬 프로세서, 및 상기 제 2 로컬 프로세서를 제어하고 그리고 상기 제 1 로컬 연산의 제 1 로컬 연산 결과와 상기 제 2 로컬 연산의 제 2 로컬 연산 결과에 대한 글로벌 연산을 실행하도록 구성되는 글로벌 프로세서를 포함하는 메모리 다이.
  2. 제 1 항에 있어서,
    상기 제 1 로컬 프로세서는:
    상기 제 1 뱅크 로컬 입출력 라인들을 통해 상기 제 1 로컬 뱅크 데이터를 수신하고, 뱅크 글로벌 입출력 라인들을 통해 상기 글로벌 프로세서에 의해 브로드캐스트되는 브로드캐스트 데이터를 수신하고, 그리고 로컬 레지스터 데이터를 수신하도록 구성되는 입력 멀티플렉서;
    상기 제 1 로컬 뱅크 데이터, 상기 브로드캐스트 데이터, 및 상기 로컬 레지스터 데이터 중 적어도 하나에 대한 상기 제 1 로컬 연산을 실행하도록 구성되는 LPE(Local Processing Element) 어레이;
    상기 제 1 로컬 연산의 상기 제 1 로컬 연산 결과를 저장하고 상기 제 1 로컬 연산 결과를 상기 로컬 레지스터 데이터로서 출력하도록 구성되는 로컬 레지스터; 및
    상기 로컬 레지스터 데이터를 상기 제 1 뱅크 로컬 입출력 라인들, 상기 뱅크 글로벌 입출력 라인들, 및 상기 입력 멀티플렉서 중 적어도 하나로 출력하도록 구성되는 출력 멀티플렉서를 포함하는 메모리 다이.
  3. 제 2 항에 있어서,
    상기 글로벌 프로세서의 제어에 따라, 상기 제 1 뱅크 로컬 입출력 라인들을 상기 뱅크 글로벌 입출력 라인들로 전기적으로 연결하도록 구성되는 뱅크 글로벌 입출력 게이팅 회로를 더 포함하는 메모리 다이.
  4. 제 3 항에 있어서,
    상기 제 1 뱅크로부터 출력되는 상기 제 1 로컬 뱅크 데이터를 수신하고 그리고 상기 제 1 로컬 뱅크 데이터를 상기 제 1 뱅크 로컬 입출력 라인들로 출력하도록 구성되는 입출력 감지 증폭기;
    상기 제 1 로컬 뱅크 데이터를 상기 제 1 메모리 셀들로 기입하도록 구성되는 쓰기 드라이버; 및
    상기 쓰기 드라이버를 상기 제 1 뱅크 로컬 입출력 라인들로 전기적으로 연결하도록 구성되는 뱅크 로컬 입출력 게이팅 회로를 더 포함하는 메모리 다이.
  5. 제 1 항에 있어서,
    상기 글로벌 프로세서는:
    호스트의 프로그램을 저장하도록 구성되는 프로그램 버퍼;
    상기 프로그램의 명령어들을 저장하도록 구성되는 명령어 큐;
    상기 명령어 큐에 저장된 상기 명령어들을 디코딩하도록 구성되는 명령어 디코더;
    상기 명령어 디코더에 의해 디코딩된 상기 명령어들에 기초하여 상기 제 1 및 제 2 뱅크들과 상기 제 1 및 제 2 로컬 프로세서들을 제어하도록 구성되는 제 1 컨트롤러;
    상기 명령어 디코더에 의해 디코딩된 상기 명령어들에 기초하여 상기 글로벌 연산을 실행하도록 구성되는 GPE(Global Processing Element) 어레이;
    상기 글로벌 연산의 글로벌 연산 결과를 저장하도록 구성되는 글로벌 레지스터;
    데이터 버스를 통해 상기 제 1 로컬 연산 결과와 상기 제 2 로컬 연산 결과를 수신하고, 상기 제 1 로컬 연산 결과와 상기 제 2 로컬 연산 결과를 상기 GPE 어레이로 제공하고, 그리고 상기 글로벌 연산 결과를 상기 데이터 버스로 출력하도록 구성되는 데이터 버퍼; 및
    상기 프로그램 버퍼, 상기 명령어 큐, 상기 명령어 디코더, 상기 제 1 컨트롤러, 상기 GPE 어레이, 상기 글로벌 레지스터, 및 상기 데이터 버퍼를 제어하도록 구성되는 제 2 컨트롤러를 포함하는 메모리 다이.
  6. 제 5 항에 있어서,
    상기 제 1 메모리 셀들, 상기 제 2 메모리 셀들, 상기 프로그램 버퍼, 및 상기 제 2 컨트롤러의 제어 레지스터는 상기 메모리 다이에 관한 메모리 어드레스에 각각 맵핑되는 메모리 다이.
  7. 제 5 항에 있어서,
    상기 글로벌 프로세서는:
    상기 호스트로부터 전송되는 시작 인터럽트 신호에 응답하여 상기 제 1 및 제 2 뱅크들의 데이터 입출력들 또는 상기 제 1 및 제 2 로컬 연산들을 요청하거나, 또는 상기 글로벌 연산을 실행함으로써 온-다이 프로세싱을 실행하고, 그리고
    상기 온-다이 프로세싱의 실행이 완료되면 종료 인터럽트 신호를 상기 호스트로 전송하도록 더 구성되는 메모리 다이.
  8. 제 5 항에 있어서,
    상기 제 1 컨트롤러는 상기 제 1 및 제 2 뱅크들을 식별하는 뱅크 어드레스의 비트를 Don't Care 비트로서 처리하고 그리고 상기 제 1 및 제 2 뱅크들을 동시에 제어하도록 구성되는 메모리 다이.
  9. 채널을 통해 접근되는 제 1 뱅크들을 포함하고, 호스트로부터 상기 채널을 통해 상기 제 1 뱅크들에 대한 명령들을 수신하고, 그리고 상기 명령들에 기초하여 상기 채널을 통해 상기 호스트와 데이터 입출력을 수행하도록 구성되는 제 1 메모리 다이; 및
    상기 채널을 통해 접근되는 제 2 뱅크들, 상기 제 2 뱅크들의 데이터에 대한 로컬 연산들을 각각 실행하도록 구성되는 로컬 프로세서들, 그리고 상기 제 2 뱅크들과 상기 로컬 프로세서들을 제어하고 상기 로컬 연산들의 로컬 연산 결과들에 대한 글로벌 연산을 실행하도록 구성되는 글로벌 프로세서를 포함하는 제 2 메모리 다이를 포함하는 메모리 장치.
  10. 제 9 항에 있어서,
    상기 제 1 뱅크들, 상기 제 2 뱅크들, 상기 글로벌 프로세서의 제어 레지스터, 및 상기 호스트의 프로그램을 저장하는 상기 글로벌 프로세서의 프로그램 버퍼는 상기 메모리 장치에 관한 메모리 어드레스에 각각 맵핑되는 메모리 장치.
  11. 제 9 항에 있어서,
    상기 글로벌 프로세서는:
    상기 호스트로부터 전송되는 시작 인터럽트 신호에 응답하여 상기 제 2 뱅크들의 데이터 입출력들 또는 상기 로컬 연산들을 요청하거나, 또는 상기 글로벌 연산을 실행함으로써 온-다이 프로세싱을 실행하고, 그리고
    상기 온-다이 프로세싱의 실행이 완료되면 종료 인터럽트 신호를 상기 호스트로 전송하도록 더 구성되는 메모리 장치.
  12. 제 11 항에 있어서,
    상기 제 1 메모리 다이 및 상기 제 2 메모리 다이가 적층되는 버퍼 다이를 더 포함하고, 그리고
    상기 채널의 경로들은 상기 버퍼 다이, 상기 제 1 메모리 다이, 및 상기 제 2 메모리 다이를 각각 관통하는 복수의 TSV(Through Silicon Via)들을 포함하는 메모리 장치.
  13. 제 12 항에 있어서,
    상기 제 1 메모리 다이가 상기 명령들을 수신하고 상기 데이터 입출력을 수행하고 상기 제 2 메모리 다이의 상기 글로벌 프로세서가 상기 온-다이 프로세싱을 실행하는 동안, 상기 채널의 상기 경로들은 상기 제 1 뱅크들에 대한 상기 명령들의 전송 및 상기 호스트와의 상기 데이터 입출력에 사용되는 메모리 장치.
  14. 제 9 항에 있어서,
    상기 제 1 메모리 다이는 상기 제 2 메모리 다이와 동일하게 구현되고,
    상기 제 1 메모리 다이는 상기 제 1 뱅크들의 데이터에 대한 제 1 로컬 연산들을 각각 실행하도록 구성되는 제 1 로컬 프로세서들 및 상기 제 1 뱅크들과 상기 제 1 로컬 프로세서들을 제어하고 상기 제 1 로컬 연산들의 로컬 연산 결과들에 대한 제 1 글로벌 연산을 실행하도록 구성되는 제 1 글로벌 프로세서를 포함하고, 그리고
    상기 로컬 연산들은 제 2 로컬 연산들이고, 상기 로컬 프로세서들은 제 2 로컬 프로세서들이고, 상기 로컬 연산들은 제 2 로컬 연산들이고, 그리고 상기 글로벌 연산은 제 2 글로벌 연산인 메모리 장치.
  15. 제 14 항에 있어서,
    상기 제 1 글로벌 프로세서는:
    상기 호스트로부터 전송되는 시작 인터럽트 신호에 응답하여 상기 제 1 뱅크들의 데이터 입출력들 또는 상기 로컬 연산들을 요청하거나, 또는 상기 글로벌 연산을 실행함으로써 온-다이 프로세싱을 실행하고, 그리고
    상기 온-다이 프로세싱의 실행이 완료되면 종료 인터럽트 신호를 상기 호스트로 전송하도록 더 구성되는 메모리 장치.
  16. 제 9 항에 있어서,
    상기 제 1 메모리 다이는 상기 제 2 메모리 다이와 상이하게 구현되는 메모리 장치.
  17. 제 1 뱅크들을 포함하는 제 1 메모리 다이, 그리고 제 2 뱅크들, 상기 제 2 뱅크들의 데이터에 대한 로컬 연산들을 각각 실행하도록 구성되는 로컬 프로세서들, 및 상기 제 2 뱅크들과 상기 로컬 프로세서들을 제어하고 상기 로컬 연산들의 로컬 연산 결과들에 대한 글로벌 연산을 실행하도록 구성되는 글로벌 프로세서를 포함하는 제 2 메모리 다이를 포함하는 메모리 장치; 및
    채널을 통해 상기 제 1 메모리 다이 및 상기 제 2 메모리 다이 중 하나를 접근하도록 구성되는 메모리 컨트롤러를 포함하는 시스템 온 칩을 포함하는 전자 장치.
  18. 제 17 항에 있어서,
    상기 시스템 온 칩은 상기 채널을 통해 상기 제 1 메모리 다이의 상기 제 1 뱅크들을 접근하는 상기 메모리 컨트롤러를 이용하여 시스템 프로세싱을 실행하도록 구성되는 시스템 프로세서를 더 포함하고, 그리고
    상기 제 2 메모리 다이의 상기 글로벌 프로세서는 상기 시스템 프로세서가 상기 시스템 프로세싱을 실행하는 동안, 상기 제 2 뱅크들의 데이터 입출력들 또는 상기 로컬 연산들을 요청하거나, 또는 상기 글로벌 연산을 실행함으로써 온-다이 프로세싱을 실행하는 전자 장치.
  19. 제 18 항에 있어서,
    상기 메모리 장치는:
    상기 제 1 및 제 2 메모리 다이들이 적층되는 버퍼 다이; 및
    상기 버퍼 다이와 상기 제 1 및 제 2 메모리 다이들 간의 상기 제 1 채널의 경로들을 더 포함하고,
    상기 시스템 프로세서가 상기 시스템 프로세싱을 실행하고 상기 제 2 메모리 다이의 상기 글로벌 프로세서가 상기 온-다이 프로세싱을 실행하는 동안, 상기 제 1 채널의 상기 경로들은 상기 시스템 프로세싱에 사용되는 전자 장치.
  20. 제 18 항에 있어서,
    상기 시스템 프로세싱은 이미지 프로세싱이고 그리고 상기 온-다이 프로세싱은 음성 인식 프로세싱인 전자 장치.
KR1020200005896A 2020-01-16 2020-01-16 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치 KR20210092467A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200005896A KR20210092467A (ko) 2020-01-16 2020-01-16 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치
US16/996,434 US11276459B2 (en) 2020-01-16 2020-08-18 Memory die including local processor and global processor, memory device, and electronic device
CN202011025517.8A CN113140236A (zh) 2020-01-16 2020-09-25 存储器管芯、存储器设备和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200005896A KR20210092467A (ko) 2020-01-16 2020-01-16 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치

Publications (1)

Publication Number Publication Date
KR20210092467A true KR20210092467A (ko) 2021-07-26

Family

ID=76809430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200005896A KR20210092467A (ko) 2020-01-16 2020-01-16 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치

Country Status (3)

Country Link
US (1) US11276459B2 (ko)
KR (1) KR20210092467A (ko)
CN (1) CN113140236A (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210093521A (ko) * 2020-01-20 2021-07-28 삼성전자주식회사 고대역폭 메모리 및 이를 포함하는 시스템
US11960438B2 (en) * 2020-09-08 2024-04-16 Rambus Inc. Methods and circuits for streaming data to processing elements in stacked processor-plus-memory architecture
US12112792B2 (en) * 2021-08-10 2024-10-08 Micron Technology, Inc. Memory device for wafer-on-wafer formed memory and logic
US11789653B2 (en) * 2021-08-20 2023-10-17 Micron Technology, Inc. Memory access control using a resident control circuitry in a memory device
US12112681B2 (en) * 2021-09-02 2024-10-08 Apple Inc. Electronic devices with displays and interposer structures
US11630605B1 (en) * 2022-08-10 2023-04-18 Recogni Inc. Methods and systems for processing read-modify-write requests
CN117915670B (zh) * 2024-03-14 2024-07-05 上海芯高峰微电子有限公司 一种存算一体的芯片结构

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060136681A1 (en) * 2004-12-21 2006-06-22 Sanjeev Jain Method and apparatus to support multiple memory banks with a memory block
US8042082B2 (en) * 2007-09-12 2011-10-18 Neal Solomon Three dimensional memory in a system on a chip
US9477636B2 (en) * 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
KR101039782B1 (ko) * 2009-11-26 2011-06-09 한양대학교 산학협력단 능동 메모리 프로세서를 포함하는 네트워크-온-칩 시스템
US9947386B2 (en) 2014-09-21 2018-04-17 Advanced Micro Devices, Inc. Thermal aware data placement and compute dispatch in a memory system
KR101814577B1 (ko) * 2015-10-16 2018-01-03 삼성전자주식회사 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치
US9767028B2 (en) * 2015-10-30 2017-09-19 Advanced Micro Devices, Inc. In-memory interconnect protocol configuration registers
KR102548591B1 (ko) * 2016-05-30 2023-06-29 삼성전자주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR102467698B1 (ko) 2016-07-26 2022-11-16 삼성전자주식회사 적층형 메모리 장치, 이를 포함하는 시스템 및 그 동작 방법
US10360034B2 (en) * 2017-04-18 2019-07-23 Samsung Electronics Co., Ltd. System and method for maintaining data in a low-power structure
KR20200047551A (ko) * 2017-07-30 2020-05-07 뉴로블레이드, 리미티드. 메모리 기반 분산 프로세서 아키텍처
KR20190075363A (ko) * 2017-12-21 2019-07-01 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 모듈
KR20210093521A (ko) * 2020-01-20 2021-07-28 삼성전자주식회사 고대역폭 메모리 및 이를 포함하는 시스템

Also Published As

Publication number Publication date
US20210225430A1 (en) 2021-07-22
US11276459B2 (en) 2022-03-15
CN113140236A (zh) 2021-07-20

Similar Documents

Publication Publication Date Title
KR20210092467A (ko) 로컬 프로세서와 글로벌 프로세서를 포함하는 메모리 다이, 메모리 장치, 및 전자 장치
Asghari-Moghaddam et al. Chameleon: Versatile and practical near-DRAM acceleration architecture for large memory systems
US10642612B2 (en) Memory device performing parallel arithmetic processing and memory module including the same
KR20210092460A (ko) 복수의 어드레스 맵핑 테이블들을 저장하는 메모리 컨트롤러, 시스템 온 칩, 및 전자 장치
US7636833B2 (en) Method for selecting memory busses according to physical memory organization information associated with virtual address translation tables
US20180004659A1 (en) Cribbing cache implementing highly compressible data indication
US11301399B2 (en) Memory device including processing circuit, and electronic device including system on chip and memory device
KR20120082928A (ko) 내부 프로세서들을 구비한 메모리 및 메모리 액세스 제어 방법들
JP2013206474A (ja) メモリ装置及びメモリ装置の動作方法
JP7384806B2 (ja) 連動メモリデバイスに対するメモリ要求のスケジューリング
WO2017206000A1 (zh) 内存访问方法及内存控制器
KR20210098831A (ko) 비휘발성 메모리에서의 구성가능한 기입 커맨드 지연
US10020036B2 (en) Address bit remapping scheme to reduce access granularity of DRAM accesses
JP2018152112A (ja) メモリ装置及びメモリ装置の動作方法
US11281397B2 (en) Stacked memory device performing function-in-memory (FIM) operation and method of operating the same
US20230044654A1 (en) Electronic device including near-memory supporting mode setting, and method of operating the same
KR101022473B1 (ko) 다층 버스 시스템에서의 메모리 뱅크 인터리빙 방법 및장치
TWI757300B (zh) 用於執行內部程序之記憶體裝置及其操作方法
CN107369473B (zh) 存储系统及其操作方法
KR20230043619A (ko) 내부 프로세싱 동작에 대한 타이밍 파라미터들 및 전력 소모를 줄이는 메모리 장치 및 이를 구현하는 방법
US11928039B1 (en) Data-transfer test mode
US12100468B2 (en) Standalone mode
US20240070093A1 (en) Asymmetric Read-Write Sequence for Interconnected Dies
US20230343381A1 (en) Bank-Level Self-Refresh
KR20230115012A (ko) 메모리 장치