I/O通道

news2024/10/7 10:13:52

一、设备控制器(I/O接口):

  1. 功能:控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。是CPU与I/O设备之间的接口,接收从CPU发来的命令,去控制I/O设备工作,使CPU能够从繁杂的设备控制事务中解脱出来。详见总线、I/O总线、I/O接口.
    • 接收和识别命令:接收和识别处理机发来的多种命令。在控制寄存器中存放接收的命令和参数,并对所接收的命令进行译码。如磁盘控制器可接收CPU发来的read、write、format等命令
    • 数据交换:实现CPU与设备控制器之间(通过数据总线,并行)、设备控制器与设备之间的数据交换(通过数据寄存器)
    • 标志和报告设备的状态:通过在设备控制器中的状态寄存器,反映设备的某一种状态
    • 地址识别:设备控制器可编址,其必须能够识别自身所控制的每个设备的地址(当控制多个设备时,含有多个设备地址),因此设备控制器中需要配置地址译码器
    • 数据缓冲区:由于I/O设备的数据传输速率较低、CPU和内存的速率却很高,所以在设备控制器中必须设置一个缓冲区
    • 差错控制:对于由I/O设备传送来的数据,设备控制器需要进行差错检测,若发现错误,通常将差错检测码置位并向CPU报告

二、I/O通道

  1. 为什么:
    没有I/O通道时,虽然CPU与I/O设备之间增加了设备控制器,能大大减少CPU对I/O设备的干预,但当主机所配置的I/O设备有很多时,CPU的负担仍会很重。所以在CPU和设备控制器之间又增设了通道。主要目的是建立独立的I/O操作,即不仅使数据的传送能独立于CPU,而且使对I/O操作的组织、管理和结束处理尽量独立,以保证CPU有更多的时间进行数据处理

  2. 是什么:
    可以把通道理解为一个阉割版的小CPU,是专门用于统一管理各种I/O设备的,是具有特殊功能的处理器,通道程序放在主存中。所有的I/O设备都会通过通道连到总线,进而和CPU进行间接的交互。因为通道对信息的处理速度很快,所以直接将通道通过总线和CPU进行连接,这样可以保证快速的总线的性能可以发挥出来。
    在设置了通道后,CPU只需向通道发送一条I/O指令,通道在接收到该指令后,便会从内存中取出本次要执行的通道程序,然后执行该程序;仅当通道完成了规定的I/O任务后,才向CPU发送中断信号。
    请添加图片描述

  3. I/O通道与一般处理机的区别:

    • I/O通道指令类型单一,所能执行的命令主要局限于与I/O操作有关的指令
    • I/O通道没有自己的内存,所执行的通道程序是放在主机的内存中的。即I/O通道与CPU共享内存
    • 为什么说I/O通道是一种特殊的处理机:它具有执行I/O指令的能力,并能通过执行I/O通道程序来控制I/O操作
  4. “瓶颈”问题:

    • 描述:由于通道价格昂贵,机器中所设置的通道数量势必较少。如下图,假如设备1~4是四个磁盘,为了启动磁盘4,必须用通道1和设备控制器2;但若这两者已被其他设备占用,则无法启动磁盘4。这就是由通道不足所造成的“瓶颈”现象。
      请添加图片描述
    • 解决方法:如下图,增加设备到主机间的通路而不增加通道,即将一个设备连接到多个设备控制器上,而把一个设备控制器又连到多个通道上。多通路方式不仅解决了“瓶颈”问题,还提高了系统的可靠性,因为个别通道或设备控制器的故障不会使设备和存储器之间没有通路
      请添加图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【零基础学web前端】初识html,html结构,html常见标签,图片标签,超链接标签

前言: 大家好,我是良辰丫,今天我们就开始进入前端知识的学习💞💞 🧑个人主页:良辰针不戳 📖所属专栏:零基础学web前端 🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤…

win10自带dll修复以及多种dll修复方法分享

修复DLL文件是解决Windows系统中发生的许多问题的重要步骤之一。在Windows 10中,自带了一些工具和功能来修复损坏的DLL文件。本文将讨论Windows 10自带的DLL修复工具以及其他常见的DLL修复方法。 一.Windows 10自带的DLL修复工具 Windows 10自带了许多工具和功能来…

bash简单常见用法

bash新建自定义数组 myArray() for ((i 0 ; i < 5 ; i )) do myArray[$i]"AAAA{$i}DD" done echo ${myArray[]} #输出结果是AAAA{0}DD AAAA{1}DD AAAA{2}DD AAAA{3}DD AAAA{4}DD 提取文件名成功 projects"D:/Project/Program/IDEAWorkspace/myauto/automati…

x509证书中的Issuer和Subject

在x509标准中的位置 Issuer 颁发者字段标识已签署和颁发证书的实体。 颁发者字段必须包含一个非空的可分辨名称 (DN)。 颁发者字段定义为 X.501 类型名称 [X.501]。 名称由以下 ASN.1 结构定义&#xff1a; Name 描述了一个由属性组成的分层名称&#xff0c;例如国家名称&…

利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

首先&#xff0c;需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例&#xff0c;可以使用以下命令安装selenium和chromedriver&#xff1a; pip install selenium然后&#xff0c;需要下载对应版本的chromedriver&#xff0c;并将其添加到环境变量中。下载地址&a…

关于DSP28335设置内存分配设置堆栈笔记

关于DSP28335设置内存分 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 关于DSP28335设置内存分前言一、设置堆栈这里主…

【头歌】二叉树的顺序存储及基本操作

第1关&#xff1a;树和二叉树基本概念 任务描述 本关任务&#xff1a;根据所学树和二叉树的基本概念等相关知识&#xff0c;完成右侧的选择题。 相关知识 树的定义 从数据结构角度看&#xff0c;树包含n&#xff08;n≥0&#xff09;个结点&#xff0c;当n0时&#xff0c;…

thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

环境变量 设置环境变量 /.env [DATABASE] USERNAME root PASSWORD 123456 获取环境变量 app/controller/Index.php <?php namespace app\controller;use app\BaseController; use think\facade\Env;class Index extends BaseController {public function index(){$usern…

IO模型的分类以及各个io模型之间的优劣势

本文主要讲解bio以及nio的一些问题和知识&#xff0c;会对aio进行简单讲解&#xff0c;但不会深入剖析 我们说熟知的io模型有哪些呢&#xff1f; 同步阻塞io同步非阻塞io同步多路复用异步非阻塞io java的io本身是不具有真正的io操作能力的&#xff0c;当调用io操作时&#x…

基于ArcGIS:GIS空间分析复习-理论概念+案例分析

目录 01 第一章 1.1 GIS空间分析的概念 1.2 GIS空间分析的研究对象、研究目标 1.3 研究目标是&#xff1a;认知、解释、预报、调控。 1.4 道路拓宽案例分析 1.5 GIS空间分析的核心问题 02 第二章 2.1 空间查询的概念、空间量算的概念 2.2 函数距离的概念 2.3 空间查询…

Android之 常用数据库框架整理

一 简介 1.1 上节说了关系型数据库有以下几种&#xff1a; Oracle、Microsoft SQL Server、Microsoft Access、MySQL、SQLite 1.2 各自的领域也不一样 java&#xff0c;C#&#xff0c;php等用Oracle&#xff0c;Microsoft SQL Server&#xff0c;MySQL比较多。 移动端Andr…

07 - 3系统容量规划

阿里系业务容量规划 Tair集群部署与水位调配 阿里系容量精调之单机压测场景 传统模拟请求 流量复制 流量转发 网关权重 线上测试注意点 阿里系混合部署技术 资源分时复用&#xff1a;提高资源利用率sigama框架做在线资源池调度&#xff0c;伏羲做离线资源池调度&#xff1b;…

基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

** 基于fpga的图像处理之图像灰度化处理 ** 本文的思路框架&#xff1a; ①本文采用两种算法进行灰度处理&#xff0c;平均法和加权均值法&#xff1b;加权均值法采用了直接公式求解和查找表两种方式验证 ②FPGA设计中三个设计技巧&#xff0c;可用于工程项目借鉴&#xff…

Redis了解

Redis 源码大概做了哪些事情&#xff1f; 设置默认参数创建对象、持久化定时器回调加载文件参数 (使用配置文件替代部分默认参数)加载文件数据写入字典创建client connect事件handler&#xff08;accept后&#xff0c;写入读写事件select()&#xff0c;最新的版本用epoll&…

xlsx 导出 (简单使用)

下载数据为xlsx 安装 npm install xlsx 在src下创建文件utils文件夹&#xff0c;在utils文件夹下创建XLSX.js文件 // 下载excel功能 import * as XLSX from xlsx/*** param dataList 表格数据内容 array* param fileName 文件标题。必须以 .xlsx结尾*/ export const download…

Linux网络——Shell编程之快捷命令

Linux网络——Shell编程之快捷命令 一、快捷排序 — sort 命令二、快捷去重 — uniq 命令三、快捷替换 — tr 命令四、快速裁剪 — cut 命令五、文件拆分 — split 命令六、文件合并 —paste 命令七、变量扫描器 — eval 命令 一、快捷排序 — sort 命令 sort命令用于以行为单位…

五步看平台,选好安全的MT4交易外汇平台

在选择MT4外汇交易平台时&#xff0c;如何避免不正规的平台?以下是5招教你远离不正规MT4交易外汇平台。 1. 查看平台是否取得合法许可证 首要考虑的是该平台是否取得了合法的许可证。许可证是证明一个交易平台合法的最重要证据&#xff0c;因此务必在选择时核查该平台的许可证…

得物深入浅出解析JVM中的Safepoint

1.初识Safepoint-GC中的Safepoint 最早接触JVM中的安全点概念是在读《深入理解Java虚拟机》那本书垃圾回收器章节的内容时。相信大部分人也一样&#xff0c;都是通过这样的方式第一次对安全点有了初步认识。不妨&#xff0c;先复习一下《深入理解Java虚拟机》书中安全点那一章…

你真的了解Java类加载机制吗?

大家好&#xff0c;我是小米&#xff0c;一个喜欢分享技术的程序员。今天我来给大家简述一下Java类加载模型。 在Java中&#xff0c;类的加载过程是在程序运行时动态进行的。Java的类加载模型可以分为三个步骤&#xff1a;加载、连接和初始化。 类加载过程&#xff1a;加载 首…

Android面试指南:谈谈你对Flutter的理解

一、Flutter简介 Flutter是由Google开发的一种基于Dar编程语言的移动应用开发框架。可以帮助开发在构建高性能、美观、灵活的应用程序&#xff0c;从而实现跨平台开发&#xff0c;适用于与Android、ios、web、windows、macOS和linux等多个平台。 二、学习Flutter有什么优势 …