CN109564585A - 基于点积的处理元件 - Google Patents
基于点积的处理元件 Download PDFInfo
- Publication number
- CN109564585A CN109564585A CN201780049809.5A CN201780049809A CN109564585A CN 109564585 A CN109564585 A CN 109564585A CN 201780049809 A CN201780049809 A CN 201780049809A CN 109564585 A CN109564585 A CN 109564585A
- Authority
- CN
- China
- Prior art keywords
- signal processing
- processing unit
- digital signal
- dot product
- adder
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 claims abstract description 20
- 239000013598 vector Substances 0.000 claims description 29
- 239000011159 matrix material Substances 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 6
- 230000008520 organization Effects 0.000 claims description 3
- 241001442055 Vipera berus Species 0.000 description 13
- 238000013461 design Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 238000007788 roughening Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000004020 conductor Substances 0.000 description 4
- ORQBXQOJMQIAOY-UHFFFAOYSA-N nobelium Chemical compound [No] ORQBXQOJMQIAOY-UHFFFAOYSA-N 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000005611 electricity Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 102220244326 rs113167834 Human genes 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L22/00—Testing or measuring during manufacture or treatment; Reliability measurements, i.e. testing of parts without further processing to modify the parts as such; Structural arrangements therefor
- H01L22/30—Structural arrangements specially adapted for testing or measuring during manufacture or treatment, or specially adapted for reliability measurements
- H01L22/34—Circuits for electrically characterising or monitoring manufacturing processes, e. g. whole test die, wafers filled with test structures, on-board-devices incorporated on each die, process control monitors or pad structures thereof, devices in scribe line
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L27/00—Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
- H01L27/02—Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
- H01L27/0203—Particular design considerations for integrated circuits
- H01L27/0207—Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Automation & Control Theory (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
公开了使用数字信号处理单元(140,142,144,146)计算点积的系统和方法,数字信号处理单元被组织成点积处理单元(100),用于使用数字信号处理单元(140,142,144,146)的乘法器(118,120,122,123)和加法器(124,126,128,137)进行点积处理。
Description
技术领域
本公开总体涉及集成电路,例如,现场可编程门阵列(FPGA)。更具体而言,本公开涉及在集成电路上实现的点积处理。
背景技术
本部分旨在向读者介绍可能与本公开的各个方面相关的本领域的各个方面,本公开的各个方面在下文中描述和/或受权利要求书保护。这种论述被认为是有助于为读者提供背景信息以便于更好地理解本公开的各个方面。因此,应当理解,要在这个意义上来阅读这些文字描述,而不是作为对现有技术的承认。
在数字信号处理算法(例如,音频/视频编解码器、视频或音频处理等)中常常使用矢量点积处理。当在包括可重新配置器件,例如现场可编程门阵列(FPGA)的集成电路器件上实现数字信号处理器(DSP)时,点积处理结构的物理面积和速度是确保集成电路器件在尺寸和速度方面都适合要执行的任务的因素。不过,点积计算可以为每种功能使用个体DSP和存储器资源,这样增大了路由长度,从而可能还提高面积和性能。
发明内容
下文阐述本文公开的某些实施例的概要。应当理解,给出这些方面仅仅是为了给读者提供这些特定实施例的简明概要,并且这些方面并非旨在限制本公开的范围。实际上,本公开可涵盖下文可能未阐述的多个方面。
本实施例涉及使用可重新配置器件,例如现场可编程门阵列(FPGA)增强点积处理的性能的系统、方法和器件。具体而言,粗糙化点积处理单元的宏可以用于高效率地利用可重新配置器件中的空间,同时确保满意的性能。此外,通过将可重新配置器件组织成不使用集成电路中可以使用的更多通用路由路径而执行点积处理的单元,其中独立地使用不同的数字信号处理块,有可能众多长路径会对集成电路的性能造成负面影响。
对上述特征的各种改进可能相对于本发明的各个方面而存在。也可在这些各个方面中加入其他特征。这些改进和其他特征可以单独存在,也可以任何组合的形式存在。例如,下面讨论的与一个或多个所示实施例相关的各种特征可单独地或以任何组合形式结合到本公开上述方面的任何一个中。同样,上述简要概要仅旨在使读者熟悉本发明实施例的特定方面和上下文,并不限制要求保护的主题。
附图说明
在阅读以下详细描述并参考附图时,可以更好地理解本公开的各个方面,其中:
图1是根据实施例利用点积处理的系统的框图;
图2是根据实施例可以包括对实施点积处理有用的逻辑的可编程逻辑器件的框图;
图3是示出根据实施例的点积处理电路的框图;
图4是示出根据实施例使用个体数字信号处理单元实现的图3的点积处理电路的框图;
图5是示出根据实施例使用粗糙化点积处理单元实现的图3的点积处理电路的框图;
图6是示出根据实施例具有被配置为生成点积的运行和的累加器的图5的点积处理电路的框图;
图7是示出根据实施例具有存储器高速缓存的图5的点积处理电路的框图;
图8是根据实施例使用粗糙化点积处理单元计算点积的过程。
具体实施方式
下文将描述一个或多个具体实施例。为了提供这些实施例的简要描述,本说明书中未描述实际实施的所有特征。应当认识到,在任何这种实际实施的开发中,像任何工程学或设计项目中那样,必须要做出众多实施特定的决策以实现开发者的具体目标,例如符合可能随实施而变化的与系统相关和与事务相关的约束条件。此外,应当理解,此类开发工作有可能复杂且耗时,但是对于受益于本公开的本领域的普通技术人员而言,其仍将是设计、加工和制造的常规工作。
本公开描述了在包括可重新配置器件的集成电路上使用增强型点积处理元件(PE)的技术。这样获得的PE架构很适合关联性计算,例如矩阵乘法或卷积,并可以链接在一起以实现脉动阵列。该技术还基于将点积粗糙化到更大尺寸,获得更有效率的资源利用。该技术还有助于总体的计算机辅助设计(CAD)流程,因为粗糙化点积可被作为大宏放置,只需要放置更少的原子且形成更少路由。粗糙化技术支持数据交织技术,以能够进行重度流水线化和高速缓存,实现数据重复利用。粗糙化还改善了点积的映射,以减少所用的数字信号处理(DSP)单元的总数。此外,根据要实施的矩阵尺寸,可以调节点积粗糙化尺寸,以至少部分地基于矩阵尺寸获得有效率的结果。例如,针对被点处理的矩阵的矢量中每个元素,可以包括DSP单元。具体而言,在一些实施例中,可以使用点积处理宏来实现四矢量点积,该宏在单个宏中的列中包括四个DSP单元,以实现四个矢量的点积处理。
具体而言,点积PE利用加法器树和乘法输入来实现高效率的点积计算。对点积进行粗糙化降低了资源需求,因为可以利用相邻DSP之间的专用高速路由。对点积进行粗糙化还可以简化放置和路由问题,因为可以将点积布局为大的连续块,由此减少放置对象和通用路由的数量。尽管在可重新配置设备,例如具有现场可编程门阵列(FPGA)织构的可编程序逻辑器件的语境中简要描述了本公开的技术,但这意在例示而非限制。实际上,本公开的点积电路可以在其他集成电路中实现。诸如专用集成电路(ASIC)、微处理器、存储装置、收发器等其他类型的集成电路也可以使用本公开的点积电路。
考虑到以上内容,图1示出了系统10的框图,系统10包括可以减小典型用于此类实施方式的逻辑面积和/或增大速度的点积处理操作。如上所述,设计者可能希望在集成电路,例如可重新配置的集成电路12,如现场可编程门阵列(FPGA)上实现功能。设计者可以使用设计软件14,例如AlteraTM的Quartus的版本,实现将被编程到IC 12上的电路设计。设计软件14可以使用编译器16产生对集成电路12进行编程的低级电路设计内核程序18,有时被称为程序对象文件或比特流。亦即,编译器16可以向IC 12提供代表电路设计的机器可读指令。例如,IC 12可以接收描述应当存储于IC中的硬件实施方式的一个或多个内核程序18。在一些实施例中,可以在集成电路12上实现点积处理操作20。例如,可以使用点积处理操作20对单精度浮点数、双精度浮点数或其他适当的用于点积处理的对象进行运算。如下文将更详细所述,点积处理操作20可以被粗糙化成大宏,可以使用更低数量的通用路由资源(或非DSP块资源)将所述大宏插入设计中。例如,可以如下所述组合针对单精度浮点加法的两个DSP块,以形成双精度浮点加法器。
现在转到IC 12的更详细论述,图2示出了IC器件12,其可以是可编程逻辑器件,例如现场可编程门阵列(FPGA)40。出于本示例的目的,器件40被称为FPGA,但应当理解,该器件可以是任何类型的可重新配置器件(例如,专用集成电路和/或专用标准产品)。如图所示,FPGA 40可以具有输入/输出电路42,用于经由输入/输出管脚44驱动信号离开器件40并从其他器件接收信号。可以使用互连资源46,例如全局和本地垂直和水平导电线和总线,以在器件40上路由信号。此外,互连资源46可以包括固定互连(导电线)和可编程互连(即,相应的固定互连之间的可编程连接)。可编程逻辑48可以包括组合和顺序逻辑电路。例如,可编程逻辑48可以包括查找表、寄存器和复用器。在各实施例中,可编程逻辑48可以被配置成执行自定义逻辑功能。与互连资源相关联的可编程互连可以被视为可编程逻辑48的一部分。如下文更详细所述,FPGA 40可以包括能够对FPGA进行部分重新配置的可调整逻辑,从而可以在FPGA 40的运行时间期间添加、去除和/或更换内核。
诸如FPGA 40的可编程逻辑器件可以包含可编程逻辑48之内的可编程元件50。例如,如上所述,设计者(例如,客户)可以对可编程逻辑48进行编程(例如,配置)以执行一种或多种期望功能。例如,可以通过使用掩模编程布置配置其可编程元件50来对一些可编程序逻辑器件进行编程,所述配置是在半导体制造期间执行的。在已经完成半导体制造操作之后,例如使用电编程或激光编程对其可编程元件50进行编程,从而配置其他可编程序逻辑器件。通常,可编程元件50可以基于任何适当的可编程技术,例如熔丝、反熔丝、电可编程只读存储器技术、随机存取存储单元、掩模编程元件等。
很多可编程序逻辑器件是以电的方式编程的。利用电编程布置,可编程元件50可以包括一个或多个逻辑元件(导线、门、寄存器等)。例如,在编程期间,使用管脚44和输入/输出电路42向存储器52中加载配置数据。在一些实施例中,存储器52可以被实现为随机存取存储器(RAM)单元。在这里描述基于RAM技术使用存储器52仅仅意在作为一个示例。此外,存储器52可以分布于器件40中(例如,作为RAM单元)。此外,因为在编程期间为这些RAM单元加载配置数据,所以有时将它们称为配置RAM单元(CRAM)。存储器52可以提供对应的静态控制输出信号,其控制可编程逻辑48中关联逻辑部件的状态。例如,在一些实施例中,可以将输出信号施加到可编程逻辑48之内的金属氧化物半导体(MOS)晶体管的栅极。在一些实施例中,可编程元件50可以包括实施公共操作的DSP块,例如,使用DSP块实现的点积处理元件。
可以使用任何适当的架构来组织FPGA 40的电路。例如,可以在更大的可编程逻辑区域的一系列行和列中组织FPGA 40的逻辑,所述更大的可编程逻辑区域中的每一个可以包含多个更小的逻辑区域。可以由互连资源46,例如关联的垂直和水平导体,来互连FPGA40的逻辑资源。例如,在一些实施例中,这些导体可以包括跨越基本所有FPGA 40的全局导线,跨越器件40的部分的分数线,例如,半线或四分之一线,特定长度(例如,足以互连几个逻辑区域)的交错线,更小的局部线或任何其他适当的互连资源布置。此外,在其他实施例中,FPGA 40的逻辑可以布置于更多层级或层中,其中互连多个大区域以形成逻辑的更大部分。再者,一些器件布置可以使用以行和列之外的方式布置的逻辑。
如上所述,FPGA 40可以允许设计者生成能够执行并进行定制功能的定制设计。每种设计都可以让其自己的硬件实施在FPGA 40上被实现。这些硬件实施可以包括使用可编程元件50的DSP块的浮点运算。
点积可以被从代数上定义为进行点积计算的矢量中对应项的乘积之和。例如,等式1在代数上示出了两个4矢量点积的点积表达式:
其中A1、A2、A3和A4是A矢量中的元素,B1、B2、B3和B4是B矢量中的元素。例如,A矢量中的元素可以对应于一个时间元素和三个空间元素。B矢量中的元素可以是另一矢量、等价于A矢量元素的一些标量值、或一些其他运算,例如洛伦兹变换。
图3示出了4矢量点积电路100。将第一矢量提交到电路100作为其构成元素102、104、106和108,并将第二矢量提交为与第一矢量进行点积的构成元素组110、112、114和116。第二元素组110、112、114和116可以是不同的值或可以是相同的值。例如,第二元素组110、112、114和116可以是第二四矢量。将每对对应元素提交到将各元素相乘在一起的相应乘法器。具体而言,在乘法器118中将元素102和110乘在一起,以形成积;将元素104和112在乘法器120中乘在一起以形成积;将元素106和114在乘法器122中乘在一起以形成积;并将元素108和116在乘法器124中乘在一起以形成积。然后将积加在一起。在一些实施例中,可以在单个4输入加法器中将积加在一起。此外或替代地,可以使用顺序加法将积加在一起,顺序加法在每轮加法中将积的数量减半,这可能继续到找到总和,总和表示第一矢量和第二矢量的叉乘。例如,在加法器124中将元素102和110的积以及元素104和112的积加在一起;在加法器126中将元素106和114的积和元素108和116的积加在一起。然后在另一加法器128中将来自加法器124和126的和加在一起。在一些实施例中,电路100包括寄存器130,寄存器130用于确保在处理中使点积计算的相应部分基本同步。寄存器130还确保被计算的数据被正确转移。加法器128的输出为点积132。
在一些实施例中,可以将点积132提交到累加器133以形成运行和。累加器133包括加法器134,该加法器134将最近的点积与运行和136相加。换言之,累加器133接收点积并将其加到所有先前点积,从而可以计算点积的运行和。
图4示出了电路138,电路138可以使用数字信号处理(DSP)块140、142、144和146在可重新配置器件中实现图3的点积电路100。如图所示,DSP块140、142、144和146中的每一个包括加法器(例如,加法器124、126、128和137)和乘法器(例如,乘法器118、120、122和123),对它们进行路由,以提供4矢量点积处理。如图所示,一个或多个DSP块(例如,DSP块144)的一部分(例如,部分148)保持未用。此外,DSP块140、142、144和146之间的路由150相对于DSP块140、142、144和146内部的路由可能很长。这可能是由于在IC 12之内的相对分散位置布置DSP块140、142、144和146。这样的路由可能导致使用电路138的点积计算性能下降。为了减少这样的路由,点积处理可以被粗糙化成较大的宏,也称为原子,其可以被设计成可重新配置器件,以减少DSP块之间的路由。
图5示出了电路158,其包括粗糙化的4矢量点积处理宏,其可以被添加到集成电路,例如可重新配置器件。电路158包括电路100的全部计算。不过,与电路138相反,电路158包括DSP列160,其包括DSP块162、164、166和168。DSP块162、164、166和168位于DSP列160中,以使用可重新配置器件中的通用路由来减少DSP块间的路由,由此增大器件性能和/或面积消耗。具体而言,电路158仅包括单个通用路由170。类似于DSP块140、142、144和146,DSP块162、164、166和168中的每一个包括加法器和乘法器。在图5中所示的4元素矢量点积的特定实施例中,DSP块162的一部分172未被使用。
在一些实施例中,可以将这个部分172用于简单4矢量点积计算外部的计算。例如,图6示出了电路173,电路173使用该部分172来实现累加器以发现点积的运行和。具体而言,加法器147用于经由累加器路由174将先前点积132加到元素102和110的积。然后将先前点积132的这个和与元素104和112的积相加。这一额外的相加以运行和为交换,增加了一个更大程度的延迟。
图7示出了高速缓存累加器电路178,其包括存储先前点积的累加器高速缓存180。累加器高速缓存180包括存储器列182。存储器列182包括统称为存储块184-190的多个存储块184、186、188和190。存储块184-190可以包括任何适当的存储块,例如,公司的M20K存储块。存储块184-190可以存储较大量的和。例如,存储块184-190可以存储两个运行和的任何指数,例如128、256、512、1024、2048等。每个和都可以相对于图5的电路158延迟而增大电路178的延迟,以交换对应于先前点积的额外求和。例如,存储2048个和可以将延迟增大2048。
图8示出了用于使用集成电路计算点积的过程200。过程200包括将电路组织成用于点积处理的点积处理单元(框202)。点积处理单元包括两个或更多数字信号处理快,以减少如果使用个体数字信号处理块时点积处理中使用的通用路由量。点积处理单元是粗糙化点积过程,包括基于使用点积正被处理的矩阵(或个体矢量)大小的若干数字信号处理单元。例如,可以包括针对四矢量(即,具有四个构成元素的矢量)的四个数字信号处理单元,并可以包括针对八矢量的八个数字信号处理单元。这一点积处理单元可以用于产生集成电路(框204),其可以包括例如对可编程逻辑器件或ASIC进行编程。如前所述,粗糙化点积处理使得能够比单独使用的独立配置的数字信号处理单元使用更少通用路由,因为在单独使用的数字信号处理单元中使用更多路由和更长路由。换言之,通过创建可以根据点积矩阵大小设定大小的单个组块,可以提高实现点积处理的集成电路器件的性能。
尽管本公开中阐述的实施例可能容易做出各种修改和替代形式,但具体实施例已经通过举例在附图中示出并已经在本文中更详细描述。然而,应当理解,本公开并非意在限于公开的特定形式。本公开要覆盖落在由以下所附权利要求定义的本公开精神和范围之内的所有修改、等价要件和替代要件。
Claims (20)
1.一种用于使用集成电路计算点积的方法,包括:
将电路组织成用于点积处理的点积处理单元,其中所述点积处理单元包括两个或更多数字信号处理块,其中所述数字信号处理块均包括被配置成对输入相加的加法器和被配置成对输入相乘的乘法器;以及
通过将所述点积处理单元作为可集成单元设置在所述集成电路中,利用所述点积处理单元产生所述集成电路。
2.根据权利要求1所述的方法,其中,若干数字信号处理块对应于被处理矩阵的尺寸。
3.根据权利要求2所述的方法,其中,数字信号处理块的数量等于在所述矩阵的维数中待处理的元素的数量。
4.根据权利要求3所述的方法,其中,所述元素的数量包括矢量中的对象数量。
5.根据权利要求3所述的方法,其中,所述矩阵包括四矢量,并且所述点积处理单元包括四个数字信号处理块。
6.根据权利要求5所述的方法,其中,所述点积处理单元仅包括用于所述集成电路的单个通用路由路径。
7.根据权利要求1所述的方法,其中,将电路组织成所述点积处理单元包括将所述两个或更多数字信号处理块组织成数字信号处理块的列。
8.根据权利要求1或7所述的方法,包括使用累加器将先前点积结果相加。
9.根据权利要求8所述的方法,其中,所述累加器使用所述两个或更多数字信号处理块中未在所述点积处理中被使用的一个数字信号处理块的部分。
10.根据权利要求9所述的方法,包括使用所述两个或更多数字信号处理块中的所述一个数字信号处理块的所述部分在高速缓存存储器中存储所累加的点积。
11.一种集成电路(IC)器件,包括:
点积处理单元,所述点积处理单元被配置成整体位于所述集成电路中,其中,所述点积处理单元包括:
多个数字信号处理单元,每个数字信号处理单元包括:
被配置成对输入求和的加法器;以及
被配置成对输入相乘的乘法器。
12.根据权利要求11所述的IC器件,其中,所述多个数字信号处理单元中的每一个数字信号处理单元中的所述乘法器被配置成对输入到相应数字信号处理单元的两个输入值相乘。
13.根据权利要求12所述的IC器件,其中,所述多个数字信号处理单元中的每一个数字信号处理单元中的所述加法器都被配置成:
将来自同一数字信号处理单元中的所述加法器的积与来自相邻数字信号处理单元的相邻积相加;
将来自相邻数字信号处理单元中的相邻加法器的和相加;或者
保留以用于累加器功能。
14.根据权利要求12所述的IC器件,其中,所述加法器被配置成:
将来自所述多个数字信号处理单元的相邻数字信号处理单元的积相加;
将积与由所述IC器件计算的先前点积相加;或者
将来自所述点积处理单元中的其他加法器的和相加。
15.根据权利要求11所述的IC器件,包括被配置为存储先前点积的存储器高速缓存。
16.根据权利要求11或15所述的IC器件,包括使用所述多个数字信号处理单元的加法器相加,以将先前点积与当前点积或当前部分点积相加。
17.根据权利要求11所述的IC器件,其中,仅使用所述IC器件中可重新配置构造的单个通用路由将所述多个数字信号处理单元布置成列。
18.一种集成电路(IC)器件,包括:
第一数字信号处理单元,所述第一数字信号处理单元位于数字信号处理单元列的第一端,包括:
第一乘法器,所述第一乘法器被配置成对输入到所述第一数字信号处理单元的第一输入对相乘以形成第一积;以及
第一加法器;
第二数字信号处理单元,所述第二数字信号处理单元与所述数字信号处理单元列中的所述第一数字信号处理单元相邻,包括:
第二乘法器,所述第二乘法器被配置成对输入到所述第二数字信号处理单元的第二输入对相乘以形成第二积;以及
第二加法器,所述第二加法器被配置成将来自所述第一数字信号处理单元的值与所述第二积相加作为第一和;
第三数字信号处理单元,所述第三数字信号处理单元与所述数字信号处理单元列中的所述第二数字信号处理单元相邻,包括:
第三乘法器,所述第三乘法器被配置成对输入到所述第三数字信号处理单元的第三输入对相乘以形成第三积;以及
第三加法器,所述第三加法器被配置成将所述第一和与第二和相加以产生点积;以及
第四数字信号处理单元,所述第四数字信号处理单元与所述数字信号处理单元列中的所述第三数字信号处理单元相邻,包括:
第四乘法器,所述第四乘法器被配置成对输入到所述第四数字信号处理单元的第四输入对相乘以形成第二积;以及
第四加法器,所述第四加法器被配置成将所述第三积和所述第四积加到一起。
19.根据权利要求18所述的IC器件,其中,所述第一加法器被配置为将所述第一积与由所述IC器件计算的先前点积相加,以从第一数字信号处理单元产生所述值。
20.根据权利要求18所述的IC器件,其中,所述第一加法器被配置为将所述第一积与先前点积计算的运行和相加,以从所述第一数字信号处理单元产生所述值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210320762.4A CN114943057A (zh) | 2016-09-15 | 2017-09-11 | 基于点积的处理元件 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/266,192 | 2016-09-15 | ||
US15/266,192 US10049082B2 (en) | 2016-09-15 | 2016-09-15 | Dot product based processing elements |
PCT/US2017/050989 WO2018052850A1 (en) | 2016-09-15 | 2017-09-11 | Dot product based processing elements |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210320762.4A Division CN114943057A (zh) | 2016-09-15 | 2017-09-11 | 基于点积的处理元件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109564585A true CN109564585A (zh) | 2019-04-02 |
CN109564585B CN109564585B (zh) | 2023-11-03 |
Family
ID=61559942
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780049809.5A Active CN109564585B (zh) | 2016-09-15 | 2017-09-11 | 基于点积的处理元件 |
CN202210320762.4A Pending CN114943057A (zh) | 2016-09-15 | 2017-09-11 | 基于点积的处理元件 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210320762.4A Pending CN114943057A (zh) | 2016-09-15 | 2017-09-11 | 基于点积的处理元件 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10049082B2 (zh) |
EP (1) | EP3513301A4 (zh) |
CN (2) | CN109564585B (zh) |
WO (1) | WO2018052850A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10853448B1 (en) | 2016-09-12 | 2020-12-01 | Habana Labs Ltd. | Hiding latency of multiplier-accumulator using partial results |
US11328037B2 (en) * | 2017-07-07 | 2022-05-10 | Intel Corporation | Memory-size- and bandwidth-efficient method for feeding systolic array matrix multipliers |
US11321092B1 (en) | 2017-11-08 | 2022-05-03 | Habana Labs Ltd. | Tensor-based memory access |
US10915297B1 (en) * | 2017-11-15 | 2021-02-09 | Habana Labs Ltd. | Hardware accelerator for systolic matrix multiplication |
US11216532B2 (en) | 2018-09-26 | 2022-01-04 | Intel Corporation | Circuitry for high-bandwidth, low-latency machine learning |
KR20220015680A (ko) | 2020-07-31 | 2022-02-08 | 삼성전자주식회사 | 딥러닝 연산 수행 방법 및 장치 |
US12007937B1 (en) | 2023-11-29 | 2024-06-11 | Recogni Inc. | Multi-mode architecture for unifying matrix multiplication, 1×1 convolution and 3×3 convolution |
US12008069B1 (en) | 2023-11-29 | 2024-06-11 | Recogni Inc. | Multi-mode architecture for unifying matrix multiplication, 1×1 convolution and 3×3 convolution |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819520A (zh) * | 2011-05-09 | 2012-12-12 | 阿尔特拉公司 | 具有嵌入式浮点结构的数字信号处理模块 |
US8959136B1 (en) * | 2012-05-08 | 2015-02-17 | Altera Corporation | Matrix operations in an integrated circuit device |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5081573A (en) * | 1984-12-03 | 1992-01-14 | Floating Point Systems, Inc. | Parallel processing system |
US5311459A (en) * | 1992-09-17 | 1994-05-10 | Eastman Kodak Company | Selectively configurable integrated circuit device for performing multiple digital signal processing functions |
US7395298B2 (en) * | 1995-08-31 | 2008-07-01 | Intel Corporation | Method and apparatus for performing multiply-add operations on packed data |
US6032168A (en) * | 1997-08-15 | 2000-02-29 | Motorola, Inc. | Computer system to perform a filter operation using a logarithm and inverse-logarithm converter and methods thereof |
US6891538B1 (en) * | 1999-07-01 | 2005-05-10 | Microsoft Corporation | Dual mode device and method for generating vector cross products or dot products |
US7849119B2 (en) | 2003-12-29 | 2010-12-07 | Xilinx, Inc. | Digital signal processing circuit having a pattern detector circuit |
US7472155B2 (en) | 2003-12-29 | 2008-12-30 | Xilinx, Inc. | Programmable logic device with cascading DSP slices |
US7467175B2 (en) | 2003-12-29 | 2008-12-16 | Xilinx, Inc. | Programmable logic device with pipelined DSP slices |
US20050240646A1 (en) | 2004-04-23 | 2005-10-27 | The Research Foundation Of State University Of New York | Reconfigurable matrix multiplier architecture and extended borrow parallel counter and small-multiplier circuits |
US20080071851A1 (en) * | 2006-09-20 | 2008-03-20 | Ronen Zohar | Instruction and logic for performing a dot-product operation |
US8521800B1 (en) * | 2007-08-15 | 2013-08-27 | Nvidia Corporation | Interconnected arithmetic logic units |
US8631224B2 (en) | 2007-09-13 | 2014-01-14 | Freescale Semiconductor, Inc. | SIMD dot product operations with overlapped operands |
US8612503B2 (en) * | 2010-03-16 | 2013-12-17 | Integrated Device Technology, Inc. | Methods and apparatuses for flexible and high performance digital signal processing |
US9600278B1 (en) * | 2011-05-09 | 2017-03-21 | Altera Corporation | Programmable device using fixed and configurable logic to implement recursive trees |
US9348795B1 (en) * | 2013-07-03 | 2016-05-24 | Altera Corporation | Programmable device using fixed and configurable logic to implement floating-point rounding |
-
2016
- 2016-09-15 US US15/266,192 patent/US10049082B2/en active Active
-
2017
- 2017-09-11 CN CN201780049809.5A patent/CN109564585B/zh active Active
- 2017-09-11 WO PCT/US2017/050989 patent/WO2018052850A1/en unknown
- 2017-09-11 CN CN202210320762.4A patent/CN114943057A/zh active Pending
- 2017-09-11 EP EP17851375.0A patent/EP3513301A4/en not_active Withdrawn
-
2018
- 2018-08-13 US US16/102,431 patent/US10339201B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819520A (zh) * | 2011-05-09 | 2012-12-12 | 阿尔特拉公司 | 具有嵌入式浮点结构的数字信号处理模块 |
US8959136B1 (en) * | 2012-05-08 | 2015-02-17 | Altera Corporation | Matrix operations in an integrated circuit device |
Also Published As
Publication number | Publication date |
---|---|
EP3513301A4 (en) | 2020-05-06 |
US10049082B2 (en) | 2018-08-14 |
US10339201B1 (en) | 2019-07-02 |
US20180074996A1 (en) | 2018-03-15 |
CN109564585B (zh) | 2023-11-03 |
CN114943057A (zh) | 2022-08-26 |
WO2018052850A1 (en) | 2018-03-22 |
EP3513301A1 (en) | 2019-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109564585A (zh) | 基于点积的处理元件 | |
Marshall et al. | A reconfigurable arithmetic array for multimedia applications | |
US6567834B1 (en) | Implementation of multipliers in programmable arrays | |
US11899746B2 (en) | Circuitry for high-bandwidth, low-latency machine learning | |
CN112602054A (zh) | 乘法器累加器电路、用于乘法累加的逻辑瓦片架构和包括逻辑瓦片阵列的ic | |
Zha et al. | Reconfigurable in-memory computing with resistive memory crossbar | |
JP4150748B2 (ja) | プログラマブル・ゲート・アレイの操作方法 | |
CN110780843A (zh) | 高性能fpga加法 | |
Lin et al. | A fine-grain dynamically reconfigurable architecture aimed at reducing the FPGA-ASIC gaps | |
US11163530B2 (en) | Programmable-logic-directed multiplier mapping | |
US11128302B2 (en) | Configurable processor doublet based on three-dimensional memory (3D-M) | |
Lazzari et al. | A new quaternary FPGA based on a voltage-mode multi-valued circuit | |
CN115878074A (zh) | 用于专门的过程块中的稀疏性操作的系统和方法 | |
Sharma et al. | Development of a place and route tool for the RaPiD architecture | |
Hinkelmann et al. | On the design of reconfigurable multipliers for integer and Galois field multiplication | |
Hoare et al. | An 88-way multiprocessor within an FPGA with customizable instructions | |
Ye | Field-programmable gate array architectures and algorithms optimized for implementing datapath circuits | |
US11768663B1 (en) | Compaction of multiplier and adder circuits | |
Cevrero et al. | Architectural improvements for field programmable counter arrays: enabling efficient synthesis of fast compressor trees on FPGAs | |
Hussain et al. | Exploring FPGA Logic Block Architecture for Reduced Configuration Memory. | |
Thorolfsson et al. | Low-power hypercube divided memory FFT engine using 3D integration | |
US20230239136A1 (en) | Pipelined Galois Counter Mode Hash Circuit | |
Warrier et al. | Reconfigurable DSP block design for dynamically reconfigurable architecture | |
US20220057994A1 (en) | Configurable MAC Pipelines for Finite-Impulse-Response Filtering, and Methods of Operating Same | |
Mo et al. | Structured Digital Design |
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 |