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

计算机组成原理4.2.3提高存储器访问速度的措施

提高存储器访问层次大概有三种方法

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

    调整存储结构

    单体多字系统

     利用程序局部性原理,访问一个块 相邻的若干块都会被拿出来,缺点可能会碰到跳转类指令

    多体并行系统

    高位是体号,低位时地址因此,CPU给出一次存储访问总是对一块连续的存储单元进行的,在多CPU系统中,不同的CPU访问不同的存储块,达到并行工作。

     这种做法可以在不改变存取周期的前提下,提高存储器带宽,因为可以在一个访问周期下,访问多个不同的存储体。适用于单处理器系统

    简要说明高位交叉和低位交叉提高访存速度的原因

  • 高位交叉各个体分别响应不同请求源的请求,实现多体并行 高位体号 低位地址
  • 低位交叉不改变存取周期的情况下增加存储带宽 低位体号 高位地址

 多个存储体并行访问,所以最后的是32*8=256,8-1=7

低位交叉指令流水的工作过程

 Cache的设计

为了保持cache和主存内容的一致性,采用写直达法和写回法两种策略。

为了能加快访问速度,采用映射的方法,这里需要注意算法和替换策略

使用告诉缓存器是为了解决CPU和主存速度不匹配问题,缓存的地址对用户来说是透明的。存储管理主要是通过硬件来实现没使用虚拟存储器主要是为了解决容量问题,存储管理主要由操作系统和硬件来实现,CPU不直接访问第二级存储器。

Cache的容量和命中率有关。

Cache和主存的地址映射

直接映射

指令格式

 每个cache可以对应若干个主存但是每个主存只能对应一个cache

映射算法:i = j mod C

 例题

 全相联映射

指令格式

                                        主存 中的 任一块 可以映射到 缓存 中的 任一块

 

在缓存-主存的地址映射中全相联映射的灵活性最强,全相联映射的成本最高。 

 组相联映射和多路组相联

指令格式

组相联 主存中的每一块可以被放置到Cache中 唯一的一个组中的任何一个位置. 组相联是直接映象和全相联的一种折中.

注意:几路组相联是看多少个是一组

 

                         直接 全相联映射   

                   注意:几路组相联是看多少个是一组

块长是16B 四个块为一组 每一组是64B 所以一共有16KB/64B=2^8组,所以就看倒数第三位和倒数第二位就行,最后一位的A是块内偏移量 C*16+B=203

                                                 同理 26F

 

多级存储系统方法:

 

替换算法/写策略


http://www.kler.cn/a/17400.html

相关文章:

  • idea的mapper.xml文件里写sql语句出现Tag name expected错误提示
  • 《云原生安全攻防》-- K8s安全防护思路
  • 人工智能的前沿研究方向与未来发展趋势
  • SQL50题
  • 计算机网络分析题
  • 线性表-数组描述补充 迭代器(C++)
  • 送了老弟一台 Linux 服务器,它又懵了!
  • Ae:橡皮擦工具
  • Redis缓存穿透和雪崩
  • 3 文件和目录
  • 归纳截图小结
  • innodb_flush_log_at_trx_commit 和 sync_binlog 参数解析
  • 数字中国建设峰会|大模型带来产业智能化新机遇
  • 【Linux0.11代码分析】03 之 setup.s 启动流程
  • C++——类和对象(3)
  • 初识 OPC
  • 05_Uboot源码目录分析
  • Java 版 spring cloud 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单
  • 2.压力测试+优化(Jmeter)
  • ChatGPT提示词工程(四):Inferring推断
  • MySQL基础
  • vim编辑器
  • Build生成器模式
  • (二)【平衡小车制作】电机驱动(超详解)
  • 内存越界是否一定会导致程序崩溃吗?详解内存越界
  • CUDA下载,以及下载GPU版本的pytorch