CN109783410A - 执行并行运算处理的存储器设备和包括其的存储器模块 - Google Patents

执行并行运算处理的存储器设备和包括其的存储器模块 Download PDF

Info

Publication number
CN109783410A
CN109783410A CN201811000516.0A CN201811000516A CN109783410A CN 109783410 A CN109783410 A CN 109783410A CN 201811000516 A CN201811000516 A CN 201811000516A CN 109783410 A CN109783410 A CN 109783410A
Authority
CN
China
Prior art keywords
hbm
core
memory
naked core
naked
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201811000516.0A
Other languages
English (en)
Other versions
CN109783410B (zh
Inventor
金晋贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109783410A publication Critical patent/CN109783410A/zh
Application granted granted Critical
Publication of CN109783410B publication Critical patent/CN109783410B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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
    • 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
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/063Voltage and signal distribution in integrated semi-conductor memory access lines, e.g. word-line, bit-line, cross-over resistance, propagation delay
    • 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

Abstract

存储器模块包括:第一存储器设备,被配置为从硬件加速器接收数据和第一信息,通过执行使用该数据和第一信息的运算处理来生成运算结果,以及通过与至少一个其他存储器设备通信的接口输出运算结果;和第二存储器设备,被配置为通过该接口从第一存储器设备接收运算结果而不使用硬件加速器,并存储运算结果。

Description

执行并行运算处理的存储器设备和包括其的存储器模块
相关申请的交叉引用
本申请要求于2017年11月15日向韩国知识产权局提交的韩国专利申请No.10-2017-0152504的优先权,其公开通过引用整体被并入本文。
技术领域
本公开涉及存储器设备,并且更具体地涉及执行并行运算处理的存储器设备以及包括该存储器设备的存储器模块。
背景技术
在高性能电子系统中广泛使用的半导体存储器设备的容量和速度已提高。作为半导体存储器设备的示例的动态随机存取存储器(Dynamic Random Access Memory,DRAM)是易失性存储器并且基于存储在电容器中的电荷确定数据。
DRAM可以用于许多目的。例如,DRAM可以用于存储用于各种运算处理的数据或存储运算结果。另外,在处理大量计算(诸如神经网络计算)中有效地使用DRAM可能是有用的。
发明内容
公开的实施例提供了用于使用运算处理功能并行地处理大量计算的存储器设备以及包括该存储器设备的存储器模块。
根据本发明构思的一方面,一种存储器模块包括:第一存储器设备,被配置为从硬件加速器接收数据和第一信息,通过执行使用该数据和第一信息的运算处理来生成运算结果,以及通过与至少一个其他存储器设备通信的接口输出运算结果;和第二存储器设备,被配置为通过接口从第一存储器设备接收运算结果而不使用硬件加速器,并存储运算结果。
根据本发明构思的另一方面,一种存储器模块包括:插入器(interposer),其具有形成在其上的用于信号传输的布线;和多个高带宽存储器(High Bandwidth Memory,HBM),其安装在插入器上。所述HBMS中的每一个包括缓冲器裸芯,该缓冲器裸芯被配置为与每个HBM外部的设备通信;和多个核心裸芯,核心裸芯中的每一个包括存储器单元阵列和被配置为执行运算处理的运算电路。多个HBM中的第一HBM被配置为通过缓冲器裸芯从存储器控制器接收数据,以及并行地在多个核心裸芯中执行使用该数据的运算处理。存储器模块被配置为使得通过第一HBM的缓冲器裸芯和第二HBM的缓冲器裸芯之间的数据通信将第一HBM的运算结果提供给多个HBM中的第二HBM。
根据本发明构思的另一方面,一种存储器设备包括:第一裸芯,被配置为与外部存储器控制器和外部存储器设备相接合;多个第二裸芯,其堆叠在第一裸芯上,第二裸芯中的每一个包括存储器单元阵列;和硅通孔(Through-Silicon Via,TSV)区域,被配置为在第一裸芯和多个第二裸芯之间发送和接收信号。第二裸芯中的每一个包括多个信道,信道中的每一个包括被配置为执行使用从所述外部存储器控制器提供的数据的运算处理的运算电路。第一裸芯包括:第一接口电路,被配置为通过与外部存储器控制器通信来接收数据和运算命令以及通过TSV区域将数据传输到第二裸芯;和第二接口电路,被配置为通过TSV区域从第二裸芯接收运算结果,以及通过与外部存储器设备通信来输出运算结果。
附图说明
从结合附图的以下详细描述中将更清楚地理解本发明构思的实施例,在附图中:
图1是根据本发明构思的示例实施例的数据处理系统的框图;
图2A至图2C是根据本发明构思的示例实施例的在存储器设备之间的数据通信的框图;
图3是数据处理系统中的存储器模块的示例性实施方式的图;
图4是图3中所示出的高带宽存储器(HBM)的示例性实施方式的图;
图5是根据本发明构思的示例实施例的操作存储器设备的方法的流程图;
图6是根据本发明构思的另一示例实施例的操作存储器设备的方法的流程图;
图7是根据本发明构思的示例实施例的操作包括存储器模块的数据处理系统的方法的流程图;
图8是根据本发明构思的示例实施例的数据处理系统的操作的框图;
图9是运算处理的示例的框图;
图10是根据本发明构思的示例实施例的HBM的示例性实施方式的框图;
图11和图12是数据处理系统的操作的示例的框图;
图13是根据本发明构思的示例实施例的包括HBM的数据处理系统执行神经网络计算的示例的图。
图14是被包括在HBM中的多端口中的信号传输的示例的框图;
图15是根据本发明构思的示例实施例的包括存储器设备的移动设备的示例性实施方式的框图;和
图16是根据本发明构思的示例实施例的包括数据处理系统的服务器系统的框图。
具体实施方式
图1是根据本发明构思的示例实施例的数据处理系统的框图。
参考图1,数据处理系统100可以包括中央处理单元(Central Processing Unit,CPU)110;一个或多个硬件(Hardware,HW)加速器,例如第一至第A HW加速器120_1至120_A;和一个或多个存储器模块,例如第一至第B存储器模块130_1到130_B。数据处理系统100还可以包括用于组件之间的通信的总线。总线可以通过诸如外围组件互连(PeripheralComponent Interconnect,PCI)、PCI Express(PCI Express,PCIe)、BlueLink和QuickPath互连(QuickPath Interconnection,QPI)的各种协议来支持与其连接的组件之间的通信。CPU 110可以通过总线与第一至第A HW硬件加速器120_1至120_A通信。
数据处理系统100可以是处理数据并将数据记录在第一至第B存储器模块130_1至130_B中或者处理从第一至第B存储器模块130_1至130_B读取的数据的各种系统中的一种。例如,数据处理系统100可以被实施为个人计算机(Personal Computer,PC)、数据服务器、云系统、人工智能服务器、网络附加存储装置(Network-Attached Storage,NAS)、物联网(Internet of Things,IoT)设备、或便携式电子设备。当数据处理系统100是便携式电子设备时,数据处理系统100可以是膝上型计算机、蜂窝电话、智能电话、平板PC、个人数字助理(Personal Digital Assistant,PDA)、企业数字助理(Enterprise Digital Assistant,EDA)、数码相机、数码摄像机、音频设备、便携式多媒体播放器(Portable MultimediaPlayer,PMP)、个人导航设备(Personal Navigation Device,PND)、MP3播放器、手持式游戏机、电子书、可穿戴设备等。
CPU 110可以控制数据处理系统100的所有操作。例如,CPU 110可以将指令提供给第一至第A HW加速器120_1至120_A以控制第一至第A HW加速器120_1至120_A的操作。数据处理系统100还可以包括存储指令的操作存储器(未显示),并且CPU 110可以访问操作存储器。
第一至第A HW加速器120_1至120_A可以与各种辅助处理器相对应。例如,第一至第A HW加速器120_1至120_A中的每一个可以是诸如现场可编程门阵列(Field-Programmable Gate Array,FPGA)、大规模并行处理器阵列(Massively ParallelProcessor Array,MPPA)、图形处理单元(Graphics Processing Unit,GPU)、专用集成电路(Application-Specific Integrated Circuit,ASIC)、神经处理单元(Neural ProcessingUnit,NPU)、张量处理单元(Tensor Processing Unit,TPU)以及多处理器片上系统(Multi-Processor System-On-Chip,MPSoC)的各种加速器中的一种。
第一至第B存储器模块130_1至130_B中的每一个可以包括至少一个存储器设备(Memory Device,MD)。第一至第B个存储器模块130_1至130_B可以被布置得与第一至第AHW加速器120_A至120_1相对应。例如,第一存储器模块130_1可以包括多个存储器设备MD,并且第一HW加速器120_1可以作为第一存储器模块130_1的主机来操作。响应于来自第一HW加速器120_1的命令和地址,第一存储器模块130_1可以将数据写入选择的MD或将从选择的MD读取的数据提供给第一HW加速器120_1。
在数据处理系统100中第一至第A HW加速器120_1至120_A以及第一至第B存储器模块130_1至130_B可以以各种形式来实施。例如,第一至第B存储器模块130_1至130_B中的每一个可以是包括安装在模块板上的多个MD的单列直插存储器模块(Single In-LineMemory Module,SIMM)或双列直插存储器模块(Dual In-Line Memory Module,DIMM)。可替代地,MD中的每一个可以包括高带宽存储器(HBM),并且包括这样的MD的存储器模块可以被称为HBM模块。HBM模块可以包括至少一个HW加速器以及安装在插入器上的多个HBM。
如图1所示,可以定义第一至第B存储器模块130_1至130_B中的每一个包括多个MD。在修改的实施例中,可以定义第一至第B存储器模块130_1至130_B中的每一个还可以包括控制存储器操作的控制器(未示出)。尽管在图1所示的实施例中HW加速器被设置在存储器模块外部,但是HW加速器可以被设置在存储器模块内部。例如,可以定义第一HW加速器120_1被设置在第一存储器模块130_1内部(例如,安装在模块板上作为存储器模块的部分)。
尽管在图1所示的实施例中第一至第A HW加速器120_1至120_A的数量是A并且第一至第B存储器模块130_1至130_B的数量是B,但是本发明构思不限于此。例如,在数据处理系统100中第一至第A HW加速器120_1至120_A的数量可以与第一至第B存储器模块130_1至130_B的数量相同。
数据处理系统100可以包括作为插入到板(或主板)中的卡的第一至第A HW加速器120_1至120_A以及第一至第B存储器模块130_1至130_B。例如,包括至少一个HW加速器和至少一个存储器模块的添加卡(add-in card)可以被插入到板的扩展槽中。例如,插入到扩展槽中的卡可以包括一个HW加速器和一个存储器模块。图1示出了一个卡包括第一HW加速器120_1和第一存储器模块130_1的结构。在修改的实施例中,卡可以包括一个HW加速器和多个存储器模块,或多个HW加速器和多个存储器模块。
当总线支持符合PCI协议的通信时,卡可以是PCI卡。当卡包括HW加速器时,卡可以被称为图形卡或加速器卡。在一个示例中,图1中所示的数据处理系统100可以被定义为包括CPU 110和安装在板中的多个卡。
被包括在第一至第B存储器模块130_1至130_B中的每一个中的MD可以是动态随机存取存储器(DRAM)(诸如双数据速率(Double Data Rate,DDR)同步DRAM(SynchronousDRAM,SDRAM)、低功率DDR(Low Power DDR,LPDDR)SDRAM、图形DDR(Graphics DDR,GDDR)SDRAM或Rambus DRAM(Rambus DRAM,RDRAM)),但是本发明构思不限于此。例如,MD可以被实施为诸如磁性RAM(Magnetic RAM,MRAM)、铁电RAM(Ferroelectric RAM,FeRAM)、相变RAM(Phase-Change RAM,PRAM)或电阻RAM(Resistive RAM,ReRAM)的非易失性存储器。
下面将描述根据本发明构思的示例实施例的MD和存储器模块的操作的示例。HW加速器可以控制至少一个存储器模块。例如,假定第一HW加速器120_1访问第一存储器模块130_1并且第A HW加速器120_A访问第(B-1)存储器模块130_(B-1)和第B存储器模块130_B。
在CPU 110的控制下,第一HW加速器120_1可以将写入数据提供给第一存储器模块130_1,并且可以从第一存储器模块130_1读取数据。第A HW加速器120_A可以将写入数据提供给第(B-1)存储器模块130_(B-1)和第B存储器模块130_B,并且可以从第(B-1)存储器模块130_(B-1)和第B存储器模块130_B读取数据。在某些实施例中,对第一存储器模块130-1、第(B-1)存储器模块130_(B-1)和第B存储器模块130_B的访问可以全部是并行的。
根据本发明构思的示例实施例,每个MD可以设置有支持MD之间的数据通信的I/F电路,并且可以包括执行使用数据的运算处理的运算电路(未示出)。一个MD可以在对应的HW加速器的控制下执行运算处理,并可以将运算结果提供给另一个MD。例如,在第一HW加速器120_1的控制下,第一存储器模块130_1的第一MD 131可以执行使用数据的运算处理,并且将运算结果提供给第一存储器模块130_1的第二MD 132而不经过第一HW加速器120_1。以这种方式,第一MD 131的运算结果可以被直接地提供给第二MD 132,并且可以不需要被提供给第一HW加速器120_1。
在修改的实施例中,MD之间的数据通信也可以在其他存储器模块之间执行。例如,第A HW加速器120_A可以控制第(B-1)存储器模块130_(B-1)和第B存储器模块130_B。第AHW加速器120_A、第(B-1)存储器模块130_(B-1)和第B存储器模块130_B可以形成单个卡,并且第(B-1)存储器模块130_(B-1)和第B存储器模块130_B可以通过形成在卡上的布线彼此通信。在第A HW加速器120_A的控制下,第(B-1)存储器模块130_(B-1)的第三MD 133可以执行运算处理,并将运算结果直接地提供给第B存储器模块130_B的第四MD 134,而不经过第AHW加速器120_A。
通过上述操作,可以以分布式的方式在第一至第B存储器模块130_1至130_B中执行大量运算处理的至少一部分。例如,可以在第一至第B存储器模块130_1至130_B中并行地执行运算处理的至少一部分或全部。在HW加速器中可以像通常一样执行其他运算处理。当在第一HW加速器120_1中执行运算处理并且运算结果被存储在第B存储器模块130_B的第四MD 134中时,第一HW加速器120_1可以将运算结果提供给第A HW加速器120_A,并且第A HW加速器120_A可以将运算结果存储在第B存储器模块130_B的第四MD 134中。
本文描述的每个存储器模块包括其上安装有多个存储器设备的模块板。存储器设备可以以本文描述的各种方式安装,并且在一些情况下,其它设备也可以被安装在模块板上,如本文的各种示例所示。每个存储器设备包括一个或多个半导体存储器芯片。
根据上述发明构思的示例实施例,由于MD采用多端口进行数据通信,并且MD之间的各种类型的通信(例如,对等(Peer-to-Peer,P2P)通信)得到支持,所以可以执行双向通信,并且因此,MD可以直接地相互通信,而不需要组合诸如HW加速器的处理单元,从而具有数据处理操作的低延迟特性。另外,在需要大量运算处理的神经网络计算的情况下,除了使用HW加速器执行的计算之外,还可以执行使用多个MD的并行运算处理,并且因此,运算处理速度可以增加并且用于实施神经网络系统的成本可以减少。此外,可以以分布式的方式在多个MD中执行运算处理,从而增强功率分布。此外,多个MD可以具有各种类型的连接架构,并且因此,当MD具有完整的P2P连接架构时,带宽特性可以被增强。
在下文中,将在下面描述本发明构思的各种实施例及其示例操作。在实施例中,GPU将被解释为HW加速器的示例,但是本发明构思不限于此,并且可以使用其他各种类型的HW加速器。
图2A至图2C是根据本发明构思的示例实施例的MD之间的数据通信的框图。
参考图2A,数据处理系统200A可以包括GPU 211A、第一MD 221A和第二MD 222A。在GPU 211A的控制下可以对第一MD 221A和第二MD 222A执行数据访问。在实施例中,第一MD221A和第二MD 222A可以被包括在存储器模块中,并且GPU 211A可以被设置在存储器模块的外部。
第一MD 221A和第二MD 222A中的每一个可以支持多端口选项并且执行双向通信和运算处理。例如,第一MD 221A和第二MD 222A中的每一个可以执行使用外部提供的数据或者内部读取的数据的运算处理,并且可以将来自第一MD 221A的运算结果Data_Ari提供给第二MD 222A或者将来自第二MD 222A的运算结果Data_Ari提供给第一MD 221A。
在示例操作中,GPU 211A可以由数据处理系统200A中的CPU(未示出)控制。GPU211A可以将用于指示执行运算处理的命令CMD提供给第一MD 221A。第一MD 221A可以执行使用从其中的单元核心读取的数据或从外部提供的数据的运算处理,并且可以通过其中的接口(I/F)电路将运算结果Data_Ari直接地提供给第二MD 222A。所述GPU 211A也可以将用于指示存储数据的命令CMD提供给第二MD 222A。响应于命令CMD,第二MD222A可以将从第一MD 221A提供的运算结果Data_Ari存储在其中的单元核心中。
参考图2B,数据处理系统200B可以包括GPU 211B、第一MD 221B和第二MD 222B。第一MD 221B和第二MD 222B可以由GPU 211B控制。GPU 211B以及第一MD 221B和第二MD 222B可以被包括在一个存储器模块中。在CPU(未示出)的控制下,GPU 211B可以将命令CMD提供给第一MD 221B和第二MD 222B以指示执行各种存储器操作。类似于参考图2A描述的实施例,第一MD 221B可以响应于命令CMD执行运算处理并且可以提供运算结果Data_Ari,并且第二MD 222B可以响应于另一命令CMD将运算结果Data_Ari存储在其中的单元核心中。
参考图2C,数据处理系统200C可以包括作为一个或多个存储器模块的GPU 211C和第一存储器模块221C以及第二存储器模块222C。例如,GPU211C、第一存储器模块221C和第二存储器模块222C可以被设置在一个卡中。第一存储器模块221C可以通过布线(例如,形成在卡上的布线)向第二存储器模块222C传输信号并从第二存储器模块222C接收信号。GPU211C可以提供用于控制分别被包括在第一存储器模块221C和第二存储器模块222C中的MD221C_1和MD 222C_1的存储器操作的命令CMD。例如,来自第一存储器模块221C的MD 221C_1的运算结果Data_Ari可以被提供给第二存储器模块222C的MD 222C_1而不经过GPU 211C。
根据图2A至图2C所示的实施例,可以不需要HW加速器和MD之间的数据通信,并且数据可以在MD之间高速传输。例如,以分布式的方式在多个MD中执行运算处理,并且可以在MD之间直接地传输运算结果。
图3是数据处理系统中的存储器模块的示例性实施方式的图。图3示出了作为包括存储器控制器和至少一个MD的存储器模块的半导体封装。在示例性实施方式中,至少一个半导体封装可以安装在单个卡(例如,图形卡)上,并且每个MD是HBM。
参考图3,半导体封装300可以包括多个HBM 310、存储器控制器320、插入器330和封装基底340。HBM 310和存储器控制器320可以安装在插入器330上,并且可以通过形成在插入器330上的布线彼此通信传达信号。插入器330可以包括硅通孔(TSV)型布线、印刷电路板(Printed Circuit Board,PCB)型有机布线、或诸如嵌入式多裸芯互连桥(EmbeddedMulti-Die Interconnect Bridge,EMIB)的非TSV型布线。
在修改的实施例中,半导体封装300可以仅包括多个HBM 310而没有存储器控制器320。例如,半导体封装300可以在外部存储器控制单元的控制下执行数据访问。如图3所显示,可以在外部HW加速器(例如,GPU 301)的控制下控制对HBM 310的数据访问。
在另一修改的实施例中,代替存储器控制器320的其他各种类型的半导体芯片可以被包括在半导体封装300中。例如,图3中所示的GPU 301可以被包括在半导体封装300中,或者包括具有存储器控制功能的设备(例如,知识产权(Intellectual Property,IP)块)的应用处理器(Application Processor,AP)可以被包括在半导体封装300中。
图3中所示的HBM 310可以执行上面在实施例中描述的通信。在示例性实施方式中,可以在插入器330中提供与HBM 310之间的信号传输路径相对应的布线,并且可以将数据从HBM 310中的一个传输到HBM 310中的至少一个其他HBM。例如,如上所述HBM 310中的每一个可以包括运算电路,并且可以在GPU 301的控制下执行运算处理并且将运算结果提供给另一HBM 310。在实施例中,HBM 310中的每一个可以包括缓冲器裸芯(或逻辑裸芯)(其包括作为用于控制存储器操作的外围电路的控制逻辑)和包括存储器单元阵列的一个或多个核心裸芯,并且运算电路可以被设置在核心裸芯的每一个中。
图4是图3中所示的HBM 310的每一个的示例性实施方式的图。下面将使用HBM 310中的一个来描述HBM 310的结构。
通过包括具有独立I/F的多个信道,HBM 310可以具有增加的带宽。参考图4,HBM310可以包括多个裸芯,例如缓冲器裸芯(或逻辑裸芯)312和堆叠在缓冲器裸芯312上的一个或多个核心裸芯,例如第一至第四核心裸芯311。在图4所示的示例性实施方式中,第一至第四核心裸芯311被包括在HBM 310中,但是核心裸芯311的数量可以变化。
每个核心裸芯311可以包括至少一个信道。在图4所示的示例性实施方式中,每个核心裸芯311包括两个信道,因此,HBM 310具有八个信道CH1至CH8。例如,第一核心裸芯可以包括第一信道CH1和第三信道CH3,第二核心裸芯可以包括第二信道CH2和第四信道CH4,第三核心裸芯可以包括第五信道CH5和第七信道CH7,第四核心裸芯可以包括第六信道CH6和第八信道CH8。
缓冲器裸芯312可以与外部存储器控制器(或HW加速器)通信,从存储器控制器接收命令、地址和数据,并且将命令、地址和数据提供给核心裸芯311。缓冲器裸芯312可以通过导电构件(未示出)(例如形成在其外表面上的凸起)与存储器控制器通信。缓冲器裸芯312可以缓冲命令、地址和数据。因此,存储器控制器可以通过仅驱动缓冲器裸芯312的负载(load)来与核心裸芯311相接合(interface)。
HBM 310还可以包括穿过核心裸芯311和缓冲器裸芯312的多个TSV。TSV可以对应于多个第一至第八信道CH1至CH8来设置。当第一至第八信道CH1至CH8中的每一个具有128位带宽时,TSV可以包括用于输入和输出1024位数据的合成(composition)。
在实施例中,HBM 310可以执行运算处理,并且运算电路(Arithmetic Circuit,AC)311_1可以被设置在缓冲器裸芯312和/或核心裸芯311中。在示例性实施方式中,运算电路可以被设置在核心裸芯311的每一个中,并且因此,可以以分布式的方式在核心裸芯311中执行在HBM 310中执行的多个运算处理操作。尽管在图4中运算电路311_1被设置在第四核心裸芯的第八信道CH8中,但是运算电路311_1可以被设置在核心裸芯311的每一个中或者第一至第八信道CH1至CH8中的每一个中。
缓冲器裸芯312可以包括控制逻辑312_1、TSV区域312_2、物理(Physical,PHY)区域312_3和直接存取(Direct Access,DA)区域312_4。控制逻辑312_1可以控制HBM 310的所有操作。例如,控制逻辑312_1可以响应于来自外部存储器控制器的命令而执行内部控制。核心裸芯311中的每一个可以在控制逻辑312_1的控制下执行运算处理并且传输运算结果。
TSV区域312_2是其中形成用于与核心裸芯311通信的TSV的区域。PHY区域312_3可以包括用于与外部存储器控制器通信的多个输入/输出电路和用于与其他HBM通信的多个输入/输出电路。例如,PHY区域312_3可以包括多个端口,并且端口中的一个可以与外部存储器控制器通信,并且端口中的另一个可以与另一HBM通信。
在HBM 310的测试模式下,DA区域312_4可以通过被设置在HBM 310的外表面上的导电构件直接地与外部测试仪通信。来自测试仪的各种信号可以通过DA区域312_4和TSV区域312_2被提供给核心裸芯311。在修改的实施例中,来自测试仪的各种信号可以通过DA区域312_4、PHY区域312_3和TSV区域312_2被提供给核心裸芯311。
根据上述实施例,当在HBM之间传输运算结果时,可以使用HBM的每信道带宽(bandwidth per channel),并且因此,信道的带宽可以被有效地使用并且对于大量的计算数据延迟可以被减少。
图5是根据本发明构思的示例实施例的操作MD的方法的流程图。图5示出了操作一个MD(例如,第一MD)的方法。
参考图5,第一MD可以在外部存储器控制器(或作为HW加速器的示例的GPU)的控制下执行存储器操作。当第一MD包括根据上述实施例的运算电路时,第一MD也可以执行运算处理。另外,第一MD可以与至少一个其他MD通信。例如,第一MD可以与第二MD交换数据。
第一MD可以包括输入端口和输出端口。在操作S11中,第一MD可以通过输入端口从GPU接收命令和数据。在实施例中,第一MD可以包括多个I/F电路,并且可以将I/F电路中的一个作为输入端口使用,并且可以将I/F电路中的另一个作为输出端口使用。第一MD可以响应于各种命令执行运算处理。第一MD可以响应于预定的命令(例如,写入命令)、或新定义的命令执行运算处理。在操作S12中,第一MD可以执行使用从GPU提供的数据的运算处理。
在GPU的控制下运算结果可以被存储在第一MD外部的第二MD中。在这时,第一MD可以与第二MD交换数据。在操作S13中,运算结果可以通过第一MD的输出端口直接地被传输到第二MD。
图6是根据本发明构思的另一示例实施例的操作MD的方法的流程图。在图6所示的实施例中,HBM是MD并且在诸如GPU的HW加速器的控制下执行神经网络计算。
参考图6,在操作S21中,第一HBM可以从GPU接收数据和第一权重信息。数据和第一个权重信息用于神经网络计算。类似于上述示例,第一HBM还可以从GPU接收用于执行计算的命令。
第一HBM可以包括缓冲器裸芯和一个或多个核心裸芯。神经网络计算可以包括使用多个权重的数据的并行运算操作。在这时,当第二HBM执行使用已经从GPU接收的数据和第二权重信息的运算处理时,在操作S22中,第一HBM可以通过缓冲器裸芯将数据传输(或旁路)给第二HBM。
在操作S23中,第一HBM可以将数据和第一权重信息传输给一个或多个核心裸芯。在操作S24中,一个或多个核心裸芯可以执行使用数据和第一权重信息的神经网络计算,并且可以将神经网络计算结果传输给第一HBM的缓冲器裸芯。在操作S25中,第一HBM可以通过缓冲器裸芯将神经网络计算结果传输给第三HBM。
图7是根据本发明构思的示例实施例的操作包括存储器模块的数据处理系统的方法的流程图。如在上述实施例中那样,数据处理系统可以包括包括多个HBM的存储器模块和作为控制HBM的HW加速器的GPU。
参考图7,在操作S31中,GPU可以将用于神经网络计算的第一数据和命令提供给第一HBM。在操作S32中,GPU还可以将要与用于神经网络计算的第一数据一起使用的第一权重信息提供给第一HBM。根据上述实施例,HBM可以彼此交换数据,并且第一HBM的神经网络计算结果可以从第一HBM传输到第二HBM并被存储在第二HBM中。
可替代地,第一HBM的神经网络计算结果可以通过第二HBM被提供给GPU。在操作S33中,GPU可以将用于接收使用第一数据和第一权重信息获得的神经网络计算结果(例如,第一运算结果)的命令提供给第二HBM。在操作S34中,GPU可以接收第一运算结果。在修改的实施例中,第二HBM可以从GPU接收第二权重信息并且通过执行使用第一运算结果和第二权重信息的神经网络计算来生成第二运算结果。GPU可以从第二HBM接收第二运算结果。
图8是根据本发明构思的示例实施例的数据处理系统400的操作的框图。数据处理系统400可以包括HW加速器410和包括与HW加速器410相对应的多个HBM的存储器模块420。在图8所示的实施例中,执行使用数据和权重的运算操作(例如,乘法)。使用权重的运算操作可以与神经网络计算相对应。
参考图8和图9,HW加速器410可以包括命令控制器411和一个或多个高速缓存,例如第一至第三高速缓存412、413和414。第一至第三高速缓存412至414可以是各种类型的高速缓存。在当前实施例中,第一至第三高速缓存412至414可以是L2高速缓存。第一高速缓存412可以用于存储经历运算操作的数据。第二高速缓存413可以用于存储权重。第三高速缓存414可以用于存储使用数据和权重获得的运算操作结果。
存储器模块420的HBM可以以各种类型的架构连接并且可以彼此通信。图8示出了HBM的每一个在命令控制器411的控制下向相邻HBM传输信号的收缩架构(systolicarchitecture),但是HBM可以具有各种类型的连接架构,诸如环连接架构、部分连接架构、全连接架构、环面网络架构和交叉开关架构。图8示出了其中HBM被布置成三行三列的示例。
下面将参考存储器模块420的第一HBM 421至第五HBM 425来描述数据处理系统400的操作。
响应于来自命令控制器411的命令,可以将数据从第一高速缓存412提供给第一HBM 421,并且可以将权重从第二高速缓存413提供给第一HBM421。第一HBM 421可以包括缓冲器裸芯421_1和多个核心裸芯421_2。数据和权重可以通过缓冲器裸芯421_1被提供给核心裸芯421_2。例如,可以将用于运算操作的多条数据和多个权重分配给核心裸芯421_2。核心裸芯421_2中的每一个可以在第一HBM 421的内部控制下执行使用数据和权重的运算操作(例如,乘法)。
来自第一高速缓存412的数据可以通过第一HBM 421被提供给第二HBM 422,并且第二HBM 422可以从第二高速缓存413接收权重。被包括在第二HBM 422中的多个核心裸芯可以执行使用数据和权重的运算操作。另外,第二HBM 422还可以将通过第一HBM 421接收的数据传输(或旁路)给在与第二HBM 422相同的行中的另一HBM(例如,右侧的相邻HBM)。
同时,运算结果可以直接地在HBM之间传输而不经过HW加速器410。例如,第一HBM421可以通过接口与第三HBM 423通信并且可以将运算结果提供给第三HBM 423。在实施例中,第一HBM 421的核心裸芯421_2的运算结果可以被提供给缓冲器裸芯421_1,并且然后通过第一HBM 421的缓冲器裸芯421_1与第三HBM 423的缓冲器裸芯之间的通信被提供给第三HBM 423。
运算结果可以被存储在在各种位置中的任何一个位置处的HBM中。例如,第一HBM421的运算结果可以通过上述通信被提供给第三HBM 423并被存储在第三HBM 423包括的核心裸芯的单元阵列中,或者可以通过第三HBM 423被提供给第五HBM 425并被存储在第五HBM 425中包括的核心裸芯的单元阵列中。另外,当运算结果被提供给HW加速器410时,运算结果可以通过第五HBM 425被提供给HW加速器410的第三高速缓存(例如,处理结果高速缓存)414。
以这种方式,多个HBM可以包括被布置成A行B列的HBM,其中A和B是至少2的整数。第一HBM可以与第二HBM位于相同的列。在一个实施例中,一行中的B个HBM并行地分别从存储器控制器接收不同的权重,来自硬件加速器的数据在一个方向上被顺序地传输到B个HBM,并且B个HBM中的每一个执行使用各条数据和来自不同权重中的对应的权重的神经网络计算。在一个实施例中,来自硬件加速器的不同的权重中每一个被顺序地传输到在一列中的A个HBM。
在上述实施例中,在存储器模块420的第一行中的HBM中执行运算处理。然而,存储器模块420的HBM可以以各种方式执行运算处理。例如,第二行中的HBM可以以与上述方式相同或类似的方式从第一高速缓存412接收数据,可以通过第一行中的HBM从第二高速缓存413接收权重,并且可以执行使用数据和权重的运算处理。运算结果可以被存储在在各种位置中的任何一个位置处的HBM中,并且也可以通过第三行中的HBM被提供给HW加速器410的第三高速缓存414。
可替代地,存储器模块420的第二行中的HBM可以从第一行中的HBM接收运算结果,并且可以执行使用来自第一行中的HBM的运算结果和从第二高速缓存413提供的权重的运算处理。第二行中的HBM的运算结果可以被存储在不同位置处的HBM中,并且还可以通过第三行中的HBM被提供给HW加速器410的第三高速缓存414。
根据图8所示的实施例,可以以分布式的方式在多个HBM中处理在神经网络等中处理的大量计算,并且因此,处理速度可以被提高。另外,可以通过多个HBM之间的数据通信来将运算结果存储在不同的位置处的HBM中,而不使用存储器模块420外部的HW加速器410。
如上所述,多个HBM可以彼此双向通信,并且因此,已经被存储在HBM中的一个中的运算结果可以被提供给其他HBM而不通过存储器模块420外部的HW加速器410。在示例操作中,作为神经网络计算中的深度学习方法的示例,可以执行递归神经网络(RecurrentNeural Network,RNN)计算。在这时,已经处理并存储的运算结果可以用作递归数据。例如,在HW加速器410的控制下,可以将已经存储在HBM中的现有运算结果提供给其他HBM,并且可以执行使用现有运算结果的运算操作(例如,将现有运算结果乘以权重)。当现有运算结果已经被存储在第三HBM 423中时,在HW加速器410的控制下,可以从第三HBM 423读取现有运算结果并且将其提供给第一HBM421。另外,第一HBM 421还可以将权重与现有运算结果一起接收并且执行使用该权重和现有运算结果的运算处理。
如上所述,除了图8所示的连接结构之外,多个HBM还可以以各种类型的架构连接,并且可以通过连接架构在HBM之间传输和接收数据、运算结果和权重。因此,可以以分布式的方式在多个HBM中执行神经网络计算,可以将运算结果提供给多个HBM中的至少一些HBM,并且可以通过重复这样的运算处理来产生神经网络处理结果。
图9是运算处理的示例的框图。图9示出了被包括在图8所示的第一HBM 421中的缓冲器裸芯421_1和一个核心裸芯421_2。在图9所示的示例中,假设缓冲器裸芯421_1从外部HW加速器接收数据和权重。
参考图8和图9,缓冲器裸芯421_1可以响应于预定时钟信号而接收数据和权重。例如,缓冲器裸芯421_1可以包括响应于写入命令W(w或/w)而接收数据和权重的触发器(flip-flop,F/F)。数据可以被提供给另一相邻HBM。例如,缓冲器裸芯421_1可以将从F/F输出的数据DATA’提供给第二HBM422。
缓冲器裸芯421_1还可以将数据和权重提供给核心裸芯421_2。例如,可以对在缓冲器裸芯421_1和核心裸芯421_2之间传输的数据或运算结果Data_Ari执行串并转换,并且串并转换器SERDES可以被包括在缓冲器裸芯421_1中。例如,来自缓冲器裸芯421_1的数据和权重可以通过串并转换器SERDES被提供给核心裸芯421_2。转换器SERDES可以通过串并转换将串行数据转换为并行数据或者将并行数据转换为串行数据。
可以将来自核心裸芯421_2的运算结果Data_Ari提供给缓冲器裸芯421_1。例如,运算结果Data_Ari可以通过串并转换器SERDES被提供给缓冲器裸芯421_1。运算结果Data_Ari可以被存储在另一HBM中。当使用之前已经存储的运算结果时,响应于HW加速器的控制(例如,读取命令RNN),可以从另一HBM读取运算结果Data_Ari并将其提供给缓冲器裸芯421_1。核心裸芯421_2可以通过缓冲器裸芯421_1接收运算结果Data_Ari和权重,并且可以执行使用运算结果Data_Ari和权重的运算处理。如上所述,使用运算结果Data_Ari和权重获得的运算结果可以被直接地提供给另一HBM而不经过HW加速器。因此,基于以上描述,第一HBM的缓冲器裸芯421_1包括转换器并且对数据和运算结果中的至少一个执行串并转换,数据被提供给核心裸芯(例如,421_2),并且从核心裸芯(例如421_2)接收运算结果。
通过缓冲器裸芯421_1接收的权重可以被传输(或旁路)到另一HBM。在图9所示的示例中,权重通过F/F被提供给另一HBM。
图10是根据本发明构思的示例实施例的HBM的示例性实施方式的框图。图10示出了缓冲器裸芯和堆叠在缓冲器裸芯上的两个核心裸芯。诸如图9中的用于传输数据和权重的F/F的组件可以被包括在图10中的I/F电路中。
HBM 500的第一核心裸芯510和第二核心裸芯520中的每一个可以包括单元核心以及读取/写入控制电路和根据上述实施例的运算电路。例如,第一核心裸芯510可以包括:包括多个存储器单元的单元核心511、控制单元核心511和缓冲器裸芯530之间的数据传输路径的读取/写入控制电路512以及运算电路513。缓冲器裸芯530可以包括至少两个I/F,例如与外部处理单元(例如,HW加速器)通信的第一I/F电路532以及与另一HBM通信的第二I/F电路533。
缓冲器裸芯530还可以包括控制HBM 500的所有操作的控制逻辑531以及控制将被提供给第一核心裸芯510和第二核心裸芯520的信号的路径或者从第一核心裸芯510和第二核心裸芯520接收的信号的路径的路径控制电路534和535。控制逻辑531可以基于来自外部处理单元的命令控制路径控制电路534和535,可以控制来自外部处理单元的、要通过路径控制电路534被提供给第一核心裸芯510和第二核心裸芯520的数据和权重,并且可以控制来自第一核心裸芯510和第二核心裸芯520中的任一个的、要通过路径控制电路535和第二I/F电路533被提供给另一HBM的运算结果Data_Ari。在控制逻辑531的控制下,可以控制信号路径,使得通过第一I/F电路532接收的信号通过第二I/F电路533被旁路到外部,而不被提供给第一核心裸芯510和第二核心裸芯520。
图11和图12是数据处理系统的操作的示例的框图。图11和图12示出了其中HW加速器根据实时数据处理将数据提供给HBM的示例。
参考图11,数据处理系统600可以包括作为HW加速器的GPU 610和多个第一HBM620和第二HBM 630。在这时,第一HBM 620可以执行使用数据和权重的运算处理,并将运算结果Data_Ari提供给第二HBM 630。
GPU 610可以将用于运算处理的命令CMD_A提供给第一HBM 620。GPU 610还可以将数据和权重提供给第一HBM 620。第一HBM 620可以响应于该命令CMD_A执行运算处理。例如,被包括在第一HBM 620的多个核心裸芯中的运算电路可以执行使用数据和权重的运算处理。第一HBM 620可以将运算结果Data_Ari提供给第二HBM 630。
GPU 610可以将用于存储算术结果Data_Ari的写入命令CMD_W提供给第二HBM630。GPU 610还可以将指示运算结果Data_Ari将被存储的位置的地址ADD提供给第二HBM630。第二HBM 630可以响应于来自GPU 610的写入命令CMD_W和地址ADD执行数据写入操作。例如,第二HBM 630可以将通过与第一HBM 620的数据通信而接收的运算结果Data_Ari存储在由地址ADD指示的位置处。
参考图12,数据处理系统700可以包括作为加速器的GPU 710和多个第一HBM 720和第二HBM 730。图12示出了被包括在第一HBM 720中的缓冲器裸芯和被包括在第二HBM730中的缓冲器裸芯。
GPU 710可以将用于运算处理的命令CMD_A、数据和权重提供给第一HBM 720。在第一HBM 720的控制逻辑721的控制下,可以在第一HBM 720的核心裸芯中执行使用数据和权重的运算处理。第一HBM 720的缓冲器裸芯可以从核心裸芯接收运算结果Data_Ari。
控制逻辑721可以包括用于控制第二HBM 730的数据写入/读取操作的命令/地址生成器C/A Gen或721_1。命令/地址生成器721_1可以生成用于指示第二HBM 730存储运算结果Data_Ari的写入命令CMD_W和指示存储运算结果Data_Ari要被存储的位置的地址ADD。控制逻辑721可以控制I/F电路721_2向第二HBM 730传输已经在第一HBM 720中生成的运算结果Data_Ari、写入命令CMD_W和地址ADD。
图13是根据本发明构思的示例实施例的包括HBM的数据处理系统执行神经网络计算的示例的图。图13示出了使用一个加速器和多个(例如四个)HBM 1至HBM 4的神经网络计算的示例。
神经网络计算可以根据各种模型来执行,例如卷积神经网络(ConvolutionalNeural Network,CNN)、RNN、深信度网络和受限制的波尔兹曼(Boltzman)机器。例如,神经网络计算可以在图13中的节点中执行。每个节点的运算结果可以被提供给至少一个其他节点。
执行运算处理的节点可以分别与HBM 1至HBM 4中的每一个的核心裸芯或信道相对应。可以通过被包括在核心裸芯(或信道)中的运算电路来执行在每个节点处的运算处理。图13的节点可以形成涉及神经网络计算的层。例如,图13的节点可以形成输入层、至少一个隐藏层和输出层。
参考图13,在HW加速器的控制下,可以在HBM 1至HBM 4中执行神经网络计算的至少一部分。例如,HBM 1至HBM 4中的每一个可以包括多个核心裸芯,核心裸芯中的每一个可以包括至少一个信道,并且可以以分布式的方式在HBM 1至HBM 4中执行神经网络计算的至少一部分。HW加速器可以执行神经网络计算的另一部分。
HBM 1至HBM 4可以以各种类型的连接架构彼此接合。例如,当HBM1至HBM 4具有完全连接的架构时,HBM 1至HBM 4中的每一个可以与HBM 1至HBM 4中的其他HBM通信。当HBM1至HBM 4具有部分连接的架构时,HBM 1至HBM 4中的每一个可以与其他HBM中的一些通信。例如,关于神经网络计算的一部分的运算结果可以从一个HBM提供给至少一个其他HBM,并且关于神经网络计算的另一部分的运算结果可以被提供给一个HBM中的另一核心裸芯或信道而不提供给另一HBM。
图14是被包括在HBM中的多端口中的信号传输的示例的框图。
参考图14,数据处理系统800可以包括作为HW加速器的GPU 810和多个第一HBM820和第二HBM 830。例如,第一HBM 820可以包括第一I/F电路821和第二I/F电路822,并且可以通过第一I/F电路821与GPU 810通信以及通过第二I/F电路821与第二HBM 830通信。第一HBM 820可以对通过第一I/F电路821已经接收的数据和权重执行运算处理,并且可以通过第二I/F电路822将运算结果Data_Ari传输到第二HBM 830。在实施例中,第一HBM 820可以顺序地执行关于GPU 810的信号输入操作并且顺序地执行关于第二HBM 830的信号输出操作。可以同时执行第一HBM 820的输入和输出操作。
第一HBM 820可以通过形成在其外表面上的多个引脚来执行数据、权重和运算结果Data_Ari的通信。在这时,第一HBM 820可以通过所有引脚中的一些数据引脚输出运算结果Data_Ari。在这种情况下,数据传输带宽可以被减少。
根据本发明构思的实施例,用于通过第二I/F电路822传输运算结果Data_Ari的传输模式可以不同于用于第一I/F电路821的传输模式来配置以增加运算结果Data_Ari的传输速度。例如,时钟信号可以与运算结果Data_Ari一起通过第二I/F电路822被提供给第二HBM 830。在这时,运算结果Data_Ari可以与时钟信号的上升沿和下降沿同步地被提供给第二HBM 830。换句话说,可以以DDR模式将运算结果Data_Ari提供给第二HBM 830。相反,第一I/F电路821可以响应于时钟信号的上升沿而接收数据和权重。
在上述实施例中,如上所述,即使当HBM包括多个端口并且使用多个端口中的一个来通信传达运算结果Data_Ari时,通过数据传输模式的配置可以增加运算结果Data_Ari的传输速度。
图15是根据本发明构思的示例实施例的包括MD的移动设备的示例性实施方式的框图。
移动设备900可以与数据处理系统相对应并且可以包括应用处理器(AP)910和MD920。AP 910可以被实施为片上系统(System-on-Chip,SoC)。SoC可以包括符合标准总线协议的系统总线(未显示),并且可以包括连接到系统总线的各种IP。标准总线协议可以是高级精简指令集机器(Advanced RISC Machine,ARM)限制的高级微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)协议。AMBA协议可以包括诸如高级高性能总线(Advanced High-Performance Bus,AHB)、高级外围总线(AdvancedPeripheral Bus,APB)、高级可扩展接口(Advanced Extensible Interface,AXI)、AXI4和AXI一致性扩展(Coherency Extension,ACE)的总线类型。此外,还可以使用诸如SONIC公司的uNetwork、IBM的CoreConnect以及OCP-IP的开放核心协议的其他类型的协议。
AP 910可以包括上面已经描述的CPU 911和HW加速器914。HW加速器914可以包括存储器控制器MC。尽管在图15中示出了一个HW加速器914,但是AP 910可以包括各种类型的至少两个HW加速器。在AP 910还可以包括存储用于控制移动设备900的所有操作的命令的存储器912。AP 910还可以包括作为用于控制调制解调器通信功能的组件的调制解调器处理器913。在这时,AP 910可以被称为ModAP。
MD 920可以包括多个DRAM芯片。例如,MD 920可以包括至少一个存储器模块,并且每个存储器模块可以包括多个DRAM芯片。MD 920还可以包括多个HBMS。例如,MD 920可以包括至少一个包括多个HBM的HBM模块。
根据上述实施例,HW加速器914可以控制MD 920,并且MD 920的DRAM芯片可以彼此接合以进行数据通信。例如,DRAM芯片中的一个可以在HW加速器914的控制下执行运算处理,并且一个DRAM芯片的运算结果可以被直接地传输到另一DRAM芯片而不经过HW加速器914。
除了图15所示的配置之外,移动设备900还可以包括在AP 910外部设置的附加HW加速器,并且MD 920可以由附加HW加速器控制。
图16是根据本发明构思的示例实施例的包括数据处理系统的服务器系统的框图。
参考图16,服务器系统1000可以包括管理器1010和多个服务器1020_1至1020_K。服务器1020_1至1020_K中的每一个可以与参考图1至图15描述的数据处理系统中的任何一个相对应。服务器1020_1至1020_K可以通过支持预定协议的总线(例如,PCI、PCIe等)彼此连接。例如,服务器1020_1至1020_K可以在管理器1010的控制下通过P2P连接架构彼此通信。
参考服务器1020_1到1020_K中的一个(例如,服务器1020_1),服务器1020_1可以包括根据上述实施例的CPU、HW加速器和多个MD。服务器1020_1可以根据其功能执行各种类型的运算处理,并且可以存储处理结果。在实施例中,服务器系统1000可以与神经网络服务器系统相对应,并且服务器1020_1可以在CPU和HW加速器的控制下在MD中执行神经网络计算。神经网络处理结果可基于MD的运算结果产生,并且可以被提供给服务器系统1000的客户端。
虽然已经参考本发明构思的实施例具体地示出和描述了本发明构思,但是将理解,可以在其中进行形式和细节上的各种改变,而不脱离权利要求的精神和范围。

Claims (25)

1.一种存储器模块,包括:
第一存储器设备,被配置为从硬件加速器接收数据和第一信息,通过执行使用所述数据和所述第一信息的运算处理来生成运算结果,以及通过与至少一个其他存储器设备通信的接口来输出运算结果;和
第二存储器设备,被配置为通过所述接口从第一存储器设备接收运算结果而不使用硬件加速器,以及存储运算结果。
2.如权利要求1所述的存储器模块,其中所述第一存储器设备包括多个裸芯,并且以分布式的方式在所述多个裸芯中并行地执行使用从所述硬件加速器接收的数据的运算处理。
3.如权利要求1所述的存储器模块,其中所述硬件加速器包括从现场可编程门阵列(FPGA)、大规模并行处理器阵列(MPPA)、图形处理单元(GPU)、专用集成电路(ASIC)、神经处理单元(NPU)、张量处理单元(TPU)和多处理器片上系统(MPSoC)中选择的至少一个。
4.如权利要求1所述的存储器模块,其中所述第一存储器设备包括多个第二裸芯和被配置为与所述第一存储器设备外部的设备进行通信的第一裸芯,
所述第二裸芯中的每一个第二裸芯包括存储器单元阵列和被配置为执行运算处理的运算电路,并且
所述第一裸芯包括被配置为与硬件加速器交换数据的第一接口电路和被配置为与第二存储器设备交换运算结果的第二接口电路。
5.如权利要求4所述的存储器模块,其中,所述第一接口电路响应于时钟信号的上升沿和下降沿中的一个来接收数据,并且
所述第二接口电路响应于时钟信号的上升沿和下降沿来输出运算结果。
6.如权利要求4所述的存储器模块,其中所述第一存储器设备包括第一高带宽存储器(HBM),所述第二存储器设备包括第二HBM,所述第一裸芯包括缓冲器裸芯,并且所述第二裸芯包括堆叠在所述缓冲器裸芯上的核心裸芯。
7.如权利要求1所述的存储器模块,其中所述第一存储器设备从硬件加速器接收作为所述第一信息的权重以用于神经网络计算,并且生成使用所述数据和所述权重获得的神经网络计算结果作为所述运算结果。
8.如权利要求1所述的存储器模块,其中,所述第二存储器设备从所述硬件加速器接收命令和地址,并将从所述第一存储器设备接收的运算结果存储在由所述地址指示的位置处。
9.如权利要求1所述的存储器模块,其中,所述第一存储器设备包括命令/地址生成器,并且向所述第二存储器设备传输命令和地址,所述命令请求存储所述运算结果,并且所述地址指示所述运算结果将被存储的位置,并且
所述第二存储器设备响应于来自所述第一存储器设备的命令和地址而存储运算结果。
10.如权利要求1所述的存储器模块,还包括被配置为与所述第二存储器设备通信的第三存储器设备,
其中所述第三存储器设备在所述硬件加速器的控制下从所述第二存储器设备接收所述运算结果并将所述运算结果提供给所述硬件加速器。
11.如权利要求1所述的存储器模块,其中所述硬件加速器被设置在所述存储器模块内部。
12.一种存储器模块,包括:
插入器,其上形成有用于信号传输的布线;和
多个高带宽存储器(HBM),安装在插入器上,
其中HBM中的每一个HBM包括缓冲器裸芯和多个核心裸芯,其中所述缓冲器裸芯被配置为与每个HBM外部的设备通信,所述核心裸芯中的每一个核心裸芯包括存储器单元阵列和被配置为执行运算处理的运算电路,
多个HBM中的第一HBM被配置为通过缓冲器裸芯从存储器控制器接收数据并且在多个核心裸芯中并行地执行使用所述数据的运算处理,以及
所述存储器模块被配置为使得第一HBM的运算结果通过所述第一HBM的缓冲器裸芯和所述第二HBM的缓冲器裸芯之间的数据通信被提供给多个HBM中的第二HBM。
13.如权利要求12所述的存储器模块,其中所述存储器控制器被设置在所述存储器模块外部并且包括被配置为控制神经网络计算的硬件加速器。
14.如权利要求13所述的存储器模块,其中,所述第一HBM还被配置为通过其缓冲器裸芯从所述硬件加速器接收多个权重,并且所述第一HBM的核心裸芯中的每一个核心裸芯被配置为执行使用各条数据和各个权重的神经网络计算。
15.如权利要求14所述的存储器模块,其中所述多个HBM包括被布置成A行B列的HBM,其中A和B是至少2的整数,
所述第一HBM与所述第二HBM位于相同的列,
一行中的B个HBM被配置为分别从存储器控制器并行地接收不同的权重,
所述硬件加速器被配置为使得来自硬件加速器的数据在一个方向上被顺序地传输到B个HBM,并且
B个HBM中的每一个HBM被配置为执行使用所述数据和所述不同的权重中的对应的权重的神经网络计算。
16.如权利要求15所述的存储器模块,其中来自所述硬件加速器的不同的权重中的每一个被顺序地传输到在一列中的A个HBM。
17.如权利要求13所述的存储器模块,其中,所述多个HBM的所有核心裸芯中的一些核心裸芯形成神经网络中的输入层,所有所述核心裸芯中的其他核心裸芯形成神经网络中的至少一个隐藏层,并且所有所述核心裸芯中的又一其他核心裸芯形成神经网络中的输出层。
18.如权利要求12所述的存储器模块,其中,所述第一HBM被配置为响应于来自所述存储器控制器的写入命令将所述运算结果提供给所述第二HBM。
19.如权利要求18所述的存储器模块,其中,所述第二HBM被配置为响应于来自所述存储器控制器的读取命令将所述运算结果提供给所述第一HBM。
20.如权利要求12所述的存储器模块,其中,所述第一HBM的缓冲器裸芯包括转换器,并且被配置为对所述数据和运算结果中的至少一个执行串并转换,所述数据被提供给所述核心裸芯,并且从所述核心裸芯接收所述运算结果。
21.如权利要求12所述的存储器模块,其中,所述核心裸芯中的每一个核心裸芯包括多个信道,并且所述运算电路被设置在信道中的每一个中。
22.如权利要求12所述的存储器模块,其中所述多个HBM通过从收缩架构、环连接架构、部分连接架构、全连接架构和环面网络架构中选择的一种连接架构彼此通信。
23.一种存储器设备,包括:
第一裸芯,被配置为与外部存储器控制器和外部存储器设备相连接;
堆叠在所述第一裸芯上的多个第二裸芯,所述第二裸芯中的每一个第二裸芯包括存储器单元阵列;和
硅通孔(TSV)区域,被配置为在所述第一裸芯和所述多个第二裸芯之间发送和接收信号,
其中所述第二裸芯中的每一个第二裸芯包括多个信道,信道中的每一个信道包括运算电路,所述运算电路被配置为执行使用从外部存储器控制器提供的数据的运算处理,并且
所述第一裸芯包括:
第一接口电路,被配置为通过与外部存储器控制器通信来接收数据和运算命令,并且通过TSV区域将数据传输到第二裸芯;和
第二接口电路,被配置为通过TSV区域从所述第二裸芯接收运算结果,并通过与外部存储器设备通信来输出运算结果。
24.如权利要求23所述的存储器设备,其中,所述存储器设备为高带宽存储器(HBM),所述第一裸芯包括缓冲器裸芯,并且所述第二裸芯中的每一个第二裸芯包括核心裸芯。
25.如权利要求23所述的存储器设备,其中,所述第二接口电路从所述外部存储器设备接收所述运算结果,并且
所述运算电路被配置为执行使用从所述外部存储器控制器提供的信息和通过所述第二接口电路接收的运算结果的运算处理。
CN201811000516.0A 2017-11-15 2018-08-30 执行并行运算处理的存储器设备和包括其的存储器模块 Active CN109783410B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170152504A KR102424962B1 (ko) 2017-11-15 2017-11-15 병렬 연산 처리를 수행하는 메모리 장치 및 이를 포함하는 메모리 모듈
KR10-2017-0152504 2017-11-15

Publications (2)

Publication Number Publication Date
CN109783410A true CN109783410A (zh) 2019-05-21
CN109783410B CN109783410B (zh) 2024-01-30

Family

ID=66432063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811000516.0A Active CN109783410B (zh) 2017-11-15 2018-08-30 执行并行运算处理的存储器设备和包括其的存储器模块

Country Status (3)

Country Link
US (1) US10642612B2 (zh)
KR (1) KR102424962B1 (zh)
CN (1) CN109783410B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210006120A (ko) * 2019-07-08 2021-01-18 에스케이하이닉스 주식회사 데이터 저장 장치, 데이터 처리 시스템 및 이를 위한 가속 장치
US20210064971A1 (en) 2019-08-29 2021-03-04 Micron Technology, Inc. Transfer data in a memory system with artificial intelligence mode
US11017842B2 (en) 2019-08-29 2021-05-25 Micron Technology, Inc. Copy data in a memory system with artificial intelligence mode
KR102491202B1 (ko) * 2019-09-10 2023-01-25 주식회사 모빌린트 인공 신경망 연산을 수행하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
US20210081353A1 (en) * 2019-09-17 2021-03-18 Micron Technology, Inc. Accelerator chip connecting a system on a chip and a memory chip
US11397694B2 (en) * 2019-09-17 2022-07-26 Micron Technology, Inc. Memory chip connecting a system on a chip and an accelerator chip
US11416422B2 (en) 2019-09-17 2022-08-16 Micron Technology, Inc. Memory chip having an integrated data mover
KR102518066B1 (ko) * 2019-10-02 2023-04-04 포항공과대학교 산학협력단 라운드 로빈 데이터 전달 방식의 뉴럴 네트워크 회로
KR20210063496A (ko) 2019-11-22 2021-06-02 삼성전자주식회사 프로세싱 회로를 포함하는 메모리 장치, 그리고 시스템 온 칩과 메모리 장치를 포함하는 전자 장치
WO2021133826A1 (en) * 2019-12-27 2021-07-01 Micron Technology, Inc. Neuromorphic memory device and method
US11720354B2 (en) * 2020-01-07 2023-08-08 SK Hynix Inc. Processing-in-memory (PIM) system and operating methods of the PIM system
KR20210093521A (ko) 2020-01-20 2021-07-28 삼성전자주식회사 고대역폭 메모리 및 이를 포함하는 시스템
KR20210098728A (ko) * 2020-02-03 2021-08-11 삼성전자주식회사 적층형 메모리 장치 및 상기 적층형 메모리 장치의 동작 방법
KR102349810B1 (ko) * 2020-08-07 2022-01-10 금오공과대학교 산학협력단 오토 디코더를 활용한 고속의 rm 부호 디코딩 방법
US20220051089A1 (en) * 2020-08-17 2022-02-17 Google Llc Neural Network Accelerator in DIMM Form Factor
JP2022050191A (ja) 2020-09-17 2022-03-30 キオクシア株式会社 半導体記憶装置及び情報処理装置
US11748061B2 (en) 2020-10-15 2023-09-05 Gigantor Technologies Inc. Custom mass multiplication circuits
KR102383962B1 (ko) * 2020-11-19 2022-04-07 한국전자기술연구원 가변 데이터 압축/복원기를 포함하는 딥러닝 가속 장치
US20220358069A1 (en) * 2021-05-07 2022-11-10 Chronos Tech Llc ADVANCED CENTRALIZED CHRONOS NoC
KR102371451B1 (ko) 2021-05-27 2022-03-07 충남대학교 산학협력단 멀티포트 메모리를 이용한 병렬 곱셈장치
TWI798817B (zh) * 2021-09-08 2023-04-11 鯨鏈科技股份有限公司 積體電路

Citations (5)

* 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
CN104794100A (zh) * 2015-05-06 2015-07-22 西安电子科技大学 基于片上网络的异构多核处理系统
US20160379115A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
CN107003988A (zh) * 2014-12-19 2017-08-01 英特尔公司 用于执行卷积运算的存储设备和方法
US20170255397A1 (en) * 2016-03-07 2017-09-07 Advanced Micro Devices, Inc. Efficient implementation of queues and other data structures using processing near memory

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
US7296112B1 (en) 2002-12-10 2007-11-13 Greenfield Networks, Inc. High bandwidth memory management using multi-bank DRAM devices
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
US7246215B2 (en) 2003-11-26 2007-07-17 Intel Corporation Systolic memory arrays
US7796462B2 (en) 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
US7861014B2 (en) 2007-08-31 2010-12-28 International Business Machines Corporation System for supporting partial cache line read operations to a memory module to reduce read data traffic on a memory channel
US8392661B1 (en) * 2009-09-21 2013-03-05 Tilera Corporation Managing cache coherence
US20180107591A1 (en) * 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US9846673B2 (en) * 2011-11-04 2017-12-19 Waseda University Processor, accelerator, and direct memory access controller within a processor core that each reads/writes a local synchronization flag area for parallel execution
KR101867286B1 (ko) * 2012-02-27 2018-06-15 삼성전자주식회사 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
US9442854B2 (en) * 2012-11-15 2016-09-13 Elwha Llc Memory circuitry including computational circuitry for performing supplemental functions
WO2014190263A2 (en) 2013-05-24 2014-11-27 Coherent Logix, Incorporated Memory-network processor with programmable optimizations
US9361973B2 (en) 2013-10-28 2016-06-07 Cypress Semiconductor Corporation Multi-channel, multi-bank memory with wide data input/output
KR102273023B1 (ko) * 2014-10-16 2021-07-05 삼성전자주식회사 화질 개선 알고리즘 처리 방법 및 장치
US10996959B2 (en) * 2015-01-08 2021-05-04 Technion Research And Development Foundation Ltd. Hybrid processor
US9747546B2 (en) 2015-05-21 2017-08-29 Google Inc. Neural network processor
US10192162B2 (en) 2015-05-21 2019-01-29 Google Llc Vector computation unit in a neural network processor
US10438117B1 (en) 2015-05-21 2019-10-08 Google Llc Computing convolutions using a neural network processor
US10083395B2 (en) 2015-05-21 2018-09-25 Google Llc Batch processing in a neural network processor
US10049322B2 (en) 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US9805303B2 (en) 2015-05-21 2017-10-31 Google Inc. Rotating data for neural network computations
US9934842B2 (en) 2015-11-12 2018-04-03 Intel Corporation Multiple rank high bandwidth memory
US9892058B2 (en) * 2015-12-16 2018-02-13 Advanced Micro Devices, Inc. Centrally managed unified shared virtual address space
US10032695B2 (en) 2016-02-19 2018-07-24 Google Llc Powermap optimized thermally aware 3D chip package
US10416896B2 (en) * 2016-10-14 2019-09-17 Samsung Electronics Co., Ltd. Memory module, memory device, and processing device having a processor mode, and memory system
US20180115496A1 (en) * 2016-10-21 2018-04-26 Advanced Micro Devices, Inc. Mechanisms to improve data locality for distributed gpus
US10810492B2 (en) * 2017-01-27 2020-10-20 Hewlett Packard Enterprise Development Lp Memory side acceleration for deep learning parameter updates
US11687759B2 (en) * 2018-05-01 2023-06-27 Semiconductor Components Industries, Llc Neural network accelerator

Patent Citations (5)

* 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
CN107003988A (zh) * 2014-12-19 2017-08-01 英特尔公司 用于执行卷积运算的存储设备和方法
CN104794100A (zh) * 2015-05-06 2015-07-22 西安电子科技大学 基于片上网络的异构多核处理系统
US20160379115A1 (en) * 2015-06-29 2016-12-29 Microsoft Technology Licensing, Llc Deep neural network processing on hardware accelerators with stacked memory
US20170255397A1 (en) * 2016-03-07 2017-09-07 Advanced Micro Devices, Inc. Efficient implementation of queues and other data structures using processing near memory

Also Published As

Publication number Publication date
KR102424962B1 (ko) 2022-07-25
US20190146788A1 (en) 2019-05-16
CN109783410B (zh) 2024-01-30
US10642612B2 (en) 2020-05-05
KR20190055608A (ko) 2019-05-23

Similar Documents

Publication Publication Date Title
CN109783410A (zh) 执行并行运算处理的存储器设备和包括其的存储器模块
US11947798B2 (en) Packet routing between memory devices and related apparatuses, methods, and memory systems
Zhang et al. Boosting the performance of FPGA-based graph processor using hybrid memory cube: A case for breadth first search
Loi et al. An efficient distributed memory interface for many-core platform with 3D stacked DRAM
WO2017172287A2 (en) Read delivery for memory subsystem with narrow bandwidth repeater channel
Weis et al. Exploration and optimization of 3-D integrated DRAM subsystems
CN102866980B (zh) 用于多核微处理器片上互连网络的网络通信胞元
WO2017172286A1 (en) Write delivery for memory subsystem with narrow bandwidth repeater channel
US20210335393A1 (en) Stacked memory chip solution with reduced package inputs/outputs (i/os)
TWI802332B (zh) 可重組態處理器的資源分配
US9563384B2 (en) Systems and methods for data alignment in a memory system
CN111694513A (zh) 包括循环指令存储器队列的存储器器件和方法
US20230195368A1 (en) Write Request Buffer
US20190042131A1 (en) Dynamically programmable memory test traffic router
Kang et al. A high-throughput and low-latency interconnection network for multi-core clusters with 3-D stacked L2 tightly-coupled data memory
Wang et al. Alloy: Parallel-serial memory channel architecture for single-chip heterogeneous processor systems
TWI757300B (zh) 用於執行內部程序之記憶體裝置及其操作方法
Vivet et al. Interconnect challenges for 3D multi-cores: From 3D network-on-chip to cache interconnects
US11894099B2 (en) Programmable memory timing
US20240070102A1 (en) Bus Training with Interconnected Dice
US20240161796A1 (en) Programmable Memory Timing
US20240070101A1 (en) Bus Training with Interconnected Dice
US20230343380A1 (en) Bank-Level Self-Refresh
US20210279128A1 (en) Buffer that supports burst transfers having parallel crc and data transmissions
US20230343381A1 (en) Bank-Level Self-Refresh

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant