注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

风轻扬

活着就是为了追求幸福

 
 
 

日志

 
 
关于我

关注互联网应用架构、分布式与海量数据处理技术、云计算、数据库技术

网易考拉推荐
GACHA精选

Intel Nehalem CPU架构学习  

2008-12-07 21:40:17|  分类: 编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
这是网易首页看到这篇文章的笔记。基于Nehalem架构的CPU计划于08年底至10年初发布,面向服务器、移动、桌面三个领域,45nm,大多4核。处理器分为核心和非核心两部分,方面针对不同应用进行调整。

主要改进如下:

SSE 4.2优化文本处理能力
SSE 4.2增加了快速计算CRC检验,快速字符串比较,计算非0位个数的POPCNT等7条指令。

64位宏融合
宏融合指将两条连续指令当一条处理,在Conroe中引入,但只支持32位,Nehalem支持64位。宏融合的主要作为是将TEST/CMP与其后的条件分支指令作为一条处理。这一指令对在处理if/for/where等分支、循环程序结构时使用。

循环检测器改进
Core架构引入循环检测器,支持循环大小不超过18指令的循环检测。Nehalem将循环检测放在译码之后进行,检测到循环时可以节约译码过程,并且可检测的循环大小改为28个微操作(通常大于28指令)。

重新设计分支预测器
传统的分支预测对包含大量无规律数据访问的数据库应用等准确率低,Nehalem首次采用多级分支预测机制,加入第二级分支目标缓冲器(BTB),可以提升在数据库等应用时的效率。另外对用于预测函数返回地址的返回栈缓冲器(RSB)进行重命名处理,可以消除递归调用引起的栈溢出问题,提高预测准确性。

同步多线程SMT
更好的超线程(HT)。

高速缓存结构
取消了Intel一直沿用的前端总线,内存控制器被放置到片内。在原一级与二级缓存之间加入一级新的缓存。Core 2时两核共用一组二级缓存,Nehalem每个核有独占的二级缓存,大家共用三级缓存。一级高速缓存的访问时间从3个时钟周期增加到了4个时钟周期。二级缓存访问时间不超过10时钟周期,三级缓存放在核心之外。二级高速缓存中存在的内容必然在三级高速缓存中存在。

二级TLB
Core 2只有一级TLB,指令128,数据256项,Nehalem一级指令128,数据64项,加入指令数据共享的512项二级TLB。

非对齐高速缓存访问改进
以前需要产生多个微操作才能完成一条非对齐访问指令,即便这条指令所需要的数据是对齐的。Nehalem中如果非对齐访问指令所需要的数据是对齐的,那么处理器会把它当作一条对齐访问指令来处理,效率与完成相同功能的对齐访问指令一样,数据是非对齐时也进行了优化。

同步原语优化
Nehalem提升了Lock Prefix、XCHG等同步原语的速度。

内存控制器与QPI
在Nehalem中弃用了前端总线,并且将内存控制器集成在CPU中的非核心部分,支持三通道DDR3内存,带宽可达32GB/s。

QPI为QuickPath Interconnect,取代原前端总线FSB进行系统间互联。QPI只能连接两个设备进行点对点传输,因此需要多条QPI进行数个芯片间的互联。主要面向服务器,桌面应用影响不大。使用FSB时是SMP,UMA,Hehalem是NUMA

面向虚拟化的优化
扩展页表VPT,虚拟机可以直接访问物理页面,传统的需要进行一层映射。虚拟处理器ID,硬件知道每个虚拟机每个进程,页表等即可放到TLB中,提高TLB命中率。

功耗
多时钟域结构,非核心可以工作在较慢时钟频率下,降低功耗。门控电源,某部分不需要时切断电源。每个核有单独的门控电源,在核心不工作时,相应的电源可以被动态的切断。动态调节电压和频率。
  评论这张
 
阅读(990)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017