
SnoopFilter,探听过来自滤器,这一技术早期出现在IBM自己开发的X3芯片组中,随后英特尔Blackford芯片组中也引入了该功能。SnoopFilter的设计初衷是对于基于FS360百科B前端总线架构的系统频繁的Snoop操作进行缓存、性能优化,缓解前端总线的通信压力,从而改善系统性能。
- 中文名 探听过滤器
- 外文名 snoop filter
- 出 现 X3芯片组
- 公 司 IBM
简介
SnoopFilter(探听过滤器)这一技儿立抓龙优配裂术早期出现在IBM自己开发的X3芯片组中,随后英特来自尔Blackford芯片组360百科中也引入了该功能。SnoopFilter的设计初衷是对于基于FSB前端货齐总线架构的系统频繁的Sno回op操作进行缓存、性能优化,缓解前端总线的通信压力,从而改善系统性能。
发展过程
基于冯·诺依曼架构,多核心乃至多处理器的协同工短则度作,保持缓存一致性(CacheCoherent)是很自然也是很合理的要许从全求(不保持缓存一致性的话需要在对软件做出很大的改动),在现存主流的两种x86多处理器架构中,具有两种缓存一致性方案:AMD括设息封么跑Operton和Nehalem代表的ccNUMA乙镇把配植四明息富春架构使用的DirectoryCacheCoherent,以及Nehalem-EP之前的Xeon代表的统一总线架构采用的Snoop操作。
工作原理
在统一总线架构中,一个处理器的所有操作都可以被其他处理器看到,因此处理器可以利用一种叫做Snoop(侦听)的操作来监视总线上的缓存操作指令,当侦听到其他处理器的操作涉及到本处理器上的共享缓存页面的时候,就可以进行相关的操作来保持缓存一致性(通常,就是使本地的缓存页面变为Invalid无效)。
Snoop Filter(探听过滤器)运行示意图 单条总线上的Snoop操作很好处理,每一个处理器/处理内核都自行Snoop,然而在多条FSB总线下,Snoop操作需要来自总线之间转发所有的消息,随着处理器的增多,总线的负荷就越来越么机深大(这也是Hub让位于Switch的原因之一),因此就导致了SnoopFilter出现。 从上图中我们可以看到,搭建在FSB之间的Co360百科herencyEngine(一右好所苦负请排限友致性处理引擎)管理着一个大的表格,记录着不同总线/不同处理器之间的缓存页面--事实上,Snoop缓存的是CPU二级缓存的标签和状态等信息,并对总线之间的转发进行控制,从而降低总线上的交通量,起德施无宪危兵边向曲年演到提升处理效率的目的。由于要协调多个处理器之间缓存的一致性,因此SnoopFilter缓存的容量要大于或等于所有处理器二级缓存容量之和才能发挥最佳的作用。从而,Intel5000X的机抓把或搞探满卷SnoopFilter缓存容量为16MB(每个Intel5400Xeon的L2缓存容量8MB,两个处理器就是16MB),5400芯片组中Snoop Filter更是增加到了24MB。
评论留言