计算机组成原理-程序查询方式(流程图 演示过程 例题 定时查询 独占查询)

文章目录

  • 总览
  • IO方式简介
  • 程序查询方式
  • 程序查询方式流程图
  • 程序查询方式-例题
  • 小结

总览

IO方式简介

每次输一个字,就认为状态完成,CPU就会取走数据寄存器的内容
在这里插入图片描述

程序查询方式

在这里插入图片描述

此时模拟打印三个字符

假设此时三个字符在主存,CPU先从主存读一个字符放到CPU的寄存器中,此时是读主存操作.

CPU向打印机发出打印的命令字,此时需要先经过打印机驱动程序的处理将打印的命令字放到CPU寄存器里面了,用OUT指令将命令字送到IO端口控制寄存器中(OUT指令首先通过地址线发送要写的IO端口,然后再通过控制线发送要写的操作,然后命令字再通过数据线传到控制寄存器中)

IO控制逻辑单元再通过从控制寄存器传过来的命令信号传到外设界面控制逻辑通过控制线给打印机发出对应的控制信号

打印机接收到命令启动打印机,工作完成后,通过状态线传给IO接口显示已经完成。IO控制逻辑单元会将该状态信号传给状态寄存器中Rn+1.(之前这个寄存器本来存放命令字,但由于命令字已经发给IO控制逻辑并处理了不需要了,所以此时放状态信号没问题)

当OUT指令将打印字发给控制寄存器之后,CPU会一直检查状态寄存器是否变成已经变成完成的信号(就是通过IN不断将状态寄存器的内容通过数据线输入到CPU的寄存器里 CPU再来检查该寄存器的值是否是完成信号)

当检查到发现是完成信号时,CPU再通过地址线指明此次操作的端口是数据缓冲寄存器和控制线指明此次是写操作,同时从寄存器中存储要打印的字符的数据传到数据线上。然后将要打印的字符成功写到该数据缓冲寄存器中

然后数据缓冲寄存器内的数据传到IO控制逻辑,再通过IO控制逻辑传到外设界面控制逻辑,再通过数据线传到打印机,同时也会通过控制线发出相应的控制信号。

打印完成后,通过状态线给IO接口反映打印已完成的信号,接口再把已完成的信号传给状态寄存器

CPU检查到打印机完成工作后,再向数据缓冲寄存器写第二个要打印的字符,流程和打印a一样

当最后一个打印的字符打印完后,打印机向接口发出已完成的信号,接口再将该信号传给状态寄存器,同时CPU内部可以通过计数器计数打印的字符数量是否达成,当发现此时打印都完成了,并且检测到最后一次打印信号已经完成,CPU会给打印机发出停机命令字字(当然得先通过驱动程序)给控制寄存器

IO控制逻辑(IO接口)再将该停机控制信号发送给外设界面控制逻辑再通过控制总线发送给打印机,然后打印机停止

程序查询方式流程图

传送参数:计数器计数多少算全传完,传送的数据
CPU和IO设备串行工作即工作相互依赖
在这里插入图片描述

程序查询方式-例题

慢速IO设备对CPU程序查询方式影响不大
快速IO设备对CPU程序查询方式影响较大
CPU其实可以用定时查询(查询时间不占全部,查询和程序执行穿插进行)和独占查询
在这里插入图片描述

小结

下图中的上面的程序查询方式是独占查询方式
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/338782.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ajax+axios——统一设置请求头参数——添加请求头入参——基础积累

最近在写后台管理系统(我怎么一直都只写管理系统啊啊啊啊啊啊啊),遇到一个需求,就是要在原有系统的基础上,添加一个仓库的切换,并且需要把选中仓库对应的id以请求头参数的形式传递到每一个接口当中。。。 …

【动态规划】C++ 算法458:可怜的小猪

作者推荐 视频算法专题 涉及知识点 动态规划 数学 力扣458:可怜的小猪 有 buckets 桶液体,其中 正好有一桶 含有毒药,其余装的都是水。它们从外观看起来都一样。为了弄清楚哪只水桶含有毒药,你可以喂一些猪喝,通过观察猪是否…

nRF 5340环境搭建和工具下载(采用vscode最新搭建教程)

1. nRF 5340环境搭建和工具下载 1. 1 软件安装 nRF Connect for Desktop https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop nRF Command Line Tools https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/downl…

U-Boot学习(2):U-Boot编译和.config配置文件生成分析

上一节U-Boot学习(1):简介及命令行指令详解中,介绍了如何使用U-Boot。我们知道一个U-Boot可能要适配不同的硬件,所以不同的硬件就有不同的配置,配置后就可以编译U-Boot,最终生成镜像。U-Boot如何编译,以什么…

静态网页设计实践(HTML+CSS)

一、前端程序员必会三大编程语言 (一)HTML(.html/.htm) 超文本标记语言(HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、Ja…

PHP企业物资管理系统源码带文字安装教程

PHP企业物资管理系统源码带文字安装教程 技术架构 主要框架 : PHP7.0 laravel5.4  mysql5.5.36 composer1.3.2(依赖管理) 前端 : jquery bootstrap jstree(树形结构) echart(图表) layer(弹出层) 企…

Triumphcore FPGA调测试记录

FPGA采用Xilinx pynq Z2开发板。基于V2.5版本开发 OverView uart端口映射 BUG调试记录 2024.1.7 复位状态导致取指时序错误 错误波形: 正确波形 问题代码: 2024.1.9 clock_wizard设置输入时钟是输出时钟的2^n倍,输出时钟的占空比才…

随机生成id——uuid

1.在VScode打开终端安装 npm i nanoid 2.按需引入nanoid中的nanoid即可 import {nanoid} from nanoid 3.使用nanoid const todoObj {id:nanoid(),title:this.title,done:false} 4.举例&#xff1a; <script> import {nanoid} from nanoidexport default {name:M…

使用AUTOSAR来开发汽车基础软件的优点

1、高质量。以前我们采用手写代码的方式&#xff0c;是几个工程师在战斗。现在我们采用平台&#xff0c;BSW代码都是供应商提供的&#xff0c;我们相当于后面还有一个团队陪着我们在战斗。 2、低成本。大家都说采用AUTOSAR平台好贵&#xff0c;但是从长远来看是值得的&#xff…

vscode 创建文件自动添加注释信息

随机记录 目录 1. 背景介绍 2. "Docstring Generator"扩展 2.1 安装 2.2 设置注释信息 3. 自动配置py 文件头注释 1. 背景介绍 在VS Code中&#xff0c;您可以使用扩展来为新创建的Python文件自动添加头部注释信息。有几个常用的扩展可以实现此功能&#xff0…

频率的高低与辐射强度有关系吗?

摘要: 频率的高低和辐射强度之间存在一定的关系。 一般而言&#xff0c;频率越高&#xff0c;辐射强度越大&#xff0c;即电磁辐射的能量越大。这是因为电磁波的能量与其频率成正比。在电磁波谱中&#xff0c;如X光和伽玛射线具有高频率和强辐射强度&#xff0c;可以破坏构成 .…

Wordpress网站开发问题解决——除了主页之外的所有页面都是“找不到页面内容”(修复记录)

一条纯经验操作 引言慌火上浇油后台查看 解决之路结尾 引言 最近 阿里云老是提醒我边缘计算机控制升级 我自己建立了一个网站&#xff0c;用的就是阿里云的万网服务器 所以 我去看看 结果跟我没什么关系 本以为就这么愉快地结束了 没想到 我建立的网站就只能打开主页 其他页…