多处理器SMP系统结构--高速缓存与内存的一致性(X86)

CPU本身的硬件的支持

CPU通过自身的硬件机制,时刻监视着与当前CPU对应的Cache中相关的内容情况,一旦Cache对应的内容在内存中改变,Cache就将其置为无效。

Intel在Pentum CPU中为已经装入的高速缓存的数据提供了一种自动与内存保持一致的机制,称为snooping(窥探)。每个CPU内部都有一部分专门的硬件,一旦启动了高速缓存以后就时刻监视着系统总线上对内存的操作。如果发现有来自其它CPU的写操作,而本CPU的高速缓存中又缓存着该次写操作的目标,就会自动把相应的cache line废弃,并使得在需要用到这些数据时重新将其装入高速缓存,以此达到二者的一致。

软件的设计

对于高速缓存Cache中的TLB部分,为了保持与内存中内容的一致性,处理起来和普通Cache还不太一样。通过IPI、即“处理器间中断”来解决。

每当一个CPU改变内存中某个页面映射目录或映射表的内容,从而可能引起其它CPU的TLB与此不一致时,就向系统中这在使用这个映射表的CPU发送一个中断请求,请它们废弃各自TLB的内容。

例如:在i386的SMP结构中采用APIC(高级可编程中断控制器)控制器,为此而设立了INVALIDATE_TLB_VECTOR中断请求。当一个CPU收到这种中断请求时,就会在中断服务程序中将TLB中的部分或全部内容作废(invalidate)。

具体参考:TLB的刷新方式

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值