CN101819518A - 在事务内存中快速保存上下文的方法和装置 - Google Patents

在事务内存中快速保存上下文的方法和装置 Download PDF

Info

Publication number
CN101819518A
CN101819518A CN200910008371A CN200910008371A CN101819518A CN 101819518 A CN101819518 A CN 101819518A CN 200910008371 A CN200910008371 A CN 200910008371A CN 200910008371 A CN200910008371 A CN 200910008371A CN 101819518 A CN101819518 A CN 101819518A
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.)
Granted
Application number
CN200910008371A
Other languages
English (en)
Other versions
CN101819518B (zh
Inventor
戈弋
侯锐
王华勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM China Co Ltd
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN2009100083713A priority Critical patent/CN101819518B/zh
Priority to US12/708,634 priority patent/US20100217945A1/en
Publication of CN101819518A publication Critical patent/CN101819518A/zh
Application granted granted Critical
Publication of CN101819518B publication Critical patent/CN101819518B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30116Shadow registers, e.g. coupled registers, not forming part of the register space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • G06F9/528Mutual exclusion algorithms by using speculative mechanisms

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中任一所述的事务内存装置,其中所述表项还包括有效比特,用于将在事务处理中被使用的所述体系结构寄存器标记为有效。
CN2009100083713A 2009-02-26 2009-02-26 在事务内存中快速保存上下文的方法和装置 Expired - Fee Related CN101819518B (zh)

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 true CN101819518A (zh) 2010-09-01
CN101819518B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598703A (zh) * 2016-12-08 2017-04-26 用友网络科技股份有限公司 集成系统的事务补偿方法和装置
CN110520837A (zh) * 2017-04-18 2019-11-29 国际商业机器公司 基于重命名寄存器恢复的寄存器上下文还原
WO2022073362A1 (zh) * 2020-10-10 2022-04-14 乐鑫信息科技(上海)股份有限公司 更新寄存器的方法

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9361115B2 (en) 2012-06-15 2016-06-07 International Business Machines Corporation Saving/restoring selected registers in transactional processing
US8966324B2 (en) 2012-06-15 2015-02-24 International Business Machines Corporation Transactional execution branch indications
US9772854B2 (en) 2012-06-15 2017-09-26 International Business Machines Corporation Selectively controlling instruction execution in transactional processing
US9336046B2 (en) 2012-06-15 2016-05-10 International Business Machines Corporation Transaction abort processing
US8880959B2 (en) 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US9367323B2 (en) 2012-06-15 2016-06-14 International Business Machines Corporation Processor assist facility
US9442737B2 (en) 2012-06-15 2016-09-13 International Business Machines Corporation Restricting processing within a processor to facilitate transaction completion
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US8688661B2 (en) 2012-06-15 2014-04-01 International Business Machines Corporation Transactional processing
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US8682877B2 (en) 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9317460B2 (en) 2012-06-15 2016-04-19 International Business Machines Corporation Program event recording within a transactional environment
US10437602B2 (en) 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
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
US10540184B2 (en) 2017-04-18 2020-01-21 International Business Machines Corporation Coalescing store instructions for restoration
US10963261B2 (en) 2017-04-18 2021-03-30 International Business Machines Corporation Sharing snapshots across save requests
US10782979B2 (en) 2017-04-18 2020-09-22 International Business Machines Corporation Restoring saved architected registers and suppressing verification of registers to be restored
US10572265B2 (en) 2017-04-18 2020-02-25 International Business Machines Corporation Selecting register restoration or register reloading
US10564977B2 (en) 2017-04-18 2020-02-18 International Business Machines Corporation Selective register allocation
US10649785B2 (en) 2017-04-18 2020-05-12 International Business Machines Corporation Tracking changes to memory via check and recovery
US10489382B2 (en) 2017-04-18 2019-11-26 International Business Machines Corporation Register restoration invalidation based on a context switch
US10552164B2 (en) 2017-04-18 2020-02-04 International Business Machines Corporation Sharing snapshots between restoration and recovery
US11010192B2 (en) 2017-04-18 2021-05-18 International Business Machines Corporation Register restoration using recovery buffers
US10545766B2 (en) 2017-04-18 2020-01-28 International Business Machines Corporation Register restoration using transactional memory register snapshots
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

Family Cites Families (9)

* Cited by examiner, † Cited by third party
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
US6282634B1 (en) * 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
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
AU2003252065A1 (en) * 2002-07-22 2004-02-09 Thought, Inc. Dynamic object- driven database manipulation and mapping system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598703A (zh) * 2016-12-08 2017-04-26 用友网络科技股份有限公司 集成系统的事务补偿方法和装置
CN106598703B (zh) * 2016-12-08 2020-04-03 用友网络科技股份有限公司 集成系统的事务补偿方法和装置
CN110520837A (zh) * 2017-04-18 2019-11-29 国际商业机器公司 基于重命名寄存器恢复的寄存器上下文还原
CN110520837B (zh) * 2017-04-18 2023-06-23 国际商业机器公司 用于促进计算环境中的处理的方法、系统和介质
WO2022073362A1 (zh) * 2020-10-10 2022-04-14 乐鑫信息科技(上海)股份有限公司 更新寄存器的方法

Also Published As

Publication number Publication date
CN101819518B (zh) 2013-09-11
US20100217945A1 (en) 2010-08-26

Similar Documents

Publication Publication Date Title
CN101819518B (zh) 在事务内存中快速保存上下文的方法和装置
CN106406814B (zh) 处理器和将架构指令转译成微指令的方法
US11379234B2 (en) Store-to-load forwarding
JP3488162B2 (ja) コンピュータ処理システムにおけるロード動作を順序変更する方法および装置
CN102483704B (zh) 具有高效的高速缓存支持的事务内存系统
CN100388186C (zh) 用排序向量实施存储器排序模型的方法与设备
CN101308462B (zh) 管理对共享存储器单元的存储器访问的方法和计算系统
TWI540502B (zh) 用於重疊原子區域執行的處理器
CN103842959A (zh) 在计算机系统中维持操作数活性信息
CN103348323A (zh) 动态二进制优化
CN101147125A (zh) 用于直接累积未调准数据的可写入分段字的架构型寄存器
CN109196485A (zh) 用于维持非均匀计算装置中的数据一致性的方法和设备
US20160011876A1 (en) Managing instruction order in a processor pipeline
JP4956891B2 (ja) 演算処理装置,情報処理装置および演算処理装置の制御方法
EP3619615B1 (en) An apparatus and method for managing capability metadata
CN110597556A (zh) 一种寄存器映射表检查点资源的管理方法、系统及介质
CN112181494B (zh) 一种浮点物理寄存器文件的实现方法
CN109313554A (zh) 用于在非均匀计算装置中进行调度的方法和设备
CN102073596A (zh) 针对指令的可重构片上统一存储器管理方法
US20160011877A1 (en) Managing instruction order in a processor pipeline
WO2023129386A1 (en) Leveraging processing-in-memory (pim) resources to expedite non-pim instructions executed on a host
CN108920190A (zh) 用于确定从其恢复指令执行的恢复点的装置和方法
CN1902581A (zh) 使用推测性存储器支持来管理用于冗余多线程系统中故障检测的外部存储器更新
US20050055516A1 (en) Method and apparatus for hardware data speculation to support memory optimizations
JP3170472B2 (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
C14 Grant of patent or utility model
GR01 Patent grant
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.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130911

Termination date: 20190226

CF01 Termination of patent right due to non-payment of annual fee