当前位置: 首页 > news >正文

[计算机科学#6]:从锁存器到内存,计算机存储的构建与原理

[LOGO]:CoreKSets

           【核知坊】:释放青春想象,码动全新视野。          

            我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!!          


内容摘要在上一篇文章中,我们深入了解了计算机如何通过二进制进行高效加法计算。然而,计算仅仅是计算机功能的一部分,如何保存这些计算结果也很重要。存储对于计算机而言,就如同人类的记忆一样不可或缺。我们通过记忆保存信息,以便在未来需要时能够随时调用。计算机虽然不会像人脑那样“遗忘”,但如果没有存储机制,它将无法保存任何数据,每次计算的结果都会在瞬间消失。本文将带你走进计算机存储的世界,从基础的寄存器到复杂的内存模块,逐步揭开计算机存储的基本原理。

关键词:状态保持 RAM 内存


其他相关文章:

[计算机科学#5]:计算机的“数学大脑”——核心部件ALU揭秘-CSDN博客

[计算机科学#4]:二进制如何塑造数字世界(0和1的力量)-CSDN博客

[计算机科学#3]:布尔逻辑 (计算机数学基础)-CSDN博客

1. 常见存储器


        存储器是计算机系统中用于存储数据的关键组件,尽管存在多种类型,但它们的核心功能都是存储数据。不同存储器的主要区别在于是否持久存储(数据是否在断电后保留)和存储速度(读写数据的快慢)。易失性存储器(如RAM)在断电后会丢失数据,但读写速度快,适合临时存储;而非易失性存储器(如ROM、闪存、硬盘)则能在断电后保留数据,适合长期存储。这些特性决定了它们各自的应用场景和成本效益。

1.1 RAM(随机存储)

        RAM是计算机中用于临时存储数据的关键组件,支持快速的随机读写操作,适合频繁的数据访问。例如,当你在电脑上玩游戏时,游戏的实时状态(如角色位置、任务进度等)会被存储在 RAM 中,以便快速读取和更新。然而,RAM 是易失性存储器,一旦断电,数据就会丢失。因此,游戏进度需要定期保存到硬盘等非易失性存储设备中。RAM 的常见类型包括 DRAM(动态随机存取存储器),它通过电容器存储数据,但需要定期刷新以保持数据完整性。

1.2 SRAM(静态存储)

        SRAM是 RAM 的一种类型,使用锁存器存储数据,因此不需要定期刷新,数据在电源持续供应的情况下可以长期保持。SRAM 的速度通常比 DRAM 更快,功耗更低,但成本更高,因此常用于对速度和稳定性要求较高的场景,如 CPU 缓存和高端显卡。例如,在游戏主机中,SRAM 可能用于存储地图数据或角色状态,以便快速读取并确保数据的稳定性。

1.3 DRAM(动态随机存取存储器)

        DRAM是RAM的一种,使用电容器存储数据,需要定期刷新以保持数据完整性。它比SRAM成本更低,但速度较慢,功耗更高。由于其成本效益,DRAM是现代计算机主内存的主要组成部分,用于存储操作系统、应用程序和当前正在处理的数据。

1.4 ROM(只读存储器)

        ROM是一种非易失性存储器,数据在制造过程中写入,通常不可更改。它用于存储固件或系统软件,如BIOS或路由器固件。ROM用于存储启动程序和系统级软件,这些软件在设备启动时加载,用于初始化硬件和操作系统。

1.5 PROM(可编程只读存储器)

        PROM是一种可编程的非易失性存储器,用户可以在制造后写入数据,但写入后通常不可更改。PROM用于存储定制的固件或配置数据,例如嵌入式系统中的启动代码。

1.6 EPROM(可擦写可编程只读存储器)

        EPROM是一种可擦写的非易失性存储器,数据可以通过紫外线照射擦除,然后重新编程。EPROM用于需要多次更新固件的场景,例如开发阶段的嵌入式系统。

1.7EEPROM(电可擦写可编程只读存储器)

        EEPROM是一种可以通过电信号擦写数据的非易失性存储器,擦写速度快,支持多次写入。EEPROM用于存储需要频繁更新的小量数据,如设备的配置参数或用户设置。

1.8 Flash Memory(闪存)

        闪存是一种非易失性存储器,数据在断电后仍然保留。它结合了EEPROM的优点,但具有更高的密度和更低的成本。闪存广泛应用于USB闪存驱动器、固态硬盘(SSD)、智能手机和嵌入式设备中,用于存储操作系统、应用程序和用户数据。

1.9 NVRAM(非易失性随机存取存储器)

        NVRAM是一种非易失性存储器,结合了RAM的随机存取特性和非易失性存储器的数据保留能力。它通常使用电池或其他电源技术来保持数据。NVRAM用于需要在断电时保留数据的场景,例如工业控制系统和某些嵌入式设备。

1.10磁盘存储(HDD/SSD)

        硬盘驱动器(HDD)和固态硬盘(SSD)是用于长期存储数据的设备。HDD使用磁性介质存储数据,而SSD使用闪存技术。磁盘存储用于存储操作系统、应用程序、用户文件和其他大量数据,是计算机系统的主要存储设备。

2. 锁存器


2.1 AND-OR 锁存器

        AND-OR锁存器是一种基础的数字电路存储元件,具有独特的功能和结构特点。它能够存储一个比特的信息,即0或1,通过反馈机制保持输出状态,直到被新的输入信号改变。这种锁存器有两个主要输入:“置位”输入和“复位”输入。置位输入用于将锁存器的输出设置为1,而复位输入则用于将输出设置为0。当置位和复位输入均为0时,锁存器会保持其当前的输出状态不变,这意味着它可以“记住”之前存储的值,即使在没有新的输入信号时也能保持稳定。但是,AND-OR锁存器的置位和复位输入不能同时为1,否则会导致锁存器的输出状态不确定。这种互斥特性要求在实际应用中对输入信号进行严格控制,以避免冲突。

2.2 GATED 锁存器

        上述内容你可能看后感觉非常不易理解,于是我们对其进行改进,将它封装为一个更容易理解的锁存器部件,该部件有2个输入:DATA_INPUT(需要配置存储的数据,0或1) 和 WRITE_ENABLE(读写开关,配置1可以随意更改输出,配置0只能读取不能修改),一个输出DATA_OUPT。

3. 寄存器


        寄存器由一组锁存器组成,可以同时存储多位二进制,寄存器存储的位数就叫做位宽。常见的寄存器位宽有,8位、16位、32位、64位,当今的大多数电脑位宽都是32位和64位。寄存器的主要特点是其读写速度非常快,通常比主内存(RAM)的访问速度要快得多。它们通常位于CPU内部或靠近CPU的位置,用于存储CPU在执行程序时需要频繁访问的数据,如指令地址、操作数、中间结果等。寄存器的使用可以显著提高计算机的运行效率,因为它们减少了对主内存的访问次数。

        如图,8位寄存器由8个锁存器组成,通过一根控制线统一管理这些锁存器的读写操作。当这根控制线激活写功能时,数据输入端的每一位都可以被写入到对应的锁存器中,从而更新寄存器的输出状态。而当写功能关闭(即进入只读模式)时,即使输入端的数据发生变化,锁存器中之前保存的状态也不会被修改。由于这根控制线同时管理所有8个锁存器的写操作,因此这种操作被称为“写入一个字节(8位)”。

4.矩阵寄存器


        随着对存储容量需求的增加,单纯通过扩展8位寄存器的方式(如直接并排放置更多锁存器)来构建16位、32位或64位寄存器变得越来越不灵活。这种简单扩展不仅会导致线路复杂度急剧增加,还会显著提高硬件成本和控制难度。因此,研究人员们探索了更高效的设计方法。

        他们采用了一种矩阵形式的布局,将锁存器规则地排列成网格状,利用行线和列线的交叉点来唯一标识每个锁存器。通过在矩阵中增加一些逻辑门,可以精确地控制任何一个锁存器,从而实现对任何一个数据位的读写操作。然而,如果直接使用行和列的交叉位置来控制每个锁存器,会导致控制线路数量过多,从而增加控制成本。

        为了优化这一过程,研究人员利用了二进制的特性。他们将锁存器的位置用行列序号来表示,而这些序号则用二进制形式表示。通过这种方式,每个锁存器都可以通过一个唯一的地址来标识。这种使用二进制序号来标识锁存器位置的方法被称为地址。通过地址机制,可以高效地定位和访问矩阵中的任何一个锁存器,从而显著减少了控制线路的数量,并简化了整体的控制逻辑。

        通过该方式我们可以拓展更大的不同规模的寄存器矩阵,例如256(8位地址),1024(10位地址),2048(11位地址)等寄存器。

5.更大的存储器


        通过矩阵布局和地址编码的方式,可以高效地将小型寄存器块组合成更大容量的寄存器系统。例如,我们可以使用8个256比特的寄存器块,通过8条数据地址线来精确选择每个寄存器块中的任意一个比特位。同时,利用3条存储块片选地址线来确定操作哪一个256比特的寄存器块。此外,仅需一条数据线即可输入待存储的数据位,而读写操作则通过单独的读写控制线来管理。这种设计不仅优化了线路数量,还提高了存储系统的灵活性和可扩展性。

        6.寄存器表


        在许多应用场景中,为了更直观地使用和管理寄存器,我们常常将寄存器抽象为一张数据和地址对应的表格。这种表格形式的表示方法能够清晰地展示每个寄存器的地址以及其对应的数据内容,使得开发者可以快速定位和操作所需的寄存器。

        对于那些经常接触嵌入式系统的开发者来说,这种表格形式的寄存器表示在各种模块的说明文档中屡见不鲜。例如,在微控制器或嵌入式芯片的文档中,寄存器表格通常会详细列出每个寄存器的地址、名称、位宽、默认值以及功能描述。通过这些表格,开发者可以轻松地了解如何通过特定的地址访问和修改寄存器中的数据,从而实现对硬件模块的精确控制。

文章总结


        从简单的锁存器到复杂的内存模块,计算机存储系统的发展经历了漫长的过程。寄存器和内存作为计算机存储体系的核心部分,各自承担着不同的任务。寄存器用于快速存储和处理数据,而内存则为计算机提供了广阔的工作空间。通过合理的存储组织方式和高效的寻址机制,计算机能够高效地管理海量数据,从而实现复杂的计算任务。在未来,随着技术的不断进步,计算机存储系统还将继续发展。例如,新型存储介质如闪存(Flash)和相变存储器(PCM)的出现,为计算机存储带来了新的可能性。这些存储介质具有更高的存储密度、更快的读写速度和更低的功耗,有望进一步提升计算机的性能和效率。无论技术如何发展,存储始终是计算机不可或缺的一部分,它将陪伴着计算机不断前行。

        感谢阅览,如果你喜欢该内容的话,可以点赞,收藏,转发。由于 Koro 能力有限,有任何问题请在评论区内提出,Koro 看到后第一时间回复您!!!


其他精彩内容:

[计算机科学#1]:计算机的前世今生,从算盘到IBM的演变之路-CSDN博客

[计算机科学#2]:从继电器到晶体管的电子计算机发展史(庞然大物的进化)-CSDN博客


参考内容:

Crash Course Computer Science(Y-T)

相关文章:

  • 安装kubernetes 1.33版本
  • C++负载均衡远程调用学习之Reactor事件触发机制
  • 基于用户场景的汽车行驶工况构建:数据驱动下的能耗优化革命
  • Unity编辑器扩展之导出项目中所有Script里面的文本内容
  • SpringBoot+EasyExcel+Mybatis+H2实现导入
  • Spring Security 6
  • Android学习总结之算法篇六(数组和栈)
  • 毕业论文 | 基于C#开发的NMEA 0183协议上位机
  • 详解 MyBatis-Plus 框架中 QueryWrapper 类
  • 青少年抑郁症患者亚群结构和功能连接耦合的重构
  • Helm部署kong+konga的路由管理系统
  • el-tabs与table样式冲突导致高度失效问题解决(vue2+elementui)
  • 【STM32实物】基于STM32的RFID多卡识别语音播报系统设计
  • Windows和 macOS 上安装 `nvm` 和 Node.js 16.16.0 的详细教程。
  • Electron Forge【实战】带图片的 AI 聊天
  • Mac下安装Python3,并配置环境变量设置为默认
  • pinia-plugin-persistedstate的使用
  • 左右分屏电商带货视频批量混剪自动剪辑生产技术软件:智能剪辑与合规化方案解析
  • [特殊字符] 开发工作高内存占用场景下,Windows 内存压缩机制是否应该启用?实测分析与优化建议
  • Gradio全解20——Streaming:流式传输的多媒体应用(1)——流式传输音频:魔力8号球
  • 乌副总理:乌美签署矿产协议
  • 新华时评:防范安全事故须臾不可放松
  • 庄语乐︱宋代历史是被“塑造”出来的吗?
  • IMF前副总裁朱民捐赠1000万元,在复旦设立青云学子基金
  • “乐购浦东”消费券明起发放,多个商家同期推出折扣促销活动
  • 发挥全国劳模示范引领作用,加速汽车产业电智化转型