3.4 只读存储器

news/2025/1/3 9:52:43/

 

学习目标:

学习只读存储器(ROM)的目标可以包括以下内容:

  1. 了解ROM的基本概念、分类以及适用场景。
  2. 掌握ROM的电路原理、逻辑结构和读取方式。
  3. 熟悉ROM的编程方式和编程工具。
  4. 理解ROM与EPROM、EEPROM和闪存的区别和联系。
  5. 了解ROM在计算机系统中的应用场景和作用。
  6. 掌握ROM的技术指标和性能评估方法。
  7. 理解ROM在嵌入式系统设计中的应用和实践案例。

通过以上学习目标的学习和掌握,可以全面了解ROM的相关知识和技术,为后续的计算机系统设计和嵌入式系统开发提供基础和支持。

学习步骤:

学习只读存储器(ROM)的方法可以包括以下步骤:

1. 了解ROM的基本概念和特点:了解ROM与RAM的区别,掌握ROM的存储原理、读取方式、编程方法以及应用领域等基本概念和特点。

2. 学习ROM的种类和结构:掌握ROM的种类、结构、容量和速度等主要技术指标,了解各种ROM的工作原理、优缺点和适用场景。

3. 学习ROM的编程方式和过程:了解ROM的编程方式,包括刻录和烧录两种方式,掌握各种ROM的编程过程和注意事项。

4. 学习ROM的应用:了解ROM在各个领域的应用,如微控制器、存储芯片、计算机BIOS等。

5. 进行实践操作:通过购买或使用ROM编程器,学习如何对ROM进行编程和读取操作,并在实践中加深理解。

6. 阅读相关文献:阅读相关书籍、论文、文章和技术资料,了解ROM的最新研究进展和应用案例,不断拓展对ROM的认识和应用。

7. 参加相关培训或课程:参加相关培训或课程,深入了解ROM的理论和实践知识,提高ROM应用技能和实际应用能力。

总之,学习只读存储器需要系统学习理论知识,同时加强实践操作,不断深化对ROM的理解和应用能力。

 

3.4.1 只读存储器概述

只读存储器(Read-Only Memory,ROM)是一种只能读取数据而不能写入的存储器。它是一种非易失性存储器,通常用于存储程序、固件、配置信息等数据。

ROM的数据是在制造过程中被预设的,因此它不能像RAM一样被程序写入和修改。ROM的读取速度通常比RAM慢,但是它具有很高的可靠性和稳定性,因为它不会因为断电而失去数据。

ROM的主要分类包括以下几种:

  1. Mask ROM:它是制造时被编程的ROM,也称为固定程序ROM。在生产过程中,使用特殊的工具来编程,一旦编程就不能再修改。它的优点是速度快,可靠性高,但缺点是一旦生产就不能修改,所以只适用于大量生产的产品中。

  2. PROM:PROM是可编程只读存储器(Programmable Read-Only Memory)的缩写,是由用户自行编程的ROM。在生产过程中,使用特殊的编程器将数据写入PROM,一旦编程就不能再修改。与Mask ROM相比,PROM可以在生产之后进行编程,但缺点是编程速度慢,容易受到紫外线的影响而失去数据。

  3. EPROM:EPROM是可擦除可编程只读存储器(Erasable Programmable Read-Only Memory)的缩写。它可以通过紫外线来擦除,使得EPROM可以被重复编程。EPROM的擦除需要特殊的设备,擦除时间比较长,而且擦除次数有限。

  4. EEPROM:EEPROM是可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory)的缩写,与EPROM相比,它可以通过电子信号来擦除。EEPROM的擦除速度比EPROM快,而且可以擦除次数更多,但是价格更高。

  5. Flash Memory:Flash Memory是一种特殊的EEPROM,它可以一次性擦除整个芯片,而不是像EEPROM一样只能擦除一部分。Flash Memory具有快速读取速度,容量大,擦除次数多等特点,因此在存储器领域被广泛使用。

总的来说,只读存储器具有不可修改的特性,但是具有高可靠性和稳定性的优点,广泛应用于嵌入式系统、计算机外围设备、智能卡等领域。

 

 

3.4.2 NOR内存

NOR闪存是一种非易失性存储器,常用于存储代码和数据,例如手机、相机、音乐播放器等设备中的存储芯片。与传统的EPROM和EEPROM不同,闪存可以被电擦除并重写,具有更高的密度和更长的寿命。

下面是NOR闪存的一些主要特点:

  1. NOR闪存的逻辑结构:每个NOR闪存芯片包含多个块,每个块包含多个扇区,每个扇区包含多个页,每个页包含多个字节。

  2. NOR闪存的读取:读取NOR闪存中的数据需要通过地址和时序信号来访问存储单元。读取速度相对较慢,但是支持随机读取。

  3. NOR闪存的编程:编程是将数据写入存储单元的过程。由于闪存芯片的特殊结构,编程需要将整个块擦除并重写,因此编程速度较慢。

  4. NOR闪存的擦除:擦除是将存储单元中的数据清除为初始状态的过程。与编程类似,擦除也需要将整个块清除,因此速度相对较慢。

  5. NOR闪存的可靠性:由于闪存的特殊结构和工作方式,NOR闪存有一些独特的可靠性问题,如写入时的错误、擦除时的漏洞、累积擦写次数的限制等。

总的来说,NOR闪存是一种可靠的非易失性存储器,具有随机读取和高密度等优点,但是编程和擦除速度相对较慢,同时也有一些可靠性问题需要注意。

 

 

1.NOR内存的外部接口与逻辑结构

NOR闪存是一种非易失性存储器,可以用作代码存储器、数据存储器和固件存储器。它采用并行存储的方式,因此访问速度比串行存储器快,适用于需要快速访问的应用。

NOR闪存的外部接口通常包括地址总线、数据总线、控制信号等。在读取数据时,首先需要提供所需数据的地址,然后在数据总线上读取数据。在写入数据时,需要提供要写入的数据和目标地址。

NOR闪存的逻辑结构由一系列存储单元组成,每个存储单元包含一个字节或多个字节的数据。这些存储单元按照类似于RAM的方式进行编址,并且可以被随机访问。

NOR闪存的逻辑结构也包括一些特殊的区域,如引导扇区和保留扇区。引导扇区通常用于存储引导代码,而保留扇区可以用于存储特殊的数据或配置信息。

总的来说,NOR闪存的外部接口和逻辑结构相对简单,但其读取速度比较慢,而且对于大容量存储需要占用较大的物理空间。因此,NOR闪存通常用于对速度要求较高、容量较小的应用中。

 

 

 2.NOR内存的区块划分

NOR闪存的逻辑结构可以划分为多个块,每个块可以独立擦除和编程。块的大小通常是64KB或128KB,可以由闪存厂商定义和决定。

通常情况下,NOR闪存的块划分为以下几个区域:

  1. Boot Block:用于存储引导程序。通常大小为16KB或32KB。
  2. Parameter Block:用于存储设备参数,如硬件配置信息、序列号等。通常大小为16KB。
  3. Main Block:主要用于存储程序代码和数据,是最大的存储区域。
  4. Spare Block:备用块,主要用于备份关键数据,如文件系统的元数据等。

这些块的划分可以根据实际需求进行定制,不同厂商可能会有不同的划分方式。

 

 

 总结:

只读存储器(ROM)是一种用于存储程序和数据的非易失性存储器,其内容在生产时被编程,无法被擦除或修改。以下是只读存储器的重点和难点以及易错点:

重点:

  • 只读存储器是一种非易失性存储器,通常用于存储固定的程序代码和数据。
  • 只读存储器的内容在生产时被编程,无法被擦除或修改。
  • 只读存储器的访问速度较快,但容量较小。
  • 只读存储器有多种类型,如ROM、PROM、EPROM和EEPROM等。

难点:

  • 只读存储器的内容是固定的,无法修改,因此需要在设计和生产阶段确定好存储的内容,这需要对存储的需求有清晰的了解和预判。
  • 只读存储器的编程和生产成本较高,因此需要仔细考虑设计和生产成本的平衡。

易错点:

  • 在使用只读存储器时,需要确保正确的引脚接线,以避免读取或写入错误的存储位置。
  • 只读存储器的容量通常较小,如果存储需求超过容量,则需要考虑其他存储器类型或数据压缩等方法。
  • 如果使用EEPROM存储器,需要注意其擦除和编程的次数限制,避免过度使用而导致存储器失效。

 


http://www.ppmy.cn/news/58753.html

相关文章

从零开始学架构——异地多活架构

业务高可用的保障:异地多活架构 无论是高可用计算架构,还是高可用存储架构,其本质的设计目的都是为了解决部分服务器故障的场景下,如何保证系统能够继续提供服务。但在一些极端场景下,有可能出现所有服务器都出现故障…

【redis】redis红锁Redlock算法和底层源码分析

【redis】redis红锁Redlock算法和底层源码分析 文章目录 【redis】redis红锁Redlock算法和底层源码分析前言一、当前代码为8.0版,接上一步分布式锁的主要考点lock加锁关键逻辑unlock解锁关键逻辑 二、redis分布式锁-Redlock红锁主页说明:目前所写的分布式锁还有什么…

代码随想录算法训练营第十一天|20 有效的括号 1047 删除字符串中所有相邻重复项 150 逆波兰表达式求值

文章目录 20 有效的括号思路代码总结 1047 删除字符串中所有相邻重复项思路代码总结 150 逆波兰表达式求值思路代码总结 20 有效的括号 思路 思路很经典,用栈寻找匹配括号 但是自己在实现的过程中,有一种情况没想到: 字符串第一个就是右括号…

如何写出高质量代码

一、 前言 编写高质量代码是每一位程序员的追求。高质量的代码可以提高代码可读性、可维护性、可扩展性以及软件运行的性能和稳定性。在这篇文章中,我将分享一些编写高质量代码的特征、编程实践技巧和软件工程方法论。 二、高质量代码的特征 可读性:好的…

Retrofit examples

https://square.github.io/retrofit/ Retrofit是一个基于Java的RESTful API库,它可以让开发者更加方便地处理HTTP请求和响应。 使用例子 以下是一个简单的 Retrofit 框架使用示例: 首先,在项目的 build.gradle 文件中添加 Retrofit 依赖&am…

Android 源码浅析:Leakcanary 内存泄漏检测的好帮手

我们一起来分析一下大名鼎鼎的 Leakcanary, 想必作为 Android 开发都多多少少接触过,新版本的 Leakcanary 也用 Kotlin 重写了一遍,最近详细查看了下源码,分享一下。 tips:本来是只想分析下内存泄漏检测部分&#xff…

Java并发编程基础知识概述

前言 在现代计算机系统和服务器中,多线程并行执行已经成为常态,而且并发编程能够充分利用系统资源,提高程序处理效率和质量。因此,Java并发编程是Java程序员必须掌握的重要技能之一。 线程和进程 在操作系统中,进程是…

python异常及其捕获

文章目录 异常的捕获异常是可传递的 异常的捕获 1.为什么要捕获异常? 在可能发生异常的地方,进行捕获。当异常出现的时候,提供解决方式,而不是任由其导致程序无法运行。 2.捕获异常的语法? try: 可能要发生异常的语句 except 异常名 as 别…