DRAM内存原理(二)结构和功能
来源:互联网 发布:行知职高新疆部 编辑:程序博客网 时间:2024/05/19 22:03
内存最基本的单位是内存“细胞”——也就是我们前面展示给大家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片)。
Memory Array:内存阵
每一个内存bank都有一个传感放大器(sense ampplifier),用来放大从基本单元读出(或者写入)内容时电荷。传感放大器根据从芯片组发送来的行地址读出相应的数据,这个读出过程需要一定的时间这就是RAS到CAS的延迟,简称TRCD。不同质量的SDRAM的TRCD需要2或者3个周期。
现在我们已经有了正确的行地址,不过还不知道确切的到那个基本单元去获得信息。CAS延迟时间就是内存用于取得正确的列地址所需要的时间。CAS延迟时间一般时2或者3个时钟周期。
然后内存基本单元就把信号发送到DIMM的输出缓存,这样芯片组就可以读取它们了。现在我们有了前8个字节的内容,以及在传感放大器中有了正确的行地址,等到下面的24个字节的过程就简单了。这时就由内部计数器负责把下一个列地址的内存基本单元的内容发送到DIMM的输出缓存当中。这样每个时钟周期都有8个字节传送到输出缓存中,这种模式就叫做“突发模式”。
可见,主内存的延迟时间(也就是所谓的潜伏期,从FSB到DRAM)等于下列时间的综合:
可以看出,一个真正的PC100的SDRAM CAS=2)的内存取得最前八个字节的时间是9个时钟周期,而另外24个字节只是需要3个时钟周期,这样PC100的SDRAM取得32个字节的数据只是需要12个时钟周期。
对于同样的情况,也就是当二级缓存未命中的时候,CPU从内存取得数据所需要的延迟时间需要用如下方法计算:CPU倍频×内存延迟时间=CPU延迟时间。如果500MHZ(5×100MHz)的CPU需要5×9个延迟周期。也就是说如果二级缓存没有命中,CPU需要45个时钟中期才能得到新的数据。
通过以上的介绍,我们已经理解的DRAM工作的基本原理,下面让我们了解一下决定RAM技术速度的因素。
究竟是什么决定DRAM速度?SDRAM是多bank结构,芯片组可以保持一部分曾经访问过的Bank的行地址,也就是说保持一部分已经被打开的“页面”。如果需要访问的数据在同一列中,那么芯片组不需要等待传感器进行变换——这种情况就叫做页面命中。这时RAS到CAS延迟时间就是0个时钟周期,只需要经过CAS延迟就能在内存缓冲调入正确数据。所以,页面命中就意味着我们只需要等待列地址的确立,就能得到需要的数据了。不过有的情况下,芯片组请求的内存页面不是处于打开的状态,这就叫做页面失效。在这种情况下,RAS到CAS延迟时间将是2或者3时钟周期(根据内存的品质不同而不同)。这种情况就是前面我们讨论过的情形。如果芯片组已经保持了某一个Bank的某一个行地址,也就是在某一个bank已经打开了一个页面,而请求的数据是位于同一个bank的不同行地址的数据,这种情况是最糟糕的。这样就意味着传感放大器需要首先回写旧的行地址,然后再转换新的行地址。回写旧的行地址所占用的时间叫做“预转换时间”(Precharge time),当遇到这种情况时,是最坏的情况。
DEVICE_WIDTH表示设备的带宽(单位为Bit),每个列(COLUMN)表示为DEVICE_WIDTH位(bit),每一行(ROW)有NUM_COLS个COLUMN。每一个BANK包含NUM_ROWS个行,所以一个DEVICE的容量PER_DEVICE_STORAGE=NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUMBANKS。一个RANK的容量为64bit。所以一个RANK必须有device的个数为NUM_DEVICES_PER_RANK=64/DEVICE_WIDTH。这样我们算在一起,得出一个RANK的大小为PER_RANK_STORAGE= PER_DEVICE_STORAGE*NUM_DEVICES_PER_RANK=NUM_ROWS*NUM_COLS*DEVICE_WIDTH*NUMBANKS* NUM_DEVICES_PER_RANK=NUM_DEVICES_PER_RANK
- DRAM内存原理(二)结构和功能
- DRAM内存原理(一)内存基础
- DRAM内存原理(三)带宽问题
- DRAM 内存原理
- DRAM内存原理(四)同步内存和异步内存技术
- DRAM内存原理(五)内存管理单元MMU
- 内存(DRAM)的工作原理及时序介绍
- DRAM(二)
- DRAM的结构之概括(一)
- 内存的物理结构和工作原理
- Objective-C内存管理教程和原理剖析(二)
- LSI推多核PowerPC和高速嵌入式DRAM内存模块
- 计算机组成原理(第八章: CPU的结构和功能)
- 内存分配(二)windows进程中的内存结构
- PCM与DRAM混合内存
- PCM与DRAM混合内存
- SRAM和DRAM区别
- DRAM和SRAM特征
- MATLAB Linear Algebra 读书笔记
- 使用SOAP访问Web服务
- 清除并发请求或者管理器数据程序
- 第13章 视图
- telnet自动登录路批处理
- DRAM内存原理(二)结构和功能
- 第279天(29W+2)
- 技术分享-Log4net日志配置
- U-boot第二阶段分析
- 一些认识
- eclipse新建JAVA项目导入web项目
- EBS系统请求表定时清除
- 3D语音天气球(源码分享)——创建可旋转的3D球
- 最常见的5个导致 RAC 实例崩溃的问题 (Doc ID 1549191.1)