2024王道考研计算机组成原理——存储系统

news2025/2/25 5:45:53

微信打开的时候会有一个人站在地球上,这个过程就是把程序从辅存转移到主存,数据只有调入主存当中才可以被CPU访问

cache:主存速度还是慢,为了进一步缓解CPU和主存之间的速度矛盾

在微信打视频聊天的时候,在这一段比较长的时间内可能会频繁地访问和打视频电话有关的代码和数据,就可以把这部分数据放到cache当中

虚拟存储:应用程序员可以看到的主存容量要比实际容量大得多的

其中主存和cache都可以和CPU直接数据交换

主存——辅存:解决了主存容量不足的问题

主存——cache:解决了主存和CPU的速度不匹配的问题

现在的辅存基本都采用的固态硬盘

m.2接口的SD读写速度可达4GB/s

光盘:CD-ROM VCD DVD;磁带》顺序存储

机械硬盘:磁盘

磁带不支持随机访问,当你读写某个存储单元当中的数据的时候,显然是和这个存储单元所在的物理位置是有关的,因此磁带只能顺序访问

随机访问指的是你随便指定一个地址,它访问的速度是一样的

磁盘驱动器:两种的结合体,光盘貌似也是?

其他三种是指定地址,然后去访问该地址,相联存储器是根据数据内容查找它的存储位置在哪

MAR反应的是存储字数,MDR反应的是存储字长 

MOS管:电压达到一定条件成为导体,否则不导电,所以它是一个半导体元器件

电容:下方接地,当上面给了5V之后,电荷移动给电容充电,进而保存一个bit的电荷

电容带电荷表示的是一个二进制的1,否则不带电就是0

mos管决定了电容的充/放电(数据的写入/读出)

一次读写都是以存储字为单位的

每个地址对应的是译码器的一条输出线,一条输出线一次性读取/写入一整个存储字的内容

红色的线选通之后,通过绿色的线把每一位的信息传送到MDR当中,然后CPU通过数据总线从MDR当中取走一整个的数据

红色的线叫字选线,绿色的叫数据线(位线);地址总线和数据总线都是连CPU的

控制电路:检测当电信号稳定的时候才放入MAR或者取走MDR当中的数据

为了让译码器输出的电信号稳定可靠,通常会在译码器的后面接一个驱动器来对电信号进行放大

读写电路:红色、绿色的线+控制电路

片选线:有很多块小芯片,应该选哪个使用呢?

8×8位的芯片:2^8个存储单元(8位地址)×每个存储单元的存储字长

按字节编址,但是支持按字寻址

只有行和列的选通线同时接通,该存储单元才被选中

刷新一行:先把对应行的MOS管置1让他接通,然后进行读/写(有硬件支持:先读出一行的信息,然后再重新写入)

为了让DRAM的地址线更少:地址线复用技术

地址线指的是传入译码器的,当然DRAM内存里面还是(2^n)*(2^n)的布局;以前是n/2位地址线同时传输行和列地址然后进行译码,一共2^n根地址线,现在是行地址译码器和列地址译码器共用n/2根地址线,先翻译行,再翻译列,从而达到减少地址线的目的

DDR3 DDR4都是SDRAM芯片

重写需要消耗一定的时间,使得CPU连续访问同一个内存的时间变长

各种ROM都是支持随机访问的 

因为需要先擦除再写入,所以写比读要慢

固态硬盘=flash闪存芯片+控制单元组成

恢复时间:你把电容里面的电荷都读走了,不得再往里面重新写入电荷吗?所以不得安排个恢复时间? 

双端口RAM:双核的CPU通过RAM的两个端口来对内存进行并行的访问 

总线设计(在电脑主板)就会更加复杂

CPU从存储单元当中读/写一个字实际只需要r的时间,后面3r的时间由硬件自动处理,剩下的3r的时间里CPU都是处于空闲的,但是对于这个存储体却并不能进行操作

宏观上n->∞的时候,采用低位交叉编址的内存,CPU连续读写的时间接近r

低位交叉编址,可以理解为四个内存条同时工作

当m>T/r的时候有一个存储体就会"偷懒",所以设置m=T/r就最好!发挥最大的效率!

双通道内存:低位交叉的2体(多体)存储器

多体交叉存储器

不对称双通道,更大的内存条那里无法低位交叉变址,使得打游戏的时候性能不稳定,所以需要两块主频、容量都相同的内存条插在颜色相同的卡槽上来组成双通道

多块存储芯片如何与CPU连接?

1、增加主存的存储字长(位扩展):每个芯片地址线都连上,数据线各引出一位

位扩展:增加数据的位数

2、字扩展

字扩展:增加存储单元的总数

存储芯片的字长已经有8位了,所以不需要进行位扩展了,数据总线的传输能力已经被使用到极致了,但是CPU的寻址能力并没有被发挥到极致 

线选法:如果两块芯片的片选信号都置1的话,两块芯片的数据都会从数据总线读出,为了区分是哪块芯片,可以让他们的片选线接CPU不同的地址引脚,1代表第一块芯片,0代表第2块芯片

如何避免11 00的情况:译码器编码法

CPU的地址线和每个芯片都是相连的(A0-A12) 

A13-A15:片选线,A0-A12:地址线(每个芯片的地址线都要和CPU直接相连),但是整个字扩展的芯片对外暴露的地址引脚只有A0-A12(在芯片内部共接)

小结:位扩展可以使存储字长更长,从而更好地发挥数据总线的数据传输能力

字扩展可以增加存储器的存储字数,可以更好地利用CPU的寻址能力(范围)

二者可以从不同维度扩展主存的总容量

每两块芯片为一组实现了位扩展(4位->8位)

使能端类似于片选线,使芯片激活

CPU确定收到稳定的数据信号之后,才会撤销刚刚发出的地址信号

   

格式化:扇区A损坏了,就用扇区B来顶替 

命中率H:CPU欲访问的信息已经在cache当中的比率

缺失(未命中)率M=1-H 

3.5.2 Cache和主存的映射关系

解决的问题就是主存块应当放到cache的什么位置

最终的目的就是我给你一个物理地址,怎样找到它在cache当中对应的位置!

全相联映射、组相联映射、直接映射

组相联映射:映射到特定的组之后就不管了(组内哪个空闲就把哪一块分配出去) 

使用硬件实现:cache块的"标记",用于记录存储的主存块号;cache的有效位,表示是否存储主存块号

根据主存地址的块号来匹配cache的标记位

有效位:不能用标记为0来代表没有映射关系,所以要加一位有效位

全相联映射:随意放到cache的任意位置

直接相联映射:

什么是标记?》标记就是主存的"短号",你标记匹配了,主存块号也就匹配了

通过物理地址里面的行号直接找到cache对应的行,然后只需要通过比较一次"标记",就可以访问对应的内容了 

每2个cache块为一组,总共8个cache块,一共分成4组

2路组相联映射:2块为一组,一组有2块

组相联是组号,直接映射是行号

颠簸现象:刚换出的块又被换入

cache的总块数为2^n,则只需要n位用于计数器即可

如果是组相连映射:肯定是从组内淘汰一个cache块呀!  

LFU:微信视频结束之后,对应的块的计数器已经很大了,在很长的时间内不会被淘汰

了解即可:

cache的写策略:CPU修改了cache当中的内容如何同步到主存当中?

当cache行被淘汰的时候才会把修改后的整个cache行写回到主存:减少了访存次数,但是存在数据不一致的隐患(由于主存的数据没有及时和cache同步,而导致主存《》磁盘交换错误的信息)

使用脏位来表示cache块的内容有没有被修改过,没有修改的块就不需要写回了

回写:

类似消息队列

直写:


 

程序员能看到的地址都是虚拟地址,都是假的

快表和cache起作用的阶段也不一样,快表TLB是在地址变换的过程中起到了加速的作用,而cache是在最终得到物理地址并访问地址的时候起到了加速的作用

所有的程序只需要调用一部分数据就可以了

打游戏的时候loading比较慢:需要将游戏地图等数据加载到内存当中

 段表要添加一个段长度字段,因为每个段的长度是不一样的。

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

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

相关文章

算法-03-排序-归并-快速排序

冒泡排序、插入排序、选择排序这三种排序算法,它们的时间复杂度都是O(n^2),比较高,适合小规模数据的排序。如果数据量大,我们就需要使用到时间复杂度低的排序算法,归并排序和快速排序是复杂度为O(nlogn)的排序算法。 …

Image Segmentation Using Deep Learning: A Survey

论文标题:Image Segmentation Using Deep Learning:A Survey作者:发表日期:阅读日期 :研究背景:scene understanding,medical image analysis, robotic perception, video surveillance, augmented reality, and image…

【keepalived】高可用神器,实现应用的自动主备切换

目录 1.概述 2.配置 3.效果 4.keepalived主备切换原理 5.联系作者 1.概述 什么是keepalived: keepalived是一个基于VRRP协议来实现的服务高可用方案。VRRP协议,即虚拟路由冗余协议,其一开始提出来是为了解决局域网中配置静态网关出现单…

工业级路由器在智能交通系统(ITS)中的创新应用

智能交通系统(ITS)作为一种先进的交通管理与控制系统,旨在提高交通运输系统的效率、安全性和便捷性。随着科技的不断发展,智能交通系统已经成为城市交通管理的重要组成部分。而工业级路由器作为一种可靠的网络通信设备&#xff0c…

憋了个大招_群发版

大家好,我是良许。 憋了个大招,兄弟们!我花了两个月的时间,搭建了一个自己的网站啦~ 不卖关子,网站链接为: www.lxlinux.net/e/ 网站首页截图如下: 这个网站全部都是关于嵌入式及…

生物动力葡萄酒的快速指南

虽然我们大多数人都熟悉有机酿酒和农业,但围绕生物动力学仍有许多困惑和神秘。无论你是否完全陌生,或者你已经听到一些小道消息,我们在这里揭开这种独特的葡萄酒生产方法的神秘面纱。 生物动力葡萄酒就是一个更全面的有机酿酒过程&#xff0c…

详解nginx优势以及应用场景,实操编译安装和nginx版本平滑升级

目录 一、nginx的特点 那么nginx有哪些特点? 先讲nginx的优点: 缺点: 二、nginx与Apache的区别 三、nginx的应用场景 四、nginx为什么能支持高并发 五、为什么nginx不使用多线程 六、nginx的两种进程分别有什么作用 七、编译安装ngi…

web:[SUCTF 2019]CheckIn(一句话木马,.user.ini)

题目 页面显示 上传文件&#xff0c;随便上传一个文件试试 上传了一个文本&#xff0c;显示失败&#xff0c;不是图片 那就换图片马上传试试 不能包含<?,换一种写法&#xff0c;需要加上GIF89a&#xff0c;进行exif_imagetype绕过 上传成功 这里用.user.ini或者用post传参…

解决找不到msvcr120.dll无法执行代码的4个方法,快来看看解决方法!

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中最常见的就是“缺少xxx.dll文件”。而msvcr120.dll就是其中之一。那么&#xff0c;msvcr120.dll到底是什么呢&#xff1f;它又有什么作用呢&#xff1f;本文将从多个方面对msvcr120.dll进行详细的解析…

CMMI5大成熟度等级和4大过程域

CMMI&#xff08;Capability Maturity Model Integration&#xff0c;能力成熟度模型集成&#xff09;模型系列是帮助组织改进其过程的最佳实践的集合。这些模型由来自产业界、政府以及软件工程研究所&#xff08;Software Engineering Institute&#xff0c; SEI&#xff09;的…

通用基座大模型是否可以超越领域专有大模型?微软最新论文证明这是可以的!微软最新动态Prompt技术——MedPrompt详解

本文来自DataLearnerAI官方网站&#xff1a;通用基座大模型是否可以超越领域专有大模型&#xff1f;微软最新论文证明这是可以的&#xff01;微软最新动态Prompt技术——MedPrompt详解 | 数据学习者官方网站(Datalearner)https://www.datalearner.com/blog/1051701842078748 在…

我不是DBA之慢SQL诊断方式

最近经常遇到技术开发跑来问我慢SQL优化相关工作&#xff0c;所以干脆出几篇SQL相关优化技术月报&#xff0c;我这里就以公司mysql一致的5.7版本来说明下。 在企业中慢SQL问题进场会遇到&#xff0c;尤其像我们这种ERP行业。 成熟的公司企业都会有晚上的慢SQL监控和预警机制。…

华为鸿蒙爆发真实力!原生应用媲美iOS,使用流畅度将提升20至30%

随着华为鸿蒙原生应用开发计划的启动&#xff0c;一场席卷全球的科技浪潮正在涌动。鸿蒙生态的快速发展&#xff0c;吸引了无数企业和开发者的关注&#xff0c;他们纷纷拥抱这个新兴的生态系统&#xff0c;共同构建一个更加繁荣的鸿蒙世界。 华为鸿蒙原生应用开发计划引爆全球…

IO / day04 作业

1.使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一半内容&#xff0c;父进程用于回收两个子进程的资源 代码 #include <myhead.h>int main(int argc, const char *argv[]) {if(argc<3){printf("input error\n&q…

Python代码将txt里面多行json字符串转成excel文件

python 代码 将txt里面的多行json字符串转成excel history.txt文件json代码样例 Json转换Excel代码 import json import pandas as pddef json_out(file_path,excel_path):all_list[]with open(file_path, "r", encodingutf-8) as f:for line in f:all_list.append…

Linux动态库常见问题

1.编译好库后&#xff0c;应用程序调用&#xff0c;路径明明写对了&#xff0c;但是编译的时候却显示xxx未定义 2.编译好了却说不能打开动态库&#xff0c;没有此文件 ./jrtplib_test: error while loading shared libraries: libjrtp.so.3.11.2: cannot open shared object f…

【LeetCode热题100】【滑动窗口】无重复字符的最长子串

给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc"&#xff0c;所以其长度为 3。示例 2: 输入: s "bbbbb" 输出: 1 解释: 因为无…

11.机器人系统仿真搭建gazebo环境、仿真深度相机、雷达、RGB相机

目录 1 gazebo仿真环境搭建 1.1 直接添加内置组件创建仿真环境 1.2 urdf、gazebo、rviz的综合应用 2 ROS_control 2.1 运动控制实现流程(Gazebo) 2.1.1 已经创建完毕的机器人模型&#xff0c;编写一个单独的 xacro 文件&#xff0c;为机器人模型添加传动装置以及控制器 …

Kontakt v7.7.2(音频采样器)

Native Instruments Kontakt 7是一款强大的软件采样器&#xff0c;它允许用户从各种来源采样音频并进行编辑和处理。它包含大量预设采样库&#xff0c;包括乐器、合成器、鼓组和声音效果等。此外&#xff0c;Kontakt 7还允许用户创建自己的采样库&#xff0c;以便根据自己的需要…

Java异常讲解

&#x1f435;本篇文章将对异常相关知识进行讲解 一、异常的结构 在程序执行的过程中出现的一些问题叫做异常&#xff0c;异常其实是一个一个类&#xff0c;每一种异常都代表一个类 1.1 几种常见的异常 System.out.println(10/0); //算数异常 //Exception in thread "m…