关于ARM芯片中内存架构的疑惑记录

前言

最开始我疑惑的点是很混乱的,有的ARM芯片在跑裸机程序时候是不需要外置内存的,但是在跑LINUX系统时候,所用的开发板是需要外置RAM与ROM的。这是为什么呢,下面记录下对这个问题的梳理,同时也扩展一些其它的相关内容。
通过对储存器的理解也侧面帮助理解了Linux中U-BOOT Linux内核以及文件系统之间的关系

储存器的分类

储存
RAM掉电丢失
ROM
FLASH
SRAM
DRAM
DDR
PROM
EPROM
EPROM
NARD FLASH
NOR FLASH

RAM :掉电丢失
ROM:掉电保持
SRAM:静态RAM(Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲,二级缓冲。
DRAM:动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM相比SRAM要便宜很多,计算机内存就是DRAM的
DDR RAM:(Date-Rate RAM)也称作DDR SDRAM,这种改进型的RAM和SDRAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了。这是目前电脑中用得最多的内存,而且它有着成本优势。
ROM也有很多种,PROM是可编程的ROM,PROM和EPROM(可擦除可编程ROM)两者区别是,PROM是一次性的,也就是软件灌入后,就无法修改了,这种是早期的产品,现在已经不可能使用了,而EPROM是通过紫外光的照射擦出原先的程序,是一种通用的存储器。另外一种EEPROM是通过电子擦出,价格很高,写入时间很长,写入很慢。

FLASH存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及操作系统或者程序代码或者直接当硬盘使用(U盘)。
目前Flash主要有两种NOR Flash和NADN Flash
NOR Flash的读取和我们常见的SDRAM的读取是一样,用户可以直接运行装载在NOR FLASH里面的代码,这样可以减少SRAM的容量从而节约了成本。
NAND Flash没有采取内存的随机读取技术,它的读取是以一次读取一块的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好多使用NAND Flash的开发板除了使用NAND Flah以外,还作上了一块小的NOR Flash来运行启动代码。

计算机的金字塔储存层次结构

在这里插入图片描述不管是PC机还是嵌入式,为了适应CPU的速度,通过这种层层缓存的形式来加快系统的整体运行速度。

ARM芯片内存

先看三张图
以cortex-M3的储存架构图
在这里插入图片描述Linux虚拟内存
在这里插入图片描述这有两个内存图,分开来看我都能理解,当在ARM上跑Linux系统时候,在Linux内核运转的时候,这个时候的地址都是虚拟地址了,然后在经过MMU翻译成内存的物理地址,问题来了,芯片怎么操作原有的物理地址,比如外设之类的。外部RAM应该是最大到不了4G,需要留给外设。
回答开始的问题,不管ARM芯片是自带RAM、ROM。还是外部RAM、ROM。地址范围都在0-4G范围内。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值