CN101901192A - 一种片上和片外数据对象静态分配方法 - Google Patents
一种片上和片外数据对象静态分配方法 Download PDFInfo
- Publication number
- CN101901192A CN101901192A CN2010102380613A CN201010238061A CN101901192A CN 101901192 A CN101901192 A CN 101901192A CN 2010102380613 A CN2010102380613 A CN 2010102380613A CN 201010238061 A CN201010238061 A CN 201010238061A CN 101901192 A CN101901192 A CN 101901192A
- Authority
- CN
- China
- Prior art keywords
- data
- sheet
- data object
- memory
- distributed
- 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.)
- Granted
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种片上和片外数据对象静态分配方法。现有的方法数据调用效率低,方法复杂。本发明首先确定目标处理器系统的存储结构。其次根据应用程序,用编译器静态分析程序的数据对象,得到待分配数据对象和其占用空间的大小。然后设置仿真器对应于片上内存和片外内存的参数,开启仿真器性能统计工具,准备进行程序的数据存储访问性能的仿真。最后进行数据对象分配,包括将全部数据对象分配到片外内存,统计每个待分配数据对象的字失配次数和待分配数据对象降序排列。本发明减少程序消耗在数据存储访问时间和降低数据存储访问能耗,从而提升嵌入式系统的整体性能。
Description
技术领域
本发明属于嵌入式系统存储优化技术领域,涉及一种片上和片外数据对象静态分配方法。
背景技术
长久以来,在以处理器为中心的可编程处理系统中,片上存储器系统是决定整体性能的关键因素之一。由于制造工艺和电路逻辑结构的差异,处理器执行部件的速度一直高于存储器读写速度,并且随着半导体工艺技术的发展,这一速度差距造成的性能差异在逐步加大。在处理器系统工作时,执行速度较高的处理器执行部件需要从速度较慢的存储部件存取数据或者指令,两者速度的差异令处理器核花费大量时间在等待指令或者数据的存取工作上,从而影响了整个系统的处理性能。
解决处理器与外存速度失配的一个重要技术就是存储系统采用分层设计,在片上集成一个小的、但速度更快的存储器来提高系统存储访问性能。在通用处理系统的设计中,片上存储器一般采用Cache,利用程序和数据访问的时间和空间本地性来提高系统存储性能。在嵌入式处理系统设计中,片上存储器还可以采用SPM(Scratch-Pad Memory)。与Cache相比,由于无标志(tag)比较电路,采用SPM实现相同容量的片上内存需要的面积更少,因而在同样面积条件下可以集成更大容量的片上存储器;由于SPM的电路设计比Cache简单,访问通过寻址实现,SPM访问的能耗也比Cache小。SPM和Cache比较不利的地方在于,SPM地址对程序是可见的,它是软件可编程片上内存,需要程序显示指定SPM访问;而Cache对程序是不可见的,它是由硬件自动完成Cache访问;因此Cache的使用更加方便。
基于Cache的片上存储结构在通用系统中获得很大成功,但在嵌入式系统中并不一定是最佳方案,原因在于:1)采用Cache结构,无法准确的估计每段代码的精确执行时间,设计者只知道每段代码的最坏处理时间,这个时间与实际的执行时间可能相差很大,给设计添加难度;2)嵌入式系统一般是针对具体应用开发,开发过程中软件可以进行专门的存储优化,开发完成后不需要更改,采用SPM作为片上存储器性能可能更好。因此在嵌入式系统设计中采用SPM作为片上内存越来越普遍。
现有的软件数据存储优化研究主要集中在如何增加Cache命令率,或者如何增加SPM访问次数,缺乏对采用Cache和SPM混合片上内存结构的数据内存访问优化研究。
发明内容
本发明的目的是针对现有技术的不足,提供了一种片上和片外数据对象静态分配方法。
本发明方法的具体步骤如下:
1)确定目标处理器系统的存储结构。
根据硬件系统结构,确定处理器系统的片上内存参数,包括容量大小、访问延迟和组织方式,确定处理器系统的片外内存参数,包括容量大小、访问延迟;
所述的片上内存包括高速缓存(Cache)和便笺式存贮器(SPM);
所述的组织方式是指Cache的写策略、关联方式、SPM的设计结构。
2)确定应用程序的数据对象。
根据应用程序,用编译器静态分析程序的数据对象,得到待分配数据对象和其占用空间的大小。
所述的待分配数据对象包括全局数据对象和堆栈数据对象两类,其中占用空间小于SPM容量的待分配数据对象为初始待分配数据对象。
3)设置仿真器参数。
设置仿真器对应于片上内存和片外内存的参数,开启仿真器性能统计工具,准备进行程序的数据存储访问性能的仿真。
4)进行数据对象的SPM分配。
在完成上述步骤后,可以通过实际仿真确定数据对象的片上和片外的分配,具体步骤如下:
A、将全部数据对象分配到片外内存,通过Cache进行访问;
B、利用仿真器仿真应用程序,统计每个待分配数据对象的Cache字失配次数(CMPW:Cache Miss Per Word),字失配次数=数据对象总Cache失配次数/数据对象大小(以字为单位);
C、按照CMPW值将待分配数据对象降序排列,在此队列中依降序顺序选择第一个满足其容量小于或等于SPM剩余容量的数据对象,将该数据对象分配到片上SPM;若在此队列中所有的待分配数据对象容量均大于SPM剩余容量的数据对象,则结束分配;
D、重复步骤B和步骤C,直到SPM剩余空间为0,结束分配。
本发明方法的设计构思为:划分到片外的数据对象通过Cache访问,划分到片上的数据对象常驻SPM。其主要功能是通过对目标嵌入式系统的软硬件结构进行分析,得到目标硬件系统的内存组织方式和目标软件的数据对象信息,然后通过仿真器仿真目标软件在目标硬件系统上的运行,统计各个数据对象的字失配次数,最后根据数据对象的字失配次数完成数据片上和片外的划分。
本发明通过将合适的数据对象分配到片上SPM,达到增加整个数据存储访问的片上总命中率,减少程序消耗在数据存储访问时间和降低数据存储访问能耗的目的,从而提升嵌入式系统的整体性能。该方法优点在于:
(1)高效性。本发明有利于减少程序运行时数据存储访问的时间;
(2)低能耗。本发明有利于减少程序运行时数据存储访问的能耗。
附图说明
图1是本发明适用的处理器系统结构图;
图2是本发明方法的流程图;
图3是本发明数据对象在片上和片外分配流程图。
具体实施方式
以下结合附图对本发明作进一步说明。
如图1所示,本发明适用的处理器系统结构图包括片内的处理器核、SPM、高速缓存、内存接口和片外内存,片外内存可选用SDRAM。系统运行时,处理器核首先在片上内存取指令或数据,如果在片上内存没有命中时,然后通过内存接口访问片外内存。
如图2所示,本发明方法的具体步骤如下:
1)确定目标处理器系统的存储结构。
由于数据对象的片上和片外分配结果是硬件具体的,即该分配依赖于目标处理器系统的片上存储结构,因此需要分析目标处理器系统的片上存储结构。
根据硬件系统结构,确定处理器系统的片上内存参数,包括容量大小、访问延迟和组织方式,确定处理器系统的片外内存参数,包括容量大小、访问延迟;片上内存包括Cache和SPM;组织方式是指Cache的写策略、关联方式、SPM的设计结构。
2)确定应用程序的数据对象。
由于数据对象的片上和片外分配结果是由具体软件决定的,即该分配结果依赖于具体的软件程序,因此需要分析程序的数据对象信息。
根据应用程序,用编译器静态分析程序的数据对象,得到待分配数据对象和其占用空间的大小。
待分配数据对象包括全局数据对象和堆栈数据对象两类,其中占用空间小于SPM容量的待分配数据对象为初始待分配数据对象。
3)设置仿真器参数。
编译器只能分析数据对象的静态信息,而数据对象的Cache字失配次数指标是动态信息,它依赖于具体的硬件、软件及输入数据集,只能通过仿真器动态剖析才能得到精确的结果。因此必须设置仿真器对应于片上内存和片外内存的参数,然后开启仿真器性能统计工具,准备进行程序的数据存储访问性能的仿真。
4)进行数据对象的SPM分配。
在完成上述步骤后,可以通过实际仿真确定数据对象的片上和片外的分配,如图3所示,其具体步骤如下:
Step 1:将全部数据对象分配到片外内存,通过Cache进行访问,此时SPM上未分配任何数据。
Step 2:利用仿真器仿真应用程序,统计每个待分配数据对象的Cache字失配次数(CMPW:Cache Miss Per Word),字失配次数=数据对象总Cache失配次数/数据对象大小(以字为单位);
Step 3:按照CMPW值将待分配数据对象降序排列,在此队列中依降序顺序选择第一个满足其容量小于或等于SPM剩余容量的数据对象,将该数据对象分配到片上SPM;若在此队列中所有的待分配数据对象容量均大于SPM剩余容量的数据对象,则结束分配。对于堆栈数据对象分配到片上SPM,本发明采用的是双堆栈指针的实现方式,对于全局数据对象分配到片上SPM,只需要修改其地址为SPM地址。
Step 4:重复上面Step 2和Step 3,直到SPM剩余空间为0,结束分配。的。
Claims (1)
1.一种片上和片外数据对象静态分配方法,其特征在于该方法包括如下步骤:
1)确定目标处理器系统的存储结构;
根据硬件系统结构,确定处理器系统的片上内存参数,片上内存参数包括容量大小、访问延迟和组织方式;确定处理器系统的片外内存参数,片外内存参数包括容量大小、访问延迟;
所述的片上内存包括高速缓存和便笺式存贮器;
所述的组织方式是指高速缓存的写策略、关联方式、便笺式存贮器的设计结构;
2)确定应用程序的数据对象;
根据应用程序,用编译器静态分析程序的数据对象,得到待分配数据对象和待分配数据对象占用空间的大小;
所述的待分配数据对象包括全局数据对象和堆栈数据对象两类,其中占用空间小于SPM容量的待分配数据对象为初始待分配数据对象;
3)设置仿真器参数;
设置仿真器对应于片上内存和片外内存的参数,开启仿真器性能统计工具,准备进行程序的数据存储访问性能的仿真;
4)进行数据对象分配;具体步骤如下:
A、将全部数据对象分配到片外内存,通过高速缓存进行访问;
B、利用仿真器仿真应用程序,统计每个待分配数据对象的高速缓存字失配次数,字失配次数=数据对象总高速缓存失配次数/数据对象大小;
C、按照字失配次数值将待分配数据对象降序排列,在此队列中依降序顺序选择第一个满足容量小于或等于便笺式存贮器剩余容量的数据对象,将该数据对象分配到片上便笺式存贮器;若在此队列中所有的待分配数据对象容量均大于便笺式存贮器剩余容量的数据对象,则结束分配;
D、重复步骤B和步骤C,直到便笺式存贮器剩余空间为0,结束分配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102380613A CN101901192B (zh) | 2010-07-27 | 2010-07-27 | 一种片上和片外数据对象静态分配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102380613A CN101901192B (zh) | 2010-07-27 | 2010-07-27 | 一种片上和片外数据对象静态分配方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101901192A true CN101901192A (zh) | 2010-12-01 |
CN101901192B CN101901192B (zh) | 2012-01-11 |
Family
ID=43226739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102380613A Expired - Fee Related CN101901192B (zh) | 2010-07-27 | 2010-07-27 | 一种片上和片外数据对象静态分配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101901192B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012069010A1 (zh) * | 2010-11-25 | 2012-05-31 | 意法·爱立信半导体(北京)有限公司 | 静态存储的分配方法和装置 |
CN103218304A (zh) * | 2013-04-03 | 2013-07-24 | 杭州电子科技大学 | 一种嵌入式内存数据片上片外分配方法 |
CN103678170A (zh) * | 2013-11-26 | 2014-03-26 | 华东师范大学 | 一种便签式存储器分配对象优先级生成方法 |
CN103793339A (zh) * | 2014-01-13 | 2014-05-14 | 杭州电子科技大学 | 基于内存访问堆栈距离的数据Cache性能探索方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246460A (zh) * | 2008-03-10 | 2008-08-20 | 华为技术有限公司 | 缓存数据写入系统及方法和缓存数据读取系统及方法 |
CN101739358A (zh) * | 2009-12-21 | 2010-06-16 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的方法 |
CN101763316A (zh) * | 2009-12-25 | 2010-06-30 | 东南大学 | 基于虚存机制的指令片上异构存储资源动态分配的方法 |
-
2010
- 2010-07-27 CN CN2010102380613A patent/CN101901192B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246460A (zh) * | 2008-03-10 | 2008-08-20 | 华为技术有限公司 | 缓存数据写入系统及方法和缓存数据读取系统及方法 |
CN101739358A (zh) * | 2009-12-21 | 2010-06-16 | 东南大学 | 利用虚存机制对片上异构存储资源动态分配的方法 |
CN101763316A (zh) * | 2009-12-25 | 2010-06-30 | 东南大学 | 基于虚存机制的指令片上异构存储资源动态分配的方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012069010A1 (zh) * | 2010-11-25 | 2012-05-31 | 意法·爱立信半导体(北京)有限公司 | 静态存储的分配方法和装置 |
CN103218304A (zh) * | 2013-04-03 | 2013-07-24 | 杭州电子科技大学 | 一种嵌入式内存数据片上片外分配方法 |
CN103218304B (zh) * | 2013-04-03 | 2016-07-20 | 杭州电子科技大学 | 一种嵌入式内存数据片上片外分配方法 |
CN103678170A (zh) * | 2013-11-26 | 2014-03-26 | 华东师范大学 | 一种便签式存储器分配对象优先级生成方法 |
CN103793339A (zh) * | 2014-01-13 | 2014-05-14 | 杭州电子科技大学 | 基于内存访问堆栈距离的数据Cache性能探索方法 |
CN103793339B (zh) * | 2014-01-13 | 2016-08-24 | 杭州电子科技大学 | 基于内存访问堆栈距离的数据Cache性能探索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101901192B (zh) | 2012-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103607459B (zh) | 一种云计算平台IaaS层的动态资源监测及调度方法 | |
CN104335175B (zh) | 基于系统性能度量在系统节点之间标识和迁移线程的方法和系统 | |
CN102163072B (zh) | 用于节能的基于软件的线程重映射 | |
CN102981807B (zh) | 一种基于cuda并行环境的gpu程序优化方法 | |
CN104346285A (zh) | 内存访问处理方法、装置及系统 | |
CN101989236B (zh) | 一种指令缓存锁实现方法 | |
CN102708009B (zh) | 一种基于cuda实现多任务共享gpu的方法 | |
CN104102543A (zh) | 一种云计算环境中负载调整的方法和装置 | |
CN102841815B (zh) | 一种numa体系结构自适应的进程分类绑定方法 | |
CN107291539B (zh) | 基于资源重要程度的集群程序调度方法 | |
CN101901192B (zh) | 一种片上和片外数据对象静态分配方法 | |
CN102331977A (zh) | 内存控制器、处理器系统及内存访问控制方法 | |
CN104699424A (zh) | 一种基于页面热度的异构内存管理方法 | |
CN104346284A (zh) | 一种内存管理方法及内存管理设备 | |
CN105095255A (zh) | 一种数据索引创建方法及装置 | |
CN101916230A (zh) | 基于划分感知和线程感知的末级高速缓存的性能优化方法 | |
CN102193830A (zh) | 面向众核环境的分治映射/归约并行编程模型 | |
CN103559148A (zh) | 面向多任务嵌入式系统的片上便笺式存储器管理方法 | |
Padoin et al. | Saving energy by exploiting residual imbalances on iterative applications | |
CN102073743A (zh) | 一种大容量仿真结果文件存储与访问方法 | |
Li et al. | Energy-aware scheduling on multiprocessor platforms | |
CN107851041A (zh) | 多处理器/多核心计算系统的动态调优 | |
Liu et al. | MLCache: A space-efficient cache scheme based on reuse distance and machine learning for NVMe SSDs | |
CN106528453B (zh) | 基于复合尺度页的页表分区管理装置和方法 | |
CN103020077A (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 |
Granted publication date: 20120111 Termination date: 20140727 |
|
EXPY | Termination of patent right or utility model |