CN116635936A - 用于支持集成电路装置中的深度学习加速器的存储器配置 - Google Patents
用于支持集成电路装置中的深度学习加速器的存储器配置 Download PDFInfo
- Publication number
- CN116635936A CN116635936A CN202180083785.1A CN202180083785A CN116635936A CN 116635936 A CN116635936 A CN 116635936A CN 202180083785 A CN202180083785 A CN 202180083785A CN 116635936 A CN116635936 A CN 116635936A
- Authority
- CN
- China
- Prior art keywords
- integrated circuit
- circuit die
- memory
- type
- data
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 312
- 238000013135 deep learning Methods 0.000 title abstract description 129
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000013528 artificial neural network Methods 0.000 claims description 120
- 239000011159 matrix material Substances 0.000 claims description 75
- 238000004891 communication Methods 0.000 claims description 32
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 claims description 14
- 229910052710 silicon Inorganic materials 0.000 claims description 14
- 239000010703 silicon Substances 0.000 claims description 14
- 238000003860 storage Methods 0.000 claims description 12
- 238000004378 air conditioning Methods 0.000 claims 11
- 239000000872 buffer Substances 0.000 abstract description 61
- 239000013598 vector Substances 0.000 description 93
- 210000004027 cell Anatomy 0.000 description 27
- 210000002569 neuron Anatomy 0.000 description 16
- 238000013507 mapping Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 241000699670 Mus sp. Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000000946 synaptic effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000009510 drug design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Memory System (AREA)
Abstract
描述与深度学习加速器及存储器相关的系统、装置及方法。例如,一种集成电路(IC)装置包含连接到IC裸片的多个第二堆叠的IC裸片的第一堆叠。所述第一堆叠具有存储器控制器及所述深度学习加速器的处理单元的第一裸片及堆叠于所述第一堆叠上以提供第一类型的存储器的至少一个第二裸片。所述第二堆叠中的每一者具有含不同类型的存储器的基底裸片及至少一第三裸片及第四裸片。所述基底裸片具有经配置以响应于来自所述存储器控制器的命令而在同一堆叠内复制数据的逻辑电路,且具有可用作裸片交叉缓冲器的第二类型的存储器。
Description
相关申请案
本申请案主张2020年12月14日申请且标题为“用于支持集成电路装置中的深度学习加速器的存储器配置(Memory Configuration to Support Deep LearningAccelerator in an Integrated Circuit Device)”的序列号为17/120,786的美国专利申请案的优先权,所述美国专利申请案的全部公开内容特此以引用方式并入本文中。
技术领域
本文中公开的至少一些实施例大体上涉及集成电路装置,且更特定来说(但不限于),涉及具有用于人工神经网络(ANN)(例如通过机器学习及/或深度学习配置的ANN)的加速器的集成电路装置。
背景技术
人工神经网络(ANN)使用神经元网络来处理网络的输入且从网络产生输出。
深度学习已应用于许多应用领域,例如计算机视觉、语音/音频辨识、自然语言处理、机器翻译、生物信息学、药物设计、医学图像处理、游戏等。
附图说明
附图中通过实例而非限制方式说明实施例,其中相同参考元件符号指示类似元件。
图1展示具有根据一个实施例配置的深度学习加速器及随机存取存储器的集成电路装置。
图2展示根据一个实施例的经配置以执行矩阵-矩阵运算的处理单元。
图3展示根据一个实施例的经配置以执行矩阵-向量运算的处理单元。
图4展示根据一个实施例的经配置以执行向量-向量运算的处理单元。
图5展示根据一个实施例的经配置以自主地将输入应用于经训练人工神经网络的深度学习加速器及随机存取存储器。
图6说明根据一个实施例的存储器及深度学习加速器的集成电路裸片的配置。
图7说明根据一个实施例的用于深度学习加速器的存储器配置的实例。
图8展示根据一个实施例的在集成电路装置中实施的方法。
具体实施方式
本文中公开的至少一些实施例提供一种集成电路装置,其经配置以用减少能耗及计算时间来执行人工神经网络(ANN)的计算。集成电路装置包含深度学习加速器(DLA)及随机存取存储器。深度学习加速器具有只读及读取-写入的相异数据存取模式及多个同时大数据块传送。因此,集成电路装置可使用异质存储器系统架构来优化其存储器配置以支持深度学习加速器用于改进性能及能量使用。
深度学习加速器(DLA)包含一组可编程硬件计算逻辑,其经专门化及/或优化以执行并行向量及/或矩阵计算,包含(但不限于)向量及/或矩阵的乘法及累加。
此外,深度学习加速器(DLA)可包含一或多个算术逻辑单元(ALU)以对整数二进制数执行算术及逐位运算。
深度学习加速器(DLA)可经由一组指令编程以执行人工神经网络(ANN)的计算。
例如,ANN中的每一神经元接收一组输入。神经元的一些输入可为ANN中某些神经元的输出;且神经元的一些输入可为提供到ANN的输入。ANN中神经元之间的输入/输出关系表示ANN中的神经元连接性。
例如,每一神经元针对其输入可分别具有偏置、激活函数及一组突触权重。激活函数可呈阶跃函数、线性函数、对数-S型函数等的形式。ANN中的不同神经元可具有不同激活函数。
例如,每一神经元可产生其输入及其偏置的加权和且接着产生使用神经元的激活函数计算的作为加权和的函数的输出。
ANN的输入与输出之间的关系通常由ANN模型定义,ANN模型包含表示ANN中神经元的连接性的数据以及每一神经元的偏置、激活函数及突触权重。基于给定ANN模型,计算装置可经配置以从ANN的一组给定输入计算ANN的输出。
例如,ANN的输入可基于摄影机输入产生;且来自ANN的输出可为例如事件或物体的项目的识别。
一般来说,可使用监督式方法来训练ANN,其中ANN中的参数经调整以最小化或减小与相应输入相关联或源自相应输入的已知输出与经由将输入应用于ANN来产生的计算输出之间的误差。监督式学习/训练方法的实例包含强化学习及具有误差校正的学习。
替代地或组合地,可使用无监督方法来训练ANN,其中在训练完成之前不知道源自一组给定输入的准确输出。ANN可经训练以将项目分类为多个类别或将数据点分类为集群。
可将多种训练算法用于复杂的机器学习/训练范例。
深度学习使用多个机器学习层逐步从输入数据提取特征。例如,较低层可经配置以识别图像中的边缘;且较高层可经配置以基于使用较低层检测到的边缘来识别图像中捕获的项目,例如人脸、物体、事件等。深度学习可经由人工神经网络(ANN)实施,例如深度神经网络、深度信念网络、递归神经网络及/或卷积神经网络。
对向量及矩阵进行操作的深度学习加速器(DLA)的粒度对应于可在由深度学习加速器(DLA)执行一个指令期间操作的向量/矩阵的最大单元。在对向量/矩阵操作数执行预定义操作的指令期间,向量/矩阵操作数的元素可由深度学习加速器(DLA)并行操作以减少与存储器/数据存取相关联的执行时间及/或能耗。对深度学习加速器(DLA)的粒度的向量/矩阵操作数的操作可用作对更大向量/阵列实施计算的构建块。
典型/实用人工神经网络(ANN)的实施涉及具有大于深度学习加速器(DLA)的操作粒度的大小的向量/矩阵操作数。为了使用深度学习加速器(DLA)实施此人工神经网络(ANN),涉及大向量/矩阵操作数的计算可分解为深度学习加速器(DLA)的粒度的向量/矩阵操作数的计算。深度学习加速器(DLA)可经由指令编程以实施涉及大向量/矩阵操作数的计算。例如,深度学习加速器(DLA)响应于指令而操纵深度学习加速器(DLA)的粒度的向量及矩阵的原子计算能力可经编程以实施人工神经网络(ANN)中的计算。
在一些实施方案中,深度学习加速器(DLA)缺乏典型中央处理单元(CPU)的一些逻辑运算能力。然而,深度学习加速器(DLA)可配置有足够逻辑单元以根据针对深度学习加速器(DLA)产生的一组指令来处理提供到人工神经网络(ANN)的输入数据且产生人工神经网络(ANN)的输出。因此,深度学习加速器(DLA)可执行人工神经网络(ANN)的计算且很少或不需要中央处理单元(CPU)或另一处理器帮助。任选地,常规通用处理器也可经配置为深度学习加速器(DLA)的部分以执行无法使用深度学习加速器(DLA)的向量/矩阵处理单元高效实施及/或无法由深度学习加速器(DLA)的向量/矩阵处理单元执行的操作。
典型人工神经网络(ANN)可以标准格式描述/指定(例如开放式神经网络交换(ONNX))。编译器可用于将人工神经网络(ANN)的描述转换为一组指令用于深度学习加速器(DLA)执行人工神经网络(ANN)的计算。编译器可优化指令组以改进深度学习加速器(DLA)实施人工神经网络(ANN)的性能。
深度学习加速器(DLA)可具有本地存储器,例如寄存器、缓冲器及/或高速缓存,其经配置以存储向量/矩阵操作数及向量/矩阵运算的结果。寄存器中的中间结果可在深度学习加速器(DLA)中作为后续向量/矩阵运算的操作数进行流水线化/移位以减少存取存储器/数据的时间及能耗且因此在实施典型人工神经网络(ANN)时加快向量/矩阵运算的典型模式。深度学习加速器(DLA)中的寄存器、缓冲器及/或高速缓存的容量通常不足以保存用于实施典型人工神经网络(ANN)的计算的整个数据集。因此,耦合到深度学习加速器(DLA)的随机存取存储器经配置以提供改进数据存储容量用于实施典型人工神经网络(ANN)。例如,深度学习加速器(DLA)从随机存取存储器加载数据及指令且将结果存回到随机存取存储器中。
深度学习加速器(DLA)与随机存取存储器之间的通信带宽经配置以优化或最大化深度学习加速器(DLA)的计算能力的利用。例如,可在深度学习加速器(DLA)与随机存取存储器之间提供高通信带宽,使得在约等于深度学习加速器(DLA)对向量/矩阵操作数执行计算的时间的时段内,向量/矩阵操作数可从随机存取存储器加载到深度学习加速器(DLA)中且结果存回到随机存取存储器中。深度学习加速器(DLA)的粒度可经配置以增大由深度学习加速器(DLA)执行的计算量与向量/矩阵操作数的大小之间的比率,使得深度学习加速器(DLA)与随机存取存储器之间的数据存取流量可减少,其可降低深度学习加速器(DLA)与随机存取存储器之间的通信带宽要求。因此,可减少或消除数据/存储器存取中的瓶颈。
图1展示具有根据一个实施例配置的深度学习加速器103及随机存取存储器105的集成电路装置101。
图1中的深度学习加速器103包含处理单元111、控制单元113及本地存储器115。当向量及矩阵操作数在本地存储器115中时,控制单元113可使用处理单元111根据指令执行向量及矩阵运算。此外,控制单元113可通过存储器接口117及高速度/带宽连接119从随机存取存储器105加载指令及操作数。
集成电路装置101经配置以与用于存储器控制器接口107的引脚或触点一起围封于集成电路封装内。
存储器控制器接口107经配置以支持标准存储器存取协议,使得集成电路装置101以与不具有深度学习加速器103的常规随机存取存储器装置相同的方式呈现为典型存储器控制器。例如,集成电路装置101外部的存储器控制器可使用标准存储器存取协议通过存储器控制器接口107存取集成电路装置101中的随机存取存储器105。
集成电路装置101经配置有围封于集成电路装置101内的随机存取存储器105与深度学习加速器103之间的高带宽连接119。连接119的带宽高于随机存取存储器105与存储器控制器接口107之间的连接109的带宽。
在一个实施例中,存储器控制器接口107及存储器接口117两者经配置以经由同一组总线或导线存取随机存取存储器105。因此,用于存取随机存取存储器105的带宽在存储器接口117与存储器控制器接口107之间共享。替代地,存储器控制器接口107及存储器接口117经配置以经由单独组总线或导线来存取随机存取存储器105。任选地,随机存取存储器105可包含可经由连接119同时存取的多个区段。例如,当存储器接口117在存取随机存取存储器105的区段时,存储器控制器接口107可同时存取随机存取存储器105的另一区段。例如,可在不同集成电路裸片及/或存储器单元的不同平面/存储体上配置不同区段;且可并行存取不同区段以增加存取随机存取存储器105的处理量。例如,存储器控制器接口107经配置以一次存取预定大小的一个数据单元;且存储器接口117经配置以一次存取各自具有相同预定大小的多个数据单元。
在一个实施例中,随机存取存储器105及集成电路装置101配置于在同一集成电路封装内配置的不同集成电路裸片上。此外,随机存取存储器105可配置于一或多个集成电路裸片上以允许同时并行存取多个数据元素。
在一些实施方案中,可通过连接119并行存取的向量或矩阵的数据元素的数目对应于对向量或矩阵进行操作的深度学习加速器(DLA)的粒度。例如,当处理单元111可对数个向量/矩阵元素并行操作时,连接119经配置以经由连接119并行加载或存储相同数目或所述数目的倍数的元素。
任选地,可基于深度学习加速器103的处理速度来配置连接119的数据存取速度。例如,在将一定量的数据及指令加载到本地存储器115之后,控制单元113可使用处理单元111执行对数据进行操作的指令以产生输出。在产生输出的处理时段内,连接119的存取带宽允许将相同量的数据及指令加载到本地存储器115中用于下一操作且将相同量的输出存回到随机存取存储器105。例如,当控制单元113使用本地存储器115的一部分来处理数据且产生输出时,存储器接口117可将先前操作的输出从本地存储器115的另一部分卸载到随机存取存储器105中且将操作数数据及指令加载到本地存储器115的另一部分中。因此,深度学习加速器(DLA)的利用率及性能不由连接119的带宽限制或降低。
随机存取存储器105可用于存储人工神经网络(ANN)的模型数据且缓冲人工神经网络(ANN)的输入数据。模型数据不会频繁改变。模型数据可包含由深度学习加速器(DLA)的编译器产生以实施人工神经网络(ANN)的输出。模型数据通常包含用于描述人工神经网络(ANN)的矩阵及针对深度学习加速器103产生以基于深度学习加速器103的粒度的向量/矩阵运算来执行人工神经网络(ANN)的向量/矩阵运算的指令。指令不仅对人工神经网络(ANN)的向量/矩阵运算进行操作,而且对人工神经网络(ANN)的输入数据进行操作。
在一个实施例中,当在随机存取存储器105中加载或更新输入数据时,深度学习加速器103的控制单元113可自动执行人工神经网络(ANN)的指令以产生人工神经网络(ANN)的输出。输出存储到随机存取存储器105中的预定义区中。深度学习加速器(DLA)103可在无需中央处理单元(CPU)帮助的情况下执行指令。因此,可减少或消除用于深度学习加速器103与集成电路装置101外部的处理器(例如中央处理单元(CPU))之间的协调的通信。
任选地,深度学习加速器103的逻辑电路可经由互补金属氧化物半导体(CMOS)实施。例如,可使用随机存取存储器105的存储器单元的阵列下CMOS(CUA)技术来实施深度学习加速器103的逻辑电路,包含处理单元111及控制单元113。替代地,可使用随机存取存储器105的存储器单元阵列中的CMOS技术来实施深度学习加速器103的逻辑电路。
在一些实施方案中,深度学习加速器103及随机存取存储器105可在单独集成电路裸片上实施且使用穿硅通路(TSV)连接以增大深度学习加速器103与随机存取存储器105之间的数据带宽。例如,深度学习加速器103可形成于现场可编程门阵列(FPGA)或专用集成电路(ASIC)的集成电路裸片上。
替代地,深度学习加速器103及随机存取存储器105可配置于单独集成电路封装中且经由印刷电路板(PCB)上的多个点对点连接来连接以进行并行通信且因此增大数据传送带宽。
随机存取存储器105可为易失性存储器或非易失性存储器或易失性存储器及非易失性存储器的组合。非易失性存储器的实例包含快闪存储器、基于与非(NAND)逻辑门、或非(NOR)逻辑门形成的存储器单元、相变存储器(PCM)、磁性存储器(MRAM)、电阻随机存取存储器、交叉点存储及存储器装置。交叉点存储器装置可使用无晶体管存储器元件,其中的每一者具有一起堆叠为一列的存储器单元及选择器。存储器元件列经由在垂直方向上运行的两层导线连接,其中一层导线在位于存储器元件列上方的层中在一个方向上运行,且另一层导线在另一方向上运行且位于存储器元件列下方。每一存储器元件可在两个层中的每一者上的一个导线的交叉点处个别地选择。交叉点存储器装置是快速及非易失性的且可用作用于处理及存储的统一存储器池。非易失性存储器的另外实例包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)及电子可擦除可编程只读存储器(EEPROM)存储器等。易失性存储器的实例包含动态随机存取存储器(DRAM)及静态随机存取存储器(SRAM)。
例如,非易失性存储器可经配置以实施随机存取存储器105的至少一部分。随机存取存储器105中的非易失性存储器可用于存储人工神经网络(ANN)的模型数据。因此,在集成电路装置101断电且重新启动之后,无需将人工神经网络(ANN)的模型数据重新加载到集成电路装置101中。此外,非易失性存储器可为可编程/可重写的。因此,可更新或替换集成电路装置101中的人工神经网络(ANN)的模型数据以实施更新人工神经网络(ANN)或另一人工神经网络(ANN)。
深度学习加速器103的处理单元111可包含向量-向量单元、矩阵-向量单元及/或矩阵-矩阵单元。下文结合图2到4论述经配置以执行向量-向量运算、矩阵-向量运算及矩阵-矩阵运算的单元的实例。
图2展示根据一个实施例的经配置以执行矩阵-矩阵运算的处理单元。例如,图2的矩阵-矩阵单元121可用作图1的深度学习加速器103的处理单元111中的一者。
在图2中,矩阵-矩阵单元121包含多个内核缓冲器131到133及多个映射存储体151到153。映射存储体151到153中的每一者存储矩阵操作数的一个向量,矩阵操作数具有分别存储于映射存储体151到153中的多个向量;且内核缓冲器131到133中的每一者存储另一矩阵操作数的一个向量,矩阵操作数具有分别存储于内核缓冲器131到133中的多个向量。矩阵-矩阵单元121经配置以使用并行操作的多个矩阵-向量单元141到143对两个矩阵操作数的元素执行乘法及累加运算。
交叉开关123将映射存储体151到153连接到矩阵-向量单元141到143。存储于映射存储体151到153中的相同矩阵操作数经由交叉开关123提供到矩阵-向量单元141到143中的每一者;且矩阵-向量单元141到143并行地从映射存储体151到153接收数据元素。内核缓冲器131到133中的每一者连接到矩阵-向量单元141到143中的相应者且向相应矩阵-向量单元提供向量操作数。矩阵-向量单元141到143同时操作以计算存储于映射存储体151到153中的相同矩阵操作数乘以存储于内核缓冲器131到133中的对应向量的运算。例如,矩阵-向量单元141对存储于映射存储体151到153中的矩阵操作数及存储于内核缓冲器131中的向量操作数执行乘法运算,而矩阵-向量单元143同时对存储于映射存储体151到153中的矩阵操作数及存储于内核缓冲器133中的向量操作数执行乘法运算。
图2中的矩阵-向量单元141到143中的每一者可以图3中说明的方式实施。
图3展示根据一个实施例的经配置以执行矩阵-向量运算的处理单元。例如,图3的矩阵-向量单元141可用作图2的矩阵-矩阵单元121中的矩阵-向量单元中的任一者。
在图3中,映射存储体151到153中的每一者以类似于图2的映射存储体151到153的方式存储矩阵操作数的一个向量,矩阵操作数具有分别存储于映射存储体151到153中的多个向量。图3中的交叉开关123将向量从映射存储体151分别提供到向量-向量单元161到163。将存储于内核缓冲器131中的相同向量提供到向量-向量单元161到163。
向量-向量单元161到163同时操作以计算分别存储于映射存储体151到153中的对应向量操作数乘以存储于内核缓冲器131中的相同向量操作数的运算。例如,向量-向量单元161对存储于映射存储体151中的向量操作数及存储于内核缓冲器131中的向量操作数执行乘法运算,而向量-向量单元163同时对存储于映射存储体153中的向量操作数及存储于内核缓冲器131中的向量操作数执行乘法运算。
当图3的矩阵-向量单元141在图2的矩阵-矩阵单元121中实施时,矩阵-向量单元141可使用矩阵-矩阵单元121的映射存储体151到153、交叉开关123及内核缓冲器131。
图3中的向量-向量单元161到163中的每一者可以图4中说明的方式实施。
图4展示根据一个实施例的经配置以执行向量-向量运算的处理单元。例如,图4的向量-向量单元161可用作图3的矩阵-向量单元141中的向量-向量单元中的任一者。
在图4中,向量-向量单元161具有多个乘法累加单元171到173。乘法累加单元171到173中的每一者可接收两个数字作为操作数,执行两个数字的乘法,且将乘法结果与保存于乘法累加(MAC)单元中的和相加。
向量缓冲器181及183中的每一者存储数字列表。各自来自向量缓冲器181及183中的一者的一对数字可作为输入提供到乘法累加单元171到173中的每一者。乘法累加单元171到173可并行地从向量缓冲器181及183接收多对数字且并行地执行乘法累加(MAC)运算。来自乘法累加单元171到173的输出存储到移位寄存器175中;且累加器177计算移位寄存器175中的结果的和。
当图4的向量-向量单元161在图3的矩阵-向量单元141中实施时,向量-向量单元161可使用映射存储体(例如151或153)作为一个向量缓冲器181且使用矩阵-向量单元141的内核缓冲器131作为另一向量缓冲器183。
向量缓冲器181至183可具有相同长度以存储相同数目/计数的数据元素。长度可等于向量-向量单元161中的乘法累加单元171到173的计数或为其倍数。当向量缓冲器181至183的长度是乘法累加单元171到173的计数的倍数时,等于乘法累加单元171到173的计数的输入对的数目可在每一迭代中从向量缓冲器181至183作为输入提供到乘法累加单元171到173;且向量缓冲器181至183通过多次迭代将其元素馈送到乘法累加单元171到173中。
在一个实施例中,深度学习加速器103与随机存取存储器105之间的连接119的通信带宽足以使矩阵-矩阵单元121使用随机存取存储器105的部分作为映射存储体151到153及内核缓冲器131到133。
在另一实施例中,映射存储体151到153及内核缓冲器131到133在深度学习加速器103的本地存储器115的一部分中实施。深度学习加速器103与随机存取存储器105之间的连接119的通信带宽足以将矩阵-矩阵单元121的下一操作循环的矩阵操作数加载到本地存储器115的另一部分中,而矩阵-矩阵单元121使用在深度学习加速器103的本地存储器115的不同部分中实施的映射存储体151到153及内核缓冲器131到133在当前操作循环中执行计算。
图5展示根据一个实施例的经配置以自主地将输入应用于经训练人工神经网络的深度学习加速器及随机存取存储器。
已通过机器学习(例如深度学习)训练的人工神经网络(ANN)201可以标准格式(例如开放式神经网络交换(ONNX))描述。以标准格式描述经训练人工神经网络201识别人工神经元的性质及其连接性。
在图5中,深度学习加速器(DLA)编译器203通过产生深度学习加速器103的指令205及对应于人工神经元的性质及其连接性的矩阵207来转换经训练人工神经网络201。由DLA编译器203从经训练人工神经网络201产生的指令205及矩阵207可存储于深度学习加速器103的随机存取存储器105中。
例如,随机存取存储器105及深度学习加速器103可经由高带宽连接119以与图1的集成电路装置101相同的方式连接。基于指令205及矩阵207的图5的自主计算可在图1的集成电路装置101中实施。替代地,随机存取存储器105及深度学习加速器103可与并行运行以实施连接119的多个点对点串行总线一起配置于印刷电路板上。
在图5中,在DLA编译器203的结果存储于随机存取存储器105中之后,可因随机存取存储器105中存在输入211或提供于随机存取存储器105中的另一指示而触发应用经训练人工神经网络201处理经训练人工神经网络201的输入211以产生经训练人工神经网络201的对应输出213。
作为响应,深度学习加速器103执行指令205以组合输入211及矩阵207。指令205的执行可包含针对深度学习加速器103的一或多个矩阵-矩阵单元(例如121)的映射存储体151到153产生映射矩阵。
在一些实施例中,人工神经网络201的输入呈初始映射矩阵的形式。初始映射矩阵的部分可作为存储于矩阵-矩阵单元121的映射存储体151到153中的矩阵操作数从随机存取存储器105检索。替代地,DLA指令205还包含使深度学习加速器103从输入211产生初始映射矩阵的指令。
根据DLA指令205,深度学习加速器103将矩阵操作数加载到其矩阵-矩阵单元121的内核缓冲器131到133及映射存储体151到153。矩阵-矩阵单元121对矩阵操作数执行矩阵计算。例如,DLA指令205根据深度学习加速器103的计算粒度(例如,作为矩阵操作数加载于矩阵-矩阵单元121中的矩阵的大小/维数)分解经训练人工神经网络201的矩阵计算且将输入特征映射应用于一层人工神经元的内核以产生输出作为下一层人工神经元的输入。
在完成根据指令205执行的经训练人工神经网络201的计算之后,深度学习加速器103将人工神经网络201的输出213存储于随机存取存储器105中的预定义位置处或在提供于随机存取存储器105中以触发计算的指示中指定的位置处。
当图5的技术在图1的集成电路装置101中实施时,连接到存储器控制器接口107的外部装置可将输入211写入到随机存取存储器105中且触发通过深度学习加速器103将输入211应用于经训练人工神经网络201的自主计算。在一段时间之后,输出213在随机存取存储器105中可用;且外部装置可经由集成电路装置101的存储器控制器接口107读取输出213。
例如,随机存取存储器105中的预定义位置可经配置以存储指示以触发由深度学习加速器103自主执行指令205。指示可任选地包含输入211在随机存取存储器105内的位置。因此,在自主执行指令205以处理输入211期间,外部装置可检索在指令205的前一运行期间产生的输出及/或存储另一组输入用于指令205的下一运行。
任选地,随机存取存储器105中的另一预定义位置可经配置以存储指令205的当前运行的进度状态的指示。此外,指示可包含指令205的当前运行的完成时间预测(例如,基于指令205的先前运行来估计)。因此,外部装置可在合适时间窗口检查完成状态以检索输出213。
在一些实施例中,随机存取存储器105配置有足够容量来存储多组输入(例如211)及输出(例如213)。每一组可配置于随机存取存储器105中的预定插槽/区域中。
深度学习加速器103可根据存储于随机存取存储器105中的矩阵207自主地执行指令205以从输入211产生输出213,无需位于集成电路装置101外部的处理器或装置帮助。
不同类型的存储器单元在不同存储器使用模式中可具有不同优点。随机存取存储器105可使用存储器裸片与突发缓冲器及/或裸片间复制功能性的异质堆叠来配置以最大化深度学习加速器103的带宽及性能。
例如,根据深度学习加速器103的存储器使用模式定制的存储器装置系统可使用各种存储器类型的基于3D裸片堆叠及2.5D中介层的互连。深度学习加速器103可经配置为存储器装置系统的主机。深度学习加速器103的存储器接口117中的存储器控制器可经配置以完全调度及协调存储器装置系统中的数据移动用于低复杂性、功耗及抖动。
可在存储器裸片堆叠中实施小缓冲器及控制逻辑以执行经配置以在堆叠中执行裸片间数据复制操作的命令。堆叠内的裸片间复制操作可用于说明不同存储器技术几何及速度,同时以确定性延时完成此类操作。此布置无需使用分割事务总线接口及缓冲来处置非确定性命令。
堆叠中的每一层存储器裸片可经配置以基于深度学习加速器103中具有不同使用模式的数据的类型来优化预定类型的数据的保持。例如,在人工神经网络201的推断计算期间,表示人工神经网络201的内核的数据可驻留于针对读取操作而优化的存储器中;且表示人工神经网络201的映射/激活的数据可驻留于针对读取及写入操作两者而优化的存储器中。在人工神经网络201的训练期间,表示人工神经网络201的一部分的内核的数据可在人工神经网络201的更新期间移动到针对写入操作而优化的存储器;且当计算移动到其它操作(例如其它神经网络层或内核部分)时,已更新的内核数据可回移到针对读取操作而优化且具有高密度以提供高存储容量的存储器。数据移动器可配置于存储器裸片堆叠中用于优化效率。
优选地,高带宽突发缓冲器配置于存储器裸片堆叠中以允许数据从作为主机的深度学习加速器103非常快速地卸载。深度学习加速器103可恢复其它操作,同时突发缓冲器中的数据更缓慢地迁移到具有更高存储容量的大容量存储器裸片。大容量存储器裸片可大量堆积以改进带宽。
图6说明根据一个实施例的存储器及深度学习加速器的集成电路裸片的配置。
例如,图6的配置可用于实施图1的集成电路装置101及/或应用图5中说明的计算。
在图6中,集成电路装置101作为集成电路裸片的多个堆叠317及319配置于硅中介层301(或另一类型的中介层,例如有机中介层)上。
深度学习加速器103配置于多个堆叠中的一者中的集成电路裸片303中。
集成电路裸片303及305的堆叠317具有深度学习加速器103且可称为深度学习加速器堆叠317。其具有堆叠于深度学习加速器103的裸片303顶部上的多个存储器裸片305。深度学习加速器103的存储器接口117可具有使用穿硅通路(TSV)连接到存储器裸片305用于高带宽存取的存储器控制器。
优选地,裸片305的存储器327中的存储器单元经配置用于低延时操作。例如,存储器裸片305中的存储器单元的类型可经选择使得存取存储器裸片305中的存储器单元的延时可低于存取其它堆叠319中的存储器单元。图6展示在具有深度学习加速器103的裸片303上堆叠两个存储器裸片305的实例。一般来说,可在深度学习加速器堆叠317中使用更多或更少存储器裸片305。
不具有深度学习加速器的集成电路裸片311、313及315的堆叠319可简称为存储器堆叠319。不同类型的存储器单元可在存储器堆叠319的不同层上使用。
例如,存储器堆叠319中的基底集成电路裸片311可通过连接309连接到深度学习加速器103的存储器控制器。高性能信令可用于连接存储器裸片311的接口及缓冲器307及深度学习加速器103的存储器控制器的连接309。例如,四电平脉冲幅度调制(PAM4)可支持高速连接(例如四百千兆位)且因此在存储器堆叠319与深度学习加速器堆叠317之间提供高通信带宽。
基底裸片311的接口及缓冲器307包含裸片交叉缓冲器,其用于缓冲用于来回传送于堆叠于存储器堆叠319中的基底裸片311上的存储器裸片313及315的数据。裸片交叉缓冲器允许以高于存储器堆叠319中的存储器裸片313及315与深度学习加速器堆叠317之间的数据传送速率的速率在存储器堆叠319与深度学习加速器堆叠317之间以突发模式传送数据。堆叠于基底裸片311上的集成电路裸片313及315中的存储器325及存储器323可使用穿硅通路(TSV)连接到基底裸片311中的接口及缓冲器307以由深度学习加速器堆叠317中的存储器控制器通过连接309存取。
接口及缓冲器307具有逻辑电路,其可在裸片交叉缓冲器与存储器裸片313及315中的存储器323及存储器325之间复制块中的数据。为了最小化复杂性及可变性,接口及缓冲器307可经配置以阻止以恒定延迟使数据来回复制于存储器堆叠319内的存储器323及325。存储器堆叠的接口及缓冲器307使用固定数目个时钟循环在同一存储器堆叠319中的裸片交叉缓冲器与另一存储器裸片(例如313或315)之间复制数据块。
优选地,具有接口及缓冲器307的逻辑电路的基底裸片311的存储器321中的存储器单元经选择以优化读取及写入带宽。裸片313的存储器323中的存储器单元经选择以用高存储器单元密度优化写入操作以提供高存储容量。裸片315的存储器325中的存储器单元经选择以用高存储器单元密度优化读取操作以提供高存储容量。任选地,可在存储器堆叠319中使用具有类似于存储器325及/或存储器323的存储器的一或多个额外存储器裸片。
下文结合图7论述针对存储器321、323、325及327的实施方案选择的存储器单元的实例。
图7说明根据一个实施例的用于深度学习加速器的存储器配置的实例。
例如,可使用图7的实例来实施图6的集成电路装置101。
在图7的实例中,使用静态随机存取存储器(SRAM)347来实施图6的存储器327;使用嵌入式动态随机存取存储器(eDRAM)341来实施图6的存储器321;使用低功耗双数据速率5(LPDDR5)存储器343来实施图6的存储器323;且使用交叉点存储器345(例如3D XPoint)来实施图6的存储器325。可使用同步动态随机存取存储器(SDRAM)来实施低功耗双数据速率5(LPDDR5)存储器343。在其它实例中,可使用替代类型的存储器。例如,可使用使用3D堆叠式SDRAM或DRAM实施的高带宽存储器(HBM)代替低功耗双数据速率5(LPDDR5)存储器343。在一个实例中,使用在存储器321到325中具有最高带宽及最低延时的存储器来实施图6的存储器327;使用存储器321到325中相对密集、高带宽及低延时的存储器来实施图6的存储器321;使用为非常密集、高带宽存储器的存储器来实施图6的存储器323;且使用在存储器321到325中最密集且被读取优化的存储器来实施图6的存储器325。
在图7中,存储器裸片315具有交叉点存储器345的非易失性存储器单元。存储于存储器裸片315中的数据可在到集成电路装置101的电力长时间中断之后留存。因此,表示人工神经网络201的DLA指令205及矩阵207的副本可存储于存储器裸片315中作为配置于集成电路装置101中的人工神经网络201的持久部分。
可使用用于形成逻辑电路的工艺来制造具有接口及缓冲器307的基底裸片311中的集成电路。可在基底裸片311中形成嵌入式动态随机存取存储器(eDRAM)341(或SRAM)以提供裸片交叉缓冲器。
优选地,提供于集成电路装置101中的存储器系统经配置使得当裸片中的存储器的对应存储体当前未由对应接口及缓冲器307使用时,深度学习加速器103的存储器接口117中的存储器控制器可存取堆叠317及319中的任一者中的存储器裸片305、311、313及315中的任一者。
为了从存储器堆叠319读取数据块,深度学习加速器103的存储器控制器可发出读取命令以直接寻址存储器堆叠319中的存储器块。存储器块可在存储器堆叠319中的存储器裸片311、313及315中的任一者中。存储器控制器将数据块从存储器堆叠319读取到深度学习加速器堆叠317中的静态随机存取存储器(SRAM)347中。
替代地,为了最小化从存储器堆叠319读取数据块所使用的时间,深度学习加速器103的存储器控制器可向接口及缓冲器307发出命令以将数据块从存储器裸片(例如313或315)预取到基底裸片311中的裸片交叉缓冲器中。基于接口及缓冲器307的操作的恒定延时,DLA编译器203可确定及追踪数据当前所在位置及将消耗数据的位置。在数据位于基底裸片311中的嵌入式动态随机存取存储器(eDRAM)341中之后,深度学习加速器103的存储器控制器可发出命令以将数据从嵌入式动态随机存取存储器(eDRAM)341读取到深度学习加速器堆叠317的静态随机存取存储器(SRAM)347中,这比将数据从存储器裸片313及315读取到深度学习加速器堆叠317中更快。
为了将数据块写入到存储器堆叠319,深度学习加速器103的存储器控制器将数据写入到嵌入式动态随机存取存储器(eDRAM)341以尽快完成操作。接着,深度学习加速器103的存储器控制器可向接口及缓冲器307发出块复制命令以将数据块复制到堆叠于基底裸片311上的大容量存储器裸片(例如313或315)。
图8展示根据一个实施例的在集成电路装置中实施的方法。例如,图8的方法可在图1、图6及/或图7的集成电路装置101或类似于图5中说明的装置的另一装置中实施。
在框401处,装置101的集成电路裸片303及305的第一堆叠317经由通信连接309与装置101的集成电路裸片311、313及315的第二堆叠319通信。
例如,通信连接309可经配置以传输根据各种方案调制或编码的信令,包含不归零(NRZ)、脉冲幅度调制(PAM)或类似者。通信连接309可包含一或多个指定数据信道或总线及一或多个命令/地址(或C/A)信道或总线。在一些实例中,数据信道(其可称为DQ)可为双向的,从而允许在耦合到通信连接309的装置之间传送(例如,从所述装置读取或写入到所述装置)表示数据的信令或位流。通信连接309内的命令/地址总线可为单向或双向的。
例如,装置101可具有其上安装堆叠317及319的硅中介层301。
例如,可经由硅中介层301提供通信连接309。
例如,集成电路封装可经配置以围封装置101。
例如,可使用穿硅通路(TSV)将第一堆叠317中的集成电路裸片303及305的存储器327连接到第一堆叠317中的存储器控制器;可使用穿硅通路(TSV)将第二堆叠319中的集成电路裸片313的存储器323及集成电路裸片315的存储器325连接到第二堆叠317中的接口及缓冲器307的逻辑电路。第一堆叠317中的存储器控制器及第二堆叠317中的接口及缓冲器307可使用通信连接309彼此通信。
在框403处,通过通信连接309,配置于第一堆叠317中的第一集成电路裸片303中的存储器接口117的存储器控制器将存储于配置于堆叠于第一堆叠317中的第一集成电路裸片303上的至少一个第二集成电路裸片305中的第一类型的存储器单元中的数据块复制到配置于第二堆叠319中的基底集成电路裸片311中的第二类型的存储器单元中。
在框405处,配置于基底集成电路裸片311中的接口及缓冲器307的逻辑电路将数据块从基底集成电路裸片311复制到配置于堆叠于第二堆叠319中的基底集成电路裸片311上的至少一个第三集成电路裸片(例如313、315)中的存储器单元中。至少一个第三集成电路裸片(例如313、315)中的存储器单元可具有不同类型且可不同于至少一个第二集成电路裸片305中的第一类型的存储器327且不同于基底集成电路裸片311中的第二类型的存储器321。
在框407处,存储器接口117的存储器控制器经由通信连接309向接口及缓冲器307的逻辑电路传送请求以将第一数据块从至少一个第三集成电路裸片(例如313、315)预取到基底集成电路裸片311。
在框409处,响应于请求且在预定数目个时钟循环内,接口及缓冲器307的逻辑电路将第一数据块复制到基底集成电路裸片311中。
在框411处,在预定数目个时钟循环之后,存储器接口117的存储器控制器通过通信连接309将第一数据块从基底集成电路裸片311复制到堆叠于第一堆叠317中的第一集成电路裸片303上的至少一个第二集成电路裸片305中。
例如,配置于至少一个第三集成电路裸片(例如313及315)中的不同类型的存储器单元可具有不同存储器存取速度。为了降低复杂性,预定数目个时钟循环可独立于其中第一数据块存储于至少一个第三集成电路裸片(例如313及315)中的存储器单元的类型。例如,接口及缓冲器307的逻辑电路可使用用于从非易失性存储器325(例如交叉点存储器)复制数据的相同预定数目个时钟循环来将数据块从易失性存储器323(例如SDRAM)复制到基底集成电路裸片311。
任选地,存储器接口117的存储器控制器可将第二数据块从至少一个第三集成电路裸片(例如313、315)读取到至少一个第二集成电路裸片305中,无需请求接口及缓冲器307的逻辑电路将第二数据块预取到基底集成电路裸片311中。在没有预取请求的情况下,连接309将被占用以在比用于向基底集成电路裸片311请求预取的时间与用于从基底集成电路裸片311复制的时间的和更长的时段内读取第二数据块。当使用预取时,可在请求预取与将预取数据从基底集成电路裸片311复制/读取到第一堆叠317中之间的时段期间释放用于读取第二数据块的一些资源用于其它操作。
优选地,存储器裸片(例如305、313、315)中的存储器单元组织成可单独使用的多个存储体。因此,当存储器裸片(例如313或315)中的存储器单元的存储体由接口及缓冲器307使用时,位于同一存储器裸片(例如313或315)中但当前未由接口及缓冲器307使用的存储器单元的另一存储体可由深度学习加速器103的存储器接口117中的存储器控制器同时寻址。
例如,配置于堆叠于第一集成电路裸片303上的存储器裸片305中的第一类型的存储器327可为静态随机存取存储器(SRAM);配置于基底集成电路裸片311中的第二类型的存储器321可为嵌入式动态随机存取存储器(eDRAM)。至少一个第三集成电路裸片可包含为同步动态随机存取存储器(SDRAM)的存储器323的裸片313及为交叉点存储器的存储器325的另一裸片315。
例如,非易失性存储器325可用于存储表示人工神经网络(ANN)的数据。数据可读取到堆叠于第一集成电路裸片303顶部上的具有低延时的易失性存储器327中以使用第一集成电路裸片303中的处理单元111来执行人工神经网络(ANN)的矩阵计算。
例如,第一集成电路裸片303可包含实施深度学习加速器103的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。深度学习加速器103可包含其存储器接口117中的存储器控制器、控制单元113及经配置以对在FPGA或ASIC中执行的指令的两个矩阵操作数进行操作的至少一个处理单元111。
本公开包含执行上述方法的方法及设备,其包含执行这些方法的数据处理系统及含有指令的计算机可读媒体,指令在数据处理系统上执行时致使系统执行这些方法。
典型数据处理系统可包含互连件(例如总线及系统核心逻辑),其使微处理器与存储器互连。微处理器通常耦合到高速缓冲存储器。
互连件使微处理器与存储器互连且还使它们经由I/O控制器与输入/输出(I/O)装置互连。I/O装置可包含显示装置及/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机及所属领域中已知的其它装置。在一个实施例中,当数据处理系统是服务器系统时,一些I/O装置(例如打印机、扫描仪、鼠标及/或键盘)是任选的。
互连件可包含通过各种桥接器、控制器及/或适配器彼此连接的一或多个总线。在一个实施例中,I/O控制器包含用于控制USB外围装置的USB(通用串行总线)适配器及/或用于控制IEEE-1394外围装置的IEEE-1394总线适配器。
存储器可包含以下中的一或多者:ROM(只读存储器)、易失性RAM(随机存取存储器)及非易失性存储器,例如硬盘驱动器、闪存等。
易失性RAM通常实施为动态RAM(DRAM),其需要持续电力来刷新或维持存储器中的数据。非易失性存储器通常为磁性硬盘驱动器、磁性光学驱动器、光学驱动器(例如DVDRAM)或即使在从系统移除电力之后仍维持数据的其它类型的存储器系统。非易失性存储器也可为随机存取存储器。
非易失性存储器可为直接耦合到数据处理系统中的其余组件的本地装置。也可使用远离系统的非易失性存储器,例如通过例如调制解调器或以太网接口的网络接口耦合到数据处理系统的网络存储装置。
在本公开中,一些功能及操作经描述为由软件代码执行或引起以简化描述。然而,此类表述还用于指定功能源自由例如微处理器的处理器执行代码/指令。
替代地或组合地,可使用具有或不具有软件指令的专用电路系统来实施此处描述的功能及操作,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用没有软件指令或与软件指令组合的硬接线电路系统来实施实施例。因此,技术既不限于硬件电路及软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
尽管一个实施例可在全功能计算机及计算机系统中实施,但各种实施例能够以各种形式作为计算产品分布且能够被应用,不管用于实际实现分布的特定类型的机器或计算机可读媒体如何。
所公开的至少一些方面可至少部分以软件体现。即,可响应于其处理器(例如微处理器)执行含于存储器(例如ROM、易失性RAM、非易失性存储器、高速缓存或远程存储装置)中的指令序列而在计算机系统或其它数据处理系统中实施技术。
经执行以实施实施例的例程可经实施为操作系统的部分或称为“计算机程序”的特定应用程序、组件、程序、对象、模块或指令序列。计算机程序通常包含在计算机中的各种存储器及存储装置中在不同时间设置的一或多个指令,且指令在由计算机中的一或多个处理器读取及执行时致使计算机执行执行涉及各个方面的元素所需的操作。
机器可读媒体可用于存储在由数据处理系统执行时致使系统执行各种方法的软件及数据。可执行软件及数据可存储于各个位置中,包含例如ROM、易失性RAM、非易失性存储器及/或高速缓存。此软件及/或数据的部分可存储于这些存储装置中的任一者中。此外,可从集中式服务器或对等网络获得数据及指令。数据及指令的不同部分可在不同时间及在不同通信会话中或在同一通信会话中从不同集中式服务器及/或对等网络获得。可在执行应用程序之前整体获得数据及指令。替代地,可在执行需要时及时动态获得数据及指令的部分。因此,在特定时刻,数据及指令无需全部位于机器可读媒体上。
计算机可读媒体的实例包含(但不限于)非暂时性、可记录及不可记录型媒体,例如易失性及非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、闪存装置、软盘及其它可卸除磁盘、磁盘存储媒体、光学存储媒体(例如光盘只读存储器(CD ROM)、数字多功能磁盘(DVD)等)等。计算机可读媒体可存储指令。
指令还可体现于用于电、光、声或其它形式的传播信号(例如载波、红外信号、数字信号等)的数字及模拟通信链路中。然而,传播信号(例如载波、红外信号、数字信号等)不是有形机器可读媒体且未经配置以存储指令。
一般来说,机器可读媒体包含可以机器(例如计算机、网络装置、个人数字助理、制造工具、具有一组的一或多个处理器的任何装置等)存取的形式提供(即,存储及/或传输)信息的任何机构。
在各种实施例中,硬连线电路系统可与软件指令结合使用以实施技术。因此,技术既不限于硬件电路系统及软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
上文描述及图式是说明性的且不应解释为限制。描述众多特定细节来提供透彻理解。然而,在某些例子中,未描述众所周知或常规细节以免使描述不清楚。本公开中参考一个或一实施例不一定是参考同一实施例;且此类参考意味着至少一个。
在前述说明中,已参考本公开的特定示范性实施例描述本公开。应明白,可在不脱离所附权利要求书中阐述的更广泛精神及范围的情况下对本公开进行各种修改。因此,说明书及图式应被视为意在说明而非限制。
Claims (20)
1.一种装置,其包括:
集成电路裸片的第一堆叠,其包含:
第一集成电路裸片,其含有存储器控制器及经配置以对矩阵操作数执行至少计算的处理单元;及
至少一个第二集成电路裸片,其堆叠于所述第一集成电路裸片上且含有第一类型的存储器单元;
集成电路裸片的多个第二堆叠,所述多个第二堆叠中的每一相应堆叠包含:
基底集成电路裸片,其含有逻辑电路及第二类型的存储器单元;及
至少一个第三集成电路裸片,其堆叠于所述基底集成电路裸片上且含有与所述第一类型不同且与所述第二类型不同的存储器单元;及
多个通信连接,所述通信连接中的每一者配置于所述第一堆叠中的所述存储器控制器与所述相应堆叠的所述逻辑电路之间。
2.根据权利要求1所述的装置,其进一步包括:
中介层,其中所述第一堆叠及所述多个第二堆叠配置于所述中介层上。
3.根据权利要求2所述的装置,其进一步包括:
集成电路封装,其经配置以围封所述装置。
4.根据权利要求3所述的装置,其中所述至少一个第二集成电路裸片包含使用穿硅通路(TSV)连接到所述存储器控制器且具有所述第一类型的所述存储器单元的至少两个集成电路裸片。
5.根据权利要求4所述的装置,其中所述至少一个第三集成电路裸片包含通过穿硅通路(TSV)连接到所述存储器控制器且具有第三类型的存储器单元及第四类型的存储器单元的至少两个集成电路裸片;且其中所述第三类型的所述存储器单元是易失性的且所述第四类型的所述存储器单元是非易失性的。
6.根据权利要求5所述的装置,其中所述第一类型具有比所述第二类型、所述第三类型及所述第四类型更好的带宽及延时性能;所述第二类型具有比所述第三类型及所述第四类型更好的延时性能且具有比所述第一类型更高的存储器单元密度;所述第三类型具有比所述第二类型更高的存储器单元密度且具有比所述第四类型更好的带宽性能;且所述第四类型具有比所述第三类型更高的存储器单元密度及存储容量。
7.根据权利要求5所述的装置,其中所述基底集成电路裸片中的所述逻辑电路经配置以从所述第一集成电路裸片中的所述存储器控制器接收命令且执行所述命令以在所述基底集成电路裸片与堆叠于所述基底集成电路裸片上的所述至少一个第三集成电路裸片之间复制数据。
8.根据权利要求7所述的装置,其中当所述存储器单元未用于所述逻辑电路时,所述至少一个第三集成电路裸片中的所述存储器单元可由所述存储器控制器直接寻址用于读取或写入。
9.根据权利要求8所述的装置,其中所述多个第二堆叠中的存储器单元可经由所述多个通信连接并行地存取到所述存储器控制器。
10.根据权利要求9所述的装置,其中在写入命令的执行期间,
所述存储器控制器经配置以将数据块写入到所述基底集成电路裸片中的所述第二类型的所述存储器单元中,且
所述逻辑电路经配置以将所述数据块从所述基底集成电路裸片复制到堆叠于所述基底集成电路裸片上的所述至少一个第三集成电路裸片中。
11.根据权利要求9所述的装置,其中在从堆叠于所述基底集成电路裸片上的所述至少一个第三集成电路裸片读取数据的第一模式中,所述存储器控制器经配置以将数据块从堆叠于所述基底集成电路裸片上的所述至少一个第三集成电路裸片复制到堆叠于所述第一集成电路裸片上的所述至少一个第二集成电路裸片中。
12.根据权利要求11所述的装置,其中在从堆叠于所述基底集成电路裸片上的所述至少一个第三集成电路裸片读取数据的第二模式中,所述存储器控制器经配置以:
指示所述基底集成电路裸片中的所述逻辑电路将所述数据块从所述至少一个第三集成电路裸片复制到所述基底集成电路裸片中;及
在预定数目个时钟循环期满之后,将所述数据块从所述基底集成电路裸片复制到堆叠于所述第一集成电路裸片上的所述至少一个第二集成电路裸片中。
13.一种方法,其包括:
经由通信连接在装置的集成电路裸片的第一堆叠与所述装置的集成电路裸片的第二堆叠之间通信;
通过所述通信连接且通过配置于所述第一堆叠中的第一集成电路裸片中的存储器控制器来将存储于配置于堆叠于所述第一堆叠中的所述第一集成电路裸片上的至少一个第二集成电路裸片中的第一类型的存储器单元中的数据块写入到配置于所述第二堆叠中的基底集成电路裸片中的第二类型的存储器单元中;及
通过配置于所述基底集成电路裸片中的逻辑电路将所述数据块从所述基底集成电路裸片复制到配置于堆叠于所述第二堆叠中的所述基底集成电路裸片上的至少一个第三集成电路裸片中的不同类型的存储器单元中。
14.根据权利要求13所述的方法,其进一步包括:
经由所述通信连接将来自所述存储器控制器的请求传送到所述逻辑电路以将第一数据块从所述至少一个第三集成电路裸片预取到所述基底集成电路裸片;
由所述逻辑电路响应于所述请求且在预定数目个时钟循环内将所述第一数据块复制到所述基底集成电路裸片中;及
在所述预定数目个时钟循环之后,由所述存储器控制器通过所述通信连接将所述第一数据块从所述基底集成电路裸片读取到堆叠于所述第一堆叠中的所述第一集成电路裸片上的所述至少一个第二集成电路裸片中。
15.根据权利要求14所述的方法,其进一步包括:
在所述预定数目个时钟循环之后,由所述存储器控制器通过所述通信连接将第二数据块从所述至少一个第三集成电路裸片读取到堆叠于所述第一堆叠中的所述第一集成电路裸片上的所述至少一个第二集成电路裸片中且无需请求所述逻辑电路将所述第二数据块预取到所述基底集成电路裸片中。
16.根据权利要求15所述的方法,其中配置于所述至少一个第三集成电路裸片中的所述不同类型的所述存储器单元具有不同存储器存取速度;且所述预定数目个时钟循环独立于其中所述第一数据块存储于所述至少一个第三集成电路裸片中的存储器单元的类型。
17.根据权利要求16所述的方法,其进一步包括:
在所述至少一个第三集成电路裸片中存储表示人工神经网络(ANN)的数据;及
由配置于所述第一堆叠中的所述第一集成电路裸片中的处理单元使用表示人工神经网络(ANN)的所述数据来执行所述人工神经网络(ANN)的矩阵计算。
18.一种设备,其包括:
硅中介层;
集成电路裸片的第一堆叠,其配置于所述硅中介层上,所述第一堆叠包含:
第一集成电路裸片,其含有现场可编程门阵列(FPGA)或专用集成电路(ASIC),所述第一集成电路裸片包含:
存储器控制器;
控制单元;及
至少一个处理单元,其经配置以对在所述FPGA或ASIC中执行的指令的两个矩阵操作数进行操作;及
至少两个第二集成电路裸片,其堆叠于所述第一集成电路裸片上且含有第一类型的存储器单元;
集成电路裸片的多个第二堆叠,其配置于所述硅中介层上,所述多个第二堆叠中的每一相应堆叠包含:
基底集成电路裸片,其含有逻辑电路及第二类型的存储器单元;
第三集成电路裸片,其堆叠于所述基底集成电路裸片上且含有第三类型的存储器单元;及
第四集成电路裸片,其堆叠于所述第三集成电路裸片上且含有第四类型的存储器单元;及
多个通信连接,其配置于所述硅中介层上,所述多个所述通信连接中的每一相应连接经配置以连接所述第一堆叠中的所述存储器控制及所述相应堆叠的所述逻辑电路。
19.根据权利要求18所述的设备,其中所述逻辑电路经配置以用预定延时通过所述相应通信连接响应于来自所述存储器控制器的命令而复制所述相应堆叠内的数据块。
20.根据权利要求19所述的设备,其中所述第一类型具有比所述第二类型更好的带宽及延时性能;所述第二类型具有比所述第三类型更好的延时性能且具有比所述第一类型更高的存储器单元密度;所述第三类型具有比所述第二类型更高的存储器单元密度且具有比所述第四类型更好的带宽性能;且所述第四类型具有比所述第三类型更高的存储器单元密度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/120,786 | 2020-12-14 | ||
US17/120,786 US20220188606A1 (en) | 2020-12-14 | 2020-12-14 | Memory Configuration to Support Deep Learning Accelerator in an Integrated Circuit Device |
PCT/US2021/062493 WO2022132539A1 (en) | 2020-12-14 | 2021-12-08 | Memory configuration to support deep learning accelerator in an integrated circuit device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116635936A true CN116635936A (zh) | 2023-08-22 |
Family
ID=81942553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180083785.1A Pending CN116635936A (zh) | 2020-12-14 | 2021-12-08 | 用于支持集成电路装置中的深度学习加速器的存储器配置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220188606A1 (zh) |
CN (1) | CN116635936A (zh) |
WO (1) | WO2022132539A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117915670A (zh) * | 2024-03-14 | 2024-04-19 | 上海芯高峰微电子有限公司 | 一种存算一体的芯片结构 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230051863A1 (en) * | 2021-08-10 | 2023-02-16 | Micron Technology, Inc. | Memory device for wafer-on-wafer formed memory and logic |
US11977766B2 (en) * | 2022-02-28 | 2024-05-07 | Nvidia Corporation | Hierarchical network for stacked memory system |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131659B2 (en) * | 2008-09-25 | 2012-03-06 | Microsoft Corporation | Field-programmable gate array based accelerator system |
US20160379686A1 (en) * | 2015-06-29 | 2016-12-29 | Microsoft Technology Licensing, Llc | Server systems with hardware accelerators including stacked memory |
US10540588B2 (en) * | 2015-06-29 | 2020-01-21 | Microsoft Technology Licensing, Llc | Deep neural network processing on hardware accelerators with stacked memory |
US10452995B2 (en) * | 2015-06-29 | 2019-10-22 | Microsoft Technology Licensing, Llc | Machine learning classification on hardware accelerators with stacked memory |
KR102273002B1 (ko) * | 2016-06-27 | 2021-07-06 | 애플 인크. | 조합된 높은 밀도, 낮은 대역폭 및 낮은 밀도, 높은 대역폭 메모리들을 갖는 메모리 시스템 |
PL3812900T3 (pl) * | 2016-12-31 | 2024-04-08 | Intel Corporation | Systemy, sposoby i aparaty do obliczania heterogenicznego |
TW201926147A (zh) * | 2017-12-01 | 2019-07-01 | 阿比特電子科技有限公司 | 電子裝置、加速器、適用於神經網路運算的加速方法及神經網路加速系統 |
US10803379B2 (en) * | 2017-12-12 | 2020-10-13 | Amazon Technologies, Inc. | Multi-memory on-chip computational network |
US11139270B2 (en) * | 2019-03-18 | 2021-10-05 | Kepler Computing Inc. | Artificial intelligence processor with three-dimensional stacked memory |
-
2020
- 2020-12-14 US US17/120,786 patent/US20220188606A1/en active Pending
-
2021
- 2021-12-08 WO PCT/US2021/062493 patent/WO2022132539A1/en active Application Filing
- 2021-12-08 CN CN202180083785.1A patent/CN116635936A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117915670A (zh) * | 2024-03-14 | 2024-04-19 | 上海芯高峰微电子有限公司 | 一种存算一体的芯片结构 |
Also Published As
Publication number | Publication date |
---|---|
US20220188606A1 (en) | 2022-06-16 |
WO2022132539A1 (en) | 2022-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116635936A (zh) | 用于支持集成电路装置中的深度学习加速器的存储器配置 | |
US11874897B2 (en) | Integrated circuit device with deep learning accelerator and random access memory | |
US11887647B2 (en) | Deep learning accelerator and random access memory with separate memory access connections | |
KR20220164573A (ko) | 딥 러닝 가속기 및 랜덤 액세스 메모리를 구비한 칩 상의 시스템 | |
KR20220164553A (ko) | 카메라 인터페이스를 구비한 딥 러닝 가속기 및 랜덤 액세스 메모리 | |
CN115843367A (zh) | 具有深度学习加速器和随机存取存储器的可移除式存储装置中的视频压缩 | |
CN116210006A (zh) | 用于深度学习加速器和随机存取存储器的智能低功率模式 | |
CN116569182A (zh) | 具有用以优化经生成以用于在人工神经网络的深度学习加速器上执行的指令的人工神经网络的编译器 | |
CN116134452A (zh) | 具有集成随机存取存储器的深度学习加速器中的优化传感器融合 | |
US20230161936A1 (en) | Integrated Sensor Device with Deep Learning Accelerator and Random Access Memory | |
US20220147808A1 (en) | Compiler configurable to generate instructions executable by different deep learning accelerators from a description of an artificial neural network | |
US20220044102A1 (en) | Fault tolerant artificial neural network computation in deep learning accelerator having integrated random access memory | |
US20220044101A1 (en) | Collaborative sensor data processing by deep learning accelerators with integrated random access memory | |
US20220147811A1 (en) | Implement the computation of an artificial neural network using multiple deep learning accelerators | |
US20220147809A1 (en) | Deep learning accelerators with configurable hardware options optimizable via compiler | |
US20220147813A1 (en) | Runtime optimization of computations of an artificial neural network compiled for execution on a deep learning accelerator |
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 |