一种数据处理器及数据处理方法与流程

文档序号:16068271发布日期:2018-11-24 12:53阅读:190来源:国知局

本发明属于处理器技术领域,更具体地,涉及一种数据处理器及数据处理方法。

背景技术

传统的通用计算机结构如x86、arm等,其设计致力于通用性,即保证处理器功能完备,可以处理各种程序,这样的设计会导致处理器性能不足,在某些需要高速运算的嵌入式应用场景无法达到需求。因此,在嵌入式应用中产生了很多针对特定应用优化的专用处理器。

对于专用处理器,为了提高数据并行计算能力,通常会同时计算多路数据。计算多路数据的现有处理器有采用超长指令字(vliw,verylonginstructionword)结构的处理器和采用单指令多数据(simd,singleinstructionmultipledata)结构的处理器。当处理器同时计算多路数据时,如何高效地搬移数据,减少处理器的数据等待时间成为影响处理器性能的重要因素。

现有专用处理器设计,数据的存取通路和数据运算通路使用同一个程序控制,这样就只能顺序执行数据存取和数据运算,导致数据存取和运算很可能需要等待,进而影响系统性能。



技术实现要素:

为克服上述现有数据处理器数据存取和运算需要等待,数据处理效率低的问题或者至少部分地解决上述问题,本发明提供一种数据处理器及数据处理方法。

根据本发明的第一方面,提供一种数据处理器,包括:数据通路、运算通路、数据通路程序存储器和运算通路程序存储器;

其中,所述数据通路程序存储器用于存储数据通路程序;

所述运算通路程序存储器用于存储运算通路程序;

所述数据通路用于运行所述数据通路程序,获得目标数据,并将所述目标数据输出至所述运算通路;

所述运算通路用于运行所述运算通路程序,并结合所述目标数据进行运算,获得运算结果,并将所述运算结果输出至所述数据通路,以供所述数据通路保存所述运算结果。

具体地,所述数据通路具体用于根据数据通路指令集运行所述数据通路程序,获得目标数据,并将所述目标数据输出至所述运算通路;

所述运算通路具体用于根据运算通路指令集运行所述运算通路程序,获得运算结果,并将所述运算结果输出至所述数据通路,以供所述数据通路保存所述运算结果;

其中,所述数据通路指令集与所述运算通路指令集相互独立。

具体地,所述数据通路和所述运算通路之间具有双向传输通路;

所述双向传输通路用于将所述数据通路中的目标数据传递给所述运算通路以及将所述运算通路中的运算结果传递给所述数据通路。

具体地,所述运算通路具有多路并行运算通道;

所述数据通路包括一组或多组并行存储器,每一组并行存储器中子存储器单元的数目与所述多路并行运算通道中运算通道的数目相同。

具体地,所述数据通路还用于:

从多组所述并行存储器中读取所述目标数据,并对读出的所述目标数据进行重新排序,将重新排序的所述目标数据传递给所述运算通路;和/或,

将所述运算通路输出的运算结果进行重新排序,将重新排序的运算结果传递给所述并行存储器。

根据本发明的第二方面,提供一种多核数据处理器,包括:多个从处理器和一个主处理器;

其中,各所述从处理器为上述任一所述的数据处理器;

各所述从处理器与所述主处理器通过片上网络连接。

根据本发明的第三方面,提供一种数据处理器方法,包括:

基于数据通路运行数据通路程序存储器中的数据通路程序,获得目标数据,并将所述目标数据通过双向传输通路传递给运算通路;

基于所述运算通路运行运算通路程序存储器中的运算通道程序,并结合所述目标数据进行运算,获得运算结果,并将所述运算结果输出至所述数据通路,以供所述数据通路保存所述运算结果;

其中,所述数据通路程序存储器用于存储所述数据通路程序;

所述运算通路程序存储器用于存储所述运算通路程序。

具体地,基于数据通路独立运行数据通路程序存储器中的数据通路程序的步骤具体包括:

基于数据通路根据数据通路指令集运行数据通路程序存储器中的数据通路程序;

基于运算通路独立运行运算通路程序存储器中的运算通道程序的步骤具体包括:

基于运算通路根据运算通路指令集运行运算通路程序存储器中的运算通道程序;

其中,所述数据通路指令集与所述运算通路指令集相互独立。

具体地,所述运算通路包括多路并行运算通道;

所述数据通路包括一组或多组并行存储器,每一组并行存储器中子存储器单元的数目与所述多路并行运算通道中运算通道的数目相同。

具体地,基于数据通路独立运行数据通路程序存储器中的数据通路程序的步骤还包括:

基于所述数据通路从多组所述并行存储器中读取所述目标数据,并对读出的所述目标数据进行重新排序,将重新排序的所述目标数据传递给所述运算通路;和/或,

基于所述数据通路将所述运算通路输出的运算结果进行重新排序,将重新排序的运算结果传递给所述并行存储器

本发明提供一种数据处理器及数据处理方法,该数据处理器中数据通路在数据通路程序的控制下,为运算通路提供数据输入和数据输出服务,运算通路在运算通路程序的控制下,对从数据通路接收到的数据进行相关运算,并输出结果传递到数据通路,从而将处理器的运算通路和数据通路分离,并由相互独立的程序控制,实现利用运算通路进行数据运算的时间灵活控制数据通路的数据搬移,减少运算通路的数据等待时间,提高数据处理效率。

附图说明

图1为本发明实施例提供的数据处理器整体结构示意图;

图2为本发明实施例提供的数据处理器中数据通路结构示意图;

图3为本发明实施例提供的数据处理器中运算通路结构示意图;

图4为本发明又一实施例提供的数据处理器整体结构示意图;

图5为本发明实施例提供的数据处理方法整体流程示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

在本发明的一个实施例中提供一种数据处理器,图1为本发明实施例提供的数据处理器整体结构示意图,该数据处理器包括:数据通路101、运算通路102、数据通路程序存储器103和运算通路程序存储器104;其中,数据通路程序存储器103用于存储数据通路程序;运算通路程序存储器104用于存储运算通路程序;

具体地,数据通路101是指数字系统中,各子系统通过数据总线连接形成的数据传输路径。运算通路102是指功能模块中从输入端到输出端的数据运算路径,最基本的设计单元是寄存器、计数器、多路选择器和算术逻辑单元。数据通路程序存储器103用于存储数据通路所运行的数据通路程序,以供数据通路完成相应功能。运算通路程序存储器104用于存储运算通路所运行的运算通路程序,以供运算通路完成相应功能。数据通路程序存储器103和运算通路程序存储器104中的程序通过协同工作完成具体功能。

其中,数据通路101用于运行数据通路程序,获得目标数据,并将目标数据输出至运算通路102;运算通路102用于运行运算通路程序,并结合目标数据进行运算,获得运算结果,并将运算结果输出至数据通路101,以供数据通路101保存所述运算结果。

具体地,数据通路程序存储器103的输出端连接数据通路101,以供数据通路101从数据通路程序存储器103中读取并独立运行相应的数据通路程序,以为运算通路102准备所需要的目标数据,并将运算通路102所需要的目标数据传递给运算通路102。运算通路程序存储器104的输出端连接运算通路102,以供运算通路102从运算通路程序存储器104中读取并独立运行相应的运算通路程序,结合目标数据执行具体的运算操作,并将运算结果传递给数据通路101。数据通路101将运算结果进行保存。

此外,数据通路程序存储器103中的程序可以独立运行,完成一些数据搬移和重排序等工作。运算通路程序存储器104中的程序也可以独立运行,完成一些无需数据支持的判断和跳转等任务。

本实施例中数据通路在数据通路程序的控制下,为运算通路提供数据输入和数据输出服务,运算通路在运算通路程序的控制下,对从数据通路接收到的数据进行相关运算,并输出结果传递到数据通路,从而将处理器的运算通路和数据通路分离,并由相互独立的程序控制,实现利用运算通路进行数据运算的时间灵活控制数据通路的数据搬移,减少运算通路的数据等待时间,提高数据处理效率。

在上述实施例的基础上,本实施例中数据通路具体用于根据数据通路指令集运行数据通路程序,获得目标数据,并将目标数据输出至运算通路;运算通路具体用于根据运算通路指令集运行运算通路程序,获得运算结果,并将运算结果输出至数据通路,以供数据通路保存运算结果;其中,数据通路指令集与运算通路指令集相互独立。

具体地,数据通路和运算通路具有独立的指令集。数据通路根据数据通路指令集运行数据通路程序。运算通路根据运算通路指令集运行运算通路程序。运算通路指令集用于编写运算通路程序,运算通路程序存放于运算程序存储器中。数据通路指令集用于编写数据通路程序,数据通路程序存放于数据程序存储器中。通过将数据通路指令集和运算通路指令集独立的协调运行,可以保证数据通路程序不需要等待数据搬移,从而使处理器达到满负荷工作,提高处理器性能。

在上述实施例的基础上,本实施例中数据通路和运算通路之间具有双向传输通路;双向传输通路用于将数据通路中的目标数据传递给运算通路,将运算通路中的运算结果传递给数据通路。

具体地,数据通路和运算通路之间具有双向传输通路。双向传输通路由采用同一种数据速率在相反方向工作的两个传输通路组成,从而实现双向通信。使得运算通路执行运算操作所需的目标数据通过双向传输通路从数据通路传递到运算通路。运算通路执行运算操作后得到的运算结果通过双向传输通路从运算通路传递到数据通路。

在上述任一实施例的基础上,本实施例中运算通路具有多路并行运算通道;数据通路包括一组或多组并行存储器,每一组并行存储器中子存储器单元的数目与多路并行运算通道中运算通道的数目相同。

具体地,运算通路具有多路并行运算通道,能够对多路数据同时进行处理。数据通路包括一组或多组并行存储器。每组并行存储器由多个独立的存储子单元构成,每个存储子单元可以独立寻址。其中,每组并行存储器中存储子单元的数目与多路并行运算通道中运算通道的数目相同,从而保证将每组并行存储器中各子存储单元中的目标数据传递到相应的各运算通道中,将各运算通道中输出的运算结果传递到相应的子存储单元中。从而保证数据的并行存取和并行运算,提高数据处理速度。

在上述实施例的基础上,本实施例中数据通路还用于:从多组并行存储器中读取目标数据,并对读出的目标数据进行重新排序,将重新排序的目标数据传递给运算通路;和/或,将运算通路输出的运算结果进行重新排序,将重新排序的运算结果传递给并行存储器。

具体地,从多组并行存储器中读取目标数据,将读取的目标数据首先通过交织网进行交织后再输入到运算通路。交织网是通信系统中进行数据处理而采用的一种技术,本质上实现数据结构的改变而不改变数据的内容,从而使并行存储器中的目标数据可以以任意顺序组合输出。在运算通路将运算结果输入到数据通路后,先通过交织网进行交织后再输入到并行存储器,从而使运算结果可以以任意组合存储并行存储器。两个交织网由数据通路程序存储器中的数据通路程序控制,通过使用数据通路指令集编程,可以定制面向各种需求的数据存取程序,为运算通路的各种算法提供数据存取支持。

如图2所示,数据通路包括数据通路状态机、数据交织写入模块、数据存储单元和数据交织读出读取模块。数据通路状态机从数据通路程序存储器读取需要执行的程序,并根据所执行的程序控制数据交织写入模块、数据存储单元和数据交织读取模块的工作。其中,数据存储单元负责数据的存储,至少包含三组并行存储器,其中至少两组并行存储器用于存储运算通路运算需要的目标数据,其他组并行存储器用于存储运算通路计算后的运算结果。数据交织读取模块在数据通路状态机的控制下,计算需要从数据存储单元读取的目标数据的地址,并将所需的目标数据读出,然后再对读出的目标数据进行重新排序,使得重排序后的目标数据满足运算通路对输入数据的要求,重排序后的目标数据从数据通路输出,成为运算通路读入的目标数据。数据交织写入模块在数据通路状态机的控制下,先将运算通路输出的运算结果进行重新排序,使得重排序后的运算结果满足数据通路数据存储顺序的要求,然后计算出运算通路输出的运算结果需要存储的地址,根据地址将运算结果存入到数据存储单元。数据通路各模块可以依据不同的应用场景定制化设计,针对特定的数据通路,设计者需要设计出相应的数据通路指令集,用户可以依据数据通路指令集编写数据通路程序存储器中存储的程序,使得数据处理器可以实现定制化的数据通路功能。

如图3所示,运算通路包括运算通路状态机和运算逻辑模块。其中,运算通路状态机从运算通路程序存储器读取需要执行的程序,并根据所执行的程序控制运算逻辑模块的工作。运算逻辑模块负责具体的数据运算,运算逻辑模块具有并行的多路运算通道,能够对多路目标数据同时进行处理。运算通路各模块可以依据不同的应用场景定制化设计的,针对特定的运算通路,设计者需要设计出相应的运算通路指令集,用户可以依据运算通路指令集编写运算通路程序存储器中存储的程序,使得处理器可以实现定制化的运算通路功能。

在本发明的另一个实施例中提供一种多核数据处理器,图4为本发明实施例提供的数据处理器系统整体结构示意图,该数据处理器包括多个从处理器和一个主处理器;其中,各从处理器为上述任一实施例中的数据处理器;各从处理器与主处理器通过片上网络连接。

具体地,片上网络(network-on-chip,noc)是一种新的通信方法,也称片上互联网络。它是多核技术的主要组成部分,每个节点通过双向通道连接到相邻节点,通过点对点传输,功耗低。图4中的dma(directmemoryaccess,直接内存存取)控制器是一种通过一组专用总线将外部存储器与每个从处理器连接起来的控制器,在主处理器的编程控制下执行传输。多个从处理器与一个主处理器通过片上网络连接,构成一个多核处理器,各从处理器在主处理器的控制下协调工作,实现更为复杂的功能。

在本发明的另一个实施例中提供一种数据处理方法,该方法是基于前述各实施例中数据处理器的数据处理方法。因此,在前述各实施例中对数据处理器的描述和定义,可以用于本发明实施例中各实施例的理解。图5为本发明实施例提供的数据处理器方法整体流程示意图,该方法包括:s501,基于数据通路运行数据通路程序存储器中的数据通路程序,获得目标数据,并将目标数据通过双向传输通路传递给运算通路;s502,基于运算通路运行运算通路程序存储器中的运算通道程序,并结合目标数据进行运算,获得运算结果,并将运算结果通过双向传输通路输出至数据通路,以供数据通路保存运算结果;其中数据通路程序存储器用于存储数据通路程序;运算通路程序存储器用于存储运算通路程序。

本实施例中数据通路在数据通路程序的控制下,为运算通路提供数据输入和数据输出服务,运算通路在运算通路程序控制下,对从数据通路接收到的数据进行相关运算,并将输出结果传递到数据通路,从而将处理器的运算通路和数据通路分离,并由相互独立的程序控制,实现利用运算通路进行数据运算的时间灵活控制数据通路的数据搬移,减少运算通路的数据等待时间,提高数据处理效率。

在上述实施例的基础上,本实施例中基于数据通路独立运行数据通路程序存储器中的数据通路程序的步骤具体包括:基于数据通路根据数据通路指令集运行数据通路程序存储器中的数据通路程序;基于运算通路独立运行运算通路程序存储器中的运算通道程序的步骤具体包括:基于运算通路根据运算通路指令集运行运算通路程序存储器中的运算通道程序;其中,数据通路指令集与运算通路指令集相互独立。

在上述各实施例的基础上,本实施例中运算通路包括多路并行运算通道;数据通路包括一组或多组并行存储器,每一组并行存储器中子存储器单元的数目与多路并行运算通道中运算通道的数目相同。

在上述实施例的基础上,本实施例中基于数据通路独立运行数据通路程序存储器中的数据通路程序的步骤还包括:基于数据通路从多组并行存储器中读取目标数据,并对读出的目标数据进行重新排序,将重新排序的目标数据传递给运算通路;和/或,基于数据通路将运算通路输出的运算结果进行重新排序,将重新排序的运算结果传递给并行存储器。

最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1