用于执行向量计算指令的方法、装置和系统的制作方法

文档序号:6485352阅读:143来源:国知局
用于执行向量计算指令的方法、装置和系统的制作方法
【专利摘要】用于通过处理器执行向量指令的技术和机构。在一实施例中,执行向量定义指令以执行与将第一向量设为参考向量相关联的操作,这些操作导致向量乘法信息被存储在查找表中。在另一实施例中,随后执行向量乘法指令以基于存储在查找表中的向量乘法信息来执行向量乘法计算。
【专利说明】用于执行向量计算指令的方法、装置和系统
【背景技术】
[0001]1.发明领域
[0002]各实施例一般涉及用于在计算机系统的处理器中执行向量计算的技术。更具体地,特定实施例提供一个向量指令的执行以使得初步向量计算可供后续向量指令的执行来访问。
[0003]2.【背景技术】
[0004]集成电路(IC)制造的改进已经允许更小和/或更紧密的集成处理器架构。这些处理器中的电路一般倾向于对功率使用的低效日益敏感。因此,功率效率的逐步改进往往导致这些处理器中的逐渐重要的性能增益。
[0005]往往需要计算机平台中的逐渐处理器密集的执行的连续数代的较大、更复杂的计算环境(例如,在线游戏、流传输、云联网、虚拟化等)对这些增益的需求日益增加。因此,由于要求形状因子持续变小的平台支持持续变大的处理负载,因此将需要对功率使用的进一步改进。
[0006]附图简述
[0007]以解说方式且非限定地在如下附图中示出本发明的多个实施例,在附图中:
[0008]图1是示出根据实施例的用于传递向量指令的计算机系统的元件的框图。
[0009]图2是示出根据实施例的用于执行向量指令的处理器的元件的框图。
[0010]图3是示出根据实施例的用于执行向量指令的方法的元素的流程图。
[0011]图4是示出根据实施例的用于执行向量指令的处理器的元件的框图。
[0012]图5是示出根据实施例来执行的向量计算操作的时序图。
[0013]详细描述
[0014]此处所讨论的各实施例多方面地提供用于提高向量计算(例如,其中一个操作数可以跨多个向量计算保持不变)的实现中的能效的技术和/或机制。这些技术和/或机制例如可以适用于图形、数字信号处理和/或多媒体应用,但特定实施例不限于此。
[0015]在一实施例中,处理器可支持(例如作为指令集中的机器指令)此处被称为向量定义(“dot-vdef”)的第一种类型的向量指令,以供处理器将某一操作数向量设为当前参考向量。dot-vdef指令的执行例如可包括处理器计算一个或多个点积值的集合并将这一集合加载到处理器的查找表中。这种查找表信息可变得可供稍后访问一例如在处理器对某一其它向量指令的执行期间。例如,处理器可支持此处被称为向量乘法(“dot-vmul”)的第二种类型的向量指令,以供处理器返回等于当前参考向量与该dot-vmul指令的某一操作数的点积的值。
[0016]作为说明,可执行“dot-vdef X”指令以定义某一向量X将被用作当前参考向量。执行该“dot-vdef X”指令可包括预计算一个或多个点积并将其加载到查找表中一例如向量X和相应的二元向量的每 一个点积。后续的“dot-vmul Y”指令可参考(例如,隐含参考)当前参考向量,其中该“dot-vmul Y”指令被解码为返回等于点积X.Y的值的指令。执行该“dot-vmul Y”指令可包括处理器计算X ?Y的算术逻辑一例如基于由最近的dot_vref指令“dot-vdef X”先前存储在查找表中的预计算的点积中的一个或多个。向量Y中的信息可确定哪些预计算的点积有助于X-Y的计算。例如,向量Y可用于在执行“dot-vmul Y”指令期间寻址查找表中的一个或多个条目。
[0017]使用这种dot-vdef指令类型和/或dot_vmul指令类型的使用例如可以直接适用于定点操作数的标量乘法或点积乘法和/或间接适用于被构建在这种标量或点积乘法上的更复杂的操作。确定和存储关于参考向量的查找表信息的处理器资源成本(例如,时间、能量、硬件等)可通过对多个后续向量乘法运算重复使用这种信息来分摊。另选地或另外地,可使用尺寸可变查找表、多个查找表和/或多端口查找表来支持dot-vdef和/或dot-vmul 执行。
[0018]图1示出了根据一个实施例的用于执行向量计算的说明性计算机平台100的元件。计算机平台100例如可以包括个人计算机的硬件平台,诸如台式计算机、膝上型计算机、手持式计算机(例如平板、掌上计算机、蜂窝电话、媒体播放器等)和/或其它这样的计算机系统。另选地或另外地,计算机平台100可允许作为服务器、工作站或其它这样的计算机系统来操作。或者,各实施例可以在一个或多个嵌入式应用中(例如,汽车、移动网络基站等的数据处理系统中)实现,其中例如嵌入式处理器实现数字信号处理或者涉及大量向量计算的各种其它应用中的任一个。
[0019]在一实施例中,计算机平台100包括由说明性总线101表示的用于传递信息的至少一个互连以及用于处理这些信息的处理器109 (例如中央处理单元)。处理器109可包括复杂指令集计算机(CISC)型架构、精简指令集计算机(RISC)型架构和/或各种处理器架构类型中的任一种的功能。处理器109可以经由总线101与计算机平台100的一个或多个其它组件耦合。作为说明而非限制,计算机平台100可包括由耦合到总线101的说明性主存储器104表示的随机存取存储器(RAM)或其它动态存储设备,以存储将由处理器109执行的信息和/或指令。主存储器104还可用于存储处理器109执行指令期间的临时变量或其它中间信息。计算机平台100可另外地或另选地包括只读存储器(ROM) 106和/或其它静态存储设备(例如其中R0M106经由总线101耦合到处理器109),以便为处理器109存储信息和/或指令。
[0020]在一实施例中,计算机平台100另外地或另选地包括例如经由总线101耦合到处理器109的数据存储设备107 (例如,磁盘、光盘和/或其它机器可读介质)。数据存储设备107例如可包括将在处理器109上操作和/或以其它方式由处理器109访问的指令或其它信息。在一实施例中,处理器109可基于存储在主存储器104、R0M106、数据存储设备107或任何其它合适的数据源中的操作数信息来执行向量计算。
[0021]计算机平台100可另外地或另选地包括用于向计算机用户显示信息的显示设备121。显示设备121例如可包括帧缓冲器、专用图形渲染设备、阴极射线管(CRT)、平板显示器和/或类似物。另外地或另选地,计算机平台100可包括输入设备122 —例如包括用于接收用户输入的字母数字和/或其它键。另外地或另选地,计算机平台100可包括诸如鼠标、滚动球、笔、触摸屏或光标方向键等光标控制设备123,以便向处理器109传递位置、选择或其它光标信息和/或控制例如显示设备121上的光标移动。
[0022]计算机平台100可另外地或另选地具有诸如打印机等复印设备124,以便将指令、数据或其它信息打印在诸如纸张、胶片或相似类型的介质等介质上。另外地或另选地,计算机平台100可包括诸如话筒或扬声器等声音记录/回放设备125,以便接收和/或输出音频信息。计算机平台100可另外地或另选地包括诸如静态或运动相机等数字视频设备以数字化图像。
[0023]在一实施例中,计算机平台100包括或耦合到用于将计算机平台100链接到一个或多个网络(未示出)(例如包括专用存储区域网络(SAN)、局域网(LAN)、广域网(WAN)、虚拟LAN(VLAN)、因特网等)的网络接口 190。作为说明而非限制,网络接口 190可包括网络接口卡(NIC)、诸如偶极天线等天线或无线收发机中的一个或多个,但本发明的范围在这方面不受限。
[0024]处理器109可支持与各种常规指令集(例如,与现有处理器所使用的x86指令集兼容的指令集)中的任一种中的那些指令相似的指令。作为说明而非限制,处理器109可支持与如由加利福尼亚圣克拉拉市的英特尔公司定义的IA?英特尔架构中所支持的部分或全部操作相对应的操作(参见可从美国加利福尼亚州圣克拉拉市的英特尔公司的万维网developer, intel.com上获得的“ IA_32Intel.RTM.架构软件开发者手册卷2:指令集参考”)。结果,除了特定实施例的操作之外,处理器109可支持与例如现有的x86操作相对应的一个或多个操作。
[0025]图2示出根据一实施例的用于执行向量指令的处理器200的某些元件。处理器200可以耦合以便在计算机平台中操作,例如提供计算机平台100的功能中的部分或全部的平台。例如,处理器200可包括处理器109的部分或全部特征,但特定实施例在这方面不受限。作为说明而非限制,处理器200可包括中央处理单元(CPU)、数学协处理器、图形处理器和/或用于执行机器指令的各种另外或另选的数据处理设备中的任一种。
[0026]处理器200可包括用于接收处理器与计算机平台的另一组件交换的信息(例如,数据、地址和/或命令信息)的接口 205。接口 205在图2中被示为用于例如经由总线或其它通信硬件来将处理器200耦合到计算机平台的外置硬件的接口。然而,在一替换实施例中,接口 205可以是将处理器200的电路逻辑耦合到其它片上电路逻辑(例如,片上系统的非核逻辑)的集成电路的内置接口。在另一实施例中,接口 205可用作供处理器200的多个核彼此通信的内置接口。
[0027]接口 205可以直接或间接耦合到处理器200的控制模块210。控制模块210可包括提供用于指示处理器200的各种组件的操作的控制信令的电路逻辑。例如,控制模块210可提供用于确定或以其他方式控制一个或多个向量指令的执行的控制功能。在一实施例中,控制模块210包括处理器200的解码器212或以其它方式具有对该解码器的访问权,该解码器包括检测经由接口 205接收到的指令并且进一步标识与检测到的指令相关联的指令类型的电路逻辑。这种所标识的指令类型例如可以是处理器200所支持的指令集中的多种指令类型之一。至少部分地基于所标识的指令类型,解码器212可信令将要执行一个或多个操作,即用于执行检测到的指令的操作。在一实施例中,解码器212包括用于解码各种一个或多个常规机器代码指令中的任一种的逻辑。
[0028]处理器200还可包括直接或间接耦合到控制模块210的执行单元220,执行单元220包括用于执行用于指令执行的一个或多个数据操作的电路逻辑。执行单元220例如可以包括基于解码器212解码指令而多方面地执行操作的电路逻辑。
[0029]在一实施例中,解码器212包括向量指令逻辑214或以其他方式具有对该向量指令逻辑的访问权,该向量指令逻辑包括用于解码一种或多种向量指令类型的指令的电路。如此处所使用的,“向量指令”指的是对其的执行包括执行涉及至少一个向量(例如,具有多个元素的向量)的一个或多个操作的指令。执行单元220可基于来自控制模块210的一个或多个控制信号(例如,包括响应于向量指令逻辑214检测到所接收到的指令具有特定向量指令类型而交换的控制信号)来执行一个或多个操作。
[0030]在一实施例中,向量指令逻辑214包括用于实现对dot-vdef指令类型的解码的逻辑。具有dot-vdef指令类型的指令的执行可将向量设为参考向量,例如其中该参考向量变得可供向量指令类型的任何后续指令使用。在一实施例中,这种后续向量指令可以具有被向量指令逻辑214识别为隐含参考当前参考向量的指令类型。在其中dot-vdef指令将特定向量设为参考向量的实施例中,该特定向量可保持当前参考向量直到对后续dot-vdef指令的执行将另一向量设为参考向量。
[0031]在一实施例中,向量指令逻辑214包括用于实现对dot-mul指令类型的解码以指定或以其他方式指示将乘以当前参考向量的操作数向量的逻辑。例如,dot-mul指令的执行可返回等于该操作数向量与当前参考向量的点积的值。dot-mul指令可包括指定向量点积运算的命令信息。dot-mul可以另外包括指定操作数向量的元素的数据信息和/或指定操作数向量在计算机平台的存储器中的位置的地址信息。可提供供dot-mul操作指示操作数向量的各种另外或另选的技术中的任一种。
[0032]在一实施例中,执行单元220可包括(由说明性点积算术逻辑单元(ALU)225表示的)用于实现用于执行上述dot-vdef指令类型的一个或多个操作的逻辑。dot-vdef指令的执行可包括点积ALU225和/或执行单元220中的类似逻辑计算各自对应于向量集中的不同相应向量的多个值。在一实施例中,该向量集包括一个或多个布尔向量。如此处所使用的,“布尔向量”指的是其中该向量中的每一个元素都只具有两个可能的布尔值中的相应一个值(例如,逻辑‘0’和逻辑‘I’中的一个)的向量。确定多个值之一例如可包括执行单元220计算参考向量与对应的布尔或其它向量的点积。在一实施例中,对于多个值中的每一个,确定该值可包括计算参考向量与该值的对应向量的点积。
[0033]dot-vdef指令的执行可以预计算并存储比由参考向量与相应的布尔向量的点积给出的那些值更大量的值。例如,实施例可预计算并存储由参考向量与具有相同维度和字宽的各种可能向量中的任一个的点积给出的多个值。出于展示各种实施例的特征的缘故,此处在计算各自对应于相应的布尔向量的多个值方面讨论各种向量指令的执行。然而,这种讨论可以扩展为适用于计算对应于各种另外或另选类型的向量中的任一个的值。
[0034]处理器200可包括用于将多个值存储在例如查找表235中的存储器230。存储器230例如可包括高速缓存、寄存器组和/或各种另外或另选存储装置中的任一种。执行单元220可以在查找表235中存储多个值一例如作为dot-vdef指令的执行的一部分。存储在查找表235中的多个值可作为参考信息而变得可供访问以便执行一个或多个后续向量指令一例如包括dot-vmul指令。在一实施例中,即使在通过执行后续dot-vmul指令来被访问后,该多个值也可以在查找表235中作为参考信息保持可用。
[0035]在一实施例中,点积算术逻辑单元(ALU) 225和/或执行单元220中的其它这样的算术电路逻辑可实现用于执行dot-vmul指令的一个或多个操作。dot-vmul指令可以隐含地(例如,仅仅隐含地)参考当前参考向量。dot-vmul指令可包括指定或以其他方式指示将乘以当前参考向量的操作数向量的一个或多个参数。执行dot-vmul可返回等于当前参考向量与由dot-vmul指令的一个或多个参数指示的操作数向量的点积的值。在一实施例中,执行单元220可包括多个ALU,各自实现与ALU225的功能类似的功能。例如,执行单元220中的多个dot-vdef使能ALU各自可同时支持用于各种dot-vmul计算的不同的相应参
考向量。
[0036]图3示出根据一实施例的用于执行向量指令的方法300的某些元素。方法300可可由包括处理器200的部分或全部特征的处理器来执行,但特定实施例在这方面不受限。
[0037]在一实施例中,方法300在执行向量定义指令类型的第一指令的过程中由处理器执行。该处理器例如可实现或以其他方式包括支持包括向量定义指令类型的多种指令类型的指令集。第一指令可包括提供第一向量的指示的数据和/或地址信息一例如其中第一指令的执行是执行与将第一向量设为参考向量相关联的操作。
[0038]方法300中的第一指令的执行可包括在310计算各自对应于不同的相应布尔向量的多个值。在一实施例中,对于每一个布尔向量,计算多个值中的对应值包括计算第一(参考)向量与该布尔向量的点积。在一实施例中,向量定义指令类型支持对将在计算多个值时使用的对应布尔向量的隐含参考。例如,dot-vdef指令类型的指令可先行(forego)对各自将不同地乘以参考向量的任一或所有布尔向量的显式标识符。
[0039]方法300还可包括在320将多个值存储在处理器的查找表中。多个值中的每一个都可被存储在查找表中的不同的相应条目中一例如其中每一条目都可使用该条目的对应索引值(或其它这样的寻址信息)来访问。所存储的多个值例如在查找表中可供通过执行另一向量指令(例如dot-vmul指令)来访问。在一实施例中,所存储的多个值可供在查找表中访问直到执行向量定义指令类型的另一指令。在一实施例中,dot-vdef指令的执行可导致只有计算出的点积值最终被存储在查找表中一例如其中参考向量本身可能不被保留以供稍后访问。
[0040]在320处的存储之后可执行一个或多个其它向量指令,但特定实施例在这方面不受限。作为说明而非限制,在方法300中的指令执行之后的向量指令的执行可包括在查找表中查找一个或多个值。在一实施例中,由处理器实现的指令集支持另一向量指令类型以访问查找表中可用的所存储的多个值。这一向量指令类型可允许仅仅隐含地参考当前参考向量和/或对应于该当前参考向量的多个值。例如,该处理器还可执行指令集所支持的向量乘法指令类型的第二指令。第二指令例如可包括用于指定或以其他方式指示第二向量的数据和/或地址信息。
[0041]第二指令的执行例如可包括基于查找表中所存储的多个值来确定当前参考向量与由第二指令的一个或多个参数指示的操作数向量的点积。确定当前参考向量与操作数向量的点积可包括标识将有助于(例如作为加法或乘法操作中的操作数)最终点积值的一个或多个项。
[0042]作为说明而非限制,标识这一个或多个项可包括标识要在查找表中访问的第一条目,其中标识第一条目基于操作数向量的元素中的一个或多个(在一个实施例是每一个)。第一条目中所存储的值然后可被检索以供在确定有助于点积值的最终确定的项时使用。在一实施例中,检索到的值可用作将被乘的项,例如基于与该项相关联的权重值。另选地或另外地,检索到的值或计算出的多个检索到的值可用作将与一个或多个其它项求和以确定点积值的项。
[0043]图4根据一实施例的用于执行向量指令的处理器400的特定元件的功能表示。处理器400可提供用于执行例如方法300的部分或全部操作的功能。
[0044]为了示出不同实施例的特定特征,处理器400的操作在此针对将某一向量X设为参考向量的向量定义指令以及返回等于某一操作数向量Y与当前参考向量X的点积的值的向量乘法指令来讨论。然而,这种讨论可扩展至适用于例如用于确定各种替代向量对中任一对的点积的各种不同的向量指令中的任一个。
[0045]处理器400可包括存储与查找表235中所存储的信息类似的信息的查找表420。“dot-vdef X”指令410的执行可包括计算各自对应于不同的相应布尔向量的多个值并将其存储在查找表420中。所存储的每一个值例如可以等于被设为参考向量的向量X与对应于该值的布尔向量的点积。作为说明而非限制,X可以是包括η个元素的向量,其中η是某一正整数,即等于或大于I。
[0046]在这一实施例中,“dot-vdef X”指令410的执行可存储至少(2n_l)个值,每一个值对应于具有η个元素的不同的相应布尔向量。这些值可被存储在查找表420的相应条目中一例如其中这些条目各自根据基于对应布尔向量的相应索引值来索引。作为说明而非限制,查找表420可包括条目[I]到[2η-1],每一个条目存储等于参考向量与对应的布尔向量的点积的相应值。查找表420还被示为包括对应于只具有作为值零(O)的元素的布尔向量的条目[O]。然而,在特定实施例中处理器400可先行存储这一条目[O],因为包括这一布尔向量的点积可以是零(O),而不管向量X。在特定实施例中,dot-vdef和dot-vmul可被执行以分别定义并乘以只具有单个元素的参考向量一例如其中dot-vmul乘以具有预定义的参考标量值的给定标量值。 [0047]在一实施例中,处理器400可执行“dot-vmul Y”指令430以返回等于参考向量X和操作数向量Y440的点积的值。“dot-vmul Y”指令430的执行可包括执行一个或多个查找表操作以确定(由项tl……tm450的说明性集合表示的)将有助于确定最终点积值的项。
项tl......tm450例如可被提供给处理器400的求和单元460 —例如其中求和单元460包括
用于基于项tl……tm450来执行一个或多个加法操作的电路逻辑。根据不同的实施例,可顺序地或并行地对项tl……tm450进行查找和/或求和。这些查找和/或求和的并行程度可以例如通过查找表读取端口的数量和/或求和单元460的端口数量来约束。然而,可使用多个版本的查找表420来减少例如由可用于从单个版本的查找表420中读取的有限数量的端口施加的并行约束。
[0048]在一实施例中,求和单元460可以在这一求和之前不同地对项tl......tm450中的
部分或全部进行乘法一例如该乘法基于与项tl......tm450中的一个或多个相关联的权重
值。在一替代实施例中,项tl......tm450中的部分或全部可以是这种乘法的结果一例如其
中该乘法是在项tl......tm450被提供给求和单元460之前执行。基于项tl......tm450,求
和单元460可计算等于操作数向量Y与参考向量X的点积的结果z470。结果z470可作为执行“dot-vmul Y”指令440的结果来返回。
[0049]以下参考涉及无符号整数的说明性计算的集合来说明处理器400的功能。然而,根据不同实施例,这种功能可扩展成适用于各种另外或另选计算中的任一种一例如用于带符号的整数计算或带符号的定点数计算。在该说明性示例中,处理器400执行包括用于指定或以其他方式指示向量A的信息的向量定义指令“dot-vdef A”,其中:
[0050]A = [321] (I)
[0051]在一实施例中,“dot-vdef A”指令的执行包括处理器400计算各自对应于不同的相应布尔向量的多个值并将其存储在查找表420中。对于多个值中的每一个,处理器400可计算第一(参考)向量和对应的布尔向量的点积。处理器400还可将这多个值存储在查找表420中。以下表1不出了这一查找表的一个不例的兀素。
[0052]表1:所存储的用于参考向量A的查找条目
[0053]
【权利要求】
1.一种处理器处的方法,所述方法包括: 执行向量定义指令类型的第一指令,所述第一指令包括第一向量的指示,其中所述处理器的指令集包括所述向量定义指令类型,所述执行所述第一指令包括: 计算各自对应于不同的相应布尔向量的一个或多个值的集合,包括对于所述一个或多个值的集合中的每一个值计算所述第一向量与对应的布尔向量的点积;以及 将所述一个或多个值的集合存储在所述处理器的查找表中,其中所存储的一个或多个值的集合在所述查找表中可供通过在执行所述第一指令之后的指令执行来访问。
2.如权利要求1所述的方法,其特征在于,所述向量定义指令类型支持所述第一指令对用于所述一个或多个值的集合的对应布尔向量的隐含参考。
3.如权利要求1所述的方法,其特征在于,所述指令集支持用于通过隐含参考来访问所述查找表中可用的所存储的一个或多个值的集合的指令类型。
4.如权利要求1所述的方法,其特征在于,所存储的一个或多个值的集合可供在所述查找表中访问直到执行所述向量定义指令类型的另一指令。
5.如权利要求1所述的方法,其特征在于,进一步包括: 执行向量乘法指令类型的第二指令,所述第二指令包括第二向量的指示,其中所述指令集还包括所述向量乘法指令类型,所述执行所述第二指令包括: 基于所述查找表中所存储的一个或多个值的集合来确定所述第一向量与所述第二向量的点积。
6.如权利要求5所述的方法,其特征在于,所述第二向量包括多个元素,其中所述一个或多个值的集合中的每一个被存储在所述查找表的不同的相应条目中,其中确定所述第一向量与所述第二向量的点积包括: 标识要在所述查找表中访问的第一条目,所述标识所述第一条目基于所述第二向量的多个元素中的每一个;以及 基于存储在所述第一条目中的第一值来确定第一项。
7.如权利要求6所述的方法,其特征在于,确定所述第一项包括根据与所述第一项相关联的权重值来对所述第一值执行乘法。
8.一种系统,包括: 用于交换向量定义指令类型的第一指令的总线,所述第一指令包括第一向量的指示; 耦合到所述总线的处理器,所述处理器包括: 存储查找表的存储器; 检测所述第一指令的解码器,其中所述处理器的指令集包括所述向量定义指令类型;以及 执行所述第一指令的执行单元,包括: 所述执行单元计算各自对应于不同的相应布尔向量的一个或多个值的集合,包括对于所述一个或多个值的集合中的每一个值,所述执行单元计算所述第一向量与对应的布尔向量的点积;以及 所述执行单元将所述一个或多个值的集合存储在所述查找表中的,其中所存储的一个或多个值的集合在 所述查找表中可供通过在执行所述第一指令之后的指令执行来访问;以及耦合到所述处理器的网络接口,所述网络接口将所述系统连接到网络。
9.如权利要求8所述的系统,其特征在于,所述向量定义指令类型支持所述第一指令对用于所述一个或多个值的集合的对应布尔向量的隐含参考。
10.如权利要求8所述的系统,其特征在于,所述指令集支持用于通过隐含参考来访问所述查找表中可用的所存储的一个或多个值的集合的指令类型。
11.如权利要求8所述的系统,其特征在于,所存储的一个或多个值的集合可供在所述查找表中访问直到执行所述向量定义指令类型的另一指令。
12.如权利要求8所述的系统,其特征在于,所述执行单元还执行向量乘法指令类型的第二指令,所述第二指令包括第二向量的指示,其中所述指令集还包括所述向量乘法指令类型,其中所述执行单元执行所述第二指令包括所述执行单元基于所述查找表中所存储的一个或多个值的集合来确定所述第一向量与所述第二指令的点积。
13.如权利要求12所述的系统,其特征在于,所述第二向量包括多个元素,其中所述一个或多个值的集合中的每一个值被存储在所述查找表的不同的相应条目中,其中所述执行单元确定所述第一向量与所述第二向量的点积包括: 所述执行单元标识要在所述查找表中访问的第一条目,所述标识所述第一条目基于所述第二向量的多个元素中的每一个;以及 所述执行单元基于存储在所述第一条目中的第一值来确定第一项。
14.如权利要求13所 述的系统,其特征在于,所述执行单元确定所述第一项包括所述执行单元根据与所述第一项相关联的权重值来对所述第一值执行乘法。
15.一种处理器,包括: 存储查找表的存储器; 检测向量定义指令类型的第一指令的解码器,所述第一指令包括第一向量的指示,其中所述处理器的指令集包括所述向量定义指令类型;以及 执行所述第一指令的执行单元,包括: 所述执行单元计算各自对应于不同的相应布尔向量的一个或多个值的集合,包括对于所述一个或多个值的集合中的每一个值,所述执行单元计算所述第一向量与对应的布尔向量的点积;以及 所述执行单元计算将所述一个或多个值的集合存储在所述查找表中,其中所存储的一个或多个值的集合在所述查找表中可供通过在执行所述第一指令之后的指令执行来访问。
16.如权利要求15所述的处理器,其特征在于,所述向量定义指令类型支持所述第一指令对用于所述一个或多个值的集合的对应布尔向量的隐含参考。
17.如权利要求15所述的处理器,其特征在于,所述指令集支持用于通过隐含参考来访问所述查找表中可用的所存储的一个或多个值的集合的指令类型。
18.如权利要求15所述的处理器,其特征在于,所存储的一个或多个值的集合可供在所述查找表中访问直到执行所述向量定义指令类型的另一指令。
19.如权利要求15所述的处理器,其特征在于,所述执行单元还执行向量乘法指令类型的第二指令,所述第二指令包括第二向量的指示,其中所述指令集还包括所述向量乘法指令类型,其中所述执行单元执行所述第二指令包括:所述执行单元基于所述查找表中所存储的一个或多个值的集合来确定所述第一向量与所述第二指令的点积。
20.如权利要求19所述的处理器,其特征在于,所述第二向量包括多个元素,其中所述一个或多个值的集合中的每一个值被存储在所述查找表的不同的相应条目中,其中所述执行单元确定所述第一向量与所述第二向量的点积包括: 所述执行单元标识要在所述查找表中访问的第一条目,所述标识所述第一条目基于所述第二向量的多个元素中的每一个;以及 所述执行单元基于存储在所述第一条目中的第一值来确定第一项。
21.如权利要求20所述的处理器,其特征在于,所述执行单元确定所述第一项包括所述执行单元根据与所 述第一项相关联的权重值来对所述第一值执行乘法。
【文档编号】G06F9/30GK104011651SQ201180075867
【公开日】2014年8月27日 申请日期:2011年12月22日 优先权日:2011年12月22日
【发明者】K·丹恩, T·杨, F·瑞奇特-特罗特曼 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1