一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

旁路硬件乘法器中的零值乘法的制作方法

2021-11-09 21:17:00 来源:中国专利 TAG:

旁路硬件乘法器中的零值乘法
1.发明背景
2.使用神经网络可以解决一整类复杂的人工智能问题。许多神经网络需要的一种常见操作是乘法运算,例如,在执行矩阵运算时的乘法运算。由于人工智能问题通常是计算和数据密集型的,所以硬件解决方案通常有利于提高性能。创建一个具有高计算性能和低功耗的硬件平台是一项技术挑战。因此,需要不引入显著的硬件复杂性和费用的针对能量高效、高吞吐量矩阵乘法方案的技术。
3.附图简述
4.在以下详细描述和附图中公开了本发明的各种实施例。
5.图1是示出使用神经网络解决人工智能问题的系统的实施例的框图。
6.图2是示出使用神经网络解决人工智能问题的处理元件的实施例的框图。
7.图3是示出用于在硬件中执行乘法的过程的实施例的流程图。
8.图4是示出用于旁路(bypass)零结果乘法的系统的实施例的框图。
9.图5a和图5b是示出使用数据信号来控制零结果乘法的旁路的示意图。
10.图6是示出旁路零结果乘法的过程的实施例的流程图。
11.详细描述
12.本发明可以以多种方式实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,例如被配置为执行存储在耦合到处理器的存储器上和/或由该存储器提供的指令的处理器。在本说明书中,这些实现或者本发明可以采取的任何其他形式可以被称为技术。通常,在本发明的范围内,可以改变所公开的过程的步骤顺序。除非另有说明,否则被描述为被配置成执行任务的诸如处理器或存储器的组件可以被实现为在给定时间被临时配置为执行任务的通用组件或者被制造为执行任务的特定组件。如本文所使用的,术语“处理器”指的是被配置成处理数据(例如计算机程序指令)的一个或更多个设备、电路和/或处理核心。
13.下面提供了本发明的一个或更多个实施例的详细描述以及示出本发明原理的附图。结合这些实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限定,并且本发明包括许多替代、修改和等同物。为了提供对本发明的全面理解,在以下描述中阐述了许多具体细节。这些细节是出于示例的目的而提供的,并且本发明可以根据权利要求来实施,而不需要这些具体细节中的一些或全部。为了清楚起见,没有详细描述在与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
14.公开了一种用于提高硬件乘法运算效率的设备。所公开的设备包括:第一操作数寄存器,其被配置为存储第一操作数值;第二操作数寄存器,其被配置为存储第二操作数值;乘法单元,其被配置为至少将第一操作数值与第二操作数值相乘;以及硬件逻辑组件,其被配置为:检测是否提供了零值,并且响应于检测到提供了零值,使得至少第一操作数寄存器的更新被禁用,并且使得第一操作数值与第二操作数值相乘的结果是零值结果。所公开的设备的实际和技术益处包括提高了乘法运算的效率和性能,例如,通过不浪费功率来执行作为零结果乘法的乘法。
15.许多神经网络中的一个常见组件是快速、高效的硬件矩阵乘法器。通常,矩阵乘法器是其上实现神经网络硬件的集成电路的总功耗的主要来源。因为许多神经网络在激活时接收到很大一部分零(以及一些零权重),所以许多乘法不需要完全执行。所公开的技术可以通过旁路其中(乘法的)至少一个输入为零的乘法来降低硬件矩阵乘法器的功耗。如果至少一个输入为零,则可以在不执行任何计算的情况下确定乘法结果为零。
16.在各种实施例中,硬件矩阵乘法器包括多个(a plurality of)点积模块,每个点积模块计算第一输入矩阵(a)的行与第二矩阵(b)的列的点积。在一些实施例中,每个点积模块包括一层输入寄存器(其存储a和b的元素),并且耦合到连接到加法器树的一系列硬件乘法器(本文也称为乘法器和乘法单元)。在每个周期中,可以加载b的新列,然后可以将其广播给所有的点积模块,以便并行地确定与所有a行的点积。在不旁路零值结果的硬件乘法器中,如果b的新元素为零,则发生乘法(就像b的新元素是非零值一样)。尽管乘法的最终结果已知为零,但由于逻辑门的切换而消耗功率。
17.在各种实施例中,通过对硬件乘法器进行特定的修改来避免在已知具有零值结果的乘法中因逻辑门的切换而导致的功率浪费。在各种实施例中,在输入寄存器中存储a和/或b的新元素之前,确定这些元素之一是否为零。在一些实施例中,只检查元素之一以确定它是否是零,这可能更有效,因为零在一个矩阵中比在另一个矩阵中更频繁(例如,在激活中比在权重中更频繁)。响应于检测到提供了零值,可以发送信号以使输入寄存器不被更新,这避免了浪费功率来切换寄存器的逻辑门。在一些实施例中,使用具有使能或禁用信号的多路复用器或触发器来指示是否应该更新输入寄存器。在各种实施例中,如果新加载的元素为零,则“为零”信号被设置为高。“为零”信号可以被路由到硬件乘法器的输出逻辑。“为零”信号的高值导致硬件乘法器的当前输出不被用作最终结果(硬件乘法器的当前输出将是用b的先前的元素计算的输出,因为输入寄存器不会被更新)。替代地,零值被用作最终结果。下面进一步详细描述这种输出逻辑的示例实现。
18.图1是示出使用神经网络解决人工智能问题的系统的实施例的框图。例如,系统100可被应用以使用神经网络来解决诸如图像识别和推荐系统匹配的问题。在所示的示例中,系统100包括多个处理元件,诸如通过总线151连接到存储器单元131的处理元件101、111和121。系统100可以包括更少或更多的处理元件。例如,处理元件的数量可以根据预期的计算和数据要求而按比例增加(scaled up)或减少。在一些实施例中,诸如101、111和121的处理元件经由总线151而彼此通信连接和/或通信地连接到存储器单元131。例如,存储器单元可以是末级高速缓存(last level cache,llc)和/或可以使用静态随机存取存储器(sram)来实现。系统100可以利用每个处理元件来执行矩阵计算运算,例如包括整数和浮点乘法的矩阵乘法。
19.在一些实施例中,诸如总线151的通信总线用于传输处理元件指令和可选的指令参数(argument)。例如,矩阵运算和矩阵操作数可以经由总线151传输到处理元件,诸如处理元件101、111和/或121。附加的处理元件指令可以包括乘法运算指令,例如整数或浮点乘法运算指令。在各种实施例中,可以使用系统100通过将问题细分成较小的子问题来解决大型的复杂人工智能问题。较小的子问题可以分派和分配给不同的处理元件。较小子问题的结果可以合并,以确定较大和更复杂问题的解。在某些情况下,子问题是并行地和/或在流水线级(pipelined stage)解决的。在一些情况下,来自第一处理元件的结果作为输入被馈
送到第二处理元件。
20.在一些实施例中,系统100的每个处理元件至少包括控制逻辑单元和矩阵计算引擎。如关于处理元件111所示,处理元件111包括控制逻辑113和矩阵计算引擎115。处理元件101和121被显示为虚线框,并且没有示出处理元件101和121的一些细节。在一些实施例中,处理元件的控制逻辑单元用于控制处理元件的操作,包括处理元件的矩阵计算引擎的操作。在所示的示例中,控制逻辑113处理经由通信总线151导向处理元件111的指令。例如,处理元件指令可以包括整数或浮点乘法指令。在一些实施例中,控制逻辑113确定如何使用矩阵计算引擎115执行整数或浮点乘法,包括如何确定整数或浮点数操作数的分量。在一些实施例中,控制逻辑113经由总线151接收处理元件指令,并且可以用于启动从存储器131检索数据和/或向存储器131写入数据。
21.在一些实施例中,矩阵计算引擎115是硬件矩阵计算引擎,用于执行矩阵运算,包括与整数乘法、浮点乘法、矩阵乘法和/或卷积运算相关的运算。例如,矩阵计算引擎115可以是用于执行要求整数或浮点乘法和加法运算的点积运算的矩阵引擎。在一些实施例中,支持的卷积运算包括逐深度(depthwise)、逐组(groupwise)、正常(normal)、规则(regular)、逐点(pointwise)、二维和/或三维卷积等。例如,矩阵计算引擎115可以接收第一输入矩阵(例如大图像的子集)以及接收第二输入矩阵(例如滤波器、核(kernel)或卷积矩阵等)以应用于第一输入矩阵。矩阵计算引擎115可用于使用两个输入矩阵执行卷积运算,以确定结果输出矩阵。在一些实施例中,矩阵计算引擎115包括输入和/或输出缓冲器,用于加载输入数据矩阵或向量和写出结果数据矩阵或向量。在一些实施例中,矩阵计算引擎115包括多个向量单元,并且每个向量单元包括向量乘法单元和向量加法器单元。
22.图2是示出使用神经网络解决人工智能问题的处理元件的实施例的框图。在所示的示例中,处理元件201通信连接到总线251。处理元件201包括控制逻辑203和矩阵计算引擎205。矩阵计算引擎205包括向量单元211、221、231和241。矩阵计算引擎205可以包括更多或更少的向量单元。例如,矩阵计算引擎可以包括32个向量单元,每个向量单元能够处理两个32元素向量。在各种实施例中,每个向量单元包括向量乘法单元和向量加法器单元。在所示的示例中,向量单元211包括向量乘法单元213和向量加法器单元215。为简单起见,向量单元221、231和241的向量乘法单元和向量加法器单元未示出,但功能类似于向量乘法单元213和向量加法器单元215。在一些实施例中,处理元件201是图1的处理元件101、111和/或121。在一些实施例中,控制逻辑203和矩阵计算引擎205分别是图1的控制逻辑113和矩阵计算引擎115。
23.在一些实施例中,矩阵计算引擎205接收输入矩阵(或向量)操作数以执行矩阵运算。例如,矩阵计算引擎205可以接收对应于图像的一部分的一个或更多个数据输入向量和对应于滤波器矩阵的至少一个权重输入向量。输入向量(诸如输入数据和权重向量)可以作为参数传递给向量单元,诸如矩阵计算引擎205的向量单元211、221、231和241之一。例如,矩阵计算引擎205的向量单元可以使用数据输入向量和权重输入向量对来确定矩阵结果,诸如点积结果。在一些实施例中,矩阵计算引擎205包括32个向量单元。每个向量单元可以将两个32元素向量作为参数,并且每个向量单元可以确定32元素向量结果。在一些实施例中,该结果是单元素结果,并且跨越矩阵计算引擎205的所有向量单元获取结果。在一些实施例中,该结果是输出向量结果。在各种实施例中,输出结果通过跨多个向量单元运算累加
部分向量结果来确定。例如,乘法运算可以分解为多个乘法运算,并将结果相加。在各种实施例中,矩阵计算引擎205的向量单元的数量可以变化,向量单元长度和元素大小也可以变化。例如,元素可以是4位、8位、16位、1字节、2字节、4字节或其他合适的大小。根据向量单元的能力,可以在本地支持不同的元素大小。
24.在一些实施例中,矩阵计算引擎205的每个向量单元(诸如向量单元211、221、231或241)接收两个向量操作数,并且可以执行一个或更多个向量运算。例如,向量单元可以通过将第一输入向量的每个元素与第二输入向量的对应元素相乘来计算多个乘法运算的结果。所得到的乘法结果可以被累加并用于将来的运算,诸如对部分结果求和。例如,向量单元结果可以被累加,并用作由向量单元执行的后续运算的操作数。
25.在一些实施例中,矩阵计算引擎205的每个向量单元,例如向量单元211、221、231或241,包括向量乘法单元和向量加法器单元。每个向量乘法单元,例如向量乘法单元213,被配置为将经由输入向量操作数接收的相应元素相乘。在一些实施例中,结果是相乘结果的向量。例如,对于两个32位输入向量,向量乘法单元的结果是32位乘法结果的向量。来自第一输入向量的第一元素与第二输入向量的第一元素相乘。类似地,来自第一输入向量的第二元素与第二输入向量的第二元素相乘。在各种实施例中,相乘结果的向量被传递到向量单元的向量加法器单元。例如,向量乘法单元213可以将其乘法结果传递给向量加法器单元215。向量加法器单元215可用于加法运算,诸如对部分结果求和、至少部分计算点积结果或其他适当的功能。
26.在一些实施例中,向量单元的每个向量加法器单元(诸如向量加法器单元215)被配置为使用来自输入向量的元素来计算加法运算。例如,向量加法器单元215计算来自由向量乘法单元213计算的相乘结果的向量的选定元素的和。在一些实施例中,向量加法器单元的结果是用作相应向量乘法单元的输入的向量的点积。在各种实施例中,每个向量加法器单元(诸如向量加法器单元215)被实现为加法器树。例如,加法器树的顶层可以添加成对的元素以确定一组部分和,诸如添加元素0和1以确定第一部分和,以及添加元素2和3以确定第二部分和,等等。每个后续层可以对来自前一层的成对的部分和进行求和,直到最后一层计算出最终结果和。在一些实施例中,指定的部分和可以被输出作为加法器单元的结果。在各种实施例中,每个加法器树并行计算部分和,以得到结果和。并行运算显著提高了对数字向量进行求和的效率。在各种实施例中,多个向量单元可以并行运算以并行计算多个结果,从而显著提高矩阵计算引擎205的吞吐量。
27.在一些实施例中,矩阵计算引擎205包括一个或更多个累加器,例如,用于累加每个向量单元的结果。在一些实施例中,累加器被适当地包括作为向量单元的一部分或者作为矩阵计算引擎205的一部分。累加器可以用于对向量单元的多次迭代所计算的结果进行求和。例如,来自向量单元的一次迭代的结果可以存储在累加器中,并添加到向量单元的下一次迭代的结果中。在一些实施例中,累加器是向量累加器。例如,可以基于矩阵计算引擎205的输出向量的大小来确定累加器的大小。在各种实施例中,一旦矩阵处理完成,累加器结果通过总线251被推送到存储器。
28.图3是示出用于在硬件中执行乘法的过程的实施例的流程图。在图3的过程中,可以执行使用各种格式的乘法操作数的整数或浮点乘法运算。在各种实施例中,处理元件处理多个整数或浮点数格式。在一些实施例中,响应于在处理元件的控制单元(诸如图1的处
理元件101、111和/或121和/或图2的处理元件201)处接收到乘法运算指令,执行图3的过程。
29.在301,接收乘法处理器指令。乘法运算指令可以指定两个整数或浮点数。在一些实施例中,指令是向量指令。例如,可以接收两个操作数向量,并且第一向量的每个元素将与第二向量的相应元素相乘。
30.在303,识别操作数格式。在各种实施例中,处理元件支持多种不同的整数和浮点格式。在一些实施例中,格式由乘法处理器指令指定。例如,乘法处理器指令中的标志可以标识整数格式的类型或浮点格式的类型。
31.在305,执行乘法。例如,执行两个整数或浮点数的乘法。作为另一个示例,也可以执行整数或浮点数的两个向量的乘法。
32.在307,提供乘法结果。例如,可以将结果提供给下一步骤,以解决人工智能问题。在一些实施例中,该结果用于求解神经网络的下一层和/或与来自其他处理元件的结果相结合。在一些实施例中,该结果被写回到存储器,诸如图1的存储器131,在那里该结果可以被后续操作利用。
33.图4是示出用于旁路零结果乘法的系统的实施例的框图。在一些实施例中,系统400包括在图2的向量乘法单元213中。在各种实施例中,系统400是被配置为旁路零结果乘法的硬件乘法器系统。在各种实施例中,向量乘法单元,例如图2的向量乘法单元213,包括系统400的多个实例。
34.在所示的示例中,系统400接收操作数a 402和操作数b 404作为输入,并产生结果416作为最终输出。在所示的示例中,系统400包括零检测器406、操作数a寄存器408、操作数b寄存器410、乘法单元412和输出逻辑414。在各种实施例中,操作数a 402和操作数b 404是整数或浮点数。整数格式的示例包括8位、16位、32位、有符号、无符号等格式。浮点格式的示例包括半精度、单精度、脑浮点(brain floating point)等。在各种实施例中,操作数a 402将与操作数b 404相乘以获得结果416。
35.在所示的示例中,操作数a寄存器408存储操作数a 402,操作数b寄存器410存储操作数b 404。在各种实施例中,操作数a寄存器408和操作数b寄存器b 410是硬件寄存器(例如,其中每个寄存器包括多个触发器电路)、暂存存储器位置或另一个适当的存储器。操作数a寄存器408和操作数b寄存器410耦合到乘法单元412。乘法单元412是硬件乘法器,其基于存储在操作数a寄存器408和操作数b寄存器410中的输入产生乘法结果。在一些实施例中,乘法单元412被配置为(当操作数a寄存器408和操作数b寄存器410以整数格式存储数字时)处理整数乘法。乘法单元412还可以被配置成(当操作数a寄存器408和操作数b寄存器410以浮点格式存储数字时)处理浮点乘法。
36.如果操作数a寄存器408或操作数b寄存器410中的至少一个存储零值,则乘法结果必然是零值结果(无需执行计算)。在各种实施例中,操作数a 402和操作数b 404的新值被连续提供给系统400,使得乘法结果被连续产生。在每个周期(例如,当系统400在每个时钟周期执行一次乘法时的时钟周期),操作数a寄存器408和操作数b寄存器410通常被更新(加载新的操作数值),以反映要在该周期执行的乘法运算。然而,如果在新周期期间至少一个新操作数具有零值,则操作数a寄存器408和操作数b寄存器410不需要更新。换句话说,如果检测到乘法单元412的至少一个零输入,则操作数a寄存器408和操作数b寄存器410不被更
新,这由于没有激活用于更新寄存器的开关电路(例如逻辑门)而节省了功率。这降低了与使用乘法单元412来执行乘法运算相关联的总功耗。
37.在所示的示例中,零检测器406确定操作数a 402是否具有零值。在一些实施例中,零检测器406至少部分地使用数字比较器来实现,该数字比较器检测操作数a 402是否等于零。数字比较器可以使用多个数字位比较器来实现,其中每个数字位比较器使用数字逻辑门来实现。在各种实施例中,响应于零检测器406检测到零值,零检测器406向操作数a寄存器408和操作数b寄存器410发送禁用信号,以使操作数a寄存器408和操作数b寄存器410的更新被禁用,并向输出逻辑414发送另一数据信号,以使结果416为零值结果。在所示的例子中,只检查操作数a 402以确定它是否为零。也可以通过在操作数b 404和操作数b寄存器410之间的数据路径中放置另一个零检测器来检查操作数b 404。如果操作数b 404被检查,响应检测到操作数b 404具有零值,操作数a寄存器408和操作数b寄存器410的更新可以被禁用。在许多情况下,如果零在一组操作数中(例如,在对应于操作数a 402的激活矩阵中的激活)比在另一组操作数中(例如,对应于操作数b 404的权重矩阵中的权重)更频繁,则仅检查一个操作数可能更有效。在这种情况下,只检查一个操作数可以节省功率,因为只有一个零检测器消耗功率。
38.在所示的例子中,输出逻辑414通信连接到零检测器406。在各种实施例中,响应于来自零检测器406的、零被提供的信号,输出逻辑414使得结果416是零值结果,并且响应于来自零检测器406的、零没有被提供的信号,输出逻辑414使得结果416是作为乘法单元412输出的操作数a402和操作数b 404的乘积的乘法结果。在一些实施例中,输出逻辑414包括多个与门,其中每个与门的输入是乘法单元412的输出位和来自零检测器406的数据信号,其中当检测到零时数据信号为低,当没有检测到零时数据信号为高。因此,当零检测器406检测到操作数a 402为零时,结果416全部为零位,并且当零检测器406没有检测到操作数a 402为零时,结果416具有乘法单元412的输出位。也可以使用其他逻辑门组合和/或多路复用器设计来代替使用与门。
39.在图4所示的示例中,示出了组件之间的部分通信路径。可能存在其他通信路径,并且图4的示例已被简化以清楚地说明该示例。例如,没有明确示出来自零检测器406的禁用寄存器更新的信号。在各种实施例中,零检测器406通信地连接到操作数a寄存器408和操作数b寄存器410,使得禁用信号可以被发送到两个寄存器。尽管为了简化图表,只示出了组件的单一实例,但是图4中示出的任何组件的附加实例都可能存在。图4中所示的组件和连接的数量仅仅是说明性的。图4中未示出的组件也可能存在。
40.图5a和图5b是示出使用数据信号来控制零结果乘法的旁路的示意图。图5a和图5b示出了当使用旁路零结果乘法的系统时,操作数和结果储存器(例如,寄存器)的内容如何不同。图5a的例子示出了在没有使用用于旁路零结果乘法的系统的情况下在两个连续周期502和504(例如,两个连续时钟周期)期间操作数的乘法。在周期502期间,要执行的乘法是2
×
4=8。操作数a储存器加载值2,操作数b储存器加载值4,两个操作数相乘结果为8。在各种实施例中,使用乘法单元将操作数相乘。在周期504期间,要执行的乘法是0x 5=0。操作数a储存器加载值0,操作数b储存器加载值5,两个操作数相乘为0。
41.图5b的示例示出了对指示是否检测到操作数值为零的数据信号的使用。在图5b的例子中,使用了用于旁路零结果乘法的系统。在一些实施例中,用于旁路零结果乘法的系统
是图4的系统400。在一些实施例中,要相乘的操作数是图4的操作数a 402和操作数b 404。在图5b的示例中,在连续的周期512和514(例如,两个连续的时钟周期)期间,要执行的乘法与在图5a的周期502和504期间的相同(2
×
4=8,然后0
×
5=0)。零检测信号516是指示在一个周期期间是否检测到至少一个零操作数的数据信号。在一些实施例中,零检测信号516由图4的零检测器406产生。在周期512期间,要相乘的操作数(2和4)都没有零值;因此,信号516在周期512期间为低。与图5a的周期502一样,在周期512期间,操作数a储存器加载值2,操作数b储存器加载值4,并且两个操作数的乘法结果是8。在一些实施例中,操作数a储存器是图4的操作数a寄存器408,操作数b储存器是图4的操作数b寄存器410,并且使用图4的乘法单元412生成乘法结果。
42.在周期514期间,要相乘的操作数之一(0和5)具有零值;因此,信号516在周期514期间为高。在各种实施例中,该高信号导致操作数a储存器和操作数b储存器不更新它们的内容(与图5a的周期504所示相反)。在所示的例子中,在周期514期间,操作数a储存器和操作数b储存器的内容没有更新。换句话说,在所示的例子中,在周期514期间,操作数a储存器仍然存储来自周期512的值2,操作数b储存器仍然存储来自周期512的值4。然而,乘法的结果仍然是正确的值0(与图5a的周期504相同)。在各种实施例中,零检测信号516由输出逻辑接收,这使得当零检测信号516为高时,乘法的最终结果为零。在一些实施例中,输出逻辑是图4的输出逻辑414。如图5b所示,旁路零结果乘法的一个好处是,由于不像以前那样频繁地更新操作数储存器(例如寄存器)而降低了功耗,但仍能获得正确的乘法结果。
43.图6是示出旁路零结果乘法的过程的实施例的流程图。在一些实施例中,图6的过程由图4的系统400执行。在一些实施例中,图6的过程的至少一部分在图3的305中执行。
44.在602,确定是否提供了零值。在一些实施例中,检查接收的单个操作数(例如,图4的操作数a 402)。还可以检查一个以上的操作数(例如,除了操作数a 402之外,还检查图4的操作数b 404),并确定操作数中的至少一个是否具有零值。在一些实施例中,零检测器406确定是否提供了零值。
45.如果在602确定没有提供零值,则在604更新操作数寄存器值。在一些实施例中,操作数寄存器是图4的操作数a寄存器408和操作数b寄存器410。操作数寄存器加载了要相乘的当前操作数值。因为没有提供零值,所以输出已经知道是不为零(或任何其他数字,一般来说)。操作数寄存器的内容需要更新,并且乘法单元需要执行乘法来确定乘法结果。
46.在606,输出乘法单元的结果。在一些实施例中,输出图4的乘法单元412的结果。需要由乘法单元执行乘法,因为乘法结果已经知道不为零。在一些实施例中,响应于确定没有提供零值操作数,图4的输出逻辑414使得乘法单元412的结果被选择作为要提供的最终结果(例如,图4的结果416)。
47.如果在602,确定已经提供了零值,则在608,禁用更新至少一个操作数寄存器。在各种实施例中,禁用更新一个以上的操作数寄存器(例如,禁用更新图4的操作数a寄存器408和操作数b寄存器410)。一个或更多个寄存器不需要被更新,因为如果确定已经提供了零值,则乘法的结果已知为零,而不需要加载寄存器并使用更新的寄存器的内容来执行乘法。在一些实施例中,多路复用器和/或基本数字逻辑门用于实现禁用信号。
48.在610,输出零值结果。不需要乘法单元(例如,图4的乘法单元412)的乘法结果,因为已经知道乘法结果为零。在一些实施例中,图4的输出逻辑414响应于确定已经提供了零
值操作数,输出零值结果(例如,提供图4的结果416)。
49.尽管为了清楚理解的目的已经详细描述了前述实施例,但是本发明不限于所提供的细节。有许多实现本发明的替代方式。所公开的实施例是说明性的,而不是限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献