Mechanical Sympathy 系列翻译 (CPU Cache Flushing Fallacy)

 前言:

    由于最近在学习LMAX Disruptor, 它是一个高效的并发框架,里面涉及到许多底层的并发话题,后来在http://mechanical-sympathy.blogspot.com/这个博客上,发现很多很好的文章。于是起心翻译之,一来借翻译加深学习印象,二来推广之。。

 

    Mechanical Sympathy   这个短语非常有意思,直译过来是Mechanical是机械的意思,Sympathy是同情的意思,在这里表示硬件的运作方式,以及与硬件运行方式协同的软件编程。。。

 

下面是文章正文:

CPU 缓存刷新的谬误(CPU Cache Flushing Fallacy)

    即使是有丰富经验的技术人员,我也经常听到谈论某些操作会导致CPU缓存“刷新”。 这似乎可以说是一个对CPU缓存的工作原理,以及CPU缓存子系统和内核如何进行交互很常见的谬误。 在这篇文章中,我将试图解释CPU缓存履行的核心功能,内核如何执行我们的程序,以及它们如何进行交互。 作为一个具体的例子,我将深入介绍最新的intl x86服务器的CPU, 其它CPU使用技术类似。 

 

 

    即是是最现代的系统,也是多处理器共享内存设计。 一个共享的内存系统由一个内存资源组成,可以供2个或更多独立的CPU内核访问。 主内存的延迟往往是很高的,从10到100纳秒不等。 一个3.0GHz的CPU在100ns可以处理多达1200条指令。 每个Sandy Bridge(译者注:Intel推出代号为Sandy Bridge的处理器)内核在每个周期(IPC)可以并行执行多达4个指令。 CPU采用缓存子系统来降低延迟,提高处理指令的能力。 这些缓存有的是容量小,速度快,而且每个内核独立,有的则速度稍慢,容量更大,多内核共享。 这些缓存和寄存器,主内存,构成我们非持久性存储器的层次结构。 

 

    将来,如果你在开发一个重要的算法,需要牢记,一次缓存失效约等于失去执行500 CPU指令机会! 这还只是一款单插槽系统,一个多插槽系统可能失去机会增加一倍,因为请求的内存可能是在交叉互连的另一个插槽上。 

 

存储器层次结构 :

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值