电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 嵌入式系统/ARM技术 > 详细信息
嵌入式系统/ARM技术:CPU学习 (Cache Coherence)
来源:   时间: 2008-7-16 2:37:19    

  在2004年写的一篇文章X86汇编语言学习手记(1)中,曾经涉及到gcc编译的代码默认16字节栈对齐的问题。之所以这样做,主要是性能优化方面的考虑。

  大多数现代CPU都One-die了L1和L2Cache。对于L1 Cache,大多是write though的;L2 Cache则是write back的,不会立即写回memory,这就会导致Cache和Memory的内容的不一致;另外,对于MP(Multi Processors)的环境,由于Cache是CPU私有的,不同CPU的Cache的内容也存在不一致的问题,因此很多MP的的计算架构,不论是ccNUMA还是SMP都实现了Cache Coherence的机制,即不同CPU的Cache一致性机制。

  Cache Coherence的一种实现是通过Cache-snooping协议,每个CPU通过对Bus的Snoop实现对其它CPU读写Cache的监控:

  首先,Cache line是Cache和Memory之间数据传输的最小单元。

  1. 当CPU1要写Cache时,其它CPU就会检查自己Cache中对应的Cache line,如果是dirty的,就write back到Memory,并且会将CPU1的相关Cache line刷新;如果不是dirty的,就Invalidate该Cache line.

  2. 当CPU1要读Cache时,其它CPU就会将自己Cache中对应的Cache line中标记为dirty的部分write back到Memory,并且会将CPU1的相关Cache line刷新。

  所以,提高CPU的Cache hit rate,减少Cache和Memory之间的数据传输,将会提高系统的性能。

  因此,在程序和二进制对象的内存分配中保持Cache line aligned就十分重要,如果不保证Cache line对齐,出现多个CPU中并行运行的进程或者线程同时读写同一个Cache line的情况的概率就会很大。这时CPU的Cache和Memory之间会反复出现Write back和Refresh情况,这种情形就叫做Cache thrashing。

  为了有效的避免Cache thrashing,通常有以下两种途径:

  1. 对于Heap的分配,很多系统在malloc调用中实现了强制的alignment.
  2. 对于Stack的分配,很多编译器提供了Stack aligned的选项。

  当然,如果在编译器指定了Stack aligned,程序的尺寸将会变大,会占用更多的内存。因此,这中间的取舍需要仔细考虑,下面是我在google上搜索到的一段讨论:

One of our customers complained about the additional code generated to
maintain the stack aligned to 16-byte boundaries, and suggested us to
default to the minimum alignment when optimizing for code size. This
has the caveat that, when you link code optimized for size with code
optimized for speed, if a function optimized for size calls a
performance-critical function with the stack misaligned, the
performance-critical function may perform poorly.

相关信息
发表评论
打印本页 关闭本页
凌华推出High Speed Link分布式实时控制系统延伸模块
  凌华科技推出High Speed Link分布式实时控制系统延伸模块 ——长距离多点连接架构 搭配性高 740)this.width=740" align=center border=0>740)this.width=740" align=center border=0>2006年9月4日,北京讯   产业应用平台供货商-凌华科技推出High Speed Link系统延伸模块HSL-HUB3与HSL-Repeater。此产品可以为HSL用户提供最长可达2400公尺的长距离使用及多点连接(multi-drop...
>>详细内容
Zarlink 推出基于ZL70101芯片的开发套件
    卓联半导体公司(ZarlinkSemiconductorInc.)宣布推出新的开发套件,可帮助加快体内植入医用设备以及监控和编程设备间无线遥测系统的设计和评估。   医用设备生产商开发的遥测系统主要用于支持新的监测、诊断和治疗应用,旨在改善病人监护并降低医护成本。卓联公司的ZL70101射频(RF)收发器芯片被广泛用于多种体内植入式医用设备,包括心脏起搏器、去颤器、神经刺激器、植入式药泵...
>>详细内容
Zarlink推出ZL70101收发器 简化医用遥测系统设计
    卓联半导体公司宣布推出新的开发套件,可帮助加快体内植入医用设备以及监控和编程设备间无线遥测系统的设计和评估。   医用设备生产商开发的遥测系统主要用于支持新的监测、诊断和治疗应用,旨在改善病人监护并降低医护成本。卓联公司的ZL70101射频(RF)收发器芯片被广泛用于多种体内植入式医用设备,包括心脏起搏器、去颤器、神经刺激器、植入式药泵、生理指标监测仪,以及相关外...
>>详细内容
德赛电子和索贝数码选分别选中赛普拉斯的HOTLink视频设备
    赛普拉斯半导体公司日前宣布,德赛电子技术有限公司在其用于电视广播的传输流(TS)复用器中采用了赛普拉斯的HOTLink™视频SERDES产品。HOTLinkSERDES提供可靠的信号接收和传输,使得播放十分流畅。与此同时索贝数码科技股份有限公司的SD非线性编辑系统采用了赛普拉斯HOTLink™IISERDES和SD/DVB-ASI视频均衡器。SERDES提供了连接同轴电缆和光纤设备的接口以实现可靠的视频...
>>详细内容
Atmel推出新款MAX-Link系列收发器AT86RF525B
    Atmel近日宣布推出其专门设计用于WiMAX应用的MAX-Link系列收发器中的第三款。AT86RF525B及其前身AT86RF535B使用了一种专有的内部标定算法,因此无需外部标定电路或标定软件。MAX-Link收发器是一种使用内部标定的WiMAX专用收发器。初启标定能消除会导致本振泄露降低和镜像抑制增加的失配影响。运行中温度、电源电压或频率的变化都将会导致射频性能的降低,从而需要重新标定。标定在发...
>>详细内容
CC-Link在空调行业应用
    一 引言  在日本,现场总线CC-Link技术已广泛应用于空调生产行业,譬如日本三菱电机,三菱重工,三洋电机,大金等著名空调厂家都已将CC-Link成熟地应用于生产中。故我公司旨在将成熟的CC-Link技术引入到国内同行中,在三菱电机上海FA中心的协助下,率先在国内将CC-Link现场总线应用于位于海尔黄岛工业园的商用空调生产线集中控制和数据采集系统,得到了较好的反响。现将系统介绍如...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com