CN201540564U - 利用虚存机制对片上异构存储资源动态分配的电路 - Google Patents
利用虚存机制对片上异构存储资源动态分配的电路 Download PDFInfo
- Publication number
- CN201540564U CN201540564U CN2009202824655U CN200920282465U CN201540564U CN 201540564 U CN201540564 U CN 201540564U CN 2009202824655 U CN2009202824655 U CN 2009202824655U CN 200920282465 U CN200920282465 U CN 200920282465U CN 201540564 U CN201540564 U CN 201540564U
- Authority
- CN
- China
- Prior art keywords
- data
- spm
- address
- controller
- tlb
- 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
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种利用虚存机制对片上异构存储资源进行动态分配的电路,为了充分利用片上SPM,改进了TLB的架构,增加对256Byte/虚拟页和512Btye虚拟页的支持;为了节省寻址能耗,内核发出的虚拟地址经过MMU的地址转换为物理地址后,根据TLB的标志位判断该数据内容是位于Cache还是SPM中,并将地址发向相应的Cache或SPM控制器中;为了充分利用时间局部性,采用时隙管理电路,利用时钟模块的定时功能划分不同时隙,并在每个时隙开始时,利用中断处理程序以及SPM控制器中的寄存器,将该时隙内引起Cache冲突最多的数据微页通过专用DMA搬运至SPM存储器中,并修改相应页表项,完成数据页的重映射。本实用新型综合利用片上异构存储资源,降低了Cache冲突带来的访存,在不增加芯片面积的基础上最终降低了系统能耗,提升系统性能。
Description
技术领域
本实用新型涉及嵌入式片上存储器领域,特别涉及一种利用虚存机制对片上异构存储资源(Cache和SPM的数据部分)动态分配的电路。
背景技术
随着微电子技术的发展,以SoC(System-on-a-Chip)为基础的嵌入式计算平台日益成熟。然而,由于处理器速度与外部存储器速度的差距不断增大,SoC存储子系统已经成为系统性能、功耗和成本的瓶颈。因此如何优化存储子系统的架构及管理策略,一直是嵌入式系统研究的热点。
作为传统片上存储器,Cache由硬件管理,大部分情况下对软件透明,能自动装载频繁访问的指令和数据到片上存储器中。然而,Cache的高功耗、占用芯片面积大、程序执行时间不可预知等缺点一直限制其在嵌入式系统中的广泛运用。尤其是Cache的组关联特性,可能导致被映射到同一Cache行的不同程序内容,反复相互替换(即Cache抖动),从而增加了额外访问主存SDRAM的成本,最终增大了系统性能与能耗开销。与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缺失,甚至引起Cache抖动,最终抵消SPM的优化收益。
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冲突。
目前针对Cache和SPM共存架构中数据部分的研究,一般都仅针对程序的全局数据部分。对于在程序在执行过程中,动态分配与使用的堆数据与栈数据,基于源码分析的静态分析方法,如程序控制流图(Control Flow Graph)、数组划分等,难以对其进行优化。目前针对堆优化和栈优化的方案中,优化效率较低,且方案不适用于全局数据和常量池数据。因此,针对数据部分的优化,一般是分别对全局数据、常量池、堆和栈进行分别优化的。
到目前为止,还未有相关研究涉及将程序数据部分,包括全局数据、常量池、堆和栈进行统一分析,并动态的将其映射到SPM中。
发明内容
本实用新型的目的在于克服现有片上存储子系统的不足,提供一种利用虚存机制对片上异构存储资源动态分配的电路,采用容量较小的SPM在程序执行过程中降低传统数据Cache冲突,对全局数据、常量池、堆和栈进行统一优化,从而降低由冲突带来的额外访存,最终提高微处理器运行的速度并降低系统能耗。
为实现上述目的,本实用新型通过对存储管理单元、数据SPM存储器及数据SPM控制器、直接内存访问控制器(DMA控制器)、中断控制器、时钟模块的电路进行设计和改进,提供一种利用虚存机制对片上异构存储资源动态分配的电路,采取的技术方案是:一种利用虚存机制对片上异构存储资源进行动态分配的电路,其特征是设有处理器内核、存储管理单元MMU、数据部分路由器、数据Cache、数据SPM存储器及数据SPM控制器、直接内存访问控制器DMA、总线、中断控制器、时钟模块、外部存储器接口以及片外主存SDRAM;处理器内核发出对数据访问的虚拟地址,发送到存储管理单元MMU,存储管理单元MMU将其转换为对数据访问的物理地址,并根据其旁路转换缓冲TLB的标志位的状态,进过数据部分路由器,将物理地址发送到数据Cache及数据SPM控制器两者之一,如果数据SPM控制器接收物理地址,则对物理地址译码后访问数据SPM存储器;时钟模块在时钟中断时发出中断信号,由中断控制器响应,在中断处理程序中调用数据SPM控制器;数据SPM控制器包含一块SPM区域寄存器,数据SPM控制器根据SPM区域寄存器的信息,配置DMA控制器的源地址、目的地址以及搬运长度,DMA控制器经过高速AHB总线和外部存储器接口,根据片外主存SDRAM中的程序内容对数据SPM存储器中的内容进行更改,同时配置时钟模块的长度信息并使能时钟模块。
所说存储管理单元采用两级旁路转换缓冲TLB的架构,其中一级为指令、数据分离的TLB,二级为指令、数据统一的TLB;内核发出对数据访问的地址时,首先发送到一级数据TLB,如果一级TLB命中则将转换后的物理地址发送到数据Cache或数据SPM控制器;如果一级TLB不命中,地址发送到二级统一TLB,如果二级TLB命中则将转换后的物理地址发送到数据Cache或数据SPM控制器;如果二级TLB不命中,需要访问外部存储器中的页表,进行虚拟地址-物理地址转换。
每块TLB由一块Tag存储阵列、两块SRAM存储阵列、地址译码电路、Hit逻辑、读写控制逻辑和输入输出驱动电路构成:Tag部分为24位,CPU发出虚拟地址经过地址译码逻辑之后,高24位将和Tag存储器中保存的虚拟页号进行比较,Hit逻辑用于判断是否命中,如果命中则根据两块SRAM的内容进行地址转换,如果不命中需要访问下一级TLB或者主存;第一块SRAM为20位,用于标志位的存放,包括本发明利用保留位新扩展出的S位,当地址完成转换后,会根据S位的数值将物理地址发送到数据Cache或数据SPM控制器;第二块SRAM位24位,用于存放物理地址的页号。
数据SPM控制器还根据时钟模块中对于时隙的记录将配置信息加载到SPM区域寄存器中,并在时钟中断时根据SPM区域寄存器的内容控制DMA控制器和时钟模块。
所说时钟模块设有一个专用于记录时隙个数的寄存器,在每个时钟中断时自动加1,用于标明当前时隙个数;由SPM控制器根据当前时隙配置其定时长度,并设置为One-shot模式,当数值自减为0时,发出时钟中断,由中断控制器接管。
本实用新型的工作原理:
处理器内核发出的虚拟地址经过MMU的地址转换为物理地址,并根据MMU中TLB的标志位判断该数据内容是位于数据Cache还是数据SPM存储器中,进过数据部分路由器,将地址发向数据Cache和数据SPM控制器之一;如果数据SPM控制器接收物理地址,则对物理地址译码后访问数据SPM存储器,数据SPM存储器通过总线接口单元连接到高速AHB总线上;时钟模块连接在外设APB总线上,并经过总线桥连接到高速AHB总线上,使用时钟模块,将程序划分不同时隙,并在每个时隙开始时的中断处理程序中,利用数据SPM控制器,将该时隙中最有优化价值的数据页通过DMA,经过高速AHB总线和外部存储器接口,将片外主存SDRAM中的程序内容搬运至数据SPM存储器中,同时修改页表项,完成数据页的重定位。
地址转换电路涉及到TLB的结构的修改。传统的MMU的页最小仅支持1KByte/虚拟页的管理,而利用虚存机制对片上异构存储资源的管理中,SPM的最小管理粒度即为MMU的页大小。如果使用较大的页进行管理,对于较为分散的程序数据部分,不能很好利用SPM的面积。因此本实用新型对ARMv5TEJ标准PTEs架构中二级页表项第6位到第9位的保留位作了扩展,并修改TLB的Tag存储器,实现对256Byte/虚拟页和512Byte/虚拟页的支持,这样在数据SPM存储器的动态管理时可以充分利用片上存储器的面积。TLB主要包括以下几个部分:一块Tag存储阵列、两块SRAM存储阵列、地址译码电路、Hit逻辑、读写控制逻辑和输入输出驱动电路。一个虚拟地址通常由页号和偏移地址组成,工作时,CPU送出32位的虚拟地址,将虚拟地址的高位页号与Tag中的虚拟页号进行对比。由于增加了对更细粒度页的支持,页号也相应变长,本发明最大支持24位的Tag比较,即支持最小的页为256Byte/虚拟页。512Byte/虚拟页时,Tag仅需要用到前23位;TLB同时还可支持22位、20位、16位或12位的对比,分别对应微页、小页、大页和段的转换方式。
TLB的状态位一般是存储在SRAM中的访问控制信息,例如页表的访问权限、地址转换方式和页表所属的域的等。为了表明一个页是在数据SPM存储器中还是数据Cache中,本发明利用TLB预留的状态位,在TLB中增加S位以实现必需的访问控制。使用特殊的S位可以使MMU在进行地址翻译的同时确定出实际应该访问的物理地址,并将该地址发给需要访问的片上存储器(数据/指令Cache或者SPM)。需要指出的是:对该SPM位的计算是在算法阶段完成的,用于标明在特定时隙内需要重映射到SPM的页,而真实的置位操作是在每个时隙结束时的时钟中断中完成的。由此,在时钟中断处理之后,继续执行基准测试程序时就能根据SPM位的置位情况,在物理地址-虚拟地址翻译的同时决定后续访问的片上存储器类型。如果不使用S位,地址经过MMU的虚拟地址-物理地址的转换之后,需要同时将地址发向数据Cache和数据SPM控制器,数据Cache的比较电路和数据SPM控制器的寻址逻辑同时开始工作。由于数据仅可能在一种存储器中,两种寻址逻辑都要消耗一定的能耗。设计S位,可以在地址转换的时候判断将地址发送到S数据Cache和数据SPM控制器,以节省一定功耗。
存储管理电路涉及到TLB架构的修改。使用更细粒度的微页,每个页表项描述的地址空间就会相应缩短,此时若不重新设计TLB,则可能由于频繁的TLB缺失带来大量的主存访问,从而降低性能和增大能耗因此。因此,本发明在修改MMU页的同时,对TLB的入口数、关联度和层次进行分析,减少由微页管理带来的系统能耗成本。引入两级TLB可以达到性能和能耗的折衷,因此本发明设计了指令、数据分离的一级TLB和统一的二级TLB。通过优化选择,本发明最终选择使用16个入口的数据uTLB、8个入口的指令uTLB以及64个入口、32路组关联的统一TLB(2级TLB)。在这种配置下,可以将引入微页代价降到最小。
数据SPM控制器在程序执行过程中动态高效的将程序数据部分换入换出数据SPM存储器,利用片上AHB高速总线的Burst特性,避免对指令Cache以及数据Cache的二次污染。在数据SPM控制器中增加了一组专用于记录写回地址、写脏情况以及虚存页大小的SPM区域寄存器,包括:1.该组寄存器将负责在某虚存页重映射在数据SPM存储器时记录其对应的主存地址,此地址将在该虚存页被换出便签存储器时作为DMA的目的地址;2.该组寄存器中负责记录写脏情况的位用来表示该页在映射到片上便签存储器后是否发生写操作,如果该页被写脏,需在下一时隙开始前将内容换出至主存,以保持数据一致性。数据SPM控制器根据写脏位决定是某使能DMA;3.该组寄存器中负责记录虚存页大小的位将用于配置DMA搬运长度。
与现有技术相比,本实用新型具有以下优点及显著效果:
(1)利用虚存管理的思想可以解决传统SPM优化技术难以解决的对程序堆栈数据和堆数据的优化,尤其是对堆数据的处理。由于堆数据是在程序执行过程中由库函数动态分配的,分配的必要条件是必须存在大小合适的连续地址空间。如果此时将某段对数据搬运到SPM,则势必造成地址空间的不连续,从而使程序无法正常执行。本发明提出的优化电路可以利用虚存管理的机制,将实际的物理地址与库函数分配时使用的虚拟地址隔离开。这样,对于库函数而言地址空间在优化前后都是连续的,但对于真实的硬件而言,已经将频繁引起数据Cache冲突的部分堆数据段重映射到SPM,从而降低了数据Cache冲突的次数,最终获得了性能和能耗上的收益。同时,利用虚存机制对程序进行管理,可以实现对程序非侵入式的分析和优化,即不需要在用户程序中显示的增加SPM的搬运代码,而在中断处理中通过配置DMA和修改页表来完成对程序内容的换入换出。
(2)另外,本实用新型充分利用程序执行的时间局部性特点,利用时钟模块和定时器模块将程序划分为时隙,继而将每个时隙内导致Cache冲突的页利用虚存管理的机制重定位到数据SPM存储器,从而获得相较于静态优化更为可观的性能和能耗收益,最终动态的利用了有限的片上SPM资源,降低程序的能耗,提升系统性能。
附图说明
图1为利用虚存机制实现对片上异构存储资源动态管理的电路框图;
图2为支持512Byte/虚拟页、256Byte/虚拟页的TLB的修改;
图3存储管理电路的设计;
图4为数据SPM控制器的寄存器的设计;
图5为利用时隙分析方法对片上存储资源数据进行管理的系统流程图;
图6为迭代求解示意图;
图7为采用本发明优化方法对系统能耗进行优化的试验结果。
具体实施方式
下面结合附图与具体实施方式对本实用新型作进一步详细描述。
参看图1,图中所示为在原有架构上需要进行增加和修改的部分,包括TLB中S位、数据SPM控制器、DMA控制器、时钟模块。在程序执行阶时,通过时钟模块设定值,将程序划分为若干时隙,当时隙结束时,时钟模块发出中断处理请求,系统由中断控制器接管,进入IRQ模式。在异常模式下,根据数据SPM控制器的信息,完成数据SPM存储器中内容的动态管理。具体包括:第一步,在进入该模式并保存相关的环境变量后,利用时钟模块的时隙寄存器得到当前的时隙数,从而得到该时隙所需要的配置信息,包括需要动态换入数据页的页号及调整后的时隙长度。第二步,数据SPM控制器将利用该值对得到当前时隙SPM中应该缓冲的主存地址空间信息和相关标志位。MMU页大小的选择在程序执行过程中不能改变,除了标准页大小之外,本发明还支持512Byte/虚拟页和256Byte/虚拟页的管理,根据页大小对数据SPM控制器中的相关位进行配置。第三步,由于数据存在写回问题,数据SPM控制器将根据其写脏寄存器对该页的标记,决定是否开始DMA换出操作。若该位为0,则表示待处理页在之前的时隙中并未被处理器内容写脏,也就无需开始DMA写回操作。若该位为1,则数据SPM控制器将根据其映射区间寄存器的对应值配置DMA的源地址和目的地址寄存器,开始写回操作。第四步,在完成对页表和数据SPM存储器内容的写回操作后,数据SPM控制器将加载本时隙需要写入SPM页的主存地址到对应的映射区间寄存器,并开始页表项的更新操作。第五步,完成页表项更新后,数据SPM控制器将负责加载映射区间寄存器中主存地址到DMA的源地址寄存器,并加载SPM对应页的物理地址到DMA的目的地址寄存器,根据页大小的信息加载搬运长度信息,然后开始DMA的换入操作,并清除其写脏寄存器的对应位。最后,中断处理程序将时钟模块的时隙寄存器加1,为下一个时隙做准备,并恢复中断前的环境变量,退出中断处理程序,处理器内核开始继续执行时钟中断以前的基准测试程序。
图2所示为TLB架构的修改,以支持512Byte/虚拟页和256Byte/虚拟页和S状态位。传统的MMU的页最小仅支持1KByte/虚拟页的管理,而利用虚存机制对片上异构存储资源的管理中,SPM的最小管理粒度即为MMU的页大小。如果使用较大的页进行管理,对于较为分散的程序数据部分,不能很好利用数据SPM存储器的面积。因此本发明将对ARMv5TEJ标准PTEs架构中二级页表项第6位到第9位的保留位作了扩展,并修改TLB的Tag存储器和比较电路,实现对256Byte/虚拟页和512Byte/虚拟页的支持。需要在调整原有的地址转换电路,修改TLB的结构,以增加对512Byte/虚拟页和256/Byte虚拟页的支持,这样在数据SPM存储器的动态管理时可以充分利用片上存储器的面积。TLB主要包括以下几个部分:一块Tag存储阵列、两块SRAM存储阵列、地址译码电路、Hit逻辑、读写控制逻辑和输入输出驱动电路。一个虚拟地址通常由页号和偏移地址组成,工作时,CPU送出32位的虚拟地址,将虚拟地址的高位页号与Tag中的虚拟页号进行对比。由于增加了对更细粒度页的支持,页号也相应变长,本发明最大支持24位的Tag比较,即支持最小的页为256Byte/虚拟页。512Byte/虚拟页时,Tag仅需要用到前23位;TLB同时还可支持22位、20位、16位或12位的对比,分别对应微页、小页、大页和段的转换方式。
TLB的状态位一般是存储在SRAM中的访问控制信息,例如页表的访问权限、地址转换方式和页表所属的域的等。为了表明一个页是在数据SPM存储器中还是数据Cache中,本发明利用TLB预留的状态位,在TLB中增加S位以实现必需的访问控制。使用特殊的S位可以使MMU在进行地址翻译的同时确定出实际应该访问的物理地址,并将该地址发给需要访问的片上存储器(数据/指令Cache或者SPM)。需要指出的是:对该SPM位的计算是在算法阶段完成的,用于标明在特定时隙内需要重映射到SPM的页,而真实的置位操作是在每个时隙结束时的时钟中断中完成的。由此,在时钟中断处理之后,继续执行基准测试程序时就能根据SPM位的置位情况,在物理地址-虚拟地址翻译的同时决定后续访问的片上存储器类型。如果不使用S位,地址经过MMU的虚拟地址-物理地址的转换之后,需要同时将地址发向数据Cache和数据SPM控制器,数据Cache的比较电路和数据SPM控制器的寻址逻辑同时开始工作。由于数据仅可能在一种存储器中,两种寻址逻辑都要消耗一定的能耗。设计S位,可以在地址转换的时候判断将地址发送到数据Cache和数据SPM控制器,以节省一定功耗。
图3所示为存储管理电路的设计。本实用新型采用2级TLB的设计。这是因为使用更细粒度的微页,每个页表项描述的地址空间就会相应缩短,此时若不重新设计TLB,则可能由于频繁的TLB缺失带来大量的主存访问,从而降低性能和增大能耗因此。因此,本发明在修改MMU页的同时,对TLB的入口数、关联度和层次进行分析,减少由微页管理带来的系统能耗成本。引入两级TLB可以达到性能和能耗的折衷,因此本发明设计了指令、数据分离的一级TLB和统一的二级TLB。本发明仅针对程序的数据部分的电路进行设计,因此仅有数据部分包含SPM存储器和SPM控制器。CPU需要访问程序数据部分时,首先将虚拟地址发送到MMU。一级TLB的数据部分开始工作,如果页表项在TLB中,则一级TLB命中,地址根据TLB中S标志位发送到数据SPM存储器或数据Cache中;如果一级TLB不命中,则访问二级统一TLB;二级TLB不命中,则需要根据主存中的页表,进行虚拟地址-物理地址转换。通过优化选择,本发明最终选择使用16个入口的数据uTLB、8个入口的指令uTLB以及64个入口、32路组关联的统一TLB(2级TLB)。在这种配置下,可以将引入微页代价降到最小。
图4为数据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存储器内容的动态更新。
图5所示为利用时隙分析方法对片上异构存储资源数据进行动态管理的方法的系统流程图。
在程序分析阶段,第一步通过收集到的数据Cache的trace/跟踪信息,建立数据Cache时隙冲突图。基于数据Cache时隙冲突图可以实现对程序非侵入式的分析,并且可以分析程序数据的所有部分,包括全局数据、常量池数据,以及一般研究难以分析和处理的动态分配和使用的栈数据和堆数据。第二步,进行数学抽象我们通过对Cache冲突图进行数学建模以描述各数据页之间的权重分布,继而通过权重分布的变化定量描述各备选节点的状态对能耗函数的影响,最终由整数非线性规划求得整体能耗收益最优时每个节点的状态。第三步,可以得到在每个时隙中,最有优化价值的页号,这些页号在程序执行的过程中会被动态的换入到数据SPM存储器中。第四步,通过迭代对时隙长度进行调整,如图6所示。由于每个时隙内由于消除了大量数据Cache缺失,从而获得了能耗和性能两方面的收益,而性能上的收益会直接导致本时隙程序执行时间缩短,从而导致下一个时隙开始的时间点偏移,因此需要通过迭代求解的方法,统计出每个时隙在优化前后时间的差距并将其校正。在完成上述步骤后,可以得到调整后的每个时隙的具体长度以及每个时隙内需要搬入数据SPM存储器的页内容。
在程序执行阶段,当时钟模块到时时,处理器内核将接受到中断处理模块发出的中断请求,然后系统进入IRQ模式。在异常模式下,可以完成对页表项的修改及数据SPM存储器中内容的换入换出,以适应下一个时隙的程序访存模态。进入时钟中断的具体过程为:第一步,在进入该模式并保存相关的环境变量后,利用时钟模块的时隙寄存器得到当前的时隙数,从而得到该时隙所需要的配置信息,包括需要动态换入数据页的页号及调整后的时隙长度。第二步,数据SPM控制器将利用该值得到当前时隙数据SPM存储器中应该缓冲的主存地址空间信息和相关标志位。第三步,由于数据存在写回问题,数据SPM控制器将根据其写脏寄存器对该页的标记,决定是否开始DMA换出操作。若该位为0,则表示待处理页在之前的时隙中并未被处理器内容写脏,也就无需开始DMA写回操作。若该位为1,则数据SPM控制器将根据其映射区间寄存器的对应值配置DMA的源地址和目的地址寄存器,开始写回操作。第四步,在完成对页表和数据SPM存储器内容的写回操作后,数据SPM控制器将加载本时隙需要写入数据SPM存储器页的主存地址到对应的映射区间寄存器,并开始页表项的更新操作。第五步,完成页表项更新后,数据SPM控制器将负责加载映射区间寄存器中主存地址到DMA的源地址寄存器,并加载数据SPM存储器对应页的物理地址到DMA的目的地址寄存器,然后开始DMA的换入操作,并清除其写脏寄存器的对应位。最后,中断处理程序将时钟模块的时隙寄存器加1,为下一个时隙做准备,并恢复中断前的环境变量,退出中断处理程序,处理器内核开始继续执行时钟中断以前的基准测试程序。
图7所示为使用本发明提出的利用虚存管理机制对片上异构存储资源进行管理所得到的能耗收益。对比试验采用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.一种利用虚存机制对片上异构存储资源进行动态分配的电路,其特征是设有处理器内核、存储管理单元MMU、数据部分路由器、数据Cache、数据SPM存储器及数据SPM控制器、直接内存访问控制器DMA、总线、中断控制器、时钟模块、外部存储器接口以及片外主存SDRAM;处理器内核发出对数据访问的虚拟地址,发送到存储管理单元MMU,存储管理单元MMU将其转换为对数据访问的物理地址,并根据其旁路转换缓冲TLB的标志位的状态,进过数据部分路由器,将物理地址发送到数据Cache及数据SPM控制器两者之一,如果数据SPM控制器接收物理地址,则对物理地址译码后访问数据SPM存储器;时钟模块在时钟中断时发出中断信号,由中断控制器响应,在中断处理程序中调用数据SPM控制器;数据SPM控制器包含一块SPM区域寄存器,数据SPM控制器根据SPM区域寄存器的信息,配置DMA控制器的源地址、目的地址以及搬运长度,DMA控制器经过高速AHB总线和外部存储器接口,根据片外主存SDRAM中的程序内容对数据SPM存储器中的内容进行更改,同时配置时钟模块的长度信息并使能时钟模块。
2.根据权利要求1所述的利用虚存机制对片上异构存储资源进行动态分配的电路,其特征在于:存储管理单元采用两级旁路转换缓冲TLB的架构,其中:一级为指令、数据分离的TLB,二级为指令、数据统一的TLB;内核发出对数据访问的地址时,首先发送到一级数据TLB,如果一级TLB命中则将转换后的物理地址发送到数据Cache或数据SPM控制器;如果一级TLB不命中,地址发送到二级统一TLB,如果二级TLB命中则将转换后的物理地址发送到数据Cache或数据SPM控制器;如果二级TLB不命中,需要访问外部存储器中的页表,进行虚拟地址-物理地址转换。
3.根据权利要求2所述的利用虚存机制对片上异构存储资源进行动态分配的电路,其特征在于:每块TLB由一块Tag存储阵列、两块SRAM存储阵列、地址译码电路、Hit逻辑、读写控制逻辑和输入输出驱动电路构成:Tag部分为24位,CPU发出虚拟地址经过地址译码逻辑之后,高24位将和Tag存储器中保存的虚拟页号进行比较,Hit逻辑用于判断是否命中,如果命中则根据两块SRAM的内容进行地址转换,如果不命中需要访问下一级TLB或者主存;第一块SRAM为20位,用于标志位的存放,包括本发明利用保留位新扩展出的S位,当地址完成转换后,会根据S位的数值将物理地址发送到数据Cache或数据SPM控制器;第二块SRAM位24位,用于存放物理地址的页号。
4.根据权利要求1或2或3所述的利用虚存机制对片上异构存储资源进行动态分配的电路,其特征在于:数据SPM控制器还根据时钟模块中对于时隙的记录将配置信息加载到SPM区域寄存器中,并在时钟中断时根据SPM区域寄存器的内容控制DMA控制器和时钟模块。
5.根据权利要求1或2或3所述的利用虚存机制对片上异构存储资源进行动态分配的电路,其特征在于:时钟模块设有一个专用于记录时隙个数的寄存器,在每个时钟中断时自动加1,用于标明当前时隙个数;由SPM控制器根据当前时隙配置其定时长度,并设置为One-shot模式,当数值自减为0时,发出时钟中断,由中断控制器接管。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009202824655U CN201540564U (zh) | 2009-12-21 | 2009-12-21 | 利用虚存机制对片上异构存储资源动态分配的电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009202824655U CN201540564U (zh) | 2009-12-21 | 2009-12-21 | 利用虚存机制对片上异构存储资源动态分配的电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN201540564U true CN201540564U (zh) | 2010-08-04 |
Family
ID=42592023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009202824655U Expired - Fee Related CN201540564U (zh) | 2009-12-21 | 2009-12-21 | 利用虚存机制对片上异构存储资源动态分配的电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN201540564U (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073596A (zh) * | 2011-01-14 | 2011-05-25 | 东南大学 | 针对指令的可重构片上统一存储器管理方法 |
CN105468542A (zh) * | 2014-09-03 | 2016-04-06 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
CN106066831A (zh) * | 2015-04-22 | 2016-11-02 | Arm 有限公司 | 存储器管理 |
CN106560798A (zh) * | 2015-09-30 | 2017-04-12 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
CN106708747A (zh) * | 2015-11-17 | 2017-05-24 | 深圳市中兴微电子技术有限公司 | 一种存储器切换方法及装置 |
CN107436808A (zh) * | 2016-04-22 | 2017-12-05 | 凯为公司 | 用于动态虚拟片上系统的方法和装置 |
CN107526528A (zh) * | 2016-06-20 | 2017-12-29 | 北京正泽兴承科技有限责任公司 | 一种片上低延迟存储器的实现机制 |
CN108052458A (zh) * | 2017-12-21 | 2018-05-18 | 中国电子科技集团公司第四十七研究所 | 一种基于应用的Cache动态配置装置及方法 |
CN112783810A (zh) * | 2021-01-08 | 2021-05-11 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输系统及方法 |
CN113704142A (zh) * | 2021-09-02 | 2021-11-26 | 海飞科(南京)信息技术有限公司 | 片上存储的地址重映射电路 |
CN114758687A (zh) * | 2022-06-15 | 2022-07-15 | 南京低功耗芯片技术研究院有限公司 | 一种自适应的Cache访问电路及其实现方法 |
CN116594922A (zh) * | 2023-07-14 | 2023-08-15 | 深圳砺驰半导体科技有限公司 | 一种数据访问电路、方法及系统级芯片 |
-
2009
- 2009-12-21 CN CN2009202824655U patent/CN201540564U/zh not_active Expired - Fee Related
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073596B (zh) * | 2011-01-14 | 2012-07-25 | 东南大学 | 针对指令的可重构片上统一存储器管理方法 |
CN102073596A (zh) * | 2011-01-14 | 2011-05-25 | 东南大学 | 针对指令的可重构片上统一存储器管理方法 |
CN105468542B (zh) * | 2014-09-03 | 2019-03-26 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
CN105468542A (zh) * | 2014-09-03 | 2016-04-06 | 杭州华为数字技术有限公司 | 地址分配方法及装置 |
CN106066831A (zh) * | 2015-04-22 | 2016-11-02 | Arm 有限公司 | 存储器管理 |
CN106066831B (zh) * | 2015-04-22 | 2021-07-23 | Arm 有限公司 | 存储器管理 |
CN106560798A (zh) * | 2015-09-30 | 2017-04-12 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
CN106560798B (zh) * | 2015-09-30 | 2020-04-03 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
CN106708747A (zh) * | 2015-11-17 | 2017-05-24 | 深圳市中兴微电子技术有限公司 | 一种存储器切换方法及装置 |
CN107436808B (zh) * | 2016-04-22 | 2023-07-07 | 马维尔亚洲私人有限公司 | 用于动态虚拟片上系统的方法和装置 |
CN107436808A (zh) * | 2016-04-22 | 2017-12-05 | 凯为公司 | 用于动态虚拟片上系统的方法和装置 |
CN107526528A (zh) * | 2016-06-20 | 2017-12-29 | 北京正泽兴承科技有限责任公司 | 一种片上低延迟存储器的实现机制 |
CN107526528B (zh) * | 2016-06-20 | 2021-09-07 | 北京正泽兴承科技有限责任公司 | 一种片上低延迟存储器的实现机制 |
CN108052458A (zh) * | 2017-12-21 | 2018-05-18 | 中国电子科技集团公司第四十七研究所 | 一种基于应用的Cache动态配置装置及方法 |
CN112783810B (zh) * | 2021-01-08 | 2022-05-03 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输系统及方法 |
CN112783810A (zh) * | 2021-01-08 | 2021-05-11 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输系统及方法 |
CN113704142A (zh) * | 2021-09-02 | 2021-11-26 | 海飞科(南京)信息技术有限公司 | 片上存储的地址重映射电路 |
CN113704142B (zh) * | 2021-09-02 | 2022-06-14 | 海飞科(南京)信息技术有限公司 | 片上存储的地址重映射电路 |
CN114758687A (zh) * | 2022-06-15 | 2022-07-15 | 南京低功耗芯片技术研究院有限公司 | 一种自适应的Cache访问电路及其实现方法 |
CN114758687B (zh) * | 2022-06-15 | 2022-09-02 | 南京低功耗芯片技术研究院有限公司 | 一种自适应的Cache访问电路及其实现方法 |
CN116594922A (zh) * | 2023-07-14 | 2023-08-15 | 深圳砺驰半导体科技有限公司 | 一种数据访问电路、方法及系统级芯片 |
CN116594922B (zh) * | 2023-07-14 | 2023-10-31 | 深圳砺驰半导体科技有限公司 | 一种数据访问电路、方法及系统级芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN201540564U (zh) | 利用虚存机制对片上异构存储资源动态分配的电路 | |
CN101739358B (zh) | 利用虚存机制对片上异构存储资源动态分配的方法 | |
CN201570016U (zh) | 基于虚存机制的指令片上异构存储资源动态分配的电路 | |
CN101763316B (zh) | 基于虚存机制的指令片上异构存储资源动态分配的方法 | |
CN102073596B (zh) | 针对指令的可重构片上统一存储器管理方法 | |
CN101464834B (zh) | 闪存数据写入方法及使用此方法的控制器 | |
US20100146513A1 (en) | Software-based Thread Remapping for power Savings | |
CN105103144A (zh) | 用于存储器的自适应控制的设备及方法 | |
CN102792285A (zh) | 层级转换表控制 | |
CN100549945C (zh) | 嵌入式系统中基于spm的指令缓冲的实现方法 | |
Bathen et al. | HaVOC: A hybrid memory-aware virtualization layer for on-chip distributed scratchpad and non-volatile memories | |
Janapsatya et al. | Hardware/software managed scratchpad memory for embedded system | |
CN103019955A (zh) | 基于pcram主存应用的内存管理方法 | |
Liu et al. | Scratchpad memory architectures and allocation algorithms for hard real-time multicore processors | |
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 | |
CN109521949A (zh) | 一种基于混合便签式存储器的感知写频率数据分配方法 | |
CN101008923A (zh) | 面向异构多核体系的分段式存储空间管理方法 | |
CN101251810A (zh) | 基于spm的嵌入式操作系统进程调度优化方法 | |
CN101482851B (zh) | 二进制翻译器中线程共享目标本地码缓存替换方法及系统 | |
Paul et al. | Dynamically adaptive i-cache partitioning for energy-efficient embedded multitasking | |
Ji et al. | Dynamic and adaptive SPM management for a multi-task environment | |
Du et al. | Optimization of data allocation on CMP embedded system with data migration | |
Tan et al. | Mitigating the impact of hardware variability for GPGPUs register file | |
Whitham et al. | The scratchpad memory management unit for microblaze: Implementation, testing, and case study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20100804 Termination date: 20141221 |
|
EXPY | Termination of patent right or utility model |