📢博客主页:https://blog.csdn.net/2301_779549673
📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 JohnKi 原创,首发于 CSDN🙉
📢未来很长,值得我们全力奔赴更美好的生活✨
文章目录
- 📢前言
- 🏳️🌈一、主存储器概述
- 🏳️🌈二、SRAM 与 DRAM 对比
- 🏳️🌈三、主存储器内部结构
- 🏳️🌈四、ROM 的种类与特点
- 🏳️🌈五、多模块存储器及字位拓展法
- 👥总结
📢前言
在计算机考研 408 的漫漫征途中,主存储器无疑是一座关键的知识堡垒。主存储器作为计算机系统的核心组成部分,其性能和结构直接影响着整个计算机的运行效率。对于备考 408 的学子们来说,深入理解主存储器的各个方面,包括 SRAM 和 DRAM 的特性对比、内部结构、基本组成,ROM 的不同类型,以及多模块存储器和字位拓展法等内容,不仅是应对考试的必要之举,更是为日后深入学习计算机体系结构奠定坚实的基础。本文将系统地对考研 408 中主存储器的相关知识进行深度解析,助力考生们攻克这一重要考点。
🏳️🌈一、主存储器概述
主存储器在计算机组成中占据着至关重要的地位。它是计算机系统的核心组成部分之一,直接影响着计算机的性能和运行效率。
在考研 408 中,主存储器涵盖了多个重要的知识点。首先,主存储器包括随机存取存储器(RAM)和只读存储器(ROM)。RAM 又分为静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。SRAM 通常由 MOS 管组成,速度快但成本高;DRAM 则利用电容的电荷存储信息,需要不断刷新,成本相对较低。
下图左边是DRAM的一个存储元,右边是SRAM的一个存储元
主存储器与 CPU 的连接也是一个重要的考点。CPU 通过地址线访问存储器的 MAR(地址寄存器),从主存储器中读取指令和数据。主存储器的容量和速度对计算机的性能有着重要影响。一般来说,主存储器的容量越大,可以存储的程序和数据就越多;速度越快,CPU 与主存储器之间的数据交换就越高效。
此外,多模块存储器也是主存储器的一个重要方面。多模块存储器可以提高存储器的访问速度,常见的有高位交叉编址和低位交叉编址两种方式。
🏳️🌈二、SRAM 与 DRAM 对比
(一)存储原理差异
SRAM 使用触发器来存储数据,每个存储元由多个触发器构成,能呈现出两种稳定状态,分别对应二进制的 0 和 1。由于这种设计,SRAM 在读出数据后,数据状态依然保持稳定,属于非破坏性读出。而 DRAM 使用电容器来存储数据,通过电容的充放电来表示二进制信息。当对 DRAM 进行读操作时,电容中的电荷会被释放,导致信息被破坏,所以需要进行重写操作,即给电容重新充电。
(二)寻址方式区别
SRAM 采用单一地址寻址,同时送出行地址和列地址,把行地址和列地址拼接起来作为一次读写访问的地址,然后放到地址线上。
而 DRAM 分两次送行列地址,先送出行地址,选中一整行存储单元,再送入列地址,从该行中选中特定的存储单元。这种寻址方式使得 DRAM 需要更多的控制逻辑,但可以减少地址线的数量。
所以,假设一个用 DRAM,采用地址复用技术,容量是 1024 * 8位
则它的地址引脚为 1024 = 210,因为每根引脚能提供 0 或 1 的数据,地址复用技术分次输入 行
列
地址,所以仅需要5根地址引脚,即:行(25) *
列(25),就能实现
数据引脚能够提供8位的数据即可,所以需要8根数据引脚
总的来说,需要13根引脚
(三)芯片特性不同
在读写速度方面,SRAM 的读写速度非常快,远高于 DRAM。这是因为 SRAM 的存储元结构简单,不需要进行额外的刷新操作。而 DRAM 由于需要不断刷新电容中的电荷,所以读写速度相对较慢。在功耗方面,SRAM 在读写过程中消耗的功耗更低。相比之下,DRAM 需要定期刷新电容,功耗较高。在集成度方面,DRAM 具有较高的集成度,可以使用一个晶体管和一个电容器来存储一个比特的信息,因此可以实现更大的存储容量。而 SRAM 的存储元需要六个晶体管,集成度相对较低,难以制造大容量的存储器。
(四)刷新需求差异
DRAM 因电容电荷易流失,需要定期刷新。通常存储器里采用的电容,电荷只能维持两毫秒的时间。因此,在两毫秒之内必须给 DRAM 中的电容刷新一次,也就是给电容充电。刷新操作由专门的刷新电路支持,会直接读出一整行的存储单元的信息然后重新写入,耗时和一个读写周期的耗时差不多。而 SRAM 只要不断电,存储在其中的数据就不会丢失,无需刷新。
🏳️🌈三、主存储器内部结构
(一)存储体构成
存储体是主存储器的重要组成部分。存储体由许多存储单元组成,每个存储单元又包含若干个存储元件。存储单元可以看作是存储二进制代码的容器,一个存储单元能够存储一连串的二进制代码,这串二进制代码被称为一个存储字。而存储元件则可以存储一位二进制数 0 或 1。
例如,存储体就如同一栋大楼,大楼内有很多个房间,这些房间就相当于存储单元,每个房间又有很多个床位,床位就如同存储元件。二进制代码 0 和 1 可以分别表示不同的对象。存储单元在存储体中是有编号的,这些编号称为存储单元的地址号。存储单元地址的分配有大端、大尾方式和小端、小尾方式两种。存储单元是按地址寻访的,这些地址同样都是二进制的形式。
(二)MAR 和 MDR 的作用
MAR(存储地址寄存器) 保存的是存储单元的地址,其位数反映了存储单元的个数。比如有 32 个存储单元,而存储单元的地址是用二进制来表示的,那么 5 位二进制数就可以表示 32 个存储单元,此时 MAR 的位数就是 5 位。在实际运用中,知道了 MAR 的位数,就可以确定存储单元的个数。
MDR(存储数据寄存器) 存放的是从存储元件读出,或者要写入某存储元件的数据(二进制数)。如果 MDR = 16,即每个存储单元进行访问的时候,数据是 16 位,那么存储字长就是 16 位。MDR 的位数反映存储字长。
(三)主存储器与 CPU 工作原理
在现代计算中,主存储器和 CPU 的数据交换是通过一系列控制信号实现的。CPU 中的控制器要给主存发送一系列的控制信号,包括读写命令、地址译码或者发送驱动信号等等。主存由半导体元件和电容器件组成,驱动器、译码器、读写电路均位于主存储芯片中。MAR、MDR 位于 CPU 的内部芯片中。存储芯片和 CPU 芯片通过系统总线(数据总线、系统总线)连接。
当要完成一个完整的读取操作时,首先 CPU 中的控制器发出读命令等控制信号,通过地址总线将存储单元的地址从 MAR 传输到主存储器。主存储器根据地址找到相应的存储单元,将存储单元中的数据通过数据总线传输到 MDR,再由 MDR 传输到 CPU 内部进行处理。在写入操作时,CPU 将数据加载到 MDR 中,将要写入数据的内存地址加载到 MAR 中,然后发出写入数据的指令,将 MDR 中的数据写入到 MAR 指示的内存位置。
🏳️🌈四、ROM 的种类与特点
(一)MROM
MROM(Mask-programmed ROM),即掩膜编程的只读存储器。这种类型的 ROM 是在制造过程中由厂家通过掩膜技术写入数据,一旦生产完成,数据就无法更改。客户不能对其进行重写操作,这使得 MROM 的灵活性较差。然而,正因为其数据在制造后就固定不变,所以具有很高的可靠性。在一些对数据稳定性要求极高且不需要更改数据的应用场景中,MROM 发挥着重要作用。
(二)PROM
PROM(Programmable ROM),可编程只读存储器。用户可以使用专门的写入器对 PROM 进行一次编程,将数据写入其中。但在写入完成后,就不能再进行更改。这种特性使得 PROM 在一些特定的应用中具有一定的优势,比如在一些需要固定数据但又不希望数据被随意更改的场合。
(三)EPROM
EPROM(Erasable Programmable ROM),可擦除可编程只读存储器。用户可以对 EPROM 进行擦除操作,然后重新写入数据。EPROM 主要分为两种类型:UVEPROM(紫外线擦除可编程只读存储器)和 EEPROM(Electrically Erasable Programmable ROM,电可擦除可编程只读存储器)。UVEPROM 需要通过紫外线照射一定时间才能擦除数据,然后进行重新编程。而 EEPROM 则可以通过电信号进行擦除和编程操作,更加方便快捷。
(四)Flash Memory
Flash Memory,即闪存。闪存可以进行多次快速的擦除和重写操作,具有较高的位密度。虽然闪存可以进行读写操作,但它仍然被归为 ROM 的一种类型。这是因为闪存的写入操作相对较慢,而且在写入之前通常需要先进行擦除操作。此外,闪存的擦除和写入次数也是有限的。闪存广泛应用于各种存储设备中,如 U 盘、固态硬盘等。
(五)SSD
SSD(Solid State Drive),固态硬盘。固态硬盘主要由闪存芯片组成,用于存储数据。同时,固态硬盘还需要一个控制单元来控制数据的读写操作。固态硬盘具有很多优点,比如读写速度快、抗震性好、功耗低等。据统计,固态硬盘的读写速度可以达到传统机械硬盘的数倍甚至数十倍。此外,固态硬盘没有机械部件,所以在抗震性方面表现出色,即使在受到震动或冲击的情况下,也不容易损坏数据。而且,固态硬盘的功耗相对较低,有助于延长设备的电池续航时间。然而,固态硬盘也存在一些缺点。首先,固态硬盘的价格相对较高,尤其是大容量的固态硬盘。其次,固态硬盘的写入寿命是有限的,虽然目前的固态硬盘技术已经大大提高了写入寿命,但在长期大量写入数据的情况下,仍然可能会出现故障。最后,固态硬盘的数据恢复难度较大,如果固态硬盘出现故障,数据恢复的成功率相对较低。
🏳️🌈五、多模块存储器及字位拓展法
(一)主存容量扩展方法
-
位扩展法:当 CPU 的数据线与存储芯片的数据位数不一致时,可以采取位扩展的方式。例如,若 CPU 有 8 根数据线,而存储芯片是 8K×1 位的芯片,213=8K,因此需要 13 根地址线。一个芯片只有一个输出数据,也就是只有一个数据线,所以需要 8 个这样的芯片才能满足 CPU 的 8 位数据线的要求。位扩展的连接方式是将多个存储芯片的地址端、片选端和读写控制端相应并联,数据端分别引出。当 CPU 发出寻址指令后,同一时间对多个存储芯片进行寻址,多个芯片同一时间返回数据,同时到达 CPU 的数据端。
-
字扩展法:字扩展是指增加存储器中字的数量,而位数不变。将多个一字节存储芯片的数据线同时并到 CPU 的数据线,片选线进行选通,可以避免数据的混乱。当 CPU 发出寻址指令后,同一时间只对一个存储芯片进行寻址,这个芯片返回数据,到达 CPU 的数据端。字扩展将芯片的地址线、数据线、读写控制线并联,由片选信号来区分各芯片。
-
字位同时扩展法:字位同时扩展指既增加存储字的数量,又增加存储字长。采用字位同时扩展时,各芯片连接地址线的方式相同,但是连接数据线的方式不同,而且需要通过片选信号或译码器设计连接到相应的芯片。例如,先进行两个 16K×4 位的芯片进行位扩展,此时就构成了 16K×8 位的芯片,然后水平扩展 4 个进行字扩展,最终形成了一个 64K×8 位的容量的芯片(214=16K)。
(二)存储芯片地址分配与片选
线选法: 使用一个地址线对应一个芯片。优点是不需要地址译码器,线路简单,选择芯片无须外加逻辑电路,仅适用于连接存储芯片较少的场合。缺点是不能使用连续空间,因为片选地址每次寻址时只能有一位有效,不允许同时有多位有效。例如,A13、A14 只能取值 10 或 01,其空间范围是 (10 0000…0000 到 10 1111…1111) 和 (01 0000…0000 到 01 1111…1111),其中 00 xxxx…xxxx 和 11 xxxx…xxxx 空间没有使用到。
译码片选法: 用除片内寻址外的高位地址线通过地址译码器芯片产生片选信号。优点是地址空间连续,n 条地址线经过译码器可以转化成 2n 个不同的芯片编号。以 A13、A15 为片选信号为例,片选信号的 A14 为无效信号,可以为任何值,而 A13 和 A15 决定了芯片选取。
(三)多体并行存储器
高位交叉编址: 程序按照体内地址顺序存放(一个体存满后,再存入下一个体),高位地址表示体号,低位地址为体内地址。优点是某一组的故障不影响其他组,且容易通过添加模块来扩充容量;由于体内地址连续,有利于存储器扩充。缺点是相邻地址单元的数据放在同一组存储单元,各组间串行工作,不利于提升存储器的带宽。
低位交叉编址: 程序连续存放在相邻体中,低位地址用来表示体号,高位地址为体内地址。这种编址方式又称为模 M 编址(M 等于模块数),一般模块数取 2 的方幂,使硬件电路比较简单。优点是相邻地址单元的数据放在不同组,各组可以并行工作,能较好提高存储器的带宽;采用流水线的方式并行存取,在不改变每个模块的存取周期的前提下,提高整个主存的速度。例如,一个 4 体并行低位交叉存储器,每个模块的容量是 64K×32 位,存取周期为 200ns,在 200ns 内,存储器能向 CPU 提供 128 位二进制信息。缺点是某一组出现故障,会影响整个存储器的正常工作。
多模块存储器的优势和实际应用: 多模块存储器是一种空间并行技术,利用多个结构完全相同的存储模块的并行工作来提高存储器的吞吐率。例如,当一个存储体正在和 CPU 交换信息时,另一个存储体可同时与外部设备进行直接存储器访问,实现两个体并行工作。多模块存储器可以提高存储器的访问速度,满足 CPU 对数据的快速需求,广泛应用于计算机系统中。
👥总结
本篇博文对 主存储器 做了一个较为详细的介绍,不知道对你有没有帮助呢
觉得博主写得还不错的三连支持下吧!会继续努力的~