• 浪潮孙丕恕从信息时代到智能时代 人工智能价值将爆发式释放 2019-12-21
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
    • / 19
    • 下载费用:30 金币  

    重庆时时彩三星报喜: 读缺失时的处理方法、设备和系统.pdf

    关 键 词:
    缺失 处理 方法 设备 系统
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201210571969.5

    申请日:

    2012.12.25

    公开号:

    CN103902470A

    公开日:

    2014.07.02

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 12/08申请日:20121225|||公开
    IPC分类号: G06F12/08; G06F13/16 主分类号: G06F12/08
    申请人: 华为技术有限公司; 中国科学院计算技术研究所
    发明人: 郭旭斌; 张科; 侯锐; 冯煜晶
    地址: 518129 广东省深圳市龙岗区坂田华为总部办公楼
    优先权:
    专利代理机构: 北京同立钧成知识产权代理有限公司 11205 代理人: 刘芳
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201210571969.5

    授权公告号:

    ||||||

    法律状态公告日:

    2017.10.24|||2014.07.30|||2014.07.02

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明提供一种读缺失时的处理方法、设备和系统。该方法包括第一处理器产生地址信息,所述地址信息中包含Cache?Tag;所述第一处理器在确定出存在第一Cache?Line时,获取所述第一Cache?Line中记录的第二处理器的信息,所述第一Cache?Line的Tag与所述Cache?Tag数值相同,且状态位指示为无效状态;所述第一处理器根据所述第二处理器的信息,向所述第二处理器单播发送总线读事务,使得所述第二处理器在存储有效的所述第一CacheLine的数据副本时,提供所述第一Cache?Line的数据。本发明实施例可以降低读缺失时的功耗开销。

    权利要求书

    权利要求书
    1.  一种读缺失时的处理方法,其特征在于,包括:
    第一处理器产生地址信息,所述地址信息中包含高速缓冲存储器标签Cache Tag;
    所述第一处理器在确定出存在第一高速缓冲存储器线Cache Line时,获取所述第一Cache Line中记录的第二处理器的信息,所述第一Cache Line的标签Tag与所述Cache Tag数值相同,且状态位指示为无效状态;
    所述第一处理器根据所述第二处理器的信息,向所述第二处理器单播发送总线读事务,使得所述第二处理器在存储有效的所述第一Cache Line的数据副本时,提供所述第一Cache Line的数据。

    2.  根据权利要求1所述的方法,其特征在于,还包括:
    所述第一处理器在所述第一Cache Line的状态位为无效状态后,在所述第一Cache Line中记录第二处理器的信息,所述第二处理器为最近一次存储所述第一Cache Line的数据副本的处理器。

    3.  根据权利要求1或2所述的方法,其特征在于,所述第二处理器的信息记录在所述第一Cache Line的数据区。

    4.  根据权利要求1或2所述的方法,其特征在于,还包括:
    所述第一处理器接收所述第二处理器发送的总线读事务响应,其中,当所述第二处理器存储有效的所述第一Cache Line的数据副本时所述总线读事务响应中包含所述第一Cache Line的数据,或者,当所述第一处理器没有存储有效的所述第一Cache Line的数据副本时,所述总线读事务响应用于指示所第一处理器在总线上广播发送总线读事务;或者,
    所述第一处理器在设定时间内没有收到所述第二处理器发送的总线读事务响应,则在总线上广播发送总线读事务,所述读事务响应在所述第二处理器没有存储有效的所述第一Cache Line的数据副本时不发送。

    5.  一种读缺失时的处理方法,其特征在于,包括:
    第二处理器接收第一处理器单播发送的总线读事务,所述总线读事务是所述第一处理器根据第一高速缓冲存储器线Cache Line中记录的第二处理器的信息发送的,所述第一Cache Line的标签Tag与所述第一处理器产生的地址信息中的高速缓冲存储器标签Cache Tag数值相同,且状态位指示为无效 状态;
    所述第二处理器在存储有效的所述第一Cache Line的数据副本时,向所述第一处理器提供所述第一Cache Line的数据。

    6.  根据权利要求5所述的方法,其特征在于,还包括:
    所述第二处理器在没有存储有效的所述第一Cache Line的数据副本时,向所述第一处理器发送用于指示所述第一处理器在总线上广播总线读事务的总线读事务响应;或者,
    所述第二处理器在没有存储有效的所述第一Cache Line的数据副本时,不发送总线读事务响应,使得所述第一处理器在设定时间内没有收到所述第二处理器发送的总线读事务响应,在总线上广播发送总线读事务。

    7.  一种读缺失时的处理设备,其特征在于,包括:
    产生???,用于产生地址信息,所述地址信息中包含高速缓冲存储器标签Cache Tag;
    获取???,用于在确定出存在第一高速缓冲存储器线Cache Line时,获取所述第一Cache Line中记录的第二处理器的信息,所述第一Cache Line的标签Tag与所述Cache Tag数值相同,且状态位指示为无效状态;
    单播???,用于根据所述第二处理器的信息,向所述第二处理器单播发送总线读事务,使得所述第二处理器在存储有效的所述第一Cache Line的数据副本时,提供所述第一Cache Line的数据。

    8.  根据权利要求7所述的设备,其特征在于,还包括:
    记录???,用于在所述第一Cache Line的状态位为无效状态后,在所述第一Cache Line中记录第二处理器的信息,所述第二处理器为最近一次存储所述第一Cache Line的数据副本的处理器。

    9.  根据权利要求7或8所述的设备,其特征在于,所述第二处理器的信息记录在所述第一Cache Line的数据区。

    10.  根据权利要求7或8所述的设备,其特征在于,还包括:
    接收???,用于接收所述第二处理器发送的总线读事务响应,其中,当所述第二处理器存储有效的所述第一Cache Line的数据副本时所述总线读事务响应中包含所述第一Cache Line的数据,或者,当所述第一处理器没有存储有效的所述第一Cache Line的数据副本时,所述总线读事务响应用于指示 所第一处理器在总线上广播发送总线读事务;或者,
    广播???,用于在设定时间内没有收到所述第二处理器发送的总线读事务响应,则在总线上广播发送总线读事务,所述读事务响应在所述第二处理器没有存储有效的所述第一Cache Line的数据副本时不发送。

    11.  一种读缺失时的处理设备,其特征在于,包括:
    接收???,用于接收第一处理器单播发送的总线读事务,所述总线读事务是所述第一处理器根据第一高速缓冲存储器线Cache Line中记录的第二处理器的信息发送的,所述第一Cache Line的标签Tag与所述第一处理器产生的地址信息中的高速缓冲存储器标签Cache Tag数值相同,且状态位指示为无效状态;
    发送???,用于在存储有效的所述第一Cache Line的数据副本时,向所述第一处理器提供所述第一Cache Line的数据。

    12.  根据权利要求11所述的设备,其特征在于,所述发送??榛褂糜冢?BR>在没有存储有效的所述第一Cache Line的数据副本时,向所述第一处理器发送用于指示所述第一处理器在总线上广播总线读事务的总线读事务响应;或者,
    在没有存储有效的所述第一Cache Line的数据副本时,不发送总线读事务响应,使得所述第一处理器在设定时间内没有收到所述第二处理器发送的总线读事务响应,在总线上广播发送总线读事务。

    13.  一种读缺失时的处理系统,其特征在于,包括:
    如权利要求7-10任一项所述的设备;以及,
    如权利要求11-12任一项所述的设备。

    说明书

    说明书读缺失时的处理方法、设备和系统
    技术领域
    本发明涉及存储技术,尤其涉及一种读缺失时的处理方法、设备和系统。
    背景技术
    高速缓冲存储器(Cache)是在计算机存储系统的层次结构中,介于处理器和存储器之间的高速小容量存储器。Cache一般由很多高速缓冲存储器线(Cache Line)构成,每条Cache Line是Cache中的一个独立的条目。
    在读操作时,Cache会接收地址信息,并将地址信息中的高速缓冲寄存器标签(Cache Tag)与Cache Line中的标签(Tag)进行比较,当不存在与Cache Tag对应的Cache Line,或者存在但该Cache Line为无效时,就发生了读缺失。
    在发生读缺失后,该Cache会通过总线向总线上所有的Cache广播总线读事务,该总线读事务中包含缺失的地址信息,接收到总线读事务的Cache也会进行Tag比较,并在存在该地址信息对应的有效数据时,对该总线读事务进行响应,向缺失的Cache提供该有效数据。
    从上述描述可以看出,当发生上述读缺失时,现有技术是采用广播的方式,总线上的所有接收到总线读事务的Cache都需要进行Tag比较,功耗开销较大。
    发明内容
    有鉴于此,本发明实施例提供了一种读缺失时的处理方法、设备和系统,用以解决现有技术中存在的读缺失的功耗开销较大的问题。
    第一方面,提供了一种读缺失时的处理方法,包括:
    第一处理器产生地址信息,所述地址信息中包含Cache Tag;
    所述第一处理器在确定出存在第一Cache Line时,获取所述第一Cache Line中记录的第二处理器的信息,所述第一Cache Line的Tag与所述CacheTag数值相同,且状态位指示为无效状态;
    所述第一处理器根据所述第二处理器的信息,向所述第二处理器单播发送总线读事务,使得所述第二处理器在存储有效的所述第一Cache Line的数据副本时,提供所述第一Cache Line的数据。
    结合第一方面,在第一方面的第一种可能的实现方式中,还包括:
    所述第一处理器在所述第一Cache Line的状态位为无效状态后,在所述第一Cache Line中记录第二处理器的信息,所述第二处理器为最近一次存储所述第一Cache Line的数据副本的处理器。
    结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第二处理器的信息记录在所述第一Cache Line的数据区。
    结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,还包括:
    所述第一处理器接收所述第二处理器发送的总线读事务响应,其中,当所述第二处理器存储有效的所述第一Cache Line的数据副本时所述总线读事务响应中包含所述第一Cache Line的数据,或者,当所述第一处理器没有存储有效的所述第一Cache Line的数据副本时,所述总线读事务响应用于指示所第一处理器在总线上广播发送总线读事务;或者,
    所述第一处理器在设定时间内没有收到所述第二处理器发送的总线读事务响应,则在总线上广播发送总线读事务,所述读事务响应在所述第二处理器没有存储有效的所述第一Cache Line的数据副本时不发送。
    第二方面,提供了一种读缺失时的处理方法,包括:
    第二处理器接收第一处理器单播发送的总线读事务,所述总线读事务是所述第一处理器根据第一Cache Line中记录的第二处理器的信息发送的,所述第一Cache Line的Tag与所述第一处理器产生的地址信息中的Cache Tag数值相同,且状态位指示为无效状态;
    所述第二处理器在存储有效的所述第一Cache Line的数据副本时,向所述第一处理器提供所述第一Cache Line的数据。
    结合第二方面,在第二方面的第一种可能的实现方式中,还包括:
    所述第二处理器在没有存储有效的所述第一Cache Line的数据副本时,向所述第一处理器发送用于指示所述第一处理器在总线上广播总线读事务的总线读事务响应;或者,
    所述第二处理器在没有存储有效的所述第一Cache Line的数据副本时,不发送总线读事务响应,使得所述第一处理器在设定时间内没有收到所述第二处理器发送的总线读事务响应,在总线上广播发送总线读事务。
    第三方面,提供了一种读缺失时的处理设备,包括:
    产生???,用于产生地址信息,所述地址信息中包含Cache Tag;
    获取???,用于在确定出存在第一Cache Line时,获取所述第一CacheLine中记录的第二处理器的信息,所述第一Cache Line的Tag与所述CacheTag数值相同,且状态位指示为无效状态;
    发送???,用于根据所述第二处理器的信息,向所述第二处理器单播发送总线读事务,使得所述第二处理器在存储有效的所述第一Cache Line的数据副本时,提供所述第一Cache Line的数据。
    结合第三方面,在第三方面的第一种可能的实现方式中,还包括:
    记录???,用于在所述第一Cache Line的状态位为无效状态后,在所述第一Cache Line中记录第二处理器的信息,所述第二处理器为最近一次存储所述第一Cache Line的数据副本的处理器。
    结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述第二处理器的信息记录在所述第一Cache Line的数据区。
    结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,还包括:
    接收???,用于接收所述第二处理器发送的总线读事务响应,其中,当所述第二处理器存储有效的所述第一Cache Line的数据副本时所述总线读事务响应中包含所述第一Cache Line的数据,或者,当所述第一处理器没有存储有效的所述第一Cache Line的数据副本时,所述总线读事务响应用于指示所第一处理器在总线上广播发送总线读事务;或者,
    广播???,用于在设定时间内没有收到所述第二处理器发送的总线读事务响应,则在总线上广播发送总线读事务,所述读事务响应在所述第二处理 器没有存储有效的所述第一Cache Line的数据副本时不发送。
    第四方面,提供了一种读缺失时的处理设备,包括:
    接收???,用于接收第一处理器单播发送的总线读事务,所述总线读事务是所述第一处理器根据第一Cache Line中记录的第二处理器的信息发送的,所述第一Cache Line的Tag与所述第一处理器产生的地址信息中的CacheTag数值相同,且状态位指示为无效状态;
    发送???,用于在存储有效的所述第一Cache Line的数据副本时,向所述第一处理器提供所述第一Cache Line的数据。
    结合第四方面,在第四方面的第一种可能的实现方式中,所述发送??榛褂糜冢?
    在没有存储有效的所述第一Cache Line的数据副本时,向所述第一处理器发送用于指示所述第一处理器在总线上广播总线读事务的总线读事务响应;或者,
    在没有存储有效的所述第一Cache Line的数据副本时,不发送总线读事务响应,使得所述第一处理器在设定时间内没有收到所述第二处理器发送的总线读事务响应,在总线上广播发送总线读事务。
    第五方面,提供了一种读缺失时的处理系统,包括:
    第三方面任一种设备;以及,
    第四方面任一种设备。
    通过上述技术方案,在Cache Line中记录最近一次存储其副本的处理器的信息,在读缺失时根据该处理器的信息向对应的处理器单播发送总线广播事务,可以避免广播发送方式引起的问题,降低功耗开销。
    附图说明
    为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
    图1为本发明实施例中的Cache的基本结构示意图;
    图2为本发明读缺失时的处理方法一实施例的流程示意图;
    图3为本发明读缺失时的处理方法另一实施例的流程示意图;
    图4为本发明读缺失时的处理方法另一实施例的流程示意图;
    图5为本发明读缺失时的处理方法另一实施例的流程示意图;
    图6为本发明实施例中本地处理器存储器读写操作引起的Cache Line的MSI状态变化图;
    图7为本发明实施例中总线上的处理器存储器读写操作引起的CacheLine的MSI状态变化图;
    图8为本发明读缺失时的处理设备一实施例的结构示意图;
    图9为本发明读缺失时的处理设备另一实施例的结构示意图;
    图10为本发明读缺失时的处理设备另一实施例的结构示意图;
    图11为本发明读缺失时的处理设备另一实施例的结构示意图;
    图12为本发明读缺失时的处理系统一实施例的结构示意图。
    具体实施方式
    为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例?;诒痉⒚髦械氖凳├?,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明?;さ姆段?。
    如图1所示,为Cache的基本结构示意图,Cache的地址信息包括高速缓冲存储器标签(Cache Tag)、高速缓冲存储器索引(Cache index)和偏移量(offset)三个部分。其中,Cache index用于索引某条Cache Line在Cache中的位置。一条Cache Line包括状态位(Valid bit)、标签(Tag)和数据(Data)三部分。假设Cache拥有w路(way),那么一个Cache index可以同时得到w个Cache Line,这w个Cache Line组成一个组(Cache set)。这时就需要将Cache Tag与Cache Line中的Tag比较,若数值相等则Cache命中,通过多路选择器(MUX)输出该命中的Cache Line的数据。其中,由于Cache Tag与Cache Line中的Tag位数可能不同,因此在比较时Cache Tag可以经过旁路转换缓冲(Translation Lookaside Buffer,TLB)转换为与Cache Line中的Tag位数一致以进行比较两者数值是否相同。
    Cache能够大量减少单个处理器对存储器带宽的要求,如果单个处理器对存储器的带宽要求减少了,多个处理器就能共享同一个存储器。共享存储器系统支持共享和私有数据的缓存,私有数据被单个处理器使用,而共享数据被多个处理器使用。因为两个不同的处理器所存储的存储器视图是通过各自的Cache得到的,如果没有其他的防范措施,当其中一个处理器在其Cache中更改了共享数据的值,而另外一个处理器仍保留原共享数据时,则导致两个处理器分别得到两个不同的值,这就是Cache一致性问题。
    在多处理器系统中实现写无效协议的关键是使用总线或其他广播媒介来完成无效操作。要实现无效操作,处理器只要取得总线控制权然后在总线上广播无效数据的地址即可(总线写无效事务)。所有的处理器都要不断地监听总线来监测地址。处理器要检查各自的Cache中是否有总线上广播的地址。如果有,则Cache中相应的数据要置为无效。
    当一个处理器发生读缺失时,它会在总线上广播缺失数据的地址(总线读事务)。所有的处理器都要不断地监听总线来监测地址。处理器要检查各自的Cache中是否有总线上广播的地址。如果有,则对总线读事务做出响应,提供这个Cache Line。
    当一个处理器发生写缺失时,它会在总线上广播缺失数据的地址(总线互斥读事务)。所有的处理器都要不断地监听总线来监测地址。处理器要检查各自的Cache中是否有总线上广播的地址。如果有,则对总线互斥读事务做出响应,提供这个Cache Line,并将本地副本置为无效。
    不仅是上述的无效性协议,现有的一致性协议在发生Cache读缺失时也是需要广播总线读事务。为了解决广播引起的功耗开销较大的问题,本发明给出如下实施例。
    图2为本发明读缺失时的处理方法一实施例的流程示意图,包括:
    21:第一处理器产生地址信息,所述地址信息中包含高速缓冲存储器标签(Cache Tag);
    22:所述第一处理器在确定出存在第一高速缓冲存储器线(Cache Line)时,获取所述第一Cache Line中的第二处理器的信息,所述第一Cache Line的标签(Tag)与所述Cache Tag的数值相同,且状态位指示为无效状态;
    23:所述第一处理器根据所述第二处理器的信息,向所述第二处理器单 播发送总线读事务,使得所述第二处理器在存储有效的所述第一Cache Line的数据副本时,向所述第一处理器提供所述第一Cache Line的数据。
    上述的第一处理器可以是指任意一个要发起总线读事务的处理器。
    可选的,如图3所示,在读取第一Cache Line中记录的处理器的信息之前,以在21之前为例,该方法还可以包括:
    31:所述第一处理器在第一Cache Line的状态位为无效状态后,在所述第一Cache Line中记录第二处理器的信息,所述第二处理器为最近一次存储所述第一Cache Line的数据副本的处理器。
    可选的,第二处理器的信息可以是记录在第一Cache Line的数据区(data)。
    相应的,参见图4,第二处理器执行的流程可以如下:
    41:第二处理器接收第一处理器单播发送的总线读事务,所述总线读事务是所述第一处理器根据第一Cache Line中记录的第二处理器的信息发送的,所述第一Cache Line的Tag与所述第一处理器产生的地址信息中的CacheTag的数值相同,且状态位指示为无效状态;
    42:所述第二处理器在存储有效的所述第一Cache Line的数据副本时,向所述第一处理器提供所述第一Cache Line的数据。
    本实施例通过在Cache Line中记录最近一次存储其副本的处理器的信息,在读缺失时根据该处理器的信息向对应的处理器单播发送总线广播事务,可以避免广播发送方式引起的问题,降低功耗开销。
    图5为本发明读缺失时的处理方法另一实施例的流程示意图,包括:
    51:第一处理器产生读地址。
    该读地址的结构可以参见图1,包括Cache Tag、Cache index和offset。
    52:第一处理器根据该读地址的索引(Cache index)找到相应的Cache Set。
    例如,参见图1,一个Cache index可以找到w条Cache Line,该w条Cache Line组成一个Cache Set。
    53:第一处理器判断是否存在匹配的Tag,若是,执行54,否则,执行59。
    可以将读地址中的Cache Tag与Cache Set中的每条Cache Line的Tag进行比较,如果存在数值相同的Cache Set和Tag,就表明存储匹配的Tag,否 则不存在。
    54:第一处理器判断Tag匹配的Cache line状态位是否有效,若是,执行55,否则执行56。
    其中,当一个Cache Line的Tag与Cache Tag相同时,该Cache Line就是Tag匹配的Cache Line。
    如图1所示,Cache Line包括状态位(Valid bit),该状态位用于表明是否为有效状态,例如该Valid bit=1,则表明有效,当Valid bit=0则表明无效。
    55:读命中,之后第一处理器可以将该数据读出。
    56:从该Tag匹配的Cache line的数据区读取处理器的编号,该处理器可以称为第二处理器,是最近一次存储该Cache Line的数据副本的处理器,并向该第二处理器单播发送总线读事务。
    其中,对于Cache Line,当其状态位表明其为无效后,例如Valid bit=0后,该Cache Line的数据区中除了记录写入的数据之外,还需要记录修改该Cache Line数据的处理器的信息,并且在处理器每修改一次就更新一次。当一个处理器在修改Cache Line的数据时,可以首先将该Cache Line的数据存储在该处理器中,也就是该处理器中会存储该Cache Line的数据副本。
    由于每次修改Cache Line中都会记录相应处理器的信息,因此,该CacheLine的数据区可以记录最近一次修改其数据的处理器的信息,也就是最近一次存储其数据副本的处理器的信息,例如处理器的编号。
    57:第二处理器接收到总线读事务后,判断是否包含有效的副本,该副本是对应Cache Line的数据副本,若是,执行58,否则执行59。
    其中,接收到总线读事务的处理器也可以首先比较Cache Tag,找到匹配的Cache Line后,如果该Cache Line的状态位为有效,则表明包含有效的对应Cache Line的副本,否则没有有效的副本。
    58:第二处理器向第一处理器提供Cache Line数据。
    第二处理器可以向第一处理器发送总线读事务响应,该响应中携带有效的对应Cache Line的数据副本,也就是提供了Cache Line数据。
    59:第一处理器广播发送总线读事务。也就是执行现有的Cache读缺失流程。
    其中,该广播的总线读事务可以是第一处理器判断出不存在匹配的Tag时,直接广播的;或者,
    也可以是,当第二处理器中不存在有效的Cache Line的数据副本时,第二处理器向第一处理器发送总线读事务响应,该响应表明第二处理器中不存在有效的Cache Line的数据副本或其它指示信息,以触发第一处理器广播总线读事务?;蛘?,
    也可以是,当第二处理器中不存在有效的Cache Line的数据副本时,第二处理器不进行响应,当第一处理器在设定的时间内没有收到响应时,就广播发送总线读事务。
    经过上述处理,下面以修改共享无效(Modified Shared Invalid,MSI)协议为例说明Cache的状态变化情况。
    写无效协议是指在处理器写数据之前保证该处理器能独占地访问数据项,它在执行写操作时要使其它副本无效。MSI协议是一种写无效协议,它利用三个状态来区别Cache Line的状态,分别为:
    M:已修改状态。该状态表明:该Cache Line已被处理器修改过,其中的数据是系统中唯一正确的数据,主存中的相应数据是过时的,其它Cache中该Cache Line的副本也都是无效的。
    S:共享状态。该状态表明:其它Cache中也可能有该Cache Line的有效副本。
    I:无效状态。该状态表明:该Cache Line中的数据无效。
    其中,当Cache Line处于M或S状态时,相应的状态位(valid bit)的数值是1,表明处于有效状态;当Cache Line处于I状态时,相应的状态位(validbit)的数值是0,表明处于无效状态。
    Cache Line的MSI状态除了受到本地处理器存储器读写操作的影响之外,还受到共享总线上其它处理器存储器读写操作的影响。
    参见图6,给出了本地处理器存储器读写操作对Cache Line的MSI状态的影响。其中,读命中时,Cache Line的状态只可能是M或S状态,此时不必发送总线事务,由Cache提供数据,Cache Line的状态不变。
    读缺失时,可能是因为要访问的数据不在Cache中,也就是Tag不匹配时,或者,读缺失也可能是因为要访问的数据在Cache中但处于无效状态, 此时需要发送总线读事务,取得数据并将Cache Line的状态置为S状态。
    写命中时,若命中的是处于M状态的Cache Line,则直接更新该CacheLine,Cache Line的状态不变;若写命中处于S状态的Cache Line,则需发送总线写无效事务广播,使其他Cache中该数据块的副本无效,然后更新该CacheLine,Cache Line的状态变为M状态。
    写缺失时,可能是因为要访问的数据不在Cache中,也可能是因为要访问的数据在Cache中,但处于无效状态,此时需要发送总线互斥读事务广播,取得数据并更新,将Cache Line置为M状态。
    与现有技术不同的是,现有技术不论是上述两种哪种读缺失,都会广播总线读事务,而本发明实施例中,当要访问的数据在Cache中但处于无效状态引起的读缺失时,将单播总线读事务。单播的目的处理器就是上述的CacheLine的数据区记录的处理器。
    参见图7,给出了总线上的处理器存储器读写操作对Cache Line的MSI状态的影响。
    当本地Cache中不包含有总线读事务或总线写事务所指定的Cache Line时或虽然包含但该Cache Line处于I状态时,本地Cache不作出响应或者作出响应以触发发送总线读事务的处理器广播总线读事务。
    当本地Cache中包含有总线读事务所指定的Cache Line且该Cache Line处于S状态时,本地Cache将响应总线读事务并提供数据。
    当本地Cache中包含有总线读事务所指定的Cache Line且该Cache Line处于M状态时,本地Cache将响应总线读事务提供数据,然后将本地Cache Line置为S状态。
    当本地Cache中包含有总线写无效事务所指定的Cache Line时,将该CacheLine状态置为无效。
    当本地Cache中包含有总线互斥读事务所指定的Cache Line且该CacheLine处于M状态时,本地Cache将响应总线互斥读事务提供数据,然后将本地Cache Line置为I状态。
    与现有技术不同的是,上述的总线读事务是被单播发送的,而不是现有技术中的广播发送方式。
    上面以MSI协议为例,现有技术中的修改排外共享无效(Modified Exclusive Shared Invalid,MESI)协议、修改占有排外共享无效(ModifiedOwned Exclusive Shared Invalid MOESI)协议等一致性协议也同样适用于上述在Tag匹配但数据无效引起的读缺失时,采用单播发送的方式。
    图8为本发明读缺失时的处理设备一实施例的结构示意图,该设备可以为上述的第一处理器,该设备80包括产生???1、获取???2和单播???3;产生???1用于产生地址信息,所述地址信息中包含Cache Tag;获取???2用于在确定出存在第一Cache Line时,获取所述第一Cache Line中记录的第二处理器的信息,所述第一Cache Line的Tag与所述Cache Tag数值相同,且状态位指示为无效状态;单播???3用于根据所述第二处理器的信息,向所述第二处理器单播发送总线读事务,使得所述第二处理器在存储有效的所述第一Cache Line的数据副本时,提供所述第一Cache Line的数据。
    可选的,该设备还可以包括:
    记录???,用于在所述第一Cache Line的状态位为无效状态后,在所述第一Cache Line中记录第二处理器的信息,所述第二处理器为最近一次存储所述第一Cache Line的数据副本的处理器。
    可选的,所述第二处理器的信息记录在所述第一Cache Line的数据区。
    可选的,该设备还可以包括:
    接收???,用于接收所述第二处理器发送的总线读事务响应,其中,当所述第二处理器存储有效的所述第一Cache Line的数据副本时所述总线读事务响应中包含所述第一Cache Line的数据,或者,当所述第一处理器没有存储有效的所述第一Cache Line的数据副本时,所述总线读事务响应用于指示所第一处理器在总线上广播发送总线读事务;或者,
    广播???,用于在设定时间内没有收到所述第二处理器发送的总线读事务响应,则在总线上广播发送总线读事务,所述读事务响应在所述第二处理器没有存储有效的所述第一Cache Line的数据副本时不发送。
    参见图9,为本发明实施例提供的另一种设备的结构示意图,该设备可以为上述的第一处理器,该第一处理器90包括收发器91、CPU 92、高速缓冲存储器(Cache)93、以及与上述各??榱拥淖芟?4,总线94可以包括数据总线、地址总线、状态总线等。CPU用于根据通过收发器及总线接收的用户的输入产生地址信息,所述地址信息中包含Cache Tag;并在确定出存在 第一Cache Line时,获取所述第一Cache Line中记录的第二处理器的信息,所述第一Cache Line的Tag与所述Cache Tag数值相同,且状态位指示为无效状态。CPU还可以通过收发器以及总线根据所述第二处理器的信息,向所述第二处理器单播发送总线读事务,使得所述第二处理器在存储有效的所述第一Cache Line的数据副本时,提供所述第一Cache Line的数据。其中,CacheLine是位于Cache中的??梢岳斫獾氖?,处理器中还可以包括其他???,如算术逻辑单元、时钟发生器、比较器、定时器、复位电路、调制器等。
    需要说明的是,图8和图9所示的设备可以用于实现以上方法实施例所提供的关于第一处理器的任一种方法,且相关术语描述以及相关实现方式同以上方法实施例,在此不再赘述。
    本实施例通过在Cache Line中记录最近一次存储其副本的处理器的信息,在读缺失时根据该处理器的信息向对应的处理器单播发送总线广播事务,可以避免广播发送方式引起的问题,降低功耗开销。
    图10为本发明读缺失时的处理设备另一实施例的结构示意图,该设备可以为上述的第二处理器,该设备100包括接收???01和发送???02;接收???01用于接收第一处理器单播发送的总线读事务,所述总线读事务是所述第一处理器根据第一Cache Line中记录的第二处理器的信息发送的,所述第一Cache Line的Tag与所述第一处理器产生的地址信息中的Cache Tag数值相同,且状态位指示为无效状态;发送???02用于在存储有效的所述第一Cache Line的数据副本时,向所述第一处理器提供所述第一Cache Line的数据。
    可选的,所述发送??榛褂糜冢?
    在没有存储有效的所述第一Cache Line的数据副本时,向所述第一处理器发送用于指示所述第一处理器在总线上广播总线读事务的总线读事务响应;或者,
    在没有存储有效的所述第一Cache Line的数据副本时,不发送总线读事务响应,使得所述第一处理器在设定时间内没有收到所述第二处理器发送的总线读事务响应,在总线上广播发送总线读事务。
    参见图11,为本发明实施例提供的另一种设备的结构示意图,该设备可以为上述的第二处理器,该第二处理器110包括收发器111、CPU 112、高速 缓冲存储器(Cache)113、以及与上述各??榱拥淖芟?14,总线114可以包括数据总线、地址总线、状态总线等。收发器用于接收第一处理器单播发送的总线读事务,所述总线读事务是所述第一处理器根据第一Cache Line中记录的第二处理器的信息发送的,所述第一Cache Line的Tag与所述第一处理器产生的地址信息中的Cache Tag数值相同,且状态位指示为无效状态;以及,用于在通过CPU判断出Cache中存储有效的所述第一Cache Line的数据副本时,向所述第一处理器提供所述第一Cache Line的数据??梢岳斫獾氖?,处理器中还可以包括其他???,如算术逻辑单元、时钟发生器、比较器、定时器、复位电路、调制器等。
    需要说明的是,图10和图11所示的设备可以用于实现以上方法实施例所提供的关于第二处理器的任一种方法,且相关术语描述以及相关实现方式同以上方法实施例,在此不再赘述。
    本实施例通过在Cache Line中记录最近一次存储其副本的处理器的信息,在读缺失时根据该处理器的信息向对应的处理器单播发送总线广播事务,可以避免广播发送方式引起的问题,降低功耗开销。
    图12为本发明读缺失时的处理系统一实施例的结构示意图,该系统120包括第一处理器121和第二处理器122;第一处理器121可以参见图8或图9。第二处理器122可以参见图10或图11。
    本实施例通过在Cache Line中记录最近一次存储其副本的处理器的信息,在读缺失时根据该处理器的信息向对应的处理器单播发送总线广播事务,可以避免广播发送方式引起的问题,降低功耗开销。
    所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能??榈幕纸芯倮得?,实际应用中,可以根据需要而将上述功能分配由不同的功能??橥瓿?,即将装置的内部结构划分成不同的功能???,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
    在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述??榛虻ピ幕?,仅仅为一种逻辑功能划分, 实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
    所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上??梢愿菔导实男枰≡衿渲械牟糠只蛘呷康ピ词迪直臼凳├桨傅哪康?。
    另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
    所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中?;谡庋睦斫?,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
    以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围?!  ∧谌堇醋宰ɡ鴚ww.www.4mum.com.cn转载请标明出处

    关于本文
    本文标题:读缺失时的处理方法、设备和系统.pdf
    链接地址://www.4mum.com.cn/p-6120600.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 浪潮孙丕恕从信息时代到智能时代 人工智能价值将爆发式释放 2019-12-21
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 快乐十分11选五摇奖机 潍坊宾馆赚钱吗 天天棋牌首页 可以赢钱的麻将软件 快乐10分20选8结果 三分彩在线计划 足球比分188 缅甸西双版纳好赚钱吗 福建体育彩票网 2018年永久平特肖公式 广西十一选五 3d试机号和开机号金码对应码 河南麻将的一种简单玩法 查询江苏快3一定牛 陕西十一选五前三遗漏 四川时时彩12选5开奖结果走势图