外频

外频是由主板为CPU提供的基准时钟频率,一般常见的有100、133、166、200。我们说的FSB(Front System Bus)指的是系统前端总线,它是处理器与主板北桥芯片或内存控制集线器之间的数据通道,常见频率有400、333、533、800。

作为新手不必掌握那么多概念性的东西,只要记住以下几个公式:
主频=外频*倍频(MHz)
IntelCPU前端总线=外频*4(MHz)
AMDCPU前端总线=外频*2(MHz)
CPU数据带宽=前端总线*8(MB/s)
内存带宽=内存等效工作频率*8(MB/s)

前端总线频率

总线是将信息以一个或多个源部件传送到一个或多个目的部件的一组传输线。通俗的说,就是多个部件间的公共连线,用于在各个部件之间传输信息。人们常常以MHz表示的速度来描述总线频率。总线的种类很多,前端总线的英文名字是Front Side Bus,通常用FSB表示,是将CPU连接到北桥芯片的总线。计算机的前端总线频率是由CPU和北桥芯片共同决定的。

北桥芯片负责联系内存、显卡等数据吞吐量最大的部件,并和南桥芯片连接。CPU就是通过前端总线(FSB)连接到北桥芯片,进而通过北桥芯片和内存、显卡交换数据。前端总线是CPU和外界交换数据的最主要通道,因此前端总线的数据传输能力对计算机整体性能作用很大,如果没足够快的前端总线,再强的CPU也不能明显提高计算机整体速度。数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率,即数据带宽=(总线频率×数据位宽)÷8。目前PC机上所能达到的前端总线频率有266MHz、333MHz、400MHz、533MHz、800MHz几种,最高到1066MHz。前端总线频率越大,代表着CPU与北桥芯片之间的数据传输能力越大,更能充分发挥出CPU的功能。现在的CPU技术发展很快,运算速度提高很快,而足够大的前端总线可以保障有足够的数据供给给CPU,较低的前端总线将无法供给足够的数据给CPU,这样就限制了CPU性能得发挥,成为系统瓶颈。

外频与前端总线频率的区别

前端总线的速度指的是CPU和北桥芯片间总线的速度,更实质性的表示了CPU和外界数据传输的速度。而外频的概念是建立在数字脉冲信号震荡速度基础之上的,也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一万万次,它更多的影响了PCI及其他总线的频率。之所以前端总线与外频这两个概念容易混淆,主要的原因是在以前的很长一段时间里(主要是在Pentium 4出现之前和刚出现Pentium 4时),前端总线频率与外频是相同的,因此往往直接称前端总线为外频,最终造成这样的误会。随着计算机技术的发展,人们发现前端总线频率需要高于外频,因此采用了QDR(Quad Date Rate)技术,或者其他类似的技术实现这个目的。这些技术的原理类似于AGP的2X或者4X,它们使得前端总线的频率成为外频的2倍、4倍甚至更高,从此之后前端总线和外频的区别才开始被人们重视起来,目前的主流产品均采用这些技术。

DDR和DDR2内存说明

DDR传输标准

严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,部分初学者也常看到DDR SDRAM,就认为是SDRAM。DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。

SDRAM在一个时钟周期内只传输一次数据,它是在时钟的上升期进行数据传输;而DDR内存则是一个时钟周期内传输两次次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。DDR内存可以在与SDRAM相同的总线频率下达到更高的数据传输率。 与SDRAM相比:DDR运用了更先进的同步电路,使指定地址、数据的输送和输出主要步骤既独立执行,又保持与CPU完全同步;DDR使用了DLL(Delay Locked Loop,延时锁定回路提供一个数据滤波信号)技术,当数据有效时,存储控制器可使用这个数据滤波信号来精确定位数据,每16次输出一次,并重新同步来自不同存储器模块的数据。DDR本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟脉冲的上升沿和下降沿读出数据,因而其速度是标准SDRA的两倍。

从外形体积上DDR与SDRAM相比差别并不大,他们具有同样的尺寸和同样的针脚距离。但DDR为184针脚,比SDRAM多出了16个针脚,主要包含了新的控制、时钟、电源和接地等信号。DDR内存采用的是支持2.5V电压的SSTL2标准,而不是SDRAM使用的3.3V电压的LVTTL标准。

 DDR内存的频率可以用工作频率和等效频率两种方式表示,工作频率是内存颗粒实际的工作频率,但是由于DDR内存可以在脉冲的上升和下降沿都传输数据,因此传输数据的等效频率是工作频率的两倍。

PC1600如果按照传统习惯传输标准的命名,PC1600(DDR200)应该是PC200。在当时DDR内存正在与RDRAM内存进行下一代内存标准之争,此时的RDRAM按照频率命名应该叫PC600和PC800。这样对于不是很了解的人来说,自然会认为PC200远远落后于PC600,而JEDEC基于市场竞争的考虑,将DDR内存的命名规范进行了调整。传统习惯是按照内存工作频率来命名,而DDR内存则以内存传输速率命名。因此才有了今天的PC1600、PC2100、PC2700、PC3200、PC3500等(在用CPU-Z工具查看机器时,在SPD中显示的最大带宽)。

PC1600的实际工作频率是100 MHz,而等效工作频率是200 MHz,那么它的数据传输率就为“数据传输率=频率*每次传输的数据位数”,就是200MHz*64bit=12800Mb/s,再除以8就换算为MB为单位,就是1600MB/s,从而命名为PC1600。

DDR2传输标准

DDR2可以看作是DDR技术标准的一种升级和扩展:DDR的核心频率与时钟频率相等,但数据频率为时钟频率的两倍,也就是说在一个时钟周期内必须传输两次数据。而DDR2采用“4 bit Prefetch(4位预取)”机制,核心频率仅为时钟频率的一半、时钟频率再为数据频率的一半,这样即使核心频率还在200MHz,DDR2内存的数据频率也能达到800MHz—也就是所谓的DDR2 800。

目前,已有的标准DDR2内存分为DDR2 400和DDR2 533,DDR2 667和DDR2 800,其核心频率分别为100MHz、133MHz、166MHz和200MHz,其总线频率(时钟频率)分别为200MHz、266MHz、333MHz和400MHz,等效的数据传输频率分别为400MHz、533MHz、667MHz和800MHz,其对应的内存传输带宽分别为3.2GB/sec、4.3GB/sec、5.3GB/sec和6.4GB/sec,按照其内存传输带宽分别标注为PC2 3200、PC2 4300、PC2 5300和PC2 6400。

**********************
* SDRAM和DDR布线指南 *
**********************
    2007/02/03  asdjf@163.com  www.armecos.com

ecos应用是与硬件平台无关的,虽然开发板没有涉及到SDRAM和DDR,不过,在某些高端平台上使用ecos可能会遇到内存布线问题,为了完整叙述,这里一并给出说明。
    
    很多人对内存布线感到迷茫,找不到切入点,不知如何下手,其实高速硬件设计的主要任务就是与干扰做斗争,内存布线也不例外。可以这样考虑:内存是做什么用的呢?是用来存储数据的,写入1读出1,写入0读出0,即保证数据访问正确。那么,在什么情况会导致数据访问错误呢?
    1、判决错误,0判成1,1判成0。可能参考电平不准(为什么不准?信号线内阻造成的压降),也可能是加性干扰,或者阻抗不匹配引起信号畸变。
    2、时序错误,不满足建立/保持时间,或者采样点相位错误,不在有效信号位置上。触发器需要维持一段时间的能量供给才能正常工作,这个时间就是建立/保持时间。
    那么只要解决好这两个问题,保证内存正确访问,你的内存电路就设计成功了。
    
    有了这个指导思想,内存布线就可以按部就班地完成。不过,不同的RAM类型,虽然目标都是避免判决和时序错误,但实现方法因工作模式不同而有较大差异。
    
    高速系统一般采用低压信号,电压低,摆幅小,容易提高速度,降低功耗,但这给布线带来了困难,因为低压信号功率受信号线内阻影响大,是电压平方关系,所以要尽量减少内阻,比如使用电平面,多打孔,缩短走线距离,高压传输在终点用电阻分压出较低电压的信号等。SDRAM、DDR-I、DDR-II、 DDR-III信号电压一个比一个低,越来越不容易做稳定。
    
    电源供给也要注意,如果能量供给不足,内存不会稳定工作。
    
    经常看到“等长布线”,其实,等长不是目的,真正的目的是满足建立保持时间,同频同相,采样正确。等长只不过可以最简单地实现这个目的罢了。要定量分析线长,必须按照时钟模型公式计算。时钟同步电路的类型在后面有简单介绍,这里只要知道SDRAM是公共时钟同步,DDR是源同步就可以了。
    
    SDRAM是公共时钟同步模式,只关心建立时间,不关心保持时间。这些时间和各段飞行时间,经过各个门电路延时,clock skew,jitter,cycle等有关,需要按照公式精确计算。算出各种参数后下规则,让EDA软件辅助设计。选出最长的一根线,不需要计算什么,只要与之等长即可。有些软件能自己算,有些只能自己一段段计算,可以编程让EXCEL表格对某种格式的报告文件自动求和,也算半自动化了。

DDR的所有信号都要加匹配,不论多复杂,为了稳定性。
    始端匹配串接一个22/33欧电阻即可,终端匹配分为AC匹配和DC匹配,阻容可以对噪点抑制,戴维宁电路可以提供高压输电,使参考电平更准确,虽然直流功耗大,但比单个50欧功耗小。
    CPU和DDR都是高速器件,DDR热量高,应远离。而且DDR是源同步时钟模式,对保持时间有要求,不是线越短越好,有最小距离要求。保证时钟稳定,同频同相,冗余大即可。
    
    有时,信号线有交叉的情况,此时,可以在PCB里调线,再反标回去,因为RAM的各个数据线不需要一一对应,只要有地方存储bit就可以了。注意:刷新线A10不能调,需要读取RAM ID时也不能调整。
    
    评价设计的好坏要看Margin(冗余),setup time margin和hold time margin,SDRAM/DDR工作没问题并不意味着margin小,也许在实验室可以正常工作,可一到现场就死机。频率漂移,时钟抖动,相差,介电常数变化等都会导致采样错误/不满足建立保持时间,而margin大就可以尽量抵抗这些干扰,在一个恶劣的环境里仍然保持稳定。
    
    内存的表现形式有两种:内存颗粒和内存条。内存条自身有走线长度,需要计算在内。问个问题:内存条有3种安装方式:竖插、斜插、平插,你认为那种方式好呢?

附:时钟同步电路的类型

源同步就是指时钟选通信号clk伴随发送数据一起由驱动芯片发送。公共时钟同步是指在数据的传输过程中,总线上的驱动端和接收端共享同一个时钟源,在同一个时钟缓冲器(clock buffer)发出同相时钟的作用下,完成数据的发送和接收。

公共时钟同步,将同一个时钟信号用时钟分配器分成2路,一路接发送器,一路接接收器。在时钟上升沿发送数据,在下一个周期的上升沿采样接收。速率在200-300MHZ以下。
    源同步是时钟和数据一起发送,时钟稍稍滞后发送,传输速率主要由数据和时钟信号间的时差决定。因此速率快。
    公共时钟同步电路走线长度有最大值len <=,源同步电路走线长度有最小值<= len <=
    源同步关心保持时间,TBI+10bit数据和DDR的DQS+DATA属于源同步电路。

------       等长线
          |时钟|----------------->发送端时钟
   clk--->|驱动|----------------->接收端时钟
          |    |---
          ------  |
            |     |
            ---<---PLL补偿
         公共时钟同步

-----
          |驱 |------------------>clk
          |动 |
          |   |================>data
          -----
          源同步

---------  ---------
    -----<         ><         >--------
          ---------  ---------
              -----------
              |         |
      ---------         -----------
        |<--->|<-->|
         建立   保持

前端总线频率(FSB)及DDR内存频率详解,彻底让你明白CPU总线带宽与内存带宽匹配问题!相关推荐

  1. 前端总线频率(FSB)及DDR内存频率详解,彻底让你明白CPU总线带宽与内存带宽......

    外频 外频是由主板为CPU提供的基准时钟频率,一般常见的有100.133.166.200.我们说的FSB(FrontSystemBus)指的是系统前端总线,它是处理器与主板北桥芯片或内存控制集线器之间 ...

  2. 前端总线频率(FSB)及DDR内存频率详解,彻底让你明白CPU总线带宽与内存带宽...

    外频 外频是由主板为CPU提供的基准时钟频率,一般常见的有100.133.166.200.我们说的FSB(Front System Bus)指的是系统前端总线,它是处理器与主板北桥芯片或内存控制集线器 ...

  3. java内存屏障详解_图文带你了解volatile底层和内存屏障之间的关系

    欢迎大家搜索"小猴子的技术笔记"关注我的公众号,有问题可以及时和我交流. LoadLoad Barriers:在两个读指令之间插入一个"LoadLoad"的内存 ...

  4. 【C++】C++对象模型:对象内存布局详解(C#实例)

    C++对象模型:对象内存布局详解 0.前言 C++对象的内存布局.虚表指针.虚基类指针解的探讨,参考. 1.何为C++对象模型? 引用<深度探索C++对象模型>这本书中的话: 有两个概念可 ...

  5. 前端实现动画的6种方式详解

    前端实现动画的6种方式详解 一.总结 一句话总结:一般是css样式改变加setInterval 二.[前端动画]实现动画的6种方式 通常在前端中,实现动画的方案主要有6种: javascript直接实 ...

  6. 三星服务器内存条型号区分,三星内存铭牌详解|三星内存条标签内存参数详解...

    三星内存铭牌详解|三星内存条标签内存参数详解 大多数朋友都清楚内存铭牌上,记录着内存的重要数据.但是大多数朋友都对此不甚了然!为此小编也想学习下,现在把相关的学习笔记分享出来,希望和朋友们显摆下,小编 ...

  7. Java内存溢出详解之Tomcat配置

    Java内存溢出详解 转自:http://elf8848.iteye.com/blog/378805 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError ...

  8. Java内存溢出详解

    Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...

  9. 《转载》Tomcat内存设置详解

    原文地址:Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 ...

最新文章

  1. 微软职位内部推荐-Senior Software Engineer II-Search
  2. Java 动态代理机制分析及扩展,第 1 部分
  3. linux:使用python脚本监控某个进程是否存在(不使用crontab)
  4. 计算机课是一体化教学吗,计算机基础课程理实一体化教学模式
  5. PHP 查看系统文件时间戳
  6. Java、Android引用类型
  7. access中case替代方法
  8. 【报告分享】5G赋能中国智慧城市白皮书.pdf(附下载链接)
  9. 使用transforms.Normalize((0.5,), (0.5,))异常报错“Process finished with exit code -1073741676 (0xC0000094)”
  10. Regional Proposal的输出到底是什么
  11. python显示中文乱码_解决python中文乱码的方法
  12. HTML基础-李南江
  13. 几行烂代码,用错 Transactional,我赔了16万。
  14. CSR蓝牙遥控器OTA固件升级
  15. 利用JS来实现表格的全选、全不选、反选以及删除的功能
  16. Why is ksoftirqd using 100% of the CPU?
  17. html5 canvas实现高并发视频弹幕功能
  18. Fanuc机器人配置伺服焊枪完整步骤
  19. 请不要在该奋斗的年纪选择了安逸
  20. SQL*Plus 模拟 EBS环境

热门文章

  1. SharePoint使用资源管理器打开,提示:在文件资源管理器中打开此库时遇到问题
  2. Spring3—AOP
  3. 给apple老师建议
  4. AI计算机视觉技术如何赋能智慧城市建设?5大典型场景盘点
  5. d2-admin动态菜单权限(登陆后)
  6. 项目中项目评估概述及原则
  7. golang 记一次data race排查过程
  8. “东信杯”广西大学第一届程序设计竞赛(同步赛)D、数论只会GCD 【博弈 分类讨论】...
  9. Git - Smart Checkout、Force Checkout 区别
  10. 阿里云短信服务报错:SignatureDoesNotMatch : Specified signature is not matched with our calculation.