CN102508643A - 一种多核并行数字信号处理器及并行指令集的运行方法 - Google Patents
一种多核并行数字信号处理器及并行指令集的运行方法 Download PDFInfo
- Publication number
- CN102508643A CN102508643A CN2011103638203A CN201110363820A CN102508643A CN 102508643 A CN102508643 A CN 102508643A CN 2011103638203 A CN2011103638203 A CN 2011103638203A CN 201110363820 A CN201110363820 A CN 201110363820A CN 102508643 A CN102508643 A CN 102508643A
- Authority
- CN
- China
- Prior art keywords
- parallel
- processor
- access
- subset
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
本发明实施例提供一种多核并行数字信号处理器及并行指令集的运行方法,所述多核并行数字信号处理器至少运行如下三个指令子集:控制指令子集、并行存取指令子集及并行运算指令子集,其中,所述多核并行数字信号处理器包括一主处理器以及多个从处理器,所述从处理器由相互独立的并行存取单元和并行计算单元组成,所述控制指令子集、并行存取指令子集及并行运算指令子集分别独立编码并分别由独立的硬件单元执行,主处理器用于运行控制指令子集;一个或多个从处理器的并行存取单元用于运行并行存取指令子集;一个或多个从处理器的并行计算单元用于运行并行运算指令子集。本发明实施例提高了处理器效率,最大可能的减少或掩盖了冗余操作,从而提高了处理器的处理性能。
Description
技术领域
本发明涉及多核处理器技术领域,尤其涉及一种多核并行数字信号处理器及并行指令集的运行方法。
背景技术
传统的计算机结构设计致力于优化高速缓冲存储器,分支预测,和非顺序执行的超标量体系结构。这些做法适用于通用型处理器设计,但并不是嵌入系统的最佳选择。与之类似,并行运算在通用高性能计算中发挥了重要作用,但已有的并行结构和并行编程模型都不是针对高性能嵌入系统而设计的。
嵌入处理器有着广泛的应用,如在手机和其他电池供电的系统中使用具有超低功耗的处理器。专用指令集处理器是嵌入式系统的最佳处理器结构。嵌入式信号处理系统使用专用指令集处理器来达到在特定应用范围的高性能,低功耗和可编程性。专用指令集处理器针对一类应用来设计和优化其指令集架构从而减小处理器的功耗和硅面积。
专用处理器架构的设计一般使用以下两种模型:
流水并行模型:此模型包含若干处理单元,每个单元运行一个任务,处理单元间使用链式连接。处理单元N的输出被连接至处理单元N+1的输入。这个模型被广泛应用于通信和多媒体信号处理。使用流水并行模型的关键是在每个处理器上的任务运行时间都小于整个系统输入数据的时间间隔。
数据并行模型:若干处理单元对不同的数据执行相同任务来计算结果。使用数据并行模型的关键是识别数据的规则性并据此对数据进行拆分和并行运算。
专用处理器设计通常是以上两种模型的灵活组合。处理器或者片上系统设计的目标是设计两种模型的最佳组合以刚好满足特定应用对性能的需求,以避免多余的运算器件和片上互联网络的硬件开销和功率消耗。
最初的高性能信号处理器采用专用集成电路(ASIC,Application Specific IntegratedCircuits),这在当时是达到高性能和低功耗的唯一方法。但是专用集成电路缺乏灵活性。由于信号处理应用不断的有新标准和新算法被提出,硬件设计的灵活性和可编程性成为了一个重要的要求。典型的实例是无线电基带处理器和多媒体处理器。无线电基带处理器需要通过软件编程来支持多个无线通信标准的基带信号处理。多媒体处理器需要支持多种音频和视频的编解码标准。
为了提供更大的运算能力,专用处理器使用并行多核结构。每个处理器核也使用指令级或者数据级并行以提高运算能力。已有的可编程数字信号处理器核使用两种微结构。一种是基于超长指令字(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,DirectMemory 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)因为并行存取指令子集及并行运算指令子集的程序代码的长度低,其二进制编码可用微码,从而在最大的程度上向程序员开放了硬件资源的可控性、数据和寻址功能的用户开发、和重构的灵活性;3)三个指令子集代码可进一步以流水/流水线(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数据通道的循环操作,所述循环操作包括两类:一类是运行函数求解任务,这类循环不需要本地向量存储器来提供数据;另一类是基于乘累加功能的循环,这类循环本地向量存储器需要提供向量数据和系数数组。
本发明上述并行指令集的运行方法实施例提高了处理器效率,最大可能的减少或掩盖了冗余操作,从而提高了处理器的处理性能。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (20)
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数据通道的循环操作,所述循环操作包括两类:一类是运行函数求解任务,这类循环不需要本地向量存储器来提供数据;另一类是基于乘累加功能的循环,这类循环本地向量存储器需要提供向量数据和系数数组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103638203A CN102508643A (zh) | 2011-11-16 | 2011-11-16 | 一种多核并行数字信号处理器及并行指令集的运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103638203A CN102508643A (zh) | 2011-11-16 | 2011-11-16 | 一种多核并行数字信号处理器及并行指令集的运行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102508643A true CN102508643A (zh) | 2012-06-20 |
Family
ID=46220737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103638203A Pending CN102508643A (zh) | 2011-11-16 | 2011-11-16 | 一种多核并行数字信号处理器及并行指令集的运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508643A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902512A (zh) * | 2012-08-31 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
CN103324465A (zh) * | 2013-05-10 | 2013-09-25 | 刘保国 | 多变量、复杂控制系统的并行算法及结构 |
CN103440225A (zh) * | 2013-08-21 | 2013-12-11 | 复旦大学 | 一种可重构单指令多进程的多核处理器及方法 |
CN103605572A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 一种多线程计算装置 |
CN104035898A (zh) * | 2014-06-04 | 2014-09-10 | 同济大学 | 一种基于vliw类型处理器的访存系统 |
CN105207957A (zh) * | 2015-08-18 | 2015-12-30 | 中国电子科技集团公司第五十八研究所 | 一种片上网络多核架构 |
CN105975048A (zh) * | 2016-05-05 | 2016-09-28 | 高靳旭 | 一种dsp芯片及其构造方法 |
CN106293640A (zh) * | 2015-06-26 | 2017-01-04 | 英特尔公司 | 用于紧密耦合的异构计算的硬件处理器和方法 |
CN108874730A (zh) * | 2018-06-14 | 2018-11-23 | 北京理工大学 | 一种数据处理器及数据处理方法 |
CN108897263A (zh) * | 2018-09-13 | 2018-11-27 | 杭州华澜微电子股份有限公司 | 具有多维数据传输和处理功能的智能电路单元及其系统和控制方法 |
CN108984235A (zh) * | 2018-06-29 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种数据处理的方法以及相关装置 |
CN109063831A (zh) * | 2017-10-30 | 2018-12-21 | 上海寒武纪信息科技有限公司 | 人工智能处理器及使用处理器执行向量加和指令的方法 |
CN109086228A (zh) * | 2018-06-26 | 2018-12-25 | 深圳市安信智控科技有限公司 | 具有多个独立访问通道的高速存储器芯片 |
CN109558170A (zh) * | 2018-11-06 | 2019-04-02 | 海南大学 | 一种支持数据级并行和多指令融合的二维数据通路架构 |
CN110472747A (zh) * | 2019-08-16 | 2019-11-19 | 第四范式(北京)技术有限公司 | 用于执行多机器学习任务的分布式系统及其方法 |
CN111447394A (zh) * | 2020-03-05 | 2020-07-24 | 视联动力信息技术股份有限公司 | 一种视频数据的处理方法、电子设备和存储介质 |
CN111459551A (zh) * | 2020-04-14 | 2020-07-28 | 上海兆芯集成电路有限公司 | 具高度领先分支预测器的微处理器 |
CN112286456A (zh) * | 2020-10-27 | 2021-01-29 | 清华大学 | 存储方法及装置 |
CN113204518A (zh) * | 2020-01-31 | 2021-08-03 | 慧与发展有限责任合伙企业 | 用于配置子系统的主处理器和从处理器 |
CN114902619A (zh) * | 2019-12-31 | 2022-08-12 | 北京希姆计算科技有限公司 | 一种存储管理装置及芯片 |
US11990137B2 (en) | 2018-09-13 | 2024-05-21 | Shanghai Cambricon Information Technology Co., Ltd. | Image retouching method and terminal device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450603A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
JP2003177929A (ja) * | 2001-12-07 | 2003-06-27 | Nri & Ncc Co Ltd | マスタマシン、スレーブマシン、およびそれらを有するクラスタリングシステム |
CN102144225A (zh) * | 2008-05-29 | 2011-08-03 | 阿克西斯半导体有限公司 | 实时数据处理方法和装置 |
-
2011
- 2011-11-16 CN CN2011103638203A patent/CN102508643A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5450603A (en) * | 1992-12-18 | 1995-09-12 | Xerox Corporation | SIMD architecture with transfer register or value source circuitry connected to bus |
JP2003177929A (ja) * | 2001-12-07 | 2003-06-27 | Nri & Ncc Co Ltd | マスタマシン、スレーブマシン、およびそれらを有するクラスタリングシステム |
CN102144225A (zh) * | 2008-05-29 | 2011-08-03 | 阿克西斯半导体有限公司 | 实时数据处理方法和装置 |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902512A (zh) * | 2012-08-31 | 2013-01-30 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
CN102902512B (zh) * | 2012-08-31 | 2015-12-16 | 浪潮电子信息产业股份有限公司 | 一种基于多线程编程及消息队列的多线程并行处理方法 |
CN103324465A (zh) * | 2013-05-10 | 2013-09-25 | 刘保国 | 多变量、复杂控制系统的并行算法及结构 |
CN103440225A (zh) * | 2013-08-21 | 2013-12-11 | 复旦大学 | 一种可重构单指令多进程的多核处理器及方法 |
CN103440225B (zh) * | 2013-08-21 | 2018-04-03 | 复旦大学 | 一种可重构单指令多进程的多核处理器及方法 |
CN103605572A (zh) * | 2013-12-05 | 2014-02-26 | 用友软件股份有限公司 | 一种多线程计算装置 |
CN104035898A (zh) * | 2014-06-04 | 2014-09-10 | 同济大学 | 一种基于vliw类型处理器的访存系统 |
CN106293640A (zh) * | 2015-06-26 | 2017-01-04 | 英特尔公司 | 用于紧密耦合的异构计算的硬件处理器和方法 |
CN106293640B (zh) * | 2015-06-26 | 2018-12-04 | 英特尔公司 | 用于紧密耦合的异构计算的硬件处理器、方法以及硬件装置 |
CN105207957A (zh) * | 2015-08-18 | 2015-12-30 | 中国电子科技集团公司第五十八研究所 | 一种片上网络多核架构 |
CN105207957B (zh) * | 2015-08-18 | 2018-10-30 | 中国电子科技集团公司第五十八研究所 | 一种基于片上网络多核架构的系统 |
CN105975048A (zh) * | 2016-05-05 | 2016-09-28 | 高靳旭 | 一种dsp芯片及其构造方法 |
US11922132B2 (en) | 2017-10-30 | 2024-03-05 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US11762631B2 (en) | 2017-10-30 | 2023-09-19 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
CN109063831A (zh) * | 2017-10-30 | 2018-12-21 | 上海寒武纪信息科技有限公司 | 人工智能处理器及使用处理器执行向量加和指令的方法 |
CN108874730A (zh) * | 2018-06-14 | 2018-11-23 | 北京理工大学 | 一种数据处理器及数据处理方法 |
CN109086228A (zh) * | 2018-06-26 | 2018-12-25 | 深圳市安信智控科技有限公司 | 具有多个独立访问通道的高速存储器芯片 |
CN109086228B (zh) * | 2018-06-26 | 2022-03-29 | 深圳市安信智控科技有限公司 | 具有多个独立访问通道的高速存储器芯片 |
CN108984235A (zh) * | 2018-06-29 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种数据处理的方法以及相关装置 |
US11996105B2 (en) | 2018-09-13 | 2024-05-28 | Shanghai Cambricon Information Technology Co., Ltd. | Information processing method and terminal device |
US11990137B2 (en) | 2018-09-13 | 2024-05-21 | Shanghai Cambricon Information Technology Co., Ltd. | Image retouching method and terminal device |
CN108897263A (zh) * | 2018-09-13 | 2018-11-27 | 杭州华澜微电子股份有限公司 | 具有多维数据传输和处理功能的智能电路单元及其系统和控制方法 |
CN109558170B (zh) * | 2018-11-06 | 2021-05-04 | 极芯通讯技术(南京)有限公司 | 一种支持数据级并行和多指令融合的二维数据通路架构 |
CN109558170A (zh) * | 2018-11-06 | 2019-04-02 | 海南大学 | 一种支持数据级并行和多指令融合的二维数据通路架构 |
CN110472747A (zh) * | 2019-08-16 | 2019-11-19 | 第四范式(北京)技术有限公司 | 用于执行多机器学习任务的分布式系统及其方法 |
CN114902619A (zh) * | 2019-12-31 | 2022-08-12 | 北京希姆计算科技有限公司 | 一种存储管理装置及芯片 |
CN114902619B (zh) * | 2019-12-31 | 2023-07-25 | 北京希姆计算科技有限公司 | 一种存储管理装置及芯片 |
CN113204518A (zh) * | 2020-01-31 | 2021-08-03 | 慧与发展有限责任合伙企业 | 用于配置子系统的主处理器和从处理器 |
CN111447394A (zh) * | 2020-03-05 | 2020-07-24 | 视联动力信息技术股份有限公司 | 一种视频数据的处理方法、电子设备和存储介质 |
CN111459551B (zh) * | 2020-04-14 | 2022-08-16 | 上海兆芯集成电路有限公司 | 具高度领先分支预测器的微处理器 |
CN111459551A (zh) * | 2020-04-14 | 2020-07-28 | 上海兆芯集成电路有限公司 | 具高度领先分支预测器的微处理器 |
CN112286456B (zh) * | 2020-10-27 | 2022-03-08 | 清华大学 | 存储方法及装置 |
CN112286456A (zh) * | 2020-10-27 | 2021-01-29 | 清华大学 | 存储方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508643A (zh) | 一种多核并行数字信号处理器及并行指令集的运行方法 | |
Abts et al. | Think fast: A tensor streaming processor (TSP) for accelerating deep learning workloads | |
CN108268278B (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
CN102750133B (zh) | 支持simd的32位三发射的数字信号处理器 | |
Fang et al. | swdnn: A library for accelerating deep learning applications on sunway taihulight | |
CN102004719B (zh) | 支持同时多线程的超长指令字处理器结构 | |
CN101751244B (zh) | 微处理器 | |
CN1142484C (zh) | 微处理器向量处理方法 | |
CN102402415B (zh) | 一种动态可重构阵列内数据缓存的装置及方法 | |
Sano et al. | Scalable streaming-array of simple soft-processors for stencil computations with constant memory-bandwidth | |
CN102279818A (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
CN102306139A (zh) | 用于ofdm无线通信系统的异构多核数字信号处理器 | |
CN100489830C (zh) | 面向科学计算的64位流处理器芯片 | |
CN102306141A (zh) | 一种描述动态可重构阵列配置信息的方法 | |
CN103761072A (zh) | 一种粗粒度可重构层次化的阵列寄存器文件结构 | |
CN112486908B (zh) | 层次化的多rpu多pea的可重构处理器 | |
CN103235717B (zh) | 具有多态指令集体系结构的处理器 | |
Song et al. | Gpnpu: Enabling efficient hardware-based direct convolution with multi-precision support in gpu tensor cores | |
CN102012802B (zh) | 面向向量处理器数据交换的方法及装置 | |
Prabhakar et al. | SambaNova SN10 RDU: A 7nm dataflow architecture to accelerate software 2.0 | |
CN102411490B (zh) | 一种针对动态可重构处理器的指令集的优化方法 | |
CN102023846B (zh) | 基于单片多处理器系统的共享前端流水线结构 | |
Tan et al. | A pipelining loop optimization method for dataflow architecture | |
Abdelhamid et al. | Condensing an overload of parallel computing ingredients into a single architecture recipe | |
Abdelhamid et al. | MITRACA: A next-gen heterogeneous architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120620 |