执行并行运算处理的存储器设备和包括其的存储器模块的制作方法

文档序号:17721161发布日期:2019-05-22 02:10阅读:107来源:国知局
本申请要求于2017年11月15日向韩国知识产权局提交的韩国专利申请no.10-2017-0152504的优先权,其公开通过引用整体被并入本文。本公开涉及存储器设备,并且更具体地涉及执行并行运算处理的存储器设备以及包括该存储器设备的存储器模块。
背景技术
::在高性能电子系统中广泛使用的半导体存储器设备的容量和速度已提高。作为半导体存储器设备的示例的动态随机存取存储器(dynamicrandomaccessmemory,dram)是易失性存储器并且基于存储在电容器中的电荷确定数据。dram可以用于许多目的。例如,dram可以用于存储用于各种运算处理的数据或存储运算结果。另外,在处理大量计算(诸如神经网络计算)中有效地使用dram可能是有用的。技术实现要素:公开的实施例提供了用于使用运算处理功能并行地处理大量计算的存储器设备以及包括该存储器设备的存储器模块。根据本发明构思的一方面,一种存储器模块包括:第一存储器设备,被配置为从硬件加速器接收数据和第一信息,通过执行使用该数据和第一信息的运算处理来生成运算结果,以及通过与至少一个其他存储器设备通信的接口输出运算结果;和第二存储器设备,被配置为通过接口从第一存储器设备接收运算结果而不使用硬件加速器,并存储运算结果。根据本发明构思的另一方面,一种存储器模块包括:插入器(interposer),其具有形成在其上的用于信号传输的布线;和多个高带宽存储器(highbandwidthmemory,hbm),其安装在插入器上。所述hbms中的每一个包括缓冲器裸芯,该缓冲器裸芯被配置为与每个hbm外部的设备通信;和多个核心裸芯,核心裸芯中的每一个包括存储器单元阵列和被配置为执行运算处理的运算电路。多个hbm中的第一hbm被配置为通过缓冲器裸芯从存储器控制器接收数据,以及并行地在多个核心裸芯中执行使用该数据的运算处理。存储器模块被配置为使得通过第一hbm的缓冲器裸芯和第二hbm的缓冲器裸芯之间的数据通信将第一hbm的运算结果提供给多个hbm中的第二hbm。根据本发明构思的另一方面,一种存储器设备包括:第一裸芯,被配置为与外部存储器控制器和外部存储器设备相接合;多个第二裸芯,其堆叠在第一裸芯上,第二裸芯中的每一个包括存储器单元阵列;和硅通孔(through-siliconvia,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可以包括中央处理单元(centralprocessingunit,cpu)110;一个或多个硬件(hardware,hw)加速器,例如第一至第ahw加速器120_1至120_a;和一个或多个存储器模块,例如第一至第b存储器模块130_1到130_b。数据处理系统100还可以包括用于组件之间的通信的总线。总线可以通过诸如外围组件互连(peripheralcomponentinterconnect,pci)、pciexpress(pciexpress,pcie)、bluelink和quickpath互连(quickpathinterconnection,qpi)的各种协议来支持与其连接的组件之间的通信。cpu110可以通过总线与第一至第ahw硬件加速器120_1至120_a通信。数据处理系统100可以是处理数据并将数据记录在第一至第b存储器模块130_1至130_b中或者处理从第一至第b存储器模块130_1至130_b读取的数据的各种系统中的一种。例如,数据处理系统100可以被实施为个人计算机(personalcomputer,pc)、数据服务器、云系统、人工智能服务器、网络附加存储装置(network-attachedstorage,nas)、物联网(internetofthings,iot)设备、或便携式电子设备。当数据处理系统100是便携式电子设备时,数据处理系统100可以是膝上型计算机、蜂窝电话、智能电话、平板pc、个人数字助理(personaldigitalassistant,pda)、企业数字助理(enterprisedigitalassistant,eda)、数码相机、数码摄像机、音频设备、便携式多媒体播放器(portablemultimediaplayer,pmp)、个人导航设备(personalnavigationdevice,pnd)、mp3播放器、手持式游戏机、电子书、可穿戴设备等。cpu110可以控制数据处理系统100的所有操作。例如,cpu110可以将指令提供给第一至第ahw加速器120_1至120_a以控制第一至第ahw加速器120_1至120_a的操作。数据处理系统100还可以包括存储指令的操作存储器(未显示),并且cpu110可以访问操作存储器。第一至第ahw加速器120_1至120_a可以与各种辅助处理器相对应。例如,第一至第ahw加速器120_1至120_a中的每一个可以是诸如现场可编程门阵列(field-programmablegatearray,fpga)、大规模并行处理器阵列(massivelyparallelprocessorarray,mppa)、图形处理单元(graphicsprocessingunit,gpu)、专用集成电路(application-specificintegratedcircuit,asic)、神经处理单元(neuralprocessingunit,npu)、张量处理单元(tensorprocessingunit,tpu)以及多处理器片上系统(multi-processorsystem-on-chip,mpsoc)的各种加速器中的一种。第一至第b存储器模块130_1至130_b中的每一个可以包括至少一个存储器设备(memorydevice,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中第一至第ahw加速器120_1至120_a以及第一至第b存储器模块130_1至130_b可以以各种形式来实施。例如,第一至第b存储器模块130_1至130_b中的每一个可以是包括安装在模块板上的多个md的单列直插存储器模块(singlein-linememorymodule,simm)或双列直插存储器模块(dualin-linememorymodule,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所示的实施例中第一至第ahw加速器120_1至120_a的数量是a并且第一至第b存储器模块130_1至130_b的数量是b,但是本发明构思不限于此。例如,在数据处理系统100中第一至第ahw加速器120_1至120_a的数量可以与第一至第b存储器模块130_1至130_b的数量相同。数据处理系统100可以包括作为插入到板(或主板)中的卡的第一至第ahw加速器120_1至120_a以及第一至第b存储器模块130_1至130_b。例如,包括至少一个hw加速器和至少一个存储器模块的添加卡(add-incard)可以被插入到板的扩展槽中。例如,插入到扩展槽中的卡可以包括一个hw加速器和一个存储器模块。图1示出了一个卡包括第一hw加速器120_1和第一存储器模块130_1的结构。在修改的实施例中,卡可以包括一个hw加速器和多个存储器模块,或多个hw加速器和多个存储器模块。当总线支持符合pci协议的通信时,卡可以是pci卡。当卡包括hw加速器时,卡可以被称为图形卡或加速器卡。在一个示例中,图1中所示的数据处理系统100可以被定义为包括cpu110和安装在板中的多个卡。被包括在第一至第b存储器模块130_1至130_b中的每一个中的md可以是动态随机存取存储器(dram)(诸如双数据速率(doubledatarate,ddr)同步dram(synchronousdram,sdram)、低功率ddr(lowpowerddr,lpddr)sdram、图形ddr(graphicsddr,gddr)sdram或rambusdram(rambusdram,rdram)),但是本发明构思不限于此。例如,md可以被实施为诸如磁性ram(magneticram,mram)、铁电ram(ferroelectricram,feram)、相变ram(phase-changeram,pram)或电阻ram(resistiveram,reram)的非易失性存储器。下面将描述根据本发明构思的示例实施例的md和存储器模块的操作的示例。hw加速器可以控制至少一个存储器模块。例如,假定第一hw加速器120_1访问第一存储器模块130_1并且第ahw加速器120_a访问第(b-1)存储器模块130_(b-1)和第b存储器模块130_b。在cpu110的控制下,第一hw加速器120_1可以将写入数据提供给第一存储器模块130_1,并且可以从第一存储器模块130_1读取数据。第ahw加速器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的第一md131可以执行使用数据的运算处理,并且将运算结果提供给第一存储器模块130_1的第二md132而不经过第一hw加速器120_1。以这种方式,第一md131的运算结果可以被直接地提供给第二md132,并且可以不需要被提供给第一hw加速器120_1。在修改的实施例中,md之间的数据通信也可以在其他存储器模块之间执行。例如,第ahw加速器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可以通过形成在卡上的布线彼此通信。在第ahw加速器120_a的控制下,第(b-1)存储器模块130_(b-1)的第三md133可以执行运算处理,并将运算结果直接地提供给第b存储器模块130_b的第四md134,而不经过第ahw加速器120_a。通过上述操作,可以以分布式的方式在第一至第b存储器模块130_1至130_b中执行大量运算处理的至少一部分。例如,可以在第一至第b存储器模块130_1至130_b中并行地执行运算处理的至少一部分或全部。在hw加速器中可以像通常一样执行其他运算处理。当在第一hw加速器120_1中执行运算处理并且运算结果被存储在第b存储器模块130_b的第四md134中时,第一hw加速器120_1可以将运算结果提供给第ahw加速器120_a,并且第ahw加速器120_a可以将运算结果存储在第b存储器模块130_b的第四md134中。本文描述的每个存储器模块包括其上安装有多个存储器设备的模块板。存储器设备可以以本文描述的各种方式安装,并且在一些情况下,其它设备也可以被安装在模块板上,如本文的各种示例所示。每个存储器设备包括一个或多个半导体存储器芯片。根据上述发明构思的示例实施例,由于md采用多端口进行数据通信,并且md之间的各种类型的通信(例如,对等(peer-to-peer,p2p)通信)得到支持,所以可以执行双向通信,并且因此,md可以直接地相互通信,而不需要组合诸如hw加速器的处理单元,从而具有数据处理操作的低延迟特性。另外,在需要大量运算处理的神经网络计算的情况下,除了使用hw加速器执行的计算之外,还可以执行使用多个md的并行运算处理,并且因此,运算处理速度可以增加并且用于实施神经网络系统的成本可以减少。此外,可以以分布式的方式在多个md中执行运算处理,从而增强功率分布。此外,多个md可以具有各种类型的连接架构,并且因此,当md具有完整的p2p连接架构时,带宽特性可以被增强。在下文中,将在下面描述本发明构思的各种实施例及其示例操作。在实施例中,gpu将被解释为hw加速器的示例,但是本发明构思不限于此,并且可以使用其他各种类型的hw加速器。图2a至图2c是根据本发明构思的示例实施例的md之间的数据通信的框图。参考图2a,数据处理系统200a可以包括gpu211a、第一md221a和第二md222a。在gpu211a的控制下可以对第一md221a和第二md222a执行数据访问。在实施例中,第一md221a和第二md222a可以被包括在存储器模块中,并且gpu211a可以被设置在存储器模块的外部。第一md221a和第二md222a中的每一个可以支持多端口选项并且执行双向通信和运算处理。例如,第一md221a和第二md222a中的每一个可以执行使用外部提供的数据或者内部读取的数据的运算处理,并且可以将来自第一md221a的运算结果data_ari提供给第二md222a或者将来自第二md222a的运算结果data_ari提供给第一md221a。在示例操作中,gpu211a可以由数据处理系统200a中的cpu(未示出)控制。gpu211a可以将用于指示执行运算处理的命令cmd提供给第一md221a。第一md221a可以执行使用从其中的单元核心读取的数据或从外部提供的数据的运算处理,并且可以通过其中的接口(i/f)电路将运算结果data_ari直接地提供给第二md222a。所述gpu211a也可以将用于指示存储数据的命令cmd提供给第二md222a。响应于命令cmd,第二md222a可以将从第一md221a提供的运算结果data_ari存储在其中的单元核心中。参考图2b,数据处理系统200b可以包括gpu211b、第一md221b和第二md222b。第一md221b和第二md222b可以由gpu211b控制。gpu211b以及第一md221b和第二md222b可以被包括在一个存储器模块中。在cpu(未示出)的控制下,gpu211b可以将命令cmd提供给第一md221b和第二md222b以指示执行各种存储器操作。类似于参考图2a描述的实施例,第一md221b可以响应于命令cmd执行运算处理并且可以提供运算结果data_ari,并且第二md222b可以响应于另一命令cmd将运算结果data_ari存储在其中的单元核心中。参考图2c,数据处理系统200c可以包括作为一个或多个存储器模块的gpu211c和第一存储器模块221c以及第二存储器模块222c。例如,gpu211c、第一存储器模块221c和第二存储器模块222c可以被设置在一个卡中。第一存储器模块221c可以通过布线(例如,形成在卡上的布线)向第二存储器模块222c传输信号并从第二存储器模块222c接收信号。gpu211c可以提供用于控制分别被包括在第一存储器模块221c和第二存储器模块222c中的md221c_1和md222c_1的存储器操作的命令cmd。例如,来自第一存储器模块221c的md221c_1的运算结果data_ari可以被提供给第二存储器模块222c的md222c_1而不经过gpu211c。根据图2a至图2c所示的实施例,可以不需要hw加速器和md之间的数据通信,并且数据可以在md之间高速传输。例如,以分布式的方式在多个md中执行运算处理,并且可以在md之间直接地传输运算结果。图3是数据处理系统中的存储器模块的示例性实施方式的图。图3示出了作为包括存储器控制器和至少一个md的存储器模块的半导体封装。在示例性实施方式中,至少一个半导体封装可以安装在单个卡(例如,图形卡)上,并且每个md是hbm。参考图3,半导体封装300可以包括多个hbm310、存储器控制器320、插入器330和封装基底340。hbm310和存储器控制器320可以安装在插入器330上,并且可以通过形成在插入器330上的布线彼此通信传达信号。插入器330可以包括硅通孔(tsv)型布线、印刷电路板(printedcircuitboard,pcb)型有机布线、或诸如嵌入式多裸芯互连桥(embeddedmulti-dieinterconnectbridge,emib)的非tsv型布线。在修改的实施例中,半导体封装300可以仅包括多个hbm310而没有存储器控制器320。例如,半导体封装300可以在外部存储器控制单元的控制下执行数据访问。如图3所显示,可以在外部hw加速器(例如,gpu301)的控制下控制对hbm310的数据访问。在另一修改的实施例中,代替存储器控制器320的其他各种类型的半导体芯片可以被包括在半导体封装300中。例如,图3中所示的gpu301可以被包括在半导体封装300中,或者包括具有存储器控制功能的设备(例如,知识产权(intellectualproperty,ip)块)的应用处理器(applicationprocessor,ap)可以被包括在半导体封装300中。图3中所示的hbm310可以执行上面在实施例中描述的通信。在示例性实施方式中,可以在插入器330中提供与hbm310之间的信号传输路径相对应的布线,并且可以将数据从hbm310中的一个传输到hbm310中的至少一个其他hbm。例如,如上所述hbm310中的每一个可以包括运算电路,并且可以在gpu301的控制下执行运算处理并且将运算结果提供给另一hbm310。在实施例中,hbm310中的每一个可以包括缓冲器裸芯(或逻辑裸芯)(其包括作为用于控制存储器操作的外围电路的控制逻辑)和包括存储器单元阵列的一个或多个核心裸芯,并且运算电路可以被设置在核心裸芯的每一个中。图4是图3中所示的hbm310的每一个的示例性实施方式的图。下面将使用hbm310中的一个来描述hbm310的结构。通过包括具有独立i/f的多个信道,hbm310可以具有增加的带宽。参考图4,hbm310可以包括多个裸芯,例如缓冲器裸芯(或逻辑裸芯)312和堆叠在缓冲器裸芯312上的一个或多个核心裸芯,例如第一至第四核心裸芯311。在图4所示的示例性实施方式中,第一至第四核心裸芯311被包括在hbm310中,但是核心裸芯311的数量可以变化。每个核心裸芯311可以包括至少一个信道。在图4所示的示例性实施方式中,每个核心裸芯311包括两个信道,因此,hbm310具有八个信道ch1至ch8。例如,第一核心裸芯可以包括第一信道ch1和第三信道ch3,第二核心裸芯可以包括第二信道ch2和第四信道ch4,第三核心裸芯可以包括第五信道ch5和第七信道ch7,第四核心裸芯可以包括第六信道ch6和第八信道ch8。缓冲器裸芯312可以与外部存储器控制器(或hw加速器)通信,从存储器控制器接收命令、地址和数据,并且将命令、地址和数据提供给核心裸芯311。缓冲器裸芯312可以通过导电构件(未示出)(例如形成在其外表面上的凸起)与存储器控制器通信。缓冲器裸芯312可以缓冲命令、地址和数据。因此,存储器控制器可以通过仅驱动缓冲器裸芯312的负载(load)来与核心裸芯311相接合(interface)。hbm310还可以包括穿过核心裸芯311和缓冲器裸芯312的多个tsv。tsv可以对应于多个第一至第八信道ch1至ch8来设置。当第一至第八信道ch1至ch8中的每一个具有128位带宽时,tsv可以包括用于输入和输出1024位数据的合成(composition)。在实施例中,hbm310可以执行运算处理,并且运算电路(arithmeticcircuit,ac)311_1可以被设置在缓冲器裸芯312和/或核心裸芯311中。在示例性实施方式中,运算电路可以被设置在核心裸芯311的每一个中,并且因此,可以以分布式的方式在核心裸芯311中执行在hbm310中执行的多个运算处理操作。尽管在图4中运算电路311_1被设置在第四核心裸芯的第八信道ch8中,但是运算电路311_1可以被设置在核心裸芯311的每一个中或者第一至第八信道ch1至ch8中的每一个中。缓冲器裸芯312可以包括控制逻辑312_1、tsv区域312_2、物理(physical,phy)区域312_3和直接存取(directaccess,da)区域312_4。控制逻辑312_1可以控制hbm310的所有操作。例如,控制逻辑312_1可以响应于来自外部存储器控制器的命令而执行内部控制。核心裸芯311中的每一个可以在控制逻辑312_1的控制下执行运算处理并且传输运算结果。tsv区域312_2是其中形成用于与核心裸芯311通信的tsv的区域。phy区域312_3可以包括用于与外部存储器控制器通信的多个输入/输出电路和用于与其他hbm通信的多个输入/输出电路。例如,phy区域312_3可以包括多个端口,并且端口中的一个可以与外部存储器控制器通信,并且端口中的另一个可以与另一hbm通信。在hbm310的测试模式下,da区域312_4可以通过被设置在hbm310的外表面上的导电构件直接地与外部测试仪通信。来自测试仪的各种信号可以通过da区域312_4和tsv区域312_2被提供给核心裸芯311。在修改的实施例中,来自测试仪的各种信号可以通过da区域312_4、phy区域312_3和tsv区域312_2被提供给核心裸芯311。根据上述实施例,当在hbm之间传输运算结果时,可以使用hbm的每信道带宽(bandwidthperchannel),并且因此,信道的带宽可以被有效地使用并且对于大量的计算数据延迟可以被减少。图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的第一hbm421至第五hbm425来描述数据处理系统400的操作。响应于来自命令控制器411的命令,可以将数据从第一高速缓存412提供给第一hbm421,并且可以将权重从第二高速缓存413提供给第一hbm421。第一hbm421可以包括缓冲器裸芯421_1和多个核心裸芯421_2。数据和权重可以通过缓冲器裸芯421_1被提供给核心裸芯421_2。例如,可以将用于运算操作的多条数据和多个权重分配给核心裸芯421_2。核心裸芯421_2中的每一个可以在第一hbm421的内部控制下执行使用数据和权重的运算操作(例如,乘法)。来自第一高速缓存412的数据可以通过第一hbm421被提供给第二hbm422,并且第二hbm422可以从第二高速缓存413接收权重。被包括在第二hbm422中的多个核心裸芯可以执行使用数据和权重的运算操作。另外,第二hbm422还可以将通过第一hbm421接收的数据传输(或旁路)给在与第二hbm422相同的行中的另一hbm(例如,右侧的相邻hbm)。同时,运算结果可以直接地在hbm之间传输而不经过hw加速器410。例如,第一hbm421可以通过接口与第三hbm423通信并且可以将运算结果提供给第三hbm423。在实施例中,第一hbm421的核心裸芯421_2的运算结果可以被提供给缓冲器裸芯421_1,并且然后通过第一hbm421的缓冲器裸芯421_1与第三hbm423的缓冲器裸芯之间的通信被提供给第三hbm423。运算结果可以被存储在在各种位置中的任何一个位置处的hbm中。例如,第一hbm421的运算结果可以通过上述通信被提供给第三hbm423并被存储在第三hbm423包括的核心裸芯的单元阵列中,或者可以通过第三hbm423被提供给第五hbm425并被存储在第五hbm425中包括的核心裸芯的单元阵列中。另外,当运算结果被提供给hw加速器410时,运算结果可以通过第五hbm425被提供给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。在示例操作中,作为神经网络计算中的深度学习方法的示例,可以执行递归神经网络(recurrentneuralnetwork,rnn)计算。在这时,已经处理并存储的运算结果可以用作递归数据。例如,在hw加速器410的控制下,可以将已经存储在hbm中的现有运算结果提供给其他hbm,并且可以执行使用现有运算结果的运算操作(例如,将现有运算结果乘以权重)。当现有运算结果已经被存储在第三hbm423中时,在hw加速器410的控制下,可以从第三hbm423读取现有运算结果并且将其提供给第一hbm421。另外,第一hbm421还可以将权重与现有运算结果一起接收并且执行使用该权重和现有运算结果的运算处理。如上所述,除了图8所示的连接结构之外,多个hbm还可以以各种类型的架构连接,并且可以通过连接架构在hbm之间传输和接收数据、运算结果和权重。因此,可以以分布式的方式在多个hbm中执行神经网络计算,可以将运算结果提供给多个hbm中的至少一些hbm,并且可以通过重复这样的运算处理来产生神经网络处理结果。图9是运算处理的示例的框图。图9示出了被包括在图8所示的第一hbm421中的缓冲器裸芯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电路中。hbm500的第一核心裸芯510和第二核心裸芯520中的每一个可以包括单元核心以及读取/写入控制电路和根据上述实施例的运算电路。例如,第一核心裸芯510可以包括:包括多个存储器单元的单元核心511、控制单元核心511和缓冲器裸芯530之间的数据传输路径的读取/写入控制电路512以及运算电路513。缓冲器裸芯530可以包括至少两个i/f,例如与外部处理单元(例如,hw加速器)通信的第一i/f电路532以及与另一hbm通信的第二i/f电路533。缓冲器裸芯530还可以包括控制hbm500的所有操作的控制逻辑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加速器的gpu610和多个第一hbm620和第二hbm630。在这时,第一hbm620可以执行使用数据和权重的运算处理,并将运算结果data_ari提供给第二hbm630。gpu610可以将用于运算处理的命令cmd_a提供给第一hbm620。gpu610还可以将数据和权重提供给第一hbm620。第一hbm620可以响应于该命令cmd_a执行运算处理。例如,被包括在第一hbm620的多个核心裸芯中的运算电路可以执行使用数据和权重的运算处理。第一hbm620可以将运算结果data_ari提供给第二hbm630。gpu610可以将用于存储算术结果data_ari的写入命令cmd_w提供给第二hbm630。gpu610还可以将指示运算结果data_ari将被存储的位置的地址add提供给第二hbm630。第二hbm630可以响应于来自gpu610的写入命令cmd_w和地址add执行数据写入操作。例如,第二hbm630可以将通过与第一hbm620的数据通信而接收的运算结果data_ari存储在由地址add指示的位置处。参考图12,数据处理系统700可以包括作为加速器的gpu710和多个第一hbm720和第二hbm730。图12示出了被包括在第一hbm720中的缓冲器裸芯和被包括在第二hbm730中的缓冲器裸芯。gpu710可以将用于运算处理的命令cmd_a、数据和权重提供给第一hbm720。在第一hbm720的控制逻辑721的控制下,可以在第一hbm720的核心裸芯中执行使用数据和权重的运算处理。第一hbm720的缓冲器裸芯可以从核心裸芯接收运算结果data_ari。控制逻辑721可以包括用于控制第二hbm730的数据写入/读取操作的命令/地址生成器c/agen或721_1。命令/地址生成器721_1可以生成用于指示第二hbm730存储运算结果data_ari的写入命令cmd_w和指示存储运算结果data_ari要被存储的位置的地址add。控制逻辑721可以控制i/f电路721_2向第二hbm730传输已经在第一hbm720中生成的运算结果data_ari、写入命令cmd_w和地址add。图13是根据本发明构思的示例实施例的包括hbm的数据处理系统执行神经网络计算的示例的图。图13示出了使用一个加速器和多个(例如四个)hbm1至hbm4的神经网络计算的示例。神经网络计算可以根据各种模型来执行,例如卷积神经网络(convolutionalneuralnetwork,cnn)、rnn、深信度网络和受限制的波尔兹曼(boltzman)机器。例如,神经网络计算可以在图13中的节点中执行。每个节点的运算结果可以被提供给至少一个其他节点。执行运算处理的节点可以分别与hbm1至hbm4中的每一个的核心裸芯或信道相对应。可以通过被包括在核心裸芯(或信道)中的运算电路来执行在每个节点处的运算处理。图13的节点可以形成涉及神经网络计算的层。例如,图13的节点可以形成输入层、至少一个隐藏层和输出层。参考图13,在hw加速器的控制下,可以在hbm1至hbm4中执行神经网络计算的至少一部分。例如,hbm1至hbm4中的每一个可以包括多个核心裸芯,核心裸芯中的每一个可以包括至少一个信道,并且可以以分布式的方式在hbm1至hbm4中执行神经网络计算的至少一部分。hw加速器可以执行神经网络计算的另一部分。hbm1至hbm4可以以各种类型的连接架构彼此接合。例如,当hbm1至hbm4具有完全连接的架构时,hbm1至hbm4中的每一个可以与hbm1至hbm4中的其他hbm通信。当hbm1至hbm4具有部分连接的架构时,hbm1至hbm4中的每一个可以与其他hbm中的一些通信。例如,关于神经网络计算的一部分的运算结果可以从一个hbm提供给至少一个其他hbm,并且关于神经网络计算的另一部分的运算结果可以被提供给一个hbm中的另一核心裸芯或信道而不提供给另一hbm。图14是被包括在hbm中的多端口中的信号传输的示例的框图。参考图14,数据处理系统800可以包括作为hw加速器的gpu810和多个第一hbm820和第二hbm830。例如,第一hbm820可以包括第一i/f电路821和第二i/f电路822,并且可以通过第一i/f电路821与gpu810通信以及通过第二i/f电路821与第二hbm830通信。第一hbm820可以对通过第一i/f电路821已经接收的数据和权重执行运算处理,并且可以通过第二i/f电路822将运算结果data_ari传输到第二hbm830。在实施例中,第一hbm820可以顺序地执行关于gpu810的信号输入操作并且顺序地执行关于第二hbm830的信号输出操作。可以同时执行第一hbm820的输入和输出操作。第一hbm820可以通过形成在其外表面上的多个引脚来执行数据、权重和运算结果data_ari的通信。在这时,第一hbm820可以通过所有引脚中的一些数据引脚输出运算结果data_ari。在这种情况下,数据传输带宽可以被减少。根据本发明构思的实施例,用于通过第二i/f电路822传输运算结果data_ari的传输模式可以不同于用于第一i/f电路821的传输模式来配置以增加运算结果data_ari的传输速度。例如,时钟信号可以与运算结果data_ari一起通过第二i/f电路822被提供给第二hbm830。在这时,运算结果data_ari可以与时钟信号的上升沿和下降沿同步地被提供给第二hbm830。换句话说,可以以ddr模式将运算结果data_ari提供给第二hbm830。相反,第一i/f电路821可以响应于时钟信号的上升沿而接收数据和权重。在上述实施例中,如上所述,即使当hbm包括多个端口并且使用多个端口中的一个来通信传达运算结果data_ari时,通过数据传输模式的配置可以增加运算结果data_ari的传输速度。图15是根据本发明构思的示例实施例的包括md的移动设备的示例性实施方式的框图。移动设备900可以与数据处理系统相对应并且可以包括应用处理器(ap)910和md920。ap910可以被实施为片上系统(system-on-chip,soc)。soc可以包括符合标准总线协议的系统总线(未显示),并且可以包括连接到系统总线的各种ip。标准总线协议可以是高级精简指令集机器(advancedriscmachine,arm)限制的高级微控制器总线架构(advancedmicrocontrollerbusarchitecture,amba)协议。amba协议可以包括诸如高级高性能总线(advancedhigh-performancebus,ahb)、高级外围总线(advancedperipheralbus,apb)、高级可扩展接口(advancedextensibleinterface,axi)、axi4和axi一致性扩展(coherencyextension,ace)的总线类型。此外,还可以使用诸如sonic公司的unetwork、ibm的coreconnect以及ocp-ip的开放核心协议的其他类型的协议。ap910可以包括上面已经描述的cpu911和hw加速器914。hw加速器914可以包括存储器控制器mc。尽管在图15中示出了一个hw加速器914,但是ap910可以包括各种类型的至少两个hw加速器。在ap910还可以包括存储用于控制移动设备900的所有操作的命令的存储器912。ap910还可以包括作为用于控制调制解调器通信功能的组件的调制解调器处理器913。在这时,ap910可以被称为modap。md920可以包括多个dram芯片。例如,md920可以包括至少一个存储器模块,并且每个存储器模块可以包括多个dram芯片。md920还可以包括多个hbms。例如,md920可以包括至少一个包括多个hbm的hbm模块。根据上述实施例,hw加速器914可以控制md920,并且md920的dram芯片可以彼此接合以进行数据通信。例如,dram芯片中的一个可以在hw加速器914的控制下执行运算处理,并且一个dram芯片的运算结果可以被直接地传输到另一dram芯片而不经过hw加速器914。除了图15所示的配置之外,移动设备900还可以包括在ap910外部设置的附加hw加速器,并且md920可以由附加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的客户端。虽然已经参考本发明构思的实施例具体地示出和描述了本发明构思,但是将理解,可以在其中进行形式和细节上的各种改变,而不脱离权利要求的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1