一种硬件型事务存储系统中事务线程的阻塞唤醒方法技术方案

技术编号:4040802 阅读:300 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种硬件型事务存储系统中事务线程的的阻塞唤醒方法,该方法在事务支持硬件中增加一个事务线程寄存器,在该寄存器中记录当前执行的事务线程的标识符;然后当阻塞的事务线程被重新调度执行,如果与寄存器中的线程标识符相同,则该事务继续进行提交操作;如果与寄存器中的线程标识符不同,则清除当前事务现场,并让事务重新执行。本发明专利技术的方法解除了硬件型事务存储系统中事务必须在一个时间片内执行完毕的限制,解决了事务缓冲区难以迁移的问题,优化了硬件型事务存储系统中的事务的高效执行。

【技术实现步骤摘要】

本专利技术涉及一种属于计算机系统结构中的多线程并行编程手段,特别涉及一种硬 件型事务存储系统中事务线程的阻塞唤醒方法。
技术介绍
当前,随着工艺和应用模式的发展,无论是高端还是低端、通用式还是嵌入式,传 统的采用指令级并行的微处理器系统结构正在由单线程向多线程、单处理器向多处理器、 单核向多核进行发展。与此同时,人们应用中大规模数据处理的需求也在与日俱增。如何 建立一个有效的编程模型使得并行程序可以充分利用这些CPU和核,发挥多核处理器的资 源优势,从根本上提高并行程序运行性能、满足人们的计算需求,是摆在研究人员面前一个 急需解决的难题。现在人们编写并行程序的主要方法是多线程,硬件或软件的并行化也是 朝着挖掘更多可以并行的线程的方向发展。传统的并行程序设计方法需要程序员来维护各 个进程之间的同步,随着进程数目的增加以及共享资源的增多,手工维护这种同步越来越 困难。在CMP/SMP结构上采用由用户显式制导的并行程序设计模型,使用锁和同步变量来 实现同步的方法存在很大的局限性。粗粒度锁不易开发并行性,细粒度锁会带来较大的额 外系统开销;同时锁机制会导致死锁、优先权倒置、编程困难等种种问题。事务存储(Transactional Memory,TM)模型提供了一种在CMP/SMP结构上程序 并行执行和同步的方法,能够解决锁机制带来的种种问题,提高程序的并发性。事务存储 模型使得程序在发生数据冲突时才串行化执行,最大限度地挖掘程序中潜在的并行性,极 大地提高了多线程编程的正确性和效率,使得程序员可以集中精力于多核程序的设计。目 前有大量的研究工作已经或正致力于硬件支持的事务存储模型(Hardware Transactional Memory, HTM)的研究,充分显示出该方案可能被未来主流CMP结构采纳的巨大潜力。对于HTM系统来说,当一个事务的执行时间过长,超过一个时间片的限制时,事务 线程会先被阻塞,等到分配到新的时间片,事务可能被迁移到另外的处理器核上继续执行。 但是事务缓冲区存在难以迁移的特点,所以被唤醒的事务无法在新的处理器核上恢复事务 现场,容易导致事务频繁重启。对于这个问题,目前已有的硬件型事务存储系统结构采取将 事务限定在一个时间片内执行完毕的办法,但是无法实质上解决事务迁移的问题,反而限 制了事务的灵活性。因此,针对事务迁移问题,设计一种有效的阻塞唤醒方法是有十分重要 的。
技术实现思路
本专利技术的目的是提供,该方 法解除了硬件型事务存储系统中事务必须在一个时间片内执行完毕的限制,解决了事务缓 冲区难以迁移的问题,优化了硬件型事务存储系统中的事务的高效执行。本专利技术的,该方法解除了硬 件型事务存储系统中事务必须在一个时间片内执行完毕的限制,具体实现步骤为第一步唤醒事务线程(A)当处理器开始执行事务时,一方面事务线程寄存器记录下当前所执行的事务 线程的标识符;(B)另一方面在事务缓冲区的读/写标志位中记录下当前所执行的事务的数据;(C)若事务线程的执行时间超过一个时间片,则阻塞该线程;(D)若事务线程的执行时间未超过一个时间片,则查看事务是否执行完成,若未完 成,继续执行当前事务;(E)当事务被执行完成后则进行事务提交;(F)对于阻塞的线程需要依据时间片轮转调度机制来决定唤醒事务线程;所述的时间片轮转调度机制是当线程用完它的时间片后,它将被转移到就绪线 程队列的末尾,直到排在它之前的所有线程全部执行完毕或者时间片用完时,操作系统才 将其唤醒;第二步被唤醒的事务线程检查事务现场(A)当事务线程被唤醒时,根据事务线程寄存器中的线程标识符能够得到当前处 理器核内正在执行的事务线程,进而根据事务现场判断条件来判断事务现场是否被破坏;(B)若是,则对事务现场已被破坏的事务,清除事务缓冲区内的全部数据,并重新 启动事务;(C)若否,则对事务继续执行并提交;所述的事务现场是指事务缓冲区内保存的事务的读、写数据;所述的事务现场判断条件是如果事务线程寄存器中的线程标识符等于被唤醒事 务线程的标识符,则事务缓冲区内保存的是该事务的读、写数据,事务现场未被破坏;如果 事务线程寄存器中的线程标识符不等于被唤醒的事务线程的标识符,则事务缓冲区内保存 的是脏数据,事务现场已被破坏。本专利技术阻塞唤醒的优点在于①本专利技术基于现有的多核处理器结构,只需在每个处理器核内增加少量硬件即可 支持事务执行,这些硬件包括一个事务缓冲区和一个事务线程寄存器。②本专利技术只需在处理器核内增加少量硬件即可支持事务执行,这些硬件型事务存 储系统包括一个事务缓冲区和一个事务线程寄存器。本专利技术的方法解除了硬件型事务存储 系统中事务必须在一个时间片内执行完毕的限制,解决了事务缓冲区难以迁移的问题,优 化了硬件型事务存储系统中的事务的高效执行。附图说明图1是本专利技术硬件型事务存储系统中事务线程的阻塞唤醒方法的流程图。图2是本专利技术硬件型事务存储系统的结构图。图3是未采用本专利技术方法的事务存储系统在不同处理器个数下的加速比图。图4是采用本专利技术方法的事务存储系统在不同处理器个数下的加速比图。图5是未采用本专利技术方法的事务存储系统在不同处理器个数下的启动事务个数 与提交事务个数之比。图6是采用本专利技术方法的事务存储系统在不同处理器个数下的启动事务个数与提交事务个数之比。 具体实施例方式下面将结合附图和实施例对本专利技术做进一步的详细说明。参见图1所示,本专利技术是, 该方法是这样实现的第一步唤醒事务线程(A)当处理器开始执行事务时,一方面事务线程寄存器(TTR)记录下当前所执行 的事务线程的标识符activeTID ;(B)另一方面在事务缓冲区(TC)的读/写标志位中记录下当前所执行的事务的数 据;(C)若事务线程的执行时间超过一个时间片(是),则阻塞该线程;(D)若事务线程的执行时间未超过一个时间片(否),则查看事务是否执行完成, 若未完成(否),继续执行当前事务;(E)当事务执行完成(是)则进行事务提交;(F)对于阻塞的线程依据时间片轮转调度机制(TCSM)来决定唤醒事务线程;所述的时间片轮转调度机制(TCSM)是当线程用完它的时间片后,它将被转移到 就绪线程队列的末尾,直到排在它之前的所有线程全部执行完毕或者时间片用完时,操作 系统才将其唤醒;第二步被唤醒的事务线程检查事务现场(A)当事务线程被唤醒时,根据TTR中的线程标识符能够得到当前处理器核内正 在执行的事务线程,进而根据事务现场判断条件来判断事务现场是否被破坏;(B)若是,则对事务现场已被破坏的事务,清除事务缓冲区TC内的全部数据,并重 新启动事务;(C)若否,则对事务继续执行并提交;所述的事务现场是指事务缓冲区内保存的事务的读、写数据;所述的事务现场判断条件是如果TTR中的线程标识符等于被唤醒事务线程的标 识符,则TC内保存的是该事务的读、写数据,事务现场未被破坏;如果TTR中的线程标识符 不等于被唤醒的事务线程的标识符,则TC内保存的是脏数据,事务现场已被破坏。参见图2所示,基于现有的多核处理器结构,通过在处理器核内增加部分支持事 务执行的硬件,以实现对程序中事务的高效执行。在本专利技术中,硬件型事务存储系统包括一 个事务缓冲区和一个事务线程寄存器。事务线程寄存器(Transaction Thread Register本文档来自技高网
...

【技术保护点】
一种硬件型事务存储系统中事务线程的阻塞唤醒方法,其特征在于该方法是这样实现的:第一步:唤醒事务线程(A)当处理器开始执行事务时,一方面事务线程寄存器记录下当前所执行的事务线程的标识符;(B)另一方面在事务缓冲区的读/写标志位中记录下当前所执行的事务的数据;(C)若事务线程的执行时间超过一个时间片,则阻塞该线程;(D)若事务线程的执行时间未超过一个时间片,则查看事务是否执行完成,若未完成,继续执行当前事务;(E)当事务被执行完成后则进行事务提交;(F)对于阻塞的线程需要依据时间片轮转调度机制来决定唤醒事务线程;所述的时间片轮转调度机制是:当线程用完它的时间片后,它将被转移到就绪线程队列的末尾,直到排在它之前的所有线程全部执行完毕或者时间片用完时,操作系统才将其唤醒;第二步:被唤醒的事务线程检查事务现场(A)当事务线程被唤醒时,根据事务线程寄存器中的线程标识符能够得到当前处理器核内正在执行的事务线程,进而根据事务现场判断条件来判断事务现场是否被破坏;(B)若是,则对事务现场已被破坏的事务,清除事务缓冲区内的全部数据,并重新启动事务;(C)若否,则对事务继续执行并提交;所述的事务现场是指事务缓冲区内保存的事务的读、写数据;所述的事务现场判断条件是:如果事务线程寄存器中的线程标识符等于被唤醒事务线程的标识符,则事务缓冲区内保存的是该事务的读、写数据,事务现场未被破坏;如果事务线程寄存器中的线程标识符不等于被唤醒的事务线程的标识符,则事务缓冲区内保存的是脏数据,事务现场已被破坏。...

【技术特征摘要】

【专利技术属性】
技术研发人员:刘轶吴名瑜张昕李鹤张翠
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

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

1