计算机组成与体系结构笔记(3)

4.4 控制冒险

两种停顿:

  • 清零
  • 气泡
    条件转移:MEM才能计算出目标地址,需要stall3个时钟周期
    在这里插入图片描述
    解决方法:尽早得知目标地址:在译码阶段完成新地址计算,但仍需要stall一个周期
    在这里插入图片描述
    转移预测:
  • 静态预测:not taken
  • 动态预测:转移历史表Branch History Table(BHT)
    1位预测器,2位预测器

5 存储器

5.1 cache

利用了数据访问的时间局部性和空间局部性
miss

  • cold miss:cache是空的
  • conflict miss:0,8,0,8,0,8二者相互竞争
  • capacity miss:cache容量太小,小于实际活跃的容量大小
    cache 类型
  • direct mapped:
  • E-way associative
    按什么规则替换block?
  • 随机
  • LRU:least recently used
  • FIFO:first in,first out
  • NMRU:not most recently used
    在这里插入图片描述
    Using blocking to improve temporal locality:
    在这里插入图片描述

5.2 虚拟内存

虚拟内存的好处

  • 比物理地址大的程序也能运行
  • 保护
  • Simplifies loading a program for execution by providing for code relocation (i.e., the code can be loaded anywhere in main memory)
    页表:虚拟地址到物理地址的映射
    每个进程都有一个页表,多个进程则有多个页表
    32位的机器,一个页大小为4kB,那么一个页表就有220个页表项
    太占空间了怎么办?多级页表
    页表放在内存中,访问起来太慢了怎么办?TLB,放在cache中
    TLB实际是页表的缓存
    一般是write back,需要记录是不是dirty的
    在这里插入图片描述
    一般TLB应该覆盖L1 cache,比如说L1 cache是64kb,一个页是4kb,那么TLB要至少16项
    以前的TLB是全关联的,现在多是2~4关联,因为现在TLB项数更多了
    在这里插入图片描述
    TLB是page table的子集,是一个特制的硬件
    在这里插入图片描述
    linux进程的数据结构,记录数据段、代码段的起始虚拟地址
    在这里插入图片描述
    Linux地址异常
  • segmentation fault:段错误,虚拟内存压根不存在
  • protection exception:没有权限读写
  • normal page fault:不在page table中,说明页是在磁盘上的

6 输入输出与中断

6.1 外设工作原理

发生中断时,EPC记录当前PC
I/O设备的类型

  • 慢速设备:键盘鼠标
  • 中速设备:打印机
  • 高速设备:光盘、磁盘机
    所以需要I/O设备控制器解决信息的缓冲、同步、格式的转换
    在这里插入图片描述
    x86用in/out指令读写I/O设备

6.2 输入输出的控制方式

  1. 数据查询方式:循环不多查询设备状态,浪费大量CPU时间
  2. 中断的方式:适合少量数据的不定时输入和输出的控制
  3. DMA(direct memory access):适合成组交换数据的场合
    DMA带来的问题: DMA进行数据传输的时候CPU可执行其他程序,可能同时访问主存,引起主存使用权的冲突
    解决方法:周期挪用法: 发生访存冲突时,DMA优先访问,CPU现场暂停一个或多个存储周期。
    在这里插入图片描述
    DMA自己传数据,CPU自己做自己的,涉及到lw/sw指令,如何cache命中,不涉及主存,如果没命中,造成主存访问冲突,DMA有优先权,完成一次传输之后,CPU在下一次DMA请求之前访问主存
    DMA与程序中断的区别
    中断通过程序实现数据传送,DMA靠硬件实现。
    DMA每次传输数据之前先要先发一个DMA请求,并且DMA请求的优先级比中断请求高,CPU优先响应DMA请求,避免DMA所连接的告诉外设丢失数据。
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值