一、内存的定义
内存是内部存储器的简称,也称作主存储器。
二、内存的分类
广义上内存主要分类三大类:
- 只读存储器(ROM)
ROM表示只读存储器(Read Only Memory),在制造ROM的时候,信息(数据或程序)就被存入并永久保存。这些信息只能读出,一般不能写入,即使机器停电,这些数据也不会丢失。ROM一般用于存放计算机的基本程序和数据,如BIOS ROM。
- 随机存储器(RAM)
随机存储器(Random Access Memory)表示既可以从中读取数据,也可以写入数据。当机器电源关闭时,存于其中的数据就会丢失。 其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。通常我们所说的内存是狭义上的内存,也就是RAM。
随机存储器又分为两类:DRAM(Dynamic RAM):动态随机存储器 ,SRAM(Static RAM):静态随机存储器
动态是指需要不断的刷新来保证数据不丢失;
静态不需要刷新电路即能保存它内部存储的数据。
DRAM又有好多代,譬如最早的SDRAM(Sychronous Dynamic RAM),后来的DDR1、DDR2·····、LPDDR
note:
DDR=Double Data Rate双倍速率同步动态随机存储器。严格的说DDR应该叫DDR SDRAM,人们习惯称为DDR,其中,SDRAM 是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。
- 高速缓冲存储器(Cache)
Cache也是我们经常遇到的概念,也就是平常看到的一级缓存(L1 Cache)、二级缓存(L2 Cache)、三级缓存(L3 Cache)这些数据,是一个读写速度比内存条更快的存储器。
三、内存的位宽
内存位宽是在一个时钟周期内所能传送数据的位数,位数越大则瞬间所能传输的数据量越大。
从硬件角度讲:硬件内存的实现本身是有宽度的,单个内存颗粒的位宽仅有4bit、8bit或16bit,个别也有32bit的。那么需要强调的是内存芯片之间是可以并联的,通过并联后即使8位的内存芯片也可以做出来16位或32位的硬件内存。
内存条容量的大小和它芯片扩展方式有关。比如我们内存模块是采用 16M*8bit的内存颗粒,那么我们使用4个颗粒进行位扩展,成为16M*32bit,使用4个颗粒进行字容量扩展变为64M*32bit。那么我们内存模块使用了16个内存颗粒,实际大小是256MB。
三、内存的编址
内存就好象是一栋无限大的大楼,内存的单元格就好象大楼中的一个个小房间。每个内存单元格的地址就好象每个小房间的房间号。这个房间号就是内存地址,这个内存地址(一个数字)和这个格子的空间(实质是一个空间)是一一对应且永久绑定的。这就是内存的编址方法。
我们需要对这个256M的内存进行编址以便CPU能够使用它,通常我们多种编址方式:
- 按字编址: 对于这个256M内存来说,它的寻址范围是64M,而每个内存地址可以存储32bit数据。
- 按半字编址:对于这个256M内存来说,它的寻址范围是128M,而每个内存地址可以存储16bit数据。
- 按字节编址:对于这个256M内存来说,它的寻址范围是256M,而每个内存地址可以存储8bit数据。
对于我们现在的计算机来说,主要都是采用按字节编址的方式。
四、内存寻址(以按字节编址为例)
待补充,参见https://www.cnblogs.com/yilang/p/11103061.html
REF:
https://www.cnblogs.com/linhaostudy/p/5876107.html
https://blog.csdn.net/guosir_/article/details/79318956
https://blog.csdn.net/a805101628/article/details/89498468
https://blog.csdn.net/a805101628/article/details/89498468