一种mpsoc上多道程序共享spm的实现方法

文档序号:6460490阅读:206来源:国知局
专利名称:一种mpsoc上多道程序共享spm的实现方法
技术领域
本发明涉及嵌入式系统优化技术领域,特别是涉及一种MPSOC上多道程序 共享SPM的实现方法。
背景技术
随着半导体技术的不断进步,VLSI (超大规模集成电路,Very Large-Scale Integrated)的集成密度在大幅度的增加。单一芯片上的集成度不断提高,使得 SOC (片上系统System on Chip)技术得到了发展和应用。SOC技术是将一个系 统的全部功能模块集成到单一的芯片上,从而实现在单个芯片上集成完备的系 统功能。
集成在SOC芯片上的通常是IP (知识产权,Intellectual Property)核。这些 可重用的IP核包括嵌入式处理器,存储模块,接口模块和面向应用定制的处理 构件。在SOC上集成的IP核可以分为三类软核(SoftIP),是指使用RTL (寄 存器传送级别,Register Transfer Level)或者更高级别进行描述的IP核;硬核 (HardIP),是指具有固定的层结构,并且针对特定过程中的特定应用进行了定 制的优化过的IP核;固化核(FirmIP)是指已经做了描述但是提供了参数供设 计人员进行应用定制的IP核。
SOC不仅集成的晶体管数量多,而且由于集成了不同种类的功能和技术, 并且由于软硬件的协同工作,使得SOC具有复杂的体系结构和逻辑接口。 SOC 的高集成度也使得SOC的功能极为丰富,提高了对片上面积的有效利用,縮短 了片上连线的长度,从而提高了整个系统的性能。
由于IP核具有可重用性,在IP核设计完成后,相当数量的IP核被大多数 SOC系统所使用和集成。在设计平台级的嵌入式系统时,这种重用性极大的提 高了开发效率。
MPSOC (多核片上系统,Multi-Processor System on Chip)是对SOC技术的 进一步发展,是指具有多于一个嵌入式指令集处理器的SOC。 MPSOC结合SOC 技术与多核技术的特点。多核技术是指在一个芯片上集成多核处理器核,以提 高处理器的处理能力;如果芯片上所集成的多个处理器核相同,核间地位相同, 则称为同构多核处理器;如果芯片上所集成的处理器核不同,有主处理器和协 处理器之分,则称为异构多核处理器。MPSOC片上既有多核处理器核,又集成了不同种类的软硬件,兼具了soc和多核的优点。
在SOC与MPSOC芯片上,往往会集成存储器,为处理器核提供存储服务, 从而提高处理器的效率。在嵌入式系统的多级存储层次中,cache就是集成在片 上的SRAM。通常cache是由硬件控制,对程序员是不可见的。而Scratchpad Memory也是集成在片上的SRAM,与cache不同,Scratchpad Memory是由软 件控制,即它是片上的可编程存储器。
与cache相比,Scratchpad Memory所占用的片上面积更小,因而可以在片 上集成更大容量的存储器;由于Scratchpad Memory在设计上比cache简单,访 问通过寻址实现,访问Scratchpad Memory的能耗比cache小;由于Scratchpad Memory的可编程特点,这使得能够更好的对Scratchpad Memory进行控制。因 此,Scratchpad Memory在嵌入式系统中得到了越来越广泛的使用。Scratchpad Memory縮写为SPM。
基于SOC与MPSOC的嵌入式系统研究的不断深入,片上面积的利用效率 越来越高,所集成的器件种类丰富,性能和容量也不断提升。利用片上高性能 器件来提升嵌入式系统的整体性能更是当前嵌入式系统研究的重点之一。现有 的研究主要是对单个的嵌入式应用程序进行优化。主要是通过对单个程序进行 分析,选取适当的程序片段,通过经过控制的编译过程,将选定的程序片段分 配到ScmtchPad Memory上。研究结果表明,通过Scratchpad Memory进行优化, 能够有效的提高程序运行的速度,减少程序的运行时的能耗。
但是由于只对单一的应用程序进行分析和优化,现有的研究缺少对多程序并 行的优化,也缺少对MPSOC的优化研究。因此,现有的研究具有较大的局限性, 尽管能够在一定程度上提高系统性能,但是对Scratchpad Memory的利用率不 高,并实际使用的可行性较少。

发明内容
本发明的目的在于提供一种MPSOC上多道程序共享SPM的实现方法。 本发明解决其技术问题采用的技术方案如下
1) 划分处理器核组
MPSOC上有多个处理器核;对于相邻的处理器核,将它们在逻辑上划分到 同一个处理器核组;而每个处理器核组内都是由一个或者若干个处理器核组成;
2) SPM的组织
在MPSOC上的多个处理器核被划分成处理器核组后,根据SPM所处位置 的不同,在逻辑上就有三种存在形式,分别是本地SPM,本组SPM和远端SPM;3) 生成存储对象
通过编译分析对程序进行分析后,根据分析所得到的程序信息,析取出合 适的存储对象,做为该程序对SPM利用时的候选对象;根据程序片段的访问频 率来确定候选对象,访问频率用访问次数与指令条数的比值表示,即访问频率= 访问次数/指令数;按照FPI大小进行存储对象的选择,选择顺序是从FPI值最 大的存储对象开始按照由大到小的顺序进行;
4) 分配SPM空间
当多道程序按照核组并行运行在MPSOC上时,各个程序的进程向 SPMManager申请SPM空间使用;在SPMManager收到请求后,通过请求信息, SPMManager能够得到进程PID号,从而得到进程所属的处理器核组与处理器 核;
第一步,SPMManager首先从对应的处理器核的本地SPM当中寻找足够的 空间分配给进程;如果无法找到足够的空间,则从本组SPM中,找到足够的空 间分配给进程;如果仍然无法找到足够的空间,则向其他的核组寻求空闲的SPM 空间;
第二步,在需要本组SPM空间时,首先从具有最大空闲空间的同组处理器 核的SPM获取空间;而在需要远端SPM空间时,首先从空闲的处理器核组获 取,其次是不空闲而具有最大空闲空间的异组处理器核的SPM空间;
为了避免存储分散造成的访问延迟,减少对其他处理器核组的存储干扰, 在向远端SPM申请空间时,只进行有限的次数;之后如果仍然需要申请SPM 空间,则选择在本地SPM空间中进行替换以获得更多的空间。
本发明与背景技术相比,具有的有益的效果是
本发明是一种MPSOC上多道程序共享SPM的实现方法,其主要功能是对 于传统的嵌入式程序,通过编译分析析取存储对象。通过操作系统专门的SPM 管理器在多道程序之间进行协同,达到多道程序共享SPM的目的。发明实现了 在MPSOC上多道程序共享SPM,对程序进行加速,减少消耗在存储器访问上 的时间,降低因存储访问带来的能耗,从而提高嵌入式系统的整体性能。
(1) 高效性。本发明实现了对SPM的有效使用,充分利用了SPM速度快的 特点,提高了程序执行的效率。
(2) 低能耗。本发明对SPM的使用,有利于在运行时减少程序由于存储访问 带来的能耗。


图1是本发明的实施过程示意图。
图2是本发明处理器核组逻辑结构图。 图3是本发明SPM组织示意图。 图4是本发明SPM空间分配的流程图。
具体实施例方式
本发明是一种MPSOC上多道程序共享SPM的实现方法,下面结合图1说 明其具体实施过程。
l)划分处理器核组
当片上集成多个处理器核之后,处理器的计算资源增加。尽管片上处理器 核数目的增加提高了处理器的计算能力,但是由于片上多个处理器核之间需要 进行通信,通信的代价同样可能对程序的运行产生影响。为了充分利用片上的 多个处理器核,片上的这些处理器核被重新在逻辑上划分,通过对处理器核的 分组,形成不同的处理器核组,以减少访问延迟。对于MPSOC来说,最为重要 的片上计算资源就是这些处理器核。因此,在划分时是以处理器核为划分的主 要依据。
MPSOC上有多个处理器核。对于相邻的处理器核,将它们在逻辑上划分到 同一个处理器核组。而每个处理器核组内都是由一个或者若干个处理器核组成。 从而,片上的处理器核就会被划分进不同的处理器核组之内。这样,位于同一 个处理器核组内的处理器核被聚集成一个整体,能够做为更大的调度单元,由 操作系统进行调度。图2(a)是MPSOC上处理器核组划分后的组逻辑示意图。图 2(b)则是在每个处理器核组内部构成的示意图。MPSOC上的存储器由SPM构 成。这种处理器核组的划分是逻辑划分,并不在物理上对处理器核进行改变。 根据实际的应用背景,可以对处理器核组的划分进行定制,从而满足不同环境 的需要。
核组的划分为MPSOC下基于SPM的多道程序并行优化提供了基础。对于 MPSOC下的多道程序来说,多个处理器核为多道程序的并行提供了更多的计算 资源。同时,允许多道程序的并行,能够提高对MPSOC计算资源的利用率。而 SPM则为这些多道程序的并行提供片上的存储服务。在多道程序并行时,操作 系统的调度不是对某个具体的处理器核在不同的多道程序中进行调度,而是将 MPSOC上的处理器核组做为调度单位进行分配。核组被分配给各个程序。这样, 调度时的粒度是处理器核组,而不是处理器核。对处理器核组进行调度,既有 利于计算资源的分配,更是通过SPM的局部化,提高了局部性,有效的减少了多道程序的存储访问延迟,提高了运行效率。 2)SPM的组织
在MPSOC上的多个处理器核被划分成处理器核组后,根据SPM所处位置 的不同,在逻辑上就有三种存在形式,分别是本地SPM,本组SPM和远端SPM, 逻辑上称为VS-SPM (虚拟SPM, Virtual Scratchpad Memory),如图3所示。
本地SPM是指MPSOC上的某个处理器核本身所拥有的SPM,在物理上两 者是分布在一起的;本组SPM是指在同一个处理器核组当中,其他的处理器核 所拥有的SPM;而远端SPM则是指非同组的其他处理器核所拥有的SPM。这 些SPM仍然以VS-SPM的形式出现。由此,本地SPM,本组SPM和远端SPM 构成了一个层次化的MPSOC上的SPM存储结构。
在图3中的虚线分别表示了三种不同的SPM的形式。对于任何一个处理器 核来说,在需要存储器时,都会首先使用本地SPM做为存储器;当本地SPM 的容量不足时,会向本组的其他处理器核请求SPM空间,即使用本组SPM;而 只有在本组SPM都不足时,才会使用其他处理器核组的SPM或者根据需要对 内存进行访问。
本地SPM和本组SPM对于处理器核来说,又是局部SPM。局部 ScratchPadMemory能够提供比远端SPM更为有效的SPM访问效率。而远端SPM 则是具有比内存更为有效的存储访问效率。对于本地SPM,处理器核将部分的 SPM空间标记为私有。而其他的SPM空间则可以被其他的处理器核所共享。对 于本组SPM和远端SPM时,处理器核所能够使用的正是其他的处理器核本地 SPM可被共享的部分。
当MPSOC上的计算资源被划分成处理器核组后,程序对片上资源的使用是 以处理器核组为单位。对于单个程序来说,在资源使用上是按照核组内的资源 优先的原则。MPSOC下的多道程序并行,对SPM的共享方式也是同样。这种 共享基于三层的SPM,即本地SPM,本组SPM和远端SPM。
对于运行在MPSOC上的程序,将会有部分的程序是在SPM当中。在运行 时根据需要,使用本地SPM、本组SPM或者远端SPM。多个程序之间通过共 享的SPM,并行运行于MPSOC上。划分核组后,同一程序使用相同的核组。 为了有效的利用核组内的处理器核,程序需要被划分成不同的线程。这些线程 也将会被分配到这些相同的核组当中。通过将不同的线程分配到核组内不同的 处理器核上,提高了并行度,以有效利用核组的计算资源。这样,具有相关性 的线程就被聚集起来。而由于相关性,这些线程使用的数据被集中的存储在核组的SPM当中。即线程的数据首先是存储在本地SPM和本组SPM当中,减少 了访问时的延迟。因此提高了线程对数据的使用效率。
3) 生成存储对象
对于运行在MPSOC上多道程序,要共享SPM,按照处理器核组进行调度, 需要对程序进行分析。确定程序的哪些片段应该存储在SPM上,哪些应该存储 在内存当中。这个过程需要借助于编译分析,来得到程序的信息和对程序进行 修改,以便共享SPM。被选择做为SPM分配对象的程序片段称为存储对象。在 对进程进行分析后,根据分析所得到的程序信息,析取出合适的存储对象,做 为该进程对SPM利用时的候选对象。根据程序片段的访问频率来确定候选对象, 访问频率用访问次数与指令条数的比值表示,即访问频率=访问次数/指令数 (Frequency Per Instruction, FPI)。按照FPI大小进行存储对象的选择,选择顺 序是从FPI值最大的存储对象开始按照由大到小的顺序进行。
4) 分配SPM空间
当多道程序按照核组并行运行在MPSOC上时,各个程序的进程向 SPMManager申请SPM空间使用。SPMManager是SPM管理器,是嵌入式操作 系统的一部分,负责SPM空间的管理。整个SPM空间都受到SPMManager的 管理。在面向MPSOC时,由于每个处理器核都有一段SPM空间,其中有处理 器核私有的空间,也有共享的空间。同时,还存在本地SPM、本组SPM和远端 SPM的逻辑层次。对于SPMManager来说,它需要为多道程序的并行提供SPM 的空间分配。
SPMManager需要记录每个处理器核的SPM的地址空间范围,私有的SPM 的地址空间范围,共享的地址空间范围以及整个SPM空间的分配使用情况。同 时,SPMManager还需要核组配置表。在核组配置表中有各个核组内部的计算资 源的信息。当SPMManager接收了来自程序的SPM申请时,它通过SPM的空 间分布、使用情况和核组配置表的信息来对空间进行分配,分配过程如图4所
在SPMManager收到请求后,通过请求信息,SPMManager能够得到进程 PID号,从而得到进程所属的处理器核组与处理器核。SPMManager首先从对应 的处理器核的本地SPM当中寻找足够的空间分配给进程;如果无法找到足够的 空间,则从本组SPM中,找到足够的空间分配给进程;如果仍然无法找到足够 的空间,则向其他的核组寻求空闲的SPM空间。在需要本组SPM空间时,首 先从具有最大空闲空间的同组处理器核的SPM获取空间。而在需要远端SPM空间时,首先从空闲的处理器核组获取,其次是不空闲而具有最大空闲空间的
异组处理器核的SPM空间。
为了避免存储分散造成的访问延迟,减少对其他处理器核组的存储干扰, 在向远端SPM申请空间时,只进行有限的次数。之后如果仍然需要申请SPM 空间,则选择在本地SPM空间中进行替换以获得更多的空间。
权利要求
1.一种MPSOC上多道程序共享SPM的实现方法,其特征在于1)划分处理器核组MPSOC上有多个处理器核;对于相邻的处理器核,将它们在逻辑上划分到同一个处理器核组;而每个处理器核组内都是由一个或者若干个处理器核组成;2)SPM的组织在MPSOC上的多个处理器核被划分成处理器核组后,根据SPM所处位置的不同,在逻辑上就有三种存在形式,分别是本地SPM,本组SPM和远端SPM;3)生成存储对象通过编译分析对程序进行分析后,根据分析所得到的程序信息,析取出合适的存储对象,做为该程序对SPM利用时的候选对象;根据程序片段的访问频率来确定候选对象,访问频率用访问次数与指令条数的比值表示,即访问频率=访问次数/指令数;按照FPI大小进行存储对象的选择,选择顺序是从FPI值最大的存储对象开始按照由大到小的顺序进行;4)分配SPM空间当多道程序按照核组并行运行在MPSOC上时,各个程序的进程向SPMManager申请SPM空间使用;在SPMManager收到请求后,通过请求信息,SPMManager能够得到进程PID号,从而得到进程所属的处理器核组与处理器核;第一步,SPMManager首先从对应的处理器核的本地SPM当中寻找足够的空间分配给进程;如果无法找到足够的空间,则从本组SPM中,找到足够的空间分配给进程;如果仍然无法找到足够的空间,则向其他的核组寻求空闲的SPM空间;第二步,在需要本组SPM空间时,首先从具有最大空闲空间的同组处理器核的SPM获取空间;而在需要远端SPM空间时,首先从空闲的处理器核组获取,其次是不空闲而具有最大空闲空间的异组处理器核的SPM空间;为了避免存储分散造成的访问延迟,减少对其他处理器核组的存储干扰,在向远端SPM申请空间时,只进行有限的次数;之后如果仍然需要申请SPM空间,则选择在本地SPM空间中进行替换以获得更多的空间。
全文摘要
本发明公开了一种MPSOC上多道程序共享SPM的实现方法。其主要功能是对于传统的嵌入式程序,通过编译分析析取存储对象。通过操作系统专门的SPM管理器在多道程序之间进行协同,达到多道程序共享SPM的目的。本发明实现了在MPSOC上多道程序共享SPM,对程序进行加速,减少消耗在存储器访问上的时间,降低因存储访问带来的能耗,从而提高嵌入式系统的整体性能。本发明实现了对SPM的有效使用,充分利用了SPM速度快的特点,提高了程序执行的效率;本发明对SPM的使用,有利于在运行时减少程序由于存储访问带来的能耗。
文档编号G06F9/38GK101290592SQ200810062168
公开日2008年10月22日 申请日期2008年6月3日 优先权日2008年6月3日
发明者严力科, 冯德贵, 章铁飞, 威 胡, 蒋冠军, 斌 谢, 度 陈, 陈天洲, 项凌祥, 黄江伟 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1