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