一种多车道/多核系统和方法技术方案

技术编号:15082515 阅读:180 留言:0更新日期:2017-04-07 13:34
本发明专利技术提供了一种多车道/多核系统和方法。所述多车道/多核系统包含多个车道/处理器核,每个车道/处理器核可以执行相同或不同的指令并访问存储器。所述多车道/多核系统还可以包含循环控制器和数据引擎,用于在执行循环程序时进行存储器读或写数据操作,从而避免了在循环程序中明示出现数据访问指令。所述系统还可以对所述复数个车道/处理器核的执行结果进行后处理操作,并访问存储器。所述后处理操作可以由车道/处理器核或专门的后处理器实现。使用本发明专利技术所述的具有后处理器的多车道/多核系统进行映射/聚合操作,可以避免传统多车道/多核系统中大量的存储器访问操作,从而显著地提高性能。

【技术实现步骤摘要】

本专利技术涉及计算机,通讯及集成电路领域。
技术介绍
为了提高多处理器核系统的运行效率,可以将某些计算操作(如信息统计、矩阵运算等)划分为两个阶段。第一阶段的操作可以映射(map)到多个处理器核中并行执行,用高并行度缩短执行时间;第二阶段的操作则是对第一阶段操作的执行结果进行聚合(reduce)处理,从而得到最终结果。这种方式被称为映射/聚合(map/reduce)。目前一种常用的处理映射/聚合问题的方法是通过网络将存储器和大量的计算机/处理器连接起来。计算机/处理器执行完映射操作后将得到的中间结果存入存储器中,之后在执行聚合操作时再从存储器读取相应的中间结果以完成后续操作。然而,在这种结构中,需要频繁进行耗时的存储器访问操作,且通过网络进行数据传输会导致较长延迟,因此效率不高。而使用普通单指令单数据流(S1SD)处理器或多核处理器,则受限于算术逻辑单元(ALU)或处理器核的数目限制,无法真正大规模并行进行映射阶段的操作。另一种方法是使用车道(1ane)处理器实现映射/聚合。单指令多数据流(SIMD)的图形处理器(GPU)是一种常见的车道处理器。在GPU中有大量的车道,若干个车道被分为一组。在每组车道中的所有车道能针对相同或不同的数据执行相同的指令,提高了并行执行效率,可以很好地满足映射阶段的要求。请参考图1,其为根据现有技术实现的GPU的一个实施例。其中车道11、12、13、14可以构成一个车道组,同时执行同样的指令,并共享同一个存储器(图1中未显示)。车道之间并没有直接的连数据通路以传递数据,而是由一个车道将数据写入存储器、再由另一个车道从存储器中读出该数据,实现两个车道间的数据传递。这种GPU使用与通用处理器(CPU)不同的特殊SIMD指令集(例如PTX指令集),以及与CPU的编程环境不同的特殊开发环境(例如CUDA环境),这增加了编程的难度,且两种指令集之间的转换是困难的,也会影响到系统整体的效率。此外,由于GPU的车道组中不同车道必须执行同样的指令,因此执行效率必然比各车道可以执行不同的指令要差。虽然GPU在映射阶段已经达到较高的执行效率,但是在进入聚合阶段时,依然会因频繁访问存储器带来延迟和等待,且多个车道同时访问存储器对带宽有很高要求。本专利技术公开了全新的车道处理器系统的体系结构,从根本上解决上述所有问题。
技术实现思路
本专利技术提出了一种多车道/多核系统,包含多个车道/处理器核,每个车道/处理器核具有不同的车道/处理器核号,每个车道/处理器核可以执行相同或不同的指令并访问存储器;所述系统还对所述复数个车道/处理器核的执行结果进行后处理操作,并访问存储器。可选的,在所述系统中,所述多个车道/处理器核间具有全局总线,用于传递寄存器中的数据,以进行跨车道/处理器核寄存器值移动或计算操作。可选的,在所述系统中,将多车道/多核系统中的车道/处理器核分为复数个车道/处理器核组,每个车道/处理器核组内部的全局总线上的总线开关导通,车道/处理器核组之间的全局总线上的总线开关断开,使得每个车道/处理器核组同时在其内部进行跨车道/处理器核寄存器值移动或计算操作;不同车道/处理器核同时执行同一条聚合度设置指令时,对相应的所述总线开关进行配置,实现相应的车道/处理器核间聚合度。可选的,在所述系统中,不同车道/处理器核同时执行同一条车道/处理器核间操作指令时,根据各自所述车道/处理器核号确定源车道/处理器核和目标车道/处理器核,通过所述车道/处理器核间将源车道/处理器核的寄存器值送到目标车道/处理器核,由所述目标车道/处理器核进行后处理操作;不同车道/处理器核同时执行同一条车道/处理器核间操作指令时,根据各自所述车道/处理器核号确定源车道/处理器核和目标车道/处理器核,通过所述车道/处理器核间将源车道/处理器核的寄存器值送到目标车道/处理器核,由所述目标车道/处理器核进行后处理操作。可选的,在所述系统中,通过指令将每个车道/处理器核的车道/处理器核号移动到该车道/处理器核的通用寄存器中。可选的,在所述系统中,不同车道/处理器核根据不同车道/处理器核号通过同样指令计算得到不同的数据地址。可选的,在所述系统中,还包含一个或多个后处理器,每个后处理器与复数个车道/处理器核连接,接收所述复数个车道/处理器核的执行结果,并对所述执行结果进行聚合。可选的,在所述系统中,所述后处理器将聚合结果直接存储到存储器中。可选的,在所述系统中,所述后处理器将聚合结果送回至少一个车道/处理器核的寄存器中。可选的,在所述系统中,通过指令确定后处理操作的聚合度。可选的,在所述系统中,所述后处理器通过执行后处理指令进行聚合操作。可选的,在所述系统中,通过传递总线连接所述后处理器;每个后处理器通过执行所述后处理指令,将对应车道/处理器核的执行结果与相邻后处理器的输出进行聚合操作。可选的,在所述系统中,通过树状总线连接所述后处理器;其中,第一级后处理器通过执行所述后处理指令,对两个相应车道/处理器核的执行结果进行聚合操作,并将该聚合结果、后处理指令或其译码结果按级依次传递给其余各级后处理器;其余各级后处理器通过执行所述后处理指令,对前一级两个相应后处理器的聚合结果再次聚合。可选的,在所述系统中,车道/处理器核与后处理器之间、后处理器与后处理器之间的通路可配置。可选的,在所述系统中,通过对所述通路的导通或断开进行配置,将复数个后处理器进行分组后实现按组聚合操作。可选的,在所述系统中,通过对所述通路的导通或断开进行配置,使得后处理器实现不同聚合度的聚合操作。可选的,在所述系统中,由一种通用判决模块根据已输出的控制信号产生按当前状态继续执行时的下一控制信号,并接收不按当前状态继续执行时的下一控制信号;所述通用判决模块根据所述系统受所述已输出控制信号控制运行的反馈,选择所述两种下一控制信号中的一种输出以控制所述系统继续运行;所述通用判决模块至少包括:运算器、寄存器和选择器;其中:寄存器用于存储当前控制信号,并将当前控制信号输出以控制所述系统运行;运算器用于根据所述当前控制信号状态产生按当前状态继续执行时的下一控制信号,并将所述下一控制信号送往所述选择器;选择器根据所述系统在所述当前控制信号控制下运行反馈,对运算器产生的所述下一控制信号和接收不按当前状态继续执行时的下一控制信号进行选择,并将选择结果更新到所述寄存器中。可选的,在所述系统中,单数个或复数个循环控制器;其中,每个循环控制器对应指令序列中的一个循环体,用于对所述循环体的执行次数进行计数,并确定循环是否执行完毕;单数个或复数个数据引擎,分为若干组,每组至少包含一个数据引擎并;每组数据引擎对应一个循环控制器,用于计算所述循环体中用到的数据的地址,并控制存储器完成数据访问操作;通过指令设置循环控制器中的循环次数;每次执行到相应的循环指令时,所述循环次数减一;所述循环指令对应的全部循环完成后,所述循环次数被重置为原设置值。可选的,在所述系统中,每当执行到所述循环指令时,数据引擎更新数据地址,并根据新的数据地址获取相应数据准备好供车道/处理器核使用;本文档来自技高网
...

【技术保护点】
一种多车道/多核系统,其特征在于,包含多个车道/处理器核,每个车道/处理器核具有不同的车道/处理器核号,每个车道/处理器核可以执行相同或不同的指令并访问存储器;所述系统还对所述复数个车道/处理器核的执行结果进行后处理操作,并访问存储器。

【技术特征摘要】
1.一种多车道/多核系统,其特征在于,包含多个车道/处理器核,每个车道/处理器核具有不同的车道/处理器核号,每个车道/处理器核可以执行相同或不同的指令并访问存储器;所述系统还对所述复数个车道/处理器核的执行结果进行后处理操作,并访问存储器。2.如权利要求1所述的系统,其特征在于所述多个车道/处理器核间具有全局总线,用于传递寄存器中的数据,以进行跨车道/处理器核寄存器值移动或计算操作。3.如权利要求2所述的系统,其特征在于:将多车道/多核系统中的车道/处理器核分为复数个车道/处理器核组,每个车道/处理器核组内部的全局总线上的总线开关导通,车道/处理器核组之间的全局总线上的总线开关断开,使得每个车道/处理器核组同时在其内部进行跨车道/处理器核寄存器值移动或计算操作;不同车道/处理器核同时执行同一条聚合度设置指令时,对相应的所述总线开关进行配置,实现相应的车道/处理器核间聚合度。4.如权利要求3所述的系统,其特征在于;不同车道/处理器核同时执行同一条车道/处理器核间操作指令时,根据各自所述车道/处理器核号确定源车道/处理器核和目标车道/处理器核,通过所述车道/处理器核间总线将源车道/处理器核的寄存器值送到目标车道/处理器核,由所述目标车道/处理器核进行后处理操作;不同车道/处理器核同时执行同一条车道/处理器核间操作指令时,根据各自所述车道/处理器核号确定源车道/处理器核和目标车道/处理器核,通过所述车道/处理器核间将源车道/处理器核的寄存器值送到目标车道/处理器核,由所述目标车道/处理器核进行后处理操作。5.如权利要求1所述的系统,其特征在于通过指令将每个车道/处理器核的车道/处理器核号移动到该车道/处理器核的通用寄存器中。6.如权利要求5所述的系统,其特征在于不同车道/处理器核根据不同车道号/处理器核号通过同样指令计算得到不同的数据地址。7.如权利要求1所述的系统,其特征在于所述系统还包含一个或多个后处
\t理器,每个后处理器与复数个车道/处理器核连接,接收所述复数个车道/处理器核的执行结果,并对所述执行结果进行聚合。8.如权利要求7所述的系统,其特征在于:所述后处理器将聚合结果直接存储到存储器中;或所述后处理器将聚合结果送回至少一个车道/处理器核的寄存器中。9.如权利要求7所述的系统,其特征在于通过指令确定后处理操作的聚合度。10.如权利要求9所述的系统,其特征在于所述后处理器通过执行后处理指令进行聚合操作。11.如权利要求10所述的系统,其特征在于:通过传递总线连接所述后处理器;每个后处理器通过执行所述后处理指令,将对应车道/处理器核的执行结果与相邻后处理器的输出进行聚合操作;或通过树状总线连接所述后处理器;其中,第一级后处理器通过执行所述后处理指令,对两个相应车道/处理器核的执行结果进行聚合操作,并将该聚合结果、后处理指令或其译码结果按级依次传递给其余各级后处理器;其余各级后处理器通过执行所述后处理指令,对前一级两个相应后处理器的聚合结果再次聚合。12.如权利要求11所述的系统,其特征在于车道/处理器核与后处理器之间、后处理器与后处理器之间的通路可配置;通过对所述通路的导通或断开进行配置,将复数个后处理器进行分组后实现按组聚合操作;或通过对所述通路的导通或断开进行配置,使得后处理器实现不同聚合度的聚合操作。13.如权利要求1所述的系统,其特征在于,由一种通用判决模块根据已输出的控制信号产生按当前状态继续执行时的下一控制信号,并接收不按当前状态继续执行时的下一控制信号;所述通用判决模块根据所述系统受所述已输出控制信号控制运行的反馈,选择所述两种下一控制信号中的一种输出以控制所述系统继续运行;所述通用判决模块至少包括:运算器、寄存器和选择器;其中:寄存器用于存储当前控制信号,并将当前控制信号输出以控制所述系统运行;运算器用于根据所述当前控制信号状态产生按当前状态继续执行时的下一控制信号,并将所述下一控制信号送往所述选择器;选择器根据所述系统在所述当前控制信号控制下运行反馈,对运算器产生的所述下一控制信号和接收不按当前状态继续执行时的下一控制信号进行选择,并将选择结果更新到所述寄存器中。14.如权利要求1所述的系统,其特征在于还包含:单数个或复数个循环控制器;其中,每个循环控制器对应指令序列中的一个循环体,用于对所述循环体的执行次数进行计数,并确定循环是否执行完毕;单数个或复数个数据引擎,分为若干组,每组至少包含一个数据引擎并;每组数据引擎对应一个循环控制器,用于计算所述循环体中用到的数据的地址,并控制存储器完成数据访问操作;通过指令设置循环控制器中的循环次数;每次执行到相应的循环指令时,所述循环次数减一;和所述循环指令对应的全部循环完成后,所述循环次数被重置为原设置值。15.如权利要求14所述的系统,其特征在于每当执行到所述循环指令时,数据引擎更新数据地址,并根据新的数据地址获取相应数据准备好供车道/处理器核使用;若循环指令的执行结果表示循环继续,则数据引擎通过将数据地址加上地址步长得到所述新的数据地址;和若循环指令的执行结果表示循环结束,则数据引擎将数据地址重置为原设置值作为所述新的数据地址。16.如权利要求14所述的系统,其特征在于所述数据引擎还包含一个先入先出缓冲;当数据引擎被设置完毕后,即根据设置的数据地址获取相应数据存入所述先入先出缓冲供车道/处理器核使用;在每次数据获取完成后即更新数据地址,并根据新的数据地址获取相应数据存入所述先入先出缓冲;每当执行到所述循环指令时,所述先入先出缓冲丢
\t弃最早存入的数据并将次早存入的数据作为新的最早存入的数据;和若循环指令的执行结果表示循环结束,则数据引擎将数据地址重置为原设置值作为所述新的数据地址,并清空所述先入先出缓冲。17.如权利要求14所述的系统,其特征在于所述数据引擎还包含一个融合模块;所述融合模块接收到车道/处理器核写往存储器的数据及相应地址后,先根据该地址从存储器中读出原存储的数据,并与车道/处理器核送来的数据进行计算操作后,再根据该地址写回存储器中。18.如权利要求7所述的系统,其特征在于:所述各个车道/处理器核执行同样的程序,并由后处理器对各个车道/处理器核的执行结果进行比较,判断出所述车道/处理器核中是否有工作不正常的异常车道/处理器核,从而实现所述系统的自检测;当存在异常车道/处理器核时,确定异常车道/处理器核的车道/处理器核号。19.如权利要求18所述的系统,其特征在于:将异常车道/处理器核的车道/处理器核号存储在分配器中;分配器在分配车道/处理器核时绕过所述异常车道/处理器核,从而实现所述系统的自修复。20.一种多车道/多核执行方法,其特征在于每个车道/处理器核具有不同的车道/处理器核号,每个车道/处理器核可以执行相同或不同的指令;再对所述复数个车道/处理器核的执行结果进行后处理操作,并访问存储器。21.如权利要求20所述的方法,其特征在于通过所述多个车道/处理器核间的全局总线传递寄存器中的数据,以进行跨车道/处理器核寄存器值移动或计算操作。22.如权利要求21所述的方法,其特征在于:将多车道/多核系统中的车道/处理器核分为复数个车道/处理器核组,每个车道/处理器核组内部的全局总线上的总线开关导通,车道/处理器核组之间的全局总线上的总线开关断开,使得每个车道/处理器核组同时在其内部进行跨车道/处理器核寄存器值移动或计算操作;不同车道/处理器核同时执行同一条聚合度设置指令时,对相应的所述总线开关进行配置,实现相应的车道/处理器核间聚合度。23.如权利要求22所述的方法,其特征在于:不同车道/处理器核同时执行同一条车道/处理器核间操作指令时,根据各自所述车道/处理器核号确定源车道/处理器核和目标车道/处理器核,通过所述车道/处理器核间总线将源车道/处理器核的寄存器值送到目标车道/处理器核,由所述目标车道/处理器核进行后处理操作;不同车道/处理器核同时执行同一条车道/处理器核间操作指令时,根据各自所述车道/处理器核号确定源车道/处理器核和目标车道/处理器核,通过所述车道/处理器核间将源车道/处理器核的寄存器值送到目标车道/处理器核,由所述目标车道/处理器核进行后处理操作。24.如权利要求20所述的方法,其特征在于通过指令将每个车道/处理器核的车道/处理器核号移动到该车道/处理器核的通用寄存器中。25.如权利要求24所述的方法,其特征在于不同车道/处理器核根据不同车道/处理器核号通过同样指令计算得到不同的数据地址。26.如权利要求20所述的方法,其特征在于由单数个或复数个后处理器与复数个车道/处理器核连接,接收所述复数个车道/处理器核的执行结果,并对所述执行结果进...

【专利技术属性】
技术研发人员:林正浩
申请(专利权)人:上海芯豪微电子有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1