CN103559148B - 面向多任务嵌入式系统的片上便笺式存储器管理方法 - Google Patents

面向多任务嵌入式系统的片上便笺式存储器管理方法 Download PDF

Info

Publication number
CN103559148B
CN103559148B CN201310572826.0A CN201310572826A CN103559148B CN 103559148 B CN103559148 B CN 103559148B CN 201310572826 A CN201310572826 A CN 201310572826A CN 103559148 B CN103559148 B CN 103559148B
Authority
CN
China
Prior art keywords
spm
function
cache
scratch
task
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.)
Expired - Fee Related
Application number
CN201310572826.0A
Other languages
English (en)
Other versions
CN103559148A (zh
Inventor
黎峰
鞠雷
贾智平
周梓梦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN201310572826.0A priority Critical patent/CN103559148B/zh
Publication of CN103559148A publication Critical patent/CN103559148A/zh
Application granted granted Critical
Publication of CN103559148B publication Critical patent/CN103559148B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了面向多任务嵌入式系统的片上便笺式存储器管理方法,它的步骤为:对程序代码段进行预分析;对程序进行跟踪,得到其内存指令访问序列,从而获取内存代码块的访问次数和高速缓存Cache未命中信息,在高速缓存Cache访问时统计和记录内存代码块的时空冲突集;根据需要选择算法得到优化的SPM分配方案;生成代码布局分散加载文件,对程序代码段进行重新映射和布局,重新编译代码得到优化执行结果。通过综合考虑访问频率、缓存未命中频率以及任务间和任务内冲突,求得自己所需的最佳分配,使便签式存储器的利用率最大化,最终在保证程序实时性的前提下得到执行时间最优方案或者节能最优方案。

Description

面向多任务嵌入式系统的片上便笺式存储器管理方法
技术领域:
本发明属于嵌入式实时系统领域,尤其涉及一种面向多任务嵌入式系统的片上便笺式存储器管理方法。
背景技术:
在嵌入式系统的发展过程中,由于主存储器的发展速度一直比中央处理器速度慢很多,主存的低读取速度与高能量消耗导致其成为现在很多嵌入式系统性能与能耗的瓶颈,而片上存储器则弥补了这种日益增长的主存和中央处理器速度的差距。
在嵌入式系统中,片上存储器主要包括便笺式存储器(SPM,ScratchPadMemory)和高速缓存(Cache)两种。便笺式存储器SPM和高速缓存Cache本质上都是一种静态随机存储器(SRAM,StaticRandomAccessMemory),存取速度很快,接近于CPU速度。高速缓存Cache由系统硬件控制,对于系统软件和程序员透明,基于程序执行时的时间与空间局部性来提高系统性能。相比传统的Cache,便笺式存储器SPM是由软件控制,在实时系统设计中能提供更好的时间预测性,并且由于便笺式存储器SPM由软件控制不需要地址比较电路,所以体积较高速缓存Cache小、功耗较高速缓存Cache低、访问速度较高速缓存Cache快。现在许多嵌入式系统如ARM公司的ARM11、Cortex-R系列等处理器芯片上都同时集成了这两种片上存储器。
在最近十几年有许多关于便笺式存储器SPM相关架构设计与管理的研究,它们或者优化性能、或者优化能耗、或者优化最坏执行时间(WCET,Worst-caseExecutionTime)。这些研究一般通过编译期代码选取和重新布局,静态或者动态的改变便笺式存储器SPM中的内容达到优化目的。但是现在的研究主要集中在仅有便笺式存储器SPM的系统,对使用便笺式存储器SPM+高速缓存Cache(如图1)存储体系的多任务系统的研究相对较少。现在仅有的针对便笺式存储器SPM+高速缓存Cache存储体系的多任务系统的优化算法中,算法以函数为基本分配单位,只考虑单个函数放入SPM所得到的能耗减少,对于多任务系统中任务间冲突以及任务内函数间的冲突没有考虑,而这些任务间以及任务内的冲突对系统的性能和能耗有很大的影响。
通过对多个程序执行过程的跟踪研究,发现在许多程序中,访问频率高或者高速缓存Cache未命中频率高的函数不一定是造成任务间和任务内冲突最多的函数(如图2,其中访问频率最高的是A0和B1,未命中频率最高的是A0,但造成任务间和任务内冲突最多的是B0),现有技术往往没有把访问频率、Cache未命中频率以及任务间和任务内冲突都考虑进去,更没有充分利用SPM。
中国专利(申请号:201310042340.6,专利名称:面向嵌入式片上异构存储器的细粒度数据分配方法),这篇专利虽然利用线性规划方法来解决便签式存储器SPM中的数据分配问题,但是1)它是讨论便签式存储器SPM中数据分配的问题,而数据分配与代码分配有极大的差别,因为多任务系统中代码之间的相关性,不能以内存块为单位来进行分配,2)它是利用线性规划方法来解决SPM分配问题,但是由于变量以及约束条件非常多,使用线性规划方法其计算时间复杂度是指数级的会消耗非常多的时间,根本无法满足实时系统的要求。
发明内容:
本发明要解决的问题就是:(1)明确多任务系统中任务间以及任务内的冲突情况;(2)综合考虑访问频率、高速缓存Cache未命中频率以及任务间和任务内冲突情况,充分利用有限的便笺式存储器SPM空间,本发明通过提供一种面向多任务嵌入式系统的片上便笺式存储器管理方法,充分利用便笺式存储器SPM的优势来优化程序的代码段,提高系统性能,加快执行速度,减少系统能耗;通过对程序中指令进行细粒度分析,然后根据优化目的的不同综合考虑多种因素进行便笺式存储器SPM分配,以便使便笺式存储器SPM的利用率达到最大,最终使执行时间最小或者使能耗最小。
为实现上述目的,本发明采用如下技术方案:
一种面向多任务嵌入式系统的片上便笺式存储器管理方法,它的步骤为:
步骤(1):对程序代码段进行预分析,获取各个任务的各个函数在内存中的首尾地址和函数大小,并对所有函数进行统一编号;
步骤(2):在无便签式存储器SPM架构下对程序代码进行跟踪,得到其内存指令访问序列,从而获取内存代码块的访问次数和高速缓存Cache未命中次数,在高速缓存Cache访问时统计和记录内存代码块的时空冲突集;
步骤(3):根据需要选择算法得到优化的便笺式存储器SPM分配方案:
如果对分析时间没有要求就选择线性规划算法,根据步骤(1)中各个函数的首尾地址、大小和步骤(2)中访问次数以及时空冲突集来得到针对执行时间或者能耗的便笺式存储器SPM优化分配方案,记录应该放入便签式存储器SPM的函数编号;
如果要求最少的分析时间就选择背包近似算法,根据步骤(1)中各个函数的首尾地址、大小、步骤(2)中的访问次数和高速缓存Cache未命中次数以及时空冲突集来得到针对执行时间或者能耗的便笺式存储器SPM优化分配方案,记录应该放入便签式存储器SPM的函数编号;
步骤(4):生成代码布局分散加载文件,对程序代码段进行重新映射和布局,重新编译代码得到优化执行结果。
所述步骤(2)中,在无便签式存储器SPM架构下通过仿真器跟踪执行得到程序访问指令的序列,获取内存代码块的访问次数和高速缓存Cache未命中信息,统计每个内存块两次高速缓存Cache访问之间不重复的内存块序列,生成时空冲突集合TCS,时空冲突集合TCS在步骤(3)的两种方法中都要用到。
所述步骤(3)的线性规划方法中,由于每一个内存块miss减少分两种情况:
1).因为本身所在的函数被选取到SPM中,miss全部消失;
2).当自身所在的函数没被选取到SPM中但映射到同一Cache组的其他内存块所在的函数被选取到SPM,由此可能导致自身一些TCS中的块数小于Cache的路数;统计SPM分配后的各个内存块的miss次数miss′i,然后根据不同的优化目标选择不同的目标函数:
如果需要优化执行时间,目标函数为:
lat access = Σ i = 1 V Σ m j ∈ f i ( miss j ′ · lat m + ( access j · ( 1 - x fn ( m j ) ) - miss j ′ ) · lat c + x fn ( m j ) · access j · lat s )
如果需要优化能耗,则目标函数为:
E access = Σ i = 1 V Σ m j ∈ f i ( miss j ′ · E m + ( access j · ( 1 - x fn ( m j ) ) - miss j ′ ) · E c + x fn ( m j ) · access j · E s )
所述步骤(3)的背包近似算法中,将内存块之间的冲突通过计算影响因子转化为各个任务的各个函数之间的冲突,然后就综合访问频率、Cache未命中频率以及任务冲突多方面因素来考虑将各个任务的各个函数中的任意一个函数放入SPM中得到的“收益”,然后利用近似背包算法来取得优化执行时间的分配或者优化能耗的分配。
所述步骤(4)中,根据步骤(3)中得到的优化分配结果生成程序优化脚本,所述程序优化脚本即分散加载文件,根据步骤(3)中记录的函数编号在程序优化脚本中把步骤(3)中所记录的函数编号对应的函数映射到SPM中,但在主存中仍保留一个备份,其他代码在主存中的位置不变,因此分配前后未分配到SPM中的代码映射的Cache组不变,就使步骤(2)中得到的针对无SPM架构程序执行跟踪结果是有效的。
本发明采用的方法与现有技术相比有如下优点:
(1)使用SPM+Cache架构。在无Cache的架构中,未分配到SPM中的代码访问延迟以及访问能耗太高,无法有效提高程序执行速度、降低系统能耗。在SPM+Cache的架构中,可以同时利用两者的优点,在充分利用SPM的同时,未分配到SPM中的代码可以利用Cache来提高速度降低能耗。
(2)在多任务系统下求取最优SPM分配方案,相比单任务系统多任务系统能更好的利用CPU,极大的提高CPU利用率。而在多任务系统下就需要在考虑任务内函数之间冲突影响的同时考虑任务间的冲突影响。
(3)针对代码求取最优SPM分配方案,与数据不同,代码有相关性不能随意分割放入SPM,需要把相关代码统一分配。本专利以函数为单位进行分配,若一个函数被分配到到SPM中,则属于这个函数的内存块都要被放入SPM。
(4)对Cache冲突情况进行细粒度分析。跟踪程序执行,利用时空冲突集记录Cache访问情况,可以把所有的Cache冲突记录起来,这样就可以更加充分的利用SPM进行代码分配。
(5)提出两种求取SPM分配方案的方法,可根据不同需求选择不同方法。
(6)把各个任务各个函数之间的冲突量化出来。把内存块的Cache冲突情况量化的表示成各个任务各个函数之间的冲突,这样在分配时就把一个函数作为一个单位来分配,极大地减少了计算量。
(7)提出一种多项式时间算法。在任务函数之间的冲突被量化后,也就可以综合考虑每个函数被放入SPM后对整体有多大的“收益”,然后就利用一种背包近似算法来得到SPM分配方案,极大地减少了计算时间。
附图说明:
图1具有Cache+SPM结构的系统架构;
图2一段指令Cache跟踪轨迹;
图3任务集指令Cachemiss统计;
图4映射到相同Cache组的内存块在Cache中的冲突序列;
图5函数f1被选取到SPM后的冲突序列;
图6程序代码优化过程流程图。
具体实施方式:
下面给出本发明的一个实例并结合附图对本发明做进一步地说明。
(1)对程序代码段进行预分析
通过分析反汇编文件,找出源程序的代码段,然后对程序代码段进行分析;分析代码段是统计多任务系统中每个任务的每个函数的首尾地址以及大小,并对多任务系统中的所有函数进行统一编号。对于一个任务集(包括任务bs和任务cnt)程序(如图3,X轴为函数编号,Y轴为Cache未命中的次数)获取到的代码段信息如下:
函数编号 首地址 函数大小
1 4194624 176
2 4194800 88
3 4194888 488
…… …… ……
62 4219232 36
(2)对程序代码段执行轨迹进行跟踪,建立Cache冲突集合
把源文件编译成二进制文件,在多任务仿真器中获取程序执行的跟踪信息。分析跟踪信息得到每个代码块的首地址、大小、访问次数、miss次数和时空冲突集合(TCS),TCS中包含一个内存块的两次访问之间映射到同一Cache组的不重复的内存块访问序列。如图4,m0、m1、m2、m3、m4、m5为映射到同一个Cache组的内存块,假设Cache为2路组相联的,则m0的时空冲突集为 TCS m 0 [ 1 ] = { m 1 , m 2 } TCS m 0 [ 2 ] = { m 2 , m 3 , m 4 } .
(3)利用优化算法得到优化的SPM分配方案
在这一步骤中,有线性规划方法和背包近似方法两种方法可用于得到优化的SPM分配方案。表格1列出在两种方法中使用的符号和解释。
表格1
1.在线性规划方法中,通过线性约束条件和目标函数,使用Cplex等整数线性规划求解工具来求出最优解。表格2列出整数线性规划中使用的符号和解释。
表格2
线性规划方法中的线性约束条件如下所示。
1)SPM容量。SPM的大小是确定的,被放入SPM的函数占用空间之和不能大于SPM的容量。
Σ i = 1 V ( size i · x f i ) ≤ SIZE SPM
2)TCS再计算。对于一个给定的SPM分配,因为有一部分函数被放入到SPM,即这些函数所包含的内存块也被放入SPM,那么那些包含被放入SPM的内存块的TCS就不是有效的,需要重新计算。
y m j [ k ] = Σ m p ∈ tcs m j [ k ] ( 1 - x fn ( m p ) )
3)Cachemiss统计。TCS再计算之后就可以统计Cachemiss数目,如果内存块不在SPM中且其TCS中的块数小于Cache的路数(如图5,当函数f1被选取到SPM中时,中的块数少于2,所以内存块m0会减少两次miss),这次访问就是Cache命中,否则就是Cachemiss。
c m j [ k ] = 0 , y m j [ k ] < A 1 , otherwise
转化为线性表达式是:
y m j [ k ] + ( 1 - c m j [ k ] ) &CenterDot; U &GreaterEqual; A
y m j [ k ] - c m j [ k ] &CenterDot; U + 1 &le; A
U是一个很大的数字。
但仅仅不能代表Cachemiss,只有mj所对应的函数不在SPM并且才能表示Cachemiss。
cm m j [ k ] = c m j [ k ] &CenterDot; ( 1 - x fn ( m j ) )
不过当将上述等式合并起来时发现其中含有非线性的项令这一项等于z可转化为线性化表达式:
z &le; 1 - x fn ( m j )
z &le; x fn ( m p )
1 - x fn ( m j ) - x fn ( m p ) - z &le; 0
最后就可以统计SPM分配后的Cachemiss数目。
miss j &prime; = &Sigma; k = 1 acces s j cm m j [ k ] + ( 1 - x fn ( m j ) )
其中这一项表示当内存块mj所对应的的函数没有被放入SPM中时的强制性未命中。
利用以上约束条件便可以使存储系统访问延迟最小化。下面为目标函数,其中lataccess是经过SPM分配后的总存储访问延迟,latm、latc、lats分别为Cache未命中、Cache命中和SPM命中时的延迟。
lat access = &Sigma; i = 1 V &Sigma; m j &Element; f i ( miss j &prime; &CenterDot; lat m + ( access j &CenterDot; ( 1 - x fn ( m j ) ) - miss j &prime; ) &CenterDot; lat c + x fn ( m j ) &CenterDot; access j &CenterDot; lat s )
也可以利用这些线性约束来使存储能耗最小化。目标函数如下所示,其中Eaccess是经过SPM分配后的总存储访问延迟,Em、Ec、Es分别为Cache未命中、Cache命中和SPM命中时的能耗。
E access = &Sigma; i = 1 V &Sigma; m j &Element; f i ( miss j &prime; &CenterDot; E m + ( access j &CenterDot; ( 1 - x fn ( m j ) ) - miss j &prime; ) &CenterDot; E c + x fn ( m j ) &CenterDot; access j &CenterDot; E s )
2.在背包近似方法中,将内存块之间的冲突转化为任务函数之间的冲突,然后就可以综合考虑将一个函数放入SPM中得到的好处,然后利用近似背包算法来取得优化执行时间的分配或者优化能耗的分配。表格3列出背包近似方法中使用的符号和解释。
表格3
为将内存块之间的冲突转化为任务函数之间的冲突,需要将任务函数之间的冲突影响量化,为此提出了影响因子的概念。
影响因子。在一个给定的程序执行轨迹中,对于内存块mj的第k次冲突miss,表示函数fi造成内存块mj冲突miss的影响因子。
in f f i , m j [ k ] = | { m | m &Element; tc s m j [ k ] ^ m &Element; f i } | | tcs m j [ k ] |
然后可以定义函数fi造成函数fj冲突miss的平均影响因子。
in f f i , f j = &Sigma; | tc s m [ k ] | &GreaterEqual; A in f f i , m [ k ] N miss , &ForAll; m &Element; f i
在这里Nmiss是函数fj所包含的所有内存块的冲突miss数目。例如图4表示一段程序运行轨迹,函数f0包括内存块m0与m1,函数f1包括内存块m2与m3,函数f2包括内存块m4与m5。内存块m0的时空冲突集为 TCS m 0 [ 1 ] = { m 1 , m 2 } TCS m 0 [ 2 ] = { m 2 , m 3 , m 4 } , 而内存块m1的时空冲突集为对于 TCS m 0 [ 1 ] , in f f 1 , m 0 [ 1 ] = 1 / 2 , inf f 2 , m 0 [ 1 ] = 0 ; TCS m 0 [ 2 ] , in f f 1 , m 0 [ 2 ] = 2 / 3 , inf f 2 , m 0 [ 2 ] = 1 / 3 . 所以,
inf f 1 , f 0 = in f f 1 , f 0 [ 1 ] + in f f 1 , f 0 [ 2 ] 2 = 7 / 12
inf f 2 , f 0 = inf f 2 , f 0 [ 1 ] + in f f 2 , f 0 [ 2 ] 2 = 1 / 6
就可以计算lat_infi
lat _ sf i = &Sigma; m j &Element; f i ( access j &CenterDot; ( lat c - lat s ) + ( conflic t j + 1 ) &CenterDot; ( lat m - lat s ) )
lat _ cf i = &Sigma; m j &Element; f i conflic t j &CenterDot; ( lat m - lat s )
lat _ in f i = &Sigma; j = 1 , j &NotEqual; i V ( lat _ cf j &CenterDot; inf f i , f j )
在得到lat_sfi和lat_infi之后就可以计算lati
lati=1at_sfi+lat_infi
这样就知道每个函数被放入SPM后对整体有多大的“收益”,然后再利用背包近似算法来计算把那些函数放入SPM可得到最大收益,算法描述如下。
算法1
在这个算法中,先将所有函数按非增加的lati/sizei进行排序,其次选择一个函数集中函数数目不大于k并且函数集中所有函数容量之和不大于SPM容量的函数集,然后利用贪心策略选取剩下的函数直到SPM放不下,最后选取其中收益最大的分配方案。
将其中的访问延迟换成访问能耗,就可用于能耗优化。
(4)生成代码布局分散加载文件
分散加载文件是编译器在链接时使用的输入文件,用来指定代码段的加载区域和地址。经过步骤(3)之后,可以得到需要加载到SPM中函数的相对位置,在指定好SPM的初始位置和大小之后,很容易计算出函数在SPM中的相对位置,如果指定SPM的初始地址为0x20000000,举例如下:
变量名 大小 在SPM中的位置 是否在SPM中(1,在;0,不在)
1 176 0
2 88 0x20000000 1
3 488 0x20000058 1
…… …… …… ……
在分散加载文件中描述如下:
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (5)

1.一种面向多任务嵌入式系统的片上便笺式存储器管理方法,其特征是,它的步骤为:
步骤(1):对程序代码段进行预分析,获取各个任务的各个函数在内存中的首尾地址和函数内存大小,并对所有函数进行统一编号;
步骤(2):在无便签式存储器SPM架构下利用仿真器对程序代码进行跟踪,得到其内存指令访问序列,从而获取内存代码块的访问次数和高速缓存Cache未命中次数,在高速缓存Cache访问时统计和记录内存代码块的时空冲突集;
步骤(3):根据需要选择算法得到优化的便笺式存储器SPM分配方案:
如果对分析时间没有要求就选择线性规划算法,根据步骤(1)中各个函数的首尾地址、大小和步骤(2)中的访问次数以及时空冲突集来得到针对执行时间或者能耗的便笺式存储器SPM优化分配方案,记录应该放入便签式存储器SPM的函数编号;
如果要求最少的分析时间就选择背包近似算法,根据步骤(1)中各个函数的首尾地址、大小、步骤(2)中的访问次数和高速缓存Cache未命中次数以及时空冲突集来得到针对执行时间或者能耗的便笺式存储器SPM优化分配方案,记录应该放入便签式存储器SPM的函数编号;
步骤(4):针对步骤(3)的任一情况生成代码布局分散加载文件,对程序代码段进行重新映射和布局,重新编译代码得到优化执行结果。
2.如权利要求1所述的一种面向多任务嵌入式系统的片上便笺式存储器管理方法,其特征是,所述步骤(2)中,在无便签式存储器SPM架构下通过仿真器跟踪执行得到程序访问指令的序列,获取内存代码块的访问次数和高速缓存Cache未命中信息,统计每个内存块两次高速缓存Cache访问之间不重复的内存块序列,生成时空冲突集合TCS。
3.如权利要求1所述的一种面向多任务嵌入式系统的片上便笺式存储器管理方法,其特征是,所述步骤(3)的线性规划方法中,由于每一个内存块miss减少分两种情况:
1).因为本身所在的函数被选取到SPM中,miss全部消失;
2).当自身所在的函数没被选取到SPM中但映射到同一Cache组的其他内存块所在的函数被选取到SPM,由此会导致自身一些TCS中的块数小于Cache的路数;统计SPM分配后的各个内存块的miss次数midd′i,然后根据不同的优化目标选择不同的目标函数:
如果需要优化执行时间,目标函数为:
lat a c c e s s = &Sigma; i = 1 V &Sigma; m j &Element; f i ( miss j &prime; &CenterDot; lat m + ( access j &CenterDot; ( 1 - x f n ( m j ) ) - miss j &prime; ) &CenterDot; lat c
+ x f n ( m j ) &CenterDot; access j &CenterDot; lat s )
如果需要优化能耗,则目标函数为:
E a c c e s s = &Sigma; i = 1 V &Sigma; m j &Element; f i ( miss j &prime; &CenterDot; E m + ( access j &CenterDot; ( 1 - x f n ( m j ) ) - miss j &prime; ) &CenterDot; E c + x f n ( m j ) &CenterDot; access j &CenterDot; E s ) .
4.如权利要求1所述的一种面向多任务嵌入式系统的片上便笺式存储器管理方法,其特征是,所述步骤(3)的背包近似算法中,将内存块之间的冲突通过计算影响因子转化为各个任务的各个函数之间的冲突,然后就综合访问频率、Cache未命中频率以及任务冲突多方面因素来考虑将各个任务的各个函数中的任意一个函数放入SPM中得到的“收益”,然后利用背包近似算法来取得优化执行时间的分配或者优化能耗的分配。
5.如权利要求4所述的一种面向多任务嵌入式系统的片上便笺式存储器管理方法,其特征是,所述步骤(4)中,根据步骤(3)中得到的优化分配结果生成程序优化脚本,所述程序优化脚本即分散加载文件,根据步骤(3)中记录的函数编号在程序优化脚本中把步骤(3)中所记录的函数编号对应的函数映射到SPM中,但在主存中仍保留一个备份,其他代码在主存中的位置不变,因此分配前后未分配到SPM中的代码映射的Cache组不变,就使步骤(2)中得到的针对无SPM架构程序执行跟踪结果是有效的。
CN201310572826.0A 2013-11-15 2013-11-15 面向多任务嵌入式系统的片上便笺式存储器管理方法 Expired - Fee Related CN103559148B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310572826.0A CN103559148B (zh) 2013-11-15 2013-11-15 面向多任务嵌入式系统的片上便笺式存储器管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310572826.0A CN103559148B (zh) 2013-11-15 2013-11-15 面向多任务嵌入式系统的片上便笺式存储器管理方法

Publications (2)

Publication Number Publication Date
CN103559148A CN103559148A (zh) 2014-02-05
CN103559148B true CN103559148B (zh) 2016-03-23

Family

ID=50013399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310572826.0A Expired - Fee Related CN103559148B (zh) 2013-11-15 2013-11-15 面向多任务嵌入式系统的片上便笺式存储器管理方法

Country Status (1)

Country Link
CN (1) CN103559148B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9852811B2 (en) * 2014-11-13 2017-12-26 Macronix International Co., Ltd. Device and method for detecting controller signal errors in flash memory
CN105701029B (zh) * 2014-11-25 2018-11-06 华为技术有限公司 一种异构存储优化方法及装置
CN104572501B (zh) * 2015-01-08 2017-05-17 北京航空航天大学 一种基于访存踪迹局部性分析的多核环境下共享缓存优化方法
CN105263022B (zh) * 2015-09-21 2018-03-02 山东大学 一种针对hevc视频编码的多核混合存储管理方法
CN105912405B (zh) * 2016-04-28 2019-01-29 浪潮(北京)电子信息产业有限公司 一种任务部署方法及装置
CN106940682B (zh) * 2017-03-07 2020-06-09 武汉科技大学 一种基于片上可编程存储器的嵌入式系统优化方法
CN106991007B (zh) * 2017-03-31 2019-09-03 青岛大学 一种基于gpu片上的数据处理方法及设备
CN108170632A (zh) * 2018-01-12 2018-06-15 江苏微锐超算科技有限公司 一种处理器架构及处理器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150265A (zh) * 2013-02-04 2013-06-12 山东大学 面向嵌入式片上异构存储器的细粒度数据分配方法
CN103218304A (zh) * 2013-04-03 2013-07-24 杭州电子科技大学 一种嵌入式内存数据片上片外分配方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101635395B1 (ko) * 2010-03-10 2016-07-01 삼성전자주식회사 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
KR101789190B1 (ko) * 2012-03-06 2017-11-20 한국전자통신연구원 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150265A (zh) * 2013-02-04 2013-06-12 山东大学 面向嵌入式片上异构存储器的细粒度数据分配方法
CN103218304A (zh) * 2013-04-03 2013-07-24 杭州电子科技大学 一种嵌入式内存数据片上片外分配方法

Also Published As

Publication number Publication date
CN103559148A (zh) 2014-02-05

Similar Documents

Publication Publication Date Title
CN103559148B (zh) 面向多任务嵌入式系统的片上便笺式存储器管理方法
CN103150265B (zh) 面向嵌入式片上异构存储器的细粒度数据分配方法
CN102142006B (zh) 分布式文件系统的文件处理方法及装置
CN105022670A (zh) 一种云计算平台中的异构分布式任务处理系统及其处理方法
CN1717663A (zh) 管理缓存旁路的方法和装置
CN103226487A (zh) 面向异构众核多级存储结构的数据分布与局部性优化方法
Li et al. Compiler-assisted preferred caching for embedded systems with STT-RAM based hybrid cache
CN105808358A (zh) 一种用于众核系统的数据相关性线程分组映射方法
CN104572501A (zh) 一种基于访存踪迹局部性分析的多核环境下共享缓存优化方法
Gai et al. Smart energy-aware data allocation for heterogeneous memory
Kannan et al. A software solution for dynamic stack management on scratch pad memory
CN103020077A (zh) 一种电力系统实时数据库内存管理方法
CN103246539B (zh) 基于用户使用习惯的gis系统模块加载方法
CN106844103B (zh) 非易失处理器备份容量设定、内存备份方法及系统
Siddique et al. Lmstr: Local memory store the case for hardware controlled scratchpad memory for general purpose processors
CN103092618A (zh) 基于软件Cache的Dalvik虚拟机JIT加速方法
CN111737053A (zh) 一种基于指令分析的非易失处理器备份方法及系统
Kuo et al. Cache capacity aware thread scheduling for irregular memory access on many-core GPGPUs
CN103218304A (zh) 一种嵌入式内存数据片上片外分配方法
Poursafaei et al. NPAM: NVM-aware page allocation for multi-core embedded systems
Shekarisaz et al. MASTER: Reclamation of hybrid scratchpad memory to maximize energy saving in multi-core edge systems
Ji et al. Dynamic and adaptive SPM management for a multi-task environment
CN106940682B (zh) 一种基于片上可编程存储器的嵌入式系统优化方法
Gu et al. Data allocation with minimum cost under guaranteed probability for multiple types of memories
Wang et al. Data allocation for embedded systems with hybrid on-chip scratchpad and caches

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Li Feng

Inventor after: Ju Lei

Inventor after: Jia Zhiping

Inventor after: Zhou Zimeng

Inventor before: Ju Lei

Inventor before: Jia Zhiping

Inventor before: Zhou Zimeng

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160323

Termination date: 20191115

CF01 Termination of patent right due to non-payment of annual fee