多核处理器cache一致性技术综述

多核处理器cache一致性技术综述

ID:13273275

大小:384.00 KB

页数:10页

时间:2018-07-21

多核处理器cache一致性技术综述_第1页
多核处理器cache一致性技术综述_第2页
多核处理器cache一致性技术综述_第3页
多核处理器cache一致性技术综述_第4页
多核处理器cache一致性技术综述_第5页
资源描述:

《多核处理器cache一致性技术综述》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、多核处理器cache一致性技术综述摘要:本文介绍了实现多核处理器cache一致性的基本实现技术,并分析了其存在的问题。根据存在的问题,介绍了几种最新的解决方案。关键词:cache一致性监听协议目录协议性能能耗1基本实现技术:实现cache一致性的关键在于跟踪所有共享数据块的状态。目前广泛采用的有以下2种协议,它们分别使用不同的技术跟踪共享数据:1.监听协议(Snooping)处理器在私有的缓存中保存共享数据的复本。同时处理器对总线进行监听,如果总线上的请求与自己相关,则进行处理,否则忽略总线请求信号。2.目录式(Directorybased)使用目录来存放各节点cache中共享数据的信息,把

2、cache一致性请求只发给存放有相应数据块的节点,从而支持cache的一致性。下面分别就监听协议和目录协议做简单的介绍:1.1监听协议监听协议通过总线监听机制实现cache和共享内存之间的数据一致性。因为其可以通过内存的总线来查询cache的状态。所以监听协议是目前多核处理器主要采用的一致性技术。监听协议有两种。一种称为写无效协议(writeinvalidateprotocol),它在处理器写数据块之前通过总线广播使其它该数据的共享复本(主要存储在其它处理器的私有缓存中)变为无效,以保证该处理器能独占访问数据块,实现一致性。另一种称为写更新(writeupdate),它在处理器写入数据块时更

3、新该数据块所有的副本。因为在基于总线的多核处理器中总线和内存带宽是最紧张的资源,而写无效协议不会给总线和内存带来太大的压力,所以目前处理器实现主要都是应用写无效协议。读请求:如果处理器在私有缓存中找到数据块,则读取数据块。如果没有找到数据块,它向总线广播读缺失请求。其它处理器监听到读缺失请求,则检查对应地址数据块状态:无效状态下,向总线发读缺失,总线向内存请求数据块;共享状态下,直接把数据发送给请求处理器;独占状态下,远端处理器节点把数据回写,状态改为共享,并将数据块发送给请求处理器。在请求处理器收到数据后将该数据块的缓存状态改为共享。写请求:如果处理器在私有缓存中检查数据地址对应的数据块,

4、检查其状态:独占状态下,直接写数据;无效状态下,向总线发出写缺失请求,并将缓存改为独占状态,写数据块;共享状态下,向总线发出写缺失请求,共享该数据块的处理器监听到写缺失后,将其缓存状态改为无效,请求处理器将其缓存状态改为独占,写数据。在独占状态下,如果由于cache组映射而导致,不同数据块映射在cache中同一位置时,在写请求下要求先把数据回写到内存,再对缓存进行数据写。处理器的活动后,cache的状态变化总线的活动后,cache的状态变化1.2目录协议在多核处理器系统中,每个节点上用目录来实现cache的一致性。每个目录负责跟踪各个核缓存的数据块。缓存的数据块有3种状态:共享(shared

5、),未缓冲(uncached)和独占(exclusive)。目录记录每个核缓存数据的共享状态。目录协议是面向消息的,所有请求必须应答。发送到目录的消息引发两种不同类型的动作:更新目录状态,发送请求的消息数据。目录协议的操作基本上和监听协议的相同;不同的是,在监听协议中,写缺失操作是通过在总线上广播实现的,而目录协议中通过目录控制器发送取数据和无效消息实现。目录协议中定义三种节点:本地节点(localnode),指产生访问请求的节点;家节点(homenode),指该节点拥有要访问地址的存储器单元和目录项(即要访问的数据的家);远程节点(remotenode),指拥有要访问数据拷贝的节点。1.2

6、.1考虑读缺失情况:l本地节点请求读一个数据块,先在其私有的缓存中查找,如果找到,则完成数据请求,没有任何状态变化。如果私有缓存中没有所需数据块,则向该数据块的家节点发送一个请求。l家节点收到请求后,检查数据块的缓存状态:未缓存状态,向内存请求数据,并将数据送回本地节点;共享状态,向本地节点送回所需数据,并将其加入共享者集;独占状态,如果发现数据是被独占的,则向远程节点发送取数据请求,并把远程节点加入共享集,待接收到远程节点返回的数据后,将数据发送给本地节点,并将本地节点加入共享集。l远程节点到取数据的请求后,将数据回写到家节点。1.2.2考虑写缺失的情况:l本地节点请求写一个数据块,向家节

7、点发写请求以获得所有权。l家节点检查所请求数据块的状态:未缓存状态,则向本地节点发送数据,并设其为共享者,把数据缓存的状态改为独占;共享状态,向所有共享该数据块的节点发无效信息,向本地节点传送数据,把数据缓存的状态改为独占;独占状态,如果是新的独占请求,则向远端节点(即原独占的节点)发送数据写回消息,远端节点向家节点返回最新的数据,然后家节点将数据发送给本地节点,并将数据缓存状态改为本地节点独占。l远端节点收

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。