CN102902631A - 一种避免读缺失时数据回写的多处理器核间传输方法 - Google Patents

一种避免读缺失时数据回写的多处理器核间传输方法 Download PDF

Info

Publication number
CN102902631A
CN102902631A CN2012103468828A CN201210346882A CN102902631A CN 102902631 A CN102902631 A CN 102902631A CN 2012103468828 A CN2012103468828 A CN 2012103468828A CN 201210346882 A CN201210346882 A CN 201210346882A CN 102902631 A CN102902631 A CN 102902631A
Authority
CN
China
Prior art keywords
copy
effective
speed cache
write
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.)
Granted
Application number
CN2012103468828A
Other languages
English (en)
Other versions
CN102902631B (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.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems Co Ltd
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 Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN201210346882.8A priority Critical patent/CN102902631B/zh
Publication of CN102902631A publication Critical patent/CN102902631A/zh
Application granted granted Critical
Publication of CN102902631B publication Critical patent/CN102902631B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种避免读缺失时数据回写的多处理器核间传输方法,每个高速缓存副本具有四种状态:无效状态、共享状态、独占状态、修改状态,每个高速缓存副本有三位状态位:有效位、共享位、回写位,其中,有效位表示高速缓存副本是否为有效副本,共享位表示有效的高速缓存副本是否处于共享状态;回写位表示有效的高速缓存副本被移出高速缓存时是否需要回写主存储器;所述传输方法支持高速缓存有效脏副本的数据在处理器间直接传输,所述高速缓存有效脏副本是指与主存储器数据不同的高速缓存有效副本。本发明提供一种有效避免读缺失时数据回写主存储器,有效地减少处理器访问主存储器的次数,提高系统性能的避免读缺失时数据回写的多处理器核间传输方法。

Description

一种避免读缺失时数据回写的多处理器核间传输方法
技术领域
本发明涉及多处理器核间传输技术领域,尤其是一种多处理器核间传输方法。
背景技术
随着人类对计算机速度和计算规模需求的不断提高,传统的单核处理器已经不能满足市场的需求,多核处理器应运而生。同时伴随着集成电路制造工艺的提高,在单芯片上集成多核成为现实,原本只有在大型服务器上才会使用的多处理器系统,逐渐迈入普通消费市场,越来越多的嵌入式系统都采用多核芯片。多核架构中一般都采用多级缓存的存储器架构以提高处理器的效率。在这样的架构下,高速缓存缓存数据一致性问题是一直困扰着设计者的一个重要问题。
多核处理器中有共享和私有缓存。私有数据只被单个处理器使用,而共享数据则被多个处理器同时使用。若某个处理器修改了高速缓存中的一个共享数据,同时该数据在别的高速缓存中有副本。该数据最新修改后,如果其它的副本不能得到及时修改,这时该数据若被其它处理器访问就会出现错误,这就出现了多处理器高速缓存数据一致性问题。
为了处理上述问题,诸多协议陆续被提出,其中之一的MESI协议被广泛采用。在MESI协议中,高速缓存副本具有四个状态:无效状态、共享状态、独占状态、修改状态。其四个状态的定义如下;
1.无效状态:该高速缓存副本内容无效;
2.共享状态:可能有多个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据一致;
3.独占状态:只有一个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据一致;
4.修改状态:只有一个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据不一致。
在MESI协议中,若处理器A发生读缺失,处理器B拥有处理器A访问的高速缓存副本,且其处于修改状态。根据MESI状态定义,此时需要先将处理器B对应高速缓存副本的数据回写主存储器,然后处理器A从处理器B对应的高速缓存副本中读取数据或者从主存储器中读取数据。
由于处理器访问高速缓存的速度远快于访问主存储器的速度,因此处理器应该尽量避免访问主存储器。
发明内容
为了克服已有多处理器核间传输方法的在读缺失时数据回写主存储器,处理器频繁地访问主存储器、限制系统性能的不足,本发明提供一种有效避免读缺失时数据回写主存储器,有效地减少处理器访问主存储器的次数,提高系统性能的避免读缺失时数据回写的多处理器核间传输方法。
本发明解决其技术问题所采用的技术方案是:
一种避免读缺失时数据回写的多处理器核间传输方法,发起读/写操作的处理器称为本地处理器,其余处理器称为远程处理器。本地处理器中,与被访问地址具有相同索引的高速缓存副本称为对应的本地高速缓存副本;远程处理器中,与被访问地址具有相同索引和标志的高速缓存副本称为对应的远程高速缓存副本,每个高速缓存副本具有四种状态:无效状态、共享状态、独占状态、修改状态,其状态定义如下;
a.无效状态:该高速缓存副本内容无效;
b.共享状态:可能有多个处理器拥有该高速缓存有效副本,其数据不一定与主存储器中的数据一致;
c.独占状态:只有一个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据一致;
d.修改状态:只有一个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据不一致;
每个高速缓存副本有三位状态位:有效位、共享位、回写位,高速缓存副本状态与状态位的对应关系如下:
Figure BDA0000215362871
其中,有效位表示高速缓存副本是否为有效副本,共享位表示有效的高速缓存副本是否处于共享状态;回写位表示有效的高速缓存副本被移出高速缓存时是否需要回写主存储器,当且仅当高速缓存有效副本的回写位有效且该高速缓存有效副本被移出高速缓存时,会将该高速缓存有效副本中的数据回写主存储器;当且仅当处理器发起对本地高速缓存副本写操作时,其回写位才会被置为有效,并将本地处理器对应的高速缓存有效副本置为修改状态;
所述传输方法支持高速缓存有效脏副本的数据在处理器间直接传输,所述高速缓存有效脏副本是指与主存储器数据不同的高速缓存有效副本;当本地处理器发生读缺失时,远程处理器拥有对应的高速缓存有效副本,且该副本的数据与主存储器中的数据不一致,则远程处理器直接将对应高速缓存副本的数据传输至本地处理器对应的高速缓存副本中,此时本地处理器和远程处理器对应的高速缓存副本中的数据一致,但与主存储器中的数据不一致,即本地处理器和远程处理器对应的高速缓存副本都为脏副本;完成数据传输后,本地处理器的对应高速缓存副本变为共享状态,回写位无效;远程处理器的对应高速缓存副本变为共享状态,回写位保持不变;处理器间高速缓存有效副本直接传输时,只传输高速缓存有效副本的数据,并不传输回写位,即处理器间高速缓存有效副本直接传输操作的接收方,其对应高速缓存有效副本的回写位无效。
进一步,所述传输方法支持一个主存储器块拥有多个有效脏副本,且有效脏副本至多被回写主存储器一次;对于任意一个主存储器块有一个或多个有效脏副本,若主存储器块拥有有效脏副本,则有且只有一个有效脏副本的回写位有效;
当本地处理器中回写位无效的高速缓存有效脏副本被移出高速缓存时,不需要回写主存储器,且必然有一个远程处理器对应的高速缓存有效脏副本的回写位有效;当本地处理器中回写位有效的高速缓存有效脏副本被移出高速缓存时,需要将高速缓存有效脏副本的数据回写主存储器,回写主存储器后,所有的远程处理器对应的高速缓存有效副本中的数据与主存储器中的数据一致,远程处理器对应的高速缓存有效副本不再为“脏”,之后当远程处理器对应的高速缓存有效副本被移出高速缓存时,不需要再回写主存储器。
本发明的有益效果主要表现在:有效避免读缺失时数据回写主存储器,有效地减少处理器访问主存储器的次数,提高系统性能。
附图说明
图1是避免读缺失时数据回写的多处理器核间传输方法的原理图,其中,无效是指处理器间写无效,直接传输是指处理器间高速缓存有效副本直接传输,主存读取是指从主存储器读取数据。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1,一种避免读缺失时数据回写的多处理器核间传输方法,发生读缺失时,支持高速缓存有效脏副本(与主存储器数据不同的高速缓存有效副本)的数据在处理器间直接传输,而不需要先将该高速缓存有效脏副本的数据回写主存储器;支持一个主存储器块拥有多个有效脏副本,且多个有效脏副本至多被回写主存储器一次;采用一种类MESI协议作为高速缓存一致性协议。
采用一种类MESI协议作为高速缓存一致性协议。该协议适用于采用写返回策略的高速缓存,在该协议中,每个高速缓存副本具有四种状态:无效状态、共享状态、独占状态、修改状态,其状态定义如下;
a.无效状态:该高速缓存副本内容无效;
b.共享状态:可能有多个处理器拥有该高速缓存有效副本,其数据不一定与主存储器中的数据一致;
c.独占状态:只有一个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据一致;
d.修改状态:只有一个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据不一致。
每个高速缓存副本有三位状态位:有效位、共享位、回写位。高速缓存副本状态与状态位的对应关系如下:
Figure BDA0000215362872
发起读/写操作的处理器称为本地处理器,其余处理器称为远程处理器。本地处理器中,与被访问地址具有相同索引(标志不一定相同)的高速缓存副本称为对应的本地高速缓存副本;远程处理器中,与被访问地址具有相同索引和标志的高速缓存副本称为对应的远程高速缓存副本。
有效位表示高速缓存副本是否为有效副本。共享位表示有效的高速缓存副本是否处于共享状态。回写位表示有效的高速缓存副本被移出高速缓存时是否需要回写主存储器,当且仅当高速缓存有效副本的回写位有效且该高速缓存有效副本被移出高速缓存时,会将该高速缓存有效副本中的数据回写主存储器;当且仅当处理器发起对本地高速缓存副本写操作时,其回写位才会被置为有效,并将本地处理器对应的高速缓存有效副本置为修改状态。
支持高速缓存有效脏副本的数据在处理器间直接传输操作。本地处理器发生读缺失时,远程处理器拥有对应的高速缓存有效副本,且该副本的数据与主存储器中的数据不一致,则远程处理器直接将对应高速缓存副本的数据传输至本地处理器对应的高速缓存副本中,此时本地处理器和远程处理器对应的高速缓存副本中的数据一致,但与主存储器中的数据不一致,即本地处理器和远程处理器对应的高速缓存副本都为脏副本。完成数据传输后,本地处理器的对应高速缓存副本变为共享状态,回写位无效;远程处理器的对应高速缓存副本变为共享状态,回写位保持不变。处理器间高速缓存有效副本直接传输时,只传输高速缓存有效副本的数据,并不传输回写位,即处理器间高速缓存有效副本直接传输操作的接收方,其对应高速缓存有效副本的回写位无效。
支持一个主存储器块拥有多个有效脏副本,且有效脏副本至多被回写主存储器一次。对于任意一个主存储器块,可以有多个有效脏副本,若主存储器块拥有有效脏副本,则有且只有一个有效脏副本的回写位有效。当本地处理器中回写位无效的高速缓存有效脏副本被移出高速缓存时,不需要回写主存储器,且必然有一个远程处理器对应的高速缓存有效脏副本的回写位有效;当本地处理器中回写位有效的高速缓存有效脏副本被移出高速缓存时,需要将高速缓存有效脏副本的数据回写主存储器,回写主存储器后,所有的远程处理器对应的高速缓存有效副本中的数据与主存储器中的数据一致,远程处理器对应的高速缓存有效副本不再为“脏”,之后当远程处理器对应的高速缓存有效副本被移出高速缓存时,不需要再回写主存储器。因此有效脏副本至多被回写主存储器一次。
本实施例支持两种处理期间操作:处理器间高速缓存有效副本直接传输操作、处理期间写无效操作。
处理期间高速缓存有效副本直接传输操作是指:本地处理器发生读/写缺失,且远程处理器拥有对应的高速缓存有效副本,则本地处理器直接从远程处理器获取对应高速缓存副本数据,并将数据填充到对应的本地高速缓存副本中。若有多个远程处理器拥有对应高速缓存有效副本,则通过仲裁选择其中一个远程处理器发起该操作。
当本地处理器读/写缺失,且远程处理器没有对应高速缓存有效副本时,本地处理器从主存储器中读取数据,并将读取到的数据填充到对应的本地高速缓存副本中。
处理期间写无效操作是指:本地处理器发起写操作,且远程处理器拥有对应的高速缓存有效副本,则本地处理器发起写无效操作令对应的远程处理器高速缓存副本处于无效状态。若有多个远程处理器拥有对应高速缓存有效副本,则对每一个远程处理器发起该操作。
高速缓存副本有三位状态位表示其状态,分别为有效位,共享位,回写位。有效位为0,表示高速缓存副本处于无效状态;有效位为1,共享位为1,表示高速缓存副本处于共享状态;有效位为1,共享位为0,回写位为0,表示高速缓存副本处于独占状态;有效位为1,共享位为0,回写位为1,表示高速缓存副本处于修改状态。
Figure BDA0000215362873
基于采用写返回、写分配策略的高速缓存实现本发明。
本地处理器发起读操作,且命中高速缓存。则不改变高速缓存副本的状态。
本地处理器发起读操作,且未命中高速缓存。首先,查看本地处理器对应高速缓存副本的状态,若该副本处于共享状态且回写位为1或处于修改状态,则将高速缓存副本的数据回写主存储器。然后,查看远程处理器是否拥有对应高速缓存有效副本,若远程处理器拥有对应高速缓存有效副本,则发起处理器间高速缓存有效副本直接传输操作,将远程处理器对应的高速缓存副本数据存储到本地处理器对应的高速缓存副本中;不论远程处理器对应的高速缓存副本处于何种状态,将该高速缓存副本的共享位置为0,不改变有效位和回写位,即将远程处理器对应的高速缓存副本变为共享状态;本地处理器对应的高速缓存副本变为共享状态,且回写位为0。若远程处理器没有对应高速缓存有效副本,则本地处理器发起对主存储器的读操作,将主存储器中的数据存储到本地对应的高速缓存副本中,本地高速缓存副本置于共享状态,且回写位为0。
本地处理器发起写操作,且命中高速缓存。首先将待写数据写入本地处理器对应的高速缓存副本中,本地处理器对应的高速缓存有效副本置为修改状态。查看远程服务器是否拥有对应高速缓存有效副本,若远程处理器拥有对应高速缓存有效副本,则发起处理器间写无效操作,将远程处理器对应的高速缓存副本置为无效状态。
本地处理器发起写操作,且未命中高速缓存。首先,查看本地处理器对应高速缓存副本的状态,若该副本处于共享状态且回写位为1或处于修改状态,则将高速缓存副本的数据回写主存储器。然后,查看远程处理器是否拥有对应高速缓存有效副本,若远程处理器拥有对应高速缓存有效副本,则发起处理器间高速缓存有效副本直接传输操作,将远程处理器对应的高速缓存副本数据存储到本地处理器对应的高速缓存副本中,然后将待写数据写入本地处理器对应的高速缓存副本中,本地处理器对应的高速缓存副本置为修改状态;同时发起处理器间写无效操作,将远程处理器对应的高速缓存副本置为无效状态。若远程处理器没有对应高速缓存有效副本,则本地处理器发起对主存储器的读操作,将主存储器中的数据存储到本地对应的高速缓存副本中,然后将待写数据写入本地处理器对应的高速缓存副本中,本地高速缓存副本置为修改状态。
请参照图1。
本地处理器发起读操作,对应的本地高速缓存副本处于无效状态。远程处理器拥有对应高速缓存有效副本,则本地处理器发起处理器间高速缓存有效副本直接传输操作,本地处理器的对应高速缓存副本为共享状态,且回写位为0。
本地处理器发起读操作,对应的本地高速缓存副本处于无效状态。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据,本地处理器的对应高速缓存副本为独占状态。
本地处理器发起写操作,对应的本地高速缓存副本处于无效状态。远程处理器拥有对应高速缓存有效副本,则本地处理器首先发起处理器间高速缓存有效副本直接传输操作,同时发起处理期间写无效操作,然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。
本地处理器发起写操作,对应的本地高速缓存副本处于无效状态。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据,再修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。
本地处理器发起读操作,对应的本地高速缓存副本处于共享状态。本地处理器读命中,则直接从高速缓存副本读取数据,本地高速缓存副本状态位不变。
本地处理器发起读操作,对应的本地高速缓存副本处于共享状态。本地处理器读缺失,首先查看对应的本地高速缓存副本的回写位,若为1,则将该高速缓存副本数据回写到主存储器。远程处理器拥有对应高速缓存有效副本,则本地处理器发起处理器间高速缓存有效副本直接传输操作,本地处理器的对应高速缓存副本为共享状态,且回写位为0。
本地处理器发起读操作,对应的本地高速缓存副本处于共享状态。本地处理器读缺失,首先查看对应的本地高速缓存副本的回写位,若为1,则将该高速缓存副本数据回写到主存储器。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据,本地处理器的对应高速缓存副本为独占状态。
本地处理器发起写操作,对应的本地高速缓存副本处于共享状态。本地处理器写命中,则直接将数据写入本地高速缓存副本,若远程处理器拥有对应高速缓存有效副本,则发起处理期间写无效操作。对应的本地高速缓存副本为修改状态。
本地处理器发起写操作,对应的本地高速缓存副本处于共享状态。本地处理器写缺失,首先查看对应的本地高速缓存副本的回写位,若为1,则将该高速缓存副本数据回写到主存储器。远程处理器拥有对应高速缓存副本的有效副本,则本地处理器首先发起处理器间高速缓存有效副本直接传输操作,同时发起处理期间写无效操作,然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。
本地处理器发起写操作,对应的本地高速缓存副本处于共享状态。本地处理器写缺失,首先查看对应的本地高速缓存副本的回写位,若为1,则将该高速缓存副本数据回写到主存储器。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据,然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。
本地处理器收到处理器间高速缓存有效副本直接传输操作,对应的高速缓存副本处于共享状态。则本地处理器提供对应高速缓存副本的数据,对应的本地高速缓存副本的状态位不变。
本地处理器收到处理器间写无效操作,对应的高速缓存副本处于共享状态。则本地处理器将对应的高速缓存副本置为无效状态。
本地处理器发起读操作,对应的本地高速缓存副本处于独占状态。本地处理器读命中,则直接从高速缓存副本读取数据,本地高速缓存副本状态位不变。
本地处理器发起读操作,对应的本地高速缓存副本处于独占状态。本地处理器读缺失。远程处理器拥有对应高速缓存有效副本,则本地处理器发起处理器间高速缓存有效副本直接传输操作,本地处理器的对应高速缓存副本为共享状态,且回写位为0。
本地处理器发起读操作,对应的本地高速缓存副本处于独占状态。本地处理器读缺失。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据,本地处理器的对应高速缓存副本为独占状态。
本地处理器发起写操作,对应的本地高速缓存副本处于独占状态。本地处理器写命中,则直接将数据写入对应的本地高速缓存副本。对应的本地高速缓存副本为修改状态。
本地处理器发起写操作,对应的本地高速缓存副本处于独占状态。本地处理器写缺失。远程处理器拥有对应高速缓存有效副本,则本地处理器首先发起处理器间高速缓存有效副本直接传输操作,同时发起处理器间写无效操作,然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。
本地处理器发起写操作,对应的本地高速缓存副本处于独占状态。本地处理器写缺失。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据,再修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。
本地处理器收到处理器间高速缓存有效副本直接传输操作,对应的高速缓存副本处于独占状态。则本地处理器提供对应高速缓存副本的数据,本地的对应高速缓存副本变为共享状态,回写位为0。
本地处理器收到处理器间写无效操作,对应的高速缓存副本处于独占状态。则本地处理器将对应的高速缓存副本置为无效状态。
本地处理器发起读操作,对应的本地高速缓存副本处于修改状态。本地处理器读命中,则直接从高速缓存副本读取数据,本地高速缓存副本状态位不变。
本地处理器发起读操作,对应的本地高速缓存副本处于修改状态。本地处理器读缺失,则将本地对应的高速缓存副本数据回写到主存储器。远程处理器拥有对应高速缓存有效副本,则本地处理器发起处理器间高速缓存有效副本直接传输操作,本地处理器的对应高速缓存副本为共享状态,且回写位为0。
本地处理器发起读操作,对应的本地高速缓存副本处于修改状态。本地处理器读缺失,则将本地对应的高速缓存副本数据回写到主存储器。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据,本地处理器的对应高速缓存副本为独占状态。
本地处理器发起写操作,对应的本地高速缓存副本处于修改状态。本地处理器写命中,则直接将数据写入对应的本地高速缓存副本。对应的本地高速缓存副本为修改状态。
本地处理器发起写操作,对应的本地高速缓存副本处于修改状态。本地处理器写缺失,则将对应的本地高速缓存副本数据回写到主存储器。远程处理器拥有对应高速缓存有效副本,则本地处理器发起处理器间高速缓存有效副本直接传输操作,同时发起处理期间写无效操作,然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。
本地处理器发起写操作,对应的本地高速缓存副本处于修改状态。本地处理器写缺失,则将对应的本地高速缓存副本回写到主存储器。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据,然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。
本地处理器收到处理期间高速缓存有效副本直接传输操作,对应的高速缓存副本处于修改状态。则本地处理器提供对应高速缓存副本的数据,本地的对应高速缓存副本变为共享状态,回写位为1。
本地处理器收到处理期间写无效操作,对应的高速缓存副本处于修改状态。则本地处理器将对应的高速缓存副本置为无效状态。

Claims (2)

1.一种避免读缺失时数据回写的多处理器核间传输方法,发起读/写操作的处理器称为本地处理器,其余处理器称为远程处理器。本地处理器中,与被访问地址具有相同索引的高速缓存副本称为对应的本地高速缓存副本;远程处理器中,与被访问地址具有相同索引和标志的高速缓存副本称为对应的远程高速缓存副本,其特征在于:
每个高速缓存副本具有四种状态:无效状态、共享状态、独占状态、修改状态,其状态定义如下;
a.无效状态:该高速缓存副本内容无效;
b.共享状态:可能有多个处理器拥有该高速缓存有效副本,其数据不一定与主存储器中的数据一致;
c.独占状态:只有一个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据一致;
d.修改状态:只有一个处理器拥有该高速缓存有效副本,其数据与主存储器中的数据不一致;
每个高速缓存副本有三位状态位:有效位、共享位、回写位,高速缓存副本状态与状态位的对应关系如下:
其中,有效位表示高速缓存副本是否为有效副本,共享位表示有效的高速缓存副本是否处于共享状态;回写位表示有效的高速缓存副本被移出高速缓存时是否需要回写主存储器,当且仅当高速缓存有效副本的回写位有效且该高速缓存有效副本被移出高速缓存时,会将该高速缓存有效副本中的数据回写主存储器;当且仅当处理器发起对本地高速缓存副本写操作时,其回写位才会被置为有效,并将本地处理器对应的高速缓存有效副本置为修改状态;
所述传输方法支持高速缓存有效脏副本的数据在处理器间直接传输,所述高速缓存有效脏副本是指与主存储器数据不同的高速缓存有效副本;当本地处理器发生读缺失时,远程处理器拥有对应的高速缓存有效副本,且该副本的数据与主存储器中的数据不一致,则远程处理器直接将对应高速缓存副本的数据传输至本地处理器对应的高速缓存副本中,此时本地处理器和远程处理器对应的高速缓存副本中的数据一致,但与主存储器中的数据不一致,即本地处理器和远程处理器对应的高速缓存副本都为脏副本;完成数据传输后,本地处理器的对应高速缓存副本变为共享状态,回写位无效;远程处理器的对应高速缓存副本变为共享状态,回写位保持不变;处理器间高速缓存有效副本直接传输时,只传输高速缓存有效副本的数据,并不传输回写位,即处理器间高速缓存有效副本直接传输操作的接收方,其对应高速缓存有效副本的回写位无效。
2.如权利要求1所述的避免读缺失时数据回写的多处理器核间传输方法,其特征在于:所述传输方法支持一个主存储器块拥有多个有效脏副本,且有效脏副本至多被回写主存储器一次;对于任意一个主存储器块有一个或多个有效脏副本,若主存储器块拥有有效脏副本,则有且只有一个有效脏副本的回写位有效;
当本地处理器中回写位无效的高速缓存有效脏副本被移出高速缓存时,不需要回写主存储器,且必然有一个远程处理器对应的高速缓存有效脏副本的回写位有效;当本地处理器中回写位有效的高速缓存有效脏副本被移出高速缓存时,需要将高速缓存有效脏副本的数据回写主存储器,回写主存储器后,所有的远程处理器对应的高速缓存有效副本中的数据与主存储器中的数据一致,远程处理器对应的高速缓存有效副本不再为“脏”,之后当远程处理器对应的高速缓存有效副本被移出高速缓存时,不需要再回写主存储器。
CN201210346882.8A 2012-09-18 2012-09-18 一种避免读缺失时数据回写的多处理器核间传输方法 Active CN102902631B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210346882.8A CN102902631B (zh) 2012-09-18 2012-09-18 一种避免读缺失时数据回写的多处理器核间传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210346882.8A CN102902631B (zh) 2012-09-18 2012-09-18 一种避免读缺失时数据回写的多处理器核间传输方法

Publications (2)

Publication Number Publication Date
CN102902631A true CN102902631A (zh) 2013-01-30
CN102902631B CN102902631B (zh) 2015-04-15

Family

ID=47574876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210346882.8A Active CN102902631B (zh) 2012-09-18 2012-09-18 一种避免读缺失时数据回写的多处理器核间传输方法

Country Status (1)

Country Link
CN (1) CN102902631B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294612A (zh) * 2013-03-22 2013-09-11 浪潮电子信息产业股份有限公司 一种在多级缓存一致性域系统局部域构造Share-F状态的方法
CN105808154A (zh) * 2014-12-31 2016-07-27 北京神州云科数据技术有限公司 基于位图的双控制器的高速缓冲存储器回写方法及装置
CN111831587A (zh) * 2020-04-17 2020-10-27 北京奕斯伟计算技术有限公司 数据写入方法、装置和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050273563A1 (en) * 2004-06-03 2005-12-08 International Business Machines Corporation System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
CN101127009A (zh) * 2002-12-19 2008-02-20 英特尔公司 供多处理器系统中的高速缓存同步中使用的转发状态
CN101593158A (zh) * 2008-05-28 2009-12-02 富士通株式会社 控制高速缓冲存储器的方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127009A (zh) * 2002-12-19 2008-02-20 英特尔公司 供多处理器系统中的高速缓存同步中使用的转发状态
US20050273563A1 (en) * 2004-06-03 2005-12-08 International Business Machines Corporation System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
CN101593158A (zh) * 2008-05-28 2009-12-02 富士通株式会社 控制高速缓冲存储器的方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294612A (zh) * 2013-03-22 2013-09-11 浪潮电子信息产业股份有限公司 一种在多级缓存一致性域系统局部域构造Share-F状态的方法
CN103294612B (zh) * 2013-03-22 2014-08-13 浪潮电子信息产业股份有限公司 在多级缓存一致性域系统局部域构造Share-F状态的方法
CN105808154A (zh) * 2014-12-31 2016-07-27 北京神州云科数据技术有限公司 基于位图的双控制器的高速缓冲存储器回写方法及装置
CN105808154B (zh) * 2014-12-31 2019-05-24 深圳神州数码云科数据技术有限公司 基于位图的双控制器的高速缓冲存储器回写方法及装置
CN111831587A (zh) * 2020-04-17 2020-10-27 北京奕斯伟计算技术有限公司 数据写入方法、装置和电子设备
WO2021208489A1 (zh) * 2020-04-17 2021-10-21 北京磐易科技有限公司 数据写入方法、装置和电子设备

Also Published As

Publication number Publication date
CN102902631B (zh) 2015-04-15

Similar Documents

Publication Publication Date Title
CN102804152B (zh) 对存储器层次结构中的闪存的高速缓存一致性支持
US8669992B2 (en) Shared virtual memory between a host and discrete graphics device in a computing system
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
US9170946B2 (en) Directory cache supporting non-atomic input/output operations
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US7991963B2 (en) In-memory, in-page directory cache coherency scheme
CN102929832A (zh) 基于非写分配的高速缓存一致性的多核处理器数据传输系统
US11106583B2 (en) Shadow caches for level 2 cache controller
CN116134475A (zh) 计算机存储器扩展设备及其操作方法
CN102902631B (zh) 一种避免读缺失时数据回写的多处理器核间传输方法
US11556477B2 (en) System and method for configurable cache IP with flushable address range
CN114238171B (zh) 电子设备、数据处理方法和装置、计算机系统
CN110737407A (zh) 一种支持混合写策略的数据缓冲存储器实现方法
CN116795767A (zh) 一种基于CHI协议的多核Cache共享一致性协议构建方法
JP6272011B2 (ja) キャッシュ装置、キャッシュ装置を備えるコンピュータ、および、キャッシュ制御方法
US20240211406A1 (en) Systems, methods, and apparatus for accessing data from memory or storage at a storage node
CN113094297A (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