CN101587447A - 支持事务存储的系统及基于预测的事务执行方法 - Google Patents
支持事务存储的系统及基于预测的事务执行方法 Download PDFInfo
- Publication number
- CN101587447A CN101587447A CN200810109178.4A CN200810109178A CN101587447A CN 101587447 A CN101587447 A CN 101587447A CN 200810109178 A CN200810109178 A CN 200810109178A CN 101587447 A CN101587447 A CN 101587447A
- Authority
- CN
- China
- Prior art keywords
- affairs
- execution
- pattern
- overflow
- predicted
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 48
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000008569 process Effects 0.000 claims description 14
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 14
- 230000002159 abnormal effect Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
- G06F9/528—Mutual exclusion algorithms by using speculative mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种具有溢出预测机制的支持事务存储的系统,包括:预测单元,用于根据事务先前执行的执行结束状态预测所述事务的下一次执行模式;执行单元,用于在预测单元所预测的执行模式下执行所述事务,其中所述执行模式包括溢出模式和非溢出模式。根据本发明,可以在事务执行之前预测事务是否将溢出,从而节省了为了判断溢出所必须执行的一次运行,并因此提高了性能。
Description
技术领域
本发明涉及支持事务存储的系统,尤其涉及支持事务存储的系统的溢出预测。
背景技术
事务(Transaction)的概念已经被广泛地应用于数据库领域当中。本发明中所指的事务有别于传统的事务的概念,它是并行计算领域中的一个概念。本发明中所涉及的事务指多条指令的执行,其中这多条指令看起来像是一起被原子性地执行,执行期间没有任何其他操作介入。例如,如果一个存储器地址在一个事务中被访问,则在该事务完成之前,该存储器地址不应该被该事务之外的其他代码所修改。
事务可以直接在计算机体系结构层面被实现。在体系结构层面实现事务的硬件系统被称为支持事务存储或者事务内存(TransactionalMemory)的系统。采用支持事务存储的系统,编程人员不必再继续使用传统的锁(lock)机制来保护共享数据的访问,同时使程序的性能保持在可接受的范围内,因此软件开发效率有所提高。
支持事务存储的系统的一种实现方法如下。在处理器芯片内部增加专用缓冲器,将一个事务要写的数据(推测性数据)存储在该专用缓冲器中,而不是将其直接写到普通的存储器系统。如果两个事务都对同一地址进行访问,且其中至少一个是写操作,则其中一个事务必须回退(rollback)并且重新执行,而另一个事务可以继续执行。这种情况被称为“冲突”。如果不存在冲突,则在事务结束时,将临时存储在专用缓冲器中的数据写到普通的存储器系统中。这个动作被称为“提交”。也就是说,事务被推测性地执行,并且在该事务中的所有操作被推测性地执行之后才将推测性执行的结果提交到普通的存储器系统中。
图1示意性地示出了这种支持事务存储的系统的原理图。如图1所示,在支持事务存储的系统中设置有硬件缓冲器1012或1022,用于在执行事务过程中临时存储该事务要写的所有数据,即推测性数据。在该事务的所有程序代码都被执行完成之后,才将存储在硬件缓冲器中的推测性数据通过总线1030提交到普通的存储器系统中。需要指出的是,作为另外一种实现方法,硬件缓冲器1012可以和数据高速缓冲器1014合并在一个物理硬件中,硬件缓冲器1022可以和数据高速缓冲器1024合并在一个物理硬件中。这种实现方法就本发明所关心的内容看来是一样的,本发明的精神实质可以继续适用,因此不再单独阐述。
在现有技术中,所有事务都是被推测性地执行。其中在推测性执行过程中,该事务要写的所有数据被临时存储在硬件缓冲器中。只有在该事务的所有程序代码都被成功(推测性)执行之后,才将存储在硬件缓冲器中的推测性数据提交到普通的存储器系统中,此时该事务才成功地执行完成。
但是,因为硬件缓冲器不可能非常大,所以如果事务很大(即访问大量地址),则缓冲器不能保存所有数据,从而缓冲器将溢出。在现有技术中,缓冲器溢出将强迫事务异常终止(在以下将其称为事务溢出),然后重新执行该事务。一般说来,重新执行该事务时,为避免再次溢出,将采用很费时的方式来进行处理,比如退回到以前基于锁的方法。本发明并不关心具体的处理溢出事务的方法。在以下叙述中,将用基于锁的方法为例进行说明,但是它泛指所有费时的处理溢出事务的方法。
根据上述说明,在现有技术中存在两种方式执行一个事务。如果事务小,则通过将推测性数据存储在硬件缓冲器的方式来执行该事务(简称为利用硬件缓冲器来执行),这种方法速度快;而如果事务大,则通过基于锁的方法来执行该事务,这种方法速度慢。
但是,在现有技术中,在事务执行之前并不知道该事务是否将溢出,即不知道对于该事务的执行,硬件缓冲器是否会溢出。因此,不管事务大还是小,都首先假设不会溢出,利用硬件缓冲器来执行。而大的事务的执行会由于硬件缓冲器溢出而异常终止,然后异常终止的事务再通过第二种慢速的方法重新执行。因此,大的事务必须试探性地运行第一次,在因为溢出而异常终止之后再通过基于锁的方法重新执行。在这样的情形下,大的事务的第一次运行(即发生异常终止的那次执行)浪费了时间和能量,并占用了系统资源。
在美国专利申请文献US2005/0060559中公开了一种通过运行一个伪事务(pseudo-transactions)来判断事务是否会溢出的方法。但是,在这种方法中,同样必须通过运行一次来判断事务是否溢出,而运行一次会消耗时间和能量,并占用了系统资源。
而在美国专利申请文献US2006/0085591中公开了一种通过软硬件混合实现的支持事务存储的系统,其中如果硬件事务存储器系统溢出,就切换到软件事务存储器系统中重新运行。也就是说,该专利文献提出了一种溢出后的处理方法,而这种处理方法是以运行一次并且溢出为代价的。
发明内容
本发明的目的是对现有技术中的上述不足进行改进,即在一个事务执行之前事先确定其是否会溢出,从而节省了事务执行时间和消耗的能量以及占用的资源。
为此,本发明提出了一种具有溢出预测机制的支持事务存储的系统,其中在事务执行之前预测该事务是否会溢出,然后根据预测结果来执行事务。如果一个事务被预测为不溢出,则该事务在事务模式(也被称为非溢出模式)下执行,即利用硬件缓冲器执行。而如果一个事务被预测为溢出,则该事务在溢出模式下工作,即该事务的执行不使用硬件缓冲器,而是例如通过基于锁的方法执行。
为了实现上述目的,根据本发明的一个方面,提供了一种支持事务存储的系统,包括:预测单元,用于根据事务先前执行的执行结束状态预测所述事务的下一次执行模式;执行单元,用于在预测单元所预测的执行模式下执行所述事务。其中执行模式包括溢出模式和非溢出模式。
根据本发明的另一方面,提供了一种基于预测的事务执行方法,包括:预测步骤,用于根据事务先前执行的执行结束状态,预测所述事务的下一次执行模式;执行步骤,用于在预测步骤所预测的执行模式下执行事务。其中执行模式包括溢出模式和非溢出模式。
根据本发明的再一方面,提供了一种计算机程序产品,包括存储在计算机可读存储介质中的程序代码,所述程序代码用于实现根据本发明的方法。
本发明在事务执行之前就基于该事务先前执行的执行结束状态预测该事务的下一次执行的执行模式,从而节省了为了判断溢出所必须执行的一次运行,并因此提高了性能并节省了能量和资源。
附图说明
通过结合附图,参考以下对示例性实施例的详细描述,将更好地理解示例性实施例本身以及其优选使用方式、其他目标和其优点,其中:
图1示意性地示出了支持事务存储的系统的原理图;
图2示出了根据本发明的支持事务存储的系统的示意性方框图;
图3示出了根据本发明的基于预测的事务执行方法的流程图;
图4以在处理器内核中实现的方式示出了根据本发明的支持事务存储的系统的一个例子的示意图;
图5示出了根据本发明第一实施例的支持事务存储的系统的示意图;
图6示出了根据本发明第一实施例的基于预测的事务执行方法的流程图;
图7示出了根据本发明第二实施例的支持事务存储的系统中查找表的一项的示意图;
图8示出了说明根据本发明第二实施例的状态机;
图9示出了根据本发明第二实施例的基于预测的事务执行方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图参考优选实施例对本发明作进一步的详细描述。
在根据本发明的支持事务存储的系统中,存在以下三种模式:
1)非事务模式,用于非事务代码的执行。在非事务模式中,如普通方式那样执行访存操作;
2)事务模式,也被称为非溢出模式,用于被预测为不溢出的事务的执行。大部分事务是小事务并在非溢出模式中执行;
3)溢出模式,用于被预测为溢出的事务的执行。由于硬件缓冲器容量的限制,少量的大事务在溢出模式下被执行。
图2示出了根据本发明的具有预测机制的支持事务存储的系统的方框图。如图2所示,根据本发明的具有预测机制的支持事务存储的系统200包括预测单元202和执行单元201。预测单元202根据事务先前执行的执行结束状态预测事务的下一次执行模式,而执行单元201根据预测单元202的预测,即在预测单元202所预测的执行模式(溢出模式或非溢出模式)下执行该事务。
优选地,根据本发明的预测单元202包括查找表。查找表包含多项(例如32个或更多项),每项具有一个物理地址字段和(一个或多个)预测信息字段,其中物理地址字段中存储事务的物理地址,例如事务的起始指令的地址,而相应的预测信息字段中存储关于该事务下一次执行是否溢出的预测,即该事务的执行模式信息。
由于查找表只具有有限的项,因此在所有项都被使用的情况下必须对某些项进行替换。对于选择哪些项进行替换,可以使用现有技术中的多种方法,诸如循环法、最近最少使用算法(LRU)和随机法。
优选地,根据本发明的具有预测机制的支持事务存储的系统200还可以包括状态寄存器。执行单元201对状态寄存器进行设置,并通过状态寄存器来控制对程序代码的执行。对于非事务的程序代码,执行单元201将状态寄存器设置为非事务模式,使得该非事务的程序代码在非事务模式下执行;对于被预测单元202预测为不溢出的事务,执行单元201将状态寄存器设置为非溢出模式,使得被预测为不溢出的事务在非溢出模式下执行;而对于被预测单元202预测为溢出的事务,执行单元201将状态寄存器设置为溢出模式,使得被预测为溢出的事务在溢出模式下执行。
根据本发明,当一个事务开始被执行时,例如当该事务的起始指令被执行时,执行单元201搜索查找表。如果在查找表中找到某一项的物理地址字段中所存储的物理地址等于该事务的地址,例如该事务的起始指令的地址,则被称为“命中(hit)”,否则被称为“未命中(miss)”。如果搜索结果为命中,则执行单元201根据查找表中命中项的预测信息字段中所存储的执行模式信息来执行该事务。例如,如果命中项的预测信息字段指示溢出模式(即该事务被预测为溢出),则状态寄存器被执行单元201设置为溢出模式,于是当前事务在溢出模式下运行。如果命中项的预测信息字段指示非溢出模式(即该事务被预测为不溢出),则状态寄存器被执行单元201设置为非溢出模式,于是当前事务在非溢出模式下运行。如果搜索结果为未命中,则状态寄存器被执行单元201设置为非溢出模式,于是当前事务在非溢出模式下运行,后面章节将更详细地介绍。可选地在任何事务结束后,执行单元都将状态寄存器设置为非事务模式。
图3示出了根据本发明的基于预测的事务执行方法的流程图。如图3所示,首先在步骤S301中执行预测步骤,即根据事务先前执行的执行结束状态预测该事务的下一次执行模式。然后根据步骤S301中的预测结果,在步骤S301中所预测的执行模式下执行事务。在步骤S302中判断在步骤S301中所作的预测是否是溢出预测,即判断步骤S301中所预测的下一次执行模式是否是溢出模式。如果是,则在步骤S303中在溢出模式下执行该事务。相反,如果在步骤S301中将该事务的下一次执行模式预测为非溢出模式,则在步骤S304中在非溢出模式下执行该事务。
图4以在处理器内核中实现的形式示出了根据本发明的具有预测机制的支持事务存储的系统的详细结构的示意图。如图4所示,根据本发明的具有预测机制的支持事务存储的系统400包括执行单元401和预测单元402。支持事务存储的系统400还可以包括执行读操作的加载单元404、执行写操作的存储单元405、控制存储单元405和加载单元404对数据的写入或读取(即控制读操作和写操作的数据流)的数据流控制器409、高速缓存器406、写缓冲器407和读缓冲器408。优选地,根据本发明的具有预测机制的支持事务存储的系统400还包括状态寄存器403。在图4所示的示例中,状态寄存器403通过数据流控制器409来控制事务的读操作和写操作的数据流。
根据本发明,当预测单元402将一个事务预测为溢出,即预测该事务的下一次执行模式是溢出模式时,执行单元401在溢出模式下执行该事务,即不通过硬件缓冲器执行该事务。
可选地,在预测单元402将一个事务预测为溢出时,执行单元401将状态寄存器403设置为溢出模式,于是状态寄存器403通过数据流控制器409来实现该事务在溢出模式下的执行。例如,对于该事务的读操作,加载单元404在数据流控制器409的控制下直接从高速缓存器406读取数据,而对于该事务的写操作,存储单元405在数据流控制器409的控制下将数据直接写入到高速缓存器406中。
当预测单元402将一个事务预测为不溢出、即预测该事务的下一次执行模式为非溢出模式时,执行单元401在非溢出模式下执行该事务,即通过硬件缓冲器(写缓冲器407和读缓冲器408)执行该事务。
可选地,当预测单元402将一个事务预测为不溢出时,执行单元401将状态寄存器403设置为非溢出模式,于是状态寄存器403通过数据流控制器409来实现该事务在非溢出模式下的执行。
本领域技术人员可以想到,数据流控制器409可以使用多路复用器、触发器、开关等等来实现。
以下介绍根据本发明的基于事务先前执行的执行结束状态预测该事务是否溢出、即预测该事务的下一次执行模式的过程的两个优选实施例。
图5示出了根据本发明第一实施例的具有预测机制的支持事务存储的系统的示意图。在图5所示的支持事务存储的系统500中,预测单元502包括查找表5021,该查找表中每项具有两个字段,其中一个字段是记录物理地址的地址字段,另一个字段是记载溢出位的溢出位字段。如果溢出位为1,则表示相应事务被预测为溢出,即该事务的下一执行模式被预测为溢出模式;相反,如果溢出位为0,则表示相应事务被预测为不溢出,即该事务的下一次执行模式被预测为非溢出模式。本领域技术人员应该理解,溢出字段除了通过一个比特位来实现以外,也可以通过多个比特位来实现。例如用一个含有多个比特位的计数器,只有溢出的次数累积到一个阈值才预测该事务的下一执行模式为溢出模式。这些方法是本领域的常识,以下针对第一实施例的介绍仅以单比特位的实现为例进行说明。
根据本发明的第一实施例,查找表5021中各项的初始状态为无效(invalid)。当一个事务开始时,在执行单元501中执行该事务的起始指令。于是,执行单元501搜索查找表5021。如果搜索结果为未命中,则该事务的地址、即该事务的起始指令的物理地址被记录在查找表5021的某一项的地址字段中,并且该项的溢出位字段被设置为0,即事务被预测为不溢出。
根据本发明,如果搜索结果为命中,则根据命中的项的溢出位设置状态寄存器503。
如果预测单元502将一个事务预测为不溢出,则执行单元501将在非溢出模式下执行该事务。
在非溢出模式下,对于事务写操作,存储单元505在数据流控制器509的控制下将数据写入写缓冲器507中,而不是将数据写入一级高速缓存器506中。其中如果命中写缓冲器507,即在写缓冲器507中发现事务写操作所指向的地址,则数据流控制器509控制存储单元505直接将数据写入到写缓冲器507中。相反,如果未命中写缓冲器507,则进行冲突检测。如果冲突检测确定不存在冲突,则存储单元505将在写缓冲器507中为该事务写操作分配一项,将该事务写操作所指向的地址写入写缓冲器507中该项的地址字段中,并将数据写入写缓冲器507中该项的相应存储字段中。相反,如果冲突检测确定存在冲突,则选择发生冲突的事务之一异常终止。在任何情况下,如果写缓冲器507溢出,则事务异常终止。
在非溢出模式下,对于事务读操作,加载单元504从一级高速缓存器506和写缓冲器507二者读取数据,并检查该事务读操作所指向的地址是否命中读缓冲器508。对于事务读操作,如果命中写缓冲器507,则在数据流控制器509的控制下返回来自写缓冲器507的数据,并忽略来自一级高速缓存器506的数据;如果未命中写缓冲器507但命中读缓冲器508,则在数据流控制器509的控制下返回来自一级高速缓存器506的数据;而如果写缓冲器507和读缓冲器508二者都未命中,则进行冲突检测。如果冲突检测确定不存在冲突,则加载单元504重新从一级高速缓存器506读取数据,并将该数据的地址(即该事务读操作所指向的地址)记录到读缓冲器508中。相反,如果冲突检测确定存在冲突,则选择冲突的事务之一异常终止。
根据本发明,如果一个在非溢出模式下执行的事务最后发生溢出,则在该事务溢出之后,将查找表5021中与该事务相对应的项中的溢出位改变为1,即将对该事务的预测改变为溢出,从而该事务的下一次执行将在溢出模式下执行。
如果预测单元502将一个事务预测为溢出,则执行单元501将在溢出模式下执行该事务。
在溢出模式下,事务中的执行不使用硬件缓冲器(即写缓冲器507和读缓冲器508)来保存临时数据和数据地址;相反,事务写操作将数据直接存储到一级高速缓存器506中,而事务中的读操作直接从一级高速缓存器506读取数据。
根据本发明的第一实施例,在溢出模式下,除了直接从/向一级高速缓存器506读取/写入数据之外,还将写数据地址(即事务写操作所指向的地址)记录到写缓冲器507中。
优选地,如果在溢出模式下执行的事务结束时,写缓冲器507中的地址空间能够保持该事务的所有写操作的地址,则表明该事务实际上并不溢出,即对于该事务的溢出预测不正确,于是预测单元502修改查找表中相应项中的溢出位,即将对该事务的溢出预测修改为非溢出预测。相反,如果写缓冲器507中的地址空间不足以保持该事务的所有写操作的地址,则表明该事务确实溢出,即关于该事务溢出的预测是正确的,于是预测单元502仍然预测该事务溢出,即预测该事务的下一次执行模式为溢出模式。
优选地,还将读数据地址(即事务读操作所指向的地址)记录到读缓冲器508中,并且,在溢出模式下执行的事务结束时,只有硬件缓冲器(即写缓冲器507和读缓冲器508)中的地址空间能够保持该事务所访问的所有地址(包括写操作和读操作所涉及的数据地址),即写缓冲器足以记录该事务的所有写操作的数据地址,并且读缓冲器足以记录该事务的所有读操作的数据地址,才表明关于该事务的溢出预测不正确,于是预测单元502才修改查找表中相应项中的溢出位,即将对于该事务的溢出预测修改为非溢出预测。
在以上过程中,写缓冲器507和/或读缓冲器508提供了簿记功能。可选地,当事务结束时,写缓冲器507和读缓冲器508被清空。
在溢出模式中,不需要冲突检测,并且硬件缓冲器中地址空间的溢出不强迫事务异常终止,因为数据已经被保存在一级高速缓存器506中。
由上面可知,根据本发明的第一实施例,可以在一个被预测为溢出的事务执行结束时准确地确定该事务是否确实溢出。如果关于溢出的预测是错误的,则将下一次执行预测为非溢出;否则,再次将下一次执行预测为溢出。
图6示出了根据本发明第一实施例的基于预测的事务执行方法的流程图。如图6所示,在步骤S601,预测事务是否溢出,即预测事务的下一次执行模式。在前面对第一实施例的具体描述中,步骤S601读取查找表中所存储的执行模式信息。然后,在步骤S602中判断步骤S601中的预测是否是溢出预测(即步骤S601中所预测(读取)的执行模式是否是溢出模式)。如果是溢出预测,则在步骤S603中在溢出模式下执行该事务。而如果不是溢出预测,则在S604中在非溢出模式下执行该事务。
根据本发明的第一实施例,在溢出模式下执行时,利用写缓冲器记录写数据地址。优选地,在这次执行结束后,在步骤S605中判断写缓冲器是否足以记录所有被写的数据的地址(即写数据地址)。如果是,则在步骤S607中将该事务的执行模式信息修改为非溢出模式,即指示该事务的下一次执行模式是非溢出模式,否则在步骤S608中将该事务的执行模式信息保持为溢出模式,即指示该事务的下一次执行模式是溢出模式。
在非溢出模式下执行的情况下,在这次事务执行之后,在步骤S606中判断该执行是否发生了溢出。如果发生了溢出,则在步骤S609中将该事务的执行模式信息修改为溢出模式,否则在步骤S610中将该事务的执行模式信息保持为非溢出模式。
下面描述根据本发明的第二实施例。
在根据本发明的第二实施例中,支持事务存储的系统的结构与第一实施例基本相同,事务在非溢出模式下的执行也与第一实施例基本相同,所不同的是事务在溢出模式下的工作过程。
根据本发明的第二实施例,在预测事务溢出的同时,还推测该事务将溢出多少次。
根据本发明的第二实施例,对于在非溢出模式下执行的事务,如果该事务的该次执行因为溢出而异常终止,则预测单元除了预测该事务的下一次执行将溢出之外,还预测该事务将连续溢出N次,从而预测单元在随后N次对该事务的预测中预测该事务溢出,即该事务在随后N次的执行都在溢出模式下,并且预测单元预测该事务随后的第N+1次执行将不会溢出。
优选地,通过采用指数递增策略来推测事务将溢出的次数N。例如,假设预测单元当前预测一个事务要溢出N次。则该事务的接下来的N次执行将处于溢出模式中。在该事务的这N次在溢出模式下的执行之后,预测单元翻转(flip)预测位,即将该事务预测为不溢出。但是,如果该事务的第N+1次执行(该次执行在非溢出模式下)再次发生溢出,则预测单元将该事务的N加倍,即预测该事务将溢出2N次。
有利地,根据本发明的第二实施例,如果事务在发生溢出的执行的前一次执行是在非溢出模式下的执行,则预测单元将该事务将溢出的次数预测为最小值Nmin;否则预测单元将该事务将溢出的次数预测为上次预测的次数的两倍。优选地,事务将溢出的最大次数被设置为Nmax。默认的最小值Nmin可以取值为1,当然也可以取其它2的幂或其它整数。最大值Nmax的取值取决于图7中计数器702所能存储的数的范围。比如,如果702有3个比特位,那么最大的值就是二进制100,也就是十进制4。因为在优选实施例中Nmax必须是2的幂,所以最大值不是二进制111。计数器702本质上是一个寄存器,它包含多少个比特位取决于具体实现。
图7示出了根据本发明第二实施例的查找表中一项的一个例子,其中具有四个字段,计数器字段702替代了本发明第一实施例中的溢出位字段。如果计数器字段702中的内容(即计数器)为0,则表示相应事务被预测为不溢出,即预测该事务的下一次执行模式为非溢出模式;相反,如果不为0,则表示相应事务被预测为溢出,即预测该事务的下一次执行模式为溢出模式。每次当事务在溢出模式下执行时,相应项中的计数器减1。指数字段703中的内容(即指数)表示计数器的初始值。
在根据本发明的第二实施例中,最初,查找表中所有项为无效的。
当一个事务开始时,执行单元搜索查找表。
如果搜索未命中,则该事务的地址、例如事务起始指令的地址被记录到查找表中某一项的地址字段701中。该项中的计数器字段702、指数字段703和保持位(stick bit)字段704的内容都被设置为0。于是,该事务被预测为非溢出,并在非溢出模式下执行。当该事务结束时,如果该事务实际上溢出了,则相应项中的计数器和指数被设置为1,并且保持位被设置为0。
如果搜索结果为命中,并且计数器为0,则事务被预测为非溢出,并且在非溢出模式下执行。其中,对于保持位为0的情形,如果事务在结束时实际上溢出了,则相应的指数和计数器被设置为1,并且保持位被保持为0;而如果事务在结束时实际上并未溢出,则相应项中的内容保持不变。而对于保持位为1的情形,如果事务在结束时实际上溢出了,则相应的指数加倍,计数器被设置为与指数相同的值,并且保持位被设置为0;而如果事务在结束时实际上并未溢出,则相应的指数和保持位被设置为0。
如果搜索结果为命中,并且计数器不为0,则事务被预测为溢出,并且在溢出模式下执行。在该情形下,事务在溢出模式下执行一次,相应的计数器就减1。如果计数器变为0,则相应的保持位被设置为1。
图8示出了一个状态机,以说明根据本发明第二实施例的支持事务存储的系统的查找表中一项中的计数器字段、指数字段和保持位字段中内容的变化。其中括号中的三个数字依次表示一项中计数器字段的内容、指数字段的内容和保持位字段的内容,例如(1,1,0)表示计数器为1,指数为1,而保持位为0。“不溢出”表示相应事务在非溢出模式下执行,并且不发生溢出。“溢出”表示相应事务在非溢出模式下执行,并且发生溢出。“溢出模式下N次执行”表示相应事务已经在溢出模式下执行了N次。
在图8所示的示例中,最大指数值(即事务被预测将溢出的最大次数Nmax)为4。但是,在实践中,最大指数值可以根据查找表中指数字段的比特数任意设置。另外,在图8所示的示例中,事务被预测将溢出的最小次数Nmin被设置为1。
图9示出了根据本发明第二实施例的基于预测的事务执行方法的流程图。
如图9所示,首先在步骤S901处对事务进行预测。在前面对第二实施例的具体描述中,步骤S901读取查找表中所存储的执行模式信息。在步骤S902中判断步骤S901的预测结果是否是溢出预测。如果不是,则在步骤S907中,在非溢出模式下执行该事务。然后在步骤S908中判断执行是否发生溢出。如果发生了溢出,则在步骤S909中将该事务的执行模式信息修改为溢出预测,否则在步骤S910中将该事务的执行模式保持为非溢出预测。
相反,如果在步骤S902中确定是溢出模式,则在步骤S903中预测溢出次数N。然后在步骤S904中在溢出模式下执行该事务,并将预测的溢出次数N减1。然后,在步骤S905中判断N是否大于0,以确定该事务的下一次执行是否还是在溢出模式下的执行。如果N大于0,则返回S904,即该事务的下一次执行在溢出模式下执行。如果N不大于0,则在步骤S906中将该事务的执行模式修改为非溢出模式。
有利地,在步骤S903中采用指数递增策略来推测事务将溢出的次数N。例如,假设预测单元当前预测一个事务要溢出N次。则该事务的接下来的N次执行将处于溢出模式中。在该事务的这N次在溢出模式下的执行之后,预测单元翻转(flip)预测位,即将该事务预测为不溢出。但是,如果该事务的第N+1次执行(该次执行在非溢出模式下)再次发生溢出,则预测单元将所预测的该事务将溢出的次数N加倍,即预测该事务将溢出2N次。
虽然在前面的描述中,在每次事务执行之后记录该事务的下一次执行模式信息,并在事务每次执行之前通过读取上一次执行结束后所记录的执行模式信息来进行预测,但是也可以想到在每次事务执行之后只记录该次执行的结束状态,而在事务每次执行之前读取上一次执行结束后所记录的结束状态并根据所读取的结束状态预测该事务的下一次执行模式。
另外,在实施例一和二中都涉及到对预测单元所存储的预测信息进行修改。上述描述中优选地采用了通过执行单元对预测信息进行修改的实现方法。但是本领域技术人员应该能够理解,对预测单元进行修改的操作也可以由其他部件完成,比如让专用缓存器来完成。物理上,无论谁完成修改的操作,都是向预测单元发出事先定义的物理信号,预测单元接收到上述信号后,按照本文实施例一和二中所述算法对预测信息进行变更。
本领域技术人员将能够理解,可以采用任何软件或/和硬件的形式,以及记录执行根据本发明的方法的程序的记录介质来实现本发明的预测事务是否溢出的过程。
示例性实施例的描述是为了示例和描述的目的而提供的,而并不是要穷举或限制到所公开形式的说明性实施例。很多修改和变形对于本领域技术人员来说是显而易见的。选择和描述了实施例,以便更好地解释示例性实施例的原理、实践应用,并使本领域的其他技术人员能够理解示例性实施例的多种实施方式,其中可以想到适于特定使用的各种变形。
虽然结合附图详细描述了本发明的实施例,但是对于本领域的技术人员来说,仍可以对上述实施例作出各种修改和变更而不背离本发明的实质和范围。因此,本发明的范围仅由所附权利要求书限定。
Claims (20)
1.一种支持事务存储的系统,包括:
预测单元,用于根据事务先前执行的执行结束状态预测所述事务的下一次执行模式;
执行单元,用于在预测单元所预测的执行模式下执行所述事务,其中所述执行模式包括溢出模式和非溢出模式。
2.根据权利要求1的支持事务存储的系统,其中对于在非溢出模式下执行的事务,如果所述事务的所述执行发生了溢出,则预测单元将所述事务的下一次执行模式预测为溢出模式,否则将所述事务的下一次执行模式预测为非溢出模式。
3.根据权利要求2的支持事务存储的系统,还包括:
事务写缓冲器,用于在执行单元在非溢出模式下执行事务的过程中临时存储所执行事务的推测性数据,并且用于在执行单元在溢出模式下执行事务的过程中记录所执行事务的写操作的数据地址。
4.根据权利要求3的支持事务存储的系统,其中对于在溢出模式下执行的事务,如果在所述事务的所述执行中,事务写缓冲器足以记录所述事务的所有写操作的数据地址,则预测单元将所述事务的下一次执行模式预测为非溢出模式,否则预测单元将所述事务的下一次执行模式预测为溢出模式。
5.根据权利要求3或4的支持事务存储的系统,还包括:
事务读缓冲器,用于在执行单元执行事务的过程中记录所执行事务的读操作的数据地址;
其中对于在溢出模式下执行的事务,如果在所述事务的所述执行的过程中事务读缓冲器不足以记录所述事务的所有读操作的数据地址,则预测单元将所述事务的下一次执行模式预测为溢出模式。
6.根据权利要求2的支持事务存储的系统,其中对于在非溢出模式下执行的事务,如果所述事务的所述执行发生了溢出,则预测单元还预测所述事务将在溢出模式下执行的次数N,并且在所述事务在溢出模式下执行N次之后将所述事务的下一次执行模式预测为非溢出模式。
7.根据权利要求6的支持事务存储的系统,其中如果所述事务在发生了溢出的执行的前一次执行是在非溢出模式下的执行,则预测单元将所述事务将在溢出模式下执行的次数预测为最小值Nmin,最小值Nmin为2的幂;而如果所述前一次执行是在溢出模式下的执行,则预测单元将所述事务将在溢出模式下执行的次数预测为上次预测的次数N的两倍。
8.根据权利要求1的支持事务存储的系统,还包括:
状态寄存器,用于存储执行单元所指示的执行模式;
存储单元,用于将数据写入高速缓存器或者写缓冲器;
加载单元,用于从高速缓存器或者事务写缓冲器读取数据;
数据流控制器,用于根据状态寄存器所存储的执行模式,控制存储单元或加载单元对数据的写入或读取。
9.根据权利要求1的支持事务存储的系统,其中所述预测单元包括查找表,用于存储标识事务的执行模式的信息,并且
查找表中所存储的执行模式信息根据事务的执行结束状态而改变。
10.根据权利要求9的支持事务存储的系统,其中如果执行单元在所述查找表中没有查询到对应于待执行事务的执行模式的信息,则在查找表中创建对应于所述事务的执行模式的信息并将执行模式设置为非溢出模式。
11.一种基于预测的事务执行方法,包括:
预测步骤,用于根据事务先前执行的执行结束状态预测所述事务的下一次执行模式;
执行步骤,用于在预测步骤所预测的执行模式下执行事务,其中所述执行模式包括溢出模式和非溢出模式。
12.根据权利要求11的事务执行方法,其中所述预测步骤包括如下步骤:
对于在非溢出模式下执行的事务,如果所述事务的所述执行发生了溢出,则将所述事务的下一次执行模式预测为溢出模式,否则将所述事务的下一次执行模式预测为非溢出模式。
13.根据权利要求12的事务执行方法,其中所述执行步骤包括:
在溢出模式下,用事务写缓冲器记录被执行的事务的写操作的数据地址。
14.根据权利要求13的事务执行方法,其中所述预测步骤还包括:
对于在溢出模式下执行的事务,如果在所述事务的所述执行中,事务写缓冲器足以记录所述事务的所有写操作的数据地址,则将所述事务的下一次执行模式预测为非溢出模式,否则将所述事务的下一次执行模式预测为溢出模式。
15.根据权利要求13或14的事务执行方法,其中所述执行步骤还包括:
使用事务读缓冲器记录事务的读操作的数据地址;并且
所述预测步骤还包括:
对于在溢出模式下执行的事务,如果在所述事务的所述执行中,事务读缓冲器不足以记录所述事务的所有读操作的数据地址,则将所述事务的下一次执行模式预测为溢出模式。
16.根据权利要求12的事务执行方法,其中所述预测步骤还包括:
对于在非溢出模式下执行的事务,如果所述事务的所述执行发生了溢出,则还预测所述事务将在溢出模式下执行的次数N,并且在所述事务在溢出模式下执行N次之后将所述事务的下一次执行模式预测为非溢出模式。
17.根据权利要求16的事务执行方法,其中如果所述事务在发生了溢出的执行的前一次执行是在非溢出模式下的执行,则将所述事务将在溢出模式下执行的次数预测为最小值Nmin,最小值Nmin为2的幂;而如果所述前一次执行是在溢出模式下的执行,则将所述事务将在溢出模式下执行的次数预测为上次预测的次数N的两倍。
18.根据权利要求11的事务执行方法,所述执行步骤还包括:
存储执行模式信息;
根据所存储的执行模式信息,执行事务的存储操作或加载操作。
19.根据权利要求11的事务执行方法,其中所述预测步骤包括:
使用查找表存储标识事务的执行模式的信息,以及
根据事务的执行结束状态改变查找表中所存储的执行模式信息。
20.根据权利要求19的事务执行方法,其中如果在所述查找表中没有查询到对应于待执行事务的执行模式信息,则在查找表中创建对应于所述事务的执行模式信息并将执行模式设置为非溢出模式。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810109178.4A CN101587447B (zh) | 2008-05-23 | 2008-05-23 | 基于预测的事务执行系统和方法 |
US12/463,113 US8799590B2 (en) | 2008-05-23 | 2009-05-08 | System enabling transactional memory and prediction-based transaction execution method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810109178.4A CN101587447B (zh) | 2008-05-23 | 2008-05-23 | 基于预测的事务执行系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101587447A true CN101587447A (zh) | 2009-11-25 |
CN101587447B CN101587447B (zh) | 2013-03-27 |
Family
ID=41342934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810109178.4A Expired - Fee Related CN101587447B (zh) | 2008-05-23 | 2008-05-23 | 基于预测的事务执行系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8799590B2 (zh) |
CN (1) | CN101587447B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486719A (zh) * | 2010-12-06 | 2012-06-06 | 普天信息技术研究院有限公司 | 智能存储卡及其事物写的方法 |
WO2015128781A1 (en) * | 2014-02-27 | 2015-09-03 | International Business Machines Corporation | Salvaging hardware transactions |
CN106503027A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
WO2017041639A1 (zh) * | 2015-09-08 | 2017-03-16 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
CN106855858A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
CN106897123A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
CN107003837A (zh) * | 2014-12-17 | 2017-08-01 | 英特尔公司 | 用于推测性编译器优化的轻量级受限事务存储器 |
TWI725110B (zh) * | 2017-01-19 | 2021-04-21 | 香港商阿里巴巴集團服務有限公司 | 資料庫操作方法及裝置 |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214560B2 (en) | 2010-04-20 | 2012-07-03 | International Business Machines Corporation | Communications support in a transactional memory |
US9311101B2 (en) | 2012-06-15 | 2016-04-12 | International Business Machines Corporation | Intra-instructional transaction abort handling |
US9223687B2 (en) | 2012-06-15 | 2015-12-29 | International Business Machines Corporation | Determining the logical address of a transaction abort |
US9298469B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Management of multiple nested transactions |
US9298631B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Managing transactional and non-transactional store observability |
US9262320B2 (en) | 2012-06-15 | 2016-02-16 | International Business Machines Corporation | Tracking transactional execution footprint |
US9015419B2 (en) | 2012-06-15 | 2015-04-21 | International Business Machines Corporation | Avoiding aborts due to associativity conflicts in a transactional environment |
WO2014033055A1 (en) | 2012-08-27 | 2014-03-06 | Aktiebolaget Electrolux | Robot positioning system |
JP2014085839A (ja) * | 2012-10-24 | 2014-05-12 | International Business Maschines Corporation | 並列実行機構及びその動作方法 |
WO2014169943A1 (en) | 2013-04-15 | 2014-10-23 | Aktiebolaget Electrolux | Robotic vacuum cleaner |
CN105101855A (zh) | 2013-04-15 | 2015-11-25 | 伊莱克斯公司 | 具有伸出的侧刷的机器人真空吸尘器 |
US10617271B2 (en) | 2013-12-19 | 2020-04-14 | Aktiebolaget Electrolux | Robotic cleaning device and method for landmark recognition |
EP3082541B1 (en) | 2013-12-19 | 2018-04-04 | Aktiebolaget Electrolux | Adaptive speed control of rotating side brush |
US10209080B2 (en) | 2013-12-19 | 2019-02-19 | Aktiebolaget Electrolux | Robotic cleaning device |
EP3084538B1 (en) | 2013-12-19 | 2017-11-01 | Aktiebolaget Electrolux | Robotic cleaning device with perimeter recording function |
CN105813528B (zh) | 2013-12-19 | 2019-05-07 | 伊莱克斯公司 | 机器人清洁设备的障碍物感测爬行 |
WO2015090404A1 (en) | 2013-12-19 | 2015-06-25 | Aktiebolaget Electrolux | Prioritizing cleaning areas |
JP6638988B2 (ja) | 2013-12-19 | 2020-02-05 | アクチエボラゲット エレクトロルックス | サイドブラシを有し、渦巻きパターンで動くロボットバキュームクリーナ |
WO2015090439A1 (en) | 2013-12-20 | 2015-06-25 | Aktiebolaget Electrolux | Dust container |
EP3167341B1 (en) | 2014-07-10 | 2018-05-09 | Aktiebolaget Electrolux | Method for detecting a measurement error in a robotic cleaning device |
EP3190938A1 (en) | 2014-09-08 | 2017-07-19 | Aktiebolaget Electrolux | Robotic vacuum cleaner |
EP3190939B1 (en) | 2014-09-08 | 2021-07-21 | Aktiebolaget Electrolux | Robotic vacuum cleaner |
WO2016091291A1 (en) | 2014-12-10 | 2016-06-16 | Aktiebolaget Electrolux | Using laser sensor for floor type detection |
US10874271B2 (en) | 2014-12-12 | 2020-12-29 | Aktiebolaget Electrolux | Side brush and robotic cleaner |
CN107003669B (zh) | 2014-12-16 | 2023-01-31 | 伊莱克斯公司 | 用于机器人清洁设备的基于经验的路标 |
US10678251B2 (en) | 2014-12-16 | 2020-06-09 | Aktiebolaget Electrolux | Cleaning method for a robotic cleaning device |
US20160179662A1 (en) * | 2014-12-23 | 2016-06-23 | David Pardo Keppel | Instruction and logic for page table walk change-bits |
KR102343513B1 (ko) | 2015-04-17 | 2021-12-28 | 에이비 엘렉트로룩스 | 로봇 청소 장치 및 로봇 청소 장치의 제어 방법 |
WO2017036532A1 (en) | 2015-09-03 | 2017-03-09 | Aktiebolaget Electrolux | System of robotic cleaning devices |
US11169533B2 (en) | 2016-03-15 | 2021-11-09 | Aktiebolaget Electrolux | Robotic cleaning device and a method at the robotic cleaning device of performing cliff detection |
WO2017194102A1 (en) | 2016-05-11 | 2017-11-16 | Aktiebolaget Electrolux | Robotic cleaning device |
JP7243967B2 (ja) | 2017-06-02 | 2023-03-22 | アクチエボラゲット エレクトロルックス | ロボット清掃デバイスの前方の表面のレベル差を検出する方法 |
JP6989210B2 (ja) | 2017-09-26 | 2022-01-05 | アクチエボラゲット エレクトロルックス | ロボット清掃デバイスの移動の制御 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167504A (en) * | 1998-07-24 | 2000-12-26 | Sun Microsystems, Inc. | Method, apparatus and computer program product for processing stack related exception traps |
US7587615B2 (en) | 2003-09-12 | 2009-09-08 | International Business Machines Corporation | Utilizing hardware transactional approach to execute code after initially utilizing software locking by employing pseudo-transactions |
US7856537B2 (en) | 2004-09-30 | 2010-12-21 | Intel Corporation | Hybrid hardware and software implementation of transactional memory access |
US20080005504A1 (en) * | 2006-06-30 | 2008-01-03 | Jesse Barnes | Global overflow method for virtualized transactional memory |
US7966459B2 (en) * | 2007-12-31 | 2011-06-21 | Oracle America, Inc. | System and method for supporting phased transactional memory modes |
-
2008
- 2008-05-23 CN CN200810109178.4A patent/CN101587447B/zh not_active Expired - Fee Related
-
2009
- 2009-05-08 US US12/463,113 patent/US8799590B2/en not_active Expired - Fee Related
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102486719B (zh) * | 2010-12-06 | 2015-04-15 | 普天信息技术研究院有限公司 | 智能存储卡及其事务写的方法 |
CN102486719A (zh) * | 2010-12-06 | 2012-06-06 | 普天信息技术研究院有限公司 | 智能存储卡及其事物写的方法 |
GB2539129B (en) * | 2014-02-27 | 2017-06-21 | Ibm | Salvaging hardware transactions |
WO2015128781A1 (en) * | 2014-02-27 | 2015-09-03 | International Business Machines Corporation | Salvaging hardware transactions |
GB2539129A (en) * | 2014-02-27 | 2016-12-07 | Ibm | Salvaging hardware transactions |
CN107003837B (zh) * | 2014-12-17 | 2021-08-10 | 英特尔公司 | 用于推测性编译器优化的轻量级受限事务存储器 |
CN107003837A (zh) * | 2014-12-17 | 2017-08-01 | 英特尔公司 | 用于推测性编译器优化的轻量级受限事务存储器 |
CN106503027A (zh) * | 2015-09-08 | 2017-03-15 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
WO2017041637A1 (zh) * | 2015-09-08 | 2017-03-16 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
WO2017041639A1 (zh) * | 2015-09-08 | 2017-03-16 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
US11500869B2 (en) | 2015-09-08 | 2022-11-15 | Alibaba Group Holding Limited | Method and apparatus for optimizing database transactions |
CN106855858A (zh) * | 2015-12-08 | 2017-06-16 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
CN106855858B (zh) * | 2015-12-08 | 2020-09-29 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
CN106897123A (zh) * | 2015-12-21 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
WO2017107810A1 (zh) * | 2015-12-21 | 2017-06-29 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
CN106897123B (zh) * | 2015-12-21 | 2021-07-16 | 阿里巴巴集团控股有限公司 | 数据库操作方法及装置 |
TWI725110B (zh) * | 2017-01-19 | 2021-04-21 | 香港商阿里巴巴集團服務有限公司 | 資料庫操作方法及裝置 |
Also Published As
Publication number | Publication date |
---|---|
US20090292884A1 (en) | 2009-11-26 |
US8799590B2 (en) | 2014-08-05 |
CN101587447B (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101587447B (zh) | 基于预测的事务执行系统和方法 | |
CN1310155C (zh) | 用于先行执行期间的存储器通信的装置 | |
CN101694613B (zh) | 不对准存储器存取预测 | |
TWI533201B (zh) | 縮減交易回復的快取控制 | |
CN100428198C (zh) | 改进任务切换的系统和方法 | |
Lupon et al. | A dynamically adaptable hardware transactional memory | |
CN100517274C (zh) | 高速缓冲存储器及其控制方法 | |
US7594131B2 (en) | Processing apparatus | |
US6986027B2 (en) | Universal load address/value prediction using stride-based pattern history and last-value prediction in a two-level table scheme | |
US8037285B1 (en) | Trace unit | |
KR20210019584A (ko) | 다중 테이블 분기 타겟 버퍼 | |
JP2010033480A (ja) | キャッシュメモリおよびキャッシュメモリ制御装置 | |
JP2008107983A (ja) | キャッシュメモリ | |
JPH07311711A (ja) | データ処理装置とその動作方法及びメモリ・キャッシュ動作方法 | |
US6240489B1 (en) | Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system | |
JP6770230B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
CN110851242A (zh) | 基于可替换信息值的编码来识别读取集信息 | |
JP3239333B2 (ja) | Lru機構を実現するための方法 | |
JP3890910B2 (ja) | 命令の実行結果予測装置 | |
CN100520710C (zh) | 复杂指令系统中tlbr内部例外的处理方法和处理器 | |
US7949854B1 (en) | Trace unit with a trace builder | |
US7181576B2 (en) | Method for synchronizing a cache memory with a main memory | |
WO2007090175A1 (en) | Cache locking without interference from normal allocation | |
JP2007272681A (ja) | キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法 | |
US6282629B1 (en) | Pipelined processor for performing parallel instruction recording and register assigning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130327 Termination date: 20200523 |