欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

内存基础知识专题

程序员文章站 2022-03-17 15:45:39
内存基础知识专题计算机是由哪几部分组成的呢?简单的说,一个完整的计算机系统是由软件和硬件组成的。其中,硬件部分由*处理单元(运算器和控制器)、存储器和输入/输出设备构成。这次我们要谈的... 10-09-08...
计算机是由哪几部分组成的呢?简单的说,一个完整的计算机系统是由软件和硬件组成的。其中,硬件部分由*处理单元(运算器和控制器)、存储器和输入/输出设备构成。这次我们要谈的是存储器方面的内容。
  先给大家看三句话:
  a. 我的pc 有1gb的内存。
  b. 我的pc 有5gb的存储器。
  c. 我的pc 有5gb 的内存。
  唔,有似曾相识的感觉。没错,这是某个笑话的三种表达方式,但只有其中的一个可以认为是真正的笑话。到底是哪一个呢?先说a,如果有钱,给自己的电脑插上1gb的内存是可能的;而b,既然说是存储器,也可以包括硬盘了,话说的滴水不漏,也没留下笑柄;最后到c,因为目前个人电脑上使用的主板一般只能支持到1gb的内存,即使是intel目前最高阶的450nx芯片组也只能支持到4gb--所以,用5gb的内存是胡扯的啦。
现在我们可以知道的一点是:存储器包括主存和辅存。主存具有速度快、价格高、容量小的特点,负责直接与cpu交换指令和数据。辅存速度慢、价格低、容量大,可以用来保存程序和数据。常见的辅存如硬盘、软盘等,而现在的主存一般就是指半导体集成电路存储器了。那主存和内存有什么关系呢?可以这么认为:主存就是广义的内存。
  广义的内存分为随机存储器(ram,random access memory)和只读存储器(rom,read only memory)。
一、 ram
  ram是指通过指令可以随机的、个别的对各个存储单元进行访问的存储器,一般访问时间基本固定,而与存储单元地址无关。ram的速度比较快,但其保存的信息需要电力支持,一旦丢失供电即数据消失,所以又叫易失性存储器,还有一种很有趣的叫法是"挥发性存储器",当然这里"挥发"掉的是数据而不是物理上的芯片。
  ram又分动态存储器(dram,dynamic ram)和静态存储器(sram,static ram)。sram是利用双稳态触发器来保存信息的,只要不断电,信息是不会丢失的,所以谓之静态;dram利用mos (金属氧化物半导体)电容存储电荷来储存信息,大家都知道,电容是会漏电的,所以必须通过不停的给电容充电来维持信息,这个充电的过程叫再生或刷新(refresh)。由于电容的充放电是需要相对较长的时间的,dram的速度要慢于sram。但sram免刷新的优点需要较复杂的电路支持,如一个典型的sram的存储单元需要六个晶体管(三极管)构成,而dram的一个存储单元最初需要三个晶体管和一个电容,后来经过改进,就只需要一个晶体管和一个电容了。由此可见,dram的成本、集成度、功耗等明显优于sram。
  (一) dram
  dram就是我们常说的内存,这显然就是狭义的内存概念了。后面我们说的内存也是这个狭义的概念--dram。常见的dram有许多规格,如fpm dram 、edo dram、bedo dram、sdram、ddr sdram、sldram、rdram、direct rdram等。
  1. fpm dram(fast page mode dram,快速页模式dram)
  传统的dram在存取一个bit的数据时,必须送出行地址和列地址各一次才能读写数据。frm dram对此做了改进,在触发了行地址后,如果cpu需要的地址在同一行内,则可以连续输出列地址而不必再输出行地址了。由于一般的程序和数据在内存中排列的地址是连续的,这种情况下输出行地址后连续输出列地址就可以得到所需要的数据。因此fpm dram的设计可以提高内存的传输速率。在96年以前,在486时代和pentium时代的初期,fpm dram被大量使用。
  2. edo dram(extended data out dram,扩充数据输出dram)
  传统的dram和fpm dram 在存取每一bit 数据时必须输出行地址和列地址并使其稳定一段时间,然后才能读写有效的数据。而下一个bit的地址必须等待这次读写操作完成才能输出。edo dram对fpm dram 的改进主要是缩短等待输出地址的时间。edo dram不必等待资料的读写操作是否完成,只要规定的有效时间一到就可以准备输出下一个地址,由此可以减小等待时间。从另一个角度说,edo dram 在读写数据的同时进行下一地址的准备工作,提高了工作效率。后期的486系统开始支持edo dram,到96年后期,edo dram开始执行。
  3. bedo dram (burst edo dram ,突发式edo dram)
  bedo dram是突发式的读取方式,也就是当一个数据地址被送出后,剩下的三个数据每一个都只需要一个周期就能读取。bedo 的主要加强之处是在芯片上增加了一个地址计数器来追踪下一个地址。bedo dram可以一次存取一批数据而edo dram只能存取一组数据,所以bedo dram比edo dram更快。但bedo dram 在内存市场上只是昙花一现,只有很少的主板支持(如via apollo vp2),很快就被dram替代了。
  4. sdram(synchronous dram)
  sdram 的最大特点就是可以与cpu的外频同步,可以取消等待周期,减少了数据传输的延迟。而此前的dram 都使用异步方式工作,由于没有与系统的外频同步,在存取数据时,系统必须等待若干时序才能接受和送出数据,如sdram可以使存储器控制器知道在哪一个时钟脉冲周期使数据请求使能,因此数据可在脉冲沿来到之前便开始传输,而edo dram每隔2时钟才开始传输,fpm dram每隔3个时钟脉冲周期才开始传输,从而制约了传输率。当cpu的频率越来越高后,异步dram的数据传输率就成为系统的瓶颈,而且,随着频率的提高,异步dram与sdram的性能差距会越来越大。
  对dram而言,除了容量,最重要的指标就是速度了。一般fpm dram和edo dram的速度在0~70ns之间,sdram的速度在10 ns左右。由于sdram的工作速度与系统的外频保持一致,所以sdram的速度标识可以换算成工作频率,如100 ns的sdram的频率是1 s/10 ns=100 mhz,同理,8 ns的sdram的工作频率是125 mhz,12 ns的sdram 的工作频率是83 mhz,15ns的sdram的工作频率是66 mhz。由于目前流行的是pc100的sdram,读者在采购内存时绝大多数希望选购符合pc100规范的sdram。pc100规格非常复杂,我们应该了解的部分主要是内存条上应带spd,内存工作频率为100 mhz时,cl应为2或3个clk,最好为2 clk,tac必须不超过6 ns等。
  除了以上pc100规范要求的一些性能指标外,一个真正的发烧友还应该关心一下sdram芯片其他几个很重要的指标:如芯片的输出位宽、功耗(电压)等,因为这些指标也决定了内存的超频潜力--给内存超频的时候还是很多的,即使不超频,性能好的内存也意味着更高的稳定裕度和更好的升级潜力。
  (二) sram
  sram的速度快但昂贵,一般用小容量的sram作为更高速cpu和较低速dram 之间的缓存(cache).sram也有许多种,如asyncsram (asynchronous sram,异步sram)、sync sram (synchronous sram,同步sram)、pbsram (pipelined burst sram,管道突发sram),还有intel没有公布细节的csram等。