高带宽存储器系统以及逻辑管芯的制作方法

文档序号:16972459发布日期:2019-02-26 18:41阅读:195来源:国知局
本发明涉及半导体电路,且更确切地说,涉及包括用于卸载传统上由主机执行的复杂逻辑操作的逻辑管芯的智能高带宽存储器设备。
背景技术
::因特网已引起将数据提供到数百万台计算机及移动装置的计算机服务器的数目的巨大的扩展。人工智能(artificialintelligence,ai)及其它深度学习应用程序变得更常见且目前需求量高。当今的服务器计算机环境朝向存储装置内和存储器内计算移动,使得某一计算更接近数据实际上驻留之处执行。这增加性能且减小能量消耗。如深度神经网络等新兴应用需要大量的计算能力和记忆能力来训练不同的数据集且以高精度学习。此外,随着如高性能计算机(highperformancecomputer,hpc)、图形算法等的应用变得数据和计算密集,能量效率和低时延变得关键。近年来,高带宽存储器(highbandwidthmemory,hbm)和高带宽存储器2(hbm2)已用于获得更高带宽同时通过将动态随机存储器(dynamicrandomaccessmemory,dram)管芯一个堆叠在另一个顶上来在更小外观尺寸中使用更小功率,且提供与主机的异步通信接口。通信的异步性质增加性能而且使得更加难以处理复杂逻辑操作。当逻辑操作复杂时,存在更小确定性。换句话说,完成特定复杂逻辑操作将花费的时间较不确定。技术实现要素:公开一种高带宽存储器(hbm+)系统,包括:主机,其包括中央处理单元(centralprocessingunit,cpu)、图形处理单元(graphicsprocessingunit,gpu)、专用集成电路(applicationspecificintegratedcircuit,asic)或现场可编程门阵列(fieldprogrammablegatearray,fpga)中的至少一个;以及hbm+堆叠,其包括一个配置在另一个顶上的多个高带宽存储器(highbandwidthmemory,hbm)模块及配置在所述多个hbm模块下方的逻辑管芯。逻辑管芯被配置以从主机卸载处理操作。在一些实施例中,逻辑管芯包括包括接口phy及主机队列管理器的主机管理器,其中主机管理器被配置以经由接口phy与主机接口连接且被配置以使从主机接收到的通信排队。逻辑管芯可另外包括存储器控制器,所述存储器控制器包括预取引擎及高速缓存控制器,其中存储器控制器被配置以经由预取引擎及高速缓存控制器与存储器接口连接。逻辑管芯可另外包括高带宽存储器(hbm)控制器,所述高带宽存储器控制器包括被配置以与hbm模块的堆叠接口连接的存储器控制器。逻辑管芯可另外包括被配置以从主机卸载处理操作的卸载处理逻辑部分。附图说明本发明原理的先前及额外特征及优点将从参考附图进行的以下详细描述变得更显而易见,在附图中:图1是hbm+单元的实例俯视框图。图2示出沿着线2-2获取的图1中hbm+单元的侧视框图。图3示出用于从主机卸载计算工作的两种类型的架构的框架框图。图4示出包括主机组件及hbm+堆叠的系统的实例框图,其中根据一些实施例提供主要硬件实施方案。图5a示出包括主机组件及hbm+堆叠的系统的实例框图,其中根据一些实施例提供主要软件实施方案。图5b示出根据一些实施例绘示在gpu或hbm+堆叠上可如何处理不同内核的图。图6示出图1及图2的逻辑管芯的微架构。图7是根据本文中所公开的实施例的包括图1的hbm+单元的计算机系统的实例框图。附图标记说明:2-2:线;100:hbm+单元;105:逻辑管芯;110:hbm2模块;115:主机;120:hbm+堆叠;205:内插器;210:封装衬底;300:框架框图;305:人工智能app;310:计算统一装置架构;315:gpu指令集架构;320、420:gpu;325:库;330:存储器isa;335:hbm+特定库函数调用;340:第一架构;345:替代性架构;400、500:系统;405:cpu;410:dram缓冲器;415:pci-e接口;502:图;605:核心架构;610:卸载处理逻辑部分;615:主机管理器;620:sram控制器;625:hbm控制器;630:hbm2模块的堆叠;635:sram;640:命令解码逻辑部分;645:命令发布逻辑部分;650:有限状态机;655:算术逻辑单元;660:浮点单元;665:可重构逻辑;670:固定逻辑;675:接口phy;680:主机队列管理器;685:预取引擎;690:高速缓存控制器;695:纠错码逻辑部分;698、745:存储器控制器;700:计算机系统;705:系统总线;710:时钟;715:随机存取存储器及/或闪存存储器;720:用户接口;725:调制解调器;735:自动化测试设备;740:电池;745:存储器控制器。具体实施方式现在将详细参考各种实施例,在附图中示出所述实施例的实例。在以下详细描述中,阐述众多具体细节以实现对实施例的透彻理解。然而,应理解,本领域技术人员可以在没有这些具体细节的情况下实践本发明概念。在其它例子中,未详细描述众所周知的方法、程序、组件、电路和网络,以免不必要地混淆实施例的各方面。应理解,虽然术语“第一”、“第二”等可在本文中用以描述各种元件,但这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件区分开来。举例来说,在不脱离实施例的范围的情况下,第一模块可以被称为第二模块,并且类似地,第二模块可以被称为第一模块。本文中用于实施例的描述中的术语是仅出于描述具体实施例的目的且并不希望限制本发明概念。如实施例及所附权利要求书的描述中所使用,单数形式“一”及“所述”意在也包括复数形式,除非上下文另有清楚指示。还将理解,如本文中所使用的术语“和/或”指代且涵盖相关联的所列项目中的一或多者的任何及所有可能的组合。应进一步理解,当用于本说明书中时,术语“包括(comprises/comprising)”指定存在所陈述的特征、整数、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组。附图中的组件和特征未必是按比例绘制。在成长期人工智能(ai)计算应用的情况下,需要新硬件来在跨越图像和言语分类、媒体分析、医疗保健、独立机械和智能助理的域中启用新应用。ai应用驱动机器学习框架。举例来说,在深度神经网络算法中,数据集的大小常常使可用的硬件的计算能力过度成长。具有许多万亿次浮点运算的计算性能能力的新高性能计算机(highperformancecomputer,hpc)已出现为替代解决方案直到较新架构可用为止。在每主机单元四个到八个模块堆叠的情况下,hbm演进到hbm2且针对并行加速器提供高带宽。举例来说,主机可包括例如微处理器的中央处理单元(cpu)、专用集成电路(asic)、图形处理单元(gpu)、现场可编程门阵列(fpga)等等。现用带宽处于每秒一太字节范围内,其为双资料速率类型的五同步图形ram(gddr5)的效率的两倍。本文中所公开的实施例包括在高带宽存储器的逻辑管芯中提供特定计算能力的系统架构以及支持硬件和软件架构、逻辑管芯微架构以及存储器接口信令选项。提供使用hbm堆叠下方的逻辑管芯的内存处理能力的各种新方法。另外,公开各种新的信令协议以使用hbm接口。还描述逻辑管芯微架构及支持系统框架。系统为在例如gpu、fpga等的加速器上执行高效节能和高速计算提供端到端解决方案。卸载处理操作在硬件或软件工具链中引入额外复杂程度以提取益处。本文中被称作“hbm+”新架构构建hbm2和pim。hbm2架构包括多达每主机四个堆叠,多达每堆叠八个信道,其中每堆叠四到八个管芯。每通道可能存在八到16个库,且库群经支持。举例来说,数据线(dataline,dq)宽度为128加上任选的错误码校正(errorcodecorrecting,ecc)引脚加上两个伪信道。在每个库每秒二十亿字节的情况下,系统带宽为每系统每秒一太字节。图1是hbm+单元100的实例俯视框图。hbm+单元100可包括主机115(例如,cpu、gpu、asic、fpga等)。hbm+单元100可包括hbm2模块110的多个hbm+堆叠120及配置在hbm2模块110下方的对应逻辑管芯105。hbm+单元100可以是pci-e兼容板。图2示出沿着线2-2获取的图1的hbm+单元100的侧视框图。如图2中所示,hbm2模块堆叠在逻辑管芯105上,形成hbm+堆叠120。多个hbm+堆叠120可包括在hbm+单元100上。主机115可与逻辑管芯105中的每一个通信。主机115及逻辑管芯105可配置在内插器205顶上且耦合到所述内插器205。内插器205可配置在封装衬底210顶上且耦合到所述封装衬底210。在hbm+中,逻辑管芯105可执行基本输入/输出(i/o)操作,从而引起较低时延及较好存储器流量。机器学习算法受益于此架构,这是因为所述机器学习算法需要用于训练及预测的密集型带宽。接近处理器的存储器借助于hbm+逻辑管芯105辅助主机115。hbm+堆叠120可将计算工作从主机115卸载到hbm2模块110下方的逻辑管芯105。主机115可为cpu、gpu、asic、fpga等等。逻辑管芯105随后实施专用逻辑功能,所述专用逻辑功能可特定针对于具有特殊高带宽要求的机器学习应用程序。因此,系统性能提高且能量消耗减少。图3示出用于从主机(例如,115)卸载计算工作的两种类型的架构(例如,340及345)的框架框图300。如图3中所示,第一架构340使用hbm计算能力(例如,310、315以及320)而无需修改上部层应用程序(例如,人工智能(ai)app305)。hbm计算能力可以包括计算统一装置架构(computeunifieddevicearchitecture,cuda)310、gpu指令集架构(gpu-isa或g-isa)315及/或gpu320。替代性架构345将hbm+库函数调用(例如,325、330以及335)提供到应用程序305以使用底层hbm逻辑指令集架构(instructionsetarchitecture,isa)。hbm+库函数调用可以包括库325、存储器isa(m-isa)330或其它hbm+特定库函数调用335。在此实施例中,上部层应用程序(例如,人工智能(ai)app305)经修改以对库函数调用进行调用。整个框架包括系统、微架构、库以及驱动器。系统还可包括两种硬件协议及逻辑微架构,如下文进一步描述。图4示出包括主机组件(例如,405、410、415以及420)的系统400及hbm+堆叠120的实例框图,其中根据一些实施例提供主要硬件实施方案。主机115可包括例如cpu405、dram缓冲器410、pci-e接口415、gpu420等等。在主要硬件实施方案中,主机115(例如,gpu420)可包括存储器控制器变化。gpu420可将操作直接卸载到hbm2模块(例如,110)及/或卸载到hbm+堆叠120,所述gpu420可执行卸载逻辑处理。在此实施例中,可能存在同步或异步主机到存储器协议且不需要应用程序变化。图5a示出包括主机组件(例如,405、410、415以及420)的系统500及hbm+堆叠120的实例框图,其中根据一些实施例提供主要软件实施方案。主机115可包括例如cpu405、dram缓冲器410、pci-e接口415、gpu420等等。在主要软件实施方案中,可使用存储器映射i/o(mmio)技术,例如gdrcopy,以在cpu405中产生gpu存储器的缓存用户空间映射。此用户空间映射使得cpu405能够将卸载内核510的数据从gpu420直接读取到dram缓冲器410内的共用缓冲器中。随后,cpu405可将数据拷贝到hbm+堆叠120中或将hbm逻辑重导引到相关地址。例如(图3的)ai应用程序305的上层应用程序可修改成针对计算使用hbm+堆叠120。不需要硬件变化。图5b示出根据一些实施例绘示在gpu或hbm+堆叠上可如何处理不同内核的图502。换句话说,应用程序的不同部分可取决于配置在不同硬件上运行。换句话说,不同内核或功能可在gpu420或hbm+堆叠120上起始及处理,进而分布处理负荷。举例来说,gpu420可接收data_in且处理kernel_1。hbm+堆叠120可接收data_1、处理kernel_2且产生data_2。gpu420可处理kernel_3且产生data_out。以下是用于实例实施方案的伪码:gdrcopy(data_in,numbytes,hosttodevice)gpu_kernel<<<1,n>>>(data_in)cpuwaitfunction(lock)gdrcopy(data_1,numbytes,devicetohost)hbm_kernel<<<1,n>>>(data_1)cpuwaitfunction(lock)gdrcopy(data_2,numbytes,hosttodevice)gpu_kernel<<<1,n>>>(data_2)在一些实施例中,一或多个标志可设置成协调各种硬件组件之间的处理。举例来说,第一标志可由cpu405设置以指示处理应开始。随后,cpu405可将数据从dram缓冲器410复制到gpu420,其中处理中的至少一些由hbm+堆叠120处理。随后,第二标志可由gpu420及/或hbm+堆叠120设置成指示处理完成。随后,cpu405可将数据复制回dram缓冲器410。图6示出图1及图2的逻辑管芯105的微架构。核心架构605解码存储器内处理(processing-in-memory,pim)命令(例如,pim_cmd)、发布内部微操作,以及调度多个存储器内处理(pim)操作。外围逻辑可以包括具有排队控制的主机管理器615、sram控制器620、hbm控制器625以及可以包括各种状态机的卸载处理逻辑部分610。更具体地说,逻辑管芯105可以包括主机管理器615,所述主机管理器615包括接口phy675及主机队列管理器680。在一些实施例中,主机管理器615配置成经由接口phy675与主机(例如,图1的115)接口连接。此外,主机管理器615配置成使从主机115接收到的通信排队。逻辑管芯105可以包括sram控制器620,所述sram控制器620包括预取引擎685及高速缓存控制器690。sram控制器620配置成经由预取引擎685及高速缓存控制器690与sram635接口连接。逻辑管芯105可以包括高带宽存储器(hbm)控制器625,所述高带宽存储器控制器625包括配置成与hbm2模块的堆叠630接口连接的存储器控制器698及纠错码(ecc)逻辑部分695。在一些实施例中,逻辑管芯105可以包括配置成从主机(例如,图1的115)卸载处理操作的卸载处理逻辑部分610。在一些实施例中,卸载处理逻辑部分610配置成经由主机管理器615从主机115接收关于卸载处理操作的信息。在一些实施例中,卸载处理逻辑部分610配置成取决于所接收的关于卸载处理操作的信息执行卸载处理操作。所接收的信息可以包括标志。所接收的信息可以包括命令。在一些实施例中,命令解码逻辑部分640配置成解码命令。在一些实施例中,命令发布逻辑部分645配置成发布命令。卸载处理逻辑部分610可响应于所发布的命令执行卸载处理操作。卸载处理逻辑部分610包括算术逻辑单元(arithmeticlogicunit,alu)655、浮点单元(floating-pointunit,fpu)660、固定逻辑670或可重构逻辑665中的至少一个。在一些实施例中,卸载处理逻辑部分610配置成取决于存储在hbm2模块的堆叠630中的数据执行卸载。另外,核心架构605可包括有限状态机650。基于硬件的协议可包括单步协议或两步协议。单步协议适合于其中主机(例如,图1的115)不必在继续进行额外操作之前等待计算结果的简单操作。换句话说,主机115与hbm+堆叠(例如,图1的120)之间存在确定性定时。在单步协议中,存储器控制器698可仅锁定源及目的地地址及/或组。单步协议的实例包括例如读取-修改-写入操作的原子操作。两步协议适合于其中主机115等待计算结果的操作。实例包括事务命令。在此实施例中,phy通过经改变用途的事务引脚修改(例如,引脚改变或添加)以获得(图1的)主机115与hbm+堆叠120之间的信息流。在此实施例中,存储器控制器698在事务期间可锁定hbm2模块的整个堆叠630。实例包括转置100乘100矩阵。能够在逻辑管芯(例如,图1的105)上执行的函数库的各种类别(即,编号1到5)示出于下方表1中。函数库可通过主机(例如,图1的115)协调,所述函数库各自具有离散操作字段及成分函数。这些函数库与同步及异步hbm+接口两种兼容。性能借助于较低总线事务、排队及存储器控制器时延而增加。固定逻辑及/或可重配置逻辑可用于执行函数。表1:本文中公开包括基于hbm的逻辑模块微架构、应用程序库内核驱动器以及相关框架的系统架构。系统可将离散函数类别用于高带宽存储器装置来提供处理能力。系统可使用具有对主机存储器控制器的修改的基于主要硬件的方法来识别hbm计算的区域,且在hbm+微架构上处理所述区域。系统可使用具有直接从cpu存取hbm存储空间的mmio的基于主要软件的方法,以便辅助任务划分而不需要gpu支持。系统可使用单步协议及/或两步协议来分别启用同步和异步hbm存储器接口。本文中所公开的hbm逻辑可实施微架构以辅助命令解码、并行函数调度、主控,以及外围逻辑,从而管理主机-侧面接口、排队、内部sram高速缓存及/或误差校正。图7是根据如本文中所公开的实施例的包括图1的hbm+单元100的计算机系统700的实例框图。hbm+单元100可电连接到系统总线705。计算机系统700还可包括时钟710、随机存取存储器(randomaccessmemory,ram)及/或闪存存储器715、存储器控制器745、用户接口720、例如基带芯片组的调制解调器725,及/或自动化测试设备(automatedtestequipment,ate)735,其中的任一个或全部可电耦合到系统总线705。当计算机系统700是移动装置时,其可另外包括电池740,所述电池740为计算机系统700供电。尽管图7中未示出,但计算机系统700可另外包括应用程序芯片组、相机图像处理器(cameraimageprocessor,cis)、移动dram等。存储器控制器745和快闪存储器715可构成固态驱动器/磁盘(solidstatedrive,ssd),其使用非易失性存储器来存储数据。在实例实施例中,计算机系统700可用作计算机、便携式计算机、超移动pc(ultramobilepc,umpc)、工作站、小型笔记本式计算机(net-book)、pda、上网本、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(portablemultimediaplayer,pmp)、数码相机、数字音频记录器/播放器、数字图片/视频记录器/播放器、便携式游戏机、导航系统、黑箱、3维电视、能够在无线情形下传输和接收信息的装置、构成家庭网络的各种电子装置中的一个、构成计算机网络的各种电子装置中的一个、构成远程信息处理网路的各种电子装置中的一个、rfid,或构成计算机系统的各种电子装置中的一个。以下论述预期提供其中可以实施本发明概念的某些方面的一或多个合适机器的简要一般描述。通常,一或多个机器包括系统总线,处理器、存储器(例如,随机存取存储器(ram)、只读存储器(read-onlymemory,rom)或其它状态保持媒体)、存储装置、视频接口以及输入/输出接口端口附接到所述系统总线。一或多个机器可以至少部分地通过从例如键盘、鼠标等常规输入装置的输入,以及通过从另一机器接收的指令、与虚拟现实(virtualreality,vr)环境的交互、生物计量反馈或其它输入信号控制。本文所使用的术语“机器”预期广泛地涵盖单个机器、虚拟机,或以通信方式耦合的机器、虚拟机或一起操作的装置的系统。示例性机器包括计算装置,例如个人计算机、工作站、服务器、便携式计算机、手持式装置、电话、平板电脑等,以及交通装置,例如私人或公共交通工具,例如汽车、火车、出租车等。一或多个机器可以包括嵌入式控制器,例如,可编程或不可编程逻辑装置或阵列、专用集成电路(asic)、嵌入式计算机、智能卡等。一或多个机器可以利用例如通过网络接口、调制解调器或其它通信耦合与一或多个远程机器的一或多个连接。机器可以借助于物理和/或逻辑网络,例如企业内部网、因特网、局域网、广域网等互连。本领域的技术人员应理解,网络通信可利用各种有线和/或无线短程或长程载波和协议,包括射频(radiofrequency,rf)、卫星、微波、电气和电子工程师学会(instituteofelectricalandelectronicsengineer,ieee)545.11、光、红外线、电缆、激光等。可以参考或结合包括功能、程序、数据结构、应用程序等的相关联数据描述本发明概念的实施例,所述相关联数据在通过机器访问时引起机器执行任务或定义抽象数据类型或低级硬件上下文。相关联数据可以存储在例如易失性和/或非易失性存储器,例如ram、rom等中,或其它存储装置以及其相关联存储媒体中,包括硬盘驱动器、软盘、光学存储装置、磁带、快闪存储器、存储棒、数字视频盘、生物存储装置等。相关联数据可以采用包、串行数据、并行数据、传播信号等形式在包括物理和/或逻辑网络的传输环境上递送,并且可以压缩或加密格式使用。相关联数据可以用于分布式环境中,并且本地和/或远程地存储用于机器访问。在参考所示出实施例描述和示出本发明概念的原理之后,将认识到,所示出实施例的配置和细节可以在不脱离此原理的情况下进行修改,并且可以按任何所需方式组合。并且,尽管前述论述集中于具体实施例,但是预期其它配置。具体而言,即使本文中使用例如“根据本发明概念的实施例”等的表达,但是这些词语一般表示参考实施例可能性,且并不意图将本发明概念限制到具体实施例配置。如本文中所使用,这些术语可以参考可组合到其它实施例中的相同或不同实施例。本发明概念的实施例可以包括非暂时性机器可读媒体,所述非暂时性机器可读媒体包括可由一或多个处理器执行的指令,所述指令包括用于执行如本文中所描述的发明性概念的元件的指令。前述说明性实施例不应被解释为限制其本发明概念。虽然已经描述几个实施例,但本领域技术人员将容易了解,在实质上不脱离本公开的新颖教示和优点的情况下,对这些实施例的许多修改是可能的。因此,所有此类修改预期包括在如所附权利要求中定义的此发明概念的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1