存储器(二)

这篇具有很好参考价值的文章主要介绍了存储器(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

存储器和CPU的连接

  1. 地址线的连接:CPU的低位地址和芯片片内地址相连,高位地址做片选信号。
  2. 数据线的链接:位扩展,使芯片数据线和CPU的数据线相同。
  3. 读/写命令线的连接
  4. 片选线的连接:CPU高位地址线、访存信号、译码器及门电路
  5. 合理选择存储芯片:系统ROM、数据RAM
  6. 其他(时序、负载)

例1:

设CPU有16根地址线,8根数据线,并用MREQ做访存信号(低电平有效),用WE作为读写控制信号。现有 RAM存储器芯片:1K x 4位、4K x 8位、8K x 8位的;ROM存储器芯片:2K x 8位、4K x 8位、8K x 8位;74138译码器及各种门电路。
(1)主存地址空间分配:
6000H~67FFH为系统程序区
6800H~6BFFH为用户程序区
(2)合理选用上述芯片,说明各选几片:
(3)详细画出存储芯片的逻辑图:

先分析一下解题思路:

1.选择芯片
要计算存储容量我们首先要知道:
存储容量 = 末地址 - 首地址 + 1

系统:67FFH - 6000H + 1= 800H = 2K
所以系统的容量为2K x 8位
根据给定的芯片,选用1片 2K x 8位ROM芯片
程序:6BFFH - 6800H +1 = 400H = 1K
所以系统的容量为1K x 4位
根据给定的芯片,选用2片 1K x 4位RAM芯片

2.写出对应的二进制编码
存储器(二)
3.分配CPU地址线
如上图将A10~A0接2K x 8位ROM的地址线,A9~A0接1K x 4位RAM的地址线。

74138译码器:
存储器(二)
4.片选信号
存储器(二)
依据第三步74138译码器输入输出图可以发现,当C、B、A为1、0、0时Y4为0
Y5为1,当C、B、A为1、0、1时Y4为1Y5为0。

5.画出电路图
存储器(二)

例2

设CPU有16根地址线,8根数据线,并用MREQ做访存信号(低电平有效),用WE作为读写控制信号。现有 RAM存储器芯片:1K x 4位、4K x 8位、8K x 8位的;ROM存储器芯片:2K x 8位、4K x 8位、8K x 8位;74138译码器及各种门电路。
(1)最小8K地址位系统程序区,于其相邻16K地址为用户程序地址,最大4KB地址为系统程序工作区。
(2)指出存储芯片的种类和数量
(3)详细画出存储芯片的片选逻辑
先分析一下解题思路:

1.画出内存分布图 2.确定芯片的数量及类型
存储器(二)
3.计算每个存储区的十六进制编码
本题我们知道内存容量和初始地址,就可以计算末地址:
存储容量 = 末地址 - 首地址 + 1
末地址 = 存储容量+首地址-1
程序:末地址 = 8K+0-1=2^13-1=1 1111 1111 1111B=1FFFH

系统程序工作区:由题可得系统程序工作区与用户程序地址并不相连而是处于最大4KB地址
首地址 = 末地址-存储容量+1=(64K-1)-4K+1=F000H

4.写出相应的二进制地址码,确认片选信号
存储器(二)
根据74138译码器选择Y0、Y1、Y2、Y7作为片选信号。

5.CPU与存储器的连接图
存储器(二)

存储器的校验

编码的最小距离

任意两组合法代码之间二进制代码的最小差异,编码的纠错、检错能力与编码的最小距离有关。
L-1=D+C
L——编码的最小距离
D——检测错误的位数
C——纠正错误的位数

汉明码的组成

三要素

  • 检测位位数
  • 检测位位置
  • 检测位取值

检测位位数如何确定:

存储器(二)

检测位位置如何确定:

存储器(二)

检测位取值如何确定:

按检测位分组,小组内奇偶校验,得到检测位的值。
汉明码每位所占用的检查位:
存储器(二)

在每一小组里按照配偶原则或配奇原则确认检测位的值。
存储器(二)
把求得的检测位写回n+k代码相应位,即得检测位和数据位共同组成的汉明码。

例1:求0101按“偶校验”配置的汉明码
解:
∵ n=4
根据2^k ≥ n + k + 1
可得k=3
汉明码排序如下:

二进制序号 1 2 3 4 5 6 7
检测位 C1 C2 C4
数据 0 1 0 1
检测位取值 0 1 0 1

接下来我们计算检测位取值
C1=3⊕5⊕7=0⊕1⊕1=0
C2=3⊕6⊕7=0⊕0⊕1=1
C3=5⊕6⊕7=1⊕0⊕1=0
最后结果如下:

二进制序号 1 2 3 4 5 6 7
检测位 C1 C2 C4
数据 0 1 0 1
检测位取值 0 1 0 0 1 0 1

∴ 0101的汉明码位0100101

汉明码的纠错

形成新的检测位Pi,其位数与增添的检测位有关,如增添3位(k=3),新增添的检测位为P4 P3 P1。
以K=3为例,Pi的取值为
P1=1⊕3⊕5⊕7——C1
P2=2⊕3⊕6⊕7——C2
P4=4⊕5⊕6⊕7——C3
对于按“偶校验”配置的汉明码不出错时用满足:
P1=0,P2=0,P4=0

例2:已接受到汉明码为0100111(按配偶原则配置)试问要求传送的信息是什么?
解:纠错过程如下

二进制序号 1 2 3 4 5 6 7
检测位取值 0 1 0 0 1 1 1

P1=1⊕3⊕5⊕7 = 0⊕0⊕1⊕1=0——无错
P2=2⊕3⊕6⊕7 = 1⊕0⊕1⊕1=1——有错
P4=4⊕5⊕6⊕7 = 0⊕1⊕1⊕1=1——有错
∵ P1无错
∴ 3,7无错,则错误在6
纠正结果为:0100101故传递的信息为0101。

提高访存速度的措施

  • 调整主存结构
  • 采用高速器件
  • 采用层次结构 Cache-主存

单体多字系统

增大存储器的带宽,提高存取速度
存储器(二)

多体并行系统

(1)高位交叉
存储器(二)
(2)低位交叉
存储器(二)
低位交叉的特点在于不改变存取周期的前提下,增加存储器的带宽
存储器(二)

高速缓冲存储器(Cache)

为什么要引入高速缓冲存储器?

CPU和主存(DRAM)的速度存在差异, CPU可能会出现“空等”现象。
存储器(二)
程序访问的局部性原理
1.时间局部性:程序中某条指令一旦执行,则不久后该指令可能再次被执行,如果某数据被访问,不久后该数据可能再次被访问。因为程序中有循环。
2.空间局部性:程序将访问的指令或数据很可能与目前正在执行的指令在空间上相邻或邻近。因为程序大部分是顺序执行的。

根据程序访问的局部性原理,将CPU近期要用到的指令和数据提前从主存送到Cache,使得CPU在一定时间内只访问Cache。一般Cache采用高速的SRAM制作。

Cache的工作原理

主存和缓存的编址

主存和缓存按块存储,块的大小相同,块长为B
每个存储块中有若干存储字,存储字包括主存块号与块内地址,对于缓存Cache来说存储字包括缓存块号和块内地址。
存储器(二)

命中与未命中

假设缓存共有C块,主存有M块 M>>C
命中:主存块调入缓存,主存块与缓存块建立对应关系,用标记记录与某缓存块建立了对应关系的主存块。
未命中:主存块未调入缓存,主存块与缓存块未建立对应关系。
”注:由于缓存块数远远小于主存块数,在每次数据读取过程中,一般都需要释放部分缓存块,来缓存心得主存块内容。“

Cache的命中率(衡量Cache的效率)

定义:CPU欲访问的信息在Cache中的比率
设在一个程序执行期间,设Nc未访问Cache的命中次数,Nm为访问主存的次数,则命中率h为:
h=Nc/(Nc+Nm)命中率与Cache的容量与块长有关。

命中率与Cache容量的关系:
一般而言,Cache容量越大,Cache的命中率就越高,但容量不能太大,太大成本会增加,同时当Cache容量达到一定值时,命中率就不会有明显提高了。

命中率与块长的关系:
当块由小到大增长时,起初会因局部性原理,命中率提高。如继续增大块长,命中率可能下降(对于一定容量的缓存存储器来说,单个块容量越大,也就说明块数越少,那么缓存块替换也就会频繁)。

Cache-主存系统的平均访存时间

设Cache命中率为h,未命中率为1-h,访问Cache的时间tc,访问主存的时间为tm,则Cache-主存系统的平均访存时间ta为:
ta=h*tc+(1-h)*tm

Cache-主存系统的效率

效率e与命中率有关
e=访问Cache的时间/平均访存时间 x 100%
设Cache命中率为h,,访问Cache的时间tc,访问主存的时间为tm
e= [tc / (h*tc+(1-h)*tm)] *100%

例1:假设CPU执行某段程序时,共访问Cache命中2000次,访问主存50次,已知Cache的存取周期为50ns,主存的存取周期为200ns。求Cache-主存命中率、效率和平均时间。
(1)命中率
h=2000/(2000+50)=0.97
(2)效率
e=[20ns / (0.97 x50ns+(1-0.97) x 200ns)] x 100%=91.7%
(3)平均访问时间
t = 0.97 x50ns+(1-0.97) x 200ns=54.5ns

Cache的基本结构和改进

存储器(二)
Cache由Cache替换机构、主存Cache地址映射变换机构、Cache存储体三个主演部分组成。
Cache替换机构:负责更新Cache地址。

主存Cache地址映射变换机构:按照主存与Cache的某种映射方式,判断CPU送来的地址是否命中Cache,如果命中,则将主存地址变换,访问Cache地址。如果未命中,则将主存地址调入Cache。

Cache存储体:以块为单位与主存交换数据,以字为单位与CPU交换数据。

Cache的读操作

存储器(二)

Cache和主存的写一致性

  • 写直达法
    命中时,写操作时数据既写入Cache又写入主存。写操作时间就是访问主存的时间,读操作块失效时不涉及对主存的写操作,更新策略比较容易实现。
    未命中时,直接写入主存。
    特点:Cache无需增加修改位及相应的逻辑线路写贮存降低了效率。
  • 写回法
    命中时,写操作只把数据写入Cache而不写入主存。当Cache数据被替换出去时才写回主存。
    未命中时,将此块装入Cache后对其进行更改,主存的写操作统一地留到换出时进行。
    特点:减少主存次数,存在不一致的隐患。

Cache的改进

(1)增加Cache的级数
(2)统一缓存和分立缓存

Cache的主存映射

和基本概念

地址映射:主存的块以什么方式装入(定位到)Cache中。
地址变换:当主存的块按照某种映射方式装入Cache之后,每次访问Cache时怎样将主存地址变换成对应的Cache地址。
地址映射方式:直接映射方式、全相联映射方式、组相联映射方式

直接映射

存储器(二)
将主存块按照Cache块进行分区,如图Cache有2^c 块,主存有2^m块,则有 2^m-c区。Cache与主存每个块区一一对应。
主存地址由主存字块标记(这里指的是区号),Cache字块地址,字块内地址组成,判断是否命中时,只需根据Cache字块地址定位到Cache存储体,根据存储体前的标记与主存字块标记进行对比,相同则命中。

例:主存共有8块,Cache共有4块,每块2字,Cache和主存采用直接映射,问主存地址0101B是否命中?命中时Cache地址为多少?
Cache

标记 块号
0 0
1 1
0 2
1 3

解:

依据题意共有两个区,也就是标记位应为1位,Cache块号应为2位,块内地址1位。

标记 Cache块号 块内地址
0 10 1

根据10地址定位块号2,对应的标记为0与当前标记相同,命中。
Cache地址 = Cache块号+块内地址 = 101B

全相联映射

存储器(二)
主存分为主存块标记和块内地址。

例:主存共有8块,Cache共有4块,每块2字,Cache和主存采用全相联映射,问主存地址1111B是否命中?命中时Cache地址为多少?
Cache

标记 块号
0 0
2 1
5 2
7 3

解:主存地址格式
主存共有8块则主存标记有三位,则块内地址1位。

主存块标记 块内地址
111 1

111对应标记7,与Cache表对比有相同标记,命中。
Cache地址 = Cache块号+块内地址=111B

组相联映射

存储器(二)
组相联映射地址变换
存储器(二)文章来源地址https://www.toymoban.com/news/detail-417461.html

到了这里,关于存储器(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 012 - STM32学习笔记 - DMA_存储器到存储器

    011 - STM32学习笔记 - DMA直接存储器 1、DMA简介 我们知道stm32在实际应用过程中具有很强大的功能,包含数据的采集、处理、逻辑功能的运算等,因此stm32一直在处理大量的事务,但是在实际使用过程中,我们知道有些事情实际上不需要CPU过多参与,比如:数据的复制和存储,当

    2024年02月08日
    浏览(45)
  • 【DRAM存储器五】DRAM存储器的架构演进-part2

    👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容  参考书籍:《Memory Systems - Cache, DRAM, Disk》      目录

    2024年02月07日
    浏览(37)
  • 【DRAM存储器六】DRAM存储器的架构演进-part3

    👉个人主页:highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容  参考书籍:《Memory Systems - Cache, DRAM, Disk》      目录

    2024年02月08日
    浏览(35)
  • 计算机的主存储器与辅助存储器

    今天给大家介绍计算机的 主存储器 和 辅助存储器 ,也就是我们所说的 主存 和 辅存 。 主存一般就是指内存,辅存指的就是磁盘 。在正式介绍之前,大家可以思考两个问题: 为什么计算机断电,内存数据会丢失?为什么计算机断电,磁盘数据不会丢失? 这两个问题贯穿我

    2024年02月05日
    浏览(61)
  • [深入理解NAND Flash (原理篇)] Flash(闪存)存储器底层原理 | 闪存存储器重要参数

    传送门 总目录  所在专栏   《 深入理解SSD》 个人辛苦整理,付费内容,禁止转载。 内容摘要 从底层物理原理上了解 Nand Flash。 现代计算机构想是基于冯 · 诺依曼架构的图灵计算机设备,图灵从理论上去论证了现代计算机可以实现,也就是给现代计算机注入了灵魂,而冯

    2024年02月06日
    浏览(44)
  • ROM、RAM、内存、内存条、外存、内部存储器、外部存储器、FLASH等之间的关系

    ​   各位看到这一系列的名词,是否也曾感受到一头雾水?研究了一上午终于理清了它们之间的关系,直接上图说明,相信你看完也能恍然大悟!若有错误麻烦在评论区指出。 这里有几点需要明确: 存BOIS的ROM也属于内存(因为CPU也可以对其直接寻址),但我们生活中常说

    2023年04月26日
    浏览(51)
  • 存储器(二)

    地址线的连接:CPU的低位地址和芯片片内地址相连,高位地址做片选信号。 数据线的链接:位扩展,使芯片数据线和CPU的数据线相同。 读/写命令线的连接 片选线的连接:CPU高位地址线、访存信号、译码器及门电路 合理选择存储芯片:系统ROM、数据RAM 其他(时序、负载)

    2023年04月18日
    浏览(37)
  • 什么是存储器刷新

    简答 22. 什么是存储器刷新?常用哪几种方式? 为了维护所存信息,需要在一定时间内将所存的信息读出再重新写入,这一过程称为刷新。刷新是一行一行进行的,由CPU自动完成。 主要有:可集中刷新,分散刷新和异步刷新 32. 四地址格式指令、三地址格式指令、二地址格式指

    2024年02月12日
    浏览(25)
  • 内存管理:存储器管理

    内存管理的主要功能: 内存空间的分配与回收 。由操作系统完成主存储器空间的分配和管理,使程序员摆脱存储器分配的麻烦,提高编程效率 地址转换 。在多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,存储器必须系统地址变换功能 内存空间的扩充

    2023年04月09日
    浏览(48)
  • 实验二 存储器实验

    一、FPGA 中 LPM_ROM 定制与读出实验的实验步骤 第一步:创建新的工程建立mif文件 File---New Project wizard.... ---选择芯片cyclone IV EP4CE22F17C8---建立存储器初始化文件ROM1.mif  ---创建一个128*32bits空间大小的存储空间---输入初始化数据(如图5.1ROM1的数据) 图5.1 ROM1的数据 第二步:调用

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包