一种面向MPSoC的事务内存的实现方法

文档序号:6424398阅读:102来源:国知局
专利名称:一种面向MPSoC的事务内存的实现方法
技术领域
本发明属于嵌入式系统事务内存技术领域,特别是涉及一种面向MPSoC的事务内存的实现方法。
背景技术
随着半导体技术的不断进步,VLSI (超大规模集成电路,Very Large-ScaleIntegrated)的集成密度在大幅度的增加。单一芯片上的集成度不断提高,使得SoC技术得到了发展和应用。SoC技术是将一个系统的全部功能模块集成到单一的芯片上,从而实现在单个芯片上集成完备的系统功能。MPSoC (Multiprocessor System on Chip)是对 SoC 技术的进一步发展,是指具有多于一个嵌入式指令集处理器的SoC。MPSoC结合SoC技术与多核技术的特点。多核技术是指在一个芯片上集成多核处理器核,以提高处理器的处理能力。MPSoC片上既有多核处理器核,又集成了不同种类的软硬件,兼具了 SoC和多核的优点。在SoC与MPSoC芯片上,往往会集成存储器,为处理器核提供存储服务,从而提高处理器的效率。事务则是来自于数据库理论的概念。为了保证数据的完整性,事务必须具备原子性、一致性、隔离性、持久性等特性,即ACID特性。事务内存借鉴了数据库中事务的理论,将事务的概念运用于线程对内存的操作上,将一连串对内存的操作封装成一个事务。事务内存(Transaction Memory)又称为事务存储、事务性存储等,缩写为TM。事务一旦开始执行, 要么提交全部修改,使其他处理器可见,要么放弃所有的修改,从而保证其原子性。同时,一个事务在共享数据上的操作在事务执行的中间阶段对于其他事务是不可见的。但与数据库中事务概念不同的是,事务内存并不具备持久的特性,因为在内存中的数据当程序结束时将会被收回。为了保证持久性使数据库中事务的设计复杂了很多了,而事务内存不需要保证持久性,简化了事务内存中事务的设计。当前,事务内存主要有两种实现方式硬件实现和软件实现,分别称为硬件事务内存(Hardware Transaction Memory,简称 HTM)禾口软件事务内存(Software Transaction Memory)。同时,也有部分设计是利用各自的优势,将硬件与软件相结合,这种实现方式称为混合型事务内存(Hybrid TransactionMemory,简称HybridTM)。在硬件事务内存方面,其提出的时间最早,设计的方案也最多。研究人员通过提供额外的硬件支持、修改cache —致性协议、或扩展指令集架构等设计思想实现硬件事务内存。在软件事务内存方面,主要通过修改编译器和提供程序库的方式实现。同时,如何将软件事务内存与当前的程序语言相结合、在程序语言中提供对事务内存支持也是一个很重要的研究方向。随着嵌入式系统的不断发展,性能、功耗与实时性已经成为嵌入式系统设计的主要要求。在嵌入式系统中,存储子系统是系统性能和能耗的主要瓶颈。SoC技术的发展使得集缩小处理器与存储之间的速度差距成为可能。片上不但可以集成存储器,还提供了高性能的片内总线,能够有效的提高存储器的速度,同时降低能耗。在SoC上,存储器将占据片上面积的50%以上。使用片上的存储器能够有效的减少系统能耗,提高整体性能。因此,很多嵌入式处理器上都集成了存储器。在嵌入式系统的多级存储层次中,cache就是集成在片上的SRAM。通常cache 是由硬件控制,对程序员是不可见的。而Scratchpad Memory也是集成在片上的SRAM,与 cache不同,Scratchpad Memory是由软件控制,即它是片上的可编程存储器。与cache相比,Scratchpad Memory所占用的片上面积更小,因而可以在片上集成更大容量的存储器; 由于Scratchpad Memory在设计上比cache简单,访问通过寻址实现,访问ScratchPad Memory的能耗比cache小;由于ScratchPad Memory的可编程特点,这使得能够更好的对 Scratchpad Memory进行控制。因此,ScratchPad Memory在嵌入式系统中得到了越来越广泛的使用。Scratchpad Memory简称为SPM。在已有的事务内存实现方法中,没有对SPM进行有效的利用;而已有的各种事务内存实现方法本身,也存在着效率低或能耗高等问题
发明内容
本发明旨在克服现有技术缺陷,目的在于提供一种能够提高事务内存的效率和降低系统能耗的面向MPSoC的事务内存的实现方法。为实现上述目的,本发明采用的技术方案是第一步、SPM空间划分对于大小为M的SPM空间,首先为嵌套事务划分出大小为P的嵌套事务栈空间;对于每个事务对象中的内存操作,在SPM空间中所占用的空间大小为s,则划分完成后的SPM 空间能够存储的内存操作个数η为η = (M-P) /s(1)每个内存操作在SPM空间中的存储格式由内存操作拥有者、冲突标记、地址、修改数据和原始数据组成。第二步、面向MPSoC的事务对象的执行(1)面向MPSoC的事务对象初始化;(2)面向MPSoC的事务对象运行;(3)面向MPSoC的事务对象提出提交申请;(4)面向MPSoC的事务对象提交。第三步、面向MPSoC的事务对象嵌套对于嵌套事务,位于嵌套事务中的面向MPSoC的事务对象被压到嵌套事务栈中, 嵌套事务中面向MPSoC的事务对象的执行顺序是按照栈访问“后进先出”的顺序执行;嵌套事务栈位于第一步所划分出的大小为P的嵌套事务栈空间中。第四步、面向MPSoC的事务回滚在面向MPSoC的事务处于运行或者等待提交状态时,检查是否存在对同一内存地址进行了内存操作的面向MPSoC的事务;如果存在,则采用冲突解决方法,保留一个面向 MPSoC的事务对象的内存操作结果,从SPM空间中读取其他面向MPSoC的事务对象的内存操作,将其他面向MPSoC的事务对象的内存操作还原;如果不存在,则不改变面向MPSoC的事务状态。第五步、面向MPSoC的事务内存操作接口定义
通过面向MPSoC的事务内存操作接口来对事务内存进行访问,面向MPSoC的事务内存的接口包括(1)事务提交接口 ;(2)事务撤销接口 ; (3)事务状态获得接口 ;(4)事务是否处于活动状态接口 ;(5)嵌套事务对象启动接口 ;(6)嵌套事务对象提交接口 ;(7)嵌套中止接口。所述的面向MPSoC的事务对象由事务内存中的内存操作组成;每个事务对象有三个状态(1)活动状态;(2)中止状态;(3)提交状态。面向MPSoC的事务对象的运行分成两种情况(1)对于一个处于运行状态的面向MPSoC的事务对象,在该面向MPSoC的事务对象内部不存在新的面向MPSoC的事务对象,则该面向MPSoC的事务对象为无嵌套事务对象;(2)对于一个处于运行状态的面向MPSoC的事务对象,在该面向MPSoC的事务对象内部存在新的面向MPSoC的事务对象,则该面向MPSoC的事务对象为嵌套事务。由于采用上述技术方案,本发明使用集成在MPSoC芯片上的SPM,对事务状态的记录、修改和读取等操作均在SPM上完成,利用SPM实现了 MPSoC系统上的事务内存,实现了面向MPSoC的事务内存。本发明与现有技术相比,具有如下积极效果(1)高效性。SPM是片上存储器,是嵌入式系统存储层次中效率最高的存储器。在本发明中,对事务对象存储在SPM上,对事务对象的各种操作即存储的访问是对SPM进行的。因此,能够实现对SPM的有效使用,提高了 MPSoC中事务内存的效率;(2)低能耗。SPM没有复杂的硬件逻辑结构,本发明中,事务对象存储在SPM上,各种存储访问操作的能耗是基于SPM的能耗,从而使得本发明通过对SPM的使用,有效的降低了事务内存带来的能耗。因此,本发明适用于面向MPSoC的事务内存,充分利用了 SPM访问速度快、能耗低的特点,既加快了事务的处理速度,又降低了事务处理所产生的功耗,提高了事务内存的性能。


图1是本发明的步骤示意图;图2是图1中第五步中嵌套事务示意图;图3是图1中第三步中嵌套事务的事务对象提交前的示意图;图4是图1中第三步中嵌套事务的事务对象提交后的示意图。
具体实施例方式下面结合附图和具体实施方式
对本发明做进一步的描述,并非对其保护范围的限制。一种面向MPSoC的事务内存的实现方法。该实现方法的步骤如图1所示第一步、SPM空间划分对于大小为M的SPM空间,首先为嵌套事务划分出大小为P的嵌套事务栈空间;对于每个事务对象中的内存操作,在SPM空间中所占用的空间大小为s,则划分完成后的SPM 空间能够存储的内存操作个数η为η = (M-P) /s(1)每个内存操作在SPM空间中的存储格式由内存操作拥有者、冲突标记、地址、修改数据和原始数据组成。在事务内存中,称其对内存的操作为事务对象(Transactional Object,简称 Τ0Β)。如表1所示,每个内存操作在SPM空间中的存储格式由内存操作拥有者(Owner)、 冲突标记(Conflict Tag)、地址(Address)、修改数据(Modified Line)和原始数据 (Original Line)组成。表 权利要求
1.一种面向MPSoC的事务内存的实现方法,其特征在于该实现方法的步骤如下第一步、SPM空间划分对于大小为M的SPM空间,首先为嵌套事务划分出大小为P的嵌套事务栈空间;对于每个事务对象中的内存操作,在SPM空间中所占用的空间大小为s,则划分完成后的SPM空间能够存储的内存操作个数η为η = (M-P) /s(1)每个内存操作在SPM空间中的存储格式由内存操作拥有者、冲突标记、地址、修改数据和原始数据组成;第二步、面向MPSoC的事务对象的执行(1)面向MPSoC的事务对象初始化;(2)面向MPSoC的事务对象运行;(3)面向MPSoC的事务对象提出提交申请;(4)面向MPSoC的事务对象提交;第三步、面向MPSoC的事务对象嵌套对于嵌套事务,位于嵌套事务中的面向MPSoC的事务对象被压到嵌套事务栈中,嵌套事务中面向MPSoC的事务对象的执行顺序是按照栈访问“后进先出”的顺序执行;嵌套事务栈位于第一步所划分出的大小为P的嵌套事务栈空间中;第四步、面向MPSoC的事务回滚在面向MPSoC的事务处于运行或者等待提交状态时,检查是否存在对同一内存地址进行了内存操作的面向MPSoC的事务;如果存在,则采用冲突解决方法,保留一个面向MPSoC 的事务对象的内存操作结果,从SPM空间中读取其他面向MPSoC的事务对象的内存操作,将其他面向MPSoC的事务对象的内存操作还原;如果不存在,则不改变面向MPSoC的事务状态;第五步、面向MPSoC的事务内存操作接口定义通过面向MPSoC的事务内存操作接口来对事务内存进行访问,面向MPSoC的事务内存的接口包括(1)事务提交接口;(2)事务撤销接口;(3)事务状态获得接口;(4)事务是否处于活动状态接口;(5)嵌套事务对象启动接口;(6)嵌套事务对象提交接口;(7)嵌套中止接口。
2.根据权利要求1所述的面向MPSoC的事务内存的实现方法,其特征在于所述的面向 MPSoC的事务对象由事务内存中的内存操作组成;每个事务对象有三个状态(1)活动状态;(2)中止状态;(3)提交状态;面向MPSoC的事务对象的运行分成两种情况 (1)对于一个处于运行状态的面向MPSoC的事务对象,在该面向MPSoC的事务对象内部不存在新的面向MPSoC的事务对象,则该面向MPSoC的事务对象为无嵌套事务对象;(2)对于一个处于运行状态的面向MPSoC的事务对象,在该面向MPSoC的事务对象内部存在新的面向MPSoC的事务对象,则该面向MPSoC的事务对象为嵌套事务。
全文摘要
本发明涉及一种面向MPSoC的事务内存的实现方法。其技术方案是第一步是对SPM空间划分,对于大小为M的SPM空间,首先为嵌套事务划分出大小为P的嵌套事务栈空间;对于每个事务对象中的内存操作,在SPM空间中所占用的空间大小为s,则划分完成后的SPM空间能够存储的内存操作个数为n=(M-P)/s;第二步是面向MPSoC的事务对象的执行;第三步是面向MPSoC的事务对象嵌套;第四步是面向MPSoC的事务回滚;第五步是面向MPSoC的事务内存操作接口定义。本发明适用于面向MPSoC的事务内存,充分利用了SPM访问速度快、能耗低的特点,既加快了事务的处理速度,又降低了事务处理所产生的功耗,提高了事务内存的性能。
文档编号G06F12/02GK102193867SQ20111012941
公开日2011年9月21日 申请日期2011年5月19日 优先权日2011年5月19日
发明者刘小明, 卢建华, 张凯, 张鸿, 胡威, 邵平凡, 郭宏, 陈姚节, 陈建勋 申请人:武汉科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1