一种多核并行数字信号处理器及并行指令集的运行方法

文档序号:6438571阅读:217来源:国知局
专利名称:一种多核并行数字信号处理器及并行指令集的运行方法
技术领域
本发明涉及多核处理器技术领域,尤其涉及一种多核并行数字信号处理器及并行指令集的运行方法。
背景技术
传统的计算机结构设计致力于优化高速缓冲存储器,分支预测,和非顺序执行的超标量体系结构。这些做法适用于通用型处理器设计,但并不是嵌入系统的最佳选择。与之类似,并行运算在通用高性能计算中发挥了重要作用,但已有的并行结构和并行编程模型都不是针对高性能嵌入系统而设计的。嵌入处理器有着广泛的应用,如在手机和其他电池供电的系统中使用具有超低功耗的处理器。专用指令集处理器是嵌入式系统的最佳处理器结构。嵌入式信号处理系统使用专用指令集处理器来达到在特定应用范围的高性能,低功耗和可编程性。专用指令集处理器针对一类应用来设计和优化其指令集架构从而减小处理器的功耗和硅面积。专用处理器架构的设计一般使用以下两种模型流水并行模型此模型包含若干处理单元,每个单元运行一个任务,处理单元间使用链式连接。处理单元N的输出被连接至处理单元N+1的输入。这个模型被广泛应用于通信和多媒体信号处理。使用流水并行模型的关键是在每个处理器上的任务运行时间都小于整个系统输入数据的时间间隔。数据并行模型若干处理单元对不同的数据执行相同任务来计算结果。使用数据并行模型的关键是识别数据的规则性并据此对数据进行拆分和并行运算。专用处理器设计通常是以上两种模型的灵活组合。处理器或者片上系统设计的目标是设计两种模型的最佳组合以刚好满足特定应用对性能的需求,以避免多余的运算器件和片上互联网络的硬件开销和功率消耗。最初的高性能信号处理器采用专用集成电路(ASIC,Application Specific Integrated Circuits),这在当时是达到高性能和低功耗的唯一方法。但是专用集成电路缺乏灵活性。由于信号处理应用不断的有新标准和新算法被提出,硬件设计的灵活性和可编程性成为了一个重要的要求。典型的实例是无线电基带处理器和多媒体处理器。无线电基带处理器需要通过软件编程来支持多个无线通信标准的基带信号处理。多媒体处理器需要支持多种音频和视频的编解码标准。为了提供更大的运算能力,专用处理器使用并行多核结构。每个处理器核也使用指令级或者数据级并行以提高运算能力。已有的可编程数字信号处理器核使用两种微结构。一种是基于超长指令字(VLIW,Very Long Instruction Word)结构的处理器。另一种是使用单指令多数据(SIMD,Single Instruction Multiple Data)结构的处理器。已有的多核处理器主要使用以下三种结构第一种是基于一个DSP (Digital Signal Processing, 数字信号处理)核和一个VLIW核的双核架构。第二种是基于一个控制器和若干SIMD核的多核处理器。第三种是类似图形显示处理器(GPU,Graphic Processing Unit)的大规模并行计算阵列。数字信号处理器的处理效率定义为算法功能运算操作除以总操作。算法功能运算操作是处理器对用户必须支持的操作。非功能控制操作和数据存取操作为冗余操作。为提高处理器效率,需在指令集结构设计和系统多核设计的过程中最大可能的减少或掩盖冗余操作。所有为减少冗余而特定设计的指令和特定的结构增加了编程复杂度。这个增加的复杂度必须通过汇编编译工具和编程流程来掩盖。

发明内容
本发明实施例提供一种多核并行数字信号处理器及并行指令集的运行方法,以提高处理器效率,最大可能的减少或掩盖冗余操作。一方面,本发明实施例提供了一种多核并行数字信号处理器,所述多核并行数字信号处理器至少运行如下三个指令子集控制指令子集、并行存取指令子集及并行运算指令子集,其中,所述多核并行数字信号处理器包括一主处理器以及多个从处理器,所述从处理器由相互独立的并行存取单元和并行计算单元组成,所述控制指令子集、并行存取指令子集及并行运算指令子集分别独立编码并分别由独立的硬件单元执行,主处理器用于运行控制指令子集;一个或多个从处理器的并行存取单元用于运行并行存取指令子集;一个或多个从处理器的并行计算单元用于运行并行运算指令子集。可选的,在本发明一实施例中,一个或多个从处理器的并行存取单元的有限状态机控制器,用于运行单指令进行单次的数据存取,或者运行任务级指令进行单指令循环或多指令循环的数据存取操作。可选的,在本发明一实施例中,一个或多个从处理器的并行计算单元的有限状态机控制器,用于运行单指令算术逻辑运算,或者运行任务级指令进行单指令循环,或多指令循环,或基于并行数据通道的单指令多操作(由任务级指令启动,使用并行计算单元的数据通道,通过数据通道中计算元件的组合来完成多个算术逻辑操作),或基于并行数据通道和有限状态机控制器的单指令多操作(由任务级指令启动,使用并行计算单元的数据通道,在有限状态机控制器的控制下,完成多个算术逻辑操作),或基于紧耦合加速单元的单指令多操作(由任务级指令启动,使用并行计算单元的紧耦合加速器进行多操作计算)的算术逻辑运算。可选的,在本发明一实施例中,所述一个或多个从处理器的并行存取单元用于运行并行存取指令子集,包括通过包含由多个存储器构成的本地存储器组和寄存器组组成的并行存取单元,运行并行存取指令子集,并对并行计算单元提供多路数据的并行存取,在本地存储器组和寄存器组之间、本地存储器组和并行计算单元之间、寄存器组和并行计算单元之间交换数据。可选的,在本发明一实施例中,所述一个或多个从处理器的并行计算单元用于运行并行运算指令子集,包括通过一个或多个从处理器的并行计算单元采用单指令多数据 SIMD结构的数据通道,对多路数据做相同的相互独立的操作并返回多路结果的运算,或者对多路数据操作得到一路结果的运算。可选的,在本发明一实施例中,所述一个或多个从处理器的并行存取单元用于运行并行存取指令子集,包括通过并行存取单元到直接内存存取DMA控制器和并行计算单元的数据存取通道,进行并行或者串行的数据存取。可选的,在本发明一实施例中,所述一个或多个从处理器的并行存取单元用于运行并行存取指令子集,包括利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问。可选的,在本发明一实施例中,所述利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问,包括利用第一交织表,将主存储器中顺序存储的数据打散,并按将执行算法的需求存入并行从处理器的存储器中;利用第二交织表,将并行从处理器的存储器中已经乱序的运算结果恢复至原始顺序,并存入主存储器。可选的,在本发明一实施例中,所述多核并行数字信号处理器通过并行执行的正交指令子集来达到在数据存取的同时进行算数计算,并通过设定执行次数,独立循环执行或联合循环执行所述并行运算指令子集和所述并行存取指令子集。可选的,在本发明一实施例中,所述多核并行数字信号处理器通过并行存取单元的有限状态机控制器和并行计算单元的有限状态机控制器,作为循环控制器,用于控制一个单指令多数据SIMD数据通道的循环操作,所述循环操作包括两类一类是运行函数求解任务,这类循环不需要本地向量存储器来提供数据;另一类是基于乘累加功能的循环,这类循环本地向量存储器需要提供向量数据和系数数组。另一方面,本发明实施例提供了一种并行指令集的运行方法,所述方法通过多核并行数字信号处理器至少运行如下三个指令子集控制指令子集、并行存取指令子集及并行运算指令子集,其中,所述多核并行数字信号处理器包括一主处理器以及多个从处理器, 所述从处理器由相互独立的并行存取单元和并行计算单元组成,所述控制指令子集、并行存取指令子集及并行运算指令子集分别独立编码并分别由独立的硬件单元执行,包括通过主处理器运行控制指令子集;通过一个或多个从处理器的并行存取单元运行并行存取指令子集;通过一个或多个从处理器的并行计算单元运行并行运算指令子集。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过一个或多个从处理器的并行存取单元的有限状态机控制器,运行单指令进行单次的数据存取,或者运行任务级指令进行单指令循环或多指令循环的数据存取操作。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行计算单元运行并行运算指令子集,包括通过一个或多个从处理器的并行计算单元的有限状态机控制器,运行单指令算术逻辑运算,或者运行任务级指令进行单指令循环,或多指令循环,或基于并行数据通道的单指令多操作,或基于并行数据通道和有限状态机控制器的单指令多操作,或基于紧耦合加速单元的单指令多操作的算术逻辑运算。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过包含由多个存储器构成的本地存储器组和寄存器组组成的并行存取单元,运行并行存取指令子集,并对并行计算单元提供多路数据的并行存取,在本地存储器组和寄存器组之间、本地存储器组和并行计算单元之间、寄存器组和并行计算单元之间交换数据。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行计算单元运行并行运算指令子集,包括通过一个或多个从处理器的并行计算单元采用单指令多数据SIMD结构的数据通道,对多路数据做相同的相互独立的操作并返回多路结果的运算,或者对多路数据操作得到一路结果的运算。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过并行存取单元到直接内存存取DMA控制器和并行计算单元的数据存取通道,进行并行或者串行的数据存取。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问。可选的,在本发明一实施例中,所述利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问,包括利用第一交织表,将主存储器中顺序存储的数据打散,并按将执行算法的需求存入并行从处理器的存储器中;利用第二交织表,将并行从处理器的存储器中已经乱序的运算结果恢复至原始顺序,并存入主存储器。可选的,在本发明一实施例中,所述多核并行数字信号处理器通过并行执行的正交指令子集来达到在数据存取的同时进行算数计算,并通过设定执行次数,独立循环执行或联合循环执行所述并行运算指令子集和所述并行存取指令子集。可选的,在本发明一实施例中,所述多核并行数字信号处理器通过并行存取单元的有限状态机控制器和并行计算单元的有限状态机控制器,作为循环控制器,用于控制一个单指令多数据SIMD数据通道的循环操作,所述循环操作包括两类一类是运行函数求解任务,这类循环不需要本地向量存储器来提供数据;另一类是基于乘累加功能的循环,这类循环本地向量存储器需要提供向量数据和系数数组。上述技术方案具有如下有益效果因为采用多核并行数字信号处理器至少运行如下三个指令子集控制指令子集、并行存取指令子集及并行运算指令子集,其中,所述多核并行数字信号处理器包括一主处理器以及多个从处理器,所述从处理器由相互独立的并行存取单元和并行计算单元组成,所述控制指令子集、并行存取指令子集及并行运算指令子集分别独立编码并分别由独立的硬件单元执行,包括通过主处理器运行控制指令子集; 通过一个或多个从处理器的并行存取单元运行并行存取指令子集;通过一个或多个从处理器的并行计算单元运行并行运算指令子集的技术手段,所以提高了处理器效率,最大可能的减少或掩盖了冗余操作,从而提高了处理器的处理性能。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例一种多核并行数字信号处理器结构示意图;图2为本发明实施例包括三个数据存取硬件的并行存储器框图;图3为本发明实施例外部存储器输入数据交织实例示意图;图4为本发明实施例一个多核处理器结构实例示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。如图1所示,为本发明实施例一种多核并行数字信号处理器结构示意图,所述多核并行数字信号处理器至少运行如下三个指令子集控制指令子集21、并行存取指令子集 22及并行运算指令子集23,其中,所述多核并行数字信号处理器包括一主处理器11以及多个从处理器,所述从处理器由相互独立的并行存取单元13和并行计算单元14组成,所述控制指令子集21、并行存取指令子集22及并行运算指令子集23分别独立编码并分别由独立的硬件单元执行,主处理器11用于运行控制指令子集21 ;—个或多个从处理器的并行存取单元13用于运行并行存取指令子集22 ;—个或多个从处理器的并行计算单元14用于运行并行运算指令子集23。该多核并行数字信号处理器还包括直接内存存取(DMA,Direct Memory Access)控制器12,用于通过存储子系统15从主存储器中存取数据,并在主处理器 11和从处理器之间传输数据。可选的,在本发明一实施例中,一个或多个从处理器的并行存取单元13的有限状态机控制器,用于运行单指令进行单次的数据存取,或者运行任务级指令进行单指令循环或多指令循环的数据存取操作。可选的,在本发明一实施例中,一个或多个从处理器的并行计算单元14的有限状态机控制器,用于运行单指令算术逻辑运算,或者运行任务级指令进行单指令循环,或多指令循环,或基于并行数据通道的单指令多操作,或基于并行数据通道和有限状态机控制器的单指令多操作,或基于紧耦合加速单元的单指令多操作的算术逻辑运算。可选的,在本发明一实施例中,所述一个或多个从处理器的并行存取单元13用于运行并行存取指令子集22,包括通过包含由多个存储器构成的本地存储器组和寄存器组组成的并行存取单元13,运行并行存取指令子集22,并对并行计算单元14提供多路数据的并行存取,在本地存储器组和寄存器组之间、本地存储器组和并行计算单元14之间、寄存器组和并行计算单元14之间交换数据。可选的,在本发明一实施例中,所述一个或多个从处理器的并行计算单元14用于运行并行运算指令子集23,包括通过一个或多个从处理器的并行计算单元14采用单指令多数据SIMD结构的数据通道,对多路数据做相同的相互独立的操作并返回多路结果的运算,或者对多路数据操作得到一路结果的运算。可选的,在本发明一实施例中,所述一个或多个从处理器的并行存取单元13用于运行并行存取指令子集22,包括通过并行存取单元13到直接内存存取DMA控制器12和并行计算单元14的数据存取通道,进行并行或者串行的数据存取。可选的,在本发明一实施例中,所述一个或多个从处理器的并行存取单元13用于运行并行存取指令子集22,包括利用并行存取单元13中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问。可选的,在本发明一实施例中,所述利用并行存取单元13中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问,包括利用第一交织表,将主存储器中顺序存储的数据打散,并按将执行算法的需求存入并行从处理器的存储器中;利用第二交织表,将并行从处理器的存储器中已经乱序的运算结果恢复至原始顺序,并存入主存储
ο可选的,在本发明一实施例中,所述多核并行数字信号处理器通过并行执行的正交指令子集来达到在数据存取的同时进行算数计算,并通过设定执行次数,独立循环执行或联合循环执行所述并行运算指令子集23和所述并行存取指令子集。可选的,在本发明一实施例中,所述多核并行数字信号处理器通过并行存取单元 13的有限状态机控制器和并行计算单元14的有限状态机控制器,作为循环控制器,用于控制一个单指令多数据SIMD数据通道的循环操作,所述循环操作包括两类一类是运行函数求解任务,这类循环不需要本地向量存储器来提供数据;另一类是基于乘累加功能的循环, 这类循环本地向量存储器需要提供向量数据和系数数组。本发明实施例公开了一种基于三维正交并行指令集的高效并行体系结构。这个体系结构的指令集分为三个指令子集控制指令子集、并行存取指令子集及并行运算指令子集。控制指令子集在主控制器内运行,用于顶层程序、系统控制、资源管理、和少量的不可预测算法的执行。控制指令子集的每条指令的二进制编码很短,因此可允许其程序长度较长。 并行存取指令子集控制并行数据存取通道,它是数据存取指令子集,用于编制和执行本地存储器组和寄存器组、本地存储器组和并行计算单元、寄存器组和并行计算单元之间的数据的存取。因为数据信号处理多为循环迭代运算,并行存取指令子集应能够即以程序代码方式提供每个时钟的执行设定;又能以可重构向量代码的方式提供面向一个具体子程序的固定的控制向量,这个固定的控制向量无需每个时钟变化。因此虽然数据存取指令子集代码可能较长,但其变化相对少、指令个数少,代码的开销相对很低。并行运算指令子集控制并行数据处理通道,它是并行子程序的功能执行指令子集。这个子集用于控制并行数据通道从而在并行数据通道上执行并行算法。这个子集代码的执行是基于数据已在并行存储器组或数据已由本地存储器组送至数据通道的入口的前提。在执行一条作业级的宏指令时, 一条指令可控制全部或大部子程序的执行。因此,虽然并行子程序的功能执行指令子集的代码可能较长,但其变化相对少、指令个数少,代码的开销相对很低。通过将三个指令子集分开,单独定义并单独编码,将得到下列好处1)每个指令子集单独进行二进制代码编码, 代码的存储开销大大减低;2)因为并行存取指令子集及并行运算指令子集的程序代码的长度低,其二进制编码可用微码,从而在最大的程度上向程序员开放了硬件资源的可控性、 数据和寻址功能的用户开发、和重构的灵活性;幻三个指令子集代码可进一步以流水/流水线(pipeline)方式并行执行,程序员可在最大程度上使用并行硬件。本发明上述多核并行数字信号处理器实施例提高了处理器效率,最大可能的减少或掩盖了冗余操作,从而提高了处理器的处理性能。如图2所示,为本发明实施例包括三个数据存取硬件的并行存储器框图。其包括 (1)含有多个并行随机存储器的存储器组31,(2)对这个存储器组的并行输入和并行输出数据交织的可控交织开关组32,(3)对存储器组及交织开关组实施控制的可重构有限状态机控制器33。硬件31存储器组由并行的多个随机存储器构成,支持在同一时间对多个存储器的并行读/写。读写操作时提供每一个存储器的访问地址,可随机访问每个存储器的不同地址。该并行存储器组有两个访问通道。通道1(存储器组左侧通道)为外部访问通道,外部存储器的输入数据通过此通道写入并行存储器,或者并行存储器的本地数据通过此通道输出至外部存储器。通道2(存储器组右侧通道)为向量寄存器组和向量数据处理的访问通道。从处理器通过编程提供并行存储器的访问地址,可并行访问每个存储器块中的随机地址。在执行并行读操作时,支持多路数据通道对同一存储器块中相同地址的读取。硬件32并行输入和并行输出数据交织的可控交织开关组。对并行存储器的外部存储器输入输出数据进行交织。在对输入数据进行交织时,输入数据将被打乱存放在并行存储器组中。在对输出数据进行交织时,并行存储器中读出的数据将被重新排序输出至外部存储器。硬件33对存储器组和交织开关组实施控制的有限状态机控制器。其通过运行并行存取指令产生的交织控制向量来控制交织器,从而调整输入或输出向量数据的顺序。并行存取指令可控制对单个向量数据读或写的交织,或对多个数据构成的数据流的读或写的交织。外部存储器输入数据交织如图3所示,为本发明实施例外部存储器输入数据交织实例示意图。并行存储器组由4个随机存储器构成。输入数据流为D0-D15,每次并行写入4个数到并行存储器组。 写入数据通过可控交织开关组,被重新调整在并行存储器中的写入位置。如第二个向量 D4D5D6D7,被调整为D7D4D5D6写入并行存储器中。调整的目的是为了并行计算单元的并行数据访问。在该实例中并行计算单元需并行处理D0D4D8D12,通过输入交织开关组将需要并行访问的向量中的元素存放在不同的存储器中,以达到计算时的并行无冲突访问。在相反方向,对输出数据进行交织时,并行计算单元的计算结果被调整顺序写入到并行存储器中,其顺序调整是为了在对外部存储器进行并行输出时无冲突访问本地存储器组。以上实例中的交织开关组由可重构的有限状态机控制器控制,该控制器的输入为运行并行存取指令产生的交织控制向量。通过重构该有限状态机控制器,可根据配置产生对输入输出单个向量的交织控制,或对一个数据流中每个向量的交织控制。多核组网该多核处理器的多个处理器以及外部存储器通过片上网络互联并进行数据交换。 如图4所示,为本发明实施例一个多核处理器结构实例示意图,其由一个主处理器和N个从处理器构成,每个从处理器包含并行计算单元和并行存储单元。外部存储器与本地存储器之间的数据传输可由连接至片上网络的DMA控制器完成。从处理器与从处理器间也通过片上网络交换数据。并行存取对数据的并行存取由并行存储器组实现,该并行存储器组由多个随机存储器构成。在同一时间,可对每个存储器进行独立的数据读写。在并行写入的时候,输入向量的每个元素对应一个存储器,可以将该向量一次写入到存储器组。在并行读取的时候,从每一个随机存储器读出一个数据,从而实现一个向量的并行读取。并行计算对数据的并行计算通过从处理器的并行计算单元实现。数据级并行处理器通常采用单指令多数据(Single Instruction Multiple Data, SIMD)结构,其通过多输入的数据通道,对多个输入数据进行计算。并行计算包括对多路输入数据实施相同操作得到多路结果的计算,如向量加运算,对两个向量对应的元素相加,得到结果向量。或是对多路输入数据进行计算得到单一结果的计算,如向量求和运算,结果为输入向量各个元素的和。对应于上述装置实施例,本发明实施例还提供了一种并行指令集的运行方法,所述方法通过多核并行数字信号处理器至少运行如下三个指令子集控制指令子集、并行存取指令子集及并行运算指令子集,其中,所述多核并行数字信号处理器包括一主处理器以及多个从处理器,所述从处理器由相互独立的并行存取单元和并行计算单元组成,所述控制指令子集、并行存取指令子集及并行运算指令子集分别独立编码并分别由独立的硬件单元执行,包括通过主处理器运行控制指令子集;并通过一个或多个从处理器的并行存取单元运行并行存取指令子集;并通过一个或多个从处理器的并行计算单元运行并行运算指令子集。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过一个或多个从处理器的并行存取单元的有限状态机控制器,运行单指令进行单次的数据存取,或者运行任务级指令进行单指令循环或多指令循环的数据存取操作。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行计算单元运行并行运算指令子集,包括通过一个或多个从处理器的并行计算单元的有限状态机控制器,运行单指令算术逻辑运算,或者运行任务级指令进行单指令循环,或多指令循环,或基于并行数据通道的单指令多操作,或基于并行数据通道和有限状态机控制器的单指令多操作,或基于紧耦合加速单元的单指令多操作的算术逻辑运算。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过包含由多个存储器构成的本地存储器组和寄存器组组成的并行存取单元,运行并行存取指令子集,并对并行计算单元提供多路数据的并行存取,在本地存储器组和寄存器组之间、本地存储器组和并行计算单元之间、寄存器组和并行计算单元之间交换数据。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行计算单元运行并行运算指令子集,包括通过一个或多个从处理器的并行计算单元采用单指令多数据 SIMD结构的数据通道,对多路数据做相同的相互独立的操作并返回多路结果的运算,或者对多路数据操作得到一路结果的运算。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过并行存取单元到直接内存存取DMA控制器和并行计算单元的数据存取通道,进行并行或者串行的数据存取。可选的,在本发明一实施例中,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问。可选的,在本发明一实施例中,所述利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问,包括利用第一交织表,将主存储器中顺序存储的数据打散,并按将执行算法的需求存入并行从处理器的存储器中;利用第二交织表,将并行从处理器的存储器中已经乱序的运算结果恢复至原始顺序,并存入主存储器。可选的,在本发明一实施例中,所述多核并行数字信号处理器通过并行执行的正交指令子集来达到在数据存取的同时进行算数计算,并通过设定执行次数,独立循环执行或联合循环执行所述并行运算指令子集和所述并行存取指令子集。可选的,在本发明一实施例中,所述多核并行数字信号处理器通过并行存取单元的有限状态机控制器和并行计算单元的有限状态机控制器,作为循环控制器,用于控制一个单指令多数据SIMD数据通道的循环操作,所述循环操作包括两类一类是运行函数求解任务,这类循环不需要本地向量存储器来提供数据;另一类是基于乘累加功能的循环,这类循环本地向量存储器需要提供向量数据和系数数组。本发明上述并行指令集的运行方法实施例提高了处理器效率,最大可能的减少或掩盖了冗余操作,从而提高了处理器的处理性能。以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多核并行数字信号处理器,其特征在于,所述多核并行数字信号处理器至少运行如下三个指令子集控制指令子集、并行存取指令子集及并行运算指令子集,其中,所述多核并行数字信号处理器包括一主处理器以及多个从处理器,所述从处理器由相互独立的并行存取单元和并行计算单元组成,所述控制指令子集、并行存取指令子集及并行运算指令子集分别独立编码并分别由独立的硬件单元执行,主处理器用于运行控制指令子集;一个或多个从处理器的并行存取单元用于运行并行存取指令子集;一个或多个从处理器的并行计算单元用于运行并行运算指令子集。
2.如权利要求1所述多核并行数字信号处理器,其特征在于,一个或多个从处理器的并行存取单元的有限状态机控制器,用于运行单指令进行单次的数据存取,或者运行任务级指令进行单指令循环或多指令循环的数据存取操作。
3.如权利要求1所述多核并行数字信号处理器,其特征在于,一个或多个从处理器的并行计算单元的有限状态机控制器,用于运行单指令算术逻辑运算,或者运行任务级指令进行单指令循环,或多指令循环,或基于并行数据通道的单指令多操作,或基于并行数据通道和有限状态机控制器的单指令多操作,或基于紧耦合加速单元的单指令多操作的算术逻辑运算。
4.如权利要求1所述多核并行数字信号处理器,其特征在于,所述一个或多个从处理器的并行存取单元用于运行并行存取指令子集,包括通过包含由多个存储器构成的本地存储器组和寄存器组组成的并行存取单元,运行并行存取指令子集,并对并行计算单元提供多路数据的并行存取,在本地存储器组和寄存器组之间、本地存储器组和并行计算单元之间、寄存器组和并行计算单元之间交换数据。
5.如权利要求1所述多核并行数字信号处理器,其特征在于,所述一个或多个从处理器的并行计算单元用于运行并行运算指令子集,包括通过一个或多个从处理器的并行计算单元采用单指令多数据SIMD结构的数据通道,对多路数据做相同的相互独立的操作并返回多路结果的运算,或者对多路数据操作得到一路结果的运算。
6.如权利要求1所述多核并行数字信号处理器,其特征在于,所述一个或多个从处理器的并行存取单元用于运行并行存取指令子集,包括通过并行存取单元到直接内存存取 DMA控制器和并行计算单元的数据存取通道,进行并行或者串行的数据存取。
7.如权利要求1所述多核并行数字信号处理器,其特征在于,所述一个或多个从处理器的并行存取单元用于运行并行存取指令子集,包括利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问。
8.如权利要求7所述多核并行数字信号处理器,其特征在于,所述利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问,包括利用第一交织表,将主存储器中顺序存储的数据打散,并按将执行算法的需求存入并行从处理器的存储器中;利用第二交织表,将并行从处理器的存储器中已经乱序的运算结果恢复至原始顺序,并存入主存储器。
9.如权利要求1所述多核并行数字信号处理器,其特征在于,所述多核并行数字信号处理器通过并行执行的正交指令子集来达到在数据存取的同时进行算数计算,并通过设定执行次数,独立循环执行或联合循环执行所述并行运算指令子集和所述并行存取指令子集。
10.如权利要求1所述多核并行数字信号处理器,其特征在于,所述多核并行数字信号处理器通过并行存取单元的有限状态机控制器和并行计算单元的有限状态机控制器,作为循环控制器,用于控制一个单指令多数据SIMD数据通道的循环操作,所述循环操作包括两类一类是运行函数求解任务,这类循环不需要本地向量存储器来提供数据;另一类是基于乘累加功能的循环,这类循环本地向量存储器需要提供向量数据和系数数组。
11.一种并行指令集的运行方法,其特征在于,所述方法通过多核并行数字信号处理器至少运行如下三个指令子集控制指令子集、并行存取指令子集及并行运算指令子集,其中,所述多核并行数字信号处理器包括一主处理器以及多个从处理器,所述从处理器由相互独立的并行存取单元和并行计算单元组成,所述控制指令子集、并行存取指令子集及并行运算指令子集分别独立编码并分别由独立的硬件单元执行,包括通过主处理器运行控制指令子集;通过一个或多个从处理器的并行存取单元运行并行存取指令子集;通过一个或多个从处理器的并行计算单元运行并行运算指令子集。
12.如权利要求11所述并行指令集的运行方法,其特征在于,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过一个或多个从处理器的并行存取单元的有限状态机控制器,运行单指令进行单次的数据存取,或者运行任务级指令进行单指令循环或多指令循环的数据存取操作。
13.如权利要求11所述并行指令集的运行方法,其特征在于,所述通过一个或多个从处理器的并行计算单元运行并行运算指令子集,包括通过一个或多个从处理器的并行计算单元的有限状态机控制器,运行单指令算术逻辑运算,或者运行任务级指令进行单指令循环,或多指令循环,或基于并行数据通道的单指令多操作,或基于并行数据通道和有限状态机控制器的单指令多操作,或基于紧耦合加速单元的单指令多操作的算术逻辑运算。
14.如权利要求11所述并行指令集的运行方法,其特征在于,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过包含由多个存储器构成的本地存储器组和寄存器组组成的并行存取单元,运行并行存取指令子集,并对并行计算单元提供多路数据的并行存取,在本地存储器组和寄存器组之间、本地存储器组和并行计算单元之间、寄存器组和并行计算单元之间交换数据。
15.如权利要求11所述并行指令集的运行方法,其特征在于,所述通过一个或多个从处理器的并行计算单元运行并行运算指令子集,包括通过一个或多个从处理器的并行计算单元采用单指令多数据SIMD结构的数据通道, 对多路数据做相同的相互独立的操作并返回多路结果的运算,或者对多路数据操作得到一路结果的运算。
16.如权利要求11所述并行指令集的运行方法,其特征在于,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括通过并行存取单元到直接内存存取DMA控制器和并行计算单元的数据存取通道,进行并行或者串行的数据存取。
17.如权利要求11所述并行指令集的运行方法,其特征在于,所述通过一个或多个从处理器的并行存取单元运行并行存取指令子集,包括利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问。
18.如权利要求17所述并行指令集的运行方法,其特征在于,所述利用并行存取单元中基于地址查找表的多交织路径控制器,以对存储器组进行并行无冲突访问,包括利用第一交织表,将主存储器中顺序存储的数据打散,并按将执行算法的需求存入并行从处理器的存储器中;利用第二交织表,将并行从处理器的存储器中已经乱序的运算结果恢复至原始顺序, 并存入主存储器。
19.如权利要求11所述并行指令集的运行方法,其特征在于,所述多核并行数字信号处理器通过并行执行的正交指令子集来达到在数据存取的同时进行算数计算,并通过设定执行次数,独立循环执行或联合循环执行所述并行运算指令子集和所述并行存取指令子集。
20.如权利要求11所述并行指令集的运行方法,其特征在于,所述多核并行数字信号处理器通过并行存取单元的有限状态机控制器和并行计算单元的有限状态机控制器,作为循环控制器,用于控制一个单指令多数据SIMD数据通道的循环操作,所述循环操作包括两类一类是运行函数求解任务,这类循环不需要本地向量存储器来提供数据;另一类是基于乘累加功能的循环,这类循环本地向量存储器需要提供向量数据和系数数组。
全文摘要
本发明实施例提供一种多核并行数字信号处理器及并行指令集的运行方法,所述多核并行数字信号处理器至少运行如下三个指令子集控制指令子集、并行存取指令子集及并行运算指令子集,其中,所述多核并行数字信号处理器包括一主处理器以及多个从处理器,所述从处理器由相互独立的并行存取单元和并行计算单元组成,所述控制指令子集、并行存取指令子集及并行运算指令子集分别独立编码并分别由独立的硬件单元执行,主处理器用于运行控制指令子集;一个或多个从处理器的并行存取单元用于运行并行存取指令子集;一个或多个从处理器的并行计算单元用于运行并行运算指令子集。本发明实施例提高了处理器效率,最大可能的减少或掩盖了冗余操作,从而提高了处理器的处理性能。
文档编号G06F9/38GK102508643SQ201110363820
公开日2012年6月20日 申请日期2011年11月16日 优先权日2011年11月16日
发明者刘大可, 安德里雅思·卡尔松, 猷阿·索, 王建 申请人:刘大可
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1