首页> 中国专利> 一种避免读缺失时数据回写的多处理器核间传输方法

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

摘要

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

著录项

  • 公开/公告号CN102902631A

    专利类型发明专利

  • 公开/公告日2013-01-30

    原文格式PDF

  • 申请/专利权人 杭州中天微系统有限公司;

    申请/专利号CN201210346882.8

  • 发明设计人 严晓浪;余慜;黄凯;葛海通;

    申请日2012-09-18

  • 分类号G06F12/08;G06F13/16;

  • 代理机构杭州天正专利事务所有限公司;

  • 代理人王兵

  • 地址 310012 浙江省杭州市西湖区华星路99号创业大厦A409

  • 入库时间 2024-02-19 17:13:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-15

    授权

    授权

  • 2013-03-13

    实质审查的生效 IPC(主分类):G06F12/08 申请日:20120918

    实质审查的生效

  • 2013-01-30

    公开

    公开

说明书

技术领域

本发明涉及多处理器核间传输技术领域,尤其是一种多处理器核间传 输方法。

背景技术

随着人类对计算机速度和计算规模需求的不断提高,传统的单核处理 器已经不能满足市场的需求,多核处理器应运而生。同时伴随着集成 电路制造工艺的提高,在单芯片上集成多核成为现实,原本只有在大 型服务器上才会使用的多处理器系统,逐渐迈入普通消费市场,越来 越多的嵌入式系统都采用多核芯片。多核架构中一般都采用多级缓存 的存储器架构以提高处理器的效率。在这样的架构下,高速缓存缓存 数据一致性问题是一直困扰着设计者的一个重要问题。

多核处理器中有共享和私有缓存。私有数据只被单个处理器使用,而 共享数据则被多个处理器同时使用。若某个处理器修改了高速缓存中 的一个共享数据,同时该数据在别的高速缓存中有副本。该数据最新 修改后,如果其它的副本不能得到及时修改,这时该数据若被其它处 理器访问就会出现错误,这就出现了多处理器高速缓存数据一致性问 题。

为了处理上述问题,诸多协议陆续被提出,其中之一的MESI协议被广 泛采用。在MESI协议中,高速缓存副本具有四个状态:无效状态、共 享状态、独占状态、修改状态。其四个状态的定义如下;

1.无效状态:该高速缓存副本内容无效;

2.共享状态:可能有多个处理器拥有该高速缓存有效副本,其数据与 主存储器中的数据一致;

3.独占状态:只有一个处理器拥有该高速缓存有效副本,其数据与主 存储器中的数据一致;

4.修改状态:只有一个处理器拥有该高速缓存有效副本,其数据与主 存储器中的数据不一致。

在MESI协议中,若处理器A发生读缺失,处理器B拥有处理器A访问的高 速缓存副本,且其处于修改状态。根据MESI状态定义,此时需要先将 处理器B对应高速缓存副本的数据回写主存储器,然后处理器A从处理 器B对应的高速缓存副本中读取数据或者从主存储器中读取数据。

由于处理器访问高速缓存的速度远快于访问主存储器的速度,因此处 理器应该尽量避免访问主存储器。

发明内容

为了克服已有多处理器核间传输方法的在读缺失时数据回写主存储器 ,处理器频繁地访问主存储器、限制系统性能的不足,本发明提供一 种有效避免读缺失时数据回写主存储器,有效地减少处理器访问主存 储器的次数,提高系统性能的避免读缺失时数据回写的多处理器核间 传输方法。

本发明解决其技术问题所采用的技术方案是: 

一种避免读缺失时数据回写的多处理器核间传输方法,发起读/写操作 的处理器称为本地处理器,其余处理器称为远程处理器。本地处理器 中,与被访问地址具有相同索引的高速缓存副本称为对应的本 地高速缓存副本;远程处理器中,与被访问地址具有相同索引和标志 的高速缓存副本称为对应的远程高速缓存副本,每个高速缓存副本具 有四种状态:无效状态、共享状态、独占状态、修改状态,其状态定 义如下;

a.无效状态:该高速缓存副本内容无效;

b.共享状态:可能有多个处理器拥有该高速缓存有效副本,其数据不 一定与主存储器中的数据一致;

c.独占状态:只有一个处理器拥有该高速缓存有效副本,其数据与主 存储器中的数据一致;

d.修改状态:只有一个处理器拥有该高速缓存有效副本,其数据与主 存储器中的数据不一致;

每个高速缓存副本有三位状态位:有效位、共享位、回写位,高速缓 存副本状态与状态位的对应关系如下:

其中,有效位表示高速缓存副本是否为有效副本,共享位表示有效的 高速缓存副本是否处于共享状态;回写位表示有效的高速缓存副本被 移出高速缓存时是否需要回写主存储器,当且仅当高速缓存有效副本 的回写位有效且该高速缓存有效副本被移出高速缓存时,会将该 高速缓存有效副本中的数据回写主存储器;当且仅当处理器发起对本 地高速缓存副本写操作时,其回写位才会被置为有效,并将本地处理 器对应的高速缓存有效副本置为修改状态;

所述传输方法支持高速缓存有效脏副本的数据在处理器间直接传输, 所述高速缓存有效脏副本是指与主存储器数据不同的高速缓存有效副 本;当本地处理器发生读缺失时,远程处理器拥有对应的高速缓存有 效副本,且该副本的数据与主存储器中的数据不一致,则远程处理器 直接将对应高速缓存副本的数据传输至本地处理器对应的高速缓存副 本中,此时本地处理器和远程处理器对应的高速缓存副本中的数据一 致,但与主存储器中的数据不一致,即本地处理器和远程处理器对应 的高速缓存副本都为脏副本;完成数据传输后,本地处理器的对应高 速缓存副本变为共享状态,回写位无效;远程处理器的对应高速缓存 副本变为共享状态,回写位保持不变;处理器间高速缓存有效副本直 接传输时,只传输高速缓存有效副本的数据,并不传输回写位,即处 理器间高速缓存有效副本直接传输操作的接收方,其对应高速缓存有 效副本的回写位无效。

进一步,所述传输方法支持一个主存储器块拥有多个有效脏副本,且 有效脏副本至多被回写主存储器一次;对于任意一个主存储器块有一 个或多个有效脏副本,若主存储器块拥有有效脏副本,则有且只有一 个有效脏副本的回写位有效;

当本地处理器中回写位无效的高速缓存有效脏副本被移出高速缓存时 ,不需要回写主存储器,且必然有一个远程处理器对应的高速缓存有 效脏副本的回写位有效;当本地处理器中回写位有效的高速缓存 有效脏副本被移出高速缓存时,需要将高速缓存有效脏副本的数据回 写主存储器,回写主存储器后,所有的远程处理器对应的高速缓存有 效副本中的数据与主存储器中的数据一致,远程处理器对应的高速缓 存有效副本不再为“脏”,之后当远程处理器对应的高速缓存有效副 本被移出高速缓存时,不需要再回写主存储器。

本发明的有益效果主要表现在:有效避免读缺失时数据回写主存储器 ,有效地减少处理器访问主存储器的次数,提高系统性能。

附图说明

图1是避免读缺失时数据回写的多处理器核间传输方法的原理图,其中 ,无效是指处理器间写无效,直接传输是指处理器间高速缓存有效副 本直接传输,主存读取是指从主存储器读取数据。

具体实施方式

下面结合附图对本发明作进一步描述。

参照图1,一种避免读缺失时数据回写的多处理器核间传输方法,发生 读缺失时,支持高速缓存有效脏副本(与主存储器数据不同的高速缓 存有效副本)的数据在处理器间直接传输,而不需要先将该高速缓存 有效脏副本的数据回写主存储器;支持一个主存储器块拥有多个有效 脏副本,且多个有效脏副本至多被回写主存储器一次;采用一种类ME SI协议作为高速缓存一致性协议。

采用一种类MESI协议作为高速缓存一致性协议。该协议适用于采用写 返回策略的高速缓存,在该协议中,每个高速缓存副本具有四种状态 :无效状态、共享状态、独占状态、修改状态,其状态定义如下;

a.无效状态:该高速缓存副本内容无效;

b.共享状态:可能有多个处理器拥有该高速缓存有效副本,其数据不 一定与主存储器中的数据一致;

c.独占状态:只有一个处理器拥有该高速缓存有效副本,其数据与主 存储器中的数据一致;

d.修改状态:只有一个处理器拥有该高速缓存有效副本,其数据与主 存储器中的数据不一致。

每个高速缓存副本有三位状态位:有效位、共享位、回写位。高速缓 存副本状态与状态位的对应关系如下:

发起读/写操作的处理器称为本地处理器,其余处理器称为远程处理器 。本地处理器中,与被访问地址具有相同索引(标志不一定相同)的 高速缓存副本称为对应的本地高速缓存副本;远程处理器中,与被访 问地址具有相同索引和标志的高速缓存副本称为对应的远程高速缓存 副本。

有效位表示高速缓存副本是否为有效副本。共享位表示有效的高速缓 存副本是否处于共享状态。回写位表示有效的高速缓存副本被移出高 速缓存时是否需要回写主存储器,当且仅当高速缓存有效副本的回写 位有效且该高速缓存有效副本被移出高速缓存时,会将该高速缓存 有效副本中的数据回写主存储器;当且仅当处理器发起对本地高速缓 存副本写操作时,其回写位才会被置为有效,并将本地处理器对应的 高速缓存有效副本置为修改状态。

支持高速缓存有效脏副本的数据在处理器间直接传输操作。本地处理 器发生读缺失时,远程处理器拥有对应的高速缓存有效副本,且该副 本的数据与主存储器中的数据不一致,则远程处理器直接将对应高速 缓存副本的数据传输至本地处理器对应的高速缓存副本中,此时本地 处理器和远程处理器对应的高速缓存副本中的数据一致,但与主存储 器中的数据不一致,即本地处理器和远程处理器对应的高速缓存副本 都为脏副本。完成数据传输后,本地处理器的对应高速缓存副本变为 共享状态,回写位无效;远程处理器的对应高速缓存副本变为共享状 态,回写位保持不变。处理器间高速缓存有效副本直接传输时,只传 输高速缓存有效副本的数据,并不传输回写位,即处理器间高速缓存 有效副本直接传输操作的接收方,其对应高速缓存有效副本的回写位 无效。

支持一个主存储器块拥有多个有效脏副本,且有效脏副本至多被回写 主存储器一次。对于任意一个主存储器块,可以有多个有效脏副本, 若主存储器块拥有有效脏副本,则有且只有一个有效脏副本的回写位 有效。当本地处理器中回写位无效的高速缓存有效脏副本被移出高速 缓存时,不需要回写主存储器,且必然有一个远程处理器对应的高速 缓存有效脏副本的回写位有效;当本地处理器中回写位有效的高速缓 存有效脏副本被移出高速缓存时,需要将高速缓存有效脏副本的数据 回写主存储器,回写主存储器后,所有的远程处理器对应的高速缓存 有效副本中的数据与主存储器中的数据一致,远程处理器对应的高速 缓存有效副本不再为“脏”,之后当远程处理器对应的高速缓存有效 副本被移出高速缓存时,不需要再回写主存储器。因此有效脏副本至 多被回写主存储器一次。

本实施例支持两种处理期间操作:处理器间高速缓存有效副本直接传 输操作、处理期间写无效操作。

处理期间高速缓存有效副本直接传输操作是指:本地处理器发生读/写 缺失,且远程处理器拥有对应的高速缓存有效副本,则本地处理器直 接从远程处理器获取对应高速缓存副本数据,并将数据填充到对应的 本地高速缓存副本中。若有多个远程处理器拥有对应高速缓存有效副 本,则通过仲裁选择其中一个远程处理器发起该操作。

当本地处理器读/写缺失,且远程处理器没有对应高速缓存有效副本时 ,本地处理器从主存储器中读取数据,并将读取到的数据填充到对应 的本地高速缓存副本中。

处理期间写无效操作是指:本地处理器发起写操作,且远程处理器拥 有对应的高速缓存有效副本,则本地处理器发起写无效操作令对应的 远程处理器高速缓存副本处于无效状态。若有多个远程处理器拥有对 应高速缓存有效副本,则对每一个远程处理器发起该操作。

高速缓存副本有三位状态位表示其状态,分别为有效位,共享位,回 写位。有效位为0,表示高速缓存副本处于无效状态;有效位为1,共 享位为1,表示高速缓存副本处于共享状态;有效位为1,共享位为0, 回写位为0,表示高速缓存副本处于独占状态;有效位为1,共享位为 0,回写位为1,表示高速缓存副本处于修改状态。

基于采用写返回、写分配策略的高速缓存实现本发明。

本地处理器发起读操作,且命中高速缓存。则不改变高速缓存副本的 状态。

本地处理器发起读操作,且未命中高速缓存。首先,查看本地处理器 对应高速缓存副本的状态,若该副本处于共享状态且回写位为1或处于 修改状态,则将高速缓存副本的数据回写主存储器。然后,查看远程 处理器是否拥有对应高速缓存有效副本,若远程处理器拥有对应高速 缓存有效副本,则发起处理器间高速缓存有效副本直接传输操作,将 远程处理器对应的高速缓存副本数据存储到本地处理器对应的高速缓 存副本中;不论远程处理器对应的高速缓存副本处于何种状态,将该 高速缓存副本的共享位置为0,不改变有效位和回写位,即将远程处理 器对应的高速缓存副本变为共享状态;本地处理器对应的高速缓存副 本变为共享状态,且回写位为0。若远程处理器没有对应高速缓存有效 副本,则本地处理器发起对主存储器的读操作,将主存储器中的数据 存储到本地对应的高速缓存副本中,本地高速缓存副本置于共享状态 ,且回写位为0。

本地处理器发起写操作,且命中高速缓存。首先将待写数据写入本 地处理器对应的高速缓存副本中,本地处理器对应的高速缓存有效副 本置为修改状态。查看远程服务器是否拥有对应高速缓存有效副本, 若远程处理器拥有对应高速缓存有效副本,则发起处理器间写无效操 作,将远程处理器对应的高速缓存副本置为无效状态。

本地处理器发起写操作,且未命中高速缓存。首先,查看本地处理器 对应高速缓存副本的状态,若该副本处于共享状态且回写位为1或处于 修改状态,则将高速缓存副本的数据回写主存储器。然后,查看远程 处理器是否拥有对应高速缓存有效副本,若远程处理器拥有对应高速 缓存有效副本,则发起处理器间高速缓存有效副本直接传输操作,将 远程处理器对应的高速缓存副本数据存储到本地处理器对应的高速缓 存副本中,然后将待写数据写入本地处理器对应的高速缓存副本中, 本地处理器对应的高速缓存副本置为修改状态;同时发起处理器间写 无效操作,将远程处理器对应的高速缓存副本置为无效状态。若远程 处理器没有对应高速缓存有效副本,则本地处理器发起对主存储器的 读操作,将主存储器中的数据存储到本地对应的高速缓存副本中,然 后将待写数据写入本地处理器对应的高速缓存副本中,本地高速缓存 副本置为修改状态。

请参照图1。

本地处理器发起读操作,对应的本地高速缓存副本处于无效状态。远 程处理器拥有对应高速缓存有效副本,则本地处理器发起处理器间高 速缓存有效副本直接传输操作,本地处理器的对应高速缓存副本为共 享状态,且回写位为0。

本地处理器发起读操作,对应的本地高速缓存副本处于无效状态。 远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中 读取高速缓存副本数据,本地处理器的对应高速缓存副本为独占状态 。

本地处理器发起写操作,对应的本地高速缓存副本处于无效状态。远 程处理器拥有对应高速缓存有效副本,则本地处理器首先发起处理器 间高速缓存有效副本直接传输操作,同时发起处理期间写无效操作, 然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本为 修改状态。

本地处理器发起写操作,对应的本地高速缓存副本处于无效状态。远 程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读 取高速缓存副本数据,再修改本地高速缓存副本数据,本地处理器的 对应高速缓存副本为修改状态。

本地处理器发起读操作,对应的本地高速缓存副本处于共享状态。本 地处理器读命中,则直接从高速缓存副本读取数据,本地高速缓存副 本状态位不变。

本地处理器发起读操作,对应的本地高速缓存副本处于共享状态。本 地处理器读缺失,首先查看对应的本地高速缓存副本的回写位,若为 1,则将该高速缓存副本数据回写到主存储器。远程处理器拥有对应高 速缓存有效副本,则本地处理器发起处理器间高速缓存有效副本直接 传输操作,本地处理器的对应高速缓存副本为共享状态,且回写位为 0。

本地处理器发起读操作,对应的本地高速缓存副本处于共享状态。本 地处理器读缺失,首先查看对应的本地高速缓存副本的回写位,若为 1,则将该高速缓存副本数据回写到主存储器。远程处理器没有对 应高速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本 数据,本地处理器的对应高速缓存副本为独占状态。

本地处理器发起写操作,对应的本地高速缓存副本处于共享状态。本 地处理器写命中,则直接将数据写入本地高速缓存副本,若远程处理 器拥有对应高速缓存有效副本,则发起处理期间写无效操作。对应的 本地高速缓存副本为修改状态。

本地处理器发起写操作,对应的本地高速缓存副本处于共享状态。本 地处理器写缺失,首先查看对应的本地高速缓存副本的回写位,若为 1,则将该高速缓存副本数据回写到主存储器。远程处理器拥有对应高 速缓存副本的有效副本,则本地处理器首先发起处理器间高速缓存有 效副本直接传输操作,同时发起处理期间写无效操作,然后修改本地 高速缓存副本数据,本地处理器的对应高速缓存副本为修改状态。

本地处理器发起写操作,对应的本地高速缓存副本处于共享状态。本 地处理器写缺失,首先查看对应的本地高速缓存副本的回写位,若为 1,则将该高速缓存副本数据回写到主存储器。远程处理器没有对应高 速缓存有效副本,则本地处理器从主存储器中读取高速缓存副本数据 ,然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本 为修改状态。

本地处理器收到处理器间高速缓存有效副本直接传输操作,对应的高 速缓存副本处于共享状态。则本地处理器提供对应高速缓存副本的数 据,对应的本地高速缓存副本的状态位不变。

本地处理器收到处理器间写无效操作,对应的高速缓存副本处于共享 状态。则本地处理器将对应的高速缓存副本置为无效状态。

本地处理器发起读操作,对应的本地高速缓存副本处于独占状态。本 地处理器读命中,则直接从高速缓存副本读取数据,本地高速缓存副 本状态位不变。

本地处理器发起读操作,对应的本地高速缓存副本处于独占状态。本 地处理器读缺失。远程处理器拥有对应高速缓存有效副本,则本地处 理器发起处理器间高速缓存有效副本直接传输操作,本地处理器的对 应高速缓存副本为共享状态,且回写位为0。

本地处理器发起读操作,对应的本地高速缓存副本处于独占状态。本 地处理器读缺失。远程处理器没有对应高速缓存有效副本,则本地处 理器从主存储器中读取高速缓存副本数据,本地处理器的对应高速缓 存副本为独占状态。

本地处理器发起写操作,对应的本地高速缓存副本处于独占状态。本 地处理器写命中,则直接将数据写入对应的本地高速缓存副本。对应 的本地高速缓存副本为修改状态。

本地处理器发起写操作,对应的本地高速缓存副本处于独占状态。本 地处理器写缺失。远程处理器拥有对应高速缓存有效副本,则本地处 理器首先发起处理器间高速缓存有效副本直接传输操作,同时发起处 理器间写无效操作,然后修改本地高速缓存副本数据,本地处理器的 对应高速缓存副本为修改状态。

本地处理器发起写操作,对应的本地高速缓存副本处于独占状态。本 地处理器写缺失。远程处理器没有对应高速缓存有效副本,则本地处 理器从主存储器中读取高速缓存副本数据,再修改本地高速缓存副本 数据,本地处理器的对应高速缓存副本为修改状态。

本地处理器收到处理器间高速缓存有效副本直接传输操作,对应的高 速缓存副本处于独占状态。则本地处理器提供对应高速缓存副本的数 据,本地的对应高速缓存副本变为共享状态,回写位为0。

本地处理器收到处理器间写无效操作,对应的高速缓存副本处于独占 状态。则本地处理器将对应的高速缓存副本置为无效状态。

本地处理器发起读操作,对应的本地高速缓存副本处于修改状态。本 地处理器读命中,则直接从高速缓存副本读取数据,本地高速缓存副 本状态位不变。

本地处理器发起读操作,对应的本地高速缓存副本处于修改状态。本 地处理器读缺失,则将本地对应的高速缓存副本数据回写到主存储器 。远程处理器拥有对应高速缓存有效副本,则本地处理器发起处理器 间高速缓存有效副本直接传输操作,本地处理器的对应高速缓存副本 为共享状态,且回写位为0。

本地处理器发起读操作,对应的本地高速缓存副本处于修改状态。本 地处理器读缺失,则将本地对应的高速缓存副本数据回写到主存储器 。远程处理器没有对应高速缓存有效副本,则本地处理器从主存储器 中读取高速缓存副本数据,本地处理器的对应高速缓存副本为独占状 态。

本地处理器发起写操作,对应的本地高速缓存副本处于修改状态。本 地处理器写命中,则直接将数据写入对应的本地高速缓存副本。对应 的本地高速缓存副本为修改状态。

本地处理器发起写操作,对应的本地高速缓存副本处于修改状态。本 地处理器写缺失,则将对应的本地高速缓存副本数据回写到主存储 器。远程处理器拥有对应高速缓存有效副本,则本地处理器发起处理 器间高速缓存有效副本直接传输操作,同时发起处理期间写无效操作 ,然后修改本地高速缓存副本数据,本地处理器的对应高速缓存副本 为修改状态。

本地处理器发起写操作,对应的本地高速缓存副本处于修改状态。本 地处理器写缺失,则将对应的本地高速缓存副本回写到主存储器。远 程处理器没有对应高速缓存有效副本,则本地处理器从主存储器中读 取高速缓存副本数据,然后修改本地高速缓存副本数据,本地处理器 的对应高速缓存副本为修改状态。

本地处理器收到处理期间高速缓存有效副本直接传输操作,对应的高 速缓存副本处于修改状态。则本地处理器提供对应高速缓存副本的数 据,本地的对应高速缓存副本变为共享状态,回写位为1。

本地处理器收到处理期间写无效操作,对应的高速缓存副本处于修改 状态。则本地处理器将对应的高速缓存副本置为无效状态。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号