计算机组成原理——存储系统(二)

news2025/2/6 8:53:34

🌱 "人生最深的裂痕,往往是光照进来的地方。
别怕脚下的荆棘,那是你与平庸划清界限的勋章;别惧眼前的迷雾,星辰永远藏在云层之上。真正的强者不是从未跌倒,而是把每一次踉跄都踏成攀登的阶梯。记住:种子破土前要经历黑暗,蝴蝶展翅前要独自破茧,你此刻的坚持终会化作破晓的曙光。
奔跑时不必时刻仰望终点,但永远别停下丈量土地的双脚。那些咬牙撑过的深夜孤灯,那些含泪播种的倔强岁月,终会在某个清晨开出漫山遍野的绚烂。
你的未来不在别人的眼光里,而在你紧握方向盘的掌纹中。去成为风,而不是等待被吹动的旗;去雕刻时光,而不是被岁月雕刻。当你比昨天的自己多走了一步,整个世界都会为你让路。
向前走,莫回头——时光终会为你的坚持加冕。" 🌟

计算机组成原理资源网

https://www.wenjingketang.com/这里面有ppt课后习题及答案,需要的可以自行下载

目录

4.2 半导体存储器

4.2.1 半导体存储芯片的基本结构

1. 存储单元阵列

2. 地址译码器

3. 读写控制电路

4. 数据输入输出缓冲器

4.2.2 随机存储器(RAM)

1. 静态随机存储器(SRAM)

2. 动态随机存储器(DRAM)

3. SRAM与DRAM的比较

4.2.3 只读存储器(ROM)和闪速存储器(Flash Memory)

1. 只读存储器(ROM)

2. 闪速存储器(Flash Memory)

3. ROM与Flash Memory的比较

4.3 主存储器与CPU的连接

4.3.1 连接原理

1. 地址总线

2. 数据总线

3. 控制总线

4. 时序控制

4.3.2 主存容量的扩展

1. 位扩展

2. 字扩展

3. 字位同时扩展

4. 存储器模块

5. 存储器控制器

总结


4.2 半导体存储器

半导体存储器是现代计算机系统中不可或缺的组成部分,主要用于存储程序和数据。它具有速度快、体积小、功耗低等优点,广泛应用于计算机的主存储器、缓存、嵌入式系统等。半导体存储器主要分为随机存储器(RAM)和只读存储器(ROM)两大类。本节将详细介绍半导体存储器的基本结构、分类及其工作原理。

4.2.1 半导体存储芯片的基本结构

半导体存储芯片的基本结构包括存储单元阵列、地址译码器、读写控制电路和数据输入输出缓冲器等部分。

1. 存储单元阵列

存储单元阵列是存储芯片的核心部分,由大量的存储单元组成。每个存储单元可以存储一个二进制位(0或1)。存储单元通常以矩阵形式排列,行和列分别由地址译码器控制。常见的存储单元有静态随机存储器(SRAM)单元和动态随机存储器(DRAM)单元。

  • SRAM单元:SRAM单元通常由6个晶体管组成,具有较快的访问速度,但占用面积较大,功耗较高。SRAM单元不需要刷新操作,数据可以长期保持。

  • DRAM单元:DRAM单元通常由1个晶体管和1个电容组成,占用面积较小,功耗较低,但需要定期刷新以保持数据。DRAM的访问速度相对较慢。

2. 地址译码器

地址译码器用于将CPU发出的地址信号转换为存储单元阵列中的具体行和列地址。地址译码器通常分为行地址译码器和列地址译码器。行地址译码器选择存储单元阵列中的某一行,列地址译码器选择该行中的某一列,从而定位到具体的存储单元。

3. 读写控制电路

读写控制电路用于控制存储单元的读写操作。当CPU发出读信号时,读写控制电路将选中的存储单元中的数据读出并送到数据输出缓冲器;当CPU发出写信号时,读写控制电路将数据输入缓冲器中的数据写入选中的存储单元。

4. 数据输入输出缓冲器

数据输入输出缓冲器用于暂存CPU与存储芯片之间的数据。在读操作时,数据从存储单元阵列中读出并暂存到输出缓冲器中,然后送到CPU;在写操作时,数据从CPU送到输入缓冲器中,然后写入存储单元阵列。

4.2.2 随机存储器(RAM)

随机存储器(Random Access Memory,RAM)是一种易失性存储器,即断电后数据会丢失。RAM的主要特点是可以通过地址随机访问任意存储单元,且读写速度较快。RAM主要分为静态随机存储器(SRAM)和动态随机存储器(DRAM)两种。

1. 静态随机存储器(SRAM)

SRAM的存储单元由6个晶体管组成,具有较快的访问速度和较低的功耗。SRAM不需要刷新操作,数据可以长期保持,因此常用于高速缓存(Cache)等对速度要求较高的场合。

  • SRAM的结构:SRAM的存储单元由两个交叉耦合的反相器组成,形成一个双稳态电路。每个存储单元可以存储一个二进制位,且只要电源不断,数据就可以一直保持。

  • SRAM的读写操作:在读操作时,行地址译码器选中某一行,列地址译码器选中某一列,选中的存储单元中的数据通过读写控制电路送到数据输出缓冲器。在写操作时,数据从数据输入缓冲器写入选中的存储单元。

2. 动态随机存储器(DRAM)

DRAM的存储单元由1个晶体管和1个电容组成,具有较高的存储密度和较低的功耗。DRAM需要定期刷新以保持数据,因此常用于主存储器等对容量要求较高的场合。

  • DRAM的结构:DRAM的存储单元由一个晶体管和一个电容组成。电容用于存储电荷,表示二进制位0或1。由于电容会逐渐漏电,因此需要定期刷新以保持数据。

  • DRAM的读写操作:在读操作时,行地址译码器选中某一行,列地址译码器选中某一列,选中的存储单元中的数据通过读写控制电路送到数据输出缓冲器。在写操作时,数据从数据输入缓冲器写入选中的存储单元。由于DRAM需要刷新操作,因此读写操作相对复杂。

3. SRAM与DRAM的比较

  • 速度:SRAM的访问速度比DRAM快,因为SRAM不需要刷新操作。

  • 容量:DRAM的存储密度比SRAM高,因此DRAM的容量通常比SRAM大。

  • 功耗:SRAM的功耗比DRAM高,因为SRAM的存储单元由6个晶体管组成,而DRAM的存储单元由1个晶体管和1个电容组成。

  • 成本:DRAM的成本比SRAM低,因为DRAM的存储密度高,单位容量的成本较低。

4.2.3 只读存储器(ROM)和闪速存储器(Flash Memory)

只读存储器(Read-Only Memory,ROM)是一种非易失性存储器,即断电后数据不会丢失。ROM的主要特点是数据只能读取,不能写入或只能有限次写入。ROM常用于存储固件、引导程序等不需要频繁修改的数据。闪速存储器(Flash Memory)是一种特殊的ROM,具有较高的存储密度和较快的读写速度,广泛应用于U盘、固态硬盘(SSD)等场合。

1. 只读存储器(ROM)

ROM的主要特点是数据只能读取,不能写入或只能有限次写入。ROM的种类较多,常见的有掩模ROM(Mask ROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)和电可擦除可编程ROM(EEPROM)等。

  • 掩模ROM(Mask ROM):掩模ROM的数据在制造时通过掩模工艺写入,用户无法修改。掩模ROM的成本较低,适用于大批量生产。

  • 可编程ROM(PROM):PROM的数据可以由用户通过编程器写入,但只能写入一次,写入后无法修改。

  • 可擦除可编程ROM(EPROM):EPROM的数据可以由用户通过编程器写入,且可以通过紫外线照射擦除,然后重新写入。EPROM的擦除操作需要专门的紫外线擦除器。

  • 电可擦除可编程ROM(EEPROM):EEPROM的数据可以由用户通过编程器写入,且可以通过电信号擦除,然后重新写入。EEPROM的擦除操作不需要专门的设备,擦写速度较快。

2. 闪速存储器(Flash Memory)

闪速存储器是一种特殊的EEPROM,具有较高的存储密度和较快的读写速度。闪速存储器的存储单元通常由浮栅晶体管组成,数据通过控制浮栅晶体管的电荷状态来存储。闪速存储器的主要特点是可以在块级别进行擦除和写入操作,因此读写速度较快。

  • NOR Flash:NOR Flash的存储单元以并联方式连接,具有较快的随机访问速度,适用于存储程序代码等需要快速读取的数据。

  • NAND Flash:NAND Flash的存储单元以串联方式连接,具有较高的存储密度和较快的连续读写速度,适用于存储大容量数据,如U盘、固态硬盘(SSD)等。

3. ROM与Flash Memory的比较

  • 可写性:ROM的数据只能读取,不能写入或只能有限次写入;Flash Memory可以多次擦写。

  • 速度:Flash Memory的读写速度比ROM快,尤其是NAND Flash的连续读写速度较快。

  • 容量:Flash Memory的存储密度比ROM高,因此Flash Memory的容量通常比ROM大。

  • 成本:Flash Memory的成本比ROM高,因为Flash Memory的制造工艺更复杂。

4.3 主存储器与CPU的连接

主存储器是计算机系统中用于存储程序和数据的主要存储器,通常由DRAM组成。主存储器与CPU之间的连接是计算机系统设计中的重要环节,直接影响系统的性能。本节将详细介绍主存储器与CPU的连接原理及主存容量的扩展方法。

4.3.1 连接原理

主存储器与CPU之间的连接主要通过地址总线、数据总线和控制总线实现。CPU通过地址总线发送地址信号,选择主存储器中的某个存储单元;通过数据总线与主存储器进行数据交换;通过控制总线发送读写控制信号,控制主存储器的读写操作。

1. 地址总线

地址总线用于传输CPU发出的地址信号,选择主存储器中的某个存储单元。地址总线的宽度决定了CPU可以访问的主存储器容量。例如,32位地址总线可以访问2^32个存储单元,即4GB的主存储器容量。

2. 数据总线

数据总线用于传输CPU与主存储器之间的数据。数据总线的宽度决定了CPU与主存储器之间一次可以传输的数据量。例如,64位数据总线一次可以传输8字节的数据。

3. 控制总线

控制总线用于传输CPU发出的控制信号,控制主存储器的读写操作。常见的控制信号包括读信号(RD)、写信号(WR)和片选信号(CS)等。读信号用于指示CPU要从主存储器中读取数据;写信号用于指示CPU要向主存储器中写入数据;片选信号用于选择某个主存储器芯片。

4. 时序控制

主存储器与CPU之间的数据传输需要严格的时序控制。CPU在发出地址信号后,需要等待一定的时间(称为访问时间)才能从主存储器中读取数据或向主存储器中写入数据。访问时间由主存储器的性能决定,通常以纳秒(ns)为单位。CPU与主存储器之间的时序控制通过时钟信号实现,时钟信号的频率决定了数据传输的速度。

4.3.2 主存容量的扩展

随着计算机系统对存储容量需求的增加,主存储器的容量也需要不断扩展。主存容量的扩展主要通过增加存储芯片的数量或使用更大容量的存储芯片实现。主存容量的扩展方法包括位扩展、字扩展和字位同时扩展。

1. 位扩展

位扩展是指通过增加存储芯片的数量来扩展数据总线的宽度。例如,如果每个存储芯片的数据宽度为8位,而CPU的数据总线宽度为32位,则可以通过4个存储芯片进行位扩展,使数据总线的宽度达到32位。

  • 位扩展的实现:在位扩展中,所有存储芯片的地址总线和控制总线并联连接,数据总线分别连接到CPU数据总线的不同位。例如,4个8位存储芯片的数据总线分别连接到CPU数据总线的低8位、次低8位、次高8位和高8位。

2. 字扩展

字扩展是指通过增加存储芯片的数量来扩展地址总线的宽度,从而增加主存储器的容量。例如,如果每个存储芯片的容量为1MB,而CPU的地址总线宽度为32位,则可以通过多个存储芯片进行字扩展,使主存储器的容量达到4GB。

  • 字扩展的实现:在字扩展中,所有存储芯片的数据总线和控制总线并联连接,地址总线通过地址译码器选择不同的存储芯片。例如,4个1MB存储芯片的地址总线分别连接到CPU地址总线的低20位,地址译码器通过CPU地址总线的高12位选择不同的存储芯片。

3. 字位同时扩展

字位同时扩展是指同时进行位扩展和字扩展,以增加主存储器的容量和数据总线的宽度。例如,如果每个存储芯片的容量为1MB,数据宽度为8位,而CPU的地址总线宽度为32位,数据总线宽度为32位,则可以通过16个存储芯片进行字位同时扩展,使主存储器的容量达到16MB,数据总线的宽度达到32位。

  • 字位同时扩展的实现:在字位同时扩展中,存储芯片分为若干组,每组存储芯片进行位扩展,不同组存储芯片进行字扩展。例如,16个8位存储芯片分为4组,每组4个存储芯片进行位扩展,使每组的数据总线宽度达到32位;4组存储芯片通过地址译码器进行字扩展,使主存储器的容量达到16MB。

4. 存储器模块

存储器模块是指将多个存储芯片集成在一个模块中,以方便主存容量的扩展。常见的存储器模块包括单列直插内存模块(SIMM)和双列直插内存模块(DIMM)。存储器模块通过插槽与主板连接,用户可以通过更换或增加存储器模块来扩展主存容量。

  • SIMM:SIMM是一种早期的存储器模块,通常由多个存储芯片组成,数据总线宽度为32位。SIMM模块的两面引脚是并联的,因此插入时不需要区分方向。

  • DIMM:DIMM是一种现代的存储器模块,通常由多个存储芯片组成,数据总线宽度为64位。DIMM模块的两面引脚是独立的,因此插入时需要区分方向。

5. 存储器控制器

存储器控制器是CPU与主存储器之间的接口电路,用于控制主存储器的读写操作。存储器控制器通常集成在CPU或主板芯片组中,负责地址译码、时序控制、刷新控制等功能。存储器控制器的性能直接影响主存储器的访问速度和系统的整体性能。

  • 地址译码:存储器控制器将CPU发出的地址信号转换为存储芯片的行地址和列地址,选择具体的存储单元。

  • 时序控制:存储器控制器根据主存储器的访问时间,控制CPU与主存储器之间的数据传输时序。

  • 刷新控制:对于DRAM,存储器控制器需要定期发出刷新信号,以保持存储单元中的数据。

总结

半导体存储器是现代计算机系统中不可或缺的组成部分,主要包括随机存储器(RAM)和只读存储器(ROM)两大类。RAM具有较快的访问速度,但断电后数据会丢失;ROM具有非易失性,但数据只能读取或只能有限次写入。主存储器与CPU之间的连接通过地址总线、数据总线和控制总线实现,主存容量的扩展可以通过位扩展、字扩展和字位同时扩展实现。存储器模块和存储器控制器是主存容量扩展和访问控制的重要组件。随着计算机系统对存储容量和速度需求的不断增加,半导体存储器的技术也在不断发展,未来将出现更高性能、更大容量的存储器件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2292022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CDDIS从2025年2月开始数据迁移

CDDIS 将从 2025 年 2 月开始将我们的网站从 cddis.nasa.gov 迁移到 earthdata.nasa.gov,并于 2025 年 6 月结束。 期间可能对GAMIT联网数据下载造成影响。

VSCode设置内容字体大小

1、打开VSCode软件,点击左下角的“图标”,选择“Setting”。 在命令面板中的Font Size处选择适合自己的字体大小。 2、对比Font Size值为14与20下的字体大小。

嵌入式学习---蜂鸣器篇

1. 蜂鸣器分类 蜂鸣器是一种电子发声器件,采用直流电压供电,能够发出声音。广泛应用于计算机、打印机、报警器、电子玩具等电子产品中作为发声部件。一般仅从外形不易分辨蜂鸣器的种类。但是有些蜂鸣器使用广泛,见得多了就很容易分辨。例如常…

【优先算法】专题——前缀和

目录 一、【模版】前缀和 参考代码: 二、【模版】 二维前缀和 参考代码: 三、寻找数组的中心下标 参考代码: 四、除自身以外数组的乘积 参考代码: 五、和为K的子数组 参考代码: 六、和可被K整除的子数组 参…

【Linux】使用管道实现一个简易版本的进程池

文章目录 使用管道实现一个简易版本的进程池流程图代码makefileTask.hppProcessPool.cc 程序流程: 使用管道实现一个简易版本的进程池 流程图 代码 makefile ProcessPool:ProcessPool.ccg -o $ $^ -g -stdc11 .PHONY:clean clean:rm -f ProcessPoolTask.hpp #pr…

找不到msvcp140.dll解决方法

您可以尝试以下方案进行修复,看看是否可以解决这个问题: 一、重新注册 msvcp140.dll 运行库文件: “WinR”打开运行,键入:regsvr32 MSVCP140.dll,回车即可; 如果出现找不到该文件的提示&…

【优先算法】专题——位运算

在讲解位运算之前我们来总结一下常见的位运算 一、常见的位运算 1.基础为运算 << &&#xff1a;有0就是0 >> |&#xff1a;有1就是1 ~ ^&#xff1a;相同为0&#xff0c;相异位1 /无进位相加 2.给一个数 n&#xff0c;确定它的二进制表示…

【Cadence仿真技巧学习笔记】求解65nm库晶体管参数un, e0, Cox

在设计放大器的第一步就是确定好晶体管参数和直流工作点的选取。通过阅读文献&#xff0c;我了解到L波段低噪声放大器的mos器件最优宽度计算公式为 W o p t . p 3 2 1 ω L C o x R s Q s p W_{opt.p}\frac{3}{2}\frac{1}{\omega LC_{ox}R_{s}Q_{sp}} Wopt.p​23​ωLCox​Rs…

Docker入门篇(Docker基础概念与Linux安装教程)

目录 一、什么是Docker、有什么作用 二、Docker与虚拟机(对比) 三、Docker基础概念 四、CentOS安装Docker 一、从零认识Docker、有什么作用 1.项目部署可能的问题&#xff1a; 大型项目组件较多&#xff0c;运行环境也较为复杂&#xff0c;部署时会碰到一些问题&#xff1…

开源智慧园区管理系统对比其他十种管理软件的优势与应用前景分析

内容概要 在当今数字化快速发展的时代&#xff0c;园区管理软件的选择显得尤为重要。而开源智慧园区管理系统凭借其独特的优势&#xff0c;逐渐成为用户的新宠。与传统管理软件相比&#xff0c;它不仅灵活性高&#xff0c;而且具有更强的可定制性&#xff0c;让各类园区&#…

【C++】P5734 【深基6.例6】文字处理软件

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;题目描述&#x1f4af;题目描述输入格式输出格式示例输入与输出输入&#xff1a;输出&#xff1a; &#x1f4af;我的做法操作1&#xff1a;在文档末尾插入字符串操作2&…

CSS核心

CSS的引入方式 内部样式表是在 html 页面内部写一个 style 标签&#xff0c;在标签内部编写 CSS 代码控制整个 HTML 页面的样式。<style> 标签理论上可以放在 HTML 文档的任何地方&#xff0c;但一般会放在文档的 <head> 标签中。 <style> div { color: r…

013-51单片机红外遥控器模拟控制空调,自动制冷制热定时开关

主要功能是通过红外遥控器模拟控制空调&#xff0c;可以实现根据环境温度制冷和制热&#xff0c;能够通过遥控器设定温度&#xff0c;可以定时开关空调。 1.硬件介绍 硬件是我自己设计的一个通用的51单片机开发平台&#xff0c;可以根据需要自行焊接模块&#xff0c;这是用立创…

CMake项目编译与开源项目目录结构

Cmake 使用简单方便&#xff0c;可以跨平台构建项目编译环境&#xff0c;尤其比直接写makefile简单&#xff0c;可以通过简单的Cmake生成负责的Makefile文件。 如果没有使用cmake进行编译&#xff0c;需要如下命令&#xff1a;&#xff08;以muduo库echo服务器为例&#xff09;…

OPENPPP2 —— VMUX_NET 多路复用原理剖析

在阅读本文之前&#xff0c;必先了解以下几个概念&#xff1a; 1、MUX&#xff08;Multiplexer&#xff09;&#xff1a;合并多个信号到单一通道。 2、DEMUX&#xff08;Demultiplexer&#xff09;&#xff1a;从单一通道分离出多个信号。 3、单一通道&#xff0c;可汇聚多个…

语言月赛 202412【正在联系教练退赛】题解(AC)

》》》点我查看「视频」详解》》》 [语言月赛 202412] 正在联系教练退赛 题目背景 在本题中&#xff0c;我们称一个字符串 y y y 是一个字符串 x x x 的子串&#xff0c;当且仅当从 x x x 的开头和结尾删去若干个&#xff08;可以为 0 0 0 个&#xff09;字符后剩余的字…

【数据结构】_链表经典算法OJ:复杂链表的复制

目录 1. 题目链接及描述 2. 解题思路 3. 程序 1. 题目链接及描述 题目链接&#xff1a;138. 随机链表的复制 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个长度为 n 的链表&#xff0c;每个节点包含一个额外增加的随机指针 random &#xff0c;…

python的pre-commit库的使用

在软件开发过程中&#xff0c;保持代码的一致性和高质量是非常重要的。pre-commit 是一个强大的工具&#xff0c;它可以帮助我们在提交代码到版本控制系统&#xff08;如 Git&#xff09;之前自动运行一系列的代码检查和格式化操作。通过这种方式&#xff0c;我们可以确保每次提…

【C语言入门】解锁核心关键字的终极奥秘与实战应用(三)

目录 一、auto 1.1. 作用 1.2. 特性 1.3. 代码示例 二、register 2.1. 作用 2.2. 特性 2.3. 代码示例 三、static 3.1. 修饰局部变量 3.2. 修饰全局变量 3.3. 修饰函数 四、extern 4.1. 作用 4.2. 特性 4.3. 代码示例 五、volatile 5.1. 作用 5.2. 代码示例…

音标-- 02-- 重音 音节 变音

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 国际音标1.重音2.音节3.变音 国际音标 1.重音 2.音节 3.变音