CN101819518B - 在事务内存中快速保存上下文的方法和装置 - Google Patents
在事务内存中快速保存上下文的方法和装置 Download PDFInfo
- Publication number
- CN101819518B CN101819518B CN2009100083713A CN200910008371A CN101819518B CN 101819518 B CN101819518 B CN 101819518B CN 2009100083713 A CN2009100083713 A CN 2009100083713A CN 200910008371 A CN200910008371 A CN 200910008371A CN 101819518 B CN101819518 B CN 101819518B
- Authority
- CN
- China
- Prior art keywords
- register
- shadow
- architecture
- physical
- transaction
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013507 mapping Methods 0.000 claims abstract description 23
- 230000004048 modification Effects 0.000 claims description 20
- 238000012986 modification Methods 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 18
- 238000011084 recovery Methods 0.000 abstract description 5
- 230000008901 benefit Effects 0.000 abstract description 4
- 230000008859 change Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004321 preservation Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000003760 hair shine Effects 0.000 description 1
- 230000003716 rejuvenation 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30116—Shadow registers, e.g. coupled registers, not forming part of the register space
-
- 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/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Abstract
本发明提供了一种在事务内存中快速保存上下文的方法和装置,事务内存包括多个体系结构寄存器和数量多于体系结构寄存器的物理寄存器,该方法包括:建立映射表,其包括与体系结构寄存器一一对应的多个表项,每个表项包含映射到多个体系结构寄存器的多个第一物理寄存器的索引和影子比特;当在事务处理中检测到体系结构寄存器的更新、且影子比特为无效值时,将影子比特设为有效值,并利用第一物理寄存器的索引为体系结构寄存器设置影子寄存器;和向影子寄存器映射一第二物理寄存器,以保存更新处理产生的修改值,并由体系结构寄存器对应的第一物理寄存器保存更新处理前的原值。本发明的方法减少了上下文保存/恢复的开销,提高了程序的简易性。
Description
技术领域
本发明涉及一种在处理器的事务内存中使用的方法和装置,更具体地涉及一种在处理器的事务内存中快速保存和恢复上下文的方法和装置。
背景技术
为了更有效地使用多核资源,越来越多地应用采取了并行程序。但是,用于数据共享管理的复杂编程模型使得难于开发并行程序,因此建议由事务内存来提供一种简易的使用机制,以定义和管理并行程序中的重要区段。
在事务内存模型中,线程上下文应该保存于事务处理的开始阶段。如果在事务处理期间由于出现特定事件而发生退回(rollback),则恢复事务处理之前被保存的上下文。直到目前为止,所有的程序上下文都是根据负载/存储指令来保存的,包括体系结构寄存器、程序计数器、状态寄存器、堆栈指针等,它们原来是被保存在处理器的通用寄存器中。将所有这些保存在现代微体系结构的主存储器中会花费数千个时间周期,相同情况也发生在事务处理的退回阶段。
寄存器重命名机制消除了WAR(write-after-read)和WAW(write-after-write)冲突,被广泛用于现代处理器的流水线处理模式。伴随某种映射方案,寄存器重命名机制可以动态地分配物理寄存器给体系结构寄存器。
图1显示了体系结构寄存器和物理寄存器之间的映射的基本关系。
当一个指令试图修改一个体系结构寄存器(例如a1)时,为了避免与之前发布的访问该体系结构寄存器a1的指令产生冲突,重命名机制自动为新指令分配一个新的物理寄存器(r72),将该指令的修改值存储在新物理寄存器r72中。如果有多个指令访问同一个体系结构寄存器,则该体系结构寄存器会存在多个对应的物理寄存器。因此,物理寄存器的数目需要大于体系结构寄存器的数目。
在现有技术中,包括被修改和未被修改的所有寄存器都需要在上下文保存和恢复过程中被写入存储器和从存储器读出,这可能要花费数千个时间周期。但是,大多数事务处理在整个过程中仅修改了几个体系结构寄存器,而绝大多数体系结构寄存器是未经修改而被保存和恢复的,这种方式导致浪费了大量的存储器资源。
发明内容
本发明提出了一种新的方法,其利用对重命名寄存器机制的扩展,在事务处理期间仅仅保存/恢复被修改的体系结构寄存器,而不再对未被修改的寄存器进行保存/恢复,体系结构寄存器的原值将被保存在重命名寄存器中而不是存储器中,因此上下文保存/恢复的开销缩短为数十个周期,并且在事务处理开始阶段不再需要明显的上下文保存操作。
根据本发明的一个方面,提供了一种用于在事务内存中快速保存上下文的方法,所述事务内存包括多个体系结构寄存器以及数量多于所述体系结构寄存器的物理寄存器,所述方法包括:建立映射表,其包括与多个体系结构寄存器一一对应的多个表项,每个表项包含映射到多个体系结构寄存器的多个第一物理寄存器的索引以及影子比特;响应于在事务处理中检测到体系结构寄存器发生更新、并且其影子比特为无效值,将所述影子比特设为有效值,并利用所述第一物理寄存器的索引为该体系结构寄存器设置影子寄存器;以及向所述影子寄存器映射一第二物理寄存器,用来保存更新处理产生的修改值,并由该体系结构寄存器对应的第一物理寄存器保存更新处理前的原值。
根据本发明的一个方面的方法还包括步骤:响应于事务处理期间发生退回,重置影子比特,并清除影子寄存器及第二物理寄存器,以将体系结构寄存器恢复为原值。
根据本发明的一个方面的方法还包括步骤:响应于所述事务处理的完成,用影子寄存器的修改值替换相应的体系结构寄存器的原值,并将影子寄存器及第二物理寄存器释放为可用状态。
根据本发明的一个方面的方法还包括步骤:响应于在事务处理中检测到所述体系结构寄存器发生更新、并且其影子比特为有效值,直接用新的修改值更新所述第二物理寄存器中的修改值。
在根据本发明的一个方面的方法中,所述表项还包括有效比特,用于将在事务处理中被使用的所述体系结构寄存器标记为有效。
根据本发明的另一个方面,提供一种事务内存装置,用于快速保存上下文,所述事务内存装置包括多个体系结构寄存器以及数量多于所述体系结构寄存器的物理寄存器,并包括:映射表,其包括与多个体系结构寄存器一一对应的多个表项,每个表项包含映射到所述多个体系结构寄存器的多个第一物理寄存器的索引以及影子比特;用于响应于在事务处理中检测到体系结构寄存器发生更新、并且其影子比特为无效值,将所述影子比特设为有效值,并利用所述第一物理寄存器的索引为该体系结构寄存器设置影子寄存器的模块;以及用于向所述影子寄存器映射一第二物理寄存器,以保存更新处理产生的修改值,并用该体系结构寄存器对应的第一物理寄存器保存更新处理前的原值的模块。
根据本发明的前述另一个方面的事务内存装置还包括:用于响应于事务处理期间发生退回,重置影子比特,并清除影子寄存器及第二物理寄存器,以将体系结构寄存器恢复为原值的模块。
根据本发明的前述另一个方面的事务内存装置还包括:用于响应于所述事务处理的完成,用影子寄存器的修改值替换相应的体系结构寄存器的原值,并将影子寄存器及第二物理寄存器释放为可用状态的模块。
根据本发明的前述另一个方面的事务内存装置还包括:用于响应于在事务处理中检测到所述体系结构寄存器发生更新、并且其影子比特为有效值,直接用新的修改值更新所述第二物理寄存器的修改值的模块。
根据本发明的前述另一个方面的事务内存装置,所述表项还包括有效比特,用于将在事务处理中被使用的所述体系结构寄存器标记为有效。
本发明的优点在于:当发生寄存器重命名时,仅仅将被改变的上下文保存到重命名的寄存器中,以此来减少缓冲的需要和上下文保存/恢复的开销。本发明的方法由硬件控制,无需软件介入,提高了程序的简易性。
附图说明
通过结合附图对本发明各个实施例的详细描述,本领域的技术人员可以更好地理解本发明的上述和其它方面、特点和优点,其中在所有附图中使用相同或相似的附图标记来表示相同或者相似的部件,在附图中:
图1示出了体系结构寄存器和物理寄存器之间的映射的基本关系。
图2示出了根据本发明实施例的方法的工作原理的视图。
图3(a)是示出了根据本发明实施例用于在事务内存中快速保存上下文的方法的流程图。
图3(b)示出了根据本发明实施例的在事务内存中快速保存上下文后进行恢复或设置的方法的流程图。
具体实施方式
下面将结合附图详细描述本发明的具体实施例。如果考虑到对某些相关现有技术的详细描述会混淆本发明的要点,则不会在这里提供其详细描述。
如图2所示,根据本发明实施例的事务内存100包括多个体系结构寄存器102和多个物理寄存器104,物理寄存器104的数量多于体系结构寄存器102的数量,例如图2中的体系结构寄存器102包括a1,a2,...,a32,物理寄存器104包括r1,r2,r3,...,r72。
事务内存100还包括映射表106,该映射表106按照如下方式构成:映射表在从上到下方向由多个表项组成,每个表项表示体系结构寄存器102中的一个,例如表项1表示体系结构寄存器a1,表项2表示体系结构寄存器a2,...,表项32表示体系结构寄存器a32。
映射表在从左到右方向由三列构成,第一列是有效比特,第二列是物理寄存器索引,第三列是影子比特。也就是说,每个表项包括三个部分,即有效比特、物理寄存器索引、和影子比特。可以将在事务处理前已被使用的体系结构寄存器102的对应表项中的有效比特设置为有效值,例如1,表示其在该事务处理前已被使用,而如果有效比特的值是无效值,例如0,则表示其还没有在事务处理中被使用。物理寄存器索引用来表示在事务处理中被映射到体系结构寄存器102的物理寄存器(第一物理寄存器)104。影子比特表示在事务处理中该体系结构寄存器102的值被改变,并且为该体系结构寄存器102创建了重命名寄存器——影子寄存器,并为新创建的影子寄存器(例如r72)映射新的物理寄存器(第二物理寄存器),例如用物理寄存器索引(标号)34表示,用来代替原始的体系结构寄存器来存储改变值。
在映射表106的下部,包括多个增加的表项,这些表项由为体系结构寄存器102所创建的影子寄存器构成,作为该体系结构寄存器102的重命名寄存器使用,例如影子寄存器r1,r2,...,r33,...,r72。代表影子寄存器的表项与代表体系结构寄存器102的表项的构成方式相同。
根据本发明一个实施例的示例,表项1代表体系结构寄存器a1,其中的有效比特是1,表示该体系结构寄存器a1在事务处理前已被使用,物理寄存器索引是72,表示在该事务处理前被映射到体系结构寄存器a1的物理寄存器(第一物理寄存器)是r72。如果影子比特是1,表示在该事务处理中该体系结构寄存器a1的值已经被改变,即在该事务处理中存在至少一个指令访问同一个体系结构寄存器a1,由此产生了寄存器更新操作。这时,在映射表中为体系结构寄存器a1创建新的表项r72,来代表体系结构寄存器a1的重命名寄存器,即影子寄存器,并为影子寄存器r72映射新的物理寄存器(第二物理寄存器),例如该新物理寄存器的索引是34,用来代表原始的体系结构寄存器来存储该事务处理中的改变值。
由于代表体系结构寄存器a1的表项1中的影子比特的值是1,并且物理寄存器索引在这个表项中为72,所以利用影子寄存器r72代表体系结构寄存器a1来记录体系结构寄存器a1的重命名状态,直到在事务处理期间发生退回或由于事务处理完成而重置影子比特时为止。体系结构寄存器a1的表项内容在事务处理过程期间不会改变。从寄存器角度来看,影子寄存器表项r72不仅将原始体系结构寄存器a1的值保存在寄存器(第一物理寄存器r72)中,其也记录了在事务处理中被改变的寄存器值(利用第二物理寄存器,例如r34)。
当在事务处理期间由于特定事件的出现而发生了退回时,重置影子比特的值,即将它们的值重新设置为零,并清除影子寄存器及其对应的第二物理寄存器,以将体系结构寄存器102恢复为事务处理前的原值。
或者,当事务处理完成时,将各个影子寄存器对应的第二物理寄存器中保存的修改值复制到相应的体系结构寄存器102中,以替换其中保存的原值,并将影子寄存器及对应的第二物理寄存器释放为可用状态。
需要注意的是,体系结构寄存器102的有效比特不对本发明的技术范围构成任何限制,本发明的实施例也可以不包括任何的有效比特。
下面结合图3(a)和图3(b)来描述根据本发明实施例的用于在事务内存中快速保存和恢复上下文的方法。
图3(a)是示出根据本发明实施例的用于在事务内存中快速保存上下文的方法的流程图,而图3(b)示出了根据本发明实施例的在事务内存中保存了上下文后进行恢复或设置的方法的流程图。
如上所述,根据本发明实施例的事务内存包括多个体系结构寄存器102以及数量多于体系结构寄存器102的物理寄存器104,并且还包括映射表106。该映射表106包括与多个体系结构寄存器102一一对应的多个表项,每个表项包含映射到该多个体系结构寄存器102的多个(第一)物理寄存器104的索引以及影子比特。
在正常状态下,只有体系结构寄存器102在事务处理中被使用,物理寄存器的表项和影子比特部分处于待用状态。
参照图3(a),当程序开始事务处理后,步骤进入S301。在步骤S301中,执行事务处理指令,并在步骤S302判断在事务处理中,体系结构寄存器102是否发生更新。当在步骤S302判断在该事务处理中体系结构寄存器102不存在更新时,返回步骤S301,并保持正常使用的寄存器状态,不发生上下文保存操作。在步骤S301中,可以设定一个事务内存标志来指示该事务处理的状态(可选)。体系结构寄存器102在事务处理中发生更新意味着事务内存处理中存在至少一个指令对同一个体系结构寄存器102进行了访问,产生了访问更新。
当在步骤S302中判断在事务处理中体系结构寄存器102(例如a1)发生更新时,前进到步骤S303。在步骤S303,判断映射表106中代表该体系结构寄存器102的表项中的影子比特是否为零。如果在步骤S303中判断代表该体系结构寄存器102的表项中的影子比特为零,意味着这是在事务处理中该体系结构寄存器102的值的第一次改变,于是处理前进到步骤S304,否则处理前进到步骤S305。
在步骤S304中,将该影子比特设置为有效值,例如设置为1,利用代表该体系结构寄存器102(例如a1)的表项中的物理寄存器索引(例如是72,代表与体系结构寄存器a1对应的第一物理寄存器),创建该体系结构寄存器102(例如a1)的影子寄存器(例如r72),并向该影子寄存器(例如r72)映射一个新的物理寄存器(第二物理寄存器,例如是r34,用其索引34表示)。在该新的物理寄存器(r34)中保存更新处理的修改值,并在该体系结构寄存器102(例如a1)对应的原始物理寄存器(第一物理寄存器)中保存更新处理前的原值。
如果在步骤S303中判断代表该体系结构寄存器102(a1)的表项中的影子比特不为零,即该影子比特已经为有效值,则意味着该体系结构寄存器102(a1)的值在事务处理中不是第一次改变,而且已经存在与该体系结构寄存器102(a1)对应的影子寄存器,这时,在步骤S305中,只需将该影子寄存器所映射的(第二)物理寄存器中的值更新为新的改变值即可。
由此,以上参照图3(a)描述了用于在事务内存中快速保存上下文的方法,下面参照图3(b)描述在事务内存中保存了上下文后进行恢复或设置的方法。
处理从步骤S304或者S305前进到步骤S306。在步骤S306中,判断在事务处理中是否由于出现特定事件而发生退回。如果在步骤S306中判断在事务处理中发生了退回,则处理前进到步骤S307,否则处理前进到步骤S308。
在步骤S307中,响应于在事务处理期间发生了退回,重置影子比特的值,即将它们的值重新设置为零,并清除影子寄存器及其对应的第二物理寄存器,以将体系结构寄存器102恢复为事务处理前的原值。然后,事务处理结束。
在步骤S308中,判断事务处理是否完成。如果在步骤S308中判断事务处理已经完成,则处理前进到步骤S309,否则处理返回到步骤S306。
在步骤S309中,响应于所述事务处理的完成,将各个影子寄存器对应的第二物理寄存器中保存的修改值复制到相应的体系结构寄存器102中,以替换其中保存的原值,并将影子寄存器及对应的第二物理寄存器释放为可用状态。然后,事务处理结束。
根据本发明实施例的以上各个步骤的执行顺序不对本发明的技术范围构成限制,例如上述步骤S306与步骤S308的执行顺序可以互换,且所有步骤均可以并行的顺序来执行。
本发明的优点在于:当发生寄存器重命名时,仅仅将被改变的上下文保存到重命名寄存器,以此来减少缓冲器的需求和上下文保存/恢复的开销。该机制由硬件控制,无需软件介入,因此提高了程序的简易性。
虽然上面已经结合附图示出并描述了本发明的一些实施例,但是本领域的技术人员应当理解,在不偏离本发明的原则和精神的情况下,可以对这些实施例进行变化和修改,但它们仍然落在本发明的权利要求及其等价物的范围之内。
Claims (10)
1.一种用于在事务内存中快速保存上下文的方法,所述事务内存包括多个体系结构寄存器以及数量多于所述体系结构寄存器的物理寄存器,所述方法包括:
建立映射表,所述映射表包括与多个体系结构寄存器一一对应的多个表项,每个表项包含映射到多个体系结构寄存器的多个第一物理寄存器的索引以及影子比特;
响应于在事务处理中检测到体系结构寄存器发生冲突、并且其影子比特为零,则将所述影子比特设为有效值,并利用所述第一物理寄存器的索引为该体系结构寄存器设置影子寄存器;以及
向所述影子寄存器映射一第二物理寄存器,用来保存冲突处理产生的修改值,并由该体系结构寄存器对应的第一物理寄存器保存冲突处理前的原值。
2.如权利要求1所述的方法,还包括步骤:响应于事务处理期间发生退回,重置影子比特,并清除影子寄存器及第二物理寄存器,以将体系结构寄存器恢复为原值。
3.如权利要求1所述的方法,还包括步骤:响应于所述事务处理的完成,用影子寄存器的修改值替换相应的体系结构寄存器的原值,并将影子寄存器及第二物理寄存器释放为可用状态。
4.如权利要求1-3中任一所述的方法,还包括步骤:响应于在事务处理中检测到所述体系结构寄存器发生冲突、并且其影子比特为有效值,则直接用新的修改值更新所述第二物理寄存器中的修改值。
5.如权利要求1-3中任一所述的方法,其中所述表项还包括有效比特,用于将在事务处理中被使用的所述体系结构寄存器标记为有效。
6.一种用于在事务内存中快速保存上下文的事务内存装置,所述事务内存装置包括多个体系结构寄存器以及数量多于所述体系结构寄存器的物理寄存器,并包括:
用于建立映射表的装置,所述映射表包括与多个体系结构寄存器一一对应的多个表项,每个表项包含映射到所述多个体系结构寄存器的多个第一物理寄存器的索引以及影子比特;
用于响应于在事务处理中检测到体系结构寄存器发生冲突、并且其影子比特为零,将所述影子比特设为有效值,并利用所述第一物理寄存器的索引为该体系结构寄存器设置影子寄存器的模块;以及
用于向所述影子寄存器映射一第二物理寄存器,以保存冲突处理产生的修改值,并用该体系结构寄存器对应的第一物理寄存器保存冲突处理前的原值的模块。
7.如权利要求6所述的事务内存装置,还包括:用于响应于事务处理期间发生退回,重置影子比特,并清除影子寄存器及第二物理寄存器,以将体系结构寄存器恢复为原值的模块。
8.如权利要求6所述的事务内存装置,还包括:用于响应于所述事务处理的完成,用影子寄存器的修改值替换相应的体系结构寄存器的原值,并将影子寄存器及第二物理寄存器释放为可用状态的模块。
9.如权利要求6-8中任一所述的事务内存装置,还包括:用于响应于在事务处理中检测到所述体系结构寄存器发生冲突、并且其影子比特为有效值,则直接用新的修改值更新所述第二物理寄存器的修改值的模块。
10.如权利要求6-8中任一所述的事务内存装置,其中所述表项还包括有效比特,用于将在事务处理中被使用的所述体系结构寄存器标记为有效。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100083713A CN101819518B (zh) | 2009-02-26 | 2009-02-26 | 在事务内存中快速保存上下文的方法和装置 |
US12/708,634 US20100217945A1 (en) | 2009-02-26 | 2010-02-19 | Fast context save in transactional memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100083713A CN101819518B (zh) | 2009-02-26 | 2009-02-26 | 在事务内存中快速保存上下文的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101819518A CN101819518A (zh) | 2010-09-01 |
CN101819518B true CN101819518B (zh) | 2013-09-11 |
Family
ID=42631907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100083713A Expired - Fee Related CN101819518B (zh) | 2009-02-26 | 2009-02-26 | 在事务内存中快速保存上下文的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100217945A1 (zh) |
CN (1) | CN101819518B (zh) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
US20130339680A1 (en) | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
US9336004B2 (en) * | 2013-02-28 | 2016-05-10 | Advanced Micro Devices, Inc. | Checkpointing registers for transactional memory |
US9231595B2 (en) | 2013-06-12 | 2016-01-05 | International Business Machines Corporation | Filtering event log entries |
US10496433B2 (en) | 2014-11-24 | 2019-12-03 | Red Hat, Inc. | Modification of context saving functions |
CN106598703B (zh) * | 2016-12-08 | 2020-04-03 | 用友网络科技股份有限公司 | 集成系统的事务补偿方法和装置 |
US10545766B2 (en) | 2017-04-18 | 2020-01-28 | International Business Machines Corporation | Register restoration using transactional memory register snapshots |
US10540184B2 (en) | 2017-04-18 | 2020-01-21 | International Business Machines Corporation | Coalescing store instructions for restoration |
US10564977B2 (en) | 2017-04-18 | 2020-02-18 | International Business Machines Corporation | Selective register allocation |
US10963261B2 (en) | 2017-04-18 | 2021-03-30 | International Business Machines Corporation | Sharing snapshots across save requests |
US10489382B2 (en) | 2017-04-18 | 2019-11-26 | International Business Machines Corporation | Register restoration invalidation based on a context switch |
US10572265B2 (en) | 2017-04-18 | 2020-02-25 | International Business Machines Corporation | Selecting register restoration or register reloading |
US10782979B2 (en) | 2017-04-18 | 2020-09-22 | International Business Machines Corporation | Restoring saved architected registers and suppressing verification of registers to be restored |
US10552164B2 (en) | 2017-04-18 | 2020-02-04 | International Business Machines Corporation | Sharing snapshots between restoration and recovery |
US10649785B2 (en) | 2017-04-18 | 2020-05-12 | International Business Machines Corporation | Tracking changes to memory via check and recovery |
US11010192B2 (en) | 2017-04-18 | 2021-05-18 | International Business Machines Corporation | Register restoration using recovery buffers |
US10838733B2 (en) | 2017-04-18 | 2020-11-17 | International Business Machines Corporation | Register context restoration based on rename register recovery |
US10740108B2 (en) | 2017-04-18 | 2020-08-11 | International Business Machines Corporation | Management of store queue based on restoration operation |
US10733173B2 (en) * | 2017-10-09 | 2020-08-04 | Citrix Systems, Inc. | Detecting and reporting changes in data values |
CN112052041B (zh) * | 2020-10-10 | 2022-03-11 | 乐鑫信息科技(上海)股份有限公司 | 更新寄存器的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303501A (zh) * | 1998-05-27 | 2001-07-11 | Arm有限公司 | 混合向量/标量寄存器文件 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202994A (en) * | 1990-01-31 | 1993-04-13 | Hewlett-Packard Company | System and method for shadowing and re-mapping reserved memory in a microcomputer |
US6249881B1 (en) * | 1997-07-01 | 2001-06-19 | National Semiconductor Corporation | Method for enabling and servicing critical interrupts while running an interrupt based debug monitor |
US6408325B1 (en) * | 1998-05-06 | 2002-06-18 | Sun Microsystems, Inc. | Context switching technique for processors with large register files |
US6101599A (en) * | 1998-06-29 | 2000-08-08 | Cisco Technology, Inc. | System for context switching between processing elements in a pipeline of processing elements |
US6205543B1 (en) * | 1998-12-03 | 2001-03-20 | Sun Microsystems, Inc. | Efficient handling of a large register file for context switching |
US7073033B2 (en) * | 2000-02-25 | 2006-07-04 | Oracle International Corporation | Memory model for a run-time environment |
US20030023836A1 (en) * | 2001-06-01 | 2003-01-30 | Michael Catherwood | Shadow register array control instructions |
WO2004010319A2 (en) * | 2002-07-22 | 2004-01-29 | Thought, Inc. | Dynamic object- driven database manipulation and mapping system |
-
2009
- 2009-02-26 CN CN2009100083713A patent/CN101819518B/zh not_active Expired - Fee Related
-
2010
- 2010-02-19 US US12/708,634 patent/US20100217945A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303501A (zh) * | 1998-05-27 | 2001-07-11 | Arm有限公司 | 混合向量/标量寄存器文件 |
Also Published As
Publication number | Publication date |
---|---|
CN101819518A (zh) | 2010-09-01 |
US20100217945A1 (en) | 2010-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101819518B (zh) | 在事务内存中快速保存上下文的方法和装置 | |
CN106406814B (zh) | 处理器和将架构指令转译成微指令的方法 | |
JP3488162B2 (ja) | コンピュータ処理システムにおけるロード動作を順序変更する方法および装置 | |
US20210311737A1 (en) | Store-to-load forwarding | |
JP2597811B2 (ja) | データ処理システム | |
CN100388186C (zh) | 用排序向量实施存储器排序模型的方法与设备 | |
TWI540502B (zh) | 用於重疊原子區域執行的處理器 | |
CN101308462B (zh) | 管理对共享存储器单元的存储器访问的方法和计算系统 | |
CN110597556B (zh) | 一种寄存器映射表检查点资源的管理方法、系统及介质 | |
US20060112261A1 (en) | Method and apparatus for incremental commitment to architectural state in a microprocessor | |
CN102566976B (zh) | 管理重命名寄存器的寄存器重命名系统和方法 | |
CN103842959A (zh) | 在计算机系统中维持操作数活性信息 | |
CN102073596B (zh) | 针对指令的可重构片上统一存储器管理方法 | |
CN103348323A (zh) | 动态二进制优化 | |
US20160011876A1 (en) | Managing instruction order in a processor pipeline | |
JP3681647B2 (ja) | キャッシュメモリシステム装置 | |
JP4956891B2 (ja) | 演算処理装置,情報処理装置および演算処理装置の制御方法 | |
CN104461470A (zh) | 微处理器以及微处理器操作方法 | |
EP3619615B1 (en) | An apparatus and method for managing capability metadata | |
US11921634B2 (en) | Leveraging processing-in-memory (PIM) resources to expedite non-PIM instructions executed on a host | |
CN112181494B (zh) | 一种浮点物理寄存器文件的实现方法 | |
CN109313554A (zh) | 用于在非均匀计算装置中进行调度的方法和设备 | |
US20160011877A1 (en) | Managing instruction order in a processor pipeline | |
CN108920190A (zh) | 用于确定从其恢复指令执行的恢复点的装置和方法 | |
CN1902581A (zh) | 使用推测性存储器支持来管理用于冗余多线程系统中故障检测的外部存储器更新 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180622 Address after: 7 floor, building 10, Zhang Jiang Innovation Park, 399 Keyuan Road, Zhang Jiang high tech park, Pudong New Area, Shanghai. Patentee after: International Business Machines (China) Co., Ltd. Address before: New York grams of Armand Patentee before: International Business Machines Corp. |
|
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: 20130911 Termination date: 20190226 |