精华内容
下载资源
问答
  • 这篇日志讲得主要是寄存器和存储器(这里指...寄存器与存储器的区别   现代的计算机主要包括三级存储,寄存器、内存储器外存储器,存储数据的速率也依次递减。(外存储器不在本次讨论之中,姑且略过不讲)我们不妨

          这篇日志讲得主要是寄存器和存储器(这里指的是RAM)的区别,之后才是重点,说说我对外设的片内RAM地址映射的理解。如果你学过模电并且基本是醒着上课的话那你可以潇洒得路过了,对于那些本科期间不甚逃课的人本人表示钦佩。
         .寄存器与存储器的区别

          现代的计算机主要包括三级存储,寄存器、内存储器和外存储器,存储数据的速率也依次递减。(外存储器不在本次讨论之中,姑且略过不讲)我们不妨将寄存器和内存储器都抽象成一个大的数组,其中的每个元素都有一个字节(8位)大小,CPU寻址的时候就是以该元素为最小单位完成的。如前一个元素的地址是 0x1FFFFFF0的话,那么下一个元素的地址就是0x1FFFFFF1。我们可以理解为硬件构成上寄存器和内存储器也都是由一个8位大小的元器件线性排列组成的,地址对应着上面讲到的数组中元素的地址。到这里也许你能明白我的意思了,抛开存储速率不谈,对面向软件开发的人来说寄存器和内存储器结构可以看作是相同的,那它们有什么不同呢?

          当然是存储速率不同了!先别骂街……速率只是表面现象,寄存器与内存本质的区别还是物理结构的不同,寄存器是有DFF(D触发器)构成的;内存储器有MOS门和TTL门两种构成。它们之间的具体区别跳过不讲,我只想让你知道二者之间在寻址原理上都是相同的!

    .外设内存映射机制

          说到映射大家可能就会想到函数映射,脑海里会有一个画面:左边一个集合中的某个元素“射”出一条带箭头的直线指向右边的集合的某个元素。如果你高数或离散数学再好一点儿的话会想到单射、双射、满射、恒等映射(你要是这个都想到了,那你牛B!)……其实外围设备的内存映射原理是一样的,只不过左边的集体变成了CPU,右边的集合变成了外围设备,那条带箭头的线就是连接CPU和外设地址引脚的地址总线。

          要知道,一个开发板的CPU地址引脚并不是所有的都与内存元器件相连的,如果该板上有外设(如一块独立显卡),那么CPU就需要分出一些引脚来与该外设的地址引脚相连,相当于将一部分内存寻址的空间分给了外设,那不相当于CPU分出去地址寻址空间为空?非也,一般的外设为了加快处理速度都有自己的片内 RAM(比如说显存,你也知道显存对显卡性能的重要性),分出去的地址空间也就与片内RAM物理连接起来,这样CPU就能像访问内存一样去访问外设的片内 RAM,这也就是所谓的内存映射(当然内存映射在程序设计中还有别的意思,但是这里的话,你懂的……)。

     

          上面讲的都是RAM,那寄存器呢?之前啰哩啰嗦讲寄存器与内存的区别就是为了这里,我们得出的结论是二都在寻址原理上都是相同的,那寄存器看成是RAM不就行了!一样一样一样的!

          其实这个知道了就很简单,但是当初我还懵懂的时候却天真的以为CPU先改变内存中的值,再通过一种什么神奇的机制让外设的RAM也变成相同的值……唉,没文化真可怕!

    展开全文
  • 现代计算机硬件由五大部件组成,分别是运算器、控制器、存储器、输入设备和输出设备...而寄存器并称为内部存储器的还有内存。内存也被称为主存,而辅存指的是计算机的外部存储、例如,硬盘、U盘、软盘以及光盘等等...

    9806c75a6da8e0cd6c926f7ed9804a43.png

    现代计算机硬件由五大部件组成,分别是运算器、控制器、存储器、输入设备和输出设备。

    而存储器的存在对于计算机来说起着不可或缺的作用。在CPU的内部,存在着许多的存储器,这些存储器叫做寄存器,用来暂时存放数据或者指令。正是因为有了这些寄存器,CPU才能快速高效地处理计算机中复杂地工作。而与寄存器并称为内部存储器的还有内存。内存也被称为主存,而辅存指的是计算机的外部存储、例如,硬盘、U盘、软盘以及光盘等等。

    内存

    内存又称主存,是CPU能直接寻址访问的存储空间。在计算机工作的时候,所有的数据都要先经过内存,然后才能交由处理器去处理,内存也被称为,CPU与外存通信的桥梁。它的特点是读写速度快。

    内存一般是由半导体器件组成,可分为RAM(随机存储器)、ROM(只读存储器)、Cache(高速缓存)

    RAM(Random Access Memory),随机访问存储器

    表示既可以从中读取数据,也可以从中写入数据,但是断电后数据就会消失。我们现在所使用的内存条,其实就是RAM集成块集中在一起的一块小电路板,它插在计算机的内存插槽上。而RAM又分为两种,DRAM(动态随机存储)和SRAM(静态随机存储)。

    • DRAM

    动态随机存储,存储单元是由电容和相关元件组成的,电容存在漏电现象,电荷不足会导致存储单元数据出错,所以DRAM需要周期性刷新,以保持电荷状态。DRAM结构较简单且集成度高,通常用于制造内存条中的存储芯片。

    • SRAM

    静态随机存储,存储单元是由晶体管和相关元件做成的锁存器,每个存储单元具有锁存“0”和“1”信号的功能。它速度快且不需要刷新操作,但集成度差和功耗较大,通常用于制造容量小但效率高的CPU缓存。

    ROM(Read Only Memory),只读存储器

    在制造ROM的时候,信息(比如数据或者程序)就被永久写入并永久保存。这些信息只能读入,不能写入。即使处于停电状态,这些信息也不会丢失。ROM一般用于存放计算机的基本程序和数据,如BIOS芯片。

    现在比较流行的只读存储器是闪存( Flash Memory),它属于 EEPROM(电擦除可编程只读存储器)的升级,可以通过电学原理反复擦写。现在大部分BIOS程序就存储在 FlashROM芯片中。

    Cache,高速缓冲存储器

    Cache,介于CPU与内存,平时我们经常看到的是,一级缓存(L1 Cache)、二级缓存(L2 Cache)、三级缓存(L3 Cache),它处于CPU与内存之间,是一个读写速度比内存更快的存储器,当CPU向内存读取或者存入数据时,这些数据也会被存储进Cache中。当CPU再次需要访问这些数据时,CPU就从Cache中读取数据,而不是去访问速度较慢的内存,当然了,如果Cache中没有需要的数据,CPU会去访问内存,读取需要的数据。

    外存

    外存又称为辅存,是指除计算机内存及CPU缓存以外的存储器,此类存储器断电后仍能保存数据。常见的外存有硬盘、光盘、U盘等。我们现在笔记本所使用的SSD固态硬盘,机械硬盘等等就是外部存储器。CPU如果想访问外存中的数据,必须先把外存的数据保存到内存中,CPU再去读取内存中的数据。

    CSDN链接:

    CSDN-专业IT技术社区-登录blog.csdn.net
    展开全文
  • 存储器分类

    2020-01-03 14:29:24
    存储器一般来说可以分为内部存储器(内存),外部存储器(外存),缓冲存储器(缓存)以及闪存这几个大类。...内存与外存本质区别是,一个是内部运行提供缓存和处理功能,也可以理解为协同处理通道;而...

    存储器一般来说可以分为内部存储器(内存),外部存储器(外存),缓冲存储器(缓存)以及闪存这几个大类。
    内存也称为主存储器,位于系统主机板上,可以同CPU直接进行信息交换。其主要特点是:运行速度快,容量小。
    外存也称为辅助存储器,不能与CPU之间直接进行信息交换。其主要特点是:存取速度相对内存要慢得多,存储容量大。
    内存与外存本质区别是,一个是内部运行提供缓存和处理的功能,也可以理解为协同处理的通道;而外存主要是针对储存文件、图片、视频、文字等信息的载体,也可以理解为储存空间。
    缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
    闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储。),区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存与EEPROM不同的是,EEPROM能在字节水平上进行删除和重写而不是整个芯片擦写,而闪存的大部分芯片需要块擦除。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本程序)、PDA(个人数字助理)、数码相机中保存资料等。存储器的详细分类如下图所示:

    其中内存有多种不同的形式分别如下:
      RAM(Random Access Memory) 随机存储器。存储单元的内容可按需随意取出或存入,且存取的速度与存储单元的位置无关的存储器。这种存储器在断电时将丢失其存储内容,故主要用于存储短时间使用的程序。 按照存储信息的不同,随机存储器又分为静态随机存储器(Static RAM,SRAM)和动态随机存储器(Dynamic RAM,DRAM)。静态随机存储器SRAM(Static RAM)不需要刷新电路即能保存它内部存储的数据。除此以外,还有一种随机存储器SSRAM(Synchronous SRAM)即同步静态随机存取存储器。同步是指Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。对于SSRAM的所有访问都在时钟的上升/下降沿启动。地址、数据输入和其它控制信号均于时钟信号相关。这一点与异步SRAM不同,异步SRAM的访问独立于时钟,数据输入和输出都由地址的变化控制。 动态随机存储器DRAM(Dynamic RAM)则每隔一段时间,要刷新充电一次,否则内部的数据即会消失。综上所述,SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,且功耗较大。所以在主板上SRAM存储器要占用一部分面积。SRAM的速率高、性能好,它常应用于CPU与主存之间的高速缓存以及CPU内部的L1/L2或外部的L2高速缓存。

      有一种动态随机存储器SDRAM(Synchronous DRAM)即同步动态随机存取存储器。同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写,DDR,DDR2以及DDR3就属于SDRAM的一类。SDRAM从发展到现在已经经历了五代,分别是:第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM,第五代,DDR4 SDRAM。第一代SDRAM采用单端(Single-Ended)时钟信号,第二代、第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。SDR SDRAM的时钟频率就是数据存储的频率,第一代内存用时钟频率命名,如PC100,PC133则表明时钟信号为100MHz或133MHz,数据读写速率也为100MHz或133MHz。之后的第二,三,四代DDR(Double Data Rate)内存则采用数据读写速率作为命名标准,并且在前面加上一个数字表示其DDR代数的符号,PC= DDR,PC2=DDR2,PC3=DDR3。如PC-2700是DDR-333,其工作频率是333/2=166MHz,2700表示带宽为2.7GB/s。DDR的读写频率从DDR-200到DDR-400,DDR2从DDR2-400到DDR2-800,DDR3从DDR3-800到DDR3-1600。DDR各种规格与传输标准如下表所示:

    传输速率的单位是MT/s(Mega Transfer Per Second),即每秒传输的百万次数,由于DDR一次传输64-bit,相当于8个字节(Byte),所以数据传输带宽为传输速率乘以8。上表中的核心频率指的是DDR芯片内部进行逻辑处理的时钟频率;传输速率的频率叫做传输频率或者等效频率,为了方便起见,后文同一称为等效频率,等效频率在数值上与传输速率相等,最后还有一个时钟频率是DDR芯片时钟引脚的频率,它称作DDR的工作频率。这三个频率的关系如下:

      工作频率=等效频率/2。因为DDR是利用时钟的上升沿与下降沿均传输数据,所以DDR芯片的工作频率(时钟引脚的频率)为等效频率(传输频率)的一半

      核心频率=等效频率/DDR的预取数。对于DDR来说,预取数为2;对于DDR2来说,预取数为4;对于DDR3来说,预取数为8。

      标准的DDR SDRAM分为DDR 200,DDR 266,DDR 333以及DDR 400,其标准工作频率分别100MHz,133MHz,166MHz和200MHz,对应的内存传输带宽分别为1.6GB/s,2.12GB/s,2.66GB/s和3.2GB/s,非标准的(某些厂家生产的超频内存)还有DDR 433,DDR 500等等。值得特别注意的是,初学者常被DDR 266,PC 2100等字眼搞混淆,在这里要说明一下,DDR 266与PC 2100其实就是一回事,只是表述方法不同罢了。DDR 266是指的该内存的传输速率(实际工作频率为133MHz,由于一个周期的上升沿与下降沿均可以用来传输数据,所以等效于266MHz 的SDRAM),而PC 2100则是指其内存传输带宽(2100MB/s)。同理,PC 1600就是DDR 200,PC 2700就是DDR-333,PC 3200就是DDR 400。

      DDR2以及DDR3可以看作是DDR技术标准的一种升级和扩展:DDR的核心频率与工作频率(这里的时钟频率指的是DDR芯片的时钟管脚)相等,但数据频率为时钟频率的两倍,也就是说在一个时钟周期内必须传输两次数据。而DDR2采用“4 bit Prefetch(4位预取)”机制,核心频率为传输频率的1/4,这样即使核心频率还为200MHz,DDR2内存的数据传输频率也能达到800MHz,也就是所谓的DDR2-800。DDR3采用“8 bit Prefetch(8位预取)”机制,这样DRAM的核心频率只有传输频率的1/8,所以DDR3-800的核心频率只有100MHz,如果核心频率为200MHz,DDR3内存的数据频率能达到1600MHz,数据传输频率为DDR2的两倍。

    三、 DDR3介绍

      DDR3 SDRAM(Double-Data-Rate   Synchronous Dynamic Random Access Memory)是应用在计算机及电子产品领域的一种高带宽并行数据总线,它属于上文提到的SDRAM类。DDR3 在 DDR2的基础上继承发展而来,其数据传输速度为 DDR2 的两倍。同时,DDR3 标准可以使单颗内存芯片的容量更为扩大,达到 512Mb 至 8Gb,从而使采用 DDR3 芯片的内存条容量扩大到最高 16GB。此外,DDR3 的工作电压降低为 1.5V,比采用 1.8V 的 DDR2省电 30%左右。说到底,这些指标上的提升在技术上最大的支撑来自于芯片制造工艺的提升,90nm 甚至更先进的 45nm 制造工艺使得同样功能的 MOS 管可以制造的更小,从而带来更快、更密、更省电的技术提升。DDR3 现今是并行 SDRAM 家族中速度最快的成熟标准,JEDEC 标准规定的 DDR3 最高速度可达 1600MT/s(注,1MT/s 即为每秒钟一百万次传输)。 不仅如此, 内存厂商还可以生产速度高于 JEDEC 标准的 DDR3 产品,如速度为2000MT/s 的 DDR3 产品,甚至有报道称其最高速度可高达 2500MT/s。

      DDR3相较于DDR2而言主要有如下几个特点:

      1.突发长度(Burst Length,BL):由于DDR3的预取为8bit,所以突发传输周期(Burst Length,BL)也固定为8,而对于DDR2和早期的DDR架构系统,BL=4也是常用的,DDR3为此增加了一个4bit Burst Chop(突发突变)模式,即由一个BL=4的读取操作加上一个BL=4的写入操作来合成一个BL=8的数据突发传输,届时可通过A12地址线来控制这一突发模式。而且需要指出的是,任何突发中断操作都将在DDR3内存中予以禁止,且不予支持,取而代之的是更灵活的突发传输控制(如4bit顺序突发)。

      2.寻址时序(Timing):就像DDR2从DDR转变而来后延迟周期数增加一样,DDR3的CL周期也将比DDR2有所提高。DDR2的CL范围一般在2~5之间,而DDR3则在5~11之间,且附加延迟(AL)的设计也有所变化。DDR2时AL的范围是0~4,而DDR3时AL有三种选项,分别是0、CL-1和CL-2。另外,DDR3还新增加了一个时序参数-写入延迟(CWD),这一参数将根据具体的工作频率而定。

      3.DDR3新增的重置(Reset)功能:重置是DDR3新增的一项重要功能,并为此专门准备了一个引脚。DRAM业界很早以前就要求增加这一功能,如今终于在DDR3上实现了。这一引脚将使DDR3的初始化处理变得简单。当Reset命令有效时,DDR3内存将停止所有操作,并切换至最少量活动状态,以节约电力。 在Reset期间,DDR3内存将关闭内在的大部分功能,所有数据接收与发送器都将关闭,所有内部的程序装置将复位,DLL(延迟锁相环路)与时钟电路将停止工作,而且不理睬数据总线上的任何动静。这样一来,将使DDR3达到最节省电力的目的。

      4.DDR3新增ZQ校准功能:ZQ也是一个新增的脚,在这个引脚上接有一个240欧姆的低公差参考电阻。这个引脚通过一个命令集,通过片上校准引擎(On-Die Calibration Engine,ODCE)来自动校验数据输出驱动器导通电阻与ODT的终结电阻值。当系统发出这一指令后,将用相应的时钟周期(在加电与初始化之后用512个时钟周期,在退出自刷新操作后用256个时钟周期、在其他情况下用64个时钟周期)对导通电阻和ODT电阻进行重新校准。

      5.参考电压分成两个:在DDR3系统中,对于内存系统工作非常重要的参考电压信号VREF将分为两个信号,即为命令与地址信号服务的VREFCA和为数据总线服务的VREFDQ,这将有效地提高系统数据总线的信噪等级。

      6.点对点连接(Point-to-Point,P2P):这是为了提高系统性能而进行的重要改动,也是DDR3与DDR2的一个关键区别。在DDR3系统中,一个内存控制器只与一个内存通道打交道,而且这个内存通道只能有一个插槽,因此,内存控制器与DDR3内存模组之间是点对点(P2P)的关系(单物理Bank的模组),或者是点对双点(Point-to-two-Point,P22P)的关系(双物理Bank的模组),从而大大地减轻了地址/命令/控制与数据总线的负载。而在内存模组方面,与DDR2的类别相类似,也有标准DIMM(台式PC)、SO-DIMM/Micro-DIMM(笔记本电脑)、FB-DIMM2(服务器)之分,其中第二代FB-DIMM将采用规格更高的AMB2(高级内存缓冲器)。 面向64位构架的DDR3显然在频率和速度上拥有更多的优势,此外,由于DDR3所采用的根据温度自动自刷新、局部自刷新等其它一些功能,在功耗方面DDR3也要出色得多,因此,它可能首先受到移动设备的欢迎,就像最先迎接DDR2内存的不是台式机而是服务器一样。在CPU外频提升最迅速的PC台式机领域,DDR3未来也是一片光明。Intel所推出的新芯片-熊湖(Bear Lake),其将支持DDR3规格,而AMD也预计同时在K9平台上支持DDR2及DDR3两种规格。

      7.逻辑Bank数量:DDR2 SDRAM中有4Bank和8Bank的设计,目的就是为了应对未来大容量芯片的需求。而DDR3很可能将从2Gb容量起步,因此起始的逻辑Bank就是8个,另外还为未来的16个逻辑Bank做好了准备。

      8.封装(Packages):DDR3由于新增了一些功能,所以在引脚方面会有所增加,8bit芯片采用78球FBGA封装,16bit芯片采用96球FBGA封装,而DDR2则有60/68/84球FBGA封装三种规格。并且DDR3必须是绿色封装,不能含有任何有害物质。

      9.降低功耗:DDR3内存在达到高带宽的同时,其功耗反而可以降低,其核心工作电压从DDR2的1.8V降至1.5V,相关数据预测DDR3将比现时DDR2节省30%的功耗,当然发热量我们也不需要担心。就带宽和功耗之间作个平衡,对比现有的DDR2-800产品,DDR3-800、1066及1333的功耗比分别为0.72X、0.83X及0.95X,不但内存带宽大幅提升,功耗表现也比上代更好

      内存技术从SDR,DDR,DDR2,DDR3一路发展而来,传输速度以指数递增,除了晶圆制造工艺的提升因素之外,还因为采用了Double Data Rate以及Prefetch两项技术。实际上,无论是SDR还是DDR或DDR2、DDR3,内存芯片内部的核心时钟频率基本上是保持一致的,都是100MHz到200MHz(某些厂商生产的超频内存除外)。DDR即Double Data Rate技术使数据传输速度较SDR提升了一倍。如下图所示, SDR仅在时钟的上升沿传输数据,而DDR在时钟信号上、下沿同时传输数据。例如同为133MHz时钟,DDR却可以达到266Mb/s的数传速度

     

      Double Data Rate技术使数据外传速度提升了一倍,而芯片内部数据数据传输速度的提升则是通过Prefetch技术实现的。所谓Prefetch简单的说就是在一个内核时钟周期同时寻址多个存储单元并将这些数据以并行的方式统一传输到IO Buffer中,之后以更高的外传速度将IO Buffer中的数据传输出去。这个更高的速度在DDR中就是通过Double Data Rate实现的,也正因为如此,DDR芯片时钟管脚的时钟频率与芯片内部的核心频率是一致的。如下图所示为DDR的Prefetch过程中,在16位的内存芯片中一次将2个16bit数据从内核传输到外部MUX单元,之后分别在Clock信号的上、下沿分两次将这2 x 16bit数据传输给北桥或其他内存控制器,整个过程经历的时间恰好为一个内核时钟周期。

     

      发展到DDR2,芯片内核每次Prefetch  4倍的数据至IO Buffer中,为了进一步提高外传速度,芯片的内核时钟与外部接口时钟(即DDR芯片的Clock管脚时钟)不再是同一时钟,外部Clock时钟频率变为内核时钟的2倍。同理,DDR3每次Prefetch 8倍的数据,其芯片Clock频率为内核频率的4倍,即JEDEC标准(JESD79-3)规定的400MHz至800MHz,再加上在Clock信号上、下跳变沿同时传输数据,DDR3的数据传输速率便达到了800MT/s到1600MT/s。具体到内存条速度,我们以PC3-12800为例,其采用的DDR3-1600(上一小节已经提到过,PC3-12800和DDR3-1600其实是同一意思,只不过PC3-12800指的是DDR的传输带宽为12800MB/s,而DDR3-1600指的是传输频率为1600MHz)芯片核心频率为200MHz,经过Prefetch后在800MHz Clock信号工作频率的双边沿(Double Data Rate)作用下,使芯片的数据传输速率为1600 MT/s,内存条每次传输64比特或者说8字节数据,1600x8便得到12800MB/s的峰值比特率。

      下表列出了JEDEC标准(JESD79-3)规定的DDR3芯片以及内存条相关参数。需要说明的是,如前所述,并不是所有的内存产品都完全遵从JEDEC标准,有些厂家会生产速度更高速的DDR3芯片,一般情况下这些芯片是从芯片检测流程中筛选出来的频率动态范围更大的芯片,或者是可加压超频工作的芯片。

     

    名称

    核心频率

    核心时钟周期

    Clock管脚时钟频率

    数据传输速率

    对应内存条名称

    内存条峰值比特率

    DDR3-800

    100MHz

    10ns

    400MHz

    800MT/s

    PC3-6400

    6400MB/s

    DDR3-1066

    133MHz

    7.5ns

    533MHz

    1066MT/s

    PC3-8500

    8533MB/s

    DDR3-1333

    166MHz

    6ns

    667MHz

    1333MT/s

    PC3-10600

    10667MB/s

    DDR3-1600

    200MHz

    5ns

    800MHz

    1600MT/s

    PC3-12800

    12800MB/s


      注意:Clock管脚时钟频率就是上一小节提到的DDR的工作频率

      最后,在了解了DDR的上面基础知识的前提下,下表列出了不同DDR芯片的相关特性:

    SDRAM器件比较

    条目

    DDR3 SDRAM

    DDR2 SDRAM

    DDR SDRAM

    Clock管脚时钟频率(工作频率)

    400/533/667/800 MHz

    200/266/333/400 MHz

    100/133/166/200 MHz

    数据传输速率

    800/1066/1333/1600 MT/s

    400/533/667/800 MT/s

    200/266/333/400 MT/s

    预取(Prefetch)位宽

    8-bit

    4-bit

    2-bit

    输入时钟类型

    差分时钟

    差分时钟

    差分时钟

    突发长度(Burst Length)

    8, 4(突发突变)

    4,8

    2,4,8

    数据选通信号类型

    差分数据选通

    差分数据选通

    单端数据选通

    电源电压

    1.5V

    1.8V

    2.5V

    数据电平标准

    SSTL_15

    SSTL_18

    SSTL_2

    CAS Latency(CL)

    5,6,7,8,9时钟

    3,4,5时钟

    2,2.5,3时钟

    片内终端电阻(ODT)

    支持

    支持

    不支持

    芯片封装

    FBGA

    FBGA

    TSOP(II)/FBGA/LQFP

     

    四、 DDR3的工作原理

      DDR3的内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格,如下图所示。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)就是逻辑 Bank(Logical Bank,下面简称Bank,与之对应的还有一种叫做物理BANK)。

     

    BANK编号(B)

    列地址(C)

    0

    1

    2

    3

    4

    5

    6

    7

     

     

    (R)

    0

     

     

     

     

     

     

     

     

    1

     

     

     

     

     

     

     

     

    2

     

     

     

     

     

     

     

     

    3

     

     

     

     

     

     

     

     

    4

     

     

     

     

     

     

     

     

    5

     

     

     

     

     

     

     

     

    6

     

     

     

     

     

     

     

     

    7

     

     

     

     

     

     

     

     

     

      DDR3内部的BANK可以看做是一个NxN的一个阵列,B代表Bank编号,C代表列地址编号,R代表行地址编号。如果寻址命令是B1、R2、C6,就能确定地址是图中红格的位置。

      目前DDR3内存芯片基本上都是8个Bank设计,也就是说一共有8个这样的“表格”。寻址的流程也就是先指定Bank地址,再指定行地址,然后指定列地址最终的确寻址单元。

      对DDR3系统而言,还存在物理Bank的概念,这是对内存子系统的一个相关术语,并不针对内存芯片。内存为了保证CPU正常工作,必须一次传输完CPU 在一个传输周期内所需要的数据。而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,单位是bit(位)。控制内存与CPU之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU数据总线的位宽,这个位宽就称为物理Bank(Physical Bank,有的资料称之为Rank)的位宽。目前这个位宽基本为64bit。

      在实际工作中,逻辑Bank地址与相应的行地址是同时发出的,此时这个命令称之为“行激活”(Row Active)。在此之后,将发送列地址寻址命令与具体的操作命令(是读还是写),这两个命令也是同时发出的,所以一般都会以“读/写命令”来表示列寻址。根据相关的标准,从行有效到读/写命令发出之间的间隔被定义为tRCD,即RAS to CAS Delay(RAS至CAS延迟,RAS就是行地址选通脉冲,CAS就是列地址选通脉冲),我们可以理解为行选通周期。tRCD是DDR的一个重要时序参数,广义的tRCD以核心时钟周期(tCK,Clock Time)数为单位,比如tRCD=3,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定。以DDR3-800为例,通过上一节的学习可知,DDR3-800的数据传输频率(等效频率)为800MHz,由于DDR3的预取(Prefetch)位宽为8位,所以核心频率为100MHz(800MHz/8),核心时钟的周期为10ns,如果tRCD=3,则表示延时为30ns。

     

      上图是tRCD=3的时序图,NOP=Not Operation,表示无操作,灰色区域表示Don’t Care。

      接下来,相关的列地址被选中以后,将会触发数据传输,但从存储单元中输出到真正出现在内存芯片的I/O接口之间还需要一定的时间(数据触发本身就有延时,而且还需要进行信号放大),这段时间就是列地址脉冲选通潜伏期(CAS Latency,CL),CL的数值与tRCD一样,以时钟周期数表示。比如DDR3-800的有效频率(传输数据频率)为800MHz,由于DDR3的预取数为8,所以核心频率为100MHz,核心周期为10ns,如果CL=2,那么就意味着列地址脉冲选通潜伏期为20ns。CL只针对读取操作有效。

      由于芯片体积的原因,存储单元中的电容容量很小,所以信号要经过放大来保证其有效的识别性,这个放大/驱动工作由Sense Amplifier负责,一个存储体对应一个Sense Amplifier通道。但它要有一个准备时间才能保证信号的发送强度(事前还要进行电压比较以进行逻辑电平的判断),因此从数据I/O总线上有数据到数据输出之前的一个时钟上升沿开始,数据即已传向Sense Amplifier,也就是说此时数据已经被触发,经过一定的驱动时间最终传向数据I/O总线进行输出,这段时间我们称之为tAC(Access Time from CLK,时钟触发后的访问时间)。

    Sense Amplifier在DDR结构中扮演的角色如下所示

      tAC和CAS的示意图如下图所示

      目前内存的读写基本都是连续的,因为与CPU交换的数据量以一个Cache Line(即CPU内Cache的存储单位)的容量为准,一般为64字节。而现有的Rank位宽为8字节(64bit),那么就要一次连续传输8次,这就涉及到我们也经常能遇到的突发传输的概念。突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输的周期数就是突发长度(Burst Lengths,简称BL)。

      在进行突发传输时,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一组数据的传输需要若干个周期(主要是之前的延迟,一般的是tRCD+CL)外,其后每个数据只需一个周期的即可获得。下图是CAS=2,BL=4时的时序图

     

      突发连续读取模式:只要指定起始列地址与突发长度,后续的寻址与数据的读取自动进行,而只要控制好两段突发读取命令的间隔周期(与BL相同)即可做到连续的突发传输。

      谈到了突发长度时。如果BL=4,那么也就是说一次就传送4×64bit的数据。但是,如果其中的第二组数据是不需要的,怎么办?还都传输吗?为了屏蔽不需要的数据,人们采用了数据掩码(Data I/O Mask,简称DQM)技术。通过DQM,内存可以控制I/O端口取消哪些输出或输入的数据。这里需要强调的是,在读取时,被屏蔽的数据仍然会从存储体传出,只是在“掩码逻辑单元”处被屏蔽。DQM由北桥控制,为了精确屏蔽一个P-Bank位宽中的每个字节,每个DIMM有8个DQM 信号线,每个信号针对一个字节。这样,对于4bit位宽芯片,两个芯片共用一个DQM信号线,对于8bit位宽芯片,一个芯片占用一个DQM信号,而对于 16bit位宽芯片,则需要两个DQM引脚。

      在数据读取完之后,为了腾出读出放大器以供同一Bank内其他行的寻址并传输数据,内存芯片将进行预充电的操作来关闭当前工作行。还是以上面那个Bank示意图为例。当前寻址的存储单元是B1、R2、C6。如果接下来的寻址命令是B1、R2、C4,则不用预充电,因为读出放大器正在为这一行服务。但如果地址命令是B1、R4、C4,由于是同一Bank的不同行,那么就必须要先把R2关闭,才能对R4寻址。从开始关闭现有的工作行,到可以打开新的工作行之间的间隔就是tRP(Row Precharge command Period,行预充电有效周期),单位也是时钟周期数。

      整个充电的步骤如下图所示

      在不同Bank间读写也是这样,先把原来数据写回,再激活新的Bank/Row。

      数据选取脉冲(DQS)

      DQS 是DDR中的重要功能,它的功能主要用来在一个时钟周期内准确的区分出每个传输周期,并便于接收方准确接收数据。每一颗芯片都有一个DQS信号线,它是双向的,在写入时它用来传送由北桥发来的DQS信号,读取时,则由芯片生成DQS向北桥发送。完全可以说,它就是数据的同步信号。

      在读取时,DQS与数据信号同时生成(也是在CK与CK#的交叉点)。而DDR内存中的CL也就是从CAS发出到DQS生成的间隔,DQS生成时,芯片内部的预取已经完毕了,由于预取的原因,实际的数据传出可能会提前于DQS发生(数据提前于DQS传出)。由于是并行传输,DDR内存对tAC也有一定的要求,对于DDR266,tAC的允许范围是±0.75ns,对于DDR333,则是±0.7ns,有关它们的时序图示见前文,其中CL里包含了一段DQS 的导入期。

      DQS 在读取时与数据同步传输,那么接收时也是以DQS的上下沿为准吗?不,如果以DQS的上下沿区分数据周期的危险很大。由于芯片有预取的操作,所以输出时的同步很难控制,只能限制在一定的时间范围内,数据在各I/O端口的出现时间可能有快有慢,会与DQS有一定的间隔,这也就是为什么要有一个tAC规定的原因。而在接收方,一切必须保证同步接收,不能有tAC之类的偏差。这样在写入时,芯片不再自己生成DQS,而以发送方传来的DQS为基准,并相应延后一定的时间,在DQS的中部为数据周期的选取分割点(在读取时分割点就是上下沿),从这里分隔开两个传输周期。这样做的好处是,由于各数据信号都会有一个逻辑电平保持周期,即使发送时不同步,在DQS上下沿时都处于保持周期中,此时数据接收触发的准确性无疑是最高的。

      DDR的写时序的时序图如下图所示

     

      DDR的读时序的时序图如下图所示

      

      由上面的时序图可知,在写时序中,有效数据DQ的正中间正好对应DQS的跳边沿,而在读时序中,有效数据的正中间对应着DQS信号的正中间。

      最后在简单说一说DDR中采用的ODT(On-Die Termination)技术。

      ODT(On-Die Termination),是从DDR2 SDRAM时代开始新增的功能。其允许用户通过读写DDR2/3内部的MR1寄存器,来控制DDR3 SDRAM中各个信号内部终端电阻的连接或者断开。在DDR3 SDRAM中,ODT功能主要应用于:

      1、DQ, DQS, DQS# and DM for X4 configuration

      2、DQ, DQS, DQS#, DM, TDQS and TDQS# for X8 configuration

      3、DQU, DQL, DQSU, DQSU#, DQSL, DQSL#, DMU and DML for X16 configuration

      ODT(On-Die Termination)技术的目的是通过使DDR SDRAM控制器能够独立的打开或者关断DDR内部的终端电阻来提高存储器通道的信号完整性,在DLL关闭模式,ODT功能被禁用。

      一个DDR通道,通常会挂接多个Rank,这些Rank的数据线、地址线等等都是共用;数据信号也就依次传递到每个Rank,到达线路末端的时候,波形会有反射,从而影响到原始信号;因此需要加上终端电阻,吸收余波。之前的DDR,终端电阻做在板子上,但是因为种种原因,效果不是太好,到了DDR2,把终端电阻做到了DDR颗粒内部,也就称为On Die Termination,Die上的终端电阻,Die是硅片的意思,这里也就是DDR颗粒。

      ODT技术具体的内部结构图如下:

      等效结构如下图所示

      ODT终端电阻的电阻值RTT可通过模式寄存器MR1的A9,A6,A2来进行设置,设置的真值表为:

      总的来说,ODT技术有以下三个优点:

      1、去掉了主板上的终结电阻器等电器元件,这样会大大降低主板的制造成本,并且也使主板的设计更加简洁。

      2、由于ODT技术可以迅速的开启和关闭空闲的内存芯片,在很大程度上减少了内存闲置时的功率消耗。

      3、芯片内部终结电阻也要比主板的终端电阻具有更好的信号完整性。这也使得进一步提高DDR2内存的工作频率成为可能。

    五、 总结

      本文大致介绍了DDR3的一些基本信息,总结下来主要有以下几个关键信息是值得关注的。

      1、DDR核心频率,工作频率以及有效频率的关系

      2、DDR采用的预取(Prefetch)技术

      3、DDR的Burst Length(BL)的概念

      4、DDR对一行操作完毕以后如果下一次的操作在不同的行,那么需要有一个预充电(Precharge)的过程

      5、数据掩码(DQM)技术的作用是用来屏蔽不想接收的数据

      6、数据选通信号(DQS)与有效数据的关系

      7、ODT(On-Die Termination)技术可以提高DDR信号完整性

    六、 参考资料

      1、ODT技术:https://blog.csdn.net/weixin_38233274/article/details/81016870

      2、DDR3原理:http://www.360doc.com/content/17/0628/10/43885509_667136417.shtml

      3、DDR3原理:https://wenku.baidu.com/view/95574828d1f34693dbef3e39.html

      4、DDR3原理:https://wenku.baidu.com/view/0b1b0c795fbfc77da369b1b1.html

      5、DDR芯片原理:http://blog.chinaunix.net/uid-20671208-id-4470548.html

      6、DDR传输速率:https://wenku.baidu.com/view/342ed68f360cba1aa811dabf.html

      7、DDR三个频率关系:https://www.cnblogs.com/shengansong/archive/2012/09/01/2666213.html

      8、DDR3三个频率关系:https://electronics.stackexchange.com/questions/134555/why-all-ddrs-ddr-ddr2-ddr3-internal-clock-sets-to-20

    展开全文
  • 计算机之存储器简介

    2021-02-28 22:14:02
    存储器是用来存储程序和各种数据信息记忆部件。按照不同分类标准有许多不同分类。 按在计算机系统中作用分类如下: 存储器一般来说可以分为内部存储器...注意:内存与外存本质区别是,一个是内部运行提供

    存储器是用来存储程序和各种数据信息的记忆部件。按照不同的分类标准有许多不同的分类。
    按在计算机系统中的作用分类如下:


    存储器一般来说可以分为内部存储器(内存),外部存储器(外存),缓冲存储器(缓存)以及闪存这几个大类。
    (1)内存

    内存也称为主存储器,位于系统主机板上,可以同CPU直接进行信息交换。其主要特点是:运行速度快,容量小。
    (2)外存

    外存也称为辅助存储器,不能与CPU之间直接进行信息交换。其主要特点是:存取速度相对内存要慢得多,存储容量大。
    注意:内存与外存本质区别是,一个是内部运行提供缓存和处理的功能,也可以理解为协同处理的通道;而外存主要是针对储存文件、图片、视频、文字等信息的载体,也可以理解为储存空间。

    (3)缓存
    缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。

    (4)闪存
    闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储。),区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存与EEPROM不同的是,EEPROM能在字节水平上进行删除和重写而不是整个芯片擦写,而闪存的大部分芯片需要块擦除。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本程序)、PDA(个人数字助理)、数码相机中保存资料等。

    展开全文
  • 存储器主要分为ROM和RAM,根据图1先来讲讲RAM和ROM,两者相比,最大区别是RAM在断电以后保存在上面数据会自动消失,而ROM不会自动消失,可以长时间断电保存。 图 1 存储器系统分类 2 RAM RAM:随机访问存储器...
  • 8051片有4k ROM,无须外接外存储器和373,更能体现“单片”简练。但是你编程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性,今后你和芯片厂都不能改写其内容。 3、8751特点 8751...
  • 存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据...按用途存储器可分为主存储器(内存)和辅助存储器(存),也有分为外部存储器和内部存储器的分类方法。 存通常是磁性介质或光盘等,能长期保存信
  • 计算机内存、存、主存、辅存

    千次阅读 2017-10-01 16:27:50
    存储器是计算机重要组成部分,用于存储程序数据,可分为:计算机内部存储器(内存储器,简称内存)、计算机外部存储器(外存储器,简称外存)一般来说,主存指是内存;但是在一些专业性较强场合,主存...
  • 数据结构算法系列3 ...内存(Memory)也称内存储器和主存储器,它用于暂时存放CPU中运算数据,硬盘等外部存储器交换数据。只要计算机开始运行,操作系统就会把需要运算数据从内存调到CPU中进
  • FLASHE²PROM的区别

    千次阅读 2018-03-16 15:52:43
    在传统单片机系统中,一般是在片扩展存储器,单片机与存储器之间通过IIC 或SPI 等接口来进行数据通信。这样不光会增加开发成本,同时在程序开发上也要花更多心思。在STC 单片机中内置了EEPROM...
  • 内存是电脑中的主要器件,它是相对于存而言的,而这就引出了,内存硬盘的区别。内存硬盘的区别:内存就是“内存”(好像是废话),而硬盘就是“存”,区别就出来了。内存应当是计算机内部(在主板上)的一些...
  •  8051片有4k ROM,无须外接外存储器和373,更能体现“单片”简练。但是你编程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性,今后你和芯片厂都不能改写其内容。  3
  • AHBVPB的区别

    千次阅读 2008-09-14 17:47:00
    Peripheral Bus)——超大规模集成电路接口总线LPC2106/2105/2104 包含一个支持仿真ARM7TDMI-SCPU、内存储器控制器接口ARM7 局部总线、中断控制器接口AMBA 高性能总线(AHB)和连接片内外设功能VLSI...
  • 【stm32】FLASHE²PROM的区别

    千次阅读 2018-09-11 10:15:59
    在传统单片机系统中,一般是在片扩展存储器,单片机与存储器之间通过IIC 或SPI 等接口来进行数据通信。这样不光会增加开发成本,同时在程序开发上也要花更多心思。在STC 单片机中内置了EEPROM(其实是采用IA.....
  • 在8031、8051、8751、89C51、89S51的区别与特点介绍:  8031/8051/8751是Intel公司早期的产品。  8031的特点  8031片不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器...
  • 存储器的种类很多,按其用途可分为主存储器和辅助存储器,主存储器又称内存储器(简称内存),辅助存储器又称外存储器(简称外存)。外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,并且不...
  • 一个数 字信号处理器在一块不大芯片包括有控制单元、运算单元、各种寄存器以及一定数量存储单元等等,在其外围还可以连接若干存储器,并可以一定数量的外 部设备互相通信,有软、硬件全面功能,本身就是一...
  •  8051片有4k ROM,无须外接外存储器和373,更能体现“单片”简练。但是你编程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是性,今后你和芯片厂都不能改写其内容。  3、8
  • RAM和ROM的区别

    2013-12-04 08:46:19
    ROM和RAM是计算机内存储器的两种型号,ROM表示的是只读存储器,即:它只能读出信息,不能写入信息,计算机关闭电源后其内的信息仍旧保存,一般用它存储固定的系统软件和字库等。RAM表示的是读写存储器,可其中的任一...
  • 参考答案D 分析内外存储器的区别并不在于其物理位置的不同实际上PC机的硬盘和光驱往往都安装在机箱内部因此选项A是错误的选项BC和D都描述了内存储器外存储器的不同之处但只有D才是两类存储器的本质区别由于...
  • MOV,MOVX,MOVC区别和用法

    2020-05-26 14:16:10
    MOV: 单片机内部的寄存器或者存储器之间相互传递数据(内部RAM); MOVX: 单片机内部的A累加器与片的数据存储器(片RAM)传送数据. ...片数据存储器与数据存储器的地址部分(0000H-00F
  • 转载:https://blog.csdn.net/szupjz/article/details/51842242 随机存取存储器(random access memory,RAM)又称作“随机...,是CPU直接交换数据内部存储器...
  • 从数据存储类型来说,8051系列有片、片程序存储器,片、片数据存储器,片程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定pdata类型,使用不同...
  • AHB和VPB的区别

    2010-03-02 23:05:00
    Peripheral Bus)——超大规模集成电路接口总线 LPC2106/2105/2104 包含一个支持仿真ARM7TDMI-S CPU、内存储器控制器接口ARM7 局部总线、中断控制器接口AMBA 高性能总线(AHB)和连接片内外设功能VLSI...
  • 从数据存储类型来说,8051系列有片、片程序存储器,片、片数据存储器,片程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定pdata类型,使用不同...
  • 本文将从硬件入手,到解释龙芯1B开发板启动时的参数设置相关问题。 首先简单介绍一个存储器的相关知识,重点在存储器的...外存储器和内存的区别在于,外存储器在断电重启后,存储的数据不会丢失,而内存会丢失。 之...
  • 51系列中data,idata,xdata,pdata的区别

    千次阅读 2012-11-19 12:32:29
    从数据存储类型来说,8051系列有片、片程序存储器,片、片数据存储器,片程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定pdata类型,使用不同...

空空如也

空空如也

1 2 3 4 5 6
收藏数 102
精华内容 40
关键字:

内存储器与外存储器的区别