本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
存储器详解
manongba · 1020浏览 · 发布于2019-08-19 +关注

存储器是计算机系统中的记忆设备,用来存放程序和数据。

一丶存储器的分类和层次

20190817175601213.png


  1. CPU不能直接访问辅存,辅存只能与主存交换信息,因此辅存的速度可以比主存慢得多

  2. 存储器系统层次主要体现,缓存-主存,主存-辅存两个存储层


  • 前者解决CPU与主存速度不匹配问题,这层数据调用是硬件自动完成,对程序员透明

  • 后者解决存储器系统容量问题,这层数据调用是硬件和OS共同完成的

  3.主存-辅存逐渐形成虚拟存储系统

1.主存储器

半导体存储芯片:

现在计算机主存都由半导体集成电路构成

20190727151923525.png

译码驱动能把地址总线的送来的地址信号翻译成对应存储单元选择信号,该信号在读写电路(放大器与写入电路)配合下完成对选中单元的读写操作


片选线:用来选取芯片

有两种译码驱动方式:

  • 线选法:一维排列,结构简单,适合容量不大的存储芯片

  • 重合法:二维阵列,适合容量大


成数的存储芯片构成存储器,每个存储芯片有自己的基本电路,整个存储器也有基本电路,下面两种就是芯片构成存储器的电路

20190817182455307.png

重合法中16K x 1位的变成 1K x 8位 需要8个这样如上图重合法所示的存储器(这里涉及到位扩展,下面会介绍)

(1)RAM

  • 静态RAM (触发器原理寄存信息)

  • 动态RAM(电容充电放电原理寄存信息)


静态RAM(Intel 2114 为例)

静态RAM基本单元电路

20190807191257982.png


注:该芯片存储1位,T1~ T4是MOS管组成的触发器基本电路,T1~ T6组成基本单元电路,要写入到触发器中,触发器两端需要完全相反的电平,所以左侧写放大器取反,也正由于是触发器依靠电,所以是掉电原信息丢失易失性半导体存储器


2114(1k x 4 位)静态RAM电路结构

20190719163745155.png

上图可以看出基本单元电路的T7,T8受列地址选择控制,分别于触发器两端相连,他们并不包含在基本单元电路中,而是芯片内同一列的各个基本单元电路所共用的


动态RAM

与静态RAM相比,集成度更高,功耗更低,目前被各类计算机应用


动态RAM基本单元电路(使用电容存储01)

20190719170146207.png

电容上存在足够多的电荷表示存“1”,电容下无电荷表示存“0”,电容上的电荷一般只能位置1~2ms,即使不掉电也会自动消失,所以也就有了刷新过程


三管

读出时,先对T4置一预充电信号,使读数据线达高电压VDD,然后由读选择先打开T2,若T1的极间电容Cg存在足够多的电荷"1",是T1导通,则因T2,T1导通接地,使读数据线降为零电平,即“0”,若没有足够多的电荷“0”,T1截止,使读数据线的高电平不变,读出“1”信息。

写入时,由写选择线打开T3,这样,Cg变能随输入信息充电(写“1”)或放电(写“0”)将写入信号加到写数据线上。

单管(为了提高集成度)

读出时,字段上的高电平使T导通,若Cs有电荷,经T管在数据线产生电流,可视为读出“1”。若Cs无电荷,则数据线上无电流,可视为读出“0”。读操作结束时,Cs的电荷已将破坏性对出,必须再生。

写入时,字段上的高电平使T导通,若数据线上为高电平,经T管对Cs充电,使其存“1”;若数据线为低电平,则Cs经T放电,使其无电荷而存“0”

可以说动态RAM的读过程就是检测电容有无电,而写过程就是对电容充电放电的过程


注:T是mos管,不是电源,它能被导通,短的一端有电才能被导通


动态RAM芯片结构

20190719172021774.png


三管:

可以注意到每一行都有两线(读与写选择线),也就是说参加行地址译码的不止有行地址还有读写控制信号,且每一列共享读与写数据线

三角形的是刷新放大器,对电容的信息刷新

单管:

芯片内有时序电路,它受行地址选通①,列地址选通②,写允许信号控制③

读出时,行,列地址受①②控制,分两次存入行,列地址缓冲器,行地址经行译码后选中一行,使该行上的所有MOS管均导通,并将Cg电容反映到读放大器的某一侧(0 ~ 63 行左侧,64 ~ 127行右侧),读出时读放大器就像一个跷跷板电路,类似于一个触发器,其左右两侧电平相反,此外列地址经译码器后选中某一列,该列上的列地址选择管导通,即可将读放大器的右侧信号经读/写线,I/O缓冲器输出到Dout端

写入时,行、列地址也要分别送入芯片内的行、列地址缓存器,经译码可选中某行、某列。输入信息DIN通过数据输入器,经I/O缓存器送至读/写线上,但只有被选中的列地址选择管导通,可将读/写线上的信息送至该列的读放大器的右侧,破坏了读放大器的平衡,使放大器的右侧与输入信息相同,左侧与输入信息泛型,使读放大器的信息便可写入到选中行的Cg中


动态RAM刷新

因为有些存储单元可能长期得不到访问,原信息会慢慢消失

刷新过程实质上是先将原信息读出,再由放大器形成原信息并重新写入的再生过程


刷新是一行一行的进行的

20190719175525121.png

  • 集中刷新:在一个规定的刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作,存在死区

  • 分散刷新【一个存取周期内刷新一行】:对每行存储单元的刷新分散在每个存取周期内完成,不存在死区,但是刷新过于频繁,但是存取周期变长了,整个系统速度降低了

  • 异步刷新【刷新一行用一个存取周期】:前两种方式的结合,刷新一行只停止一个存取周期,存取死区短,而且可以将刷新安排在CPU对指令的译码阶段


刷新周期:一定时间内对动态RAM全部基本电路单元必做一次刷新,一般是2ms

存取周期:存储器在进行连续两次独立的存储器操作所需最小时间间隔,如现代MOS型 100ns ,TTL型10ns

(2)ROM

20190720173307533.png

  • PROM (Programmable ROM):可编程程序只读存储器,是需要利用电流将其烧断,写入所需的资料,但仅能写录一次

  • EPROM (Erasable Programmable ROM):可抹除可编程只读存储器,可利用高电压将资料编程写入,抹除时将线路曝光于紫外线下,则资料可被清空,并且可重复使用

  • EEPROM(Electrically Erasable Programmable Read Only Memory):电子式可抹除可编程只读存储器,运作原理类似EPROM,但是抹除的方式是使用高电场来完成


2、CPU与存储器的连接

(1)存储器的扩展

2019072017444462.png


① 位扩展是增加存储字长

上图1K x 4位 → 1K x 8位

地址线,片选线,读写线一致,其中数据线一片连接高四位,一片连接低四位

片选线选中两片,读写线对两片操作(假如读),地址线传递地址信息,然后一片往地址线传四位,一片传另外四位


② 字扩展是增加存储器的容量

上图1K x 4位 → 2K x 4位

存储字节增加了一倍,故直接用A10作为片选信号,A10为低电平时,片选线0有效,选中左边芯片,A10为高电平时,反相,选中右边芯片

地址线,读写线,数据线都一致,片选线(地址线传信号)不一致(通过反相器)


③ 字位扩展 以上两点都扩展

综上:字扩,存储器连同一片选线,位扩,连不同片选线(通常由地址线的某些位片选译码)

字位扩展:片选译码给出多个片选线,每个片选线下连接多个存储器

(2)连接

CPU有16根地址线,8根数据线,并用…作为访存控制信号(低电平有效),用…作为读写信号(高电平为读,低电平为写),现有1K x 4位RAM,8K x 8位RAM, 2K x 8位ROM, 4K x 8位ROM, 8K x 8位ROM,及74138译码器和各种电路

20190720174910890.png

二、 Cache

2019072716482849.png


Cache根据程序的局部性原理:

在一定时间内,只是对主存局部地址区域的访问。这是由于指令和数据在主存内部存放是连续分布的,并且有些指令和数据往往被多次调用(如子程序,循环程序,一些常数),即指令和数据在主存中的地址分布不是随机的,而是相对的簇聚,是的CPU在执行程序时,访存具有相对的局部性


工作原理:

  1. 块内地址直接传,块号如果命中(转换后的Cache块与CPU欲访问的主存建立关系) 直接访问存储体,如果未命中(未建立关系),查看是否有空间,有就访问主存装入Cache块中,如果没有,启用Cache替换机构,根据替换算法选择替换的地方

  2. 写比读讲究一些,因为可能发生主存与Cache内容不一致情况,两种方法解决

  3. ①写直达法:写入Cache又写入内存,实现简单但访存次数多

  4. ②写回法:只把数据写入Cache而不写入主存,当Cache块数据被替换出去时才写回主存,实现复杂一些

  5. 地址映射,是个规则,主存中的块,如果放入Cache中,可以放在Cache的哪一个块中或哪些块中

  6. 地址变换,主存块号转换成Cache块号,在Cache当中找到相应的位置

  7. 主存和Cache之间有一条通路,完成了主存和Cache的数据交换,有些计算机为了速度,如果出现不命中的情况,主存可以直接向CPU提供数据,同时与Cache之间传送

1丶 地址映射方法

  • 直接映射:主存的某一个块只能装入到Cache中的某一个块

  • 全相联映射:主存的任何一个块可以放入到任何一个块中

  • 组相联映射:主存中的某一个块可以放入Cache某一个组的任何位置

在我眼里

看一批人是否属于一个队伍


直接映射就像那支队伍(Cache)是单列的,单列的队伍只要用比较一个数据因为是一维的,

而组相联映射是多列的队伍,二维的需要两个数据


  • 直接映射

    优点:实现简单,字块是否在Cache中,只需要主存地址中的某些位判断,速度也快

    缺点:Cache的利用率可能会很低,Cache块调用冲突可能性大


  • 全相联映射

    优点:Cache的利用率高

    缺点:确定是否在Cache中需要主存块号与Cache中的每一个标记比较,电路复杂,比较位数长,速度慢


  • 组相联映射

    两者结合,电路结构也简单了,比较次数也少了(换到到jmodQ组


注:比较器并行进行,一个行就可以了

2丶替换算法

FIFO,LRU,随机


本文转自CSDN博主「qq_42146775」的原创文章,https://blog.csdn.net/qq_42146775/article/details/96429850


相关推荐

目前的物联网产品,主要有哪些?

· 1485浏览 · 2019-05-24 16:47:05
为什么物联网正在接管市场

追忆似水年华 · 561浏览 · 2019-05-31 10:16:43
51单片机驱动RC522模块经验分享

iamitnan · 1282浏览 · 2019-06-11 11:01:06
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页