当前位置: 首页 > 专利查询>浙江大学专利>正文

基于异常处理的事务存储访问机制的实现方法及所用系统技术方案

技术编号:4118177 阅读:240 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种共享存储式多处理器系统,包括2个以上的处理器,还包括存储器以及总线/片上网络,总线/片上网络的一端与每个处理器相连、总线/片上网络的另一端与存储器相连;在每个处理器内分别设置一个事务读写缓存和一个事务属性缓存;在处理器内设置与每个处理器相对应的处理器局部缓存。本发明专利技术还同时公开了利用上述共享存储式多处理器系统进行的基于异常处理的事务存储访问机制实现方法,其设置5种异常机制,分别为:事务初始异常机制、事务满异常机制、事务读写异常机制、事务提交异常机制和事务重启异常机制。本发明专利技术用于解决事务存储实现时的缓存溢出问题。

【技术实现步骤摘要】

本专利技术涉及事务存储访问机制的实现,所涉及的实现方法采用异常处理的机制, 通过软件和硬件的协同配合,完成事务存储访问;属于计算机系统软件设计领域。
技术介绍
事务存储访问机制是为了解决共享存储式多处理器系统中的存储同步问题而提 出的。共享存储式多处理器系统中包含n(n〉 1)个处理器单元,它们可以各自执行不同的 指令代码,对同一块存储空间发出读写请求。如图l所示,其中包含有n个处理器(处理器 101-处理器103),并通过一条总线(或片上网络)(总线或片上网络104)将处理器连接起 来。多个处理器可以共同访问同一个共享存储空间(存储单元105)。在这种结构中,多个 处理器可以并行执行多段程序,运行多条指令流,与单处理器系统结构相比,其应用程序的 并行性得到利用、系统性能得到提升。 共享存储式多处理器系统中,多个处理器分别运行不同的程序代码,不同的指令流,逻辑上对存储器访问是并行共享的。而系统中一条总线(或片上网络),一个共享存储器决定了物理上存储器访问是串行的。存储同步问题由此矛盾衍生而出。当不同处理器对同一块地址空间同时进行存储访问时,实际执行顺序的不同会造成程序运行结果的不同。 为了解决共享存储式多处理器系统结构中的同步问题,程序员在编写相应应用程序时,需要采用同步自旋锁或同步阻塞锁等手段保证多处理器访存顺序,协调处理器运行。软件同步锁的方法解决同步问题存在下列缺陷 >程序可读性不强。 >程序编写困难,软件开发周期加长。 >同步锁本身没有优先级之分,不利于大型程序的扩展。 >避免死锁的算法一般复杂,而且开销大。 为了弥补同步锁方法的缺陷,事务存储访问机制由剑桥研究所的Herlihy和马萨 诸塞大学的Moss最早提出。事务指某一指令段,每个在处理器上运行的事务都拥有各自的 虚拟地址空间,其访存是互斥的。该机制使得程序员在编写程序时,将不同的原子指令段中 访问的存储空间当作不同空间对待,而一致性由该机制本身保证,最终提高了程序的可读 性。同时由于事务含有虚拟地址空间,可以在多处理器上并行执行,不需要互相等待,系统 性能得到了提高。 事务一般分为事务开始、事务执行和事务提交三个阶段,事务开始和事务提交一 般以特殊的指令代码加以区分。 事务存储访问机制实现的主要手段有软件实现(STM :Software TransactionalMemory)、硬件实现(HTM :Hardware Transactional Memory)、混合实现 (HyTM :HybridTransactional Memory)。尽管各种实现策略不尽相同,但其所达到的目标是 相同的。即实现事务的以下三个特点 >原子性(atomicity):将需要原子性执行的指令段封装成一个事务,事务与事务之间需要互斥执行,也就是要保证事务的原子性。 >隔离性(isolation):不同事务之间要相互隔离,当对同一片地址空间进行读写 操作,也就是产生冲突时,需要由硬件或软件进行地址空间的保护。 >—致性(consistency):最后运行的结果不会由于事务运行先后顺序的改变而 改变。 由软件实现的事务性存储访问机制侧重于软件程序的结构封装,通过软件抽象实 现事务,有更好的结构扩展性,但不会提升多处理器系统效率,因此实际应用中一般会考虑 由硬件实现一部分事务处理功能。而由硬件实现或混合实现的事务性存储访问机制侧重于 事务缓冲区的构建,以硬件代替软件复杂度,提升了多处理器系统效率。但这两种实现方式 的不足之处在于它们无法动态申请硬件缓存空间,无法解决事务的缓冲溢出问题。实际应 用中对于此类问题的一般解决方案是当硬件事务存储发生溢出时,重启该事务,转而寻求 软件进行事务机制的实现。由于在事务开始前无法判断是否会发生溢出,每次缓存溢出的 事务处理都需要经过硬件和软件的重复执行,因此降低了多处理器系统性能。
技术实现思路
本专利技术要解决的技术问题是提供一种共享存储式多处理器系统以及利用上述系 统进行的基于异常处理的事务存储机制实现方法,解决事务存储实现时的缓存溢出问题。 为了解决以上问题,本专利技术提供了一种共享存储式多处理器系统,该系统包括n 个处理器(n> l),还包括总线(或片上网络)和存储器,总线(或片上网络)的一端与每 个处理器相连、总线(或片上网络)的另一端与存储器相连;在每个处理器内分别设置一个 事务读写缓存和一个事务属性缓存;在处理器内设置与每个处理器相一一对应的处理器局 部缓存。 作为本专利技术的共享存储式多处理器系统的改进事务属性缓存用于保存事务顺序 编号、通用寄存器数据、处理器状态和事务起始时指令地址;事务读写缓存用于保存事务读 写操作中涉及到的地址以及写操作中涉及到的数据。 本专利技术还同时提供了利用上述共享存储式多处理器系统进行的基于异常处理的事务存储机制实现方法,设置5种异常机制,分别为事务初始异常机制、事务满异常机制、 事务读写异常机制、事务提交异常机制和事务重启异常机制; 事务初始异常机制为实现事务开始时的软硬件协调,进行事务处理的数据结构初 始化,以及事务中保存读写记录的双向链表的空间分配和初始化; 事务满异常机制为实现事务执行时的虚拟存储;当识别到事务满异常后,将事务 读写缓存中的数据拷贝到处理器局部缓存中,以数据结构的形式记录,之后清空硬件事务 读写缓存; 事务读写异常机制为实现事务执行时的虚拟存储;当识别到事务读写异常后,将 该读写操作中涉及的地址信息与事务读写记录的双向链表中的记录进行比较;若匹配,则 以事务读写记录的双向链表中的数据为准进行读写操作;若不匹配,则从主存储器中读取 数据,更新事务读写缓存。 事务提交异常机制为实现事务提交以及事务冲突检测;当识别到事务提交异常 后,将事务读写缓存中未满的数据信息拷贝入处理器局部缓存,用事务读写记录的双向链表的数据结构来表示;此时检测是否发生事务读写地址冲突,并在发生冲突时对其他处理 器产生事务重启异常; 事务重启异常机制为对发生冲突后的冲突解决进行保证;当识别到事务重启异常 后,清空处理器局部缓存中的数据结构,通过指令或地址的赋值启动事务的硬件自动恢复。 本专利技术将硬件实现和软件实现进行结合,通过五种异常机制的设计,实现了事务 存储访问机制。这五种异常机制分别为事务初始异常、事务满异常、事务读写异常、事务提 交异常和事务重启异常。实现的步骤为步骤1 :添加事务用硬件缓存;步骤2 :添加事务用 软件缓存;步骤3 :实现事务初始异常机制;步骤4 :实现事务满异常机制;步骤5 :实现事务 读写异常机制;步骤6 :实现事务提交异常机制;步骤7 :实现事务重启异常机制。事务初始 异常实现了事务开始时的软硬件协调,事务满异常和读写异常实现了事务执行时的虚拟存 储,事务提交异常实现了事务提交以及事务冲突检测,事务重启异常对发生冲突后的冲突 解决进行保证。 在本专利技术中,硬件缓存分事务属性缓存和事务读写缓存,都可以通过高速缓存、内 部寄存器或地址配值的方式实现。软件缓存指处理器局部缓存,实现方法是在系统能够软 件存储管理的程序代码中实现有关局部缓存的声明和操作函数;每个缓存对所有处理器开 放读权限,仅对相应处理器开放写权限;权限由系统软件维本文档来自技高网
...

【技术保护点】
一种共享存储式多处理器系统,包括2个以上的处理器,还包括存储器以及总线/片上网络,总线/片上网络的一端与每个处理器相连、总线/片上网络的另一端与存储器相连;其特征是:在每个处理器内分别设置一个事务读写缓存和一个事务属性缓存;在处理器内设置与每个处理器相对应的处理器局部缓存。

【技术特征摘要】
一种共享存储式多处理器系统,包括2个以上的处理器,还包括存储器以及总线/片上网络,总线/片上网络的一端与每个处理器相连、总线/片上网络的另一端与存储器相连;其特征是在每个处理器内分别设置一个事务读写缓存和一个事务属性缓存;在处理器内设置与每个处理器相对应的处理器局部缓存。2. 根据权利要求1所述的共享存储式多处理器系统,其特征是所述事务属性缓存用 于保存事务顺序编号、通用寄存器数据、处理器状态和事务起始时指令地址;事务读写缓存 用于保存事务读写操作中涉及到的地址以及写操作中涉及到的数据。3. 利用如权利要求1或2所述的共享存储式多处理器系统进行的基于异常处理的事务 存储访问机制实现方法,其特征在于设置5种异常机制,分别为事务初始异常机制、事务 满异常机制、事务读写异常机制、事务提交异常机制和事务重启异常机制;所述事务初始异常机制为实现事务开始时的软硬件协调,进行事务处理的数据结构初 始化,以及事务中保存读写记录的双向链表的空间分配...

【专利技术属性】
技术研发人员:刘鹏姚懿鹏王苑瑾高丰吴东史册王维东姚庆栋
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1