「一枚小小教书匠」就没人敢忽悠你了(二),电脑弄懂关于CPU的这些知识( 四 )


要组建SMP系统 , 对所选的CPU有很高的要求 , 首先、CPU内部必须内置APIC(AdvancedProgrammableInterruptControllers)单元 。 Intel多处理规范的核心就是高级可编程中断控制器(AdvancedProgrammableInterruptControllers--APICs)的使用;再次 , 相同的产品型号 , 同样类型的CPU核心 , 完全相同的运行频率;最后 , 尽可能保持相同的产品序列编号 , 因为两个生产批次的CPU作为双处理器运行的时候 , 有可能会发生一颗CPU负担过高 , 而另一颗负担很少的情况 , 无法发挥最大性能 , 更糟糕的是可能导致死机 。
「一枚小小教书匠」就没人敢忽悠你了(二),电脑弄懂关于CPU的这些知识
文章图片
16、NUMA技术
NUMA即非一致访问分布共享存储技术 , 它是由若干通过高速专用网络连接起来的独立节点构成的系统 , 各个节点可以是单个的CPU或是SMP系统 。 在NUMA中 , Cache的一致性有多种解决方案 , 需要操作系统和特殊软件的支持 。 图2中是Sequent公司NUMA系统的例子 。 这里有3个SMP模块用高速专用网络联起来 , 组成一个节点 , 每个节点可以有12个CPU 。 像Sequent的系统最多可以达到64个CPU甚至256个CPU 。 显然 , 这是在SMP的基础上 , 再用NUMA的技术加以扩展 , 是这两种技术的结合 。
17、乱序执行技术
乱序执行(out-of-orderexecution) , 是指CPU允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术 。 这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后 , 将能提前执行的指令立即发送给相应电路单元执行 , 在这期间不按规定顺序执行指令 , 然后由重新排列单元将各执行单元结果按指令顺序重新排列 。 采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度 。 分枝技术:(branch)指令进行运算时需要等待结果 , 一般无条件分枝只需要按指令顺序执行 , 而条件分枝必须根据处理后的结果 , 再决定是否按原先顺序进行 。
18、CPU内部的内存控制器
许多应用程序拥有更为复杂的读取模式(几乎是随机地 , 特别是当cachehit不可预测的时候) , 并且没有有效地利用带宽 。 典型的这类应用程序就是业务处理软件 , 即使拥有如乱序执行(outoforderexecution)这样的CPU特性 , 也会受内存延迟的限制 。 这样CPU必须得等到运算所需数据被除数装载完成才能执行指令(无论这些数据来自CPUcache还是主内存系统) 。 当前低段系统的内存延迟大约是120-150ns , 而CPU速度则达到了3GHz以上 , 一次单独的内存请求可能会浪费200-300次CPU循环 。 即使在缓存命中率(cachehitrate)达到99%的情况下 , CPU也可能会花50%的时间来等待内存请求的结束-比如因为内存延迟的缘故 。
你可以看到Opteron整合的内存控制器 , 它的延迟 , 与芯片组支持双通道DDR内存控制器的延迟相比来说 , 是要低很多的 。 英特尔也按照计划的那样在处理器内部整合内存控制器 , 这样导致北桥芯片将变得不那么重要 。 但改变了处理器访问主存的方式 , 有助于提高带宽、降低内存延时和提升处理器性能 。
一枚小小教书匠的主页


推荐阅读