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

计算机组成原理:存储系统【三】

在这里插入图片描述

在这里插入图片描述

🌈个人主页:godspeed_lucip
🔥 系列专栏:计算机组成与原理基础


  • 🚀1 只读存储器ROM
    • ✈️1.1 总览
    • ✈️1.2 各种ROM
    • ✈️1.3 计算机内部重要的ROM
    • ✈️1.4 总结
  • 🚀2 主存储器与CPU的连接
    • 🛩️2.1 总览
    • 🛩️2.2 芯片输入输出信号的常用缩写
    • 🛩️2.3 位扩展
      • 🛰️2.3.1 单块芯片的连接
      • 🛰️2.3.2 两块芯片的位扩展
      • 🛰️2.3.3 多块芯片的位扩展
    • 🛩️2.4 字拓展
      • 🛰️2.4.1 译码器片选法
      • 🛰️2.4.2 线选法
    • 🛩️2.5 字位同时扩展
    • 🛩️2.6 总结
    • 🛩️2.7 关于译码器的补充
  • 🚀3 双口RAM与多模块存储器
    • 🛫3.1 知识总览
    • 🛫3.2 双端口RAM
      • 🛸3.2.1 示意图
      • 🛸3.2.2 访问情况
    • 🛫3.3 多体并行器
      • 🛸3.3.1 访问时间
    • 🛫3.4 多模块存储器
    • 🛫3.5 总结
  • 🚀4 总结


🚀1 只读存储器ROM

✈️1.1 总览

image1

✈️1.2 各种ROM

image2
注意:虽然闪存既可以读也可以写,但是它还是属于ROM

✈️1.3 计算机内部重要的ROM

计算机主机的结构如图所示
image3
在关机后,主存中RAM的数据全部被清除,那么如果不采取其他措施,CPU就无法读取指令。

操作系统实际上是安装在辅存中,CPU需要读取主板上BIOS(属于ROM)芯片上的“自举装入程序”,它负责引导操作系统的装入(开机)。

逻辑上,我们应该将主存视为RAM+ROM的组成。CPU将二者统一编码,比如说,ROM占1KB,则ROM存储单元编号为1-1023,而RAM存储单元的编号起始位为1024。

✈️1.4 总结

image4
ROM也具有“随机存取”的特点

🚀2 主存储器与CPU的连接

🛩️2.1 总览

image1

🛩️2.2 芯片输入输出信号的常用缩写

image2

字扩展:字扩展就是要增加存储字的数量
位扩展:增大数据的范围

🛩️2.3 位扩展

🛰️2.3.1 单块芯片的连接

image3

🛰️2.3.2 两块芯片的位扩展

image4

🛰️2.3.3 多块芯片的位扩展

image5

🛩️2.4 字拓展

🛰️2.4.1 译码器片选法

(1)两块芯片的字拓展
image6
与之前一样,两块芯片接入同样的电信号、同时并联接入数据总线,这就要求同一时间只有一块芯片可以工作,使用A13位控制芯片的片选信号(称为1-2译码器)。这样,可表示地址范围从212变为213。

(2)多块芯片的字扩展
使用上文的思路,只要片选信号足够多,就可以连接多块芯片(由1-2译码器变为2-4译码器、3-8译码器)
image7
如图所示的电路,地址范围由一块芯片的213变为215

🛰️2.4.2 线选法

(1)基本思路与译码器片选法一致,但是它不是采用译码器。假设有两块芯片,则A13、A14直接与芯片连接,可想而知,只有当A13、A14位01或10时芯片才单独工作,输出的信号才有效。这样就使地址空间不连续。而采用译码器片选法得到的地址空间是连续的。

🛩️2.5 字位同时扩展

image8

🛩️2.6 总结

image9

🛩️2.7 关于译码器的补充

image10
一般来说,CPU与主存之间是如此连接的,CPU在将地址电信号发出后,会等信号稳定后再发出主存请求信号,译码器才工作,这样主存得到的就是一个稳定的信号。

🚀3 双口RAM与多模块存储器

🛫3.1 知识总览

image1

🛫3.2 双端口RAM

🛸3.2.1 示意图

image2
它的作用是优化多核CPU访问一根内存条的速度。同时它需要两组完全独立的数据线、地址线、控制线。CPU、RAM中也要有更复杂的控制电路。

🛸3.2.2 访问情况

image3
解决办法:
image4

🛫3.3 多体并行器

1. 假设电脑中有四个内存条,每个内存条中有八个存储单元。在给存储单元编号时,可以先将内存条编号,再将存储单元编号。有高位交叉编址及低位交叉编址。如图所示。
image5

2. 将各存储单元的编号写为十进制,分别为
高位编址:

081624
191725
7152331

低位编址:

0123
4567
28293031

🛸3.3.1 访问时间

(1)我们知道,主存在一次读写操作后(假设时间为r),需要一定时间进行恢复(一般较长,这里假设为3r)。
(2)当使用高位交叉编址时,CPU按序访问主存,由于0-8号存储单元连续的分布在一条主存内,则每访问一个存储单元都要花费4r的时间,如图所示
image6
(3)当使用低位交叉编址时,CPU按序访问主存,由于0-4号存储单元是一次分布在M0-M4中,读写操作完成后主存立即进行恢复(这个操作无须CPU介入)。所以当访问完第4个存储单元后,第1个存储单元已经恢复并可以立即访问,如图所示。
image7
可以看出低位编址的性能大大超过高位编址
(4)可以看出,
image8

🛫3.4 多模块存储器

分为多体并行存储器、单体多字存储器
image9
可以看出,单体多字存储器的灵活性较差,特别是当目的数据不是连续的4个单元时,单体存储器会读入较多的无用数据。

🛫3.5 总结

image10

🚀4 总结

计算机组成原理如一座精密的交响乐团,微观中展现着电子的舞蹈,宏观中奏响着科技的交响曲。

它拆解复杂问题为简单指令,通过微处理器的默契协作,创造出无尽可能。

存储单元如记忆的灯塔,指引信息的航程。

总线是信息的大道,连接着各个功能模块,使计算机成为无比高效的智慧之器。

在计算机组成原理的魔法指导下,世界逐渐变得更加智能、便捷、创新。

渴望挑战计算机组成与原理的学习路径和掌握进阶技术?不妨点击下方链接,一同探讨更多CO的奇迹吧。我们推出了引领趋势的💻CO专栏:《计算机组成原理基础》 ,旨在深度探索CO的实际应用和创新。🌐🔍

在这里插入图片描述

在这里插入图片描述

相关文章:

计算机组成原理:存储系统【三】

🌈个人主页:godspeed_lucip 🔥 系列专栏:计算机组成与原理基础 🚀1 只读存储器ROM✈️1.1 总览✈️1.2 各种ROM✈️1.3 计算机内部重要的ROM✈️1.4 总结 🚀2 主存储器与CPU的连接🛩️2.1 总览&…...

学习Android的第十三天

目录 Android TextClock 文本时钟控件 TextClock 控件主要属性和方法 简单的 TextClock 参考文档 Android AnalogClock 控件 AnalogClock 属性 Android Chronometer 计时器 Chronometer 属性 Chronometer 主要方法 范例: 完整的计时器 范例: …...

【开源】SpringBoot框架开发学校热点新闻推送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 新闻类型模块2.2 新闻档案模块2.3 新闻留言模块2.4 新闻评论模块2.5 新闻收藏模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 新闻类型表3.2.2 新闻表3.2.3 新闻留言表3.2.4 新闻评论表3.2.5 新闻收藏表 四、系统展…...

代码随想录刷题笔记 DAY 28 | 复原 IP 地址 No.93 | 子集 No.78 | 子集 II No.90

文章目录 Day 2801. 复原 IP 地址(No. 93)1.1 题目1.2 笔记1.3 代码 02. 子集(No. 78)2.1 题目2.2 笔记2.3 代码 03. 子集 II(No. 90)3.1 题目3.2 笔记3.3 代码 Day 28 01. 复原 IP 地址(No. 9…...

LeetCode LCR 085. 括号生成

题目链接https://leetcode.cn/problems/IDBivT/description/ 正整数 n 代表生成括号的对数&#xff0c;请设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 class Solution {public List<String> generateParenthesis(int n) {List<String>…...

django定时任务(django-crontab)

目录 一&#xff1a;安装django-crontab&#xff1a; 二&#xff1a;添加django_crontab到你的INSTALLED_APPS设置&#xff1a; 三&#xff1a;运行crontab命令来创建或更新cron作业&#xff1a; 四&#xff1a;定义你的cron作业 五&#xff1a;创建你的管理命令&#xff…...

【教3妹学编程-算法题】输入单词需要的最少按键次数 II

2哥 : 叮铃铃&#xff0c;3妹&#xff0c;准备复工了啊&#xff0c;过年干嘛呢&#xff0c;是不是逛吃逛吃&#xff0c;有没有长胖呢。 3妹&#xff1a;切&#xff0c;不想上班&#xff0c;假期能不能重来一遍啊&#xff0c;虽然在家我妈张罗着要给我相亲呢。可是在家还是很好的…...

突破编程_C++_高级教程(多线程编程实例)

1 生产者-消费者模型 生产者-消费者模型是一种多线程协作的设计模式&#xff0c;它主要用于处理生产数据和消费数据的过程。在这个模型中&#xff0c;存在两类线程&#xff1a;生产者线程和消费者线程。生产者线程负责生产数据&#xff0c;并将其放入一个共享的数据缓冲区&…...

精读《Function Component 入门》

1. 引言 如果你在使用 React 16&#xff0c;可以尝试 Function Component 风格&#xff0c;享受更大的灵活性。但在尝试之前&#xff0c;最好先阅读本文&#xff0c;对 Function Component 的思维模式有一个初步认识&#xff0c;防止因思维模式不同步造成的困扰。 2. 精读 什…...

类的构造方法

在类中&#xff0c;出成员方法外&#xff0c;还存在一种特殊类型的方法&#xff0c;那就是构造方法。构造方法是一个与类同名的方法&#xff0c;对象的创建就是通过构造方法完成的。每个类实例化一个对象时&#xff0c;类都会自动调用构造方法。 构造方法的特点&#xff1a; 构…...

ChatGPT和LLM

ChatGPT和LLM&#xff08;大型语言模型&#xff09;之间存在密切的关系。 首先&#xff0c;LLM是一个更为抽象的概念&#xff0c;它包含了各种自然语言处理任务中使用的各种深度学习模型结构。这些模型通过建立深层神经网络&#xff0c;根据已有的大量文本数据进行文本自动生成…...

「优选算法刷题」:判定字符是否唯一

一、题目 实现一个算法&#xff0c;确定一个字符串 s 的所有字符是否全都不同。 示例 1&#xff1a; 输入: s "leetcode" 输出: false 示例 2&#xff1a; 输入: s "abc" 输出: true限制&#xff1a; 0 < len(s) < 100 s[i]仅包含小写字母 二…...

详解自定义类型:枚举与联合体!

目录 ​编辑 一、枚举类型 1.枚举类型的声明 2.枚举类型的优点 3.枚举类型的使用 二、联合体类型(共用体&#xff09; 1.联合体类型的声明 2.联合体的特点 3.相同成员的结构体和联合体的对比 4.联合体大小的计算 5.用联合体判断大小端 三.完结散花 悟已往之不谏&…...

第13章 网络 Page738~741 13.8.3 TCP/UDP简述

libcurl是C语言写成的网络编程工具库&#xff0c;asio是C写的网络编程的基础类型库 libcurl只用于客户端&#xff0c;asio既可以写客户端&#xff0c;也可以写服务端 libcurl实现了HTTP\FTP等应用层协议&#xff0c;但asio却只实现了传输层TCP/UDP等协议。 在学习http时介绍…...

Tomcat要点总结

一、Tomcat 服务中部署 WEB 应用 1.什么是Web应用 &#xff08;1&#xff09; WEB 应用是多个 web 资源的集合。简单的说&#xff0c;可以把 web 应用理解为硬盘上的一个目录&#xff0c; 这个目录用于管理多个 web 资源。 &#xff08;2&#xff09;Web 应用通常也称之为…...

Ubuntu 20.04 安装RVM

RVM是管理Ruby版本的工具,使用RVM可以在单机上方便地管理多个Ruby版本。 下载安装脚本 首先使下载安装脚本 wget https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer 如果出现了 Connection refused 的情况, 可以考虑执行以下命令修改dns,再执…...

Ps:污点修复画笔工具

污点修复画笔工具 Spot Healing Brush Tool专门用于快速清除图像中的小瑕疵、污点、尘埃或其他不想要的小元素。 它通过分析被修复区域周围的内容&#xff0c;无需手动取样&#xff0c;自动选择最佳的修复区域来覆盖和融合这些不完美之处&#xff0c;从而实现无痕修复的效果。 …...

JAVA面试题17

什么是Java中的静态内部类&#xff1f;它与非静态内部类有什么区别&#xff1f; 答案&#xff1a;静态内部类是定义在另一个类中的类&#xff0c;并且被声明为静态。与非静态内部类不同&#xff0c;静态内部类不依赖于外部类的实例&#xff0c;可以直接访问外部类的静态成员。 …...

数据备份和恢复

数据备份和恢复 什么情况下会用到数据备份呢 数据丢失的场景 人为误操作造成的某些数据被误操作 软件BUG造成数据部分或者全部丢失 硬件故障造成数据库部分或全部丢失 安全漏洞被入侵数据恶意破坏 非数据丢失场景 基于某个时间点的数据恢复 开发测试环境数据库搭建 相同数据库的…...

核心篇 - 集成IS-IS配置实战

文章目录 一. 实验专题1.1. 实验1&#xff1a;配置单区域集成IS-IS1.1.1. 实验目的1.1.2. 实验拓扑1.1.3. 实验步骤&#xff08;1&#xff09;配置IP地址&#xff08;2&#xff09;配置IS-IS 1.1.4. 实验调试&#xff08;1&#xff09;查看邻接表&#xff08;2&#xff09;查看…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK&#xff0c;开始写第二篇的内容了。这篇博客主要能写一下&#xff1a; 如何给一些三方库按照xmake方式进行封装&#xff0c;供调用如何按…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...