一种面向通用计算的矢量处理器及数据处理方法与流程

文档序号:32341324发布日期:2022-11-26 09:53阅读:106来源:国知局
一种面向通用计算的矢量处理器及数据处理方法与流程

1.本技术实施例涉及互联网信息技术领域,尤其涉及一种面向通用计算的矢量处理器及数据处理方法。


背景技术:

2.在对向量型的数据进行处理的过程中,通常利用矢量处理器(vector processing unit,vpu)来实现部分数据处理,现有技术中,由于矢量处理器所支持的通道数量是通过硬件固化实现的,因此无法进行修改,没有对应的优化调度策略,各个通道中的并行指令数量也是固定的。
3.可见,现有技术中通道数量和并行指令数量的固化,使得数据处理(或称向量运算)的过程缺少灵活性,容易造成通道资源的浪费,例如在面向人工智能应用和大型灵活数据驱动应用时,灵活性有所欠缺,具体来说,单个设计只有单个通道数设定,当驱动运行不同的人工神经网络计算阵列时,单一的硬件通道架构难以进行灵活的适配调度。


技术实现要素:

4.本技术实施例提供一种面向通用计算的矢量处理器及数据处理方法,用以提高矢量处理器进行数据处理的灵活性,减少通道资源和/或并行指令资源的浪费,提高数据处理的效率。
5.第一方面,本技术提供了一种面向通用计算的数据处理方法,包括:根据待处理数据的第一数据量确定矢量处理器中通道单元的第一数量和/或每个通道单元内的并行指令的第一数量,根据所述待处理数据的第二数据量确定矢量处理器中通道单元的第二数量和/或每个通道单元内的并行指令的第二数量;通过通道单元的第一数量和/或并行指令的第一数量执行待处理数据中第一数据量的数据的处理,通过通道单元的第二数量和/或并行指令的第二数量执行待处理数据中第二数据量的数据的处理,第一数据量与第二数据量不同,通道单元的第一数量与通道单元的第二数量不同,和/或并行指令的第一数量与并行指令的第二数量不同。
6.基于该方法,动态调整的通道数量使得目标处理器可以根据计算指令实现不同的数据驱动,以实现计算峰值和能耗平衡;同时,单个通道内可调整的并行指令数量使得目标处理器更加灵活地处理数据竞争,最大化发挥数据处理过程中单指令多数据的速度优势。也就是说,采用本技术实施例所提供的矢量处理器,使得本技术提供的数据处理方法能够更加灵活且能适用于人工神经网络和无线通信数据传输等数据密集型计算,实现更高性能和更高灵活度的矢量处理器。其中,第一数据量的数据和第二数据量的数据可以属于相同的待处理数据,例如,待处理数据对应于一个任务。
7.在一种可能的设计中,该方法还包括:根据通道单元的第一数量和/或并行指令的第一数量,通过可重构结构生成用于处理待处理数据的通道单元;根据通道单元的第二数量和/或并行指令的第二数量,通过可重构结构生成用于处理待处理数据的通道单元。
8.采用该设计,可以通过可重构技术设定矢量处理器中用于处理待处理数据的通道单元的数量,或者设定每个通道单元内的并行指令的数量,从而提高矢量处理器进行数据处理的灵活性,减少通道资源和/或并行指令资源的浪费。
9.在一种可能的设计中,将超过通道单元的第一数量的通道单元重构为控制决策单元和/或存储单元;将超过通道单元的第二数量的通道单元重构为控制决策单元和/或存储单元;将超过并行指令的第一数量的指令存储字段重构为数据存储字段和/或控制决策字段;将超过并行指令的第二数量的指令存储字段重构为数据存储字段和/或控制决策字段。
10.采用该设计,可以合理利用矢量处理器中未用于数据处理的资源,进一步减少资源浪费。
11.第二方面,本技术提供了一种面向通用计算的数据处理方法,包括:矢量处理器执行数据处理,获得第一数据;所述矢量处理器的逻辑判断模块进行逻辑运算,所述逻辑运算包括以下中的至少一项:所述矢量处理器根据所述第一数据的处理状态,确定将所述第一数据存储在所述矢量处理器内部或者存储在存储单元内部,所述处理状态用于指示当前是否存在所述第一数据的处理需求,所述存储单元不属于所述矢量处理器;决定是否上报工作状态;比较数值的大小;判断特定条件是否满足。
12.基于该方法,矢量处理器能够确定通过第一数据的处理状态确定第一数据的存储位置,减少不必要的数据传输,避免了数据经过总线传播导致的时延过大的问题,提高了数据处理的效率。
13.在一种可能的设计中,处理状态用于指示当前存在第一数据的处理需求,矢量处理器根据第一数据的处理状态,确定将数据存储在矢量处理器内部或者存储单元内部,包括:矢量处理器将第一数据存储在矢量处理器内部;
14.或者,
15.处理状态用于指示当前不存在第一数据的处理需求,矢量处理器根据第一数据的处理状态,确定将数据存储在矢量处理器内部或者存储单元内部,包括:矢量处理器将第一数据存储在存储单元内部。
16.在一种可能的设计中,矢量处理器将第一数据存储在矢量处理器内部,包括:矢量处理器将第一数据存储在矢量处理器中的存算一体模块。
17.采用该设计,矢量处理器具备了存算一体的功能,因此可以直接进行存储、读取和写入的运算,无需回传数据结果,能够匹配高速运算的机制,最大化的发挥架构整体计算性能,提升无论是人工智能还是无线通信的数据密集应用的计算表现。
18.在一种可能的设计中,存储单元为存算一体模块。
19.采用该设计,存储单元可以承担一部分矢量处理器或者标量处理器的功能,提高数据处理的灵活性,减轻数据处理系统的负担。
20.在一种可能的设计中,该方法还包括:矢量处理器向标量处理器发送矢量处理器的工作状态信息。
21.采用该设计,矢量处理器可以向标量处理器回传自身的工作状态,标量处理器能够获知矢量处理器的工作状态,从而提高标量处理器所发出的指令的准确性。
22.第三方面,本技术提供了一种面向通用计算的数据处理方法,包括:可重构阵列和标量处理器确定第一指令,第一指令用于指示第二数据的处理,第二数据是矢量处理器从
总线或存储单元获取的待处理数据;可重构阵列接收来自于标量处理器的第一指令;可重构阵列向矢量处理器发送第二指令,第二指令根据第一指令确定;可重构阵列和矢量处理器根据第二指令处理第二数据。
23.基于该方法,数据处理系统可以包括一个可重构矩阵,该可重构矩阵可以通过重构来分担标量处理器或矢量处理器的功能,从而数据处理系统可以复用上述任意一种数据处理方法,降低了相关芯片的开发难度,提高了数据处理的灵活性。
24.在一种可能的设计中,该方法还包括:可重构阵列接收来自于矢量处理器的第三指令,第三指令用于指示矢量处理器的工作状态信息和/或第二数据的处理结果;可重构阵列向标量处理器发送第四指令,第四指令根据第三指令确定。
25.第四方面,本技术还提供了一种面向通用计算的数据处理装置,如矢量处理器,所述装置包括判断模块和处理模块,该装置用于执行时实现如上述第一方面及其任一可能的设计所述数据处理方法的步骤。
26.第五方面,本技术还提供了一种面向通用计算的数据处理装置,如矢量处理器,所述装置包括判断模块和处理模块,该装置用于执行时实现如上述第二方面及其任一可能的设计所述数据处理方法的步骤。
27.第六方面,本技术还提供了一种面向通用计算的数据处理装置,如矢量处理器,所述装置包括通信模块和处理模块,该装置用于执行时实现如上述第三方面及其任一可能的设计所述数据处理方法的步骤。
28.第七方面,本技术还提供了一种电子设备,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述第一方面及其任一可能的设计所述数据处理方法的步骤,或者,执行存储器中存储的计算机程序时实现如上述第二方面及其任一可能的设计所述数据处理方法的步骤,或者,执行存储器中存储的计算机程序时实现如上述第三方面及其任一可能的设计所述数据处理方法的步骤。
29.第八方面,本技术还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面及其任一可能的设计所述数据处理方法的步骤,或者,实现如上述第二方面及其任一可能的设计所述数据处理方法的步骤,或者,实现如上述第三方面及其任一可能的设计所述数据处理方法的步骤。
30.第九方面,本技术还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现如第一方面及其任一可能的设计所述数据处理方法的步骤,或者,实现如第二方面及其任一可能的设计所述数据处理方法的步骤,或者,实现如第三方面及其任一可能的设计所述数据处理方法的步骤。
31.另外,第二方面至第九方面所带来的技术效果可参见上述第一方面的描述,此处不再赘述。
附图说明
32.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1为本技术实施例提供的一种系统架构;
34.图2为本技术实施例提供的一种向量处理器的架构;
35.图3为本技术实施例提供的另一种向量处理器的架构;
36.图4为本技术实施例提供的一种数据处理方法的流程示意图;
37.图5为本技术实施例提供的一种数据处理系统的结构示意图;
38.图6为本技术实施例提供的另一种数据处理方法的流程示意图;
39.图7为本技术实施例提供的另一种数据处理系统的结构示意图;
40.图8为本技术实施例提供的另一种数据处理系统的结构示意图;
41.图9为本技术实施例提供的另一种数据处理方法的流程示意图;
42.图10为本技术实施例提供的一种数据处理装置的模块化结构示意图;
43.图11为本技术实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
44.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作可选的详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
45.本技术实施例中,针对矢量处理器中通道数量和并行指令数量的固化,使得数据处理的过程缺少灵活性,容易造成通道资源的浪费的问题,提出了一种可重构的矢量处理器,用以实现本技术提供的数据处理方法。
46.下面对本技术可能涉及的部分技术术语进行介绍,以便本领域技术人员理解。
47.一、可重构:可重构体系结构是指如果某一计算系统能够利用可重用的硬件资源,根据不同的应用需求,灵活的改变自身的体系结构,以便为每个特定的应用需求提供与之相匹配的体系结构,那么这一计算系统就称为可重构的计算系统,其体系结构称为可重构的体系结构。
48.二、核心处理器:又称中央处理器(或称标量处理器,central processing unit,cpu),作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。冯诺依曼体系结构是现代计算机的基础。在该体系结构下,程序和数据统一存储,指令和数据需要从同一存储空间存取,经由同一总线传输,无法重叠执行。根据冯诺依曼体系,cpu的工作分为以下5个阶段:取指令阶段、指令译码阶段、执行指令阶段、访存取数和结果写回。
49.中央处理器,是电子计算机的主要设备之一,电脑中的核心配件。其功能主要是解释计算机指令以及处理计算机软件中的数据。cpu是计算机中负责读取指令,对指令译码并执行指令的核心部件。
50.三、矢量处理器:又称为向量处理器(或称向量处理机、向量机,vector processor system,vps),是面向向量型并行计算,以流水线结构为主的并行处理计算机系统。一个向量处理器通常由一个普通的流水化的标量单元加上一个向量单元组成。大多数的向量处理器所允许的向量运算包括浮点运算,整型运算或者逻辑运算。
51.图1为本技术实施例提供的一种fujitsu vp2000系列系统的系统架构,也就是一种向量机的系统架构。该向量机包括系统存储器、主存储器部分、通道处理机、向量部件和
标量部件,各部分组件之间可以相互交互。其中,向量部件包括两个装入/存储流水线、一个屏蔽存储器、一个向量存储器、两个屏蔽流水线、两个乘和加/逻辑流水线和一个除流水线;标量部件包括一个缓冲存储器和一个标量执行部件。
52.图2为本技术实施例提供的一种向量处理器的架构,该向量处理器由标量处理器、矢量处理器、存储单元(例如随机存取存储器(random access memory,ram),或者只读存储器(read only memory,rom))、总线和输入输出端口构成,其中,标量处理器、矢量处理器和存储单元均连接在总线上,并通过总线与外部系统交互。采用该向量处理器进行数据处理的计算流程通常如下:
53.1、标量处理器向矢量处理器发送指令,用以控制矢量处理器的计算开始和计算地址、数据等具体操作;
54.2、矢量处理器收到指令后,在存储单元中读取对应的数据,并按照指令规定进行流水化矢量操作,同时向标量处理器报告当前工作状态为计算中;
55.3、矢量处理器计算完成之后,将计算结果按照指令规定存储至对应的存储单元位置,并向标量处理器告知计算已完成;
56.4、标量处理器收到矢量处理器的计算完成信号后,指示矢量处理器进行下一计算或不进行任何计算。
57.5、当标量处理器计算过程中出现错误时,也会将出错指示按照特定格式汇报给标量处理器,并由标量处理器重新发起计算指示。
58.图3为本技术实施例提供的另一种处理器系统的架构,其中包括矢量处理器ara和标量处理器ariane,两者协调工作。具体的,矢量处理器ara可包括控制器(sequencer)、向量存储单元(vector load/store unit,vlsu)、指令传递单元(slide unit,sldu)和通道单元(lane organization)等结构。标量处理器ariane可包括两个记分牌(scoreboard)模块、规则文件读取(reg file read)模块、分发(issue)模块、寄存器(control and status register,csr)写入(write)模块。该处理器系统还包括一个内存互连(memory interconnect)模块和一个数据宽度转换器(data width converter)。
59.四、存算一体:存算一体的核心思想是将部分或全部的计算移到存储中,计算单元和存储单元集成在同一个芯片,在存储单元内完成运算,让存储单元具有计算能力。这种极度近邻的方式完全消除了数据移动的延迟和功耗,彻底解决了存储墙问题。
60.五、人工神经网络:简称神经网络,是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,它以人工神经元(或称感知器)为节点,按不同的连接方式构成神经网络。
61.下面结合图4对本技术实施例提供的一种面向通用计算的数据处理方法进行说明。该方法可由数据处理系统执行,数据处理系统至少包括一个矢量处理器。可选的,数据处理系统可以包括图3中向量处理器所示的任意一个或多个结构。
62.示例性的,矢量处理器可以包括控制器(或称控制单元)、指令传递单元、向量存储单元和通道单元。其中,控制器负责跟踪在矢量处理器(例如ara)上运行的矢量指令,将它们分发给不同的执行单位;指令传递单元负责处理必须一次访问所有虚拟路由转发(virtual routing forwarding,vrf)返回(bank)的指令,所支持的操作包括将元素插入到向量中、从向量中提取元素、向量打乱和向量滑动,向量加;向量存储单元负责确定将访问
哪个内存地址;通道单元负责执行多条平行矢量指令。
63.如图4所示,该面向通用计算的数据处理方法的流程具体包括:
64.s101:数据处理系统根据待处理数据的第一数据量确定矢量处理器中通道单元的第一数量和/或每个通道单元内的并行指令的第一数量;数据处理系统根据待处理数据的第二数据量确定矢量处理器中通道单元的第二数量和/或每个通道单元内的并行指令的第二数量。需要说明的是,前述确定通道单元的第一数量和并行指令的第一数量的动作,与前述确定通道单元的第二数量和并行指令的第二数量的动作没有先后顺序,也就是说,数据处理系统可以先执行其中的任一动作,本技术不做限制。其中,第一数据量的数据和第二数据量的数据可以属于相同的待处理数据。可选的,待处理数据对应于一个任务。
65.具体的,数据处理系统确定矢量处理器中通道单元的第一数量为m1个;和/或,数据处理系统确定每个通道单元内的并行指令的第一数量为j1个。数据处理系统确定矢量处理器中通道单元的第二数量为m2个;和/或,数据处理系统确定每个通道单元内的并行指令的第二数量为j2个。应理解,待处理数据的数据量越大,则计算需求越大,需要调度的通道数量也越多;同理,对于单个通道,待处理数据的数据量越大,则计算需求越大,需要调度的通道内的并行指令的数量越大。其中,m1、m2、j1和j2为正整数。
66.可选的,当数据处理系统确定矢量处理器中通道单元的数量为至少两个时,该至少两个通道单元内的并行指令的数量可以相同或不同,本技术不做限制。
67.可选的,数据处理系统可以确定最大通道数量和/或最大并行指令数量。
68.具体的,最大通道数量为n个,最大并行指令数量为k个。其中,n、k为正整数。举例来说,若矢量处理器中的总通道数为20个,则数据处理系统可以确定最大通道数量为20个(或小于20个);若每个通道单元内的总并行指令数量为15个,则数据处理系统可以确定最大并行指令数量为15个(或小于15个)。应理解,数据处理系统所确定的通道单元的第一数量m1和第二数量m2均应该小于或等于最大通道数量n;数据处理系统所确定的并行指令的第一数量j1和第二数量j2均应该小于或等于最大并行指令数量k。
69.可选的,可以由图3所示的矢量处理器中的控制器执行前述步骤s101中的动作。
70.在一种可能的设计中,数据处理系统还可以根据通道单元的第一数量和/或并行指令的第一数量,通过可重构结构生成用于处理待处理数据的通道单元。数据处理系统还可以根据通道单元的第二数量和/或并行指令的第二数量,通过可重构结构生成用于处理待处理数据的通道单元。
71.可选的,该数据处理系统所包括的矢量处理器为一种可重构的矢量处理器,该矢量处理器可以根据计算需求提供与之匹配的体系结构。具体的,矢量处理器可以根据计算配置需要,对通道数量和/或通道内的并行指令数量进行重构,从而满足待处理数据的计算需求。这样,可重构的矢量处理器可以根据业务需要,灵活地调度进行矢量处理的通道数量,以及将并行的矢量指令进行灵活的硬件部署,以规避数据冒险,减少队列等待时延,提高运算峰值速率。
72.可选的,矢量处理器的调度机制可以是性能优先或者功耗优先。
73.在一种可能的设计中,通道单元采用可重构结构,则数据处理系统可以将超过通道单元的第一数量的通道单元重构为控制决策单元和/或存储单元;数据处理系统可以将超过通道单元的第二数量的通道单元重构为控制决策单元和/或存储单元;数据处理系统
可以将超过并行指令的第一数量的指令存储字段重构为数据存储字段和/或控制决策字段;数据处理系统可以将超过并行指令的第二数量的指令存储字段重构为数据存储字段和/或控制决策字段。可选的,仅当采用性能优先的调度机制时,执行本设计所示的动作;反正,当采用功耗优先的调度机制时,不执行本设计所示的动作,即未被调动的通道和并行指令均不用于计算。
74.示例性的,数据处理系统可以针对未被调用的n-m1个(或者n-m2个)通道单元,采用可重构技术,将其重构为控制决策单元和/或存储单元。其中,存储单元可以用于中间数据的存储和读取;控制决策单元可以用于辅助控制器,进行数据调度的判断。这样,能够最大化的利用各个通道单元,从而提高芯片性能。
75.和/或,数据处理系统可以针对未被调用的k-j1个(或者k-j2个)并行指令相应的存储空间或处理空间/结构,采用可重构技术,将其指令重构为存储字段或控制决策字段,存储字段例如可以是存储空间和/或处理资源等。其中,存储字段用于计算中间数据的存储和读取;控制决策字段用于辅助控制器,进行数据调度的判断。这样,能够最大化的利用各个并行指令,从而提高指令性能。
76.s102:数据处理系统通过通道单元的第一数量和/或并行指令的第一数量执行待处理数据的处理;数据处理系统通过通道单元的第二数量和/或并行指令的第二数量执行待处理数据的处理。需要说明的是,前述通过通道单元的第一数量和/或并行指令的第一数量执行待处理数据的处理的动作,与前述通过通道单元的第二数量和/或并行指令的第二数量执行待处理数据的处理的动作没有先后顺序,也就是说,数据处理系统可以先执行其中的任一动作,本技术不做限制。
77.具体的,数据处理系统可以调用m1个通道单元,并通过该m1个通道单元执行待处理数据的处理;和/或,数据处理系统可以调用j1个并行指令,并通过该j1个并行指令执行待处理数据的处理。数据处理系统可以调用m2个通道单元,并通过该m2个通道单元执行待处理数据的处理;和/或,数据处理系统可以调用j2个并行指令,并通过该j2个并行指令执行待处理数据的处理。
78.采用以上方法,动态调整的通道数量使得目标处理器可以根据计算指令实现不同的数据驱动,以实现计算峰值和能耗平衡;同时,单个通道内可调整的并行指令数量使得目标处理器更加灵活地处理数据竞争,最大化发挥数据处理过程中单指令多数据的速度优势。也就是说,采用本技术实施例所提供的矢量处理器,使得本技术提供的数据处理方法能够更加灵活且能适用于人工神经网络和无线通信数据传输等数据密集型计算,实现更高性能和更高灵活度的矢量处理器。
79.图5为本技术实施例提供的另一种数据处理系统的设计,该数据处理系统至少包括一个矢量处理器和一个标量处理器。具体的,该数据处理系统由标量处理器、矢量处理器、存储单元、总线和输入输出端口构成,其中,标量处理器、矢量处理器和存储单元均连接在总线上,并通过总线与外部系统交互。可选的,矢量处理器可以是一种可重构的矢量处理器。
80.需要说明的是,数据处理(或称向量运算)包括矢量运算(或称数据运算)和标量运算(或称逻辑运算)两部分,矢量运算例如加运算、乘运算和卷积运算等。现有技术在对向量型的数据进行处理的过程中,矢量处理器只能实现矢量运算部分的数据处理,而逻辑运算
的部分则需要由标量处理器来完成。
81.下面结合图6对本技术实施例提供的另一种面向通用计算的数据处理方法进行说明,该流程具体包括:
82.s201:矢量处理器执行数据处理,获得第一数据。例如,矢量处理器获得根据当前指令对数据进行处理之后得到的第一数据。
83.s202:矢量处理器通过逻辑判断模块进行逻辑运算,所述逻辑运算包括以下中的至少一项:
84.(1)根据第一数据的处理状态,确定将第一数据存储在矢量处理器内部或者存储在存储单元内部。处理状态用于指示当前是否存在第一数据的处理需求,存储单元不属于矢量处理器。也就是说,矢量处理器可以根据第一数据否存在处理需求来确定第一数据的存储位置。
85.示例性的,当第一数据存在处理需求时,矢量处理器可以确定将第一数据存储在矢量处理器内部;当第一数据不存在处理需求时,矢量处理器可以确定将第一数据存储在存储单元内部。或者,当第一数据存在处理需求时,矢量处理器可以确定将第一数据存储在存储单元内部;当第一数据不存在处理需求时,矢量处理器可以确定将第一数据存储在矢量处理器内部。应理解,矢量处理器确定的第一数据的存储方式和第一数据的处理状态之间的对应关系不限于前述关系,本申情不做限制。
86.应理解,步骤s202中矢量处理器确定第一数据的存储位置的运算是一种逻辑运算,也就是说,本技术中矢量处理器可以进行部分逻辑运算。
87.可选的,矢量处理器可以通过总线将第一数据存储在存储单元内部。
88.在步骤s202的一种可能的设计中,处理状态用于指示当前存在第一数据的处理需求,矢量处理器根据第一数据的处理状态,确定将数据存储在矢量处理器内部或者存储单元内部,则矢量处理器将第一数据存储在矢量处理器内部。或者,处理状态用于指示当前不存在第一数据的处理需求,矢量处理器根据第一数据的处理状态,确定将数据存储在矢量处理器内部或者存储单元内部,则矢量处理器将第一数据存储在存储单元内部。
89.(2)决定是否上报工作状态。
90.在一种可能的设计中,逻辑判断模块还可以决定是否上报工作状态。如果决定上报工作状态,则可由矢量处理器向标量处理器发送矢量处理器的工作状态信息。
91.示例性的,矢量处理器可以向标量处理器上报矢量处理器当前的工作状态为计算中;或者,矢量处理器不向标量处理器上报矢量处理器当前的工作状态。这样,矢量处理器可以向标量处理器回传自身的工作状态,标量处理器能够获知矢量处理器的工作状态,从而提高标量处理器所发出的指令的准确性。
92.(3)比较数值的大小和/或判断特定条件是否满足。
93.也就是说,逻辑判断模块还可用于执行数据处理过程中的比较大小和/或判断是否满足数学条件等逻辑运算。本技术对于逻辑判断模块比较数值的大小和/或判断特定条件是否满足的方式不作具体限定。
94.可选的,在执行步骤s202所示的动作之前,矢量处理器可以确定第一数据的处理状态。示例性的,当数据的处理状态为终止时,矢量处理器确定第一数据的状态为不存在处理需求;当数据的处理状态为未终止时,矢量处理器确定第一数据的状态为存在处理需求。
其中,终止是指该数据接下来没有其他计算。未终止是指该数据处理结束之时已经产生下一轮的计算,比如在尚未完成该数据的处理时,矢量处理器已收到来自于标量处理器的针对该数据的下一轮计算的指示。
95.在一种可能的设计中,在执行步骤s202所示的动作之前,标量处理器可以向矢量处理器发送指令,该指令可以用于指示矢量处理器将第一数据存储在存储单元内部。应理解,该指令还可以用于指示矢量处理器开始数据处理、计算地址或计算其他数据等具体操作。
96.相应的,矢量处理器接收来自标量处理器的指令,并响应于该指令,执行包括但不限于步骤s202所示的动作。
97.可选的,矢量处理器可以按照指令中的规定执行流水化矢量操作。
98.可选的,矢量处理器可以向标量处理器发送计算已完成的响应信息。这样,矢量处理器可以将处理结果回传给标量处理器。
99.相应的,标量处理器在收到来自矢量处理器的计算已完成的响应消息之后,可以向矢量处理器发送执行下一次计算或者不执行计算的指令。
100.可选的,当标量处理器在计算过程中出现错误时,标量处理器可以按照预设的格式向矢量处理器发送错误指示;标量处理器还可以重新发起计算指示。
101.在一种可能的设计中,如图5所示,矢量处理器包括逻辑判断模块(或单元),逻辑判断模块可以与矢量处理器可以进行实时信息交互,无需经过总线。具体的,逻辑判断模块具备人工智能或无线信号处理的逻辑判断功能,即逻辑判断模块可以进行逻辑运算,因此使得矢量处理器能够在与人工智能或无线信号处理逻辑配合时更快地进行矢量运算。可选的,该逻辑判断模块可以是一种可重构的单元,当数据处理系统不需要加快数据处理和判断时,矢量处理器可以将该逻辑判断模块重构为通道单元或者存储单元。
102.示例性的,逻辑判断模块可以根据第一数据的处理状态,确定将第一数据存储在矢量处理器内部或者存储在存储单元内部。例如,逻辑判断模块可以决定是否将计算结果按照指令规定存储至对应的存储单元位置。
103.在一种可能的示例中,如果未将计算结果按照指令规定存储在存储单元内部,即可将数据存储在矢量存储器内部,可由逻辑判断模块决定当前处理器中数据的下一步操作。
104.在一种可能的示例中,如果逻辑判断模块决定将计算结果按照指令规定存储,逻辑判断模块也可以按照自行设定的指令进入下一轮操作。
105.在一种可能的示例中,指令指示将数据存储至存储单元,且逻辑判断模块未决定将数据存储在本地,则可以执行常规操作,即将数据存储至存储单元。
106.可选的,逻辑判断模块可以确定是否向标量处理器发送计算已完成的响应信息。
107.需要说明的是,现有技术中的矢量处理器只能进行矢量运算部分,而逻辑运算的部分只能在标量处理器中进行,逻辑运算例如确定第一数据的存储位置,然而,每一个数据处理过程都包括较多的逻辑运算(例如人工智能应用中每一个数据处理均有数量较多的判断逻辑),就不得不将数据从矢量处理器传输到标量处理器中进行运算,而矢量处理器和标量处理器之间的数据传输需要经过总线,因此会导致较大程度的时延,降低数据处理的速度。
108.而采用以上方法,矢量处理器除了可以进行矢量运算以外,还可以在矢量处理器的通道单元中进行部分逻辑运算,避免了数据经过总线传播导致的时延过大的问题,提高了数据处理的效率。
109.在一种可能的设计中,图7为本技术实施例提供的另一种数据处理系统的设计,该数据处理系统由标量处理器、矢量处理器、存储单元、总线和输入输出端口构成,其中,标量处理器、矢量处理器和存储单元均连接在总线上,并通过总线与外部系统交互。该数据处理系统可以实现图6中提供的另一种数据处理方法的全部流程,例如由存算一体模块执行前述流程中由矢量处理器执行的动作。
110.可选的,矢量处理器包括存算一体模块。矢量处理器可以将第一数据存储在矢量处理器中的存算一体模块。考虑到应用场景中仍有大量数据需存储于常规的存储单元,因此本实施例中可以将部分数据存储在存储单元中。
111.可选的,存储单元为存算一体模块。因此,数据处理系统可以将存储单元配置为用于存储数据的模块,或者,可以将存储单元配置为用于数据处理(包括矢量运算和逻辑运算)的模块,或者,可以将存储单元配置为部分用于存储数据的模块和部分用于数据处理的模块。这样,存储单元可以承担一部分矢量处理器或者标量处理器的功能,提高数据处理的灵活性,减轻数据处理系统的负担。
112.可选的,标量处理器向矢量处理器发送的指令也可以是用于指示存算一体模块的指令。
113.示例性的,矢量处理器接收到来自标量处理器的指令后,获取第一数据,确定将第一数据存储在存算一体模块内部或者存储在存储单元内部。具体来说,在获取第一数据的计算未结束时(或者说数据的处理状态为未终止时),矢量处理器可以将中间数据存储在矢量处理器内部的存算一体模块中,存算一体模块可以与矢量处理器可以进行实时信息交互,在该过程中,存算一体模块本身承担矢量处理器的一部分计算或逻辑判断的功能。在获取第一数据的计算结束时(或者说数据的处理状态为终止时),数据处理系统可以将矢量处理器中存算一体模块所存储的数据输出到存储单元。
114.可选的,存算一体模块可以确定是否向标量处理器发送计算已完成的响应信息。
115.可选的,在获取第一数据的计算结束时,标量处理器可以向矢量处理器发送用于指示将计算结果输出到存储单元的指令。相应的,矢量处理器可以向标量处理器发送第一数据的计算结果。
116.采用以上设计,矢量处理器具备了存算一体的功能,因此可以直接进行存储、读取和写入的运算,无需回传数据结果,能够匹配高速运算的机制,最大化的发挥架构整体计算性能,提升无论是人工智能还是无线通信的数据密集应用的计算表现。
117.图8为本技术实施例提供的另一种数据处理系统的设计,该数据处理系统至少包括一个矢量处理器、一个标量处理器和一个可重构阵列。具体的,该数据处理系统由标量处理器、矢量处理器、存储单元、可重构阵列、总线和输入输出端口构成,其中,可重构阵列统可以与矢量处理器和标量处理器进行交互,标量处理器、矢量处理器和存储单元均连接在总线上,并通过总线与外部系统交互。应理解,基于该设计,在本技术实施例中,可重构阵列可以被重构为属于标量处理器的指令加速决策模块;或者,可重构阵列可以被重构为矢量处理器中的一个用于加速矢量处理器的计算的模块;或者,可重构阵列可以被重构为属于
标量处理器的一个用于进行逻辑运算的模块;或者,可重构阵列可以被重构为存储单元。下面结合图9对本技术实施例提供的另一种面向通用计算的数据处理方法进行说明,该流程具体包括:
118.s301:可重构阵列和标量处理器确定第一指令,第一指令用于指示第二数据的处理,其中,第二数据是矢量处理器从总线或存储单元获取的待处理数据。
119.示例性的,标量处理器可以向矢量处理器(或可重构阵列)发送指令,该指令用于指示矢量处理器开始数据处理、计算地址或计算其他数据等具体操作;可重构阵列和标量处理器共同确定第一指令。
120.可选的,数据处理系统可以根据该指令将可重构矩阵重构为指令加速决策模块,该指令加速决策模块是属于标量处理器的模块,该指令加速决策模块用于加速生成第一指令。这样,可重构阵列能够分担一部分标量处理器的功能,提高生成第一指令的效率。
121.进一步的,可重构阵列可以接收来自标量处理器的第一指令。
122.s302:可重构阵列向矢量处理器发送第二指令,第二指令可以是根据步骤s301中确定的第一指令得到的。
123.s303:可重构阵列和矢量处理器根据第二指令处理第二数据。
124.示例性的,矢量处理器在收到第二指令后,可以从总线或存储单元获取第二数据,可重构阵列和矢量处理器按照第二指令中的规定对第二数据进行流水化矢量操作。
125.可选的,数据处理系统可以根据第二指令将可重构矩阵重构为矢量处理器的一个模块,用于加速矢量处理器的计算。这样,可重构阵列能够分担一部分矢量处理器的功能,提高第二数据的处理效率。
126.在一种可能的设计中,可重构阵列还可以接收来自矢量处理器的第三指令,该第三指令用于指示矢量处理器的工作状态信息和/或第二数据的处理结果;可重构矩阵还可以向标量处理器发送第四指令,该第四指令根据第三指令确定。
127.可选的,矢量处理器可以向标量处理器上报矢量处理器当前的工作状态为计算中;或者,矢量处理器不向标量处理器上报矢量处理器当前的工作状态。这样,标量处理器能够获知矢量处理器的工作状态,从而提高标量处理器所发出的指令的准确性。
128.可选的,可重构阵列(或矢量处理器)可以向标量处理器发送第二数据的处理结果。
129.示例性的,在矢量处理器完成第二对数据的计算之后,矢量处理器可以将该计算结果发送至可重构阵列,此时可重构阵列被重构为属于标量处理器的一个模块,用于进行逻辑运算;可重构矩阵和标量处理器确定计算结果的存储位置;数据处理系统将计算结果按照指令的规定存储在对应的存储单元。这样,可重构阵列可以加速生成指令,加速指令的传输,从而使得数据处理更快地进入下一轮操作。
130.可选的,可重构阵列(或矢量处理器)可以向标量处理器发送计算已完成的响应信息。
131.进一步的,标量处理器在收到计算已完成的响应信息之后,可以向可重构阵列(或矢量处理器)发送执行下一次计算或者不执行计算的指令。应理解,此时可重构阵列被重构为从属于矢量处理器的一个模块。
132.可选的,当标量处理器在计算过程中出现错误时,标量处理器可以按照预设的格
式向矢量处理器发送错误指示;标量处理器还可以重新发起计算指示。应理解,该操作也可以由可重构矩阵完成。
133.在一种可能的设计中,当不存在加速数据的计算、处理逻辑判断和指令生成或传输的需求时,数据处理系统可以将可重构矩阵重构为存储单元。
134.采用以上方法,数据处理系统可以包括一个可重构矩阵,该可重构矩阵能够实现双向交互机制,即可以直接与矢量处理器、标量处理器进行交互,可以通过重构来分担标量处理器或矢量处理器的功能,例如强化矢量处理器的功能(例如提高矢量处理的效率)或强化标量处理器的功能(例如提高逻辑判断的效率),从而数据处理系统可以复用上述任意一种数据处理方法,降低了相关芯片的开发难度,提高了数据处理的灵活性。
135.基于上述内容和相同构思,本技术提供一种面向通用计算的数据处理装置,如矢量处理器。图10所示为本技术实施例提供的一种数据处理装置的模块化结构示意图。该装置可包括模块1001和处理模块1002,其中,其中,模块1001可以是通信模块,或者是判断模块。
136.在一种可能的示例中,模块1001可以是判断模块,该判断模块1001可用于:根据待处理数据的第一数据量确定矢量处理器中通道单元的第一数量和/或每个通道单元内的并行指令的第一数量,根据所述待处理数据的第二数据量确定矢量处理器中通道单元的第二数量和/或每个通道单元内的并行指令的第二数量。该处理模块1002可用于:通过通道单元的第一数量和/或并行指令的第一数量执行待处理数据中第一数据量的数据的处理,通过通道单元的第二数量和/或并行指令的第二数量执行待处理数据中第二数据量的数据的处理,第一数据量与第二数据量不同,通道单元的第一数量与通道单元的第二数量不同,和/或并行指令的第一数量与并行指令的第二数量不同。
137.在一种可能的设计中,该处理模块1002还可用于:根据通道单元的第一数量和/或并行指令的第一数量,通过可重构结构生成用于处理待处理数据的通道单元;根据通道单元的第二数量和/或并行指令的第二数量,通过可重构结构生成用于处理待处理数据的通道单元。
138.在一种可能的设计中,通道单元采用可重构结构,所述处理模块1002还可用于:将超过通道单元的第一数量的通道单元重构为控制决策单元和/或存储单元;将超过通道单元的第二数量的通道单元重构为控制决策单元和/或存储单元;将超过并行指令的第一数量的指令存储字段重构为数据存储字段和/或控制决策字段;将超过并行指令的第二数量的指令存储字段重构为数据存储字段和/或控制决策字段。
139.在一种可能的示例中,模块1001可以是判断模块,该处理模块1002可用于:执行数据处理,获得第一数据。该判断模块1001可用于:执行以下中的至少一项逻辑运算:所述矢量处理器根据所述第一数据的处理状态,确定将所述第一数据存储在所述矢量处理器内部或者存储在存储单元内部,所述处理状态用于指示当前是否存在所述第一数据的处理需求,所述存储单元不属于所述矢量处理器;决定是否上报工作状态;比较数值的大小;判断特定条件是否满足。可选的,判断模块1001为逻辑判断模块实现。
140.在一种可能的设计中,处理状态用于指示当前存在第一数据的处理需求,所述处理模块1002具体可用于:将第一数据存储在矢量处理器内部;或者,处理状态用于指示当前不存在第一数据的处理需求,所述处理模块1002具体可用于:将第一数据存储在存储单元
内部。
141.在一种可能的设计中,所述处理模块1002具体可用于:将第一数据存储在矢量处理器中的存算一体模块。
142.在一种可能的设计中,所述处理模块1002还可用于:向标量处理器发送矢量处理器的工作状态信息。
143.在一种可能的示例中,模块1001可以是通信模块,该处理模块1002可用于:确定第一指令,第一指令用于指示第二数据的处理,第二数据是矢量处理器从总线或存储单元获取的待处理数据。该通信模块1001可用于:接收来自于标量处理器的第一指令。该通信模块1001还可用于:向矢量处理器发送第二指令,第二指令根据第一指令确定。该处理模块1002还可用于:根据第二指令处理第二数据。
144.该通信模块1001还可用于:接收来自于矢量处理器的第三指令,第三指令用于指示矢量处理器的工作状态信息和/或第二数据的处理结果;向标量处理器发送第四指令,第四指令根据第三指令确定。
145.图11示出了本技术实施例提供的一种面向通用计算的数据处理装置(如矢量处理器)的结构示意图。
146.本技术实施例中的电子设备可包括处理器1101。处理器1101是该装置的控制中心,可以利用各种接口和线路连接该装置的各个部分,通过运行或执行存储在存储器1102内的指令以及调用存储在存储器1102内的数据。可选的,处理器1101可包括一个或多个处理单元,处理器1101可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1101中。在一些实施例中,处理器1101和存储器1102可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
147.处理器1101可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的数据处理系统所执行的步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
148.在本技术实施例中,存储器1102存储有可被至少一个处理器1101执行的指令,至少一个处理器1101通过执行存储器1102存储的指令,可以用于执行前述由数据处理系统执行的通信过程。
149.存储器1102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器1102可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器1102是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实
施例中的存储器1102还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
150.本技术实施例中,该装置还可以包括通信接口1103,电子设备可以通过该通信接口1103传输数据。例如电子设备为数据处理系统,通信接口1103可用于向标量处理器发送矢量处理器的工作状态信息;或者,向矢量处理器发送第一指令;或者,向所述标量处理器发送所述矢量处理器的工作状态信息和/或所述第二数据的处理结果。
151.可选的,可由图11所示处理器1101(或处理器1101和存储器1102)实现图10所示的通信模块1001和/或处理模块1002,也就是说,可以由处理器1101(或处理器1101和存储器1102)执行通信模块1001和/或处理模块1002的动作。
152.基于相同的申请构思,本技术实施例还提供一种计算机可读存储介质,其中可存储有指令,当该指令在计算机上运行时,使得计算机执行上述方法实施例提供的操作步骤。该计算机可读存储介质可以是图11所示的存储器1102。
153.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
154.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
155.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
156.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
157.尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
158.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1