• 计算机系统知识--输入输出技术


           首先了解一个概念输入输出技术是处理内存和外设设备间数据联系的。而且交互过程受cpu控制。


             

    程序控制输入输出

    程序的输入输出方法主要有四种:

    无条件传送

            计算机系统存在一些简单外部设备,当他们開始工作时,随时准备好接收到cpu的数据,或随时准备好数据,被cpu调用。这就是一种无条件传送。


    查询方式

            无条件传送方式使用也是有条件的,就是外设总是准备好数据,或者执行非常慢的外设。对于那些不总是准备好的外设,就是慢速或中速设备就使用查询的方式,这样的方式要求外设提供设备状态。

            通过询问外设的状态,就能实现输入输出。


    查询方式存在多个外设情况,就要先多全部外设进行查询,假设有资源就直接利用,然后再查询后面的。

    中断方式

            cpu在运行一个程序过程的 时候,发生了其它的事件,cpu要去处理那个事件前(中断承认),那正在处理的事件就要停止(中断请求)并保存“事件现场”(断点保护),当处理完突发事件后,再回到原来终止的事件上进行处理(中断源识别)。这个过程就是中断过程。


    图中数字依次代表运行顺序,图示仅仅代表主要步骤 

           中断方式能够 提高cpu的执行效率,由于这样cpu能够对外设进行实时响应,而不须要等待cpu全部事件处理完之后。

    直接存储器(DMA)方式

    DMA(Direct Memory Access),要实现DMA方式就要使用大型集成电路芯片DMAC。


           1、外设向DMAC发出DMA请求。
           2、然后DMAC依据CPU的HOLD信号向CPU提交DMA请求。
           3、cpu完毕当前总线周期后。马上对DMA请求作出对应。
           4、待cpu运行完。DMAC就開始对总线实时控制并向外设发送DMA对应信号;
           5、DMA送出信号 后,就实现了内存和外设,或内存和内存间的数据交换。


           6、DMAC运行外任务后,通过CPU发HOLD信号。撤销DMA请求。


    以上就是一个完整DMA方式的数据交换。

           输入输出技术能够说是实现人机交互的重要通道。人们和计算机进行对话和交换,就要通过这个技术将我们的想法传达给计算机,然后计算机将它得到的结果显示给我们。


           接下来要看看在计算机系统中起到非常重要传输作用的总线,限于篇幅。请看下一篇博客。






  • 相关阅读:
    通过docker-composer启动容器nginx,并完成spring.boot的web站点端口转发
    手写redis的docker文件,通过docker-compose配置redis
    基于Docker Compose搭建mysql主从复制(1主2从)
    ubuntu 14.04 挂载window共享目录
    asp.net mvc,基于aop实现的接口访问统计、接口缓存等
    自定义属性Attribute的运用
    表值参数的使用
    js的title提示
    Android之ViewPager中包含ViewFlipper时实现双滑动嵌套解决父控件干扰问题
    Android之ViewFlipper实现手动+自动切换图片(附加动画效果)
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6850195.html
Copyright © 2020-2023  润新知