CN101739358A - 利用虚存机制对片上异构存储资源动态分配的方法 - Google Patents
利用虚存机制对片上异构存储资源动态分配的方法 Download PDFInfo
- Publication number
- CN101739358A CN101739358A CN200910264393A CN200910264393A CN101739358A CN 101739358 A CN101739358 A CN 101739358A CN 200910264393 A CN200910264393 A CN 200910264393A CN 200910264393 A CN200910264393 A CN 200910264393A CN 101739358 A CN101739358 A CN 101739358A
- Authority
- CN
- China
- Prior art keywords
- data
- spm
- page
- time slot
- cache
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种利用虚存机制对片上异构存储资源动态分配的方法,采用时隙分析方法,对高频率引起数据Cache冲突的数据段(包括全局数据、堆栈数据、堆数据以及常量池数据)的时间和空间分布进行分析,继而由该分布得到数据Cache的时隙冲突图,并对其进行数学抽象。根据能耗目标函数、性能目标函数,利用整数非线性规划的方法选出需要优化的程序部分,并利用时钟中断,将其动态重映射到片上数据SPM(Scratch-padMemory,便签存储器)存储器中,由此可以避免因数据Cache冲突引起的额外访存。本发明方法对片上异构存储的充分利用,可以降低系统能耗,提升系统性能。
Description
技术领域
本发明涉及嵌入式片上存储器领域,特别涉及一种利用虚存机制对片上异构存储资源(Cache和SPM的数据部分)动态分配的方法。
背景技术
随着微电子技术的发展,以SoC(System-on-a-Chip)为基础的嵌入式计算平台日益成熟。然而,由于处理器速度与外部存储器速度的差距不断增大,SoC存储子系统已经成为系统性能、功耗和成本的瓶颈。因此如何优化存储子系统的架构及管理策略,一直是嵌入式研究的热点。
作为传统片上存储器,Cache由硬件管理,大部分情况下对软件透明,能自动装载频繁访问的指令和数据到片上存储器中。然而,Cache的高功耗、占用面积大、程序执行时间不可预知等不足一直限制其在嵌入式系统中的广泛运用。尤其是Cache的组关联特性,可能导致被映射到同一Cache行的不同程序内容,由于访存规律,反复相互替换,从而增大了系统性能与能耗的开销,即出现Cache抖动。与Cache相比,SPM(Scratch-Pad Memory,便签存储器)是一种高速片上存储器,通常由SRAM实现,是现代嵌入式系统中一个非常重要的系统框架设计考虑因素。SPM处于处理器可直接访问的地址空间之内,由于传统的SPM控制器不包含任何辅助管理数据的逻辑电路,SPM中的所有内容必须经由软件显式的管理,相对于对程序员透明的Cache,增加了程序管理的复杂性。由于没有管理逻辑电路带来的额外代价,相较于传统Cache,SPM硬件实现更为简单、单次访问功耗更低、占用芯片面积更小而且访问时间可预知。综上,Cache和SPM各具优势且存在互补性,因此对Cache和SPM共存的异构存储器存储资源进行研究,可以充分利用两者优势,从而最大限度降低系统能耗、提升系统性能。
一些针对嵌入式片上存储器的研究的主要分析单纯配置Cache或单纯配置SPM的架构,不能很好的利用两者互补的特性。直接将仅针对SPM的优化算法或仅针对Cache的优化算法运用到两者共存的架构中,不能达到整体性能最优化,在一种存储体上取得的优化收益可能被另一种存储器的开销所抵消,甚至引入更多系统性能与能耗的额外开销。例如针对SPM的优化算法将某段主存的内容搬运到SPM,从而得到了性能与能耗的收益。然而搬运代码本身可能对指令Cache造成污染、引起Cache优化算法的失效,从而造成额外的Cache缺失,抵消SPM的优化收益。
Cache缺失时需要实际访外存操作并将新的内容换入Cache行,开销较大,这被称为Cache缺失的惩罚。由于Cache的组关联特性,被映射到同一Cache行内容可能反复相互替换,带来大量的访存操作,从而导致系统性能急剧降低,系统能耗急剧增加,这就是Cache的冲突。通过增大Cache容量、增大组关联数等方法,可以减小Cache冲突,但是这样又会引入新的芯片面积并提升单次Cache读写时间及能耗。目前有研究指出Cache冲突是造成系统性能和能耗瓶颈的重要原因,因此他们将容易引起Cache冲突的程序段放入SPM,以此得到性能和能耗的收益。将容易引起Cache冲突的页选入SPM中,不仅可以通过降低Cache冲突而降低系统能耗,提升系统性能,还能由单次访问SPM与Cache的能耗差获得更多收益。但是这些研究都是基于静态的设计,即在程序执行中SPM中的内容不发生改变,没有充分的利用Cache冲突在在时间维上的局部性,降低了SPM的利用率。并且,这些设计对SPM的管理依赖于对源程序跳转指令的修改,是一种侵入式的分析,因此仅能针对指令部分进行分析,而不能分析更容易引起Cache抖动的程序数据部分。
由于对SPM内容的更改需要软件显示的进行,因此一般对SPM进行动态管理的研究都是通过“打桩”的形式,即在需要优化的程序核心循环前后,手工插入代码搬运指令,从而完成对程序内容的换入换出。在程序映像中插入新的指令,需要依赖对源码的分析,并且新的指令很可能引起共存架构中Cache行为的变化,例如产生更多的冲突。
目前针对Cache和SPM共存架构中数据部分的研究,一般都是仅针对程序的全局数据部分进行研究。对于在程序在执行过程中,动态分配与使用的堆数据和栈数据,基于源码分析的静态分析方法,如程序扩展流图(Control Flow Graph)、数组划分等,难以对其进行优化。因此目前针对堆优化和栈优化的方案中,优化效率较低,且方案不适用于全局数据和常量池数据。因此,针对数据部分的优化,一般是分别对全局数据、常量池、堆和栈进行分别优化的。
到目前为止,还未有相关研究涉及将程序数据部分,包括全局数据、常量池、堆和栈进行统一分析,并动态的将其映射到SPM中。
发明内容
本发明的目的在于克服现有片上存储子系统的不足,提供一种利用虚存机制对片上异构存储资源动态分配的方法,采用容量较小的数据SPM存储器在程序执行过程中降低传统数据Cache冲突,对全局数据、常量池、堆和栈进行统一优化,从而降低由冲突带来的额外访存,最终提高微处理器运行的速度并降低系统能耗。
为实现上述目的,本发明采取的技术方案是:一种利用虚存机制对片上异构存储资源动态分配的方法,其特征在于:通过对应用程序执行过程中处理器内核对数据Cache访问的跟踪,得到包括全局数据、堆栈数据、堆数据以及常量池数据在内的Cache冲突的数据段缺失的时间和空间分布,由该空间分布得到数据Cache的时隙冲突图并对其进行数学抽像,根据能耗目标函数、性能目标函数分别利用整数非线性规划的方法选出系统总能耗最优时每个数据页的状态,得到每个时隙中最有优化价值数据页的页号,利用迭代求解方法,对时隙大小进行调整,根据每个时隙中需要优化的数据页和调整后的时隙大小信息,在程序执行中通过时钟中断,在每个均分的时隙中通过数据SPM控制器实现包括页表项入口的修改、DMA(直接内存访问控制器)的配置,将引起数据Cache冲突的地址空间动态重映射到数据SPM存储器中,消除数据Cache冲突带来的额外访存;
得到数据Cache的时隙冲突图后,利用程序执行时表现出来的时间局部性,将一段时间内最频繁引起数据Cache冲突的地址空间重映射到数据SPM存储器中,而在其收益不大时映射回主存。
所说虚存机制是在TLB(旁路转换缓冲)中增加S位,用于标志该页内容在数据SPM存储器中,减少额外Cache比较的能耗开销,同时,修改TLB(旁路转换缓冲)使之支持对512Byte/虚存页以及256Byte/虚存页,从而将频繁引起数据Cache冲突的部分抽离出来,而避免对大量优化价值不大的地址空间做重映射;
所说数据SPM控制器在程序执行过程中动态高效的将程序数据部分换入换出数据SPM存储器,利用片上AHB高速总线的Burst特性,避免对指令Cache以及数据Cache的二次污染。
在数据SPM控制器中可增加了一组专用于记录写回地址、写脏情况以及虚存页大小的数据SPM控制寄存器,其作用是:
1)该组寄存器将负责在某虚存页重映射在数据SPM存储器时记录其对应的主存地址,此地址将在该虚存页被换出便签存储器时作为DMA(直接内存访问控制器)的目的地址;
2)该组寄存器中负责记录写脏情况的位用来表示该页在映射到片上便签存储器后是否发生写操作,如果该页被写脏,需在下一时隙开始前将内容换出至主存,以保持数据一致性,数据SPM控制器根据写脏位决定是否使能DMA(直接内存访问控制器);
3)该组寄存器中负责记录虚存页大小的位将用于配置DMA(直接内存访问控制器)搬运长度。
本发明方法具体可按以下步骤实现:
(1)建立虚存管理的机制
虚存管理机制可以通过修改页表项,形成物理分离、逻辑连续的地址空间,这样就可以实现将部分程序页的地址映射到数据SPM存储器中。相对于传统的动态SPM优化技术,利用虚存完成地址空间映射关系的更改,可以实现对程序源代码和编译后生成的二进制映像的完全非侵入式优化。为了适应对Cache和SPM动态管理的方法,本发明需要对原有的存储硬件进行改进。一是在TLB中增加S位以实现必需的访问控制。使用S位可以使MMU在进行地址翻译的同时确定出实际应该访问的物理地址,并将该地址发给需要访问的片上存储器,即数据Cache或者数据SPM控制器。不使用S位,虚拟地址经过MMU转换后,同时将物理地址发向数据Cache和数据SPM控制器,因此Cache的比较电路和数据SPM控制器的寻址逻辑同时开始工作。增加的S位在地址转换的同时确定将地址发给数据Cache或者数据SPM控制器,可以减少片上寻址的能耗。二是通过修改TLB的译码逻辑,增加对512Byte/虚拟页、256Byte/虚拟页支持。传统的TLB仅支持最小1K Byte/虚拟页的管理,而数据Cache是按行组织的,每行仅32-64Bytes,在程序执行的一段时间内出现数据Cache冲突的地址空间大多小于传统TLB支持的最小虚存页大小,如果对页大小加以改进,则无法充分利用数据SPM存储器的容量。本发明将利用传统页表项入口中的保留位,并修改TLB的Tag存储器和比较电路,实现对256Byte/虚拟页和512Byte/虚拟页的支持。
(2)时隙冲突图的建立
本发明通过分析Cache冲突对共存架构的存储器进行优化,又因为Cache冲突表现出明显的时间局部性,因此本发明创新性的提出“时隙冲突图”概念,从时间和空间上对Cache冲突进行分析。时隙冲突图根据对数据Cache的trace信息,包含全局数据、常量池数据、栈数据和堆数据的所有冲突图,并对其进行数学抽象。冲突图是一种定量描述被映射到同一Cache行中不同程序内容之间替换关系的矢量图。由于本发明采用虚存管理机制对程序数据部分进行管理,程序的划分粒度即为MMU的页大小,Cache冲突将按页进行抽象,并对其进行数学建模以描述各页之间的权重分布,最终由整数非线性规划求得不同时隙中整体能耗收益最优时每个页的状态。这样就得到在每个时隙中最有优化价值的页,这些页在程序执行的过程中会被动态的换入到数据SPM存储器中。
(3)时隙长度的迭代求解
本研究利用时隙对程序进行动态管理。时钟中断可以实现对程序的时隙划分,仅需要在每个时隙开始的时候,重新加载时钟模块计数器,当计数器自减到0时产生时钟中断,处理器内核将接受到中断处理模块发出的中断请求,系统进入IRQ模式,完成对数据SPM存储器内容的换入换出,最终实现对数据SPM存储器的动态管理。
通过时钟中断对程序执行时间标记,需知道某个时隙具体的长度。在建立时隙冲突图时,是等长的划分整个时隙的。但是在对程序进行优化时,由于降低Cache冲突使得性能提升,即程序执行时间变短,使得时隙的长度有了变化。因此,我们需要采用迭代求解的方法,对优化后的时隙长度进行调整。调整后的时隙长度,及(1)中所确定的每个时隙中需要放入数据SPM存储器中的页号,在每次时钟中断的时候,加载到时钟模块时隙寄存器中。
(4)利用数据SPM控制器完成动态管理
在程序执行阶段,当时钟模块到时时,处理器内核将接受到中断处理模块发出的中断请求,系统进入IRQ模式。在异常模式下,可以完成对页表项的修改及数据SPM存储器中内容的换入换出,以适应下一个时隙的程序访存模态。
在时钟中断中,数据SPM存储器内容换入换出操作是通过数据SPM控制器来完成的。进入中断后,数据SPM控制器需要完成:第一,利用时钟模块的时隙寄存器得到当前的时隙,确定当前的时隙配置信息的偏移;第二,通过判断上一时隙中数据SPM存储器中的数据是否写脏,决定是否对当开始DMA换出操作;第三,对本时隙需要写入数据SPM存储器的页进行页表项的更新操作;第四,配置DMA进行换入操作,并清除其写脏寄存器的对应位。
传统的数据SPM控制器设计较为简单,无法实现动态地址映射机制所要求的更为复杂的数据SPM存储器动态分配策略。因此本发明在传统的数据SPM控制器的基础上通过增加一组用于记录写回地址和写脏情况的寄存器,即SPM区域寄存器,将传统的、仅能实现寻址功能的SPM控制器扩展为支持写脏操作、支持不同粒度SPM管理,并能通过主动配置DMA实现其内容动态换入换出的数据SPM控制器。DMA可以在数据SPM控制器的配置下将数据块动态换入换出数据SPM存储器,相较于传统的、通过LDR/STR指令执行数据SPM存储器内容的换入换出,DMA在很大程度上利用了主存SDRAM与片上高速总线AHB的BURST特性,从而降低了传输的成本与中断延时。
本发明的优点及显著效果:利用虚存管理的思想可以解决传统SPM优化技术难以解决的对程序堆栈数据和堆数据的优化,尤其是对堆数据的处理。传统的优化技术多采用将待优化的数据段动态搬运到SPM的办法,然而堆数据是在程序执行过程中由库函数动态分配的,分配的必要条件是必须存在大小合适的连续地址空间。如果此时将某段对数据搬运到SPM,则势必造成地址空间的不连续,从而使程序无法正常执行。采用虚存管理的思想,就可以将实际的物理地址与库函数分配时使用的虚拟地址隔离开。这样,对于库函数而言地址空间在优化前后都是连续的,但对于真实的硬件而言,已经将频繁引起数据Cache冲突的部分堆数据段重映射到数据SPM存储器,从而降低了数据Cache冲突的次数,最终获得了性能和能耗上的收益。同时,利用虚存机制对程序进行管理,可以实现对程序非侵入式的分析和优化,即不需要在用户程序中显示的增加SPM的搬运代码,而在中断处理中通过配置DMA和修改页表来完成对程序内容的换入换出。另外,本发明充分利用程序执行的时间局部性特点,创新提出了时隙冲突图的概念,继而通过动态分配算法将每个时隙内导致Cache冲突的页利用虚存管理的机制重定位到数据SPM存储器,从而获得相较于静态优化更为可观的性能和能耗收益,最终动态的利用了有限的片上SPM资源,降低程序的能耗,提升系统性能。
附图说明
图1为利用虚存机制实现对片上异构存储资源动态管理的系统框图;
图2为数据SPM控制器的寄存器的设计;
图3为时隙冲突的示例图;
图4为利用时隙分析方法对片上存储资源数据进行管理的系统流程图
图5为迭代求解示意图
图6为采用本发明优化方法对系统能耗进行优化的试验结果
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述。
本发明通过对应用程序执行过程中数据Cache访问的跟踪,得到数据Cache缺失的时间和空间分布,继而由该分布得到数据Cache的时隙冲突图,包括全局数据、常量池数据、栈数据和堆数据。冲突图是一种定量描述被映射到同一Cache行中不同程序内容之间替换关系的矢量图。通过对Cache时隙冲突进行数学抽像,利用整数非线性规划的方法可以确定系统总能耗最优时每个数据页的状态,从而得到每个时隙中最有优化价值数据页的页号。之后,根据迭代求解方法,对时隙大小进行调整。根据每个时隙中需要优化的数据页和调整后的时隙大小信息,在程序执行中利用时钟中断,通过数据SPM控制器实现页表项入口的修改、DMA的配置等步骤,从而将引起数据Cache冲突的地址空间动态重映射到数据SPM存储器中,最终消除数据Cache冲突带来的额外访存。
图1所示为本发明所提出的虚存机制实现对片上异构存储资源动态管理的系统框图。图中所示为在原有架构上需要进行增加和修改的部分,包括TLB中S位、数据SPM控制器、DMA、时钟模块。
TLB中S位数为增加,是为了适应本研究所必需的访问控制。使用特殊的S位可以使MMU在进行地址翻译的同时确定出实际应该访问的物理地址,并将该地址发给需要访问的片上存储器(数据/指令Cache或者SPM)。需要指出的是:对该SPM位的计算是在算法阶段完成的,用于标明在特定时隙内需要重映射到数据SPM存储器的页,而真实的置位操作是在每个时隙结束时的时钟中断中完成的。由此,在时钟中断处理之后,继续执行基准测试程序时就能根据SPM位的置位情况,在物理地址-虚拟地址翻译的同一个时钟周期内决定后续访问的片上存储器类型。S位的增加可以减少片上寻址的能耗。如果不使用S位,地址经过MMU的虚拟地址-物理地址的转换之后,需要同时将地址发向数据Cache和数据SPM控制器,数据Cache的比较电路和数据SPM控制器的寻址逻辑同时开始工作。由于数据仅可能在一种存储器中,两种寻址逻辑都要消耗一定的能耗。设计S位,可以在地址转换的时候判断地址发送到数据Cache和数据SPM控制器,以节省一定功耗。
图2为数据SPM控制器的寄存器设计。传统的数据SPM控制器设计较为简单,无法实现动态地址映射机制所要求的更为复杂的数据SPM存储器动态分配策略。因此本发明在传统SPM控制器的基础上通过增加一组用于记录写回地址和写脏情况的寄存器,即SPM区域寄存器。将传统的、仅能实现寻址功能的数据SPM控制器扩展为支持写脏操作、支持不同粒度SPM管理,并能通过主动配置DMA实现其内容动态换入换出的先进SPM控制器。由于本研究可以针对不同大小的MMU页做设计空间探索,因此需要对页大小做说明。SPM区域寄存器的第0位为EN位,该位在系统初始化时会被置0,当对SPM某页第一次做DMA换入操作时,将该位置1;SPM区域寄存器的第1位为写脏控制,主要用来标记处理器内核对该SPM页的写操作,方便DMA换出。区域寄存器的第2位至第六位来确定的页大小,其具体对应的基地址由高位地址给出,根据其页大小占用位数不等。
DMA可以在数据SPM控制器的配置下将数据块动态换入换出数据SPM存储器,相较于传统的、通过LDR/STR指令执行SPM内容的换入换出,DMA在很大程度上利用了主存SDRAM与片上高速总线AHB的BURST特性,从而降低了传输的成本与中断延时。对DMA的控制主要由数据SPM控制器完成,数据SPM控制器通过读取加载到主存的配置信息,在不同的时隙按需求将需要更新部分信息加载到DMA控制器的对应控制寄存器中,从而完成对DMA的配置。之后DMA控制器将申请总线,按照数据SPM控制器的配置通过DMA操作将需要的内容换入换出数据SPM存储器,从而完成片上数据SPM存储器内容的动态更新。
时钟中断是动态调整数据SPM存储器内容的基础。由于程序执行通常具有比较明显的时间局部性,因此程序指令段对相关数据的访问也存在类似的特性,数据Cache出现缺失也具有类似的时间局部性特征,如果充分利用,则能在很大程度上充分利用SPM面积,最终通过动态调整SPM内容得到更好的能耗收益。当时钟模块的时钟计数寄存器自减到0时,处理器内核将接受到中断处理模块发出的中断请求,然后系统进入IRQ模式。之后,数据SPM控制器根据对区域寄存器中的内容,完成对SPM内容换入换出的操作,最终实现对数据SPM存储器的动态管理。
图3为时隙冲突的示例图。由于程序执行存在较为明显的时间局部性,时隙冲突图根据划分程序执行的整个过程为均匀长度的时隙,并在不同时隙内部分别得到各自的Cache冲突图。通过SPM动态分配算法将每个时隙内导致Cache冲突的页利用虚存管理的机制重定位到数据SPM存储器,基于时隙的动态优化可以利用了有限的片上SPM资源,获得相较于静态优化更为可观的性能和能耗收益。
图4所示为利用时隙分析方法对片上异构存储资源数据进行动态管理的方法的系统流程图。
在程序分析阶段,第一步通过收集到的数据Cache的trace/跟踪信息,建立数据Cache时隙冲突图。基于数据Cache时隙冲突图可以实现对程序非侵入式的分析,并且可以分析程序数据的所有部分,包括全局数据、常量池数据,以及一般研究难以分析和处理的动态分配和使用的栈数据和堆数据。第二步,进行数学抽象我们通过对Cache冲突图进行数学建模以描述各数据页之间的权重分布,继而通过权重分布的变化定量描述各备选节点的状态对能耗函数的影响,最终由整数非线性规划求得整体能耗收益最优时每个节点的状态。第三步,可以得到在每个时隙中,最有优化价值的页号,这些页号在程序执行的过程中会被动态的换入到数据SPM存储器中。第四步,通过迭代对时隙长度进行调整,如图5所示。由于每个时隙内由于消除了大量数据Cache缺失,从而获得了能耗和性能两方面的收益,而性能上的收益会直接导致本时隙程序执行时间缩短,从而导致下一个时隙开始的时间点偏移,因此需要通过迭代求解的方法,统计出每个时隙在优化前后时间的差距并将其校正。在完成上述步骤后,可以得到调整后的每个时隙的具体长度以及每个时隙内需要搬入数据SPM存储器的页内容。
在程序执行阶段,当时钟模块到时时,处理器内核将接受到中断处理模块发出的中断请求,然后系统进入IRQ模式。在异常模式下,可以完成对页表项的修改及数据SPM存储器中内容的换入换出,以适应下一个时隙的程序访存模态。进入时钟中断的具体过程为:第一步,在进入该模式并保存相关的环境变量后,利用时钟模块的时隙寄存器得到当前的时隙数,从而得到该时隙所需要的配置信息,包括需要动态换入数据页的页号及调整后的时隙长度。第二步,数据SPM控制器将利用该值得到当前时隙数据SPM存储器中应该缓冲的主存地址空间信息和相关标志位。第三步,由于数据存在写回问题,数据SPM控制器将根据其写脏寄存器对该页的标记,决定是否开始DMA换出操作。若该位为0,则表示待处理页在之前的时隙中并未被处理器内容写脏,也就无需开始DMA写回操作。若该位为1,则数据SPM控制器将根据其映射区间寄存器的对应值配置DMA的源地址和目的地址寄存器,开始写回操作。第四步,在完成对页表和数据SPM存储器内容的写回操作后,数据SPM控制器将加载本时隙需要写入数据SPM存储器页的主存地址到对应的映射区间寄存器,并开始页表项的更新操作。第五步,完成页表项更新后,数据SPM控制器将负责加载映射区间寄存器中主存地址到DMA的源地址寄存器,并加载数据SPM存储器对应页的物理地址到DMA的目的地址寄存器,然后开始DMA的换入操作,并清除其写脏寄存器的对应位。最后,中断处理程序将时钟模块的时隙寄存器加1,为下一个时隙做准备,并恢复中断前的环境变量,退出中断处理程序,处理器内核开始继续执行时钟中断以前的基准测试程序。
图5所示为使用本发明提出的利用虚存管理机制对片上异构存储资源进行管理所得到的能耗收益。对比试验采用8K4路组关联的数据Cache,优化试验采用4K直接关联的数据Cache及4K的数据SPM存储器,利用时隙分析方法对异构存储资源数据进行动态管理。根据Cacti3.2对片上存储器面积的计算,优化试验所用的4K直接关联数据Cache与4K的数据SPM存储器的面积之和,其占用的芯片面积仅为对比试验8K4路组关联Cache的80.7%,但根据10个Benchmark的试验结果,系统能耗平均降低26.74%,最高降低51.07%。
Claims (5)
1.一种利用虚存机制对片上异构存储资源动态分配的方法,其特征在于:通过对应用程序执行过程中处理器内核对数据Cache访问的跟踪,得到包括全局数据、堆栈数据、堆数据以及常量池数据在内的Cache冲突的数据段缺失的时间和空间分布,由该空间分布得到数据Cache的时隙冲突图并对其进行数学抽像,根据能耗目标函数、性能目标函数分别利用整数非线性规划的方法选出系统总能耗最优时每个数据页的状态,得到每个时隙中最有优化价值数据页的页号,利用迭代求解方法,对时隙大小进行调整,根据每个时隙中需要优化的数据页和调整后的时隙大小信息,在程序执行中通过时钟中断,在每个均分的时隙中通过数据SPM控制器实现包括页表项入口的修改、直接内存访问控制器DMA的配置,将引起数据Cache冲突的地址空间动态重映射到数据SPM存储器中,消除数据Cache冲突带来的额外访存。
2.根据权利要求1所述的利用虚存机制对片上异构存储资源动态分配的方法,其特征在于:得到数据Cache的时隙冲突图后,利用程序执行时表现出来的时间局部性,将一段时间内最频繁引起数据Cache冲突的地址空间重映射到数据SPM存储器中,而在其收益不大时映射回主存。
3.根据权利要求1所述的利用虚存机制对片上异构存储资源动态分配的方法,其特征在于:虚存机制是在旁路转换缓冲TLB中增加S位,用于标志该页内容在数据SPM存储器中,减少额外Cache比较的能耗开销,同时,修改旁路转换缓冲TLB使之支持对512Byte/虚存页以及256Byte/虚存页,从而将频繁引起数据Cache冲突的部分抽离出来,而避免对大量优化价值不大的地址空间做重映射。
4.根据权利要求1所述的利用虚存机制对片上异构存储资源动态分配的方法,其特征在于:数据SPM控制器在程序执行过程中动态高效的将程序数据部分换入换出数据SPM存储器,利用片上AHB高速总线的Burst特性,避免对指令Cache以及数据Cache的二次污染。
5.根据权利要求4所述的利用虚存机制对片上异构存储资源动态分配的方法,其特征在于:在数据SPM控制器中增加了一组专用于记录写回地址、写脏情况以及虚存页大小的数据SPM控制寄存器:
1)该组寄存器将负责在某虚存页重映射在数据SPM存储器时记录其对应的主存地址,此地址将在该虚存页被换出便签存储器时作为直接内存访问控制器DMA的目的地址;
2)该组寄存器中负责记录写脏情况的位用来表示该页在映射到片上便签存储器后是否发生写操作,如果该页被写脏,需在下一时隙开始前将内容换出至主存,以保持数据一致性,数据SPM控制器根据写脏位决定是否使能直接内存访问控制器DMA;
3)该组寄存器中负责记录虚存页大小的位将用于配置直接内存访问控制器DMA搬运长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102643936A CN101739358B (zh) | 2009-12-21 | 2009-12-21 | 利用虚存机制对片上异构存储资源动态分配的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009102643936A CN101739358B (zh) | 2009-12-21 | 2009-12-21 | 利用虚存机制对片上异构存储资源动态分配的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101739358A true CN101739358A (zh) | 2010-06-16 |
CN101739358B CN101739358B (zh) | 2012-07-04 |
Family
ID=42462864
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102643936A Expired - Fee Related CN101739358B (zh) | 2009-12-21 | 2009-12-21 | 利用虚存机制对片上异构存储资源动态分配的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101739358B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853183A (zh) * | 2010-05-14 | 2010-10-06 | 中国科学院声学研究所 | 一种用于动态管理片上指令便签存储器的方法 |
CN101901192A (zh) * | 2010-07-27 | 2010-12-01 | 杭州电子科技大学 | 一种片上和片外数据对象静态分配方法 |
CN102073596A (zh) * | 2011-01-14 | 2011-05-25 | 东南大学 | 针对指令的可重构片上统一存储器管理方法 |
CN105474186A (zh) * | 2013-08-20 | 2016-04-06 | 国际商业机器公司 | 硬件管理的压缩的高速缓存 |
CN107329913A (zh) * | 2016-04-28 | 2017-11-07 | 深圳市中兴微电子技术有限公司 | 一种访问控制的方法及装置 |
EP3306479A1 (en) * | 2016-10-06 | 2018-04-11 | Stichting IMEC Nederland | Memory structure comprising scratchpad memory |
CN109002257A (zh) * | 2018-06-25 | 2018-12-14 | 重庆邮电大学 | 一种基于可变便笺存储器的数据分布优化方法 |
CN109062856A (zh) * | 2018-07-17 | 2018-12-21 | 北京比特大陆科技有限公司 | 计算处理装置和方法、电子设备 |
CN110059024A (zh) * | 2019-04-19 | 2019-07-26 | 中国科学院微电子研究所 | 一种内存空间数据缓存方法及装置 |
WO2022068673A1 (zh) * | 2020-09-30 | 2022-04-07 | 上海商汤智能科技有限公司 | 指令处理设备以及指令处理方法 |
CN117312330A (zh) * | 2023-11-29 | 2023-12-29 | 中国人民解放军国防科技大学 | 基于便签式存储的向量数据聚集方法、装置及计算机设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268297A (zh) * | 2013-05-20 | 2013-08-28 | 浙江大学 | 基于异构多核平台的加速核虚拟便笺存储器的方法 |
EP4134826A1 (en) * | 2021-08-09 | 2023-02-15 | Giesecke+Devrient Mobile Security GmbH | Management of memory of a processing device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100390755C (zh) * | 2003-10-14 | 2008-05-28 | 中国科学院计算技术研究所 | 含有显式高速缓冲存储器的计算机微体系结构 |
-
2009
- 2009-12-21 CN CN2009102643936A patent/CN101739358B/zh not_active Expired - Fee Related
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853183B (zh) * | 2010-05-14 | 2012-11-21 | 中国科学院声学研究所 | 一种用于动态管理片上指令便签存储器的方法 |
CN101853183A (zh) * | 2010-05-14 | 2010-10-06 | 中国科学院声学研究所 | 一种用于动态管理片上指令便签存储器的方法 |
CN101901192A (zh) * | 2010-07-27 | 2010-12-01 | 杭州电子科技大学 | 一种片上和片外数据对象静态分配方法 |
CN102073596A (zh) * | 2011-01-14 | 2011-05-25 | 东南大学 | 针对指令的可重构片上统一存储器管理方法 |
CN102073596B (zh) * | 2011-01-14 | 2012-07-25 | 东南大学 | 针对指令的可重构片上统一存储器管理方法 |
CN105474186B (zh) * | 2013-08-20 | 2018-07-10 | 国际商业机器公司 | 硬件管理的压缩的高速缓存 |
CN105474186A (zh) * | 2013-08-20 | 2016-04-06 | 国际商业机器公司 | 硬件管理的压缩的高速缓存 |
CN107329913A (zh) * | 2016-04-28 | 2017-11-07 | 深圳市中兴微电子技术有限公司 | 一种访问控制的方法及装置 |
CN107329913B (zh) * | 2016-04-28 | 2019-12-13 | 深圳市中兴微电子技术有限公司 | 一种访问控制的方法及装置 |
EP3306479A1 (en) * | 2016-10-06 | 2018-04-11 | Stichting IMEC Nederland | Memory structure comprising scratchpad memory |
US10592430B2 (en) | 2016-10-06 | 2020-03-17 | Imec Vzw | Memory structure comprising scratchpad memory |
CN109002257A (zh) * | 2018-06-25 | 2018-12-14 | 重庆邮电大学 | 一种基于可变便笺存储器的数据分布优化方法 |
CN109002257B (zh) * | 2018-06-25 | 2021-04-23 | 重庆邮电大学 | 一种基于可变便笺存储器的数据分布优化方法 |
CN109062856A (zh) * | 2018-07-17 | 2018-12-21 | 北京比特大陆科技有限公司 | 计算处理装置和方法、电子设备 |
CN109062856B (zh) * | 2018-07-17 | 2021-09-21 | 北京比特大陆科技有限公司 | 计算处理装置和方法、电子设备 |
CN110059024A (zh) * | 2019-04-19 | 2019-07-26 | 中国科学院微电子研究所 | 一种内存空间数据缓存方法及装置 |
CN110059024B (zh) * | 2019-04-19 | 2021-09-21 | 中国科学院微电子研究所 | 一种内存空间数据缓存方法及装置 |
WO2022068673A1 (zh) * | 2020-09-30 | 2022-04-07 | 上海商汤智能科技有限公司 | 指令处理设备以及指令处理方法 |
CN117312330A (zh) * | 2023-11-29 | 2023-12-29 | 中国人民解放军国防科技大学 | 基于便签式存储的向量数据聚集方法、装置及计算机设备 |
CN117312330B (zh) * | 2023-11-29 | 2024-02-09 | 中国人民解放军国防科技大学 | 基于便签式存储的向量数据聚集方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101739358B (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101739358B (zh) | 利用虚存机制对片上异构存储资源动态分配的方法 | |
CN101763316B (zh) | 基于虚存机制的指令片上异构存储资源动态分配的方法 | |
CN201540564U (zh) | 利用虚存机制对片上异构存储资源动态分配的电路 | |
CN201570016U (zh) | 基于虚存机制的指令片上异构存储资源动态分配的电路 | |
CN102073596B (zh) | 针对指令的可重构片上统一存储器管理方法 | |
CN101464834B (zh) | 闪存数据写入方法及使用此方法的控制器 | |
CN103019955B (zh) | 基于pcram主存应用的内存管理方法 | |
CN100549945C (zh) | 嵌入式系统中基于spm的指令缓冲的实现方法 | |
Janapsatya et al. | Hardware/software managed scratchpad memory for embedded system | |
CN1816802A (zh) | 用于准确的指针识别的处理器体系结构 | |
Liu et al. | Scratchpad memory architectures and allocation algorithms for hard real-time multicore processors | |
Bhattacharya et al. | Improving the performance of JVM startup using the shared class cache | |
Siddique et al. | Lmstr: Local memory store the case for hardware controlled scratchpad memory for general purpose processors | |
Hu et al. | A novel design of software system on chip for embedded system | |
CN101008923A (zh) | 面向异构多核体系的分段式存储空间管理方法 | |
CN103377141A (zh) | 高速存储区的访问方法以及访问装置 | |
Kandemir et al. | Improving memory energy using access pattern classification | |
Yang et al. | Compiler‐assisted dynamic scratch‐pad memory management with space overlapping for embedded systems | |
Chen et al. | A hardware/software framework for instruction and data scratchpad memory allocation | |
Ji et al. | Dynamic and adaptive SPM management for a multi-task environment | |
CN101482851B (zh) | 二进制翻译器中线程共享目标本地码缓存替换方法及系统 | |
Udayakumaran et al. | An integrated scratch-pad allocator for affine and non-affine code | |
CN101013404A (zh) | 面向异构多核体系的分页式存储空间管理方法 | |
Aouad et al. | A Survey of Scratch-Pad Memory Management Techniques for low-power and-energy | |
Mück et al. | Run-time scratch-pad memory management for embedded systems |
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: 20120704 Termination date: 20141221 |
|
EXPY | Termination of patent right or utility model |