资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
内存工作原理1、内存寻址。首先,内存从 CPU 获得查找某个数据的指令,然后再找出存取资料的位置时(这个动作称为“寻址”),它先定出横坐标(也就是“列地址”)再定出纵坐标(也就是“行地址”),这就好像在地图上画个十字标记一样,非常准确地定出这个地方。对于电脑系统而言,找出这个地方时还必须确定是否位置正确,因此电脑还必须判读该地址的信号,横坐标有横坐标的信号(也就是 RAS 信号,Row Address Strobe)纵坐标有纵坐标的信号(也就是CAS 信号,Column Address Strobe),最后再进行读或写的动作。因此,内存在读写时至少必须有五个步骤:分别是画个十字(内有 定地址两个操作以及 判读地址两个信号,共四个操作)以及或读或写的操作,才能完成内存的存取操作。 2、内存传输。 为了储存资料,或者是从内存内部读取资料,CPU 都会为这些读取或写入的资料编上地址(也就是我们所说的十字寻址方式),这个时候,CPU 会通过地址总线(Address Bus)将地址送到内存,然后数据总线(Data Bus)就会把对应的正确数据送往微处理器,传回去给 CPU 使用。 3、存取时间。所谓存取时间,指的是 CPU 读或写内存内资料的过程时间,也称为总线循环(bus cycle)。以读取为例,从 CPU 发出指令给内存时,便会要求内存取用特定地址的特定资料,内存响应 CPU 后便会将 CPU 所需要的资料送给 CPU,一直到 CPU 收到数据为止,便成为一个读取的流程。因此,这整个过程简单地说便是 CPU 给出读取指令,内存回复指令,并丢出资料给 CPU 的过程。我们常说的 6ns(纳秒,秒9)就是指上述的过程所花费的时间,而 ns 便是计算运算过程的时间单位。我们平时习惯用存取时间的倒数来表示速度,比如 6ns 的内存实际频率为 16ns166MHz(如果是 DDR 就标DDR333,DDR2 就标 DDR2 667)。 4、内存延迟。内存的延迟时间(也就是所谓的潜伏期,从 FSB 到 DRAM)等于下列时间的综合:FSB 同主板芯片组之间的延迟时间(1 个时钟周期),芯片组同 DRAM 之间的延迟时间(1 个时钟周期),RAS 到 CAS 延迟时间:RAS(2-3 个时钟周期,用于决定正确的行地址),CAS 延迟时间 (2-3 时钟周期,用于决定正确的列地址),另外还需要 1 个时钟周期来传送数据,数据从DRAM 输出缓存通过芯片组到 CPU 的延迟时间(2 个时钟周期)。一般的说明内存延迟涉及四个参数 CAS(Column Address Strobe 行地址控制器)延迟,RAS(Row Address Strobe 列地址控制器)toCAS 延迟,RAS Precharge(RAS 预冲电压)延迟,Act-to-Precharge(相对于时钟下沿的数据读取时间)延迟。其中 CAS 延迟比较重要,它反映了内存从接受指令到完成传输结果的过程中的延迟。大家平时见到的数据 3336 中,第一参数就是 CAS 延迟(CL3)。当然,延迟越小速度越快。 内存基础内存基础 不管你信不信,RDRAM(Rambus)、DDR SDRAM 甚至是 EDO RAM 它们在本质上讲是一样的。RDRAM、DDR RAM、SDRAM、EDO RAM 都属于 DRAM(Dynamic RAM),即动态内存。所有的 DRAM 基本单位都是由一个晶体管和一个电容器组成。请看下图:上图只是 DRAM 一个基本单位的结构示意图:电容器的状态决定了这个DRAM 单位的逻辑状态是 1 还是 0,但是电容的被利用的这个特性也是它的缺点。一个电容器可以存储一定量的电子或者是电荷,一个充电的电容器在数字电子中被认为是逻辑上的 1,而“空”的电容器则是 0。电容器不能持久的保持储存的电荷,所以内存需要不断定时刷新,才能保持暂存的数据。电容器可以由电流来充电,当然这个电流是有一定限制的,否则会把电容击穿。同时电容的充放电需要一定的时间,虽然对于内存基本单位中的电容这个时间很短,只有大约 0.20.18 微秒,但是这个期间内存是不能执行存取操作的。DRAM 制造商的一些资料中显示,内存至少要每 64ms 刷新一次,这也就意味着内存有 1的时间要用来刷新。内存的自动刷新对于内存厂商来说不是一个难题,而关键在于当对内存单元进行读取操作时保持内存的内容不变,所以 DRAM 单元每次读取操作之后都要进行刷新,执行一次回写操作,因为读取操作也会破坏内存中的电荷,也就是说对于内存中存储的数据是具有破坏性的。所以内存不但要每 64ms 刷新一次,每次读操作之后也要刷新一次,这样就增加了存取操作的周期,当然潜伏期也就越长。SRAM,静态(Static)RAM 不存在刷新的问题,一个 SRAM 基本单元包括 4个晶体管和 2 个电阻。它不是通过利用电容充放电的特性来存储数据,而是利用设置晶体管的状态来决定逻辑状态,同 CPU 中的逻辑状态一样。读取操作对于 SRAM 不是破坏性的,所以 SRAM 不存在刷新的问题。SRAM 不但可以运行在比 DRAM 高的时钟频率上,而且潜伏期比 DRAM 短的多。SRAM 仅仅需要 2 到 3 个时钟周期就能从 CPU 缓存调入需要的数据,而DRAM 却需要 3 到 9 个时钟周期(这里我们忽略了信号在 CPU、芯片组和内存控制电路之间传输的时间)。前面也提到了,SRAM 需要的晶体管的数目是 DRAM 的 4 倍,也就是说成本比 DRAM 高至少是 4 倍,在目前的售价 SRAM 每 M 价格大约是 DRAM 的 8 倍,是RAMBUS 内存的 2 到 3 倍。不过它的极短的潜伏期和高速的时钟频率的确可以带来更高的带宽。结构和功能结构和功能(SDRAM)(SDRAM)内存最基本的单位是内存“细胞”,也就是我们前面展示给大家 DRAM 基本单元示意图所示的部分,下面我们对这个部分通称为 DRAM 基本单元。每个 DRAM 基本单元代表一个“位”:Bit(也就是一个比特),并且有一个由列地址和行地址定义的唯一地址。8 个比特组成一个字节,它可代表 256 种组合(即 2 的八次幂),字节是内存中最小的可寻址单元。DRAM 基本单元不能被单独寻址,否则现在的内存将会更加复杂,而且也没有必要。很多 DRAM 基本单元连接到同一个列线(Row line)和同一个行线(Column line),组成了一个矩阵结构,这个矩阵结构就是一个 Bank。大部分的 SDRAM 芯片由 4 个 Bank 组成,而 SDRAM DIMM (Dual Inline Memory Module 双列直插式)可能由 8 或者 16 个芯片组成。SDRAM DIMM 有 14 条地址线和 64 bit 数据线(如果一个 DIMM 内存使用8bit SDRAM 芯片,那么你应该在内存条上看到 8 个芯片,当然有的 DIMM 使用4 bit SDRAM 芯片,那么你将会在内存条上看到 16 片)。以下是对插图的注释:Row Address Buffer: 行地址缓冲 Column Address Buffer:列地址缓冲 Row DECODER:行解码器 Column DECODER:列解码器 Memory Array: 内存阵列SENSE AMP:传感放大器由上图可见一个 Bank 由内存阵列、sense amp、一个行解码器、一个列解码器组成。如果要理解内存 Bank 内部工作状况,让我们看看当缓存没有命中后 CPU从系统主内存中调用数据的情况。 CPU 需要依次读取一个 32 字节的数据,首先向芯片组发出请求,这通常需要一个时钟周期芯片组将通过 14 条列地址线发送一个行地址,也就是这个行地址被发送到 DIMM 所有的芯片上。拥有相同行地址的行被成为一个页面。换句话说,当芯片组向 DIMM 发送行地址后,就打开了 DIMM 上一个页面。 每一个内存 bank 都有一个传感放大器(sense ampplifier),用来放大从基本单元读出(或者写入)内容时电荷。传感放大器根据从芯片组发送来的行地址读出相应的数据,这个读出过程需要一定的时间这就是 RAS 到 CAS 的延迟,简称 TRCD。不同质量的 SDRAM 的 TRCD 需要 2 或者 3 个周期。现在我们已经有了正确的行地址,不过还不知道确切的到那个基本单元去获得信息。CAS 延迟时间就是内存用于取得正确的列地址所需要的时间。CAS 延迟时间一般时 2 或者 3 个时钟周期。 然后内存基本单元就把信号发送到 DIMM 的输出缓存,这样芯片组就可以读取它们了。现在我们有了前 8 个字节的内容,以及在传感放大器中有了正确的行地址,等到下面的 24 个字节的过程就简单了。这时就由内部计数器负责把下一个列地址的内存基本单元的内容发送到DIMM 的输出缓存当中。这样每个时钟周期都有 8 个字节传送到输出缓存中,这种模式就叫做“突发模式”。 可见,主内存的延迟时间(也就是所谓的潜伏期,从 FSB 到 DRAM)等于下列时间的综合: FSB 同 主板芯片组 之间的延迟时间: +/- 1 个时钟周期 芯片组 同 DRAM 之间的延迟时间: +/- 1 个时钟周期 RAS 到 CAS 延迟时间: RCD(2-3 个时钟周期,用于决定正确的行地址) CAS 延迟时间: 2-3 时钟周期,用于决定正确的列地址另外还需要 1 个时钟周期来传送数据 数据从 DRAM 输出缓存通过芯片组到 CPU 的延迟时间: +/- 2 个时钟周期 可以看出,一个真正的 PC100 的 SDRAM (CAS2)的内存取得最前八个字节的时间是 9 个时钟周期,而另外 24 个字节只是需要 3 个时钟周期,这样PC100 的 SDRAM 取得 32 个字节的数据只是需要 12 个时钟周期。 对于同样的情况,也就是当二级缓存未命中的时候,CPU 从内存取得数据所需要的延迟时间需要用如下方法计算:CPU 倍频 内存延迟时间 CPU延迟时间。如果 500MHZ(5100MHz)的 CPU 需要 59 个延迟周期。也就是说如果二级缓存没有命中,CPU 需要 45 个时钟周期才能得到新的数据。 通过以上的介绍,我们已经理解的 DRAM 工作的基本原理,下面让我们了解一下决定 RAM 技术速度的因素。 还是延迟时间。 究竟是什么决定 DRAM 速度? SDRAM 是多 bank 结构,芯片组可以保持一部分曾经访问过的 Bank 的行地址,也就是说保持一部分已经被打开的“页面”。 如果需要访问的数据在同一行中,那么芯片组不需要等待传感器进行变换,这种情况就叫做页面命中。这时 RAS 到 CAS 延迟时间就是 0 个时钟周期,只需要经过 CAS 延迟就能在内存缓冲调入正确数据。所以,页面命中就意味着我们只需要等待列地址的确立,就能得到需要的数据了。不过有的情况下,芯片组请求的内存页面不是处于打开的状态,这就叫做页面失效。在这种情况下,RAS 到 CAS 延迟时间将是 2 或者 3 时钟周期(根据内存的品质不同而不同)。这种情况就是前面我们讨论过的情形。如果芯片组已经保持了某一个 Bank 的某一个行地址,也就是在某一个bank 已经打开了一个页面,而请求的数据是位于同一个 bank 的不同行地址的数据,这种情况是最糟糕的。这样就意味着传感放大器需要首先回写旧的行地址,然后再转换新的行地址。回写旧的行地址所占用的时间叫做“预转换时间”(Precharge time)。当遇到这种情况时,是最坏的情况。带宽问题带宽问题 要理解延迟时间和带宽之间的联系,我们以 PC100 SDRAM-222 为例来说明。第一个 2 代表 CAS 延迟时间是 2 个时钟周期,第二个 2 表示 RAS 到 CAS 延迟时间,第三个 2 代表预转换时间。我们假设不同类型的延迟。在这个例子中我们假设发生了缓存页面失效,CPU 等待调入新的需要
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号