CN101853183B - 一种用于动态管理片上指令便签存储器的方法 - Google Patents
一种用于动态管理片上指令便签存储器的方法 Download PDFInfo
- Publication number
- CN101853183B CN101853183B CN2010101781698A CN201010178169A CN101853183B CN 101853183 B CN101853183 B CN 101853183B CN 2010101781698 A CN2010101781698 A CN 2010101781698A CN 201010178169 A CN201010178169 A CN 201010178169A CN 101853183 B CN101853183 B CN 101853183B
- Authority
- CN
- China
- Prior art keywords
- program
- migration
- block
- chip
- transferring
- 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
Links
Images
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Devices For Executing Special Programs (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出一种用于动态管理片上指令便签存储器的方法,所述的方法包含如下步骤:对高级语言源程序进行基于典型输入的剖面分析,得到应用程序的运行信息;对源程序进行控制流分析,得到程序的控制流图;根据程序运行信息和控制流图,识别程序中的候选程序迁移点;建立收益代价模型,计算将程序基本块动态迁移到片上获得的初始性能收益;根据初始性能收益,同时结合便签存储器的可用空闲存储空间、程序基本块的生存期、迁移操作的开销等因素,决定是否进行程序块动态迁移;在有性能收益的前提下,才进行程序块动态迁移即在程序迁移点处插入进行程序块迁移的指令,将程序块从片外动态迁移到片上。本发明提升了嵌入式系统性能、降低嵌入式系统功耗。
Description
技术领域
本发明涉及一种用于动态管理片上指令便签存储器的方法,具体涉及一种用于动态管理片上指令便签存储器的方法。
背景技术
在嵌入式系统中,处理器的片上存储器通常采用SRAM结构,主要分为高速缓存(cache)和便签存储器(scratchpad-memory,SPM)两种类型。便签存储器是一种快速的、由编译器进行管理的片上存储器,它和高速缓存相比在实时性、功耗和面积上都有很大的优势,因此便签存储器更加适合嵌入式系统的需要。
现有的指令便签存储器的管理策略,采用静态管理的模式,即在程序运行前,指令便签存储器的内容已经被分配好,而且在程序执行的过程中,其内容保持不变。对于嵌入式应用而言静态管理模式下的便签存储器性能优于Cache,然而却无法适应应用程序的动态特性,没有灵活性。
发明内容
本发明的目的在于,为克服针对传统静态指令便签存储器无法适应程序动态特性的不足,提出了一种用于动态管理片上指令便签存储器的方法。
本发明提出的一种用于动态管理片上指令便签存储器的方法,该方法用于对片上便签存储器的内容进行动态管理,所述的方法包含如下步骤:
1)对高级语言源程序进行基于典型输入的剖面分析,得到应用程序的执行剖面信息;
2)对源程序进行控制流分析,得到程序的控制流图;
3)根据得到的程序剖面信息和控制流图,对应用程序进行分析,识别程序中的候选程序迁移点;
4)根据得到的候选程序迁移点,再结合相关参数建立收益模型,针对不同候选程序迁移点计算将程序基本块进行动态迁移所获得的初始性能收益;
5)根据得到的基本块的初始性能收益,同时考虑若干因素,决定是否进行程序块的动态迁移;
6)根据做出的迁移方案,在程序迁移点处插入控制程序块迁移的指令,将程序块从片外传输到片上;
7)对源程序进行二次编译,得到源程序对应的汇编程序进行汇编,并和其他经过编译的应用程序、库函数进行链接,最终得到动态利用片上指令便签存储器的二进制可执行文件。
上述技术方案,步骤1)所述的程序的执行剖面信息包括:程序基本块的大小、执行的次数或分支频率。
上述技术方案,步骤3)所述的识别程序迁移点的类型包含:函数开始、循环入口处和循环结束处。循环入口前后的程序局部性发生明显的变化,并且循环体的执行频率远高于循环入口处及以前的代码的执行频率,因而动态迁移操作的开销能够被补偿;算法在函数入口点和循环结束处的程序点可以利用连续串行执行的基本块特点,补偿动态迁移操作开销,进而获得更大的收益。其中,步骤3)所述的识别程序迁移点的步骤,具体的考虑因素包含:
在程序迁移点之后,程序基本块执行的局部性发生明显变化,并且程序迁移点的执行频率小于被迁移程序基本块的执行频率,这样动态迁移操作的开销才能通过被迁移程序块所获得的收益获得补偿。
上述技术方案,步骤4)所述的相关参数包含:程序基本块的大小、将程序放在片上便签存储器时获得的收益和将程序进行动态迁移的额外开销,其中,所述的收益和开销,能够通过运行时间、功耗、或面积以及三者结合综合考虑衡量得到。
上述技术方案,步骤5)所述的若干因素包含:便签存储器的可用空闲存储空间、程序基本块的生存期和迁移操作的开销;且步骤5)所述的动态迁移之前能进行优化步骤,该步骤为:将连续的程序基本块进行合并后再迁移,或将当前生存的程序基本块覆盖便签存储器中已经死亡的基本块。即当当程序块不在生存的时候,可以被当前生存的程序块覆盖;片上便签存储器的可用空闲存储空间,当剩余存储空间不多的时候,可以尽量放一些小的程序基本块来提升便签存储器的利用率。
上述技术方案,步骤6)所述的动态迁移操作,通过逐条指令读写存储器的方式完成,或通过直接存储器访问的方式来完成。其中,动态迁移操作的实现方式,会影响步骤4)收益模型。
本发明的优点在于,建立了多种候选程序迁移点模型,并根据需要建立针对性能、功耗等多种目的的收益模型,同时在动态块迁移过程中考虑到了程序块生存期、剩余存储空间大小、迁移操作的开销等因素,利用存储器读写操作或者直接存储访问等多种方式进行动态程序块迁移,最终达到了高效、动态管理片上指令便签存储器的目的。该方法能够达到提升嵌入式系统性能、降低嵌入式系统功耗等目的。
附图说明
图1给出了本发明的一种用于动态管理片上指令便签存储器的方法的详细流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步说明。该方法具体工作步骤如图1所示:
1.对高级语言源程序文件进行静态控制流分析或者基于典型输入的剖面分析,得到包含基本块大小、执行频率、执行次数等的程序执行剖面信息和程序的控制流图;
2.根据剖面信息和控制流图,分析源程序,找出候选的动态程序迁移点。程序迁移点要选在其后的程序局部性发生明显改变的程序点,同时要保证程序迁移点的执行频率小于被迁移程序块的执行频率,这样才能使插入的迁移操作的开销得到补偿;
3.根据收益模型计算程序块进行动态迁移的初始收益,该收益模型可以是功耗收益、性能收益或者多种收益的综合考虑,该收益模型主要基于剖面分析得到的基本块大小、基本块的执行次数、频率以及将基本块进行动态迁移的开销等因素;
4.根据程序基本块的生存期、便签存储器的剩余空间等因素,决定是否进行动态迁移。在动态迁移之前,可以进行多种优化操作,例如将连续的程序基本块进行合并后再迁移,可以减少动态迁移开销;将当前生存的程序基本块覆盖便签存储器中已经死亡的基本块,可以提升便签存储器的利用率;
5.根据步骤4做出的程序动态迁移的决策,在程序中插入动态迁移操作。动态迁移的实现,可以是通过逐条指令读写存储器的方式,也可以通过直接存储访问的方式,具体实现方式的不同会对步骤3采用的收益模型产生影响;
6.在考虑动态迁移操作之后,产生源程序的汇编语言程序;
7.将当前应用程序对应的汇编程序进行汇编后,和其他经过相同处理过程的库函数程序合并,并进行链接操作,得到可执行文件。
通过以上步骤,本发明可以对片上指令便签存储器进行高效的动态管理,达到提升嵌入式系统性能、降低嵌入式系统功耗等目的。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1.一种用于动态管理片上指令便签存储器的方法,该方法用于对片上便签存储器的内容进行动态管理,所述的方法包含如下步骤:
1)对高级语言源程序进行基于典型输入的剖面分析,得到应用程序的执行剖面信息;
2)对源程序进行控制流分析,得到程序的控制流图;
3)根据得到的程序剖面信息和控制流图,对应用程序进行分析,识别程序中的候选程序迁移点;
4)根据得到的候选程序迁移点,再结合相关参数建立收益模型,针对不同候选程序迁移点计算将程序基本块进行动态迁移所获得的初始性能收益;
5)根据得到的基本块的初始性能收益,同时考虑若干因素,决定是否进行程序块的动态迁移;
6)根据做出的迁移方案,在程序迁移点处插入控制程序块迁移的指令,将程序块从片外传输到片上;
7)对源程序进行二次编译,得到源程序对应的汇编程序进行汇编,并和其他经过编译的应用程序、库函数进行链接,最终得到动态利用片上指令便签存储器的二进制可执行文件;
其中,步骤4)所述的相关参数包含:
程序基本块的大小、将程序放在片上便签存储器时获得的收益和将程序进行动态迁移的额外开销,其中,所述的收益和开销,能够通过运行时间、功耗、或面积以及三者综合考虑衡量得到;
步骤5)所述的若干因素包含:便签存储器的可用空闲存储空间、程序基本块的生存期和迁移操作的开销。
2.根据权利要求1所述的用于动态管理片上指令便签存储器的方法,其特征在于,步骤1)所述的程序的执行剖面信息包括:程序基本块的大小、执行的次数或分支频率。
3.根据权利要求1所述的用于动态管理片上指令便签存储器的方法,其特征在于,步骤3)所述的候选程序迁移点的类型包含:函数开始、循环入口处和循环结束处。
4.根据权利要求1所述的用于动态管理片上指令便签存储器的方法,其特征在于,步骤5)所述的动态迁移之前能进行优化步骤,该步骤为:将连续的程序基本块进行合并后再迁移,或将当前生存的程序基本块覆盖便签存储器中已经死亡的基本块。
5.根据权利要求1所述的用于动态管理片上指令便签存储器的方法,其特征在于,步骤6)所述的动态迁移操作,通过逐条指令读写存储器的方式完成,或通过直接存储器访问的方式来完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101781698A CN101853183B (zh) | 2010-05-14 | 2010-05-14 | 一种用于动态管理片上指令便签存储器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101781698A CN101853183B (zh) | 2010-05-14 | 2010-05-14 | 一种用于动态管理片上指令便签存储器的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101853183A CN101853183A (zh) | 2010-10-06 |
CN101853183B true CN101853183B (zh) | 2012-11-21 |
Family
ID=42804689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101781698A Expired - Fee Related CN101853183B (zh) | 2010-05-14 | 2010-05-14 | 一种用于动态管理片上指令便签存储器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101853183B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339523A (zh) * | 2007-07-05 | 2009-01-07 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
CN101739358A (zh) * | 2009-12-21 | 2010-06-16 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7529903B2 (en) * | 2005-07-05 | 2009-05-05 | International Business Machines Corporation | Systems and methods for memory migration |
EP2329389A4 (en) * | 2008-08-13 | 2013-02-27 | ENHANCING THE PERFORMANCE OF A SOFTWARE APPLICATION |
-
2010
- 2010-05-14 CN CN2010101781698A patent/CN101853183B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339523A (zh) * | 2007-07-05 | 2009-01-07 | 国际商业机器公司 | 多处理器环境中的流水线处理方法和设备 |
CN101739358A (zh) * | 2009-12-21 | 2010-06-16 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101853183A (zh) | 2010-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104081315B (zh) | 包括线程合并的用于能效和节能的方法、装置和系统 | |
US9098309B2 (en) | Power consumption optimized translation of object code partitioned for hardware component based on identified operations | |
CN100538662C (zh) | 一种基于局部采样的存储器的磨损平衡方法 | |
Schoeberl et al. | Towards a time-predictable dual-issue microprocessor: The Patmos approach | |
US8954775B2 (en) | Power gating functional units of a processor | |
Bateni et al. | Predjoule: A timing-predictable energy optimization framework for deep neural networks | |
CN101611380A (zh) | 推测性吞吐量计算 | |
KR102161192B1 (ko) | 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 | |
CN114240133A (zh) | 可再生能源与电网协调规划方法、设备、系统及存储系统 | |
CN104572501A (zh) | 一种基于访存踪迹局部性分析的多核环境下共享缓存优化方法 | |
CN103455131B (zh) | 一种基于概率的嵌入式系统中能耗最小化的任务调度方法 | |
CN111737053A (zh) | 一种基于指令分析的非易失处理器备份方法及系统 | |
CN115688989A (zh) | 一种基于Stacking集成学习的碳足迹预测方法及终端 | |
CN101853183B (zh) | 一种用于动态管理片上指令便签存储器的方法 | |
CN116893885B (zh) | Java虚拟机调节方法、装置、电子设备及可读存储介质 | |
CN105302551B (zh) | 一种大数据处理系统的正交分解构造与优化的方法及系统 | |
CN111819629A (zh) | 管理存储器供电状态的方法及芯片 | |
CN101901192B (zh) | 一种片上和片外数据对象静态分配方法 | |
Ji et al. | Dynamic and adaptive SPM management for a multi-task environment | |
CN101499971A (zh) | 服务网络性能优化系统 | |
CN107831672A (zh) | 智慧能源系统可视化优化设计运行一体化装置及方法 | |
Yokoyama et al. | A novel decomposition method for MILP and its application to optimal operation of a thermal storage system | |
KR20140010671A (ko) | 데이터를 기반으로 전력을 관리하는 장치 및 방법 | |
Benedict | Application of energy reduction techniques using niched pareto GA of energy analzyer for HPC applications | |
CN112016832A (zh) | 一种电厂数据处理方法、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121121 |