存储器原理.doc

存储器原理

RAM、ROM、FLASH的存储原理及区别 一、RAM(Random Access Memory )随机存取存储器,主要作用是存储代码和数据供CPU 需要时调用。这些数据的存储并不像用袋子盛米那般,更像是图书馆中用有格子的书架存放书籍一样,不但要放进去还要能够在需要的时候准确的调用出来。对于RAM 等存储器原理类似,虽然存储的都是代表0 和1 的代码,但不同的组合即成为不同的数据。如果有一个书架有10 行和10 列格子(每行和每列都有0-9 的编号),有100 本书要存放在里面,那么我们根据行和列的编号就能确定某一本书的位置。如已知某本书的编号87,那么我们可首先锁定第8 行,然后找到第7 列就能准确的找到这本书了。RAM 存储器的存储原理与之类似。在RAM 存储器中,数据总线用来实现数据的输入和输出。存储器中的存储空间如前面提到的存放图书的书架一样通过规则定义,我们可根据此规则来把数据存放到存储器上相应位置,对数据的定位则通过地址总线实现。   对于CPU 而言,RAM 就象是一条长长的有很多空格的细线,每个空格都有一个唯一的地址与之相对应。如果CPU 想要从RAM 中调用数据,它首先需要给地址总线发送要存取数据的地址信息,然后等待若干个时钟周期之后,数据总线就会把数据传送给CPU。以下为数据读取示意图。  ?   图中的小园点代表RAM 中的存储空间,每个存储空间都有一个唯一的地址线同它相连。当地址解码器接收到地址总线送来的地址数据之后,它会据此定位CPU 想要调用的数据存储位置,然后通过数据总线将其中的数据传送到CPU。 如果RAM 对于CPU 来说仅仅是一条“线”的话,还不能体现实际的运行情况。如果实际情况即是如此,在实际制造芯片的时候,会有很多实际的困难,特别是在需要设计大容量的RAM 的时候。一种更好的能够降低成本的方法是让存储信息的“空格”排列为很多行,每个“空格”对应一个bit 存储的位置。这样,如果要存储1024bits 的数据,只需使用32x32 的矩阵即可。一个32x32 的矩阵显然比一个1024bit 的行设备更紧凑,实现起来也更容易。如下图所示。     ? 对于X86 处理器,它通过地址总线发出一个具有22 位二进制数字的地址编码,其中11 位是行地址,另外11 位是列地址,其通过RAM 地址接口进行分离。行地址解码器(row decoder)会首先确定行地址,然后列地址解码器(column decoder)将确定列地址,这样就能确定唯一的存储数据的位置,然后该数据就会通过RAM 数据接口将数据传到数据总线。       ? 二、SRAM 是“static RAM(静态随机存储器)”的简称,数据存入其中后,掉电后亦不会丢失。一个SRAM 单元通常由4-6 只晶体管组成,当这个SRAM 单元被赋予0 或1 的状态之后,它会保持这个状态直到下次被赋予新的状态或者断电之后才会更改或者消失。SRAM 的速度相对比较快且比较省电,但存储1bit 的信息需要4-6 只晶体管导致制造成本太高了。   早期的SRAM 芯片采用了20 线双列直插(DIP:Dual Inline Package)封装技术,它们之所以具有这么多的针脚,是因为它们必须:   1) 每个地址信号都需要一根信号线;   2) 一根数据输入线和一根数据输出线;   3) 部分控制线(Write Enable, Chip Select);   4) 地线和电源线。      下面是一个16K x 1-bit SRAM 芯片的针脚功能示意图。     1) A0-A13 是地址输入信号引脚;   2) /CS 是芯片选择引脚,在一个实际的系统中,一般具有很多片SRAM 芯片,所以需要选择究竟从那一片SRAM 芯片中写入或者读取数据;   3) /WE 是写入启用引脚,当SRAM 得到一个地址之后,它需要知道进行什么操作,究竟是写入还是读取,/WE 就是告诉SRAM 要写入数据;   4) Vcc 是供电引脚;   5) Din 是数据输入引脚;   6) Dout 是数据输出引脚;   7) GND 是接地引脚; 8) Output Enable(OE),有的SRAM 芯片中也有这个引脚,但是上面的图中并没有,这个引脚同/WE 引脚的功能是相对的,它是让SRAM 知道要进行读取操作而不是写入操作。 从Dout 引脚读取1bit 数据的步骤如下:   1) 通过地址总线把要读取的bit 的地址传送到相应的读取地址引脚,这个时候/WE 引脚没有激活,因此不应执行写入操作;   2) 激活/CS,选择SRAM 芯片;   3) 激活/OE 引脚,让SRAM 知道是读取操作;   第三步之后,要读取的数据就会从DOut 引脚传输到数据总线。写入1

文档评论(0)

1亿VIP精品文档

相关文档