首页> 中国专利> 一种多核可重构处理器簇及其实现重构的方法

一种多核可重构处理器簇及其实现重构的方法

摘要

本发明公开了一种多核可重构处理器簇及其实现重构的方法,包括簇构造核按照任务的大小,从共享运算核资源池中选出相应数量的运算核,组成一个运算构造簇;簇构造核向选出的运算核发送根据任务转换的包含有运算指令微码,运算核按照接收到的微码完成运算。通过本发明方法,在并行处理的同时实现了运算资源的动态分配,更好地提高了系统的处理能力。

著录项

  • 公开/公告号CN102622208A

    专利类型发明专利

  • 公开/公告日2012-08-01

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201110029692.9

  • 发明设计人 沈承科;

    申请日2011-01-27

  • 分类号G06F9/38;G06F9/50;

  • 代理机构北京派特恩知识产权代理事务所(普通合伙);

  • 代理人张颖玲

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-18 06:20:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-11-25

    专利权的转移 IPC(主分类):G06F 9/38 专利号:ZL2011100296929 登记生效日:20221114 变更事项:专利权人 变更前权利人:中兴通讯股份有限公司 变更后权利人:深圳市中兴微电子技术有限公司 变更事项:地址 变更前权利人:518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部 变更后权利人:518055 广东省深圳市南山区西丽街道留仙大道中兴工业园

    专利申请权、专利权的转移

  • 2015-12-16

    专利实施许可合同备案的生效 IPC(主分类):G06F9/38 合同备案号:2015440020319 让与人:中兴通讯股份有限公司 受让人:深圳市中兴微电子技术有限公司 发明名称:一种多核可重构处理器簇及其实现重构的方法 申请公布日:20120801 授权公告日:20150610 许可种类:普通许可 备案日期:20151123 申请日:20110127

    专利实施许可合同备案的生效、变更及注销

  • 2015-06-10

    授权

    授权

  • 2012-11-28

    实质审查的生效 IPC(主分类):G06F9/38 申请日:20110127

    实质审查的生效

  • 2012-08-01

    公开

    公开

说明书

技术领域

本发明涉及数字信号处理技术,尤指一种多核可重构处理器簇及其实现重 构的方法。

背景技术

在数字信号处理领域,对多处理器的处理能力的要求越来越高:从早期的 单核数字信号处理器(DSP),到多核DSP,再到簇结构。其目的就是为了在有 限的主频下,提高系统的处理能力。

其中,多核DSP和簇结构的引入也同时为多任务并行提供了实现的基础。 现有的多核DSP方案通常是将不同的核分配以不同的任务,以达到多任务并行。

簇结构是一个更完善的方法,其将若干个处理器核(固定地)组成一个组, 称为簇。通常,在一个片内,可以设置若干个这样的簇。由于每个簇含有多个 处理器核,所以它的处理能力更强大。多个簇也可以并行完成多任务。

大规模数字信号处理技术,特别是阵列数字信号处理技术,要求处理器平 台提供巨大的处理能力和灵活的架构重构机制。在无线通讯领域,多模软基带 平台需要同时满足覆盖多种无线基带制式,例如基于正交频分复用(OFDM) 技术的长期演进(LTE)和全球微波接入互操作性(WiMAX)技术、基于码分 多址(CDMA)技术的宽带码分多址(WCDMA),时分同步的码分多址 (TD-SCDMA)技术和CDMA2000等制式。这就要求基带平台具有足够的灵 活性和处理能力。现有的运算构造簇方案都是采用静态簇的方案,即构成每个 簇的运算核成员数是固定不变的。这种静态运算构造簇的缺点是不灵活。由于 每个运算构造簇的结构是不变的,因此,每个运算构造簇的处理能力也是固定 的。这样,在运行过程中,负载的变化势必造成每个运算构造簇长的不平衡而 产生资源浪费。在作为多模无线基带处理平台时,由于每种制式对运算资源的 不同需求,静态运算构造簇难免顾此失彼;即便作为单模基带处理平台,由于 在信号处理的不同时段,不同处理模块的运算负载也会动态变化,这种变化将 造成处理每个模块的静态的运算构造簇的负载失衡。

发明内容

有鉴于此,本发明的主要目的在于提供一种多核可重构处理器簇及其实现 重构的方法,能够在并行处理的同时实现运算资源的动态分配,更好地提高系 统的处理能力。

为达到上述目的,本发明的技术方案是这样实现的:

一种多核可重构处理器簇,包括:中央处理器、一个或一个以上簇构造核, 以及由一个或一个以上运算核组成的共享运算核资源池;其中,

中央处理器,用于向每个簇构造核发送不同的任务;

簇构造核,用于接收来自中央处理器的任务,并按照任务指示完成运算构 造簇的组建与重构;

共享运算核资源池,其中的各运算核用于按照接收到的来自其所归属的簇 构造核的微码,完成运算。

所述簇构造核,具体用于根据所述中央处理器分配的任务的大小,从所述 共享运算核资源池中选出相应数量的运算核,组成一个运算构造簇;并向该运 算构造簇中的运算核发送根据任务转换的包含有运算指令微码;

所述任务为宏码包;一个宏码包由一组宏指令组成。

所述向该运算构造簇中的运算核发送根据任务转换的包含有运算指令微码 为:

所述簇构造核在包含运算指令的所述微码中设置用于表明重构命令的M 比特的区段,在该区段中,每一个比特对应一个运算核,如果某个运算核属于 所述簇构造核,则其对应比特取值为有效,否则取值为无效;

或者,预先定义用于表明重构命令的专用重构微码,该专用重构微码中含 有一个M比特的区段,用于指定该簇构造核的成员;

其中,所述M为所述共享运算核资源池中的运算核的数量。

所述簇构造核,还用于将转换后的微码通过微码总线向所有运算核广播;

所述共享运算核资源池中的运算核,还用于在每个时钟周期监听所有簇构 造核的微码总线,但仅执行该运算核自身所属簇构造核的微码指令。

所述簇构造核是任何通用CPU,或简单的查表器。

所述运算核由任意具有算数和逻辑运算能力的标量处理器,或向量处理器 构成。

一种多核可重构处理器簇实现重构的方法,包括:

簇构造核按照任务的大小,从共享运算核资源池中选出相应数量的运算核;

簇构造核向选出的运算核发送根据任务转换的包含有运算指令微码,运算 核按照接收到的微码完成运算。

所述从共享运算核资源池中选出相应数量的运算核包括:

中央处理器根据所述簇构造核分配到的任务,确定完成该任务所需的运算 核的数量,在向所述簇构造核发布任务时,告知该簇构造核分配给其的每个运 算核的ID;

所述簇构造核根据来自中央处理器的指令中分配的每个运算核的ID,将每 个属于自身的运算核标注在所述每条微码中的M比特区段中。

所述簇构造核向选出的运算核发送根据任务转换的包含有运算指令微码包 括:

所述簇构造核在包含运算指令的微码中设置用于表明重构命令的M比特 的区段,在该区段中,每一个比特对应一个运算核,如果某个运算核属于所述 簇构造核,则其对应比特取值为有效,否则取值为无效;

所述M为所述共享运算核资源池中的运算核的数量。

所述簇构造核向选出的运算核发送根据任务转换的包含有运算指令微码包 括:

预先定义用于表明重构命令的专用重构微码,该专用重构微码中含有一个 M比特的区段,用于指定该簇构造核的成员;

所述M为所述共享运算核资源池中的运算核的数量。

该方法还包括:

所述簇构造核将转换后的微码通过微码总线向所有运算核广播;

所述共享运算核资源池中的运算核,在每个时钟周期监听所有簇构造核的 微码总线,但仅执行该运算核自身所属簇构造核的微码指令。

从上述本发明提供的技术方案可以看出,包括簇构造核按照任务的大小, 从共享运算核资源池中选出相应数量的运算核,组成一个运算构造簇;簇构造 核向选出的运算核发送根据任务转换的包含有运算指令微码,运算核按照接收 到的微码完成运算。通过本发明方法,在并行处理的同时实现了运算资源的动 态分配,更好地提高了系统的处理能力。

附图说明

图1为本发明多核可重构处理器簇的组成结构示意图;

图2为本发明多核可重构处理器簇中各簇构造核实现重构的示意图;

图3为本发明多核可重构处理器簇实现重构的方法的流程图;

图4为本发明多核可重构处理器簇实现重构的实施例的示意图。

具体实施方式

图1为本发明多核可重构处理器簇的组成结构示意图,如图2所示,包括: 中央处理器、一个或一个以上(N个)完全相同的簇构造核,以及由一个或一 个以上(M个)完全相同的运算核组成的共享运算核资源池,这里M远远大于 (>>)N;其中,

中央处理器,用于向每个簇构造核发送不同的任务,以完成每个簇的任务 分配和调度。其中,不同的任务是宏码包(Kernel),该宏码包是上层应用程序 的一个内嵌的C代码或其他代码;一个宏码包由一组宏指令组成。

簇构造核,用于接收来自中央处理器的任务,并按照任务指示完成运算构 造簇的组建与重构:每个簇构造核根据中央处理器分配的任务的大小,从共享 运算核资源池中选出相应数量的运算核,组成一个运算构造簇;并向该运算构 造簇中的运算核发送根据任务转换的包含有运算指令微码。具体地:

每个簇构造核逐条执行宏指令,并将每条宏指令转换成一系列微码流;在 每条微码中加入属于各簇构造核自身的所有成员即运算核的ID,按执行顺序将 每条微码向所有运算核广播,此时,被标定为该簇构造核成员的运算核只执行 该簇构造核的微码;或者,使用一条专用重构微码,通知该簇构造核所管辖成 员的运算核,之后所有该簇构造核的成员的运算核执行该簇构造核的包含运算 指令的微码。

其中,每个簇构造核有两个基本状态,即工作态和休闲态。N个簇构造核 最多可组成N个运算构造簇,一个运算核要么被组合到某个运算构造簇,要么 处于休眠状态,处于休眠状态的运算核不属于任何簇。其中,每个运算构造簇 的大小指的是组成该运算构造簇的运算核的数量。本发明中,可重构性指的是 运算构造簇的大小可变,即运算构造簇之间可相互调节成员,也就是说,可重 构的过程是动态的。具体地,可重构可以包括:簇构造核从共享运算核资源池 中将处于休眠状态的运算核检出并设置为自己的成员(即对微码上的M比特区 段上的对应一个运算核的每一个比特进行设置,如果某运算核属于该簇构造核, 则其对应比特取值为有效,否则取值为无效);或者,簇构造核将属于其它运算 构造簇的运算核成员检出,并设置成为自己的成员(这个过程也称为抢夺);或 者,簇构造核将自己的运算核成员退还回共享运算核资源池,使其成为休眠状 态(这个过程也称为退还);或者,簇构造核自身的运算核成员被其它簇构造核 检出(这个过程也称为遭抢)。

共享运算核资源池,其中的各运算核用于按照接收到的来自其所归属的簇 构造核的微码,完成算数和/或逻辑运算。本发明并不对运算核的运算能力做限 定,其具体实现可以采用很多方法,是本领域技术人员熟知的,也不用限定本 发明的保护范围。每个运算核有两个基本状态,工作态和休闲态。

图2为本发明多核可重构处理器簇中各簇构造核实现重构的示意图,如图2 所示,如图2所示,每个簇构造核有一条微码总线,共有N条这样的微码总线。 每个运算核在每个时钟周期监听每条微码总线。在每个时钟周期,每个簇构造 核可以是工作状态或休眠状态,每个工作状态的簇构造核通过其微码总线向共 享运算核资源池中的所有运算核,广播该时钟周期内的微码,而该微码仅被那 些属于该簇构造核的运算核执行。

运算核执行簇构造核通过微码总线发出的微码来完成运算。簇构造核在每 个时钟周期,通过微码总线发一条微码,该微码被所有运算核收听,但是,只 有属于该簇构造核所在的运算构造簇的成员运算核才执行。

运算构造簇中的运算核内不对微码进行存储,只能执行当前微码总线上的 微码。而簇构造核负责将复杂运算分解成运算核所能理解的单周期微码在发送 给运算核执行。

簇构造核的重构可通过以下两种方法之一来完成:

簇构造核在每个包含运算指令的微码中设置一个用于表明重构命令的M 比特的区段,在该区段中,每一个比特对应一个运算核,如果某个运算核属于 该簇构造核,则其对应比特取值为有效如1,否则取值为无效如0;或者,

预先定义一条用于表明重构命令的专用重构微码,该专用重构微码是独立 于包含运算指令的新定义的微码,该专用重构微码中含有一个M比特的区段, 用于指定该簇构造核的成员,即在该区段中,每一个比特对应一个运算核,如 果某个运算核属于所述簇构造核,则其对应比特取值为有效,否则取值为无效。

上述簇构造核的重构方法允许重构过程在一个时钟周期内完成。其中,第 一个方法将重构命令包含在运算指令中,因此重构和运算可同时进行。

图3为本发明多核可重构处理器簇实现重构的方法的流程图,如图3所示, 主要包括以下步骤:

步骤300:簇构造核按照任务的大小,从共享运算核资源池中选出相应数 量的运算核,组成一个运算构造簇。

本步骤中,簇构造核按照任务指示,完成运算构造簇的组建与重构,具体 实现包括:簇构造核根据中央处理器的指令,(中央处理器根据该簇构造核分配 到的任务,确定完成该任务所需的运算核的数量,并告知该簇构造核其被分配 的每个运算核的ID),将每个属于该簇构造核的运算核标注在每条微码的M 比特区段中,以完成运算构造簇的组建与重构。

本步骤具体包括:每个簇构造核的大小,即其所含运算核的数量,是中央 处理器根据该簇构造核所承担的任务大小指派的,也就是说中央处理器负责运 算资源池的调配;

中央处理器根据该簇构造核分配到的任务,确定完成该任务所需的运算核 的数量,在向簇构造核发布任务时(一个宏码包),告知该簇构造核分配给其的 每个运算核的ID;簇构造核根据来自中央处理器的指令中分配的每个运算核的 ID,将每个属于自身的运算核标注在每条微码的M比特区段。其中,中央处理 器中的资源调度的实现属于应用层面的资源调度,具体实现方法很多,是本领 域技术人员容易获知的,不用于限定本发明的保护范围。

步骤301:簇构造核向选出的运算核发送根据任务转换的包含有运算指令 微码。具体包括:

簇构造核在每个包含运算指令的微码中设置一个用于表明重构命令的M 比特的区段,在该区段中,每一个比特对应一个运算核,比如:如果某个运算 核属于该簇构造核,则其对应比特取值为有效如1,否则取值为无效如0,这样 便可指示出组建与重构的运算核,也就实现了簇构造核向选出的运算核发送根 据任务转换的包含有运算指令微码;或者,

预先定义一条用于表明重构命令的专用重构微码,该专用重构微码是独立 于包含运算指令的新定义的微码,该专用重构微码中含有一个M比特的区段, 用于指定该簇构造核的成员,即在该区段中,每一个比特对应一个运算核,如 果某个运算核属于所述簇构造核,则其对应比特取值为有效,否则取值为无效。 这样,同样也实现了簇构造核向选出的运算核发送根据任务转换的包含有运算 指令微码。

本发明簇构造核可以是任何通用CPU,或仅是一个简单的查表器。有限数 目的微码存放在一个微码表中,该CPU或是查表器仅是根据预先约好的映射关 系将每条宏码映射到与其对应的一系列微码即可,并根据执行顺序将转换后的 微码通过微码总线向所有运算核广播。

步骤302:运算核按照接收到的微码完成运算。

运算核可以是由任意具有算数和逻辑运算能力的标量处理器,或向量处理 器构成。该标量处理器或向量处理器不储存微码,不具备程序分支判断能力, 仅仅简单地在每个周期执行构造簇核发布在微码总线上的微码。

本步骤包括算数和/或逻辑运算,本发明并不对运算核的运算能力做限定, 其具体实现可以采用很多方法,是本领域技术人员熟知的,也不用限定本发明 的保护范围。

图4为本发明多核可重构处理器簇实现重构的实施例的示意图,如图4所 示,大致包括:

首先,中央处理器根据宏指令完成每个簇构造核的任务分配和调度,这一 过程通过向每个簇构造核发送不同的宏码包来完成。其中,应用程序是一个内 嵌有宏码包(Kernel)的C代码或其他代码。一个宏码包由一组宏指令组成, 一个宏码包通常是一个任务模块,宏指令由簇核解释执行;

接着,每个簇构造核根据其分配到的宏码包完成运算构造簇的组建与重构: 每个簇构造核逐条执行接收到的宏指令,并将每条宏指令转换成一系列微码流, 本实施例中,该微码流包含有运算指令以及用于表明重构命令的M比特的区 段,该区段中加入有属于各簇构造核自身的所有成员即运算核的ID,按执行顺 序将每条微码向所有运算核广播,而只有被标定为该发起广播的簇构造核的成 员的运算核才执行该簇构造核的微码;或者,使用一条专用的重构微码通知其 所属成员运算核,之后所有其成员运算核执行该簇核的微码。

最后,每个运算核,不论处于工作态或休闲态,都必须在每个时钟周期监 听所有簇构造核的微码总线,但仅执行其所属簇构造核的微码指令。

通过本发明通过每周期监听,保证了重构的动态性,即重构可在任意一个 时钟周期进行并完成;本发明运算核、簇构造核灵活根据需要进入休眠态,也 即关电状态,而运算核和簇构造核,进入或退出休眠态由中央处理器来控制。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应 包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号