嵌入式基础知识——存储器

嵌入式基础知识——存储器

1. 计算机存储结构

存储器是用来存储程序和数据的部件,是实现"存储程序控制"的基础,理想的存储器应该是执行快,容量足,价格便宜等。但实际上,目前无法同时满足这些目标,因此计算机通常采用分级存储的方式。

image

  • 寄存器:CPU 寄存器,保存来自 cache 的字
  • L1 高速缓存:芯片内的高速缓存 cache,保存来自芯片外 cache 的行
  • L2 高速缓存:芯片外的高速缓存,如 SRAM、DRAM、DDRAM,保存来自主存储器cache 的行
  • 主存储器:如 Flash、PROM、EPROM、EEPROM,保存来自外部存储器的文件
  • 外部存储器:如磁盘、光盘、CF卡、SD卡等
  • 远程二级存储:如分布式文件系统,Web 服务器

2. 存储器分类

2.1 RAM(内存) 与 ROM(硬盘)

按照存储器存放信息易失性,可分为 RAM 和 ROM:

  • RAM:随机存储器(Random Access Memory),读写速度快,但掉电时会丢失其存储的内容。速度、价格、容量介于 Cache 与辅存之间、断电数据丢失、CPU 可直接访问
    存储当前正在执行的程序和数据。
  • ROM:只读存储器(Read-Only Memory),存储的内容掉电后不会丢失。速度最慢、价格最低、容量最大、断电数据不丢失、CPU 不可直接访问存储暂时不运行的程序和数据,需要时再传送到主存。
2.1.1 主存储器 RAM

按照 RAM 存储单元的工作原理,又可分为如下几类:

  • SRAM:静态随机存储器(Static RAM),它是靠触发器的自保护功能存储数据,数据一旦写入,其信息就稳定的保存在电路中等待读出,无论读出多少次,只要不断电,信息会一直保存;
  • DRAM:动态随机存储器(Dynamic RAM),它将每个位存储为对一个电容的充电,而它的电容容量小,易漏电,因此需要定时给电容补电,通常称为"刷新";
  • DDR SDRAM:双倍速率同步动态随机存储器(Double Date Rate SDRAM),或称为 DDR。DDR 内存是在 SDRAM 内存的基础上发展而来的
2.1.2 辅助存储器 ROM
  • PROM:可编程只读存储器(Programmable ROM)
  • EPROM:可抹除可编程只读存储器(Erasable Programmable ROM)
  • EEPROM:电子式可抹除可编程只读存储器(Electrically Erasable Programmable ROM)

2.2 Cache

Cache 是一种比常见内存更快的存储器,一般称为高速缓存存储器。

根据 Cache 的工作机制,可分为:

  • 回写式 Cache:当 CPU 执行写数据时,回写式 Cache 只把该数据写入其数据地址对应的 Cache 中,不直接写入内存。仅当该 Cache 块需要替换时,才把 Cache 写回写入内存中
  • 写通式 Cache:当 CPU 执行写数据时,写通式 Cache 必须同时把该数据写入其数据地址对应的 Cache 块和内存中。

2.3 其他

2.3.1 Flash

Flash 称为快闪存储器,简称闪存,因其擦除和写入速度比较快而得名。

Flash 是 EEPROM 的变种,不同的是 EEPROM 能在字节水平上进行擦除重新,而 Flash 需要在块的水平上进行擦除。

  • NOR Flash:它带有 SRAM 接口,有足够的地址引脚来寻址,可以方便地存取其内部的每一个字节,因此可直接连接总线系统,构成内存储器;
  • NAND Flash:它使用复杂的 I/O 口来串行地存取数据,采用串行接口,不能直接构成内存,只能用来构成外部存储器。

两者的一些特点对比:

  • NOR 的读速度比 NAND 稍快
  • NAND 的写速度比 NOR 快很多
  • NAND 的擦除速度也比 NOR 快很多
  • NAND 的擦除单元更小
  • NOR 上可直接运行程序,NAND 只能存储信息
2.3.2 磁盘、光盘等
  • 磁盘:利用磁头变化和磁化电流进行读/写的存储器
  • 光盘:用光学方式读/写信息的圆盘
  • CF卡:紧凑式闪存(Compact Flash),由 SanDisk 公司于1994年生成,并制定相关规范
  • SD卡:安全数字存储卡(Secure Digital Memory Card)

3. 三级存储体系

上面介绍过,存储器的3个指标:容量、速度、价格往往无法同时满足,因此计算机采用多级存储器构成存储体系。

典型的三级存储结构,从内到外一般指Cache、主存储器、外部存储器。

image

Cache 设置在 CPU 和主存之间,可放在 CPU 的内部或外部,其作用是解决主存和 CPU 的速度匹配问题。

除了速度匹配问题,存储还受容量制约,因此。还需要外部存储器提供大容量存储空间。

4. 高速缓存控制器

高速缓存控制器负责CPU与高速缓存和主存之间的通信控制

image

5. 一些存储相关的计算题

5.1 题目一

某计算机总线是32位,地址空间从 0xF0000000xF007FFFF 映射为 Flash 空间,若实现 Flash 的最大存储容量,至少需要多少片 16Kx16bit 的 Flash 芯片。

主存容量计算,内存地址和芯片计算问题,先要了解:

  • 内存单元个数 = 内存尾地址 - 内存首地址 + 1
  • 内存容量 = 内存单元个数 x 每个内存单元容量
  • 将得出的 16 进制容量简化为 2 的幂的形式

分析:

  • Flash 的存储单元个数为:0xF007FFFF - 0xF0000000 + 1 = 0x80000 = 219
  • 总线是 32 位,也表示内存单元的大小是 32bit
  • 因此,Flash 总的容量大小为 219 × 32bit = 224 bit
  • 每片的大小是 16K x 16bit,也即 218 bit(214 × 24
  • 因此,需要的片数为:224 / 218 = 26 = 64片

5.2 题目二

某计算机字长是 32位,存储容量是 256KB,求按字编址的寻址范围

一些基础知识:

  • :二进制的每一个 0 或 1 是组成二进制的最小单位,称为位(bit)。
  • :计算机在存储、传送或操作时,作为一个单元的一组二进制码称为字。
  • 字长:一个字中的二进制位的位数称为字长,常用的字长包括 8位、16位、32位、64位。例如,通常把处理字长为 8位数据的CPU称为 8位CPU。
  • 字节:字长为 8位的编码称为字节(Byte),字节是计算机中的基本编码单位

分析:

  • 按字编址,需要知道字长,题目知字长 32位,即 4Byte
  • 存储容量 256KB,即 256K Byte
  • 所以,寻址范围为 256K / 4 = 64K

(个人理解:因为计算机存储传送或操作时是按字作为单位的,那么寻址也是按字进行寻址,这里一个字就是32位也就是 4Byte,所以寻址范围就是存储容量 / 一次寻址单位 = 256K / 4 = 64K 或者 65536字)

5.3 题目三

一个 32K x 32位 的静态存储器,求其地址线和数据线的位数

分析:

  • 32位,说明数据宽度是 32位,即数据线的位数是32
  • 32K,即 215,所以地址线需要15位

5.4 题目四

某计算机主存容量 64KB,其中 ROM 区为 4KB,其余是 RAM 区,按字节编址。若使用 2K x 8位 的 ROM 和 4K x 4位 的 RAM 设计该存储器,计算两种需用到的数量。

分析:

  • 由题目知,ROM 是 4KB,RAM 是 64 - 4 = 60KB
  • 按字节编址,则按 8bit 位编址
  • 一片 ROM 是 2K x 8bit,需要2片,即可满足大小为 4KB 的 ROM
  • 一片 RAM 是 4K x 4bit,需要30片(60K / 4K = 15,1Byte = 8位,8bit / 4 bit = 2,所以需要 15 × 2 = 30片 )

5.5 题目五

容量为 64块 的 Cache 采用组相连方式映射,块大小为 128 字节,每 4块 为一组,若主存容量为 4096 块,且以字节编址,求主存地址的位数和主存区号的位数。

基础知识:

主存地址 = 区号 + 组号 + 组内块号 + 块内地址号

分析:

  • 块大小为 128 字节,即 128 Byte
  • 主存容量为 4096块,即 4K 块,结合块的大小,主存容量为 4K × 128 Byte = 512KB = 219 KB,所以主存地址需要 19 位
  • 块大小为 128 字节(27),则块内地址需要用 7 位表示
  • 每 4 组为一块,则组内块号需要用 2 位表示
  • Cache 容量为 64 块,则分了 16 组,则组号需要用 4位 表示
  • 主存区号位数 = 19 - 7 - 2 - 4 = 6

6. 其他计算机基础知识

6.1 冯诺依曼计算机组成结构图

image

  • 输入设备:把其他信号转换成计算机能识别和处理的信号并送入计算机中。如键盘、鼠标、摄像头等

  • 输出设备:把运算结果以人或其他设备所能接受的形式送出计算机0外。如显示器、音响、打印机等

  • 存储器:用来存储程序和数据的部件,是实现"存储程序控制"的基础。如内存、硬盘等

  • 运算器:CPU 中负责进行算数运算和逻辑运算的部件,其核心是算术逻辑单元 ALU

  • 控制器:是CPU的指挥中心,其控制着整个 CPU 执行程序的逻辑过程

6.2 总线

  • 总线 :总线是计算机中各个部件之间 传送信息的公共通信干线, 在物理上就是一束导线按照其传递信息的类型可以分为 数据总线地址总线控制总线
  • DMA总线 :DMA(Direct Memory Access)即 直接存储器访问,使用 DMA 总线可以不通过 CPU 直接在存储器之间进行数据传递。

6.3 地址空间

一个 处理器 能够访问(读写)的 存储空间 是有限的,我们称这个空间为它的 地址空间(寻址空间),一般来说 N位 地址总线的处理器的地址空间是 2的 N 次方

例如:2位总线能访问 00、01、10、11 即 22

6.4 CPU 工作原理简述

image

CPU执行指令的过程 :

  • CPU先通过 指令计数器PC 向内存写入要读取数据的地址,
  • 内存根据地址找到数据并返回给CPU,
  • CPU通过 指令寄存器IR 接收到数据,将数据通过 指令译码器 翻译成 可执行指令 发送给运算器执行,运算结果储存在 寄存器 中,
  • CPU指令计数器 自增 重复执行步骤。

一条指令的执行分为三个阶段:

  1. 取址 :CPU 将 PC 寄存器中的地址发送给内存,内存将其地址中对应的指令返回到 CPU 中的指令寄存器(IR)
  2. 译码 :译码器对 IR 中的指令进行识别,将指令(机器码)解析成具体的运算
  3. 执行 :控制器控制运算器中对应的运算单元进行运算,运算结果写入寄存器

` 中,

  • CPU指令计数器 自增 重复执行步骤。
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霜晨月c

谢谢老板地打赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值