基于可配置处理器及指令集扩展的异构多核系统的制作方法

文档序号:6459548阅读:172来源:国知局
专利名称:基于可配置处理器及指令集扩展的异构多核系统的制作方法
技术领域
本发明涉及一种计算机体系技术领域的系统结构,尤其涉及一种基于可配置 处理器及指令集扩展的异构多核系统。
背景技术
近些年来,高性能多处理器的设计在体系结构中开始占据越来越重要的位 置。多处理器结构的出现,降低了对于指令级并行的要求,取而代之的是对于线 程级并行的研究。这种研究焦点的转移主要是由于单处理器并行化设计的复杂性 以及处理器速度与访存速度之间的巨大差异所造成的。对于多处理器体系而言, 每个核的结构可以得到简化,增强了多线程处理能力。
同构结构中,每个处理器是无差别的,更适合于一般的,重复性强的应用。 而对于特定应用来说,异构结构则是更好的选择。异构结构的处理器有着不同的 结构和处理能力,可以根据应用程序本身的特点,将其不同部分分配在不同的处 理器上执行,以提高执行的效率,加快执行的速度。对于多线程应用,尤其是线 程间存在明显差异的多线程应用,合理设计的异构结构会大幅度的提高其执行效 率。
而在异构多核结构中,不同处理器的结构存在着明显的差异,因此每个处理 器所能够处理的指令集也就不同。从软件系统层面来看,异构多核架构中,不同 核之间的区别就是所能够处理的指令集之间存在的区别,也就是说,在异构多核 结构中,软件系统所看到的一个个不同的处理器其实就是一个个不同的指令集。 因此,异构系统的构建可以通过配置专用的处理器以及进行指令扩展实现。
经对现有技术的文献检索发现,杨凡等在2007年发明专利"一种异构多核 间协调调度的方法及异构多核系统(CN 101178666)"。该专利中提出了构建异 构多核的一种具体方法,包括主核与从核,主核控制从核的执行与通信。该专利 中的不足在于,其异构结构中的主核与从核并非是根据特定应用配置的,也未进行过指令集扩展,因此在处理多线程应用程序时,无法使程序的效能大幅度的提 高,不能充分显示出异构结构的优势。

发明内容
本发明针对现有技术的不足,提出了 一种基于可配置处理器及指令集扩展的 异构多核系统,用以解决线程间差异大的多线程应用程序执行效率低的问题。 本发明采用以下技术方案实现的
本发明所述的异构多核系统,包括扩展核,基本核或全能核,其中, 基本核,包含基本指令集(ISA1),用于执行操作系统以及应用程序中没有 进行指令扩展优化的部分;并且负责核间通信的控制,当扩展核与基本核之间通 信时,需申请开FIF0,基本核批准后,才能建立通信管道;如果当前基本核正 忙或已经没有空间开新的FIF0,基本核会暂时挂起通信请求,等待下一个空闲 的时间或有被释放的空间,批准通信管道建立。
扩展核,包含基本指令集(ISA1),另外包含扩展指令集(ISA2或ISA3或…), 主要用于执行应用程序中进行了指令扩展优化的部分,也可执行程序中未进行指 令扩展优化的部分(当基本核没有空闲的时候)。每一个扩展核只包含一种扩展 指令集。
全能核,包含所有指令集(ISA1+ISA2+ISA3…),拥有基本核与全部扩展核 的所有功能。
本发明中所述异构结构,基本核与全能核是互斥的,在一个异构系统中,只 能存在一个基本核或者一个全能核,可以是一个基本核搭配若干扩展核,也可以 是一个全能核搭配若干扩展核。
当一个基本核搭配若干扩展核时,多线程应用程序中经过指令扩展优化的部
分只能够被分配在拥有该扩展指令的扩展核上,比如a线程经过了扩展指令集 ISA2的扩展,b线程经过了扩展指令集ISA3的扩展,同时第一个扩展核包含扩 展指令集ISA2的指令集,第二个扩展核包含扩展指令集ISA3的指令集,那么a 线程就只会被分配在第一个扩展核上,而不会被分配在第二个扩展核或者基本核 上;b线程只会被分配在第二个扩展核上,而不会被分配至第一个扩展核或基本 核上。应用程序中其他未经过指令扩展优化的部分可以被任意分配于基本核、第 一个扩展核以及第二个扩展核上。上述结构在执行时,首先开启基本核,由基本核运行操作系统。两个扩展核 都处于等待状态。当基本核检测到应用程序的某一线程使用了扩展指令后,会通 知相应的扩展核,并把此线程分配给扩展核进行执行。扩展核执行完当前线程后, 通知基本核,然后继续进入等待状态,等待下一次被分配线程。
当一个全能核搭配若干扩展核时,应用程序中未经过指令扩展优化的部分的 分配方式与一个基本核搭配若干扩展核结构中相同,而经过指令扩展优化的部分 除了可以在相对应的扩展核上运行以外,还可以被分配在全能核上。而在分配线 程的时候,全能核取代并扩展了一个基本核搭配若干扩展核结构中基本核的任 务。全能核检测经过指令扩展优化的线程所对应的扩展核,如果该扩展核处于等 待(空闲)状态,则将此线程分配给该扩展核;如果该扩展核目前处于忙碌执行 状态,全能核则将自己执行此线程。
本发明中所述异构结构中的处理器均通过片上总线共享内存,而且扩展核的 数目是不固定的,可以根据具体的应用程序需求而定。
本发明具有以下有益效果通过采用自定义配置的处理器以及对不同处理器 进行指令扩展的方法,得到了最优化的异构多核结构,可以过根据运行于其上的 应用程序的特点,将程序中的不同部分进行相对应的指令扩展优化,并分配在最 适合的处理器上,从而使每一个扩展核都使用自己的扩展指令,极大的发挥了扩 展指令的优势,同时减轻了基本核的负担,有效解决了多线程应用程序执行效率 低下的问题。


图l为本发明所提出的异构多核结构设计示意图
图2为本发明中异构多核结构每个核所拥有的指令集的相互关系图 图3为本发明中异构多核系统在执行多线程程序时的流程图 图4为本发明中异构多核结构的核间通信流程图
具体实施例方式
下面结合附图对本发明的实施例作详细说明本实施例在以本发明技术方案 为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护 范围不限于下述的实施例。本发明的主要技术构思是采用基本核加扩展核的类似主从结构,使得多线程 应用中的不同线程可以根据自己的指令扩展特点分配到最适合运行的扩展核上, 充分发挥扩展核的功效;同时由基本核控制线程的分配以及核间通信,保证结构 的正确性;对于使用全能核的结构来说,还可以自己运行指令扩展的线程,从而 减少了扩展核的压力。这种异构结构有效的提高了多线程应用程序的执行效率, 而且满足了负载平衡的需求。
下面通过各个附图,按照一个基本核搭配若干扩展核以及一个全能核搭配若 干扩展核结构,对本发明的具体实现过程做进一步详细的说明。
请参阅图1,该图为本发明所述异构多核结构的示意图,其主要模块包括
基本核,用于执行操作系统和应用程序中没有进过指令扩展优化的部分。控 制核间通信的建立,实施应用程序的任务分配。
全能核,用于执行操作系统和应用程序中的所有线程,优先执行应用程序中 未经过指令集扩展优化的线程,只有当扩展核忙碌时,才会协助执行指令扩展优 化过的线程。控制核间通信的建立,实施应用程序的任务分配。
基本核与全能核是互斥的,在一个异构系统中,只能存在一个基本核或者一
个全能核,两者不可同时存在于一个异构系统中。下文对包含有全能核的异构多 核结构简称为全能核结构,对包含有基本核的异构多核结构简称为基本核结构。
扩展核,用于执行程序中经过指令集扩展优化的部分。第一扩展核和第二扩 展核分别拥有不同的指令集,因此所能够处理的程序部分也不相同。另外,扩展 核也可以处理程序中未经指令集扩展优化的部分,但是优先级比较低。
另外,此异构结构中所有核都通过片上总线连接,总线通过一个仲裁器连接 到一个共享内存上。核间的通信都通过片上总线完成。仲裁器用于控制多核对内 存的访问。
本发明所提出的异构多核设计采用了简洁的连接方式和存储方式,这样省去 了复杂互联结构的消耗,降低了结构实现的成本,而且可以排除由复杂连接及存 储方式带来的不确定性,客观上提高了处理器本身的处理效率。
请参阅图2,该图为本发明所述异构多核结构的核间指令集相互关系,其中 指令集ISA1是基本指令集,ISA2和ISA3都是扩展指令集。在全能核结构中,全能核包含所有的指令集(ISA1, ISA2, ISA3),因此它 拥有最强的处理能力,可以处理应用程序的一切线程。
在基本核结构中,基本核只包含基本指令集(ISA1),因此它主要负责运行 未经过指令扩展优化的线程。
第一扩展核包含基本指令集ISA1以及扩展指令集ISA2,因此它可以处理经 过ISA2扩展优化的线程以及其他未经过指令扩展优化的线程。
第二扩展核包含基本指令集ISA1以及扩展指令集ISA3,因此它可以处理经 过ISA3扩展优化的线程以及其他未经过指令扩展优化的线程。
基本指令集ISA1采用Xtensa ISA LX2. 1指令集,其中包含了常用的一些指 令,如一般运算指令,访存指令,跳转指令等。
扩展指令集ISA2针对MJPEG中的IDCT线程进行了优化,其中包括了一些非 常规运算指令,如一条指令下实现N个操作数相加,乘加指令以及并行运算指令 等。
扩展指令集ISA3针对MJPEG中的C0NV线程进行了优化,其中主要包括了对 颜色空间转换的扩展指令,如在一个周期内并行的完成图像中一个BLOCK从YUV 颜色空间转换到RGB颜色空间的操作。
本发明所述异构多核结构的核间指令集关系决定了在此异构系统上运行的 操作系统,是可以根据各个线程以及处理器的特点来进行动态调度的。
下面请参阅图3 ,该图为本发明所述异构多核结构在执行多线程应用程序 时的流程
歩骤l,操作系统上电,全能核或基本核开启运转,进行系统的初始化工作。 此时,两个扩展核都处于等待状态。
步骤2,系统初始化完毕,开始准备执行应用程序。全能核或基本核拿到多 线程应用程序,并开始对每个线程所使用的指令集类型进行分析。
步骤3,全能核或基本核得出对应用程序线程指令集类型的分析结果,判断 当前所要执行的线程是否是经过指令扩展的,若不是,则进入步骤4;否,则进 入步骤5。步骤4,当前线程未经过指令扩展,可以运行在全能核或基本核上。 步骤5,当前线程经过了指令扩展优化,对此指令集进行进一步分析,确定
其属于哪一个处理器的处理范围。
步骤6,确定了当前线程适合执行的处理器之后,在结构中寻找,是否存在
此类型的处理器。如果不存在,则进入步骤7。如果存在,那么对于基本核结构,
直接进入步骤9,完成对线程的处理;对于全能核结构,进入步骤8,继续进行
处理器空虚判断。
步骤7,适合执行当前线程的处理器不存在,也许是处理器没有被挂接在总
线上,也许是该线程所包含的指令集无法被系统识别,程序异常终止。
步骤8,确定存在能够处理当前线程的处理器,检査该处理现在是否空闲(是 否正在忙于处理其他线程)。如果空闲,则进入步骤9,否则进入步骤IO。步骤9,找到的处理器空闲,因此可以执行当前线程,全能核或基本核把当 前线程分配给该处理器,完成一次执行任务。
步骤IO,找到的处理器忙碌,无法执行当前线程,全能核把当前线程划分入 自己的线程执行队列,完成执行任务。
可以看出,本发明所述的程序执行过程中,线程不会死等在一个处理器上, 在全能结构中,即便是经过指令集扩展优化的线程也可以找到不止一个处理器来 执行它们。全能处理器强大的处理能力以及动态分配的特性确保了应用程序中每 个线程都可以运行在最适合的处理器上。
请参阅图4,该图为本发明中异构多核结构的核间通信流程
步骤ll,扩展核准备好了数据或信息,需要同全能核或基本核或者另外的扩 展核进行通信或数据传输,因此向全能核发出通信请求的申请。
步骤12,全能核或基本核得到此申请,并对其进行处理,分析此请求的源, 目,及内容。
步骤13,检查当前系统状态是否可以开启FIF0进行通信,如果可以,则进 行歩骤14,若不可以,则退回步骤ll,重新进行通信申请。 步骤14,在系统内存中开辟空间,建立FIFO,准备通信。 步骤15,根据刚刚对通信请求的分析结果,确定此次通信申请的对象,如果对象是全能核或基本核,进入步骤17,如果对象是另一个扩展核,进入步骤16。 步骤16,通信对象是另一个扩展核,全能核或基本核通过总线发信息通知另
一个扩展核到FIFO处进行数据传输,完成此次通信。
步骤17,通信对象是全能核或基本核,全能核或基本核到FIFO处进行数据
传输,完成此次通信。
权利要求
1、一种基于可配置处理器及指令集扩展的异构多核系统,其特征在于,包括扩展核,基本核或全能核,其中基本核,包含基本指令集,用于执行操作系统以及应用程序中没有进行指令扩展优化的部分;并且负责核间通信的控制,当扩展核与基本核之间通信时,需申请开FIFO,基本核批准后,才能建立通信管道;如果当前基本核正忙或已经没有空间开新的FIFO,基本核会暂时挂起通信请求,等待下一个空闲的时间或有被释放的空间,批准通信管道建立;扩展核,包含基本指令集,另外包含扩展指令集,主要用于执行应用程序中进行了指令扩展优化的部分,也可执行程序中未进行指令扩展优化的部分,每一个扩展核只包含一种扩展指令集;全能核,包含所有指令集,拥有基本核与全部扩展核的所有功能;所述基本核与全能核是互斥的,在一个异构系统中,只能存在一个基本核或者一个全能核,所述基本核搭配若干扩展核时,多线程应用程序中经过指令扩展优化的部分只能够被分配在拥有该扩展指令的扩展核上,应用程序中其他未经过指令扩展优化的部分被任意分配于基本核、第一个扩展核或第二个扩展核上;所述全能核搭配若干扩展核时,应用程序中未经过指令扩展优化的部分的分配方式与一个基本核搭配若干扩展核结构中相同,而经过指令扩展优化的部分除了能在相对应的扩展核上运行以外,还能被分配在全能核上。
2、 根据权利要求1所述的基于可配置处理器及指令集扩展的异构多核系统, 其特征是,所述基本核搭配若干扩展核,该结构在执行时,首先开启基本核,由 基本核运行操作系统,两个扩展核都处于等待状态,当基本核检测到应用程序的 某一线程使用了扩展指令后,会通知相应的扩展核,并把此线程分配给扩展核进 行执行,扩展核执行完当前线程后,通知基本核,然后继续进入等待状态,等待 下一次被分配线程。
3、 根据权利要求1所述的基于可配置处理器及指令集扩展的异构多核系统, 其特征是,所述全能核搭配若干扩展核,该结构在分配线程的时候,全能核检测 经过指令扩展优化的线程所对应的扩展核,如果该扩展核处于等待状态,则将此线程分配给该扩展核,如果该扩展核目前处于忙碌执行状态,全能核则将自己执 行此线程。
全文摘要
本发明公开一种计算机体系技术领域的基于可配置处理器及指令集扩展的异构多核系统,包括扩展核,基本核或全能核,其中,基本核包含基本指令集ISA1,用于执行操作系统以及应用程序中没有进行指令扩展优化的部分,并且负责核间通信的控制,当扩展核与基本核之间通信时,需申请开FIFO,基本核批准后,才能建立通信管道。扩展核包含基本指令集ISA1、扩展指令集,主要用于执行应用程序中进行了指令扩展优化的部分,也可执行程序中未进行指令扩展优化的部分。全能核包含所有指令集,拥有基本核与全部扩展核的所有功能。本发明极大的发挥了扩展指令的优势,同时减轻了基本核的负担,有效解决了多线程应用程序执行效率低下的问题。
文档编号G06F9/46GK101299199SQ20081003956
公开日2008年11月5日 申请日期2008年6月26日 优先权日2008年6月26日
发明者付宇卓, 婷 刘, 泊 胡, 劭 陈 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1