计算机组成原理-第三章 存储系统【期末复习|考研复习】

news/2024/7/3 13:52:11 标签: 考研, 计算机组成原理, 机组, 期末复习

前言

总结整理不易,希望大家点赞收藏。

给大家整理了一下机组成原理>计算机组成原理中的重点概念,以供大家期末复习考研复习的时候使用。
参考资料是王道的机组成原理>计算机组成原理和西电的机组成原理>计算机组成原理。


文章目录

  • 前言
  • 第三章 存储系统
    • 3.1 存储器的分类
    • 3.2 存储层次化结构
    • 3.3 半导体随机存储器
      • 3.3.1 SRAM和DRAM(非非非非常重要)
      • 3.3.2 只读存储器
    • 3.4 主存储器的扩展(非非非非常重要)
    • 3.5 双口RAM和多模块存储器
      • 3.5.1 双端口RAM
      • 3.5.2 多模块存储器
    • 3.6 高速缓冲存储器
      • 3.6.1 Cache和主存的映射方式
      • 3.6.2 Cache中主存块的替换算法
      • 3.6.3 Cache写策略
    • 3.7 虚拟存储器
  • 总结


第三章 存储系统

3.1 存储器的分类

按层次分:
1、主存储器(主存),CPU可以直接随机地对其进行访问,也可以和高速缓存器及辅助存储器交换数据。
2、辅助存储器(辅存),不能与CPU直接相连,用来存放当前暂时不用的程序和数据。
3、高速缓冲存储器,位于主存和CPU之间,用来存放正在执行的程序段和数据。

按存取方式分:
1、随机存储器(RAM)。存储器的任何一个存储单元的内容都可以随机存取,而且存取时间与存取单元的物理位置无关,主要用作主存或高速缓冲存储器。
2、只读存储器(ROM)。存储器的内容只能随机读出而不能写入。即使断电,内容也不会丢失。3、 串行访问存储器。

按信息的可保存性分:
1、易失性存储器,如RAM。
2、非易失性存储器,如ROM,磁表面存储器和光存储器。

3.2 存储层次化结构

在这里插入图片描述
主存-辅存:实现虚拟存储,解决主存容量不够。
Cache-主存:解决CPU和主存速度不匹配的问题。

3.3 半导体随机存储器

3.3.1 SRAM和DRAM(非非非非常重要)

主存由DRAM实现,Cache由SRAM实现
SRAM(静态随机存储器)的存储元是双稳态触发器,非破坏性读出,存取速度快,但集成度低,功耗较大。

DRAM(动态随机存储器)的存储元是栅极电容的电荷,采用地址复用技术,地址线为原来的一半,地址信息分行和列两次传送。具有容易集成,价位低,容量大,功耗低的特点。
DRAM的刷新时间为2ms,以行为单位,需要行地址。
刷新方式分为:
1、分散刷新,前一半读写,后一半刷新。优点:没有死区;缺点:加长了系统的存取周期。
2、集中刷新:专门有一段时间用于刷新。优点:读写不受刷新影响;缺点:有死区。3、异步刷新:隔一段集中读写时间刷新一次。既可以缩短死区,又可以充分利用刷新时间。
在这里插入图片描述

3.3.2 只读存储器

ROM具有结构简单,可靠性高的特点。
容量1024×8bit 前1024是地址线,后8bit是数据线。
引脚数目由地址线、片选线、数据线、读写控制线组成。

3.4 主存储器的扩展(非非非非常重要)

扩展方式跟后面的CPU那块一样重要
主存容量的扩展:
1、位扩展法:8片8K×1bit的chip连接八根数据线组成一个8K×8bit的存储器。
2、 字扩展法:用2/4或3/8译码器来区分个芯片的地址位置。
3、字位同时扩展法:两者结合。

片选信号的产生分为 :
1、线选法 :简单,不需要译码器。
2、译码片选法 。

3.5 双口RAM和多模块存储器

3.5.1 双端口RAM

双端口RAM:指同一个存储器有左、右两个独立的端口,分别具有两组相互独立的地址线、数据线和读写控制线,允许两个独立的控制器同时异步地访问存储单元。采用忙信号来从逻辑上判断暂时关闭哪个端口。

3.5.2 多模块存储器

单体多字存储器 :存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。一次并行读出m个字,地址必须顺序排列并处于同一存储单元。缺点:指令和数据必须连续存放。

多体并行存储器 :由多体模块组成,每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器,既能并行工作,又能交叉工作。

多体并行存储器由分为高位交叉编址(顺序方式)和低位交叉编址(交叉方式)
高位交叉编址 :高位地址表示体号,低位地址为体内地址。
低位交叉编址 :低位地址为体号,高位地址为体内地址。地位交叉编址更适合顺序连续访问,存取模块可以并行访问。二高位交叉编址只能串行访问。

流水线方式,存储器交叉模块数应大于等于 m=T/r (T为存取周期,r为总线传送周期),连续读取m个字所需时间为t1=T+(m-1)r,而顺序方式连续读取m个字所需时间为t2=mT

低位交叉的多体存储器,俗称双通道。
在这里插入图片描述
在这里插入图片描述

3.6 高速缓冲存储器

高速缓冲技术就是利用程序访问的局部性原理 。
当CPU发出读请求时,如果访存地址在Cache中命中,就将此地址转换成Cache地址,直接对Cache进行读操作,与主存无关;如果Cache不命中,则仍需访问主存,并把此字所在的块一次从主存调入Cache内。若此时Cache已满,则需根据某种替换算法,用这个块替换掉Cache中原来的某块信息。CPU与Cache之间的数据交换以字位单位,而Cache与主存之间的数据交换以Cache块为单位。

3.6.1 Cache和主存的映射方式

直接映射(对号入座):
主存中的每一块只能装入Cache中的唯一位置,若位置已有内容,原来块将无条件被替换出去。直接映射关系可表示为:j = i mod 2^c(j是Cache的块号,又称行号,i是主存的块号,2 ^c是Cache的总块数)。
直接映射地址结构:标记、Cache行号、块内地址。
访问过程:先访问行号c位,找到在Cache中的位置,然后再对标记位进行对比,若相等且有效位为1,则命中,反之不命中,CPU从主存读出该地址送到相应Cache并且有效位置为1,标记设为地址中高t位,且将内容送到CPU。优点:实现简单。缺点:不够灵活,冲突概率最高,空间利用率最低。

全相联映射(随意放):
优点:比较灵活,冲突概率低,空间利用率高,命中率也高。缺点:标记比较较慢,通常采用昂贵的按内容寻址的相联存储器进行地址映射。

组相联映射(按号分组,组内随意放):将Cache分为大小相同的组,组间采用直接映射,组内采用全相联映射。
在这里插入图片描述

3.6.2 Cache中主存块的替换算法

1、随机算法RAND:没有依据程序访问的局部性原理。
2、先进先出算法FIFO:没有依据程序访问的局部性原理。
3、近期最少使用算法LRU。
4、最不经常使用算法LFU

3.6.3 Cache写策略

对于Cache写命中 :
1) 全写法 (写直通法write-through):必须把数据同时写入Cache和主存
2) 写回法 (write-back):只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存

对于Cache写不命中 :
1) 写分配法 (write-allocate):加载主存中的块到Cache中,然后更新这个Cache块
2) 非写分配法 (not-write-allocate):只写入主存,不进行调块
非写分配法通常与全写法合用,写分配法通常和写回法合用。各级Cache之间采用全写法+非写分配法。Cache和主存之间采用写回法和写分配法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.7 虚拟存储器

同时具有虚拟页式存储器(有TLB)和Cache的系统中,访问顺序为TLB->页表->Cache->主存。
虚拟存储器和Cache的不同之处 :1)Cache主要解决系统速度,而虚拟存储器是为了解决主存容量。2)Cache全由硬件实现,是硬件存储器,对所有程序员透明;而虚拟存储器由OS和硬件共同实现,是逻辑上的存储器,对系统程序员不透明,但对应用程序员透明。3)虚拟存储器系统不命中时对系统性能影响更大。4)Cache不命中时主存能和CPU直接通信,同时将数据调入Cache中;而虚拟存储器系统不命中时,只能先由硬盘调入内存中,而不能直接和CPU通信。

总结

相信这一章的干货也是满满,这些题有不会的评论区留言,我也可以解答=v=有遗漏的我再补充


http://www.niftyadmin.cn/n/5400819.html

相关文章

【Python】whl文件简介\及应用

文章目录 一、whl 格式文件是什么二、whl文件的作用三、whl文件和pyc文件区别四、如何创建一个whl文件 一、whl 格式文件是什么 .wheel(.whl)是Python的一种二进制分发格式,用于方便地安装Python软件包。它是一种打包格式,其中包含…

Makefile从入门到项目编译实战(学习笔记)

1.make和makefile介绍 1. make make 是一个应用程序,位于 /usr/bin/make 目录下,make 有如下的功能: (1)解析源程序之间的依赖关系 (2)根据依赖关系自动维护编译工作 (3&#xff09…

共基课程学习

序言 教育教师 政治基础知识 马克思主义哲学 西方哲学史 三个阶段 西方哲学的起源 圈1 圈2 圈3 第一个哲学高峰 希腊三贤 圈4 圈5 是故格拉底的学生 圈6 是柏拉图的学生 圈7、圈8 这是一个政教合一的社会 圈7 圈8 圈9 圈10 圈11 圈12 文艺复兴、启蒙运动共…

【Sql server】假设有三个字段a,b,c 以a和b分组,如何查询a和b唯一,但是c不同的记录

欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…

Unreal的MediaPlayer打开webcam的一些问题

Unreal的MediaPlayer打开webcam的一些问题 通过MediaPlayer打开WebCam流程枚举设备打开设备播放视频 可能遇到的问题更多功能 通过MediaPlayer打开WebCam流程 枚举设备 EnumerateVideoCaptureDevices可以枚举系统连接的采集设备,获取设备路径Url 打开设备 调用…

mysql,for循环执行sql

遇到一个问题,我需要模拟上百万数据来优化sql,线上数据down不下来,测试库又没有,写代码执行要么慢要么就是sql语句太长。 于是,直接用mysql自带的功能去实现! 简单而简单 mysql可以for循环?没…

小工具——抖音短视频评论自动同步

很多时候喜欢看抖音的评论,有时候评论也是一个查疑解惑的好地方,很多人也喜欢把抖音的评论集中起来做分析。 因为一个朋友问过我这回事,闲着的时候也研究了下抖音,所以自己做了个小工具,自动同步你观看的抖音短视频的…

python pandas写入csv

在Python的Pandas库中,可以使用to_csv方法将DataFrame对象写入CSV文件。以下是一个简单的示例: import pandas as pd# 创建一个DataFrame对象 data {Name: [Alice, Bob, Charlie, David],Age: [25, 30, 35, 40],City: [New York, Los Angeles, Chicago…