大家好,如果您还对计算机组成原理教程系列三:深入解析存储系统不太了解,没有关系,今天就由本站为大家分享计算机组成原理教程系列三:深入解析存储系统的知识,包括的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
3.1.2 按存储介质分类
按存储介质,存储器可分为磁表面存储器(磁盘、磁带)、磁芯存储器半导体存储器(MOS型存储器、双极型存储器)和光存储器(光盘)。
3.1.3 按存取方式分类
随机存取存储器(RAM):读写任何存储单元所需的时间都是相同的,无论存储单元的物理位置如何,例如记忆棒等。
顺序存取存储器(SAM):读写存储单元所需的时间取决于存储单元的物理位置,例如磁盘等。
直接存取存储器(DAM):同时具有随机存取特性和顺序存取特性。首先直接选择信息所在区域,然后依次访问。比如硬盘等。
联想存储器,即可以内容访问的存储器(CAM),可以根据内容检索存储位置进行读写。 “快表”是一种联想记忆。
3.1.4 按信息的可更改性
读写存储器——可读可写(如磁盘、内存、Cache)
只读存储器——只能读取,不能写入(例如:实体音乐专辑通常使用CD-ROM,实体电影使用蓝光光盘,BIOS通常写入ROM)
3.1.5 按信息的可保存性
断电后,存储的信息消失。 —— 易失性存储器(主存储器、高速缓存)
—— 非易失性存储器(磁盘、光盘),断电后仍保留存储的信息
信息读出后,原来存储的信息被破坏—— 破坏性读出(如DRAM芯片,读取数据后需要重新写入)
信息读出后,原有存储的信息不会被破坏—— 无损读取(如SRAM芯片、磁盘、光盘)
3.1.6 存储器的性能指标
存储容量:存储字数字长(如1M8位)。单位成本:每人价格=总成本/总容量。存储速度:数据传输速率=数据宽度/存储周期。访问周期.png 主存带宽(Bm):主存带宽也称为数据传输率,表示每秒进出主存的最大信息数,单位为字/秒、字节/秒(B/s)或位/秒(b/s)。
3.2 半导体随机存取器
3.2.1 主存储器的基本组成
3.2.1.1 存储器芯片的基本原理
存储芯片基本电路如下
内存芯片结构体.png封装如下图
打包后,png存储矩阵就是一个存储单元。存储单元由MOS管和电容组成。解码驱动分为解码器和驱动器。译码器用于接收地址总线的MAR。获得地址后,对应的地址提供高电平来导通MOS管,并使用驱动器来保证解码器的稳定性。可靠、放大的电信号。读写电路包括控制电路、可选线和数据总线。地址线用于接收来自外界的地址信息。数据线用于传输数据。片选线控制存储器的工作状态。图中每条线都会对应一个金属引脚,另外还有电源引脚和接地引脚,因此可以由此计算出引脚数量
n位地址对应2n个存储单元
如果有8k8位的内存芯片,那就是
3.2.1.2 寻址
现代计算机通常按字节寻址,即每个字节对应一个地址
但它也支持字节寻址、字寻址、半字寻址和双字寻址。
3.2.2 SRAM和DRAM
(动态随机存取存储器,DRAM)是动态RAM,利用栅极电容来存储信息
(静态随机存取存储器,SRAM)是静态RAM,它使用双稳态触发器来存储信息。
DRAM用于主存储器,SRAM用于高速缓存。两者都是易失性记忆。
3.2.2.1 存储元的区别
DRAM使用栅极电容,电容放电信息被破坏,属于破坏性读出。读完后,应该有一次重写操作,也叫“再生”,读写速度更慢,每个存储元素都被做了
成本较低,集成度高,功耗低,电容中的电荷只能维持2ms,必须在2ms内“刷新”一次(给电容充电)。
SRAM 使用双稳态触发器来读取数据。触发器状态保持稳定。它是非破坏性读取,不需要重写。读写速度更快,每个存储元件均已制造
成本较高、集成度低、功耗高
Storage element.png
3.2.2.2 DRAM的刷新
DRAM的刷新周期一般为2ms
每次刷新以行为单位,每次刷新一行存储单元。使用行和行地址可以减少栅极线的数量,如下图
Memory model.png 简单模型需要个选通线,而行列地址只需要个选通线。
采用地址线复用技术,行、列地址发送两次,地址线更少,芯片引脚更少。地址线数为。
刷新是由硬件支持的。它读出一行信息并重写它。需要1个读/写周期。刷新方式:假设DRAM内部结构排列为128128形式,读/写周期为0.5us,总共2ms,2ms/0.5us。=4000周期刷新方法.png
3.2.3 只读存储器(ROM)
ROM芯片非易失性,断电后数据不会丢失
MROM(Mask Read-Only Memory)——掩膜模式只读存储器
厂家根据客户需求在芯片生产过程中直接写入信息,事后无人可以改写(只能读取)。可靠性高,灵活性差,生产周期长,只适合PROM(Programmable Read-Only Memory)——可编程只读存储器的大规模定制
用户可以使用特殊的PROM写入器写入信息。 EPROM (Erasable Programmable Read-Only Memory) —— 可擦除可编程只读存储器,写入一次后不能更改。
UVEPROM(紫外线)—— 用紫外线照射8至20分钟即可擦除所有信息
EEPROM(也常被记为E2PROM,第一个E是Electrically)——可以“电擦除”来擦除特定的字。
允许用户写入信息,然后使用一定的方法擦除数据,可以多次重写。 Flash Memory ——闪存,如U盘、SD卡
在EEPROM的基础上开发的,断电后仍能保存信息,并可快速擦除和多次重写。由于闪存在写入之前需要先擦除,因此闪存的“写入”速度比“读取”速度更快。慢点。 SSD(固态硬盘)——固态硬盘
它由控制单元+存储单元(Flash芯片)组成。与闪存的核心区别在于控制单元不同,但存储介质相似,可以快速擦除和多次重写。 SSD速度快、功耗低且价格昂贵。目前个人电脑中普遍采用SSD来替代传统机械硬盘主板上的BIOS芯片(ROM),其中存储着“引导加载程序”,负责启动并加载操作系统(booting up)。从逻辑上讲,主存储器由辅助存储器RAM + ROM组成,并且两者通常是统一寻址的。
虽然很多ROM芯片的名字都是“只读”,但很多ROM也是可以“写入”的。闪存的写入速度一般比读取速度慢,因为RAM芯片在写入之前必须先擦除。 RAM 芯片是易失性的,ROM 芯片是非易失性的。易挥发的。许多ROM还具有“随机存取”特性
3.3 主存储器与CPU的连接
3.3.1 连接原理
主存储器通过数据总线、地址总线和控制总线与CPU相连。
数据总线上的位数和工作频率的乘积与数据传输速率成正比。
地址总线中的位数决定了最大可寻址存储空间。
控制总线(读/写)指示总线周期的类型以及该输入/输出操作完成的时间。
主存与CPU的连接.png
3.3.2 主存容量的扩展
3.3.2.1 位扩展法
位扩展的连接方法是将多个存储芯片的地址端、片选端、读写控制端并联连接,数据端引出分别。
位扩展.png
3.3.2.2 字扩展法
字扩展是指在保持位数不变的情况下增加内存中的字数。字扩展将芯片的地址线、数据线、读写控制线并联连接,片选信号区分各个芯片的地址范围。
Sub-extension.png
3.3.2.3 字位同时扩展
事实上,内存常常需要同时按字和位进行扩展。同时扩展字位意味着增加存储字的数量和存储字的长度。
同时字位扩展.png
3.3.3 存储芯片的地址分配和片选
Comparison.png
3.4 双端口RAM和多模块存储器
3.4.1 双端口RAM
两个端口操作同一主存有以下4种情况:
两个端口同时访问来自不同地址单元的数据。两个端口同时从同一地址单元读取数据。两个端口同时向同一地址单元写入数据。两个端口同时向同一个地址单元写入数据,一个写数据,另一个读数据。当(3)(4)发生时,“忙”信号置0,判断逻辑决定暂时关闭一个端口(即延迟)。 ),未关闭的端口正常访问,关闭的端口过一小段时间后再次访问。
3.4.2 多模块存储器
3.4.2.1 多体并行存储器
多体并行存储器由多体模块组成。每个模块具有相同的容量和访问速度,并且每个模块具有独立的读写控制电路、地址寄存器和数据寄存器。它们可以并行或并行工作。多体并行存储器分为高阶交错寻址(顺序模式)和低阶交错寻址(交错模式)两种。
高位交织寻址
高位交错寻址.png低位交错寻址
低位交错寻址.png 采用“流水线”方式进行并行访问(宏观层面并行,微观层面串行)。连续取n个存储字所需的时间可以缩短为
宏观上来说,在一个存储周期内,m体交错存储器能够提供的数据量是单个模块的m倍。访问周期为T,访问时间/总线传输周期为r。为了使管道不间断,应保证模块的数量。
Comparison.png
3.4.2.2 单体多字存储器
单个多字系统的特点是存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字。要一次并行读取m 个字,地址必须按顺序排列并位于同一存储单元中。
缺点:一次只能同时取m个字,不能单独取一个字;指令和数据必须连续存储在主存储器中。
3.5 高速缓冲存储器
3.5.1 Cache的基本工作原理
为了方便Cache和主存之间的信息交换,Cache和主存被划分为相等的块。缓存块也称为缓存行,每个块由若干字节组成。块的长度称为块长度(Cache line length)。由于Cache的容量远小于主存的容量,因此Cache中的块数也远小于主存的块数。它仅保存主存储器中最活跃块的副本。因此,Cache按照一定的策略来预测CPU未来要访问的数据,并将其加载到Cache中。
将某些主存块复制到Cache中,缓解CPU和主存之间的速度冲突
CPU想要访问的信息与Cache中已经存在的信息的比例称为命中率H。先访问Cache,如果Cache未命中,再访问主存。系统的平均访问时间t为
同时访问Cache和主存。如果Cache命中,将立即停止对主存的访问。系统的平均访问时间t为
3.5.2 程序访问的局部性原理
空间局部性:在不久的将来使用的信息(指令和数据)可能在存储空间中与现在使用的信息相邻。
时间局部性:在不久的将来使用的信息很可能是现在正在使用的信息
基于局部性原理,不难想到,CPU当前访问的地址“周围”的一些数据可以放入Cache中。
3.5.3 Cache和主存的映射方式
映射方法.png 图片.png
3.5.4 Cache替换算法
直接映射方法不需要考虑替换算法,只需要考虑全关联映射和组关联映射
随机算法(RAND) : 如果Cache满了,会随机选择一块替换。实现简单,但是完全没有考虑局部性原则,命中率低,实际效果很不稳定。
先进先出算法(FIFO) : 如果Cache已满,则替换最先转移到Cache中的块。实现简单,仍然没有考虑局部性原则
最近最少使用算法(LRU):为每个Cache块设置一个“计数器”,记录每个Cache块有多久没有被访问过。当缓存已满时,替换具有最大“计数器”的缓存。基于“局部性原理”,LRU算法实际运行效果优异,缓存命中率高。
当发生命中时,命中行的计数器清零,低于它的计数器加1,其余不变;当发生未命中且有空闲行时,新加载行的计数器设置为0,所有其他非空闲行递增1。当出现未命中且没有空闲行时,则淘汰计数值最大的行的信息块,将新安装的行块的计数器设置为0,其余全部加1。 最少常用算法(LFU):为每个Cache块设置一个“计数器”,记录每个Cache块被访问了多少次。当缓存满时,替换“计数器”最小的那个。它没有很好地遵循局部性原则,因此实际运行效果不如LRU。
新传输的块计数器=0,此后每次访问时计数器+1。当需要替换时,选择计数器最小的行。如果存在多个具有最小计数器的行,可以根据行号增量或先进先出策略进行选择。
3.5.5 Cache写策略
现代计算机常采用多级缓存,各级缓存之间常采用“全写方式”。 +非写分配法”;Cache与主存之间常采用“回写法+写分配法”
距离CPU越近,速度越快,容量也越小。
距离CPU越远,速度越慢,容量越大。
3.5.5.1 写命中
回写方式:CPU写入Cache时,只是修改Cache的内容,而不立即写入主存。仅当块被换出时,它才被写回主存储器。内存访问次数减少,但存在数据不一致的隐患。
全写方式(write-through方式,write-through):CPU向Cache写入时,数据必须同时写入Cache和主存,一般采用写缓冲区。使用写入缓冲区,CPU 写入速度非常快。如果写操作不频繁,效果非常好。如果写操作频繁,可能会因写缓冲区饱和而导致内存访问阻塞次数增加,速度会变慢,但可以保证数据一致性。
3.5.5.2 写不命中
Write-allocate方式:当CPU写入Cache失败时,将主存中的块转移到Cache中,并在Cache中进行修改。通常与回写方法一起使用。
非写分配方式(not-write-allocate):当CPU写入Cache失败时,只写入主存,不传输到Cache。使用完整的书写方法。
3.6 虚拟存储器
该部分结合操作系统查看
3.6.1 页式存储器
页存储系统:一个程序(进程)在逻辑上被划分为若干个大小相等的“页”,“页面”大小与“块”的大小相同。每个页面可以被离散地放置到主存储器的不同块中。 CPU执行的机器指令使用“逻辑地址”,因此逻辑地址需要通过“页表”转换为物理地址。页表的作用:记录每个逻辑页存放在哪个主内存块中
逻辑地址(虚拟地址):从程序员角度看到的地址
物理地址(真实地址):主存中的实际地址
快速表是一种可以按内容访问的“关联存储器”。表中存储的是页表项的副本; Cache中存储的是主内存块的副本。
TLB.png
3.6.2 虚拟存储器
主存页表.png 地址映射表中的每一行都有一个对应的标签项
文章分享结束,计算机组成原理教程系列三:深入解析存储系统和的答案你都知道了吗?欢迎再次光临本站哦!
【计算机组成原理教程系列三:深入解析存储系统】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
终于到了存储系统了!之前一直在期待这部分内容呢。
有15位网友表示赞同!
学习计算机组成原理真的很有意思,感觉能更深入地理解电脑是怎么工作的。
有19位网友表示赞同!
存储系统这个部分看起来很复杂啊,希望能看懂讲解老师的思路。
有19位网友表示赞同!
我印象中好像以前学过一些缓存的概念,现在想来应该要跟存储系统有关的吧?
有10位网友表示赞同!
硬盘、内存、SSD等等各种存储设备都有所不同吧?期待学习它们的原理和优缺点。
有11位网友表示赞同!
希望这部分内容能讲清楚什么叫访问时间、传输带宽等等专业术语。
有11位网友表示赞同!
感觉存储系统跟其他部分都息息相关,是整个计算机系统的关键部件呢。
有10位网友表示赞同!
我已经开始期待用这知识来分析一下自己电脑的性能了!
有5位网友表示赞同!
最近在玩一些大型游戏,对存储速度的要求更高了,学习这个真太有意义了。
有18位网友表示赞同!
我想知道,不同的存储技术之间有什么差距?效率高低都有吗?
有6位网友表示赞同!
期待解开存储系统的奥秘!它真的超级神奇的,能够存储这么大数量的信息。
有6位网友表示赞同!
希望这部分内容能讲清楚存储系统在现代计算中扮演的角色。
有11位网友表示赞同!
学习计算机组成原理也能让我更好地理解编程和软件开发吧?
有7位网友表示赞同!
也许以后有机会自己设计一个高效的存储系统呢!想想就激动人!
有17位网友表示赞同!
感觉这门课程学习起来越来越有意思了,真的能开拓视野!
有19位网友表示赞同!
我已经迫不及待想把学到的知识应用到实际项目中去了!
有12位网友表示赞同!
希望这段视频讲解细致全面,能让我彻底明白存储系统的原理。
有12位网友表示赞同!
我的电脑经常运行缓慢是因为存储系统的问题吗?希望这部分内容能给我一些解决方法。
有12位网友表示赞同!
学习计算机组成原理真的很有帮助,可以让你对电子产品有更深入的了解!
有18位网友表示赞同!