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

微信打开的时候会有一个人站在地球上,这个过程就是把程序从辅存转移到主存,数据只有调入主存当中才可以被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.mzph.cn/news/202619.shtml

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

相关文章

弘扬中华文化 感受戏曲魅力——安徽演艺小分队赴和田交流演出

为进一步弘扬中华优秀传统文化,促进皖和两地交往交流交融,12月2日,安徽省演艺小分队走进和田新夜市登台演出,黄梅戏、独唱、民乐演奏、杂技等丰富多样的表演,为观众们送上了一场文化盛宴。 安徽演艺小分队赴和田交流演…

一篇文章带你详细了解C++智能指针

一篇文章带你详细了解C智能指针 为什么要有智能指针内存泄漏1.什么是内存泄漏,它的危害是什么2.内存泄漏的分类3.如何避免内存泄漏 智能指针的使用及原理1.RAII2.智能指针的原理3.auto_ptr4.unique_ptr5.shared_ptr6.weak_ptr 为什么要有智能指针 C引入智能指针的主…

WindowsServer服务器系列:定时备份 MySQL

一、编写脚本 echo 取日期、时间变量值 set yy%date:~0,4% set mm%date:~5,2% set dd%date:~8,2% if /i %time:~0,2% lss 10 set hh0%time:~1,1% if /i %time:~0,2% geq 10 set hh%time:~0,2% set mn%time:~3,2% set ss%time:~6,2% set date%yy%%mm%%dd% set time%hh%%mn%%ss…

Vue2中v-html引发的安全问题

前言:v-html指令 1.作用:向指定节点中渲染包含html结构的内容。 2.与插值语法的区别: (1).v-html会替换掉节点中所有的内容,{{xx}}则不会。 (2).v-html可以识别html结构。 3.严重注意:v-html有安全性问题&#xff0…

IT外包的三种模式

在当今数字化时代,企业为了更好地专注于核心业务,通常选择将IT部门或项目外包给专业的IT外包服务公司。IT外包作为一种灵活的业务模式,不仅能够提高效率,还能够降低企业的运营成本。IT外包包含着不同的业务模式,其中有…

外包干了2个多月,技术明显有退步了。。。。。

先说一下自己的情况,本科生,19年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…

VMware 虚拟机 电脑重启后 NAT 模式连不上网络问题修复

问题描述: 昨天 VMware 安装centos7虚拟机,网络模式配置的是NAT模式,配置好后,当时能连上外网,今天电脑重启后,发现连不上外网了 检查下各个配置,都没变动,突然就连不上了 网上查了…

搭梯子之后电脑连接WIFI打不开浏览器网页:远程计算机或者设备不接受连接

问题描述: 打不开网页,但是能正常使用微信等app windows网络诊断: 远程计算机或者设备不接受连接 解决办法: 电脑搜索【internet选项】 进入连接,点击局域网设置,将里面的代理服务器选项关掉就可以正常打开…

Diary21-全网最全的HTML讲解(含可用代码)

HTML学习 1.网页基本信息 DOCTYPE:是一种规范,告诉浏览器我们要使用什么规范 head标签代表网页头部 title标签代表网页标题 body标签代表网页主体 下面是创建的第一个网页的源代码(在IDEA创建一个html文件会直接生成,我这个其实只改了网页标题) &l…

阿里云实时数据仓库HologresFlink

1. 实时数仓Hologres特点 专注实时场景:数据实时写入、实时更新,写入即可见,与Flink原生集成,支持高吞吐、低延时、有模型的实时数仓开发,满足业务洞察实时性需求。亚秒级交互式分析:支持海量数据亚秒级交…

玩弄GPTs:人人都会的Prompt模板

角色定义 分享一个自用的Prompt模板,只要学会了这个模板,当遇到新场景时,直接套用就行。 简单总结: 角色定义(Master)背景(Background)规则(rule)技能(skill)限制(constaints)工作流(workflow) 经过实际测试发现,这…

从零开始学习 JavaScript APl(七):实例解析关于京东案例头部案例和放大镜效果!

大家好关于JS APl 知识点已经全部总结了,第七部部分全部都是案例部分呢!!(素材的可以去百度网盘去下载!!!) 目录 前言 一、个人实战文档 放大镜效果 思路分析: 关于其它…

指针(三)

函数指针 定义:整型指针是指向整形的指针,数组指针式指向数组的指针,其实函数指针就是指向函数的指针。 函数指针基础: ()优先级要高于*;一个变量除去了变量名,便是它的变量类型;一个指针变量…

两种伦敦银缺口 如何为我们的交易服务?

我们做伦敦银也会碰到缺口,有的朋友会说伦敦银不是24小时交易的品种吗?怎么有缺口呢?虽说伦敦银是24小时交易的品种,但是在北京时间的凌晨也会停止交易一段时间,这是平台结算时间。在亚盘早段伦敦银重新开盘之后&#…

Android的前台服务

概述 前台服务是用户主动意识到的一种服务,因此在内存不足时,系统也不会考虑将其终止。前台服务必须为状态栏提供通知,将其放在运行中的标题下方。这意味着除非将服务停止或从前台移除,否则不能清除该通知。 在 Android 8.0&…

一对一聊天

1.创建包 .服务界面 package yiduiy;import java.awt.BorderLayout; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.uti…

1.2 C语言简介

一、为什么要讲C语言 C语言是编程界的长青藤,可以查看语言排名发现,虽然现在语言很多,但是C语言一直占有一定地址 来源网站:https://www.tiobe.com/tiobe-index/ 在系统、嵌入式、底层驱动等领域存在一定的唯一性(C语…

Python Opencv实践 - 简单的AR项目

这个简单的AR项目效果是,通过给定一张静态图片作为要视频中要替换的目标物品,当在视频中检测到图片中的物体时,通过单应矩阵做投影,将视频中的物体替换成一段视频播放。这个项目的所有素材来自自己的手机拍的视频。 静态图片&…

Java注册并监听全局快捷键

背景 之前在博客中分享了SWT托盘功能, 随之带来一个问题, 当程序最小化后无法快速唤醒, 按照平时使用软件的思路, 自然想到了注册全局快捷键, 本文介绍使用java方式实现全局快捷键的注册. 方案 通过google,搜到一个现成的库: jintellitype, 使用maven可以直接引用, 非常方便…

istio为什么能代替传统的SpringCloud 服务网格Istio概述

服务网格Istio概述 什么是服务网格(Service Mesh)?istio简介边车模式(Sidecar)为什么istio能代替传统SpringCloud?整体架构 首先奉上 istio官网 什么是服务网格(Service Mesh)? 服务网格详解 服务网格(Se…