4.3 Cache Controller的基本组成

本文主要探讨了CMP(Chip Multi-Processor)系统中的Cache Controller的组成,包括FLC、MLCs、LLC Cache Controller,以及它们在处理器系统中的连接拓扑结构。内容涵盖了Cache一致性、内存一致性模型、不同级别的Cache管理以及与DMA操作的关系。此外,文章还提到了Directory Controller在ccNUMA(Cache-Coherent Non-Uniform Memory Access)结构中的作用,以及各种连接方式如Share Bus、Ring Bus和Crossbar Switch对性能和延迟的影响。
摘要由CSDN通过智能技术生成

在一个处理器系统中,存储器子系统是一个被动部件,由来自处理器的存储器读写指令和外部设备发起的DMA操作触发。虽然在存储器子系统中并无易事,DMA操作依然相对较易处理。在多数设计中,一个设备的DMA操作最先看到的是LLC,之后在于其他Cache进行一致性操作。通常处理器系统的LLC控制器将首先处理这些DMA操作。

随着通用处理器集成了更多的智能外部设备,这些智能设备已经直接参与到处理器系统的Cache Coherency中,这些设备可以直接访问原来属于处理器系统的存储器子系统。最典型的设备就是Graphic Controller。从Sandy Bridge微架构开始,x86处理器内部集成了Graphic ControllerGraphic Controller可以与处理器共享存储器子系统。这使得NVDIA无法继续参与这个内部集成,以获得许多显而易见的优点时,义无反顾地投奔ARM阵营。

本篇不再关注这些与外部设备相关的Cache一致性,也不再讲述与DMA操作相关的细节,重点关注来自指令流水线的存储器指令的执行,以及在这些存储器指令的执行过程中,通过Cache Controller时所进行的对应操作。

从实现的角度上看,任何一个复杂的处理器系统都是由数据缓冲,连接这些数据缓冲的通路和控制逻辑组成。其中与Cache Controller相关的通路,数据缓冲和控制逻辑是最重要的组成部件,也是处理器系统的数据通路的主体。

这些CacheController及其数据缓冲通过横向和纵向连接,组成一个基本的CMP系统,而后这些CMP通过各类拓扑结构进一步连接,形成复杂的ccNUMA处理器系统,如41所示。本篇所重点关注的是,在一个CMP处理器系统之内的Cache Controller组成与结构,并简单介绍ccNUMA处理器系统的互连方式。

在一个ccNUMA处理器系统中,Cache ControllerFLC/MLCs/LLC Cache ControllerDMA ControllerDirectory Controller,共同组成。其中FLC Cache ControllerLSU和指令流水线直接相连,管理第1级分离的指令与数据CacheMLCs Cache Controller可能由多级MLC Controller组成,上接FLC下接LLC Controller,管理中间层次的Cache。在多数CMP处理器中,FLCMLCs Controller在一个CPU Core之内,属于私有Cache,并且与CMP处理器中的其他处理器的FLC/MLCs保持一致。

LLCController管理CMP处理器的最后一级Cache。在一个CMP处理器中,LLC通常由多个CPU Core共享,其组成结构可以是集中共享,也可以分解为多个Distributed LLCDirectory Controller是实现ccNUMA结构的重要环节,该Controller通常设置在Home Agent/Node中,并与主存储器控制器直接关联在一起。当一个数据请求在LLCMiss后,将到达Home Agent,之后在进行较为复杂的CMP间的Cache Coherency/Memory Consistency处理。

我们首先讨论在一个CMP系统内,FLCMLCsLLC的连接拓扑结构,即

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值