CN101546282B - 用于在处理器中执行写拷贝的方法和设备 - Google Patents

用于在处理器中执行写拷贝的方法和设备 Download PDF

Info

Publication number
CN101546282B
CN101546282B CN200810086951XA CN200810086951A CN101546282B CN 101546282 B CN101546282 B CN 101546282B CN 200810086951X A CN200810086951X A CN 200810086951XA CN 200810086951 A CN200810086951 A CN 200810086951A CN 101546282 B CN101546282 B CN 101546282B
Authority
CN
China
Prior art keywords
speed cache
cache
speed
cache line
data
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
Application number
CN200810086951XA
Other languages
English (en)
Other versions
CN101546282A (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 CN200810086951XA priority Critical patent/CN101546282B/zh
Priority to US12/410,325 priority patent/US20090248984A1/en
Publication of CN101546282A publication Critical patent/CN101546282A/zh
Application granted granted Critical
Publication of CN101546282B publication Critical patent/CN101546282B/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

公开了一种用于在处理器中执行写拷贝的方法和设备。该处理器包括处理器核、在逻辑上划分为第一L1高速缓存和第二L1高速缓存的L1高速缓存、和L2高速缓存,第一L1高速缓存用于保存新数据以及第二L1高速缓存用于保存旧数据。该方法可以包括步骤:响应于来自处理器核的存储操作,判断是否L2高速缓存中相应的高速缓存线已经被修改。当确定L2高速缓存中相应的L2高速缓存线未被修改时,将该相应的L2高速缓存线中的旧数据拷贝到第二L1高速缓存,并且然后将新数据写入该相应的L2高速缓存线。当确定L2高速缓存中相应的L2高速缓存线被修改时,直接将新数据写入该相应的L2高速缓存线。

Description

用于在处理器中执行写拷贝的方法和设备
技术领域
本发明一般涉及数据处理领域,以及更具体地,本发明涉及一种用于在处理器中执行写拷贝的方法和设备。
背景技术
有些计算机程序在运行时需要将修改的数据撤销,也就是将数据恢复到修改之前的状态,通常将这种恢复操作称为回滚操作(rollback)。
为了在执行回滚时可以将数据恢复到变化之前的状态,需要在应用进程运行期间保存两份数据,即,一份是修改数据之前的旧数据,而另一份是修改数据之后的新数据。当执行回滚时,则丢弃修改后的新数据并恢复至旧数据。在应用进程运行期间保存新旧两份数据,不但需要占用更多的存储空间,而且应用进程还需要用于保存和恢复数据的特定操作,因而整体的运行效率大大降低。
为了解决上述问题,已经开发出用于数据记录的“写拷贝(Copyon Write:COW)”技术。写拷贝技术将拷贝和恢复数据的任务交给了底层软硬件,程序员无需在应用程序中插入用于拷贝和恢复的代码,减少了应用程序的开发难度。
长期以来,在商业化的处理器中都是通过基于软件的方法来实现写拷贝,还没有出现基于硬件的写拷贝(Hardware-based Copy onWrite HCOW)。原因在于,基于软件的方法可以满足大多数传统应用的要求。然而,随着计算机技术的发展,诸如事务存储器的某些新的应用提出了快速精细颗粒度拷贝等的新要求,这使得开发人员开始考虑基于硬件的写拷贝。
近年来,为了实现事务存储器,提出了多种支持基于硬件的写拷贝方法。然而,这些方法运行效率较低并且硬件复杂性较高。
因而,本领域需要一种具有精细拷贝粒度以及高效率的基于硬件的写拷贝方法。
发明内容
为此,本发明提出了一种用于在处理器中执行写拷贝方法和设备,用于在处理器的高速缓存(cache)中以高速缓存线为单位来进行高效的数据拷贝。
根据本发明的一方面,提供一种用于在处理器中执行写拷贝的方法。该处理器可以包括处理器核、在逻辑上划分为第一L1高速缓存和第二L1高速缓存的L1高速缓存、以及L2高速缓存。第一L1高速缓存用于保存新数据以及第二L1高速缓存用于保存旧数据。该方法可以包括步骤:响应于来自所述处理器核的存储操作,判断是否所述L2高速缓存中相应的高速缓存线(cache line)已经被修改;当确定所述L2高速缓存中相应的L2高速缓存线未被修改时,将该相应的L2高速缓存线中的旧数据拷贝到所述第二L1高速缓存,并且然后将新数据写入该相应的L2高速缓存线;以及当确定所述L2高速缓存中相应的L2高速缓存线被修改时,直接将新数据写入该相应的L2高速缓存线。
根据本发明的另一方面,提供一种用于在处理器中执行写拷贝的设备。该处理器可以包括处理器核、在逻辑上划分为第一L1高速缓存和第二L1高速缓存的L1高速缓存、以及L2高速缓存。第一L1高速缓存用于保存新数据以及第二L1高速缓存用于保存旧数据。该设备可以包括:判断装置,用于响应于来自所述处理器核的存储操作,判断是否L2高速缓存中相应的高速缓存线已经被修改;以及拷贝和写入装置,用于当确定L2高速缓存中相应的L2高速缓存线未被修改时,将该相应的L2高速缓存线中的旧数据拷贝到第二L1高速缓存,并且然后将新数据写入该相应的L2高速缓存线;以及当确定L2高速缓存中相应的L2高速缓存线被修改时,直接将新数据写入该相应的L2高速缓存线。
根据本发明的另一方面,提供一种处理器系统。该系统可以包括:处理器核;在逻辑上划分为第一L1高速缓存和第二L1高速缓存的L1高速缓存,耦合到所述处理器核,其中所述第一L1高速缓存用于保存新数据以及第二L1高速缓存用于保存旧数据;L2高速缓存,耦合到L1高速缓存;以及控制器。该控制器被配置为:响应于来自所述处理器核的存储操作,判断是否L2高速缓存中相应的高速缓存线已经被修改;当确定L2高速缓存中相应的L2高速缓存线未被修改时,将该相应的L2高速缓存线中的旧数据拷贝到第二L1高速缓存,并且然后将新数据写入该相应的L2高速缓存线;以及当确定L2高速缓存中相应的L2高速缓存线被修改时,直接将新数据写入该相应的L2高速缓存线。
附图说明
结合附图并参考以下的详细说明,本发明的特征、优点以及其他方面将变得更加明显,在附图中:
图1是示出了其中可以应用本发明的计算机系统架构的示意图;
图2是示出了其中可以应用本发明的处理器中的高速缓存层次结构的示意图;
图3是示出了其中可以应用本发明的多核处理器系统的示意图;
图4是示出了根据本发明的一个实施例的处理器系统的结构示意图;
图5是示出了根据本发明的一个实施例的用于执行写拷贝的方法的基本原理的示意图;
图6是示出了根据本发明的一个实施例的用于执行写拷贝的方法的流程图;以及
图7是示出了根据本发明的另一个实施例的从总线读取(Read)消息的流程图。
应当理解,在全部附图中,相同的参考标记表示相同的部件。
具体实施例
本发明的基本原理在于:将L1高速缓存划分成为两部分,即L1高速缓存A,用于保存修改之后的新数据;以及L1高速缓存B,用于保存修改之前的旧数据。当进程需要执行回滚操作时,将L1高速缓存B中的旧数据恢复到L2高速缓存中相应的L1高速缓存线。
另外,在本发明中,为了实现以高速缓存线为单位来进行高效的数据拷贝,针对L2高速缓存中的每条L2高速缓存线设置一个标识位T,用于表示是否对L2高速缓存线进行了修改。这样,本发明提出了一种以高速缓存线为拷贝单位并且在靠近处理器核的L1高速缓存和L2高速缓存中进行写拷贝的方法,用以实现精细粒度以及高效的基于硬件的写拷贝。
下面参考附图详细说明根据本发明的实施例。应该理解,这些实施例仅仅是说明书性的,而并非对本发明范围的限制。
下面,首先参考附图描述本发明的应用环境。
首先参考图1,图1示出了其中可以应用本发明的具有单处理器核的计算机系统架构100。该架构100可以包括处理器101、内存140、以及外部存储设备150(例如硬盘、光盘、闪存等)。
处理器101可以包括处理器核110、L1高速缓存120和L2高速缓存130等。众所周知,处理器核110对以上L1高速缓存120、L2高速缓存130、内存140和外部存储设备150的访问速度依次降低。
通常,在处理器101内部,L1高速缓存120用于在处理器核110处理数据过程期间暂时存储数据。由于缓存指令和数据与处理器在相同频率下工作,L1高速缓存120的存在可减少处理器101与内存140之间的数据交换次数,从而提高处理器101的运算效率。由于L1高速缓存120的容量有限,为了再次提高处理器核的运算速度,设置了L2高速缓存130。
处理器核110在读取数据时,顺序依次为L1高速缓存120、L2高速缓存130、内存140、以及外部存储设备150。在设计上述多级存储结构的过程中,采用“包含性”原则。即,L1高速缓存120中的所有数据均包含在L2高速缓存130之中,L2高速缓存130中的所有数据均包含在内存140和外部存储设备150之中,依次类推。即,L1高速缓存120
Figure S200810086951XD00051
L2高速缓存130
Figure S200810086951XD00052
内存140
Figure S200810086951XD00053
外部存储设备150。
按照本发明的一个实施例,该架构100还可以包括用于分别控制L1高速缓存120、L2高速缓存130、内存140以及外部存储设备150的操作的相应存储控制器(没有示出)。当然,也可以通过单个存储控制器来实现上述多级存储结构的控制。
图2示出了其中可以应用本发明的处理器200中的高速缓存层次结构。在处理器200中,处理器核110可以耦合到L1高速缓存120,并且L1高速缓存120可以耦合到L2高速缓存130。
当处理器核110进行装载操作时,处理器核110首先在L1高速缓存120中进行查找,如果命中,则直接从L1高速缓存120中返回数据;否则,将尝试从L2高速缓存130中装载数据。如果命中L2高速缓存130,则从L2高速缓存130中返回数据。已知的是,处理器核110对L1高速缓存120以及L2高速缓存130进行操作时,所占用的时钟周期数目存在显著差异,即对L1高速缓存120以及L2高速缓存130两者的操作效率显著不同。对L1高速缓存120的访问通常只需要几个时钟周期,但是对于L2高速缓存130的访问通常需要几十个时钟周期。
当处理器核110进行存储操作时,如果L1高速缓存120未命中,则直接将数据发送至L2高速缓存130,而并不通过L1高速缓存120。如果L1高速缓存120命中,则同时将数据发送至L1高速缓存120和L2高速缓存130两者。这是因为,正如上面所述的,在设计L1、L2两级高速缓存结构时,采用“包含性”的方法,即,L1高速缓存120中的所有数据均包含在L2高速缓存130之中。正如下面将描述的,本发明对处理器核的存储操作过程中做出了改进。
同样地,处理器200也可以包括可用于分别控制L1高速缓存120和L2高速缓存130的各种操作的高速缓存控制器(没有示出)。应该理解,也可以通过单个高速缓存控制器来实现对L1高速缓存120和L2高速缓存130的控制。
下面描述其中可以应用本发明的多核处理器系统。在多核处理器中,处理器中的存储器层次结构设计与图2中类似,不同之处在于需要在多个处理器核之间维护数据的一致性。
参考图3,图3示出了其中可以应用本发明的多核处理器系统300的示意图。
如图3所示,处理器核1 110可以耦合到L1高速缓存120,L1高速缓存120可以耦合到L2高速缓存130,以及L2高速缓存130可以进一步耦合到总线340。同样,处理器核2 310可以耦合到L1高速缓存320,L1高速缓存320可以耦合到L2高速缓存330,以及L2高速缓存330可以进一步耦合到总线340。
当在计算机系统中存在两个或者多个处理器核时,可以通过总线340来在各个处理器核之间传送表示多个处理器核的高速缓存一致性的消息。所述的高速缓存一致性消息是指,当多个处理器核中的一个对由多个处理器核共享的高速缓存中的数据进行修改之后,为保证该数据在多个高速缓存中的副本的数据的一致性而在总线上传送的消息。如图3所示,例如处理器核1 110和处理器核2 310将同一数据分别装载到L1高速缓存120以及L1高速缓存320之中,如果其中某个处理器核(例如,处理器核2 310)修改了所述数据,则其将通过总线340来向其他的处理器核发送高速缓存一致性消息,告知所述数据已经被修改并且进行后续的高速缓存一致性处理操作。通常,通过高速缓存一致性协议来维护存储器中数据的一致性。
从以上描述可知,通常以下情况可能改变高速缓存线的状态:(1)在处理器核中装载/存储操作;(2)来自总线的高速缓存一致性消息。
以上具体描述了可以应用本发明的环境。下面将具体描述根据本发明的实施例的用于实现基于硬件的写拷贝的方法和系统。
从上面的描述中可知,处理器核对L1高速缓存120的操作速度远远大于对L2高速缓存130的操作速度。因此本发明在实现写拷贝时,针对L1高速缓存120提出了一种双高速缓存的方法来实现高效的写拷贝。在L1高速缓存中实现写拷贝的另一优点在于,可以提供精细粒度的写拷贝,即,以每条高速缓存线为单位来进行写拷贝,这种写拷贝的颗粒度远远优于现有技术的在内存中以页面为单位(4k)来进行的写拷贝。另外,由于每次进行写拷贝时颗粒度较小而需要更短的时间,由此更进一步提高了写拷贝的效率。
下面参考图4来详细说明根据本发明的实施例的包括双L1高速缓存的处理器系统400。
如图4所示,处理器系统400可以包括处理器核110。处理器核110可以耦合至L1高速缓存120,以及L1高速缓存120可以耦合至L2高速缓存130,L2高速缓存130接着可以通过总线耦合到内部存储器或者其他处理器。
另外,系统400还可以包括可用于分别控制L1高速缓存120和L2高速缓存130的各种操作的L1高速缓存控制器和L2高速缓存控制器(没有示出)。应该理解,也可以通过单个高速缓存控制器来实现对L1高速缓存120和L2高速缓存130的控制。
根据本发明,L1高速缓存120可以在逻辑上分成L1高速缓存A 122和L1高速缓存B 124两部分。当处理器核110在非HCOW上下文中执行处理时,L1高速缓存A 122和L1高速缓存B 124两者均用作L1高速缓存。
另外,根据本发明的实施例,对于处于L2高速缓存130中的每条高速缓存线,设置一标识位T 532,用于指示所述高速缓存线中数据的状态,例如,当高速缓存线没有被修改时,对应于该高速缓存线的标识位被设置为0,而当该高速缓存线被修改时,该标识位被置位为1。例如,当由HCOW存储指令(在HCOW上下文中的存储指令)修改某高速缓存线中数据时,对应于该高速缓存线的标识位置位为1。
可替换地,也可以将标识位T设置为:当高速缓存线没有被修改时,对应于该高速缓存线的标识位被设置为1,而当该高速缓存线被修改时,该标识位被置位为0。
可替换地,也可以通过表的形式来分别记录各个L1高速缓存线的状态。应当理解,在本发明中,只要能够实现L1高速缓存中的每条L1高速缓存线的状态的记录即可,并不限于上述形式。
在本发明的实施例中,当处理器核110在HCOW上下文中执行操作时,L1高速缓存A 122的操作与常规的高速缓存相同,但是在L1高速缓存B 124之中仅保存数据的旧值。此时,通过HCOW存储指令存储的每个数据都具有两个拷贝,分别处于L1高速缓存A 122和L1高速缓存B 124之中,并且L1高速缓存A 122中保存新值,而在L1高速缓存B 124中保存旧值。一旦需要执行回滚操作时,则利用L1高速缓存B 124中保存的旧数值进行恢复,并丢弃在L1高速缓存A 122中保存的值。
现在参考图5,其中示出了本发明的一个实施例的用于执行写拷贝方法的基本原理。
在图5的处理器系统500中,处理器核110可以耦合至L1高速缓存120,以及L1高速缓存120可以耦合至L2高速缓存130。正如以上所述的,可以将L1高速缓存120在逻辑上划分成为L1高速缓存A 122以及L1高速缓存B 124两部分。
如图5所示,当处理器核110向高速缓存存储数据(存储操作)时,如图5中的箭头A所示,如果处理器核100命中L1高速缓存A112中高速缓存线532,则处理器核110将新数据保存在高速缓存线532处,接着如箭头B所示从高速缓存A 122返回。
然后,在L2高速缓存130中查找与高速缓存线532相对应的L2高速缓存线,并且找到L2高速缓存线536(如箭头C所示)。
根据本发明的实施例,如果与L2高速缓存线536对应的标识位T 532的值为0,表示该L1高速缓存536没有被修改过,这时,将L2高速缓存线536中的数据拷贝到L1高速缓存B 124之中相应的L1高速缓存线534处(如箭头D所示)。然后将新数据写入L2高速缓存线536,并且将L2高速缓存线536的标识位的值设置为1,表示L2高速缓存线536已经被修改过
另一方面,如果与L2高速缓存线536相应的标识位T532的值为1,表示L2高速缓存线536中的数据之前已经由HCOW存储指令修改过。这种情况下,不必将L2高速缓存线536中的数据拷贝到L1高速缓存B 124之中的L1高速缓存线534处(因为该高速缓存线保存的是修改的数据)。
本发明一个实施例的特点包括:
首先,将L1高速缓存120在逻辑上划分成为L1高速缓存A 122和L1高速缓存B 124两部分,分别用于保存修改之后的新数据以及修改之前的旧数据。
其次,针对L1高速缓存中的每条高速缓存线设置标识位T,用于表示在该高速缓存线中的数据是否被修改,并根据标识位T的值来确定是否将L2中的高速缓存线拷贝到L1高速缓存B 124中相应的高速缓存线。
经过上述操作之后,在L1高速缓存A 122中存储最新版本的新数据,而在L1高速缓存B 124中存储相应的旧版本的旧数据。当需要执行回滚操作时,只须用L1高速缓存B 124中的数据作为当前数据拷贝到L2高速缓存中相应高速缓存线,并且将了L1高速缓存A122中的数据无效。如果不需要执行回滚操作,则仅须将L1高速缓存B 124中的数据无效。
下面,参考图6并结合图5,详细描述根据本发明实施例的用于在处理器中执行写拷贝的方法。
通常,在步骤602处,当处理器核执行存储操作时,启动根据本发明的实施例的用于在处理器中执行写拷贝的方法。
在步骤S604处,判断是否L1高速缓存A 122命中并且在L2高速缓存130中相应的高速缓存线的标识位的值为0。如果是,处理前进至步骤S606。如果否,则处理直接前进至步骤S608。
在步骤S606处,将L2高速缓存130中相应的高速缓存线中的数据读入L1高速缓存B 124,并且然后将新数据写入L1高速缓存A122和L2高速缓存130,同时设置相应的L2高速缓存线的标识位T=1。然后处理前进至步骤620结束。
在步骤S608中,判断是否L1高速缓存A 122命中并且在L2高速缓存130中相应的高速缓存线的标识位的值为1,如果是,则处理前进至步骤S610。如果否,则处理直接前进至步骤S612。
在步骤S610中,直接向L1高速缓存A 122和L2高速缓存130写入新数据值。然后,处理前进至步骤S620结束。
在步骤S612中,判断是否L1高速缓存A 122未命中但L2高速缓存130命中并且相应的L2高速缓存线中的标识位为0。如果是,则处理前进至步骤S614。如果否,则处理直接前进至步骤S616。
在步骤S614中,将L2高速缓存130中相应的高速缓存线中的数据读入L高速缓存B 124,并将新数据写入L2高速缓存130,同时将L2高速缓存130中相应的高速缓存线的标识位的值设置为1。然后,处理前进至步骤S620结束。
在步骤S616中,判断是否L1高速缓存A 122未命中但L2高速缓存130命中并且相应L2高速缓存线中的标识位为1。如果是,则处理前进至步骤S618。如果否,则处理直接前进至步骤S620结束。
在步骤S618中,直接将新值写入L2高速缓存130。然后,处理前进至步骤S620结束。
应该理解,图1中的各个步骤并非必须严格按照所示的顺序,它们顺序上的变化也可以在本发明的范围之内。
另外,应该理解,在L1高速缓存命中的情况下,可以先将新数据写入L1高速缓存,然后再判断相应的L2高速缓存线是否曾经被修改。
进一步,应该理解,在本发明的实施例中,L1高速缓存A 122和L1高速缓存B 124之间的比例可以动态调整。由于L1高速缓存B 124中保存的是L1高速缓存A 122中数据的旧值,因而L1高速缓存B 124中高速缓存线数目的最大值是与L1高速缓存A 122中的高速缓存线的数据相等。
根据本发明的实施例,在L1高速缓存A 122总是保存新数据,而L1高速缓存B 124总是保存就数据。在进程需要执行回滚操作时,只需要将L1高速缓存B 124中的旧数据回滚至L2高速缓存130中的相应高速缓存线即可。这样,根据本发明第一实施例,可以实现精细拷贝粒度以及高效率的基于硬件的写拷贝方法。
进一步,本申请也提出了针对多核处理器系统中来自总线的高速缓存一致性消息的方案。该方案中,利用上述针对每个L2高速缓存线设置的标识位T。
具体地,参考图7,其中示出了来自总线的读取消息的流程图。在步骤S702中开始流程。在步骤S704中,如果命中L2并且在相应L2高速缓存线中的标识位T=0,则L2在处理此消息时步骤与常规情况相同。否则,如果在相应L2高速缓存线中的标识位T=1,则表示出现冲突。接着,触发中断来通知出现冲突事件。
另外在处理来自总线的删除(kill)消息时,操作步骤与上文中处理来自总线的读取消息相同,其处理流程图同样如图7所示,在此不再赘述。
应该理解,在实际环境中,可以对上述实施例及其变型中的各个特征和步骤进行任意组合。
另外,应该理解,本发明可以以硬件、软件、固件以及它们的组合来实现。本领域技术人员应该认识到,也可以在供任何合适数据处理系统使用的信号承载介质上所设置的计算机程序产品中体现本发明。这种信号承载介质可以是传输介质或用于机器可读信息的可记录介质,包括磁介质、光介质或其他合适介质。可记录介质的例子包括:硬盘驱动器中的磁盘或软盘、用于光驱的光盘、磁带,以及本领域技术人员所能想到的其他介质。本领域技术人员应该认识到,具有合适编程装置的任何通信终端都将能够执行如程序产品中体现的本发明方法的步骤。
从上述描述应该理解,在不脱离本发明精神的情况下,可以对本发明各实施例进行修改和变更。本说明书中的描述仅仅是用于说明性的,而不应被认为是限制性的。本发明的范围仅受权利要求书的限制。

Claims (14)

1.一种用于在处理器中执行写拷贝的方法,其中该处理器包括处理器核、在逻辑上划分为第一L1高速缓存和第二L1高速缓存的L1高速缓存、以及L2高速缓存,第一L1高速缓存用于保存新数据以及第二L1高速缓存用于保存旧数据,该方法包括步骤:
响应于来自所述处理器核的存储操作,判断是否所述L2高速缓存中相应的高速缓存线已经被修改;
当确定所述L2高速缓存中相应的L2高速缓存线未被修改时,将该相应的L2高速缓存线中的旧数据拷贝到所述第二L1高速缓存,并且然后将新数据写入该相应的L2高速缓存线;以及
当确定所述L2高速缓存中相应的L2高速缓存线被修改时,直接将新数据写入该相应的L2高速缓存线。
2.根据权利要求1所述的方法,其中所述判断步骤还包括判断是否所述第一L1高速缓存命中,以及
当确定所述第一L1高速缓存命中时,将新数据写入所述第一L1高速缓存。
3.根据权利要求1所述的方法,其中,针对L2高速缓存中的每条高速缓存线设置一标识位,用于表示该高速缓存线的状态。
4.根据权利要求3所述的方法,其中,该标识位的初始值为0,以及如果该高速缓存线被修改,则将标识位的值设置为1。
5.根据权利要求3所述的方法,其中,该标识位的初始值为1,以及如果该高速缓存线被修改,则将标识位的值设置为0。
6.根据权利要求1的方法,还包括步骤:当需要执行回滚操作时,将第二L1高速缓存中的旧数据恢复至L2高速缓存中相应的L2高速缓存线。
7.根据权利要求1的方法,其中,第一L1高速缓存和第二L1高速缓存的比例可动态调整。
8.一种用于在处理器中执行写拷贝的设备,其中该处理器包括处理器核、在逻辑上划分为第一L1高速缓存和第二L1高速缓存的L1高速缓存、以及L2高速缓存,第一L1高速缓存用于保存新数据以及第二L1高速缓存用于保存旧数据,该设备包括:
判断装置,用于响应于来自所述处理器核的存储操作,判断是否L2高速缓存中相应的高速缓存线已经被修改;以及
拷贝和写入装置,用于当确定L2高速缓存中相应的L2高速缓存线未被修改时,将该相应的L2高速缓存线中的旧数据拷贝到第二L1高速缓存,并且然后将新数据写入该相应的L2高速缓存线;以及当确定L2高速缓存中相应的L2高速缓存线被修改时,直接将新数据写入该相应的L2高速缓存线。
9.根据权利要求8所述的设备,其中所述判断装置还判断是否第一L1高速缓存命中,以及
当所述判断装置确定第一L1高速缓存命中时,所述拷贝和写入装置将新数据写入第一L1高速缓存。
10.根据权利要求8所述的设备,其中,针对L2高速缓存中的每条高速缓存线设置一标识位,用于表示该高速缓存线的状态。
11.根据权利要求10所述的设备,其中,该标识位的初始值为0,以及如果该高速缓存线被修改,则将标识位的值置位为1。
12.根据权利要求10所述的设备,其中,该标识位的初始值为1,以及如果该高速缓存线被修改,则将标识位的值置位为0。
13.根据权利要求8的设备,还包括回滚装置,用于当需要执行回滚操作时,将第二L1高速缓存中的旧数据恢复至L2高速缓存中相应的L2高速缓存线。
14.根据权利要求8的设备,其中,第一L1高速缓存和第二L1高速缓存的比例可动态调整。
CN200810086951XA 2008-03-28 2008-03-28 用于在处理器中执行写拷贝的方法和设备 Expired - Fee Related CN101546282B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200810086951XA CN101546282B (zh) 2008-03-28 2008-03-28 用于在处理器中执行写拷贝的方法和设备
US12/410,325 US20090248984A1 (en) 2008-03-28 2009-03-24 Method and device for performing copy-on-write in a processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810086951XA CN101546282B (zh) 2008-03-28 2008-03-28 用于在处理器中执行写拷贝的方法和设备

Publications (2)

Publication Number Publication Date
CN101546282A CN101546282A (zh) 2009-09-30
CN101546282B true CN101546282B (zh) 2011-05-18

Family

ID=41120122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810086951XA Expired - Fee Related CN101546282B (zh) 2008-03-28 2008-03-28 用于在处理器中执行写拷贝的方法和设备

Country Status (2)

Country Link
US (1) US20090248984A1 (zh)
CN (1) CN101546282B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312239B2 (en) * 2009-09-30 2012-11-13 Avaya Inc. Cache management for increasing performance of high-availability multi-core systems
US8752054B2 (en) * 2010-03-11 2014-06-10 Avaya Inc. Intelligent merging of transactions based on a variety of criteria
CN102117262B (zh) * 2010-12-21 2012-09-05 清华大学 用于多核处理器的Cache的主动复制方法及系统
US8490207B2 (en) * 2011-05-31 2013-07-16 Red Hat, Inc. Performing zero-copy sends in a networked file system with cryptographic signing
CN102810075B (zh) * 2011-06-01 2014-11-19 英业达股份有限公司 事务型系统处理方法
WO2014003707A2 (en) 2012-06-25 2014-01-03 Empire Technology Development Llc Hardware-based accelerator for managing copy-on-write
US9552295B2 (en) 2012-09-25 2017-01-24 Empire Technology Development Llc Performance and energy efficiency while using large pages
US10303525B2 (en) * 2014-12-24 2019-05-28 Intel Corporation Systems, apparatuses, and methods for data speculation execution
CN104866434B (zh) * 2015-06-01 2017-10-03 明算科技(北京)股份有限公司 面向多应用的数据存储系统和数据存储、调用方法
US10262721B2 (en) * 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
CN111241010B (zh) * 2020-01-17 2022-08-02 中国科学院计算技术研究所 一种基于缓存划分及回滚的处理器瞬态攻击防御方法
CN115668156A (zh) * 2020-07-29 2023-01-31 华为技术有限公司 缓存系统、方法和芯片

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666514A (en) * 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
CN1267023A (zh) * 1999-03-01 2000-09-20 国际商业机器公司 多处理机数据处理系统中同级到同级的超高速缓存移动
US7100089B1 (en) * 2002-09-06 2006-08-29 3Pardata, Inc. Determining differences between snapshots
US7191304B1 (en) * 2002-09-06 2007-03-13 3Pardata, Inc. Efficient and reliable virtual volume mapping

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2737820B2 (ja) * 1992-09-24 1998-04-08 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリアクセス方法およびシステム
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
US5940858A (en) * 1997-05-30 1999-08-17 National Semiconductor Corporation Cache circuit with programmable sizing and method of operation
US6825848B1 (en) * 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
US20080195798A1 (en) * 2000-01-06 2008-08-14 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems and Methods Thereof
US6684298B1 (en) * 2000-11-09 2004-01-27 University Of Rochester Dynamic reconfigurable memory hierarchy
US7072915B2 (en) * 2002-01-22 2006-07-04 International Business Machines Corporation Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time
US7779307B1 (en) * 2005-09-28 2010-08-17 Oracle America, Inc. Memory ordering queue tightly coupled with a versioning cache circuit
US7624257B2 (en) * 2005-11-30 2009-11-24 International Business Machines Corporation Digital data processing apparatus having hardware multithreading support including a register set reserved for special class threads
JP2008234074A (ja) * 2007-03-16 2008-10-02 Fujitsu Ltd キャッシュ装置
US7890700B2 (en) * 2008-03-19 2011-02-15 International Business Machines Corporation Method, system, and computer program product for cross-invalidation handling in a multi-level private cache

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666514A (en) * 1994-07-01 1997-09-09 Board Of Trustees Of The Leland Stanford Junior University Cache memory containing extra status bits to indicate memory regions where logging of data should occur
CN1267023A (zh) * 1999-03-01 2000-09-20 国际商业机器公司 多处理机数据处理系统中同级到同级的超高速缓存移动
US7100089B1 (en) * 2002-09-06 2006-08-29 3Pardata, Inc. Determining differences between snapshots
US7191304B1 (en) * 2002-09-06 2007-03-13 3Pardata, Inc. Efficient and reliable virtual volume mapping

Also Published As

Publication number Publication date
CN101546282A (zh) 2009-09-30
US20090248984A1 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
CN101546282B (zh) 用于在处理器中执行写拷贝的方法和设备
CN100557580C (zh) 用于快闪存储器的记入后直写式高速缓存
US6581142B1 (en) Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer
KR100772863B1 (ko) 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
CN102541757B (zh) 写缓存方法、缓存同步方法和装置
CN105335098A (zh) 一种基于存储级内存的日志文件系统性能提高方法
JP2679805B2 (ja) ディジタルコンピュータシステムのメモリ管理システム
CN104881371A (zh) 持久性内存事务处理缓存管理方法与装置
KR20210002554A (ko) 강건한 트랜잭션 메모리
US9940071B2 (en) Memory system that carries out an atomic write operation
CN103049224B (zh) 将数据导入物理磁带的方法、装置和系统
CN110018790B (zh) 一种保证持久性内存中数据崩溃一致性的方法及系统
CN103577513A (zh) 藉延迟节点实例化以缓存xml信息集的系统和/或方法
US6108671A (en) Virtual database space system and computer-readable recording medium recorded with database program
US20220129420A1 (en) Method for facilitating recovery from crash of solid-state storage device, method of data synchronization, computer system, and solid-state storage device
KR20120102923A (ko) 복사 명령 및 이동 명령을 지원하는 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
CN112597072A (zh) 一种Flash存储器的数据更新方法和装置
US11467970B1 (en) Metadata management in non-volatile memory devices using in-memory journal
US20080109607A1 (en) Method, system and article for managing memory
CN105653466A (zh) 数据储存装置以及快闪存储器控制方法
CN109478163B (zh) 用于在高速缓存条目处标识存储器访问请求的待决的系统和方法
US20150113244A1 (en) Concurrently accessing memory
US20230044942A1 (en) Conditional update, delayed lookup
JP3335919B2 (ja) ディスクキャッシュ制御装置
CN111506458A (zh) 一种提升f2fs文件系统事务性能的方法、模块及存储系统

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
ASS Succession or assignment of patent right

Owner name: IBM (CHINA) CO., LTD.

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION

Effective date: 20150731

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150731

Address after: 201203 Shanghai city Pudong New Area Keyuan Road No. 399 Zhang Jiang Zhang Jiang high tech Park Innovation Park 10 Building 7 layer

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: 20110518

Termination date: 20190328