CN101615132A - 事务存储系统及其控制方法 - Google Patents
事务存储系统及其控制方法 Download PDFInfo
- Publication number
- CN101615132A CN101615132A CN200810127541A CN200810127541A CN101615132A CN 101615132 A CN101615132 A CN 101615132A CN 200810127541 A CN200810127541 A CN 200810127541A CN 200810127541 A CN200810127541 A CN 200810127541A CN 101615132 A CN101615132 A CN 101615132A
- Authority
- CN
- China
- Prior art keywords
- affair
- buffer
- affairs
- storage system
- threshold value
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种事务存储系统及其控制方法。所述事务存储系统包括:一个或更多个处理器或处理器核,以及可被所述一个或更多个处理器或处理器核共享的事务缓存器,其中,所述事务缓存器包括:寄存器,用于存储预设的阈值;以及计数器,用于对当前正在使用所述事务缓存器的并发事务的数目进行计数,其中,只有当所述计数值小于所述预设阈值时,要使用所述事务缓存器的新事务才被允许执行。在本发明的实施例中,通过限制允许使用同一个事务缓存器的并发事务的数目,在不会显著影响系统性能的情况下,实现了降低系统复杂度、降低硬件成本、省电等诸多优点。
Description
技术领域
本发明总体上涉及计算机并行处理技术,并且尤其涉及一种事务存储(Transactional Memory,TM)系统及其控制方法。
背景技术
随着多核处理器技术以及并行计算技术的不断更新和发展,传统的串行程序不论在效率上还是性能上都已经无法跟上信息高速发展的脚步,因此,程序员不得不开发线程级并行(thread-level parallelism)以提高片上计算资源的使用效率,但也因此带来了新的挑战和问题。目前,不同线程间的同步、对共享资源的访问等都是通过锁(lock)等机制实现的。然而,这种传统的基于锁等的并发系统存在明显的局限性。例如,粗粒度的锁机制的可扩展性不好,而细粒度的锁机制虽然扩展性能较好,但由于算法设计的复杂性,程序员很难借助细粒度的锁机制实现高效的应用。另外,使用锁机制还会带来诸多问题,例如死锁、优先级反转等,从而极大地影响了并行应用的效率和性能。
为了解决上述问题,目前已经提出了所谓的事务存储技术,其通过将不同并行执行的线程事务化,用事务操作来代替锁机制,降低了编程的复杂度。这里所谓的事务,是指一段需要以原子方式运行的程序,通常用于访问共享数据,即,事务是被单线程执行的、对存储器进行读写的有序操作序列。在使用事务存储技术时,事务之间可并行执行,并且一般采用一个缓存空间将事务所写的数据存储起来,同时采用各种硬件手段在事务运行时自动检查是否存在冲突。在本文中,该缓存空间被称为事务缓存器。在此,冲突被定义为:两个或更多事务访问同一缓存块(通常为64B或者128B),并且至少有一个事务要修改该缓存块中的数据。如果没有检测到冲突,则被临时缓存的数据将在事务结束时提交给存储系统;否则,其中一个或更多事务会被放弃(abort)和回滚(rollback),并在将来的某个时间被重试,并且该事务的数据会被丢弃。显然,多数情况下没有冲突发生,因此大多数事务都是并行执行的。程序员使用类似粗粒度锁的编程方式,就可以取得接近细粒度锁的性能。
图1示出了典型的事务缓存器的示意图,一个事务缓存器可以被一个或者更多处理器或处理器核共享,以支持一个或更多事务同时访问该缓存器。在图1中,为了简单起见,只画出了一个处理器的情形。事务缓存器100包括写缓存器W-buf和读缓存器R-buf。当程序执行流进入到一个事务中时,该事务的所有写数据及其地址将被临时保存到写缓存器W-buf中,而不是像正常方式那样写入存储系统;所有读数据的地址被保存到读缓存器。写缓存器和读缓存器的内部结构和已有的第一级高速缓存(L1cache)相似。不同的事务缓存器之间通过总线进行连接。事务的读写操作被广播到总线上,并且被其它的事务缓存器所监听到。其它事务缓存器可以通过监听来检测冲突。
然而,随着并发事务数目的增多,也为并行计算系统的体系结构设计带来了新的挑战,如何以较为简化的方式、低成本地使用事务存储技术来有效地实现并行处理,仍然是一个亟待解决的问题。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
为了解决现有技术的上述问题,本发明的目的是提供一种改进的事务存储系统及其控制方法。
为了实现上述目的,根据本发明的一个方面,提供了一种事务存储系统,它包括:一个或更多个处理器或处理器核,以及可被所述一个或更多个处理器或处理器核共享的事务缓存器,其中,所述事务缓存器包括:寄存器,用于存储预设的阈值;以及计数器,用于对当前正在使用所述事务缓存器的并发事务的数目进行计数,其中,只有当所述计数值小于所述预设阈值时,要使用所述事务缓存器的新事务才被允许执行。
根据本发明的另一个方面,还提供了一种事务存储系统的控制方法,所述事务存储系统包括一个或更多个处理器或处理器核,以及可被所述一个或更多个处理器或处理器核共享的事务缓存器,所述方法包括以下步骤:对当前正在使用所述事务缓存器的并发事务的数目进行计数;以及,只有当所述计数值小于预设的阈值时,要使用所述事务缓存器的新事务才被允许执行。
依据本发明的其它方面,还提供了相应的计算机可读存储介质和计算机程序产品。
根据本发明的实施例,通过对允许使用同一事务缓存器的并发事务的数目进行了限制,同时兼顾了系统性能和系统复杂度的问题。
通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。
附图说明
本发明可以通过参考下文中结合附图所给出的描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分,而且用来进一步举例说明本发明的优选实施例和解释本发明的原理和优点。在附图中:
图1示出了一个典型的事务缓存器的示意图;
图2示出了现有技术中给出的事务存储(TM)系统的性能实验结果的曲线图;
图3示出了根据本发明的实施例所采用的对TM系统进行模拟和评估的评估平台的示意图;
图4是对图3所示的CMP系统300的更为详细的局部示意图,其中示出了共享同一个事务缓存器的两个群组;
图5示出了一个简单的用于说明事务并发度的示意图;
图6的曲线图示出了根据本发明的实施例、基于图3和4所示的评估平台获得的针对五个基准的执行时间与缓存器存取并发度之间的关系;
图7示出了根据本发明实施例的事务存储系统——CMP系统的简化示意图;
图8示出了采用图7所示的CMP系统时的事务并发度的情形;以及
图9示出了根据本发明实施例的一种事务存储系统的控制过程。
本领域技术人员应当理解,附图中的元件仅仅是为了简单和清楚起见而示出的,而且不一定是按比例绘制的。例如,附图中某些元件的尺寸可能相对于其他元件放大了,以便有助于提高对本发明实施例的理解。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于这个公开内容的本领域技术人员来说这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
目前,为了更好地评价使用事务存储技术对改善系统性能的影响,已经设计了许多事务存储模型并进行了大量的模拟实验。
例如,在Yossi Lev、Mark Moir和Dan Nussbaum所著的“PhTM:Phased Transactional Memory”(Workshop on Transactional Computing(TRANSACT),2007)(该文可从下处获得:http://research.sun.com/ projects/scalable/pubs/TRANSACT2007-PhTM.pdf)中,分别使用Wisconsin LogTM模拟器和Sun FireTM E25K对支持硬件事务存储(HTM)技术的系统和不支持HTM技术的系统进行了模拟实验。在实验过程中,N个线程中的每个线程使用事务化的Berkeley DB锁子系统(Berkeley DB lock subsystem)或红-黑树数据结构(red-black tree datastructure),重复地请求和释放对于不同对象的锁,并测量每秒内实现的迭代总次数(即,每秒运算数)。图2示出了该文献中给出的性能实验结果的曲线图(即,该文献中的图1),其中,(a)表示使用Wisconsin LogTM模拟器和Berkeley DB锁子系统的情形,(b)表示使用Sun FireTM E25K和Berkeley DB锁子系统的情形,(c)表示使用Wisconsin LogTM模拟器和红-黑树数据结构的情形,(d)表示使用Sun FireTM E25K和红-黑树数据结构的情形。从图2中可以很明显地看出,在线程数目从0到32的范围内,随着并行执行的线程数目的增多,每秒运算数呈现出不断增加的趋势,也就是说,事务存储系统一般会加速处理过程。
另外,在Lee Baugh、Naveen Neelakantam和Craig Zilles所著的“Using Hardware Memory Protection to Build a High-Performance,Strongly Atomic Hybrid Transactional Memory”(Proceedings of the 35thAnnual International Symposium on Computer Architecture,2008年6月)(该文可从下处获得:http://www-faculty.cs.uiuc.edu/~zilles/papers/ ufo hybridTM.isca2008.pdf)中,对几种混合事务存储(HyTM)系统进行了性能模拟实验,并对结果进行了比较分析。从该文献的图5中不难看出,随着并行执行的线程数目的增加,系统一般都会获得不断增加的性能加速,并且在线程数目从8到16的范围内具有较好的性能增益。
此外,在Arrvindh Shriraman、Sandhya Dwarkadas和Michael L.Scott所著的“Flexible Decoupled Transactional Memory Support”(Proceedings of the 35th Annual International Symposium on ComputerArchitecture,2008年6月)(该文可从下处获得:http://www.cs.rochester. edu/u/ashriram/papers/2008ISCA FlexTM.pdf)中,也给出了几种事务存储系统的性能模拟实验数据。从其中的图4中不难看出,随着并行执行的线程数目的增加,各种系统的性能加速也在不断增加,并且在线程数目从8到16的范围内具有较好的性能增益。
另外,在Lance Hammond、Brian D.Carlstrom、Vicky Wong、MichaelChen、Christos Kozyrakis、Kunle Olukotun等人所著的“Transactionalcoherence and consistency:simplifying parallel hardware and software”(IEEE Micro,第24卷,第6期,第92-103页,2004年12月)一文中,同样也给出了几种事务存储系统的性能加速与并行执行的线程数目之间的实验分析数据。从其中的图4(a)中也可以很明显地看出,在单芯片多处理器(CMP)平台上,在4到32的范围内随着处理器数目的增加(即,随着并行执行的线程数目的增加),系统性能加速也明显地随之增加。
从以上的多篇文献中不难看出,目前普遍认可和接受的观点是:在单芯片多处理器(CMP)或对称式多处理器(SMP)平台上,随着并行执行的线程数目的增加,事务存储系统会获得更多的性能加速,具有更好的性能增益,也就是说,在硬件结构允许的情况下,并行执行的线程数目越多越好。
为了获得更好的实验结果,本申请的发明人在对各种常见TM系统进行性能模拟实验时,对模拟器进行了改进,从而对TM系统的每个细节进行模拟,以更好地对TM系统进行评估。具体来说,发明人修改了IBM公司的Mambo全系统模拟器(Mambo full system simulator)来对TM系统进行建模。Mambo支持对基于POWER/PowerPC的CMP和SMP的可配置的周期准确的模拟。
图3示出了根据本发明的一个实施例所采用的对TM系统进行模拟和评估的评估平台——CMP系统300的示意图。如图3所示,CMP系统300包含8个通过片上互连310连接的群组:群组0~群组7。每个群组均包括4个处理器核和一个共享的L2高速缓存,并且为简单起见在此假设每个处理器核上只运行单个线程。每个核以例如4GHz的频率运行。每个核中的流水线是无序的多问题流水线,可以包含两个定点执行单元、两个浮点执行单元、两个加载-存储单元、一个分支单元和一个CR逻辑执行单元(该单元负责对条件寄存器执行逻辑运算)。片上互连310负责在各个群组之间进行通信。
图4是对图3所示的CMP系统300的更为详细的局部示意图,其中示出了共享同一个事务缓存器的两个群组。在实际的系统中,也可以由两个以上的群组共享这一个事务缓存器,但是为了简单起见,图4中仅示出了两个群组。如图所示,事务缓存器包含写缓存器W-buf和读缓存器R-buf。
在此,事务加载/存储(transactional load/store)指令(即,在一个事务内的加载/存储指令)具有与普通加载/存储指令不同的语义。事务存储指令用于将数据保存到写缓存器W-buf。如果命中,则数据被直接写入到写缓存器W-buf。如果未命中,则进行冲突检测,此时,如果没有检测到冲突,则事务存储指令把数据保存到写缓存器W-buf;而如果检测到冲突,则放弃稍后开始的那个事务。如果写缓存器W-buf溢出,则放弃该事务。而事务加载指令从高速缓存和写缓存器W-buf两者中读取数据,并且检查地址是否命中读缓存器R-buf。如果命中写缓存器W-buf,则返回来自写缓存器W-buf的数据,并且忽视来自高速缓存的数据。如果未命中写缓存器W-buf,但是命中读缓存器R-buf,则返回来自高速缓存的数据。如果写缓存器W-buf和读缓存器R-buf都未命中,则进行冲突检测,此时,如果没有检测到冲突,则事务加载指令从高速缓存中读取数据,并且把地址记录到读缓存器R-buf中;而如果检测到冲突,则放弃稍后开始的那个事务。如果读缓存器R-buf溢出,则放弃该事务。
当事务加载和存储指令均未命中系统中的多个事务缓存器时,通过在事务缓存器之间广播读/写消息,来执行冲突检测。每个事务缓存器探听这些消息,并且检测并发事务之间的冲突。在这个设计中使用了用于连接所有事务缓存器的专用冲突检测总线。以大小为高速缓存行大小、即128B的块粒度(block granularity),执行冲突检测。如果两个事务同时访问同一缓存器块,并且其中至少一个事务是写操作,则会检测到冲突。显然,这个粒度大小可能导致虚假的共享,并且因此导致虚假的冲突。
如果没有检测到冲突,则在事务提交时,通过顺序地遍历写缓存器W-buf,把修改的块写到存储系统的更低级别,使写缓存器W-buf中的事务存储指令进入体系架构状态。事务提交动作会使冲突检测总线和高速缓存相干互连上的所有冲突的请求停止(stall),以保证原子性(atomicity)。在事务提交期间,除非其它核访问冲突的地址,否则它们不会被停止。
如果存在冲突,则放弃这两个相冲突的事务之一。被放弃的事务跳转到预先定义的软件处理程序,由该软件处理程序通过清除写缓存器W-buf和读缓存器R-buf,来使该事务回滚(roll back)。软件处理程序然后在稍后的时间重新启动该事务。
在图3和4所示的评估平台——CMP系统300中,所使用的基准(benchmark)来自STAMP。STAMP是由斯坦福大学(StanfordUniversity)公布的TM基准,其中包括以下程序:(1)genome,它是生物信息学应用,用于从非常大的基因片段池进行基因排序;(2)delaunay,是用于图形绘制应用的网格生成程序;(3)Vacation,它是由存储器内数据库(in-memory database)驱动的旅行预订系统;(4)rbtest,用于实现红-黑树。此外,还开发了某些应用内核,诸如B+tree,它表示某些常用的用于管理共享数据的数据结构。
为了更好地解释本发明的实验结果,在本文中引入了如下两个度量:事务并发度和缓存器存取并发度。如果两个事务的执行时间窗重叠,则这两个事务被定义为是并发的,即,事务并发度为2。在此,时间窗是用于执行事务体所需的时间段。每个重试的事务被视为新事务来对待。被允许存取同一个特定事务缓存器的事务的数目(即线程的数目)被称为缓存器存取并发度。
图5示出了一个简单的用于说明事务并发度的示意图。图5中示出的分别标有A、B、C和D的矩形框分别表示事务A~D的执行时间窗。从图5中可以看出,事务A的执行时间窗分别与B、C和D的执行时间窗重叠,并且在时刻t事务A的事务并发度为3。
图6的曲线图示出了根据本发明的实施例、基于图3和4所示的评估平台300获得的针对上述五个基准的执行时间与缓存器存取并发度之间的关系。从所示的曲线图中可以看出,当缓存器存取并发度N大于16时,随着N的变化,针对上述五个基准的执行时间几乎没有什么太大的变化,即,几乎没有获得性能增益;而当N在8到16的范围内变化时,性能增益改变也很小。这意味着,在N>8、尤其是N>16时,即使在系统硬件结构允许的情况下,允许有更多的事务并发执行也并不能在性能(即,事务执行时间)上实现更多的优点。
基于上述这个发现的事实,发明人对现有的事务存储系统进行了改进,通过限制存取同一个事务缓存器的并发事务的数目不超过允许的最大缓存器存取并发度阈值,在不会导致系统性能(即执行时间)显著变化的情况下带来了诸多优点,例如,极大地降低了事务存储系统的复杂度,降低了硬件成本,省电等。
图7示出了根据本发明实施例的事务存储系统——CMP系统700的简化示意图,其中为了简单起见仅仅示出了共享同一个事务缓存器720的两个群组——群组0和群组1。然而,显然本发明并不局限于此。
如图7所示,事务缓存器720中除了包含写缓存器W-buf和读缓存器R-buf之外,还包括计数器740和寄存器730。其中,计数器740用于统计目前有多少个事务正在使用该事务缓存器720,而寄存器730用于存储允许的最大缓存器采取并发度阈值。
如果计数器740的计数结果表明正在使用该事务缓存器720的并发事务的数目不小于寄存器730中设定的阈值,则后续的要存取该事务缓存器720的事务(即,新事务)不能被允许使用该事务缓存器。当有一个使用该事务缓存器的事务完成时,计数器740的值减1。寄存器730中的阈值可以通过软件来设置,并且可以针对不同的具体应用选择不同的适当值,优选不大于16,更为优选的是不大于8。
图8示出了采用图7所示的CMP系统时的事务并发度的情形。如图8所示,假设在t0时间有m个事务T1、T2、......、Tm并发地使用同一事务缓存器,并且事务数目m等于所设定的最大缓存器采取并发度阈值。如果在t0时间有另一事务Tn也要存取该同一事务缓存器,则此时事务Tn不能被允许使用该事务缓存器,直到m个事务T1、T2、......Tm中有一个事务完成时才能被允许使用该事务缓存器,即,直至t1时间事务T2完成时(此时计数器740的值=m-1),事务Tn才能被允许使用该事务缓存器。
通过以上的描述不难看出,根据本发明的实施例,通过在事务存储系统中限制存取同一事务缓存器的并发事务的数目,可以在不会显著影响系统性能的情况下实现许多优点。例如,有助于降低系统硬件成本。由于限制了并发事务的数目,使得硬件不需要支持大量的并发事务。每个事务可以预留某些资源,例如,体系架构状态保存和事务缓存器。而且,支持较少数量的并发事务,意味着只需要较少的资源。
其次,运行更多的并发事务,意味着需要耗费更多的电能。因此,根据本发明的实施例,由于限制了并发事务的数目,所以可以实现省电。也就是说,如果对并发事务的数目限制不会导致系统性能显著变化,则同时运行更少数目的事务是合乎需要的。
此外,根据本发明的实施例,还简化了系统的设计和验证工作。对处理器进行验证是一项非常耗时的工作。如果仅需要支持较少数量的并发事务,则显然可以简化验证工作。
当然,可能还存在其他许多优点,在此就不再一一赘述了。
虽然以上结合附图以CMP系统为例对本发明的实施例进行了描述,但是,本领域技术人员应当明白,本发明显然并不局限于此,本发明的原理同样也可以适用于SMP系统。
而且,虽然以上结合图7以硬件的形式示出和描述了根据本发明的实施例,但是,显然图7中所示的寄存器和计数器也可以以软件的方式实现。
图9示出了根据本发明实施例的一种事务存储系统的控制过程900。该控制过程900可以在例如图7所示的系统中执行。
如图9所示,当在步骤S910确定有要存取某一事务缓存器的新事务到来时,在步骤S920中,统计当前使用该事务缓存器的并发事务的数目。在步骤S930,判断步骤S920中得到的统计值是否小于一个预设的阈值(即,允许的最大缓存器存取并发度阈值)。如果确定统计值小于所述阈值,则在步骤S940,允许新事务执行,即,允许新事务使用(即存取)该事务缓存器;否则,在步骤S950,新事务等待,并重复步骤S920和S930的处理,直到因有使用该事务缓存器的事务执行完成而导致统计值小于所述阈值时,才允许该新事务执行。
此外,显然,根据本发明的上述方法的各个操作过程也可以以存储在各种机器可读的存储介质中的计算机可执行程序的方式实现。
而且,本发明也可以通过下述方式实现:将存储有上述可执行程序代码的存储介质直接或者间接地提供给系统或设备,并且该系统或设备中的计算机或者中央处理单元(CPU)读出并执行上述程序代码。此时,只要该系统或者设备具有执行程序的功能,则本发明的实施方式不局限于程序,并且该程序也可以是任意的形式,例如,目标程序、解释器执行的程序或者提供给操作系统的脚本程序等。上述这些机器可读存储介质包括但不限于:各种存储器和存储单元,半导体设备,磁盘单元例如光、磁和磁光盘,以及其它适于存储信息的介质等。
另外,客户计算机通过连接到因特网上的相应网站,并且将依据本发明的计算机程序代码下载和安装到计算机中然后执行该程序,也可以实现本发明。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。而且,在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上虽然结合附图详细描述了本发明的实施例,但是应当明白,上面所描述的实施方式只是用于说明本发明,而并不构成对本发明的限制。对于本领域的技术人员来说,可以对上述实施方式作出各种修改和变更而没有背离本发明的实质和范围。因此,本发明的范围仅由所附的权利要求及其等效含义来限定。
Claims (10)
1.一种事务存储系统,包括:一个或更多个处理器或处理器核,以及可被所述一个或更多个处理器或处理器核共享的事务缓存器,其中,所述事务缓存器包括:
寄存器,用于存储预设的阈值;以及
计数器,用于对当前正在使用所述事务缓存器的并发事务的数目进行计数,
其中,只有当所述计数值小于所述预设阈值时,要使用所述事务缓存器的新事务才被允许执行。
2.根据权利要求1的事务存储系统,其中,所述预设阈值不大于16。
3.根据权利要求2的事务存储系统,其中,所述预设阈值不大于8。
4.根据权利要求1至3中任意一项的事务存储系统,其中,所述事务存储系统为单芯片多处理器单芯片多处理器系统或对称式多处理器系统。
5.根据权利要求1至3中任意一项的事务存储系统,其中,如果所述计数值不小于所述预设阈值,则所述要使用所述事务缓存器的新事务等待,直到所述计数值小于所述预设阈值时才被允许执行。
6.一种事务存储系统的控制方法,所述事务存储系统包括一个或更多个处理器或处理器核,以及可被所述一个或更多个处理器或处理器核共享的事务缓存器,所述方法包括以下步骤:
对当前正在使用所述事务缓存器的并发事务的数目进行计数;以及
只有当所述计数值小于预设的阈值时,要使用所述事务缓存器的新事务才被允许执行。
7.根据权利要求6的控制方法,其中,所述预设阈值不大于16。
8.根据权利要求7的控制方法,其中,所述预设阈值不大于8。
9.根据权利要求6至8中任意一项的控制方法,其中,所述事务存储系统为单芯片多处理器系统或对称式多处理器系统。
10.根据权利要求6至8中任意一项的控制方法,其中,如果所述计数值不小于所述预设阈值,则所述要使用所述事务缓存器的新事务等待,直到所述计数值小于所述预设阈值时才执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810127541A CN101615132A (zh) | 2008-06-27 | 2008-06-27 | 事务存储系统及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810127541A CN101615132A (zh) | 2008-06-27 | 2008-06-27 | 事务存储系统及其控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101615132A true CN101615132A (zh) | 2009-12-30 |
Family
ID=41494790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810127541A Pending CN101615132A (zh) | 2008-06-27 | 2008-06-27 | 事务存储系统及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101615132A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908000A (zh) * | 2010-07-08 | 2010-12-08 | 北京航空航天大学 | 一种硬件型事务存储系统中事务线程的阻塞唤醒方法 |
CN104408088A (zh) * | 2014-11-11 | 2015-03-11 | 北京奇虎科技有限公司 | 并发请求的控制方法及装置 |
CN105183922A (zh) * | 2015-10-26 | 2015-12-23 | 北京美数信息科技有限公司 | 一种高并发的存储装置 |
CN105205178A (zh) * | 2015-10-26 | 2015-12-30 | 北京美数信息科技有限公司 | 一种多进程访问内存数据库系统 |
CN111008157A (zh) * | 2019-11-29 | 2020-04-14 | 北京浪潮数据技术有限公司 | 存储系统写缓存数据下发方法及相关组件 |
-
2008
- 2008-06-27 CN CN200810127541A patent/CN101615132A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908000A (zh) * | 2010-07-08 | 2010-12-08 | 北京航空航天大学 | 一种硬件型事务存储系统中事务线程的阻塞唤醒方法 |
CN101908000B (zh) * | 2010-07-08 | 2012-10-10 | 北京航空航天大学 | 一种硬件型事务存储系统中事务线程的阻塞唤醒方法 |
CN104408088A (zh) * | 2014-11-11 | 2015-03-11 | 北京奇虎科技有限公司 | 并发请求的控制方法及装置 |
CN105183922A (zh) * | 2015-10-26 | 2015-12-23 | 北京美数信息科技有限公司 | 一种高并发的存储装置 |
CN105205178A (zh) * | 2015-10-26 | 2015-12-30 | 北京美数信息科技有限公司 | 一种多进程访问内存数据库系统 |
CN111008157A (zh) * | 2019-11-29 | 2020-04-14 | 北京浪潮数据技术有限公司 | 存储系统写缓存数据下发方法及相关组件 |
CN111008157B (zh) * | 2019-11-29 | 2022-02-18 | 北京浪潮数据技术有限公司 | 存储系统写缓存数据下发方法及相关组件 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100530080C (zh) | 用于在一系统中进行多存储缓冲器转发的系统 | |
CN100461110C (zh) | 预测处理器中的竞争 | |
CN101308462B (zh) | 管理对共享存储器单元的存储器访问的方法和计算系统 | |
TWI483180B (zh) | 重疊原子區域執行的方法 | |
US20080301374A1 (en) | Structure for dynamic livelock resolution with variable delay memory access queue | |
CN101297270A (zh) | 计算器系统内主动同步的方法 | |
KR101804677B1 (ko) | 트랜잭션적인 전력 관리를 수행하기 위한 하드웨어 장치들 및 방법들 | |
CN107810486B (zh) | 锁定用于原子地执行的指令组的操作数的值 | |
JP2017509083A (ja) | バイナリトランザクションベースのプロセッサによるロックエリジョン | |
CN106030532B (zh) | 用于事务存储器程序的软件回放器 | |
KR20190033084A (ko) | 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적 | |
CN101615132A (zh) | 事务存储系统及其控制方法 | |
EP0518420A2 (en) | Computer system for concurrent processing of multiple out-of-order instructions | |
CN101907984B (zh) | 指令处理方法以及其所适用的超纯量管线微处理器 | |
US20200379772A1 (en) | Managing Load and Store Instructions for Memory Barrier Handling | |
US12079631B2 (en) | Method and system for hardware-assisted pre-execution | |
CN101944012B (zh) | 指令处理方法以及其所适用的超纯量管线微处理器 | |
CN104615408B (zh) | 微处理器、集成电路与提供微码指令储存空间的方法 | |
Huerta et al. | Simple out of order core for gpgpus | |
Ributzka et al. | The elephant and the mice: the role of non-strict fine-grain synchronization for modern many-core architectures | |
Wen | Hardware design, prototyping and studies of the explicit multi-threading (XMT) paradigm | |
Dwyer III | A multiple, out-of-order, instruction issuing system for superscalar processors | |
Chen et al. | Orinoco: Ordered Issue and Unordered Commit with Non-Collapsible Queues | |
Goncharenko et al. | Analysis of the Influence of Cache Coherence Mechanism Performance on Atomic Operations in Multicore Computing Systems | |
JP2023542862A (ja) | リモート不揮発性メモリに永続性を提供するための方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20091230 |