CN103218304B - 一种嵌入式内存数据片上片外分配方法 - Google Patents
一种嵌入式内存数据片上片外分配方法 Download PDFInfo
- Publication number
- CN103218304B CN103218304B CN201310114684.3A CN201310114684A CN103218304B CN 103218304 B CN103218304 B CN 103218304B CN 201310114684 A CN201310114684 A CN 201310114684A CN 103218304 B CN103218304 B CN 103218304B
- Authority
- CN
- China
- Prior art keywords
- data
- data object
- tcg
- cache
- memory
- 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
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000009826 distribution Methods 0.000 title claims abstract description 4
- 230000002123 temporal effect Effects 0.000 claims abstract description 14
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 238000003860 storage Methods 0.000 abstract description 5
- 230000009897 systematic effect Effects 0.000 abstract 1
- 238000005303 weighing Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及一种嵌入式内存数据片上片外分配方法。片上内存作为嵌入式系统的关键部分,直接影响着系统的整体性能。本发明首先提出了TCG模型作为衡量数据对象引起Cache缺失的新标准,综合考虑了绝大部分关键因素,比如数据对象大小、生命周期、访问次数、时间局部性和空间局部性等。其次提出SPM/Cache数据分配方法将最容易发生冲突(TCG值大)的数据对象分配到SPM。然后提出固定Cache数据布局方法将TCG值大的数据对象映射到不同的Cache组来避免冲突。本发明方法使得片上内存硬件和其上运行的软件更加匹配,减少程序访问存储系统的时间,从而提高系统整体性能。
Description
技术领域
本发明属于嵌入式内存技术领域。尤其涉及一种嵌入式内存数据片上片外分配方法。本发明能取得针对具体应用在具体内存配置上的性能最优,尤其适用于多媒体应用程序在便笺式存贮器/高速缓存混合内存结构上的性能优化。
背景技术
由于制造工艺和电路逻辑结构的差异,处理器执行部件的速度一直高于存储器读写速度,并且随着半导体工艺技术的发展,这一速度差距造成的性能差异在逐步加大。解决处理器与外存速度失配的一个重要技术就是存储系统采用分层设计,在片上集成一个小的、但速度更快的存储器来提高系统存储访问性能。
片上内存结构作为嵌入式系统的重要部分,直接影响着系统的性能、功耗、成本等关键参数。片上内存结构有高速缓存Cache和便笺式存贮器SPM(Scratch-PadMemory)两种类型。SPM相比Cache存储每位花费更少面积和功耗,因而嵌入式系统片上内存结构采取SPM/Cache的混合结构渐渐成为一种趋势。然而,SPM的容量很小和专用性,使得如何有效使用片上内存资源成为嵌入式系统设计的关键问题。
现有的软件数据存储优化研究主要集中在如何增加Cache命令率,或者如何增加SPM访问次数,缺乏对采用Cache和SPM混合片上内存结构的数据内存访问优化研究。
数据片上片外分配技术是一种嵌入式系统存储优化技术,利用该技术得到片上片外分配策略决定哪些数据通过SPM(称为片上)访问,哪些数据通过Cache(称为片外)访问。数据片上片外分配技术优化了数据在SPM和Cache之间的分配,可以取得对具体应用的性能最优,已经成为了嵌入式系统存储优化研究的热点。
发明内容
本发明的目的是针对现有技术的不足,提供一种嵌入式内存数据片上片外分配方法,能够实现具体应用程序在具体内存配置上的性能最优。
为了解决上述技术问题,本发明采用的技术方案包括如下步骤:
步骤1.利用编译器和仿真器工具提取具体应用程序的信息;
步骤2.对这些信息建立TCG模型;
步骤3.提出数据分配方法将TCG值大的数据对象分配到SPM;
步骤4.提出数据布局方法将TCG值大的数据对象映射到不同的Cache组以避免冲突。
步骤1所述的具体应用程序的信息,包括数据对象的大小、生命周期、访问次数、时间局部性和空间局部性;所述的时间局部性是由时间关系图TRG(TemporalRelationshipGraph)来表示;空间局部性是由最大连续访问次数来表示。
步骤2所述的TCG模型,其内容包括步骤1提取的数据对象的大小、生命周期、访问次数、时间局部性和空间局部性因素,其模型公式如下:
TCG=(访问次数*生命周期*TRG值)/(最大连续访问次数*对象大小)。
步骤3所述的数据分配方法,具体包括如下步骤:
3-1.将全部数据对象按照TCG值降序排列,并初始化,然后分配到片外内存,作为待分配数据对象;
3-2.在所有待分配数据对象中,依降序顺序选择第一个满足容量小于或等于便笺式存贮器剩余容量的数据对象,将该数据对象分配到片上便笺式存贮器;
3-3.重复步骤3-2,直到所有待分配数据对象容量均大于便笺式存贮器剩余容量,则结束。
步骤4所述的数据布局方法包含如下步骤:
4-1.计算剩余待分配数据对象中数据对象需要的高速缓存组数,计算公式如下:
组数=数据对象大小/高速缓存组大小;
4-2.将高速缓存当前组号分配给数据对象,并将缓存当前组号加一,同时数据对象所需组数减一;
4-3.重复步骤4-2,直到数据对象所需组数为零;
4-4.重复步骤4-1、4-2和4-3,直到剩余待分配数据对象全部分配完成。
本发明的有益效果如下:
本发明方法利用TCG模型对应用程序信息进行建模,综合考虑了SPM的合理利用与片外内存数据对象的合理布局,优化了SPM和Cache之间的数据分配,减少了程序消耗在数据存储访问时间和降低数据存储访问能耗,实现了具体应用程序在具体内存配置上的性能最优。
附图说明
图1为本发明方法的流程图;
图2为本发明方法提出的TCG模型结构图;
图3为本发明方法中的SPM/Cache数据分配方法流程图;
图4为本发明方法中的固定Cache数据布局方法流程图。
具体实施方式
下面结合具体实施方式和附图对本发明进行详细描述。
如图1所示,本实施方式中首先利用编译器和仿真器工具提取具体应用程序的信息:①选择GCC-2.7.1-MIPS编译器的-O3优化选项静态编译应用程序得到MIPS汇编代码;②选择MIPS仿真器对片上内存进行配置,包括容量大小、访问延迟和组织方式(替换策略、写策略、写缺失策略和关联方式)等,开启性能统计工具,进行程序的数据存储访问性能的仿真。其次对这些信息建立TCG模型;然后利用SPM/Cache数据分配方法将TCG值大的数据对象分配到SPM;最后利用固定Cache数据布局方法将TCG值大的数据对象映射到不同的Cache组以避免冲突。
所述的具体应用程序的信息,包括数据对象的大小、生命周期、访问次数、时间局部性和空间局部性;所述的时间局部性是由时间关系图TRG(TemporalRelationshipGraph)来表示;空间局部性是由最大连续访问次数来表示。
如图2所示,所述的TCG模型,其内容包括步骤1提取的数据对象的大小、生命周期、访问次数、时间局部性和空间局部性因素,其模型公式如下:
TCG=(访问次数*生命周期*TRG值)/(最大连续访问次数*对象大小)。
其中,时间关系图TRG(TemporalRelationshipGraph)和TRG值可参看N.Gloy,T.Blockwell,M.D.Zorn论文题目Procedureplacementusingtemporalorderinginformation后参照文本。
如图3所示,本实施方式中的SPM/Cache数据分配的目的是将最容易发生冲突的数据对象分配到SPM中,包括如下步骤:
Step1、将全部数据对象按照TCG值降序排列,并初始化,然后分配到片外内存,作为待分配数据对象;
Step2、在所有待分配数据对象中,依降序顺序选择第一个满足容量小于或等于便笺式存贮器剩余容量的数据对象,将该数据对象分配到片上便笺式存贮器SPM;
Step3、重复步骤Step2,直到所有待分配数据对象容量均大于便笺式存贮器剩余容量,则结束。
如图4所示,本实施方式中的固定Cache数据布局具有两个目标:①减少Cache缺失的次数;②减少片外内存空间(即数据布局完后减少片外内存中的洞),包括如下步骤:
Step4、计算剩余的i个待分配数据对象中每个数据对象需要的高速缓存组数j,计算公式如下:
组数j=数据对象大小/高速缓存组大小;
Step5、将高速缓存当前组号setNO分配给数据对象,并将缓存当前组号setNO加一,同时数据对象所需组数j减一;
Step6、重复步骤4-5,直到数据对象所需组数j为零;
Step7、重复步骤4-4、4-5和4-6,直到剩余的i个待分配数据对象全部分配完成。
Claims (1)
1.一种嵌入式内存数据片上片外分配方法,其特征在于包括如下步骤:
步骤1.利用编译器和仿真器工具提取具体应用程序的信息;
步骤2.对这些信息建立TCG模型;
步骤3.提出数据分配方法将TCG值大的数据对象分配到SPM;
步骤4.提出数据布局方法将TCG值大的数据对象映射到不同的Cache组以避免冲突;
步骤1所述的具体应用程序的信息,包括数据对象的大小、生命周期、访问次数、时间局部性和空间局部性;所述的时间局部性是由时间关系图TRG来表示;空间局部性是由最大连续访问次数来表示;
步骤2所述的TCG模型,其内容包括步骤1提取的数据对象的大小、生命周期、访问次数、时间局部性和空间局部性因素,其模型公式如下:
TCG=(访问次数*生命周期*TRG值)/(最大连续访问次数*对象大小);
步骤3所述的数据分配方法,具体包括如下步骤:
3-1.将全部数据对象按照TCG值降序排列,并初始化,然后分配到片外内存,作为待分配数据对象;
3-2.在所有待分配数据对象中,依降序顺序选择第一个满足容量小于或等于便笺式存贮器剩余容量的数据对象,将该数据对象分配到片上便笺式存贮器;
3-3.重复步骤3-2,直到所有待分配数据对象容量均大于便笺式存贮器剩余容量,则结束;
步骤4所述的数据布局方法包含如下步骤:
4-1.计算剩余待分配数据对象中数据对象需要的高速缓存组数,计算公式如下:
组数=数据对象大小/高速缓存组大小;
4-2.将高速缓存当前组号分配给数据对象,并将缓存当前组号加一,同时数据对象所需组数减一;
4-3.重复步骤4-2,直到数据对象所需组数为零;
4-4.重复步骤4-1、4-2和4-3,直到剩余待分配数据对象全部分配完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310114684.3A CN103218304B (zh) | 2013-04-03 | 2013-04-03 | 一种嵌入式内存数据片上片外分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310114684.3A CN103218304B (zh) | 2013-04-03 | 2013-04-03 | 一种嵌入式内存数据片上片外分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218304A CN103218304A (zh) | 2013-07-24 |
CN103218304B true CN103218304B (zh) | 2016-07-20 |
Family
ID=48816120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310114684.3A Expired - Fee Related CN103218304B (zh) | 2013-04-03 | 2013-04-03 | 一种嵌入式内存数据片上片外分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218304B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559148B (zh) * | 2013-11-15 | 2016-03-23 | 山东大学 | 面向多任务嵌入式系统的片上便笺式存储器管理方法 |
CN103793339B (zh) * | 2014-01-13 | 2016-08-24 | 杭州电子科技大学 | 基于内存访问堆栈距离的数据Cache性能探索方法 |
CN105204940A (zh) * | 2014-05-28 | 2015-12-30 | 中兴通讯股份有限公司 | 一种内存配置方法和装置 |
CN106940682B (zh) * | 2017-03-07 | 2020-06-09 | 武汉科技大学 | 一种基于片上可编程存储器的嵌入式系统优化方法 |
WO2021232183A1 (zh) * | 2020-05-18 | 2021-11-25 | 华为技术有限公司 | 一种内存排布优化方法以及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763316A (zh) * | 2009-12-25 | 2010-06-30 | 东南大学 | 基于虚存机制的指令片上异构存储资源动态分配的方法 |
CN101901192A (zh) * | 2010-07-27 | 2010-12-01 | 杭州电子科技大学 | 一种片上和片外数据对象静态分配方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405683B2 (en) * | 2007-11-06 | 2016-08-02 | Samsung Electronics Co., Ltd. | Processor and memory control method for allocating instructions to a cache and a scratch pad memory |
-
2013
- 2013-04-03 CN CN201310114684.3A patent/CN103218304B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101763316A (zh) * | 2009-12-25 | 2010-06-30 | 东南大学 | 基于虚存机制的指令片上异构存储资源动态分配的方法 |
CN101901192A (zh) * | 2010-07-27 | 2010-12-01 | 杭州电子科技大学 | 一种片上和片外数据对象静态分配方法 |
Non-Patent Citations (1)
Title |
---|
基于ScratchPad Memory的低功耗技术研究;袁名举;《中国优秀硕士学位论文全文数据库 信息科技辑》;20110315;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103218304A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103218304B (zh) | 一种嵌入式内存数据片上片外分配方法 | |
Lebeck et al. | Power aware page allocation | |
Hu et al. | Data allocation optimization for hybrid scratch pad memory with SRAM and nonvolatile memory | |
Mittal | A survey of architectural techniques for DRAM power management | |
CN101989183A (zh) | 混合主存储器实现节能存储的方法 | |
CN102073596B (zh) | 针对指令的可重构片上统一存储器管理方法 | |
CN101763316A (zh) | 基于虚存机制的指令片上异构存储资源动态分配的方法 | |
Zhong et al. | Energy-efficient in-memory paging for smartphones | |
CN106201700A (zh) | 一种虚拟机在线迁移的调度方法 | |
Gai et al. | Smart energy-aware data allocation for heterogeneous memory | |
Wang et al. | Designing scratchpad memory architecture with emerging STT-RAM memory technologies | |
Liu et al. | MLCache: A space-efficient cache scheme based on reuse distance and machine learning for NVMe SSDs | |
Kgil et al. | PicoServer: Using 3D stacking technology to build energy efficient servers | |
Xie et al. | Page policy control with memory partitioning for DRAM performance and power efficiency | |
Liu et al. | A space-efficient fair cache scheme based on machine learning for NVMe SSDs | |
Niu et al. | WIRD: an efficiency migration scheme in hybrid DRAM and PCM main memory for image processing applications | |
CN101290592B (zh) | 一种mpsoc上多道程序共享spm的实现方法 | |
Huang et al. | A garbage collection aware stripping method for solid-state drives | |
CN101901192B (zh) | 一种片上和片外数据对象静态分配方法 | |
Hu et al. | Optimizing data allocation and memory configuration for non-volatile memory based hybrid SPM on embedded CMPs | |
Garibotti et al. | Exploiting memory allocations in clusterised many‐core architectures | |
CN103176799B (zh) | 温度敏感的混合存储架构及其数据分配策略方法 | |
AbouGhazaleh et al. | Near-memory caching for improved energy consumption | |
Ramesh et al. | Energy management in embedded systems: Towards a taxonomy | |
Pan et al. | A fast system-level design methodology for heterogeneous multi-core processors using emerging technologies |
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 |
Granted publication date: 20160720 Termination date: 20170403 |
|
CF01 | Termination of patent right due to non-payment of annual fee |