嵌入式开发 - ROM_RAM_Flash

目录

一、嵌入式开发之NorFlash 和NandFlash

ROM,RAM和FLASH在单片中的作用:

二、SRAM和DRAM

RAM:

SRAM:

DRAM:

SDRAM:

DDR

Cache-高速缓存存储器

地址映射:

虚拟存储器(暂略)

基本原理:

cache和虚存的异同:


一、嵌入式开发之NorFlash 和NandFlash

ROM:只能读不能改,数据由工厂写入,一旦烧录进去,用户只能验证写入的资料是否正确,不能做任何修改。

PROM:不可擦除,数据由用户写入。从工厂中制作完成的PROM中没有资料,用户可以用专用的编程器将自己的资料写入,机会只有一次且不可修改。

EPROM(Erasable Programmable ROM):紫外线可擦除,数据由用户写入。完成芯片的擦除操作要用到EPROM擦除器,资料的写入要用到专用的编程器。

EEPROM(Electrically Erasable Programmable ROM):电可擦除,数据由用户写入。不需要借助其他设备,是以电子信号来修改其内容的,而且是以Byte为最小修改单位。狭义的EEPROM,可以随机访问和修改任何一个字节,可以往每个bit中写入0或1。

FLASH:属于广义的EEPROM,因为它也是电擦除的ROM。但是为了区别于一般的按字节为单位擦写的EEPROM,就叫它Flash。Flash做的改进就是擦除时不再以字节为单位,而是以块为单位,数据密度更高,成本更低。上M的ROM一般都是flash。近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。分为nor flashnand flash

  • nor flash数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节。但是擦除仍要按块来擦。
  • nand flash同样是按块擦除,但是数据线和地址线复用,不能利用地址线随机寻址。读取只能按页来读取。(nandflash按块来擦除,按页来读,norflash没有页)
  • 由于nandflash引脚上复用,因此读取速度比nor flash慢一点,但是擦除和写入速度比nor flash快很多。nand flash内部电路更简单,因此数据密度大,体积小,成本也低。因此大容量的flash都是nand型的。小容量的2~12M的flash多是nor型的。
  • 使用寿命:nand flash的擦除次数是nor的数倍。而且nand flash可以标记坏块,从而使软件跳过坏块。nor flash 一旦损坏便无法再用。

        因为nor flash可以进行字节寻址,所以程序可以在nor flash中运行。嵌入式系统多用一个小容量的nor flash存储引导代码,用一个大容量的nand flash存放文件系统和内核。比如S3C2440 ARM单片机系统,使用一块2MB的norflash存储boot启动代码,而WinCE、Linux这样的操作系统放在128MB的nandflash中。在启动时单片机先直接执行norflash中的代码将nandflash中的系统复制到ram中,然后才正式启动操作系统,操作系统在ram中运行,根据需要从nandflash中读取需要的数据或代码进行操作。

ROM,RAM和FLASH在单片中的作用:

  • ROM——存储固化程序的(存放指令代码和一些固定数值,程序运行后不可改动)。c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS,一些低端的单片机是没有这个的)。
  • RAM——程序运行中数据的随机存取(掉电后数据消失)。整个程序中,所用到的需要被改写的量,都存储在RAM中,“被改变的量”包括全局变量、局部变量、堆栈段。
  • FLASH——存储用户程序和需要永久保存的数据。

ROM是只读存储器,CPU只能从里面读数据,而不能往里面写数据,掉电后数据依然保存在存储器中;
RAM是随机存储器,CPU既可以从里面读出数据,又可以往里面写入数据,掉电后数据不保存。

二、SRAM和DRAM

RAM:

即随机存取存储器,是与CPU直接交换数据的内部存储器,俗称内存。通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。可分为静态RAM(SRAM)和动态RAM(DRAM):

SRAM:

一般用作计算机中的高速缓冲存储器,即CPU或GPU内部的Cache。

所谓静态,是指这种存储器只要保持通电,里面存储的数据就可以恒常保持。然而当断电后,其存储的数据还是会消失,这与断电后还能存储资料的ROM或闪存是不同的。

DRAM:

动态随机存取存储器,最为常见的系统内存。DRAM 只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失。

比较:

  • (1)SRAM的存储元是锁存器(触发器),而DRAM的存储元是由一个MOS晶体管额电容器组成的记忆电路。
  • (2)SRAM使用的晶体管比DRAM多,因而密集度低,更贵,功耗更大。

SDRAM:

同步动态随机存取存储器(Synchronous Dynamic Random Access Memory)。

同步是指Memory工作需要时钟,动态是指存储阵列需要不断刷新来保证数据不丢失,随机是指数据不是线性依次存储,而是由指定地址进行数据读写。

与标准的DRAM相比,最大的不同就是异步和同步。标准DRAM是异步DRAM,也就是说它读/写的时钟与CPU的时钟是不一样的,而SDRAM在工作时的读/写过程是与CPU时钟严格同步的(SDRAM将CPU和RAM通过一个相同的时钟锁在一起,使CPU和RAM能够共享一个时钟周期,以相同的速度同步工作,每一个时钟的上升沿便开始传递数据)。

SDRAM发展到现在已经经历了五代:

 工作电压/VPrefetch(min burst)Prefetch buffer(预取缓冲器)
第一代SDR SDRAM3.3  
第二代DDR SDRAM2.52n2bit
第三代DDR2 SDRAM1.84n4bit
第四代DDR3 SDRAM1.58n8bit
第五代DDR4 SDRAM1.28n16bit
  • 传输速度的提高是通过增加prefetch的位数来做到的。例如,同样是100MHz的核心频率,SDRAM一周期取一次,它和内存控制器的速度是100M T/s(T是传输的意思);DDR上升沿下降沿各取一次,相当于2次prefetch,bus速度变成200;DDR2变成4n prefetch,bus speed变成400;同理DDR3是8n带来了800。

DDR

DDR是SDRAM的更新换代产品,它允许在时钟脉冲的上升沿和下降沿传输数据,这样不需要提高时钟的频率就能加倍提高SDRAM的速度。

第一代与第二代SDRAM均采用单端(Single-Ended)时钟信号,第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。

Cache-高速缓存存储器

在主存和CPU之间插入一级或多级SRAM组成。

作用:解决CPU和主存之间速度不匹配而采用的技术。

组成:SRAM和控制逻辑。如果cache在CPU芯片外,它的控制逻辑一般和主存控制逻辑合成在一起,称主存/cache控制器;若cache在CPU内,则由CPU提供它的控制逻辑。

CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。

地址映射:

为了把主存块放到cache中,必须应用某种方法把主存地址定位到cache中,称作地址映射。

虚拟存储器(暂略)

虚拟存储器系统由主内存和部分硬磁盘构成,主要由操作系统管理。

基本思想:把部分外存空间作为内存使用,以此为用户提供足够大的地址空间。

基本原理:

若访问的信息在内存中,则“命中”;

若不在内存,则根据一定的规则,将硬盘中一块信息调入内存;

若内存无空间,则按一定算法将相关内容调入硬盘。

cache和虚存的异同:

  • (1)在虚拟存储器中未命中的性能损失要远大于Cache系统中未命中的损失。因为主存和Cache的速度相差5~10倍,而外存和主存的速度相差上千倍。
  • (2)cache主要解决主存与CPU的速度差异问题,而虚存主要解决存储容量问题。
  • (3)CPU与cache和主存之间均有直接访问通路,cache不命中时可直接访问主存。而虚存所依赖的辅存与CPU之间不存在直接的数据通路,当主存不命中时只能通过调页解决,CPU最终还是要访问主存。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值