当前位置: 首页 > ai >正文

考研408《计算机组成原理》复习笔记,第三章(3)——多模块存储器

一、多模块存储器

因为双端口RAM不考,那老子学408的直接不学!!!节省时间只学【多模块存储器】

为什么要有多模块存储器?他要解决什么问题?(会考概念)

所以记住,【多模块存储器】主要是为了:

1、单体多字存储器

非重点,了解一下即可

总结一下人话:

  • 只有【1个存储体】
  • 每个存储单元存储m个字(在原本1个存储单元1个字的基础上,把m个小存储单元合并成1个大存储单元
  • 数据总线宽度也为m个字,能1次并行读出m个字
  • 每次只能同时取m个字,不能单独取其中某个字

注意缺点:

只有指令和数据在主存中连续存放时,这种方法才能有效提升存取速度;

一旦遇到转移指令、或操作数不能连续存放时,这种方法的提升效果就不明显
(因为每次只能同时取m个字,不能单独取一个字)

然后记一下,跟【位扩展】方式完全相同

2、多体并行存储器

多体交叉存储器由多个存储模块(可理解成多个内存条)构成

  • 这些模块的容量和存取速度相同
  • 各模块都有独立的读写控制电路、地址寄存器和数据寄存器
  • 它们既能并行工作,又能交叉工作

根据对多个模块编址方式的不同又分为以下两种:

  • 高位多体交叉
  • 低位多体交叉

在这之前我们需要知道一个事情:

  1. 程序指令通常都是在存储体中【连续存放】的(大部分情况)
  2. 多体并行存储器的【主存地址】分为【体号(模块地址)】+【体内地址(块内地址)
  3. 体号(模块地址)】就是代表是哪一个存储模块体内地址(块内地址)】就是这个模块内一个存储单元的地址(谁在高位、谁在低位,取决于不同的编制方式)

(1)高位多体交叉编址

概念考点

记住考点:

  • 体号(模块地址)】在主存地址的【高位(也就是左边)】!!!!
  • 高位多体交叉编址是【顺序存取存储器】,存储方式是【串行访问中的“顺序存取”
    • 可以发现一个模块存满了之后,【该模块最后的存储单元的主存地址】加1就是【下1个模块的第1个块存储单元的主存地址】,可以看出每个模块都是按顺序连贯着读写的,而不是并行

缺点(原因)

顺序存取的效率很慢,存取周期长。为什么:

  • 1、因为【存取周期T】分为【存取时间】+【恢复时间,假设T=4r,读写花了r恢复时间花3r,但是因为只有一个再生电路能恢复存储单元,在恢复时间里其他单元也必须干等着上一个存储单元的恢复时间结束才能开始读取

  • 2、一个程序的【指令】和【数据】基本分布在同一个主存模块,那么当一直频繁访问一个主存模块时,别的模块处于空闲状态,就没法实现多模块并行工作

由于这种顺序连续访问,导致效率不高,所以这种多模块存储器实际上只是起到了【扩容】的作用(注意:因为扩展多个存储体,因此是按【字扩展】

耗时计算

访问n个存储字的耗时:【nT】(T是一个存储周期)

(2)低位多体交叉编址

概念考点

记住考点:

  • 反过来【体内地址(块内地址)】在主存地址的【高位(也就是左边)】!!!!
  • 低位多体交叉编址允许【1个模块的恢复时间】直接访问【下一个模块】(高位多体交叉编址只允许【一个模块按顺序访问完,再访问下一个模块】)
  • 采用低位多体交叉编址方式的存储器叫【交叉存储器
    是【随机存储器
  • 宏观上】每个存储周期内所有模块被【并行访问
    微观上】m个模块被【串行访问

为提高顺序访问时各存储模块的并行性,低位多体交叉(交叉编址模式)中各存储模块均有独立的:地址寄存器、数据寄存器、读写控制电路

耗时计算

简单来说就是记公式:

访问n个存储字的耗时:【T + (n-1)r】(T是一个存储周期,r是一个读写时隙)

至于为什么自己看吧:

(3)应该要几个模块?(几个内存条)

结论:

为啥?自己看:

注意一个模块内【要读一个存储单元】必须等【上一个存储单元恢复时间结束】

(4)总结

(5)拓展理解

还有例题讲解,未完待续。。。。

http://www.xdnf.cn/news/14794.html

相关文章:

  • 10分钟搭建 PHP 开发环境教程
  • 基于 ETL 工具实现人大金仓数据库的数据迁移与整合实操指南
  • Go中使用Google Authenticator
  • OpenSSL 内存泄漏修复全景:119 个历史 Commit 的类型分析与防御启示
  • uniapp 微信小程序水印
  • bug记录::= 给全局变量赋值导致出现panic
  • Python大模型应用开发实践 - 初探
  • 金融系统中常用的FIX协议
  • 【三维重建】Flow Distillation Sampling:使用匹配先验的正则3DGS
  • 【阿里巴巴JAVA开发手册】IDE的text file encoding设置为UTF-8; IDE中文件的换行符使用Unix格式,不要使用Windows格式。
  • 物联网中的Unity/Unreal引擎集成:数字孪生与可视化控制
  • RabbitMQ 高级特性之死信队列
  • C++完美转发:实现高效的参数传递
  • 「日拱一码」017 深度学习常用库——TensorFlow
  • AI知识图谱在行业的应用
  • 微信小程序——skyline版本问题
  • 设计模式(九)
  • {{ }}和v-on:click
  • 两级缓存 Caffeine + Redis 架构:原理、实现与实践
  • Bean属性转换框架深度对比:从BeanUtils到MapStruct的演进之路
  • 【AI News | 20250702】每日AI进展
  • 修改阿里云vps为自定义用户登录
  • 大数据救公益:数字时代下的社会力量如何玩转“数据+善意”
  • 项目——视频共享系统测试
  • Element UI 完整使用实战示例
  • 【Python】图像识别的常用功能函数
  • c++ 的标准库 --- std::
  • 使用numpy的快速傅里叶变换的一些问题
  • x86汇编语言入门基础(三)汇编指令篇1 逻辑位运算
  • 6. 常见K线形态(楔形与旗形)