内存地址
内存地址的确定
-
现代计算机通常是按照字节编制,每个字节对应1个地址。
-
通过编码器和译码器完成对内存单元的编号
-
所以说内存地址其实是逻辑意义上的内存编号。
-
每块内存分配地址的范围
内存与外存
好比在一个书房,存放书籍的书架和书柜相当于电脑的外存,我们工作的办公桌相当于内存。
内存
内存:内存又称主存,计算机中的程序的运行都是在内存中进行的,只要计算机在运行,计算机CPU就会把需要的计算数据调到内存中进行运算。
- 范围
通常内存分为随机存储器(RAM)、只读存储器(ROM)、高速缓存(CACHE)。
外存
硬盘:从计算机的结构体系来讲,硬盘应该算是计算机的“外存”。
内存和硬盘的主要区别,主要为以下三点:
1、内存是计算机运行的场所,硬盘用来存放暂时不用的信息;
2、内存是半导体材料制成的,硬盘是磁性材料制成的;
3、内存中的信息会随掉电消失,硬盘中的信息可以长久保存。
4、硬盘中的信息只有装入内存后才能被处理。
寄存器
寄存器的结构
o 寄存器就是几个边沿触发器的集合。
o 对寄存器编程可以将其看成是一个个的开关,我们要用到哪个输入模式,就闭合哪个开关。
o 具体的操作就是对某一位的寄存器写1,如1 0 0 0
寄存器有没有地址
CPU的寄存器都是一些特殊值,如R0,R1,它是没有地址的。
所以register关键字和取地址运算符&是八字不合的。
最快的读写速度
- 寄存器和缓存是在CPU中的,由CPU直接存取,没有中间步骤,所以最快。
- 寄存器是CPU用来暂存指令、数据和地址的电脑存储器。随着寄存器的增大,价钱会成倍的增长。
按照工作原理分类
按照工作原理可以分为ROM,RAM和cache
20.3 ROM
Read only memory只读存储器,断电后存储的数据不会消失。
- 只能读不能写,初代时一般在装机前由厂家写入,用完就报废。
- 数据稳定,读写没RAM快。
- BISO
- Basic input output system基本输入输出系统,只能读不能写,1975
- 里面主要是启动时的一些加载项
ROM是只读的意思,但由于技术的发展,后来设计出了可以方便写入数据的 ROM,而这个“Read Only Memory”的名称却被沿用下来了,现在一般用于指代非易失性半导体存储器。
20.3.1 直系ROM
20.3.1.1 MASK ROM
MASK(掩膜) ROM 就是正宗的“Read Only Memory”
- 存储在它内部的数据是在出厂时使用特殊工艺固化的
- 生产后就不可修改,其主要优势是大批量生产时成本低。
- 当前在生产量大,数据不需要修改的场合,还有应用。
20.3.1.2 OTPROM
o One time programmable ROM一次编程只读存储器
o 在EPROM的基础上,不设置擦写窗,做一次性使用
这种存储器出厂时内部并没有资料,用户可以使用专用的编程器将自己的资料写入,但只能写入一次,被写入过后,它的内容也不可再修改。
在 NXP 公司生产的控制器芯片中常使用 OTPROM 来存储密钥。
20.3.1.3 PROM
o 可编程只读存储器,写入后数据无法更改,厂商来写
o 用的是熔丝技术,每一位数据由熔丝的状态决定。熔断代表0,反之代表1
20.3.1.4 EPROM
o Erasable programmable ROM 可擦除可编程只读存储器
o 用高压写入数据,用紫外线擦除,需要专用的装置擦写
现在这种存储器基本淘汰,被 EEPROM 取代。
20.3.1.5 EEPROM
o E方普ROM,electrically erasable programmable ROM电可擦除可编程只读存储器。
o 微芯公司生产,256K数据(B K M G T单位代换)
o 写和擦的方式都是高压电场。高压用电荷泵电路产生。
o 比如遥控器的用户设置的信息就存放在E方普ROM中。
- 可以按字节为单位修改数据,无需整个芯片擦除。
- 现在主要使用的 ROM 芯片都是 EEPROM。
20.3.2 Flash闪存
• 闪存,本质上属于E方普ROM(EEPROM),通过电擦除写入。当前最流行的只读存储器!
- Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可编程序只读存储器)和EEPROM(电可擦只读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面。
- 1989年,东芝公司发表了NAND Flash 结构,强调降低每比特的成本,有更高的性能,并且像磁盘一样可以通过接口轻松升级。NOR Flash 的特点是芯片内执行(XIP,eXecute In Place),这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。
o 浮栅晶体管,存储原理类似于MOS管
o 栅极上电后少子进入浮栅层,下电后由于遂穿层的存在,回不去了。达到长久存储的目的。如果要释放电子,需要给栅极加上负电压。这就是flash存储一位数据的原理。
o 遂穿层本质上也是绝缘体,不过在通电的时候会导通。
o 读数据也很简单,栅极加一个低压,如果存储了电子,电子会有排斥作用,所以不会有SD的电流。如果没有存储电子,晶体管导通。
它的容量一般比 EEPROM 大得多,且在擦除时,一般以多个字节为单位。
20.3.2.1 NOR flash
o NOR flash 将晶体管并联在了一起,它的每一位都可以被寻址
NOR 的地址线和数据线分开,它可以按“字节”读写数据
20.3.2.2 NAND flash
o SSD固态硬盘、U盘、存储卡都属于NAND flash
o NAND flash就是将晶体管串联在了一起,电路更简单,可以更大容量的集成。
NAND 的数据和地址线共用,只能按“块”来读写数据
20.3.2.3 应用及擦写
- 大部分的BIOS程序存储在flash ROM中。
若代码存储在 NAND 上,可以把它先加载到 RAM 存储器上,再由 CPU 执行。所以在功能上可以认为 NOR 是一种断电后数据不丢失的 RAM,但它的擦除单位与 RAM 有区别,且读写速度比RAM 要慢得多。
FLASH 的擦除次数都是有限的 (现在普遍是 10 万次左右),当它的使用接近寿命的时候,可能会出现写操作失败。
- 由于 NAND 通常是整块擦写,块内有一位失效整个块就会失效,这被称为坏块,而且由于擦写过程复杂,
- 从整体来说 NOR 块块更少,寿命更长。由于可能存在坏块,
所以 FLASH 存储器需要“探测/错误更正 (EDC/ECC)”算法来确保数据的正确性。
由于两种 FLASH 存储器特性的差异,NOR FLASH 一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。而 NAND FLASH 一般应用在大数据量存储的场合,包括 SD 卡、U 盘以及固态硬盘等,都是 NAND FLASH 类型的。
20.3.2.4 两种flash区别
坏块的管理
NAND Flash在出厂时就有一定的坏块,而且是随机分布,这是由NANDFlash的工艺造成的,它产生的原因是解码失败、地址线错误和存储单元等,当区块超出擦写次数时也很容易变成坏块。
以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。所以,NAND Flash被允许在出厂时有很少量的坏块。
当区块变成坏块,则不可以对其进行擦写和写操作,相当于这部分资源报废了。但坏块和好块之间是相互独立的,这是由于他们被一个选定的晶体管把位线和指令线分开。
NOR flash也有坏块,不过相对来说比较少,它在内部通常会通过循环冗余比特校验或者纠错码来进行管理。
坏块儿的检测机制如下。
位翻转
2、其次,NAND Flash在应用中会出现位翻转错误(bit failture)。虽然概率很低,大约每100亿次写操作才会出现一次,但是对于用作系统根文件系统的存储设备,这种错误是绝对不允许的。因为这种错误万一发生在系统配置文件上,则会影响系统的运行。但是作为流媒体文件的存储器,位翻转的问题并不大。
应用接口
3、最后,NAND Flash和NORFlash在应用接口上有着本质的区别,NAND Flash是I/O方式,NOR Flash是总线方式,这是它们除了价格以外最主要的差别。
20.2 RAM
Random access memory随机存取存储器。所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。
- 断电后存储的数据会消失。
- 但存取速度要远远大于ROM
内存条就是将RAM集中在一起的小电路板!它插在计算机中的内存插槽上,以减少RAM集成块占用的空间。
- 目前市场上常见的内存条有4G,8G,16G,32G等。
- 但内存条是DRAM,SRAM同容量比DRAM需要非常多的晶体管,发热量也非常大。因此SRAM难以成为大容量的主存储器。
根据 RAM 的存储机制,又分为动态随机存储器 DRAM(Dynamic RAM) 以及静态随机存储器SRAM(Static RAM) 两种。
20.2.2 SRAM
Static RAM静态随机存取存储器
- 这种电路结构不需要定时刷新充电,就能保持状态
- 这种存储器被称为“静态 (Static)”RAM
CPU的L1与L2缓存就是SRAM
- Cache(高速缓冲存储器)也就是一级缓存(L1 Cache)、二级缓存(L2 Cache)、三级缓存(L3 Cache)这些数据,它位于CPU与内存之间,是一个读写速度比内存条更快的存储器。
造价昂贵
- 它属于RAM,但不是内存条的一部分。
高速缓冲区是CPU自带的。
与高速缓存相比,内存条只是下一级的低速缓存。
SRAM是目前读写最快的内存!
o 信息存储靠的是门电路,使用的晶体管多,但是非常快,不能大量集成。
当CPU向内存中写入或读出数据时,这个数据也被存储进高速缓冲存储器中。
当CPU再次需要这些数据时,CPU就从高速缓冲存储器读取数据,而不是访问较慢的内存,当然,如需要的数据在Cache中没有,CPU会再去读取内存中的数据。
SRAM 根据其通讯方式也分为同步 (SSRAM) 和异步 SRAM,相对来说,异步 SRAM 用得较多。
20.2.1 DRAM
Dynamic random access memory 动态随机存取存储器,就是我们的内存条!注意RAM,ROM和高速缓存广义上都属于内存!
动态随机存储器 DRAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0
o 电脑上的内存条就是DRAM
o 靠电容存储信息,所以需要不断给电容充放电,速度就慢
o 如果给G一个高电平,mos导通,电容充电为1,反之为0
o 读取数据,只要读取电容的电平。但是电容有漏电流,一段时间就漏完了,需要不断给电容刷新充电,断电不能恢复。
- 因为它需要定期刷新操作,这就是“动态 (Dynamic)”一词所形容的特性
- 刷新操作会对电容进行检查,若电量大于满电量的 1/2,则认为其代表 1,并把电容充满电;若电量小于 1/2,则认为其代表 0,并把电容放电
根据 DRAM 的通讯方式,又分为同步和异步两种,这两种方式根据通讯时是否需要使用时钟信号来区分.
20.2.1.1 SDRAM
下图是一种利用时钟进行同步的通讯时序,它在时钟的上升沿表示有效数据。
由于使用时钟同步的通讯速度更快,所以同步 DRAM 使用更为广泛,这种 DRAM 被称为SDRAM(Synchronous DRAM)。
20.2.1.2 DDR SDRAM
为了进一步提高 SDRAM 的通讯速度,人们设计了 DDR SDRAM 存储器 (Double Data RateSDRAM)。
- 它的存储特性与 SDRAM 没有区别,但 SDRAM 只在上升沿表示有效数据,在 1 个时钟周期内,只能表示 1 个有数据;
- DDR SDRAM 在时钟的上升沿及下降沿各表示一个数据,也就是说在 1 个时钟周期内可以表示 2 数据,在时钟频率同样的情况下,提高了一倍的速度。
- 至于 DDRII 和 DDRIII,它们的通讯方式并没有区别,主要是通讯同步时钟的频率提高了。
当前个人计算机常用的内存条是 DDRIII SDRAM 存储器,在一个内存条上包含多个 DDRIIISDRAM 芯片。
20.2.3 DRAM 与 SRAM 的应用
DRAM的结构比SRAM简单得多
- 生产相同容量的存储器,DRAM的成本要更低,且集成度更高。
- DRAM 中的电容结构则决定了它的存取速度不如 SRAM
在实际应用场合中
- SRAM 一般只用于 CPU 内部的高速缓存 (Cache)
- 外部扩展的内存一般使用 DRAM。
大部分微控制器只支持扩展 SRAM,而 RT1052 芯片提供了 SEMC 外设,支持扩展 SDRAM。
PSRAM
PSRAM全称Pseudo static random access memory,指的是伪静态随机存储器。
- PSRAM就是伪SRAM,内部跟SDRAM的颗粒相似,但外部的接口跟SDRAM不同,不需要SDRAM那样复杂的控制器和刷新机制,PSRAM的接口跟SRAM的接口是一样的。
- PSRAM的内核是DRAM架构,1T1C,即1个晶体管一个电容。传统SRAM为6T,即6个晶体管。所以PSRAM可以实现较大的存储容量和更小的体积。
容量
- PSRAM容量有4Mb,8Mbit,16Mbit,32Mbit,64Mbit,128Mbit等等,容量没有SDRAM那样密度高,但肯定是比SRAM的容量要高很多的,速度支持突发模式,并不是很慢,Hynix,Fidelix,Coremagic, WINBOND .MICRON. CY 等厂家都有供应,价格只比相同容量的SDRAM稍贵一点点,比SRAM便宜很多。
主要应用
-
PSRAM主要应用于手机,电子词典,掌上电脑,PDA,PMP,MP3/4,GPS接收器等消费电子产品。
-
目前智能手机基本采用256MB以上的PSRAM,很多采用512MB。比较于SDRAM,PSRAM的功耗要低很多。所以对于要求有一定缓存容量的很多便携式产品是一个理想的选择。
内存技术标准分类
SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM