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

CPU与IO设备交互

         距离cpu比较近的总线速度快,价格昂贵一些,根据重要程度选择总线,cpu不是通过总线直接和io设备相连接的,而是通过设备控制器进行连接的,暂时只需要关注cpu和设备控制器的直接进行的操作。

 通过判断状态寄存器是否usy或者ready来决定是否将数据加载到寄存器里。

   程序执行时判断状态寄存器是否为busy,如果busy则等待,如果ready则将内存的数据写到exa寄存器中,再将寄存器里的值写数据寄存器里面,此时需要处理数据,所以设置状态寄存器为busy,再将数据加载到命令寄存器中,通过控制电路去打印相应的数据,当打印完成时再将设置为ready,ready时才可以往数据寄存器内写入数据,通过一个中间件来完美地控制打印机的操作。

 问题:CPU如何知道将数据发送给哪一个寄存器?

答:例如内存中存在指令   out    0X03B0    exa,out指令将exa的值给端口号为0X03B0的寄存器,将每个不同的寄存器标志为不同的端口,或者将不同的寄存器编址为不同的地址。参考下图。

因为上一篇文章中提到了用户态和内核态,一些out/in指令作为内核态中的指令,只能在操作系统中进行,所以在打印程序进行时必然调用了操作系统的接口,从而使操作系统进行了out操作如下图。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 什么是服务器带宽
  • vue+watermark-dom实现页面水印效果
  • ESP32CAM人工智能教学15
  • React中Hooks几个有用的 ref
  • go语言Gin框架的学习路线(八)
  • 基于3D开发引擎HOOPS平台的大型三维PLM系统的设计、开发与应用
  • Linux之基础IO(上)
  • TeraTerm 使用技巧
  • 什么是单例模式,有哪些应用?
  • 模板、STL 简介(深度剖析)
  • VisualRules-Web案例展示(一)
  • mysql、oracle、db2数据库连接参数
  • SpringSecurity通用权限管理系统
  • 关于合芯新通RTK配置的方法记录7.23
  • k8s部署rabbitmq集群
  • 网络传输文件的问题
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • chrome扩展demo1-小时钟
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • C学习-枚举(九)
  • Git 使用集
  • iOS小技巧之UIImagePickerController实现头像选择
  • jdbc就是这么简单
  • nfs客户端进程变D,延伸linux的lock
  • Spring Cloud Feign的两种使用姿势
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • 创建一个Struts2项目maven 方式
  • 创建一种深思熟虑的文化
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 马上搞懂 GeoJSON
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 携程小程序初体验
  • 学习HTTP相关知识笔记
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • elasticsearch-head插件安装
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​TypeScript都不会用,也敢说会前端?
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • ( 10 )MySQL中的外键
  • (1)(1.9) MSP (version 4.2)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (第27天)Oracle 数据泵转换分区表
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (一)模式识别——基于SVM的道路分割实验(附资源)