具有向量第一和多通道配置的向量处理器的制作方法

文档序号:26539037发布日期:2021-09-07 20:59阅读:153来源:国知局
具有向量第一和多通道配置的向量处理器的制作方法
具有向量第一和多通道配置的向量处理器
1.相关申请
2.本技术要求在2019年3月18日提交并且题为“具有向量第一和多通道配置的向量处理器(vector processor with vector first and multiple lane configuration)”的第16/356,146号美国专利申请的优先权,本技术的全部公开内容在此引入作为参考。
技术领域
3.通常,本文公开的至少一些实施例涉及向量处理器。而且,本文公开的至少一些实施例涉及具有多通道配置的向量处理器和具有向量第一配置的向量处理器。


背景技术:

4.向量处理器可以是或者包含实施指令集的中央处理单元(cpu),该指令集含有对通常称为向量的数据阵列进行操作的指令。这不同于标量处理器,其中指令对单个数据项进行操作。与标量处理器相比,向量处理器可以大幅提高某些工作负荷的性能,特别是数值模拟和类似任务。向量处理器出现在20世纪70年代早期,并且其中大部分超级计算设计在20世纪70年代到20世纪90年代。更常规的微处理器设计(诸如标量处理器设计)的价格性能比的快速下降导致向量处理器的开发和制造较少。
5.通常,常规cpu(例如,基于标量的cpu)一次最多能够操纵几条数据。例如,此类cpu具有基本上提供将a加到b并将结果存储在c中的指令。通常通过将地址传递到保存数据的存储器位置来指出a、b和c的数据。对该地址进行解码并将数据从存储器中取出需要一些时间,在该时间期间,cpu可以处于空闲状态以等待所请求的数据出现。
6.为了减少这些步骤所消耗的时间量,更多的现代cpu使用称为其中指令依次通过几个子单元的指令流水线操作的技术。第一子单元读取地址并对其进行解码,下一个子单元提取那些地址处的值,下一个子单元执行数学公式本身。通过流水线操作,cpu甚至在第一指令离开cpu之前开始对下一指令进行解码,这类似于生产流水线。这样,地址解码器和其它提到的部件同时且持续地使用。由于流水线,任何指令都要花费相同的时间来完成。
7.向量处理器通过此类处理器也流水线操作数据本身而不是仅仅流水线操作指令来改进流水线操作。因此,向量处理器从存储器读取单个指令,而不是持续地必须对指令进行解码,然后提取完成指令所需的数据。这允许减少解码时间和减少功率消耗(例如,用向量处理器进行一次解码而不是多次解码)。
附图说明
8.从以下给出的详细描述和从本公开的各种实施例的附图将更全面地理解本公开。
9.图1示出了根据本公开的一些实施例的实例性计算装置100的实例性部件。
10.图2示出了根据本公开的一些实施例的实例性计算装置200的实例性部件。
11.图3示出了根据本公开的一些实施例的具有两个通道的实例性向量第一系统300。
12.图4和5示出了根据本公开的一些实施例的方法400的实例性操作。
13.图6示出了根据本公开的一些实施例的具有四个通道的实例性向量第一系统500。
具体实施方式
14.通常,本文公开的至少一些实施例涉及向量处理器。而且,本文公开的至少一些实施例涉及具有多通道配置的向量处理器和具有向量第一配置的向量处理器。本文公开的实施例提供了至少针对在背景技术部分和本技术的其它部分中提到的技术问题以及本文未描述但是本领域技术人员认识到的其它技术问题的具体技术方案。本文公开的至少一些实施例包含具有向量第一和多通道配置的向量处理器。用于向量处理器的向量运算可以包含单个向量或多个向量作为输入。用于输入的多个通道可用于并行地加速运算。并且,向量第一配置可通过减少在通道中存取的元素的数量来增强多个通道以并行地执行运算。如所提到的,用于输入的多个通道可用于并行地加速运算。例如,运算可以是向量a和b加法,或者向量a和b的逐元素乘法,或者对两个或两个以上向量的任何其它类型的运算。
15.运算的每个向量可以被分成并行运算的多个通道(k个通道)。例如,考虑a(i)
×
b(i)(i=0、1、2、

、(n

1)*k)的乘法。这可以在k个并行通道中完成:对于并行通道j=0、1、2、

、k

1,a(m)
×
b(m)(m=k
×
i+j,并且i=0、1、2、

、n

1)。通常,乘法“x”可用另一运算(例如,加法、减法、逐位“或”等)代替。对两个或两个以上向量的运算结果可以是标量或向量。
16.而且,如所提到的,向量第一配置可通过减少在通道中存取的元素的数量来增强多个通道以并行地执行运算。本文公开的至少一些实施例包含可使用具有多个通道的向量寄存器来实施向量第一配置的组件,这可以减少通道中所存取的元素的数量以更有效地并行执行运算。例如,组件中的一个可以是向量第一寄存器。向量第一寄存器可用于指示是否可找到用于涉及向量的计算的第一元素。在没有向量第一寄存器的情况下,计算总是以包含在向量数据寄存器中的向量的元素0开始。并且,如果计算总是以包含在向量数据寄存器中的向量的元素0开始,则必须总是重新加载整个操作数。但是,对于向量第一处理,只需要加载新的操作数即可。
17.例如,考虑向量a(i)(i=0、1、2、

、n

1)。如果向量第一寄存器存储m,则用于计算的元素是a(i)(i=m、m+1、

)。在其中向量被分成多个通道的情况下出现问题。如果使用总共k个通道,则通道j具有向量a的元素a(k
×
i+j)(i=0、1、

),其中j是0、1、

、k

1。为了在其中b不为零的元素(k
×
a+b)上开始运算,问题是在不使用向量第一寄存器的情况下,第一元素将不在通道零中。相反,第一元素将在通道b中(例如,而不在通道零中)。为了从元素k
×
a+b开始,在通道j中使用的元素是a(k
×
i+j)(i=a+1、1、

并且j>b);并且对于j<=b,在通道j中使用的元素是a(k
×
i+j)(i=a、1、

)。系统的多路复用器可以被配置为根据b将通道的内容移位至通道零。多路复用器可以用移位器代替,该移位器将整个操作数从一个通道移位到另一个通道。移位和/或多路复用可以被配置为使得第一元素(k
×
a+b)置于通道零中。具体地,将通道j的a(k
×
i+j)移位到通道j

b(对于i=a、1、

并且j≥b)和通道k+j

b(对于i=a+1、1、

并且j<b)。利用该移位,运算可以在通道b的输入元素a上开始到k

1,并且在通道0的输入元件a+1上开始到b

1。为了在元素k
×
a+b上开始,b控制通道移位;并且a/a+1控制对通道中的第一元素的选择。在双通道情况下,这可以基于k
×
a+b是奇数还是偶数而简化为移位和/或切换。该系统的实例可以与两个通道、四个通道、十六个通道以及具有
二的幂的通道的任何布置一起使用。然而,硬件的复杂性随着通道数量的增加而呈指数地变化。
18.图1示出了根据本公开的一些实施例的实例性计算装置100的实例性部件。如图所示,装置100可以通信地耦合到一或多种网络112。装置100包含根据本公开的一些实施例的向量处理器102。装置100还至少包含总线104、主存储器106、数据存储系统108和网络接口110。总线104通信地耦合向量处理器102、主存储器106、数据存储系统108和网络接口110。装置100包含计算机系统,该计算机系统至少包含经由总线104(其可以包含多条总线)彼此通信的向量处理器102、主存储器106(例如,只读存储器(rom)、闪存、动态随机存取存储器(dram)(诸如同步dram(sdram)或rambus dram(rdram))、静态随机存取存储器(sram)等)以及数据存储系统108。
19.换言之,图1是具有本公开的实施例可在其中操作的计算机系统的实例性装置100的框图。在一些实施例中,计算机系统可以包含一组指令,用于使机器在被执行时执行在本文讨论的方法中的任何一或多种。在此类实施例中,机器可连接(例如,经由网络接口110联网)到lan、内联网、外联网和/或互联网(例如,网络112)中的其它机器。该机器可以客户端

服务器网络环境中的服务器或客户端机器的身份操作,可以充当对等(或分布式)网络环境(诸如本文描述的对等网络)中的对等计算机,或者可以充当云计算基础架构或环境中的服务器或客户端计算机。
20.向量处理器102表示根据本公开的一些实施例的一或多个向量处理器。向量处理器102可以包含微处理器、中央处理单元等。更具体地,向量处理器102可以包含复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器,或实施其它指令集的处理器或实施指令集组合的处理器,只要处理器使用:向量指令、向量寄存器、向量第一和多通道配置。向量处理器102还可以是一或多个专用处理装置,诸如专用集成电路(asic)、现场可编程门阵列(fpga),数字信号处理器(dsp)、图形处理单元(gpu)、网络处理器等。向量处理器102可以被配置为执行用于执行本文讨论的操作和步骤的指令。向量处理器102还可以包含诸如网络接口110的网络接口装置,以通过一或多种通信网络(诸如网络112)进行通信。
21.数据存储系统108可以包含机器可读存储介质(也称为计算机可读介质),在该机器可读存储介质上存储有一或多个指令集或软件,并且该数据存储系统可以体现本文描述的一或多种方法或功能的至少一些方面。数据存储系统108可以包含非易失性存储装置。该指令还可以在由计算机系统执行该指令期间完全或至少部分地驻留在主存储器106内和/或向量处理器102内,主存储器106和向量处理器102也可以构成机器可读存储介质。尽管存储器、向量处理器和数据存储部件在实例性实施中被示为各自都是单个部件,但是每个部件应当认为包含可以存储指令并执行其相应操作的单个部件或多个部件。术语“机器可读存储介质”也应被认为包含能够存储或编码指令集以供机器执行并且使机器执行本公开的方法中的任何一或多种方法的任何介质。因此,术语“机器可读存储介质”应理解为包含但不限于固态存储器、光学介质和磁性介质。
22.图2示出了根据本公开的一些实施例的实例性计算装置200的实例性部件。如图所示,计算装置200包含向量处理器102以及总线104和主存储器106(例如,参见图1)。计算装置200还可以是或者包含计算装置100。
23.如图2所示,向量处理器102包含向量寄存器202、标量寄存器204、总线206、算术逻辑单元208(alu 208)和向量加载存储单元210。计算装置200的其它实施例可以包含标量寄存器204,该标量寄存器在向量处理器102的外部或者在向量处理器的与具有向量寄存器202的向量处理器中的单元分离的单元中。总线206通信地耦合向量寄存器202、标量寄存器204、算术逻辑单元(alu)208和向量加载存储单元210,并且此类组件可以经由总线206(其可以包含多条总线)彼此通信。向量寄存器202包含多个向量寄存器。并且,alu 208包含多个alu,例如,算术逻辑单元(alu)0、alu 1和alu n。
24.向量处理器102包含向量第一和多通道配置。向量处理器102可以是或者包含一或多个中央处理单元(cpu),该cpu实施在被称为向量的一维数据阵列上操作的指令。向量处理器102中的向量寄存器202可以包含具有多种通道配置的向量寄存器。标量寄存器204包含标量寄存器,该标量寄存器为具有多种通道配置的向量寄存器的向量第一配置提供索引和控制值。标量寄存器还可以提供由向量指令使用的数值。例如,由向量寄存器提供的向量可以乘以由标量寄存器提供的标量。因此,至少一些向量寄存器202可以具有向量第一和多通道配置。此类寄存器中的每一个可连接到alu 208中的相应alu。alu 208中的alu可以包含对整数二进制数执行算术和逐位运算的组合数字电子电路。在向量处理器102中,alu 208中的alu可以连接到具有向量第一和多通道配置的向量寄存器。
25.而且,标量寄存器204可以包含可编程标量寄存器。可使用可编程标量寄存器,使得由向量寄存器(例如,向量寄存器202中的一个)提供的向量可由通过可编程标量寄存器中的一个提供且编程到其中的标量来操作。例如,运算中的一个可以包含向量乘以标量值(例如,向量a(i)
×
标量p)。
26.向量加载存储单元210包含用于执行加载和存储指令、生成加载和存储操作的地址以及从存储器加载数据或将数据从向量处理器102的寄存器存储回存储器的电路。向量加载存储单元210可以执行本文描述的许多操作,包含图4至5的方法400的操作。
27.寄存器202中的向量寄存器可以包含向量第一和多通道配置。下面解释向量第一和多通道配置的实例。而且,在图3至6中更详细地解释向量第一和多通道配置的实例。
28.本文描述的计算装置中的每一个可以是能够执行(顺序地或以其它方式执行)指令集的机器,该指令集指定该机器要采取的动作。此外,尽管针对图1和2所示的计算装置中的每一个示出了单个机器,但是术语“机器”还可以被认为包括单独地或联合地执行指令集(或多个指令集)以执行本文所讨论的方法或操作中的任何一或多种方法的任何机器集合。并且,所示计算装置中的每一个可以各自至少包含总线和/或主板、一或多个控制器(诸如一或多个cpu)、可以包含临时数据存储装置的主存储器、至少一种类型的网络接口、可以包含永久数据存储装置的存储系统,和/或其任何组合。
29.图3示出了根据本公开的一些实施例的具有两个通道的实例性向量第一系统300。向量第一系统300可以是向量处理器102的一部分(例如,参见图1或2)。向量第一系统300包含第一向量寄存器的多个通道302,第一向量寄存器包含向量寄存器通道301和303。换言之,系统300包含用于第一向量寄存器(例如,向量寄存器202中的一个)的两个通道的第一向量寄存器通道301和第二向量寄存器通道303。尽管系统300示出了第一向量寄存器的组件,但是该系统直接与第二向量寄存器的组件交互。第一向量寄存器和第二向量寄存器各自为系统300的alu 304a和alu 304b提供相应输入。
30.通常,用于输入的多个通道可以用于并行地加速运算。如图所示,通道各自具有相应alu(例如,alu 304a和304b)。例如,运算可以是第一向量和第二向量(即,向量a和b)的加法,或向量的逐元素乘法,或对两个向量的任何其它类型的运算。运算的每个向量可以被分成并行运算的多个通道(k个通道)。例如,考虑a(i)
×
b(i)(i=0、1、2、

、(n

1)*k)的乘法。这可以在k个并行通道中完成:对于并行通道j=0、1、2、

、k-1,a(m)
×
b(m)(m=k
×
i+j,并且i=0、1、2、

、n-1)。通常,乘法“x”可用另一运算(例如,加法、减法、逐位“或”等)代替。以两个通道(例如,输出314a和314b)对并行通道alu(例如,alu 304a和304b)在两个或两个以上向量上的运算的并行处理的结果可为标量或向量。
31.而且,通常,向量第一配置可通过减少在通道中存取的元素的数量来增强多个通道以并行地执行运算。至少如图3至6所示,系统300或500的组件可以用具有多个通道的向量寄存器来实施向量第一配置(即,向量第一和多通道配置),这可以减少通道中所存取的元素的数量以更有效地并行执行运算。例如,组件中的一个可以是向量第一寄存器(例如,存储vfr值320或520的寄存器)。向量第一寄存器可用于指示是否可找到用于涉及向量的计算的第一元素。在没有向量第一寄存器的情况下,计算总是从向量的元素0开始。
32.向量第一配置可通过减少在通道中存取的元素的数量来增强多个通道以并行地执行运算。本文公开的至少一些实施例包含可使用具有多个通道的向量寄存器来实施向量第一配置的组件,这可以减少通道中所存取的元素的数量以更有效地并行执行运算。例如,组件中的一个可以是向量第一寄存器。向量第一寄存器可用于指示是否可找到用于涉及向量的计算的第一元素。在没有向量第一寄存器的情况下,计算总是以包含在向量数据寄存器中的向量的元素0开始。并且,如果计算总是以包含在向量数据寄存器中的向量的元素0开始,则必须总是重新加载整个操作数。但是,对于向量第一处理,只需要加载新的操作数即可。
33.例如,考虑向量a(i)(i=0、1、2、

、n

1)。如果向量第一寄存器存储m,则用于计算的元素是a(i)(i=m、m+1、

)。在其中向量被分成多个通道的情况下出现问题。如果使用总共k个通道,则通道j具有向量a的元素a(k
×
i+j)(i=0、1、

),其中j是0、1、

、k

1。为了在其中b不为零的元素(k
×
a+b)上开始运算,问题是在不使用向量第一寄存器的情况下,第一元素将不在通道零中。相反,第一元素将在通道b中。为了从元素k
×
a+b开始,在通道j中使用的元素是a(k
×
i+j)(i=a+1、1、

并且j>b);并且对于j<=b,在通道j中使用的元素是a(k
×
i+j)(i=a、1、

)。
34.该系统的一或多个多路复用器(例如,参见多路复用器309和311)可以被配置为根据b将通道的内容移位至通道零。多路复用器可以用一或多个移位器代替。移位和/或多路复用可以被配置为使得第一元素(k
×
a+b)置于通道零中。具体地,将通道j的a(k
×
i+j)移位到通道j

b(对于i=a、1、

并且j≥b)和通道k+j

b(对于i=a+1、1、

并且j<b)。利用该移位,运算可以在通道b的输入元素a上开始到k

1,并且在通道0的输入元件a+1上开始到b

1。为了在元素k x a+b上开始,b控制通道移位;并且a/a+1控制对通道中的第一元素的选择。在双通道情况下,这可以基于k x a+b是奇数还是偶数而简化为移位和/或切换。该系统的实例可以与两个通道、四个通道、十六个通道以及具有二的幂的通道的任何布置一起使用。然而,硬件的复杂性随着通道数量的增加而呈指数地变化。图3示出了组件的双通道实例性布置。并且,图6示出了四通道实例性布置。
35.参考图3中的双通道实例,第一向量寄存器通道301包含向量元素(ve)305a、305b、305c和305d,并且第二向量寄存器通道303包含向量元素(ve)307a、307b、307c和307d。关于图4和5中所示的方法400更详细地描述向量寄存器的元素的使用。
36.系统300还包含用于至少第一向量寄存器和第二向量寄存器的alu 304a(用于lane_0的alu)和alu 304b(用于lane_1的alu)。在一些实施例中,alu 304a和304b可以是alu 208中的一个,并且第一向量寄存器和第二向量寄存器可以是向量寄存器202中的两个。除了第二向量寄存器的作为alu的通道输入的输出之外,未示出第二向量寄存器的部件,例如,参见308b和312b。
37.alu 304a被示为包含用于从第一向量寄存器的第一向量寄存器通道301或第二向量寄存器通道303传送的输出的第一通道输入308a。alu 304a还被示为包含用于从第二向量寄存器的第一向量寄存器通道或第二向量寄存器通道传送的输出的第一通道输入308b。
38.alu 304b被示为包含从第一向量寄存器的第一向量寄存器通道301或第二向量寄存器通道303传送的输出的第二通道输入312a。alu 304b还被示为包含从第二向量寄存器的第一向量寄存器通道或第二向量寄存器通道传送的输出的第二通道输入312b。
39.在一些实施例中,该系统的alu(例如,alu 304a或304b)可以包含基于alu的至少一个功能的alu输出和来自第一向量寄存器和第二向量寄存器的相同通道输出的输入。例如,alu输出314a可以基于alu 304a的至少一个功能以及第一向量寄存器和第二向量寄存器的第一通道输入308a和308b。并且,alu输出314b可以基于alu 304b的至少一个功能以及第一向量寄存器和第二向量寄存器的第二通道输入312a和312b。alu 304a和304b中的每一个的功能对于每一alu可以是相同的功能。
40.系统300还包含第一2:1多路复用器309,该多路复用器被配置为接收来自第一向量寄存器通道301的输出和来自第二向量寄存器通道303的输出作为输入(例如,输入306a和306b)。第一2:1多路复用器309还可以被配置为接收向量第一寄存器值(例如,vfr值320)作为选择输入(例如,选择输入324)。如图所示,从标量寄存器(例如,第一向量寄存器中的标量寄存器313中的vfr值320的寄存器)的输出接收用于第一2:1多路复用器309的选择输入324。第一标量寄存器可以是图2中描绘的标量寄存器204中的标量寄存器的一个。第一2:1多路复用器309还可以被配置为基于选择输入324选择来自第一向量寄存器通道301的输出或来自第二向量寄存器通道303的输出。第一2:1多路复用器309还可以被配置为将选定输出传送到用于第一寄存器的alu 304a的第一通道输入308a。
41.系统300还包含第二2:1多路复用器311,该多路复用器被配置为接收来自第一向量寄存器通道301的输出和来自第二向量寄存器通道303的输出作为输入(例如,输入310a和310b)。第二2:1多路复用器311还可以被配置为接收vfr值(例如,vfr值320)作为选择输入(例如,选择输入324)。如图所示,从标量寄存器(例如,标量寄存器313中的用于vfr值320的寄存器)的输出接收用于第二2:1多路复用器311的选择输入324。标量寄存器可以是图2中描绘的标量寄存器204中的标量寄存器的一个。第二2:1多路复用器311还可以被配置为基于选择输入324选择来自第一向量寄存器通道301的输出或来自第二向量寄存器通道303的输出。第二2:1多路复用器311还可以被配置为将选定输出传送到用于第一寄存器的alu 304b的第二通道输入312a。
42.标量寄存器313还可以包含var寄存器,该var寄存器被配置为通过第一向量寄存
器(例如,var寄存器322)的相应索引来提供用于第一向量寄存器通道301和第二向量寄存器通道303的元素地址值(ea值),例如,参见图3和6中描绘的向量寄存器通道中所示的“ea”下的值“0”、“1”、“2”和“3”,当此类值与输入326匹配时,所述值提供对对应元素的存取。换言之,输入326可以认为是具有ea值或与ea值相关的输入。
43.而且,标量寄存器313可以包含可编程标量寄存器。可使用可编程标量寄存器,使得由向量寄存器(例如,具有通道301和303的向量寄存器)提供的向量可由通过可编程标量寄存器中的一个提供且编程到其中的标量来操作。例如,运算中的一个可以包含向量乘以标量值(例如,向量a(i)
×
标量p)。
44.vfr值和ea值各自都可以是存储在标量寄存器(诸如图2所示的标量寄存器204中的寄存器)中的标量。关于图4和5中描绘的方法400更详细地描述vfr值和ea值。vfr值和ea值可以用于确定用于存取相应向量通道的初始地址(例如,参见图3中描绘的向量元素305a和307a中以及图6中描绘的向量寄存器通道中的全地址“element_0_0”和“element_1_0”)。输入326示出了向量处理器的部件(诸如向量加载存储单元)如何选择向量寄存器通道中的元素,其中用于选择元素的输入来自var寄存器322的输出值。
45.在一些实施例中,向量处理器(例如,图1和2所示的向量处理器102)可以包含向量加载存储单元(例如,图2中描绘的向量加载存储单元210)和向量寄存器(例如,向量寄存器202)。寄存器中的至少一个可以包含用于向量寄存器的两个通道的第一向量寄存器通道(例如,图3所示的第一向量寄存器通道301)和第二向量寄存器通道(例如,图3所示的向量寄存器通道303)。向量处理器还可以包含alu(例如,alu 208)。alu可以包含用于两个或两个以上向量寄存器的alu(例如,alu 304a和304b)。
46.向量寄存器的alu可以包含用于从第一向量寄存器的第一向量寄存器通道或第二向量寄存器通道传送的输出的第一通道输入(例如,输入308a)。向量寄存器的另一alu可以包含用于从第一向量寄存器的第一向量寄存器通道或第二向量寄存器通道传送的输出的第二通道输入(例如,输入312a)。alu还可以包含alu输出,该alu输出是基于alu的至少一个功能以及第一向量寄存器和第二向量寄存器的第一通道输入,例如,参见alu输出314a。
47.向量寄存器的alu可以包含用于从第二向量寄存器的第一向量寄存器通道或第二向量寄存器通道传送的输出的第一通道输入(例如,输入308b)。向量寄存器的alu还可以包含用于从第二向量寄存器的第一向量寄存器通道或第二向量寄存器通道传送的输出的第二通道输入(例如,输入312b)。alu还可以包含alu输出,该alu输出是基于alu的至少一个功能以及第一向量寄存器和第二向量寄存器的第二通道输入,例如,参见alu输出314b。
48.在此类实施例中,总线(例如,图2中描绘的总线206)可以被配置为通信地耦合向量加载存储单元、向量寄存器和算术逻辑单元。
49.总线可以包含第一2:1多路复用器(例如,2:1多路复用器309),该多路复用器被配置为接收来自第一向量寄存器通道的输出和来自第二向量寄存器通道的输出作为输入(例如,输入306a和306b)。第一2:1多路复用器还可以被配置为接收向量第一寄存器值(vfr值)作为选择输入(例如,选择输入324)。第一2:1多路复用器的选择输入可以从第一标量寄存器(例如,参见标量寄存器313,其可为标量寄存器204中的标量寄存器中的一个)的输出接收。第一2:1多路复用器还可以被配置为基于选择输入而选择来自第一向量寄存器通道的输出或来自第二向量寄存器通道的输出,并且将选定输出传送到alu304a的第一通道输入
(例如,输入308a)。
50.总线可以包含第二2:1多路复用器(例如,2:1多路复用器311),该多路复用器被配置为接收来自第一向量寄存器通道的输出和来自第二向量寄存器通道的输出作为输入(例如,输入310a和310b)。第二2:1多路复用器还可以被配置为接收vfr值作为选择输入(例如,选择输入324)。第二2:1多路复用器的选择输入可以从标量寄存器(例如,参见标量寄存器313,其可为标量寄存器204中的标量寄存器中的一个)的输出接收。第二2:1多路复用器还可以被配置为基于选择输入而选择来自第一向量寄存器通道的输出或来自第二向量寄存器通道的输出,并且将选定输出传送到alu 304b的第二通道输入(例如,参见输入312a)。
51.在一些实施例中,处理器可以包含向量加载存储单元、具有第一向量寄存器通道和第二向量寄存器通道的至少一个向量寄存器、至少一个可编程标量寄存器,以及第一alu和第二alu,该第一alu和第二alu连接到向量寄存器和可编程标量寄存器使得由向量寄存器的通道提供的值可以由通过可编程标量寄存器提供的值来操作。
52.而且,在此类实施例中,第一向量处理器可以包含向量第一寄存器(例如,vfr),该向量第一寄存器被配置为向第一和第二2:1多路复用器提供vfr值(例如,vfr值320)以用作多路复用器的选择输入。第二向量寄存器(图3中未描绘)可以包含vfr,该vfr被配置为还向用于第二向量寄存器的多路复用器提供vfr值以用作选择输入。
53.而且,在此类实施例中,向量处理器可以包含用于第一向量寄存器通道的索引寄存器(例如,var寄存器322),该索引寄存器被配置为提供元素地址值(ea值)

例如,参见输入326。并且,索引寄存器还可以用于第二向量寄存器通道,该索引寄存器被配置为提供ea值,例如,参见输入326。
54.在此类实施例中,向量处理器还可以包含向量加载存储单元,该向量加载存储单元可以被配置为根据vfr值和ea值确定用于存取第一向量寄存器通道的第一初始地址。向量加载存储单元还可以被配置为根据vfr值和单元地址值确定用于存取第二向量寄存器通道的第二初始地址。在此类实施例中,alu可以被配置为根据第一初始地址存取第一向量寄存器通道,并且根据第二初始地址存取第二向量寄存器通道。
55.在此类实施例中,向量加载存储单元可以被配置为将ea值递增,以及根据vfr值和递增后的元素地址值来确定用于存取第一向量寄存器通道的第一下一地址,并且根据vfr值和递增后的元素地址值来确定用于存取第二向量寄存器通道的第二下一地址。alu可以被配置为根据第一下一地址存取第一向量寄存器通道,并且根据第二下一地址存取第二向量寄存器通道。
56.而且,在此类实例中,向量加载存储单元可以被配置为重复对第一元素地址值和第二元素地址值的递增。因此,向量加载存储单元可以被配置为当第一元素地址值等于第一向量寄存器通道中的元素的数量时(例如,参见可以包含ea值的输入326,以及向量元素305a、305b、305c和305d的数量)改变vfr值,并且当第二元素地址值等于第二向量寄存器通道中的元素的数量时(例如,参见可以包含ea值的输入326,以及向量元素307a、307b、307c和307d的数量)改变vfr值。
57.在此类实例中,向量加载存储单元还可以被配置为在第一索引中重置第一元素地址值,并且在第二索引中重置第二元素地址值。向量加载存储单元还可以被配置为根据改变后的vfr值和重置后的单元地址值确定用于存取第二向量寄存器通道的不同的第一初始
地址。并且,向量加载存储单元还可以被配置为根据改变后的vfr值和重置后的单元地址值确定用于存取第一向量寄存器通道的不同的第二初始地址。alu可以被配置为根据不同的第一初始地址存取第二向量寄存器通道,并且根据不同的第二初始地址存取第一向量寄存器通道。
58.而且,向量加载存储单元可以被配置为将重置后的第一元素地址值和重置后的第二元素地址值递增。向量加载存储单元还可以被配置为根据改变后的vfr值和递增后的元素地址值来确定用于存取第二向量寄存器通道的不同的第一下一地址。并且,向量加载存储单元还可以被配置为根据改变后的vfr值和递增后的元素地址值确定用于存取第一向量寄存器通道的不同的第二下一地址。alu可以被配置为根据不同的第一下一地址存取第二向量寄存器通道,并且根据不同的第二下一地址存取第一向量寄存器通道。
59.在一些实施例中,向量处理器可以包含用于第一向量寄存器的两个附加通道的第三向量寄存器通道和第四向量寄存器通道,使得寄存器包含四个通道(例如,参见图6中所示的向量寄存器通道501a、501b、501c和501d)。用于第三向量寄存器通道和第四向量寄存器通道并与其一起工作的组件可以类似于用于本文描述的第一向量寄存器和第二向量寄存器通道并与其一起工作的组件。例如,参见图6,描绘具有四个通道而不是两个通道的向量第一系统。
60.图4和5示出了根据本公开的一些实施例的方法400的实例性操作。在一些实施例中,诸如向量加载存储单元210的向量加载存储单元可单独地或与向量处理器的其它部件组合地执行或促进方法400的操作。在一些实施例中,可以由向量处理器的向量加载存储单元根据存储在向量加载存储单元中的指令来执行对本文描述的确定、递增和改变。在一些其它实施例中,向量处理器的其它部件可以执行或促进方法400的操作以及本文描述的其它操作。
61.在图4中,可以针对为多个算术逻辑单元(alu)提供输入的多个向量寄存器执行方法400。例如,可以对各自为向量处理器的alu提供输入的第一向量寄存器和第二向量寄存器执行方法400。在此实例中,第一向量寄存器和第二向量寄存器中的每一个可以包含多个通道,并且每个寄存器的通道的数量可为二的幂,并且从寄存器接收输入的alu的数量等于通道的数量。例如,可以对图3和6的第一向量寄存器和第二向量寄存器中的每个向量寄存器执行步骤402或方法400的任何其它步骤。
62.在图4中,方法400开始于步骤402,具有向向量处理器的alu提供输入的多个通道的向量寄存器中的向量第一寄存器(vfr)提供用于存取向量通道的向量第一寄存器值(vfr值)。向量寄存器是向alu提供输入的多个向量寄存器中的寄存器。vfr可以包含例如用于双通道系统的vfr(例如,图3中描绘的vfr 320)或用于四通道系统的vfr(例如,图6中描绘的vfr 520)。向量通道可以由向量寄存器通道(例如,向量寄存器通道301和303或501a、501b、501c和501d)提供。该组向量寄存器通道中的每个通道可以用于向量处理器中的alu(例如,alu 304a和304b或504a、504b、504c和504d)。
63.换言之,步骤402可以包含由vfr提供用于存取通道的向量第一寄存器值(vfr值)。
64.在一些实施例中,相应向量通道的数量可以是二的任何幂(例如,两个通道、四个通道、十六个通道等)。例如,相应向量通道的数量可以为四(例如,参见图6,其中向量第一系统500用于具有四个通道的多通道向量)。而且,相应向量通道的数量可以为二(例如,参
见图3,其中向量第一系统300用于具有两个通道的多通道向量)。
65.相应的向量寄存器通道和存储在相应的向量寄存器通道中的数据(包含向量元素值和元数据)可以包含在向量寄存器(例如,参见向量寄存器202)中的一个中。
66.在步骤404处,方法400继续通过向量寄存器通道(例如,分别在图3和6中所描绘的var寄存器322或522)的索引来提供元素地址值(ea值),例如,参见图3和6中描绘的向量寄存器通道中所示的“ea”下的值“0”、“1”、“2”和“3”。vfr值和ea值各自都可以是存储在标量寄存器(诸如图2所示的标量寄存器204中的寄存器)中的标量。
67.在步骤406处,方法400继续根据vfr值和ea值确定用于存取向量通道的初始地址。对于初始地址的实例,参见图3中描绘的向量元素305a和307a中以及图6中描绘的向量寄存器通道中的全地址“element_0_0”和“element_1_0”。在这些实例中,输入326或526示出了向量处理器的部件(诸如向量加载存储单元)如何使用向量寄存器通道中的元素,其中用于选择元素的输入来自var寄存器322或522的输出值。
68.在步骤408处,方法400继续由alu根据初始地址来存取向量通道。根据初始地址对相应的向量通道的存取可以经由多路复用器(诸如图3中描绘的2:1多路复用器309和311或经由图6中描绘的4:1多路复用器505a、505b、505c及505d)而发生。如这些附图所示,每个通道具有相应的多路复用器。在一些实施例中,该地址用于至少部分地控制多路复用器和对向量通道的存取,例如,每个通道的vfr值和地址可以组合使用以控制用于对应的多路复用器的输入选择和对向量通道的存取。
69.在步骤410处,方法400继续将ea值递增(例如,将var=0改变为var=1)。
70.在步骤412处,方法400继续根据vfr值和递增后的ea值确定用于存取向量通道的下一地址(例如,参见图3中描绘的向量元素305b和307b中以及图6中描绘的向量寄存器通道中的全地址“element_0_1”和“element_1_1”)。
71.在步骤414处,方法400继续由alu(例如,经由图3中描绘的2:1多路复用器309和311,或经由图6中描绘的4:1多路复用器505a、505b、505c和505d)根据下一地址来存取向量通道。如所提到的,该地址可以用于至少部分地控制多路复用器和对向量通道的存取,例如,每个通道的vfr值和地址可以组合使用以控制用于对应的多路复用器的输入选择和对向量通道的存取。
72.在步骤416处,方法400继续确定ea值是否等于向量通道中的一个中的元素的数量。当ea值寄存器的值不等于向量通道中的一个向量通道中的元素的数量时,方法400继续在步骤410处重复对ea值的递增(例如,将var=1改变为var=2,以此类推)。
73.否则,在图5所示的步骤420中的步骤422处,该方法包含当ea值等于向量通道中的一个向量通道中的元素的数量时改变vfr值。
74.例如,如果第一向量寄存器通道301的ea值是“3”(其引用第四元素),则ea值代表性地等于通道中的四个元素;并且因此,在步骤422处改变第一向量寄存器通道301的vfr值。对于此实例,在存在两个通道的情况下,通道的vfr的值“0”可以表示alu将经由其相应多路复用器从该通道存取元素,而通道的vfr的值“1”可以表示alu将经由其相应多路复用器从另一通道存取元素。操作和参数的这种实例性组合可以在多个通道中提供向量第一处理。
75.在步骤424处,方法400继续在图5的子步骤420中在索引中重置ea值。例如,重置可
以包含当一个通道中有四个元素时将通道的ea值从“3”改变为“0”。
76.在步骤426处,方法400继续根据改变后的vfr值和重置后的ea值确定用于存取向量通道的不同初始地址。例如,参见图3和6中的全地址“element_0_0”(当vfr值已改变时,其可以用于通过两个通道中的第二通道的alu输入来存取两个通道中的第一通道的初始元素),并且参见图3和6中的全地址“element_1_0”(当vfr值已改变时,其可以用于通过第一通道的alu输入来存取第二通道的初始元素)。
77.在步骤428处,方法400继续由alu(例如,经由图3中描绘的2:1多路复用器309和311,或经由图6中描绘的4:1多路复用器505a、505b、505c和505d)根据不同的初始地址来存取向量通道。在一些实施例中,该地址用于至少部分地控制多路复用器和对向量通道的存取,例如,每个通道的vfr值和地址可以组合使用以控制用于对应的多路复用器的输入选择和对向量通道的存取。
78.在步骤430处,方法400继续将重置后的ea值递增(例如,将var=0改变为var=1,将var=1改变为var=2,以此类推)。
79.在步骤432处,方法400继续根据改变后的vfr值和递增后的ea值确定用于存取相应向量通道的不同的下一地址。例如,参见全地址“element_0_1”(当vfr值已改变时,其可以用于通过两个通道中的第二通道的alu输入来存取两个通道中的第一通道的下一元素),并且参见全地址“element_1_1”(当vfr值已改变时,其可以用于通过第一通道的alu输入来存取第二通道的下一元素)。
80.在步骤434处,方法400继续由alu(例如,经由图3中描绘的2:1多路复用器309和311,或经由图6中描绘的4:1多路复用器505a、505b、505c和505d)根据不同的下一地址来存取向量通道。在一些实施例中,该地址用于至少部分地控制多路复用器和对向量通道的存取,例如,每个通道的vfr值和地址可以组合使用以控制用于对应的多路复用器的输入选择和对向量通道的存取。
81.在步骤436处,方法400继续确定ea值是否等于向量通道中的一个中的元素的数量。当ea值不等于向量通道中的一个向量通道中的元素的数量时,方法400继续在步骤430处重复对ea值的递增(例如,将var=1改变为var=2,以此类推)。
82.否则,在步骤438处,当ea值等于向量通道的一个向量通道中的元素的数量时,方法400结束或者包含改变vfr值。然后,可以为新数据重复方法400。
83.如所提到的,相应向量通道的数量可以为二(例如,参见图3,其中向量第一系统300用于具有两个通道的多通道向量)。在此类实例中,提供vfr值可以包含由用于向量处理器的算术逻辑单元(alu)的第一向量通道的向量寄存器中的向量第一寄存器(vfr)提供用于存取第一alu的多个向量通道中的第一向量通道的vfr值。而且,在此类实例中,提供vfr值可以包含为第二alu的第二向量通道提供vfr值,该vfr值用于存取多个向量通道中的第二向量通道。
84.而且,在上一个提到的实例中,确定初始地址可以包含根据vfr值和元素地址值确定用于存取第一向量通道的第一初始地址。确定初始地址还可以包含根据vfr值和元素地址值确定用于存取第二向量通道的第二初始地址。根据初始地址存取向量通道可以包含由alu中的第一alu根据第一初始地址存取第一向量通道。并且,根据初始地址存取向量通道可以包含由alu中的第二alu根据第二初始地址存取第二向量通道。
85.而且,在上一个提到的实例中,确定下一地址可以包含根据vfr值和递增后的元素地址值确定用于存取多个向量通道中的向量通道的第一下一地址。确定下一地址还可以包含根据vfr值和递增后的元素地址值确定用于存取多个向量通道中的向量通道的第二下一地址。根据下一地址存取向量通道可以包含由第一alu根据第一下一地址存取第一向量通道。而且,在此类实例中,根据下一地址存取向量通道可以由第二alu根据第二下一地址存取第二向量通道。
86.而且,在上一个提到的实例中,确定不同的初始地址可以包含根据改变后的vfr值和重置后的元素地址值确定用于存取第二向量通道的不同的第一初始地址。而且,确定不同的相应初始地址可以包含根据改变后的vfr值和重置后的元素地址值确定用于存取第一向量通道的不同的第二初始地址。在此类范例中,根据不同的初始地址存取向量通道可以包含由第一alu根据不同的第一初始地址存取第二向量通道。对向量通道的这种存取还可以包含由第二alu根据不同的第二初始地址来存取第一向量通道。
87.而且,在上一个提到的实例中,确定不同的下一地址可以包含根据改变后的vfr值和递增后的元素地址值确定用于存取第二向量通道的不同的第一下一地址。确定不同的下一地址的确定还可以包含根据改变后的vfr值和递增后的元素地址值确定用于存取第一通道的不同的第二下一地址。在此类范例中,根据不同的下一地址存取向量通道可以包含由第一alu根据不同的第一下一地址存取第二向量通道。而且,对相应向量通道的这种存取可以包含由第二alu根据不同的第二下一地址存取第一向量通道。
88.如所提到的,可以由向量处理器的向量加载存储单元根据存储在向量加载存储单元中的指令来至少执行对本文描述的确定、递增和改变。
89.而且,在一些实施例中,向量处理器可以包含用于第一向量寄存器的两个附加通道的第三向量寄存器通道和第四向量寄存器通道,使得寄存器包含四个通道(例如,参见图6中所示的向量寄存器通道501a、501b、501c和501d)。用于第三向量寄存器通道和第四向量寄存器通道并与其一起工作的组件可以类似于用于本文描述的第一向量寄存器和第二向量寄存器通道并与其一起工作的组件。
90.图6示出了根据本公开的一些实施例的具有四个通道的实例性向量第一系统500。向量第一系统500与向量第一系统300有些类似;然而,系统500还包含用于第一向量寄存器的两个附加通道的第三向量寄存器通道和第四向量寄存器通道,使得寄存器包括四个通道(例如,参见向量寄存器通道501a、501b、501c和501d)。
91.在图6中,alu(例如,alu 504a、504b、504c和504d)还包含第一向量寄存器和第二向量寄存器的第三通道输入和第四通道输入。第一通道输入(例如,通道输入507a)用于从第一向量寄存器的第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的输出。第二通道输入(例如,通道输入509a)用于从第一向量寄存器的第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的输出。第三通道输入(例如,通道输入511a)用于从第一向量寄存器的第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的输出。并且,第四通道输入(例如,通道输入513a)用于从第一向量寄存器的第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的输出。换言之,alu具有来自第一向量寄存器的四个通道输入,这四个通道输入各自可以接收从第一向
量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的信息。然而,这四个通道输入中的每一个唯一地对接属于相应向量通道的相应多路复用器的相应输出。在一些实施例中,alu中的每一个包含alu输出,该alu输出是基于alu的至少一个功能以及第一向量寄存器和第二向量寄存器的相同通道的通道输入(例如,参见alu输出514a、514b、514c和514d)。
92.而且,alu(例如,alu 504a、504b、504c和504d)还包含用于第一向量寄存器和第二向量寄存器的第三通道输入和第四通道输入(除了第二向量寄存器的作为alu的通道输入的输出之外,未示出该第二向量寄存器的部件

例如,参见507b、509b、511b和513b)。第一通道输入(例如,通道输入507b)用于从第二向量寄存器的第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的输出。第二通道输入(例如,通道输入509b)用于从第二向量寄存器的第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的输出。第三通道输入(例如,通道输入511b)用于从第二向量寄存器的第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的输出。并且,第四通道输入(例如,通道输入513b)用于从第二向量寄存器的第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的输出。换言之,alu具有来自第二向量寄存器的四个通道输入,这四个通道输入各自可以接收从第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道传送的信息。类似地,这四个通道输入中的每一个唯一地对接属于相应向量通道的相应多路复用器的相应输出。在一些实施例中,alu中的每一个包含alu输出,该alu输出是基于alu的至少一个功能以及第一向量寄存器和第二向量寄存器的相同通道的通道输入(例如,参见alu输出514a、514b、514c和514d)。
93.如图所示,对于向量第一系统500,第一2:1多路复用器由第一4:1多路复用器505a代替,并且第二2:1多路复用器由第二4:1多路复用器505b代替。系统500还包含第三4:1多路复用器505c和第四4:1多路复用器505d。
94.第一4:1多路复用器505a可以被配置为接收来自第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道和第四向量寄存器通道的输出作为输入(例如,输入506)。第一4:1多路复用器505a还可以被配置为接收vfr值作为选择输入(例如,选择输入524a)。在一些实例中,从标量寄存器(例如,标量寄存器515中的标量寄存器)的输出接收用于第一4:1多路复用器的选择输入。第一4:1多路复用器505a还可以被配置为基于选择输入而选择来自第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道的输出,并且将选定输出传送到alu的第一通道输入(例如,参见输入507a)。
95.第二4:1多路复用器505b可以被配置为接收来自第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道和第四向量寄存器通道的输出作为输入(例如,输入508)。第二4:1多路复用器505b还可以被配置为接收vfr值作为选择输入(例如,选择输入524b)。在一些实例中,从标量寄存器(例如,标量寄存器515中的标量寄存器)的输出接收用于第二4:1多路复用器的选择输入。第二4:1多路复用器505b还可以被配置为基于选择输入而选择来自第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道的输出,并且将选定输出传送到alu的第二通道输入(例如,参见输入509a)。
96.第三4:1多路复用器505c可以被配置为接收来自第一向量寄存器通道、第二向量
寄存器通道、第三向量寄存器通道和第四向量寄存器通道的输出作为输入(例如,输入510)。第三4:1多路复用器505c还可以被配置为接收vfr值作为选择输入(例如,选择输入524c)。在一些实例中,从标量寄存器(例如,标量寄存器515中的标量寄存器)的输出接收用于第三4:1多路复用器的选择输入。第三4:1多路复用器505c还可以被配置为基于选择输入而选择来自第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道的输出,并且将选定输出传送到alu的第三通道输入(例如,参见输入511a)。
97.第四4:1多路复用器505d可以被配置为接收来自第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道和第四向量寄存器通道的输出作为输入(例如,输入512)。第四4:1多路复用器505d还被配置为接收vfr值作为选择输入(例如,选择输入524d)。在一些实例中,从标量寄存器(例如,标量寄存器515中的标量寄存器)的输出接收用于第四4:1多路复用器的选择输入。第四4:1多路复用器505d还被配置为基于选择输入而选择来自第一向量寄存器通道、第二向量寄存器通道、第三向量寄存器通道或第四向量寄存器通道的输出,并且将选定输出传送到alu的第四通道输入(例如,参见输入513a)。
98.而且,标量寄存器515可以包含可编程标量寄存器。可使用可编程标量寄存器,使得由向量寄存器(例如,具有通道501a、501b、501c和501d的向量寄存器)提供的向量可由通过可编程标量寄存器中的一个提供且编程到其中的标量来操作。例如,运算中的一个可以包含向量乘以标量值(例如,向量a(i)
×
标量p)。
99.已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现前述详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员通常使用的,从而最有效地将它们的工作实质传递到其它领域的技术人员。本文的算法通常是指得到期望结果的操作的自相容序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采用能够被存储、组合、比较以及以其它方式被操纵的电或磁信号的形式。有时主要是为了公共使用的原因,将这些信号称为位、值、元素、符号、字符、项、数字、或者类似名称,经证实这是方便的。
100.然而,应当记住,所有这些和类似术语将与适当物理量关联,并且仅仅是应用于这些量的方便标签。本公开可以指代计算机系统或类似的电子计算装置的动作和过程,所述计算机系统或类似的电子计算装置将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为被类似地表示为所述计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
101.本公开还涉及一种用于执行本文的操作的设备。这种设备可以被具体构造用于预期目的,或者它可以包含由存储在计算机中的计算机程序选择性地激活或重新配置的计算机。此类计算机程序可以被存储在计算机可读存储介质中,所述计算机可读存储介质诸如但不限于包含软盘、光盘、cd

rom和磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光学卡的任何类型的磁盘或适合于存储电子指令的任何类型的介质,所有这些都各自耦合到计算机系统总线。
102.本文呈现的算法和显示与任何特定计算机或其它设备没有固有的关联。各种系统可以与根据本文的教导的程序一起使用,或者可以证明构造更专用的设备来执行所述方法是方便的。如下文描述中所阐述的,将出现用于各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应当理解,可以使用各种编程语言来实施如本文所述的本公开
的教导。
103.本公开可以被部分地提供作为计算机程序产品或软件,其可以包含上面存储有指令的机器可读介质,所述指令可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,诸如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储介质、光学存储介质、闪存组件等。
104.在前述说明书中,已经参考本公开的特定实例性实施例描述了本公开的实施例。显而易见的是,在不脱离如所附权利要求中阐述的本公开的实施例的更宽范围和精神的情况下,可以对其进行各种修改。因此,应以说明性意义而不是限制性意义来理解本说明书和附图。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1