计算机组成原理自学笔记(三)

两周前算是把这个哈工大的mooc给看完了,算是粗略的过了一遍。看到有朋友在学一些新的技术,感觉自己还是落后很多,自我安慰一下按照自己的节奏来吧,反正这些基础债无论如何还是要还。组成原理结束后打算去看下操作系统,数据结构和算法还要再做一点心理建设再往后放放吧。持续学习还是很难坚持,就算断断续续也总比不做强一点,心理建设玩了,开干吧。


总线通信控制

解决通信双方协调配合问题

总线传输周期
主设备与从设备完成一次完整并且可靠的通信所需要的时间

  • 申请分配阶段: 主模块申请总线仲裁决定
  • 寻址阶段: 主模块向从模块给出地址和命令
  • 传数阶段:主模块和从模块交换数据
  • 结束阶段:主模块撤销有关消息

通信方式

  • 同步通信: 由统一时标(定宽定距时标)控制数据传送
    直接视频截图了😎

    在这里插入图片描述
    一般应用在总线长度比较短,各个模块存取时间比较一致时

    • 异步通信:采用应答方式,没有公共时钟标准

      不互锁:主设备发出通信请求,从设备接收到通信请求后进行应答,之后主设备撤销请求信号,从设备撤销应答信号;主设备不管是否接收到应答信号,经过一定的延时以后都会撤销请求信号,从设备也不管主设备是否接收到应答信号,经过一定的延时以后都会撤销应答信号;可靠性存在问题
      半互锁:主设备发出请求,从设备接收到请求后发出应答信号,主设备接收到应答信号后发送撤销信号,主设备接收不到应答信号,这个请求将保持;可能导致请求一致保持
      全互锁:主设备发出请求,从设备接到请求后发出应答信号,主设备接收到应答信号后会发送撤销请求,同样只有接收到主设备撤销请求后,从设备才会撤销应答信号

    • 半同步通信: 同步异步结合(主要是解决不同速度的两个模块的通信)
      在这里插入图片描述
      在这里插入图片描述

同步:发送方用系统时钟的前沿发信号,接收方用系统时钟后延判断识别;异步:允许不同速度的模块和谐工作,增加一条“等待”响应信号

以上三种通信方式共同特点:
主模块发出地址、命令 – 占用总线
从模块准备数据 --不占用总线,总线空闲
从模块向主模块发送数据 --占用总线空闲
以上三个过程在中间的过程中,总线是空闲的,而总线连接了多个模块(设备)是系统瓶颈,总线在传输周期中有空闲是资源浪费,分离式通信将解决此问题

  • 分离式通信:充分挖掘系统总线每个瞬间的潜力
    • 子周期1:主模块申请占用总线,使用完即放弃总线的使用权
    • 子周期2:从模块申请占用总线,将各种信息送至总线上

减少总线空闲,I/O设备准时放弃总线占用


总线是重点内容,坦率的讲看完之后印象并不是特别深刻,只能说是大概知道有这么回事。之前了解到线程间锁的实现最终是由锁总线来实现的,当然其中还涉及更多的细节,追究下去就感觉这东西有点无底洞了,贴几篇文章以备以后回溯吧。
Intel 64汇编指令集中的LOCK指令前缀
浅论Lock 与X86 Cache 一致性
缓存一致性和LOCK指令前缀
汇编中的lock前缀

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值