Linux驱动开发(硬件基础知识)——存储器


前言

存储器主要可分类为只读存储器(ROM)、闪存(Flash)、随机存取存储器(RAM)、光/磁盘介质存储器
也可按掉电后是否消失,分为掉电丢失数据存储器和非易失性存储器
下面我们先是否丢失数据,再针对其特性进行分析。

非易失性存储器

就是说即使我们的系统失去了通电以后,我们在上面的存储信息也不会消失。依旧存在。

ROM

ROM还可以细分为不可编程ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)和电可擦除可编程ROM(EEPROM),EEPROM完全可以用软件来擦写,已经是非常方便的了。

FLASH

NOR(或非)和NAND(与非)是市场上两种主要的闪存技术。

NOR Flash

NOR Flash和CPU的接口属于典型的类SRAM接口,不需要增加额外的控制电路。如下
在这里插入图片描述

NOR Flash的特点是可芯片内执行(XIP),程序可以直接在NOR内运行。而NAND Flash和CPU的接口必须由相应的控制电路进行转换,当然也可以通过地址线或GPIO产生NAND Flash接口的信号。NAND Flash以块方式进行访问,不支持芯片内执行。

公共闪存接口(CFI)

是一个从NOR Flash器件中读取数据的公开、标准接口。它可以使系统软件查询已安装的Flash器件的各种参数,包括器件阵列结构,电气和时间参数以及器件支持的功能等。如果芯片不支持CFI,就需要使用JEDEC(电子电器设备联合会)了。JEDEC规范的NOR则无法直接通过命令来读取容量等信息,需要读出制造商ID和设备ID,以确定Flash大小。

NAND Flash

NAND Flash的接口主要包含如下信号。

  • I/O总线:地址、指令和数据通过这组总线传输,一般为8位或16位(就是8根或16根)
  • 芯片启动(Chip Enable:CE#):如果没有检测到CE信号,NAND器件就保持待机模式,不对信号任何控制信号做出响应。
  • 写使能(WE#):WE#负责将数据、地址或指令写入NAND之中。
  • 读使能(RE#):RE# 允许数据输出。
  • 指令锁存使能(CLE):当CLE为高电平时,在WE#信号的上升沿,指令将被锁存到NAND指令寄存器中。
  • 地址锁存使能(ALE):当ALE为高电平时,在WE#信号的上升沿,地址将被锁存到NAND地址寄存器中。
  • 就绪/忙(R/B#):如果NAND器件忙,R/B#信号将被变为低电平。该信号是漏极开路,需要采用上拉电阻。
    如下
    在这里插入图片描述

NAND Flash较NOR Flash容量大,可擦写次数多,价格低,速度快。

注意:Flash特性,只能写0,不能写1。擦除就是把所有位全部写1。同时在读写过程中偶然会产生1位或几位数据错误,即位反转,NAND Flash发生的概率要比NOR Flash大很多。位反转不可避免,因此使用NAND Flash的同时,应采用错误勘探/错误纠正(EDC/ECC)算法。另外,Flash还存在一个负载均衡的特性,不能老是在同一块位置进行擦除和写的动作,这样容易坏块

IDE

IDE接口可连接硬盘控制器或光驱,IDE接口的信号与SRAM类似。
很多SoC集成了一个eFuse电编程熔丝作为OTP(一次性可编程)存储器。eFuse可以通过计算机对芯片内部的参数和功能进行配置,这一般是在芯片出厂的时候已经设置好了。

掉电丢失数据存储器

和上面相反,就是失去电源以后,存放在这种类型存储器的数据信息将会被删除,消失。

静态RAM(SRAM)

静态RAM只要供电,就会保持一个值,没有刷新周期。每个SRAM存储单元由6个晶体管组成。
通常所说的SDRAM(同步动态随机存取存储器)、DDR SDRAM(双倍同步速率动态存取存储器)皆属于DRAM的范畴,采用CPU外存控制器同步的时钟工作(注意,不是与CPU的工作频率一致)。DDR SDRAM就是利用了时钟脉冲的上升沿和下降沿发送数据,所以是双倍速率。

动态RAM(DRAM)

DRAM以电荷形式进行存储,数据存储在电容器中。由于电容器会因漏电而出现电荷丢失,所以DRAM器件需要定期刷新。存储单元由1个晶体管和1个电容器组成。

特定RAM

DPRAM:双端口RAM

DPRAM的特点是通过两个端口同时访问,具有两套完全独立的数据总线、地址总线和读写控制线,通常用于两个处理器之间交互数据。如下图
在这里插入图片描述

当一端被写入数据后,另一端可以通过轮询或中断获知,并读取其写入的数据。由于双CPU同时访问DPRAM时仲裁逻辑电路集成在DPRAM内部,所以需要硬件工程师设计的电路原理比较简单。

DPRAM的优点就是通信速度快、实时性强、接口简单,而且两边处理器都可主动进行数据传输。除了双端口RAM以外,目前IDT等芯片厂商还推出了多端口RAM,可以提供3个以上的处理器互通数据。

CAM:内容寻址RAM

CAM是以内存进行寻址的存储器,是一种特殊的存储阵列RAM,它的主要工作机制就是同时将一个输入数据项与存储在CAM中的所有数据项自动进行比较,判别该输入数据项与CAM中存储的数据项是否匹配,并输出该数据项对应的匹配信息。
如下图
在这里插入图片描述

输入的是所要查询的数据,输出的是数据地址和匹配标志。若匹配(即搜寻到数据),则输出数据地址。CAM用于数据检索的优势是软件无法比拟的,它可以极大地提高系统性能。

FIFO:先进先出队列

FIFO存储器地特点就是先进先出,进出有序,FIFO多用于数据缓冲。FIFO和DPRAM类似,具有两个访问端口,但是FIFO两边地端口并不对等,某一时刻只能设置为一边作为输入,一边作为输出。

如果FIFO区域共有n个字节,我们只能通过循环n次读取同一个地址才能将该片区域读出,不能指定偏移地址。对于有n个数据地FIFO,当循环读取m次后,下次读取会自动读取到m+1个数据,这是由FIFO本身的特性决定的。

存储器分类总图

在这里插入图片描述

### 南京邮电大学电子电工课程中的集成门电路资料 #### 1. 集成门电路基础知识 集成门电路是数字逻辑电路的核心组成部分之一,其主要功能是对输入信号进行逻辑运算并输出相应的结果。常见的基本门电路包括与门(AND)、或门(OR)、非门(NOT),以及由这些基本门组成的复合门电路如与非门(NAND)、或非门(NOR)[^3]。 在南京邮电大学的《电工电子基础》实验课程中,学生被要求掌握基本门电路的实际应用及其多余端子的处理方法。这一部分的学习重点在于理解不同类型的门电路的工作原理,并能够通过实际操作验证所设计电路的功能。 #### 2. 实验目标与内容 根据南京邮电大学的相关教学材料,在涉及集成门电路的教学过程中,具体的目标内容可以概括如下: - **掌握基本门电路的应用** 学生需熟悉各种标准集成电路芯片(如74系列TTL门电路)的操作方式,并能将其应用于具体的逻辑电路设计之中。 - **多余端子的处理** 对于未使用的输入端口,应采取适当措施防止不确定状态影响整个系统的正常运行。通常的做法有将闲置输入端固定连接至高电平(Vcc)或者低电平(GND),视具体情况而定。 - **组合逻辑电路的设计与实现** 结合理论知识完成特定功能需求下的组合逻辑电路构建工作。例如利用多路选择器配合计数器来生成指定序列信号的发生装置[^4]。 #### 3. 计数器与移位寄存器 除了单纯讨论静态条件下各类型门的行为特性外,《模拟电子技术》还进一步延伸到了动态行为领域内的研究对象—即各类存储单元结构形式下形成的寄存器类组件。其中包括但不限于简单触发模式构成的标准D型触发器阵列直至更复杂的同步加载/清除机制支持版本等等[^2]。 特别值得注意的是关于异步清零控制策略方面:为了达到预设数值范围限制以内循环往复动作效果,则往往借助外部反馈路径引入条件满足判定环节进而实施即时强制归零指令发送操作流程管理手段达成最终目的——比如前述提到过的基于CB4CLE型号产品实例演示说明里头就采用了此类典型做法。 ```python # Python伪代码展示如何设置初始值为0的状态机模型简化版示意片段 class Counter: def __init__(self, max_count): self.count = 0 self.max_count = max_count def increment(self): if self.count >= self.max_count - 1: self.reset() else: self.count += 1 def reset(self): self.count = 0 counter_instance = Counter(max_count=5) for _ in range(8): # 假设执行8次增量操作查看结果变化趋势规律特征表现情况 counter_instance.increment() print(f"Current Count Value: {counter_instance.count}") ``` 上述代码展示了简单的计数器逻辑,类似于硬件层面使用置零法实现分频比为5的情况。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jacky~~

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值