处理器及实现方法、电子设备和存储介质转让专利
申请号 : CN202010851757.7
文献号 : CN112152947B
文献日 : 2021-07-20
发明人 : 严小平
申请人 : 北京百度网讯科技有限公司
摘要 :
权利要求 :
1.一种处理器,包括:系统控制器、存储阵列模块、数据打包拆包模块以及运算模块;
所述系统控制器,用于将预定的数据包信息发送给所述数据打包拆包模块;
所述数据打包拆包模块,用于根据所述数据包信息从所述存储阵列模块获取对应的数据包数据,将所述数据包数据与所述数据包信息进行打包,将打包得到的第一数据包发送给所述运算模块进行运算处理,并获取所述运算模块返回的第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储阵列模块中;
所述存储阵列模块,用于进行数据存储;
所述运算模块,用于对获取到的所述第一数据包进行运算处理,根据运算结果数据生成所述第二数据包,返回给所述数据打包拆包模块。
2.根据权利要求1所述的处理器,还包括:直接内存存取模块,用于在所述系统控制器的控制下实现外部存储数据与所述存储阵列模块中的内部存储阵列数据的高速交换。
3.根据权利要求1所述的处理器,还包括:路由交换模块,用于将获取自所述数据打包拆包模块的所述第一数据包发送给所述运算模块,并将获取自所述运算模块的所述第二数据包发送给所述数据打包拆包模块。
4.根据权利要求3所述的处理器,其中,所述运算模块包括:通用运算模块以及激活运算模块;
所述通用运算模块,用于进行通用运算;所述激活运算模块,用于进行激活运算。
5.根据权利要求4所述的处理器,其中,所述存储阵列模块中包括N1个存储单元;
所述数据打包拆包模块中包括N2个数据打包拆包单元,每个数据打包拆包单元分别通过一个数据通道连接到所述路由交换模块上,N1和N2均为大于一的正整数;
所述通用运算模块中包括M个运算单元,所述激活运算模块中包括P个运算单元,每个运算单元分别通过一个数据通道连接到所述路由交换模块上,M和P均为大于一的正整数;
所述数据打包拆包单元将从所述存储单元获取的所述数据包数据及从所述系统控制器获取的所述数据包信息进行打包,利用所述数据通道,将打包得到的所述第一数据包通过所述路由交换模块发送给运算单元进行运算处理,并利用所述数据通道,通过所述路由交换模块获取所述运算单元返回的所述第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储单元中。
6.根据权利要求5所述的处理器,其中,所述数据包信息中包括:源通道、源地址、目的通道以及运算类型;
所述数据打包拆包单元从所述源通道对应的存储单元的所述源地址中获取所述数据包数据;
所述路由交换模块将所述第一数据包发送给所述目的通道对应的运算单元进行所述运算类型的运算处理。
7.根据权利要求6所述的处理器,其中,所述N1和N2的取值相同,每个数据打包拆包单元分别对应于一个存储单元,从对应的存储单元获取所述数据包数据。
8.根据权利要求7所述的处理器,其中,所述数据包信息中进一步包括:目的地址或存储策略;
若所述数据包信息中包括所述目的地址,则所述数据打包拆包单元根据所述目的地址,将所述运算结果数据存储到对应的存储单元中;
若所述数据包信息中包括所述存储策略,则所述数据打包拆包单元根据所述存储策略,将所述运算结果数据存储到对应的存储单元中。
9.根据权利要求8所述的处理器,其中,所述存储策略包括:实现数据对齐的存储策略。
10.一种处理器实现方法,包括:构建由系统控制器、存储阵列模块、数据打包拆包模块以及运算模块组成的处理器;
利用所述处理器进行神经网络运算;其中,所述系统控制器用于将预定的数据包信息发送给所述数据打包拆包模块;所述数据打包拆包模块用于根据所述数据包信息从所述存储阵列模块获取对应的数据包数据,将所述数据包数据与所述数据包信息进行打包,将打包得到的第一数据包发送给所述运算模块进行运算处理,并获取所述运算模块返回的第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储阵列模块中;
所述存储阵列模块用于进行数据存储;所述运算模块用于对获取到的所述第一数据包进行运算处理,根据运算结果数据生成所述第二数据包,返回给所述数据打包拆包模块。
11.根据权利要求10所述的方法,还包括:在所述处理器中增加直接内存存取模块,所述直接内存存取模块用于在所述系统控制器的控制下实现外部存储数据与所述存储阵列模块中的内部存储阵列数据的高速交换。
12.根据权利要求10所述的方法,还包括:在所述处理器中增加路由交换模块,所述路由交换模块用于将获取自所述数据打包拆包模块的所述第一数据包发送给所述运算模块,并将获取自所述运算模块的所述第二数据包发送给所述数据打包拆包模块。
13.根据权利要求12所述的方法,其中,所述运算模块包括:用于进行通用运算的通用运算模块以及用于进行激活运算的激活运算模块。
14.根据权利要求13所述的方法,其中,所述存储阵列模块中包括N1个存储单元;
所述数据打包拆包模块中包括N2个数据打包拆包单元,每个数据打包拆包单元分别通过一个数据通道连接到所述路由交换模块上,N1和N2均为大于一的正整数;
所述通用运算模块中包括M个运算单元,所述激活运算模块中包括P个运算单元,每个运算单元分别通过一个数据通道连接到所述路由交换模块上,M和P均为大于一的正整数;
所述数据打包拆包单元用于将从所述存储单元获取的所述数据包数据及从所述系统控制器获取的所述数据包信息进行打包,利用所述数据通道,将打包得到的所述第一数据包通过所述路由交换模块发送给运算单元进行运算处理,并利用所述数据通道,通过所述路由交换模块获取所述运算单元返回的所述第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储单元中。
15.根据权利要求14所述的方法,其中,所述数据包信息中包括:源通道、源地址、目的通道以及运算类型;
所述数据包数据为所述数据打包拆包单元从所述源通道对应的存储单元的所述源地址中获取的数据包数据;
获取到所述第一数据包的运算单元为所述路由交换模块确定出的所述目的通道对应的运算单元;
所述运算处理为所述运算单元进行的所述运算类型的运算处理。
16.根据权利要求15所述的方法,其中,所述N1和N2的取值相同,每个数据打包拆包单元分别对应于一个存储单元,从对应的存储单元获取所述数据包数据。
17.根据权利要求16所述的方法,其中,所述数据包信息中进一步包括:目的地址或存储策略;
若所述数据包信息中包括所述目的地址,则所述数据打包拆包单元根据所述目的地址,将所述运算结果数据存储到对应的存储单元中;
若所述数据包信息中包括所述存储策略,则所述数据打包拆包单元根据所述存储策略,将所述运算结果数据存储到对应的存储单元中。
18.根据权利要求17所述的方法,其中,所述存储策略包括:实现数据对齐的存储策略。
19.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求10‑18中任一项所述的方法。
20.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求10‑18中任一项所述的方法。
21.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求10‑18中任一项所述的方法。
说明书 :
处理器及实现方法、电子设备和存储介质
技术领域
背景技术
(NPU,Network Processing Unit)芯片等基于神经网络的处理器越来越受到重视。
设计方式中,需要扩展对应神经网络运算操作的繁琐指令集,并需要开发专用的编译器支
持等,设计难度很高,尤其是应用于语音数据实时处理时。
发明内容
发送给所述运算模块进行运算处理,并获取所述运算模块返回的第二数据包,通过对所述
第二数据包进行拆包得到运算结果数据,存储到所述存储阵列模块中;
述存储阵列模块获取对应的数据包数据,将所述数据包数据与所述数据包信息进行打包,
将打包得到的第一数据包发送给所述运算模块进行运算处理,并获取所述运算模块返回的
第二数据包,通过对所述第二数据包进行拆包得到运算结果数据,存储到所述存储阵列模
块中;所述存储阵列模块用于进行数据存储;所述运算模块用于对获取到的所述第一数据
包进行运算处理,根据运算结果数据生成所述第二数据包,返回给所述数据打包拆包模块。
度的编译器开发等,从而降低了设计难度,提升了整体处理效率等。
附图说明
具体实施方式
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同
样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
104进行运算处理,并获取运算模块104返回的第二数据包,通过对第二数据包进行拆包得
到运算结果数据,存储到存储阵列模块102中。
低了设计难度,提升了整体处理效率等。
模块103、运算模块104、DMA模块105以及路由交换模块106。
活运算。
简指令集机器(ARM,Advanced RISC Machine)、数字信号处理(DSP,Digital Signal
Processing)、X86、微控制单元(MCU,Microcontroller Unit)内核IP等。
储。存储阵列模块102中存储的数据可包括神经网络模型数据、外部输入数据以及中间层的
临时数据等。
到的第一数据包通过路由交换模块106发送给运算模块104,并将运算模块104通过路由交
换模块106返回的第二数据包进行拆包,将得到的运算结果数据存储到存储阵列模块102
中。
sigmoid、tanh、relu、softmax运算中的一种或多种等。
模块105以实现外部存储数据与存储阵列模块102中的内部存储阵列数据的高速交换等。
和高难度的编译器开发等,从而降低了设计难度,提升了整体处理效率等。
交换模块106。其中,存储阵列模块102中可包括N1个存储单元1021,每个存储单元1021可为
一组SRAM等,数据打包拆包模块103中可包括N2个数据打包拆包单元1031,每个数据打包拆
包单元1031可分别通过一个数据通道连接到路由交换模块106上,N1和N2均为大于一的正
整数,另外,通用运算模块1041中可包括M个运算单元10411,激活运算模块1042中可包括P
个运算单元10421,每个运算单元10411/10421可分别通过一个数据通道连接到路由交换模
块106上,M和P均为大于一的正整数。N1、N2、M和P的具体取值均可根据实际需要而定。
由交换模块106发送给运算单元10411/10421进行运算处理,并利用数据通道,通过路由交
换模块106获取运算单元10411/10421返回的第二数据包,通过对第二数据包进行拆包得到
运算结果数据,存储到存储单元1021中。
据打包拆包单元1031。各数据打包拆包单元1031可并行工作,如分别获取来自系统控制器
101的数据包信息,并进行打包拆包操作等。
据包数据,路由交换模块106可将获取到的第一数据包发送给目的通道对应的运算单元
10411/10421,运算单元10411/10421可根据运算类型,进行相应类型的运算处理。
获取数据包数据。这样,可以更好地保证各数据打包拆包单元1031的并行工作,假设两个数
据打包拆包单元1031均可从某一存储单元1021中获取数据,那么可能出现等待的情况,即
其中一个数据打包拆包单元1031需要等待另一个数据打包拆包单元1031获取完数据之后
才能获取数据,从而造成效率的降低等。
并避免了同步操作带来的等待时延等,从而使得系统控制和数据存储交互等更为高效。
元1021中,若数据包信息中包括存储策略,那么数据打包拆包单元1031可根据存储策略,将
运算结果数据存储到对应的存储单元1021中。所述存储策略可为实现数据对齐的存储策
略。
等,将生成的第二数据包按照第一数据包的传输路径返回给数据打包拆包单元1031,数据
打包拆包单元1031将运算结果数据从第二数据包中解析出来后,就会涉及到运算结果数据
如何存储的问题。
元1031可根据目的地址,将其存储到对应的存储单元1021中。或者,数据包信息中也可不包
括目的地址,而是包括存储策略,数据打包拆包单元1031可根据存储策略,将运算结果数据
存储到对应的存储单元1021中,从而实现数据的自动对齐等。
转换或转置来解决数据对齐问题,这种额外的操作会降低整体处理效率,由于神经网络运
算涉及大量的反复存储运算交互迭代操作,因此对整体处理效率会造成很大的影响。而本
申请所述处理方式中,通过路由交换的方式实现存储和运算的自由交互,并通过存储策略
等自动完成存储,实现数据的自动对齐,实现方式简单,并提升了整体处理效率等。
等,具体实现为现有技术。
取对应的数据包数据,将数据包数据与数据包信息进行打包,将打包得到的第一数据包发
送给运算模块进行运算处理,并获取运算模块返回的第二数据包,通过对第二数据包进行
拆包得到运算结果数据,存储到存储阵列模块中;存储阵列模块用于进行数据存储;运算模
块用于对获取到的第一数据包进行运算处理,根据运算结果数据生成第二数据包,返回给
数据打包拆包模块。
打包拆包模块。
N1和N2均为大于一的正整数。通用运算模块中可包括M个运算单元,激活运算模块中可包括
P个运算单元,每个运算单元可分别通过一个数据通道连接到路由交换模块上,M和P均为大
于一的正整数。
块发送给运算单元进行运算处理,并利用数据通道,通过路由交换模块获取运算单元返回
的第二数据包,通过对第二数据包进行拆包得到运算结果数据,存储到存储单元中。
第一数据包的运算单元可为路由交换模块确定出的目的通道对应的运算单元,运算处理可
为运算单元进行的所述运算类型的运算处理。
若数据包信息中包括存储策略,那么数据打包拆包单元可根据存储策略,将运算结果数据
存储到对应的存储单元中。所述存储策略可为实现数据对齐的存储策略。
发等,从而降低了设计难度,提升了整体处理效率等。
刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装
置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所
示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述
的和/或者要求的本申请的实现。
装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进
行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的
显示设备)上显示图形用户界面的图形信息的指令。在其它实施方式中,若需要,可以将多
个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设
备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理
器系统)。图5中以一个处理器Y01为例。
法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执
行本申请所提供的方法。
Y01通过运行存储在存储器Y02中的非瞬时软件程序、指令以及模块,从而执行服务器的各
种功能应用以及数据处理,即实现上述方法实施例中的方法。
据等。此外,存储器Y02可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少
一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器Y02可
选包括相对于处理器Y01远程设置的存储器,这些远程存储器可以通过网络连接至电子设
备。上述网络的实例包括但不限于互联网、企业内部网、区块链网络、局域网、移动通信网及
其组合。
者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置Y04可以包括显示设备、辅助照明装
置和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器、发光
二极管显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一
个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可
编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,
并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指
令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光
盘、存储器、可编程逻辑装置),包括,接收作为机器可读信号的机器指令的机器可读介质。
术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供
给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是
任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包
括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界
面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部
件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数
字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网、广
域网、区块链网络和互联网。
算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或
云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在
的管理难度大,业务扩展性弱的缺陷。
要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。