CPU与外设之间的信息交换

2024-06-01 08:28
文章标签 交换 cpu 信息 之间 外设

本文主要是介绍CPU与外设之间的信息交换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一.程序查询方式

1.概述

2.工作原理

3.缺点

二.中断方式

1.中断方式的基本原理

2.中断方式的优点

3.中断方式的缺点

4.中断方式的应用

三.DMA方式

1/概述

2.工作原理

3.DMA方式的优点

4.DMA方式的应用

5.DMA的类型

四.通道方式

1.通道方式的工作原理

2.通道方式的优点

3.通道方式的缺点

4.通道方式的应用

五.通用I/O标准接口

1.通用I/O标准接口的特点

2.通用I/O标准接口的优势

3.通用I/O标准接口的应用

总结


        CPU与外设之间的信息交换是计算机系统中的重要组成部分,外设是指连接在计算机主机以外的硬件设备,如硬盘、键盘、鼠标等。它们之间的信息交换可以通过程序查询方式、中断方式或直接内存访问(DMA)方式等多种方式进行。

一.程序查询方式

1.概述


        程序查询方式(PIO)是指计算机的中央处理器(CPU)通过执行一系列指令来控制外部设备与内存之间的数据传输。在这种方式下,CPU需要不断地检查外设的状态,并在外设准备好后开始数据传输。如果外设未准备好,CPU就会保持在等待状态,直到接收到外设已准备好的信号为止。

2.工作原理


在程序查询方式下,CPU按照以下步骤进行操作:

  1. 初始化外设状态:CPU先检查外设的状态寄存器,以确定外设是否准备好进行数据传输。
  2. 等待外设准备:如果外设未准备好,CPU会进入一个循环,持续查询外设状态,直到外设准备好为止。这通常通过读取操作来实现。
  3. 数据传输:当外设准备好后,CPU开始从外设读取数据或者将数据写入外设。这是通过写入或读取数据寄存器完成的。
  4. 重复操作:这个过程会不断重复,直到完成所有数据的传输。

3.缺点


尽管程序查询方式在早期计算机系统中被广泛使用,但它有一些显著的缺点:

  1. 效率低下:CPU需要不断查询外设状态,这会占用大量的CPU时间,使得CPU无法处理其他任务,导致计算资源浪费。
  2. 速度瓶颈:由于CPU需要等待外设准备好才能进行数据传输,这种方式在处理高速I/O设备或需要进行大量数据交换的场合显得尤为低效。
  3. CPU负载:CPU需要处理I/O任务,从而增加了CPU的负载,影响了系统性能和响应时间。

二.中断方式

        中断方式是一种CPU处理突发事件的有效机制,它允许CPU在收到来自外部设备或内部程序的中断请求时,暂时中止正在执行的主程序,转而去处理突发事件,然后再返回主程序继续执行。中断方式的优点是可以提高CPU的利用率,并能及时响应突发事件,但缺点是增加了系统的复杂性。

1.中断方式的基本原理

        中断方式的基本原理是CPU在执行程序时,会周期性地检查中断请求信号的状态。如果发现有中断请求信号,则CPU会立即暂停正在执行的主程序,转而去执行中断服务程序。中断服务程序是专门用来处理中断事件的程序,它可以完成以下操作:

  • 保存断点:记录下主程序的执行地址和程序状态字等信息,以便中断结束后能够恢复主程序的执行状态。
  • 保护现场:保存中断发生时CPU的寄存器、堆栈指针等信息,以便中断结束后能够恢复CPU的工作状态。
  • 处理中断事件:执行与中断事件相关的操作,例如从外设读取数据或向外设写入数据。
  • 恢复现场:恢复中断发生时CPU的寄存器、堆栈指针等信息。
  • 恢复断点:跳转到主程序的断点处,继续执行主程序。

2.中断方式的优点

中断方式具有以下优点:

  • 提高CPU利用率: 中断方式允许CPU在空闲时处理中断事件,从而提高CPU的利用率。
  • 及时响应突发事件: 中断方式可以及时响应突发事件,例如外设数据准备好或发生错误等,避免延误处理。
  • 提高系统灵活性: 中断方式可以使系统更加灵活,能够方便地添加新的外设或功能。

3.中断方式的缺点

中断方式也存在一些缺点:

  • 增加系统复杂性: 中断方式增加了系统的复杂性,需要额外的硬件和软件支持。
  • 降低程序执行效率: 中断会打断程序的执行,导致程序执行效率降低,尤其是对于频繁发生中断的系统而言。
  • 潜在的安全隐患: 中断可能会被恶意程序利用,造成系统安全问题。

4.中断方式的应用

中断方式广泛应用于各种计算机系统中,例如:

  • 操作系统: 操作系统使用中断方式来处理各种系统事件,例如键盘输入、鼠标事件、时钟中断等。
  • 设备驱动程序: 设备驱动程序使用中断方式来与外设进行通信,例如从外设读取数据或向外设写入数据。
  • 实时系统: 实时系统对响应时间要求很高,通常使用中断方式来及时处理突发事件,确保系统能够满足实时性要求。

三.DMA方式

1/概述


        直接内存访问(DMA,Direct Memory Access)是一种数据传输技术,它允许外设在不经过CPU的情况下直接与内存进行数据交换。DMA控制器接管了数据传输的任务,从而使CPU能够执行其他操作,无需等待数据传输的完成。这种方式大大提高了数据传输的速度,接近内存的最快存取速度。

2.工作原理

  1. 初始化:DMA控制器由CPU初始化,配置数据传输的源地址、目的地址、传输长度以及传输的方向(从内存到外设或从外设到内存)。

  2. 请求数据传输:外设向DMA控制器发送DMA请求,表明数据准备好并等待传输。

  3. 总线控制:DMA控制器获得对系统总线的控制权。此时,CPU释放总线控制权,允许DMA控制器与内存直接进行数据传输。

  4. 数据传输:DMA控制器将数据从源地址传输到目的地址,同时更新传输计数器。如果传输计数器没有达到预定的传输长度,则继续传输操作。

  5. 完成传输:当所有数据传输完成后,DMA控制器释放总线控制权,并向CPU发送中断信号,通知CPU传输已完成。

3.DMA方式的优点

  1. 高效利用CPU:因为数据传输由DMA控制器处理,CPU可以并行处理其他任务,提高了系统的整体效率。

  2. 高速数据传输:由于不涉及CPU,数据传输效率接近内存的最快存取速度,特别适用于需要高速数据传输的应用。

  3. 减少总线争用:DMA控制器独立进行数据传输,减少了CPU与外设之间对系统总线的争用,提高了总线利用率。

4.DMA方式的应用

DMA方式在许多高性能系统中得到了广泛应用,特别是以下场景:

  1. 图像显示:DMA用于将视频数据从内存快速传输到显示缓冲区,确保流畅的视频播放和图像刷新。

  2. 磁盘存取:硬盘控制器使用DMA技术,将数据高速读写到内存,大大提高了磁盘I/O性能。

  3. 高速数据采集:在数据采集系统中,DMA用于将采集到的大量数据快速传输到内存供处理,适用于科学计算和实时分析。

  4. 音频处理:音频设备使用DMA从内存中连续流畅地读取音频数据,确保音频播放不间断。

5.DMA的类型

  1. 单字节DMA:一次传输一个字节的数据,适用于低速设备。

  2. 块传输DMA:一次传输一个数据块,提高了数据传输效率,适用于高速设备。

  3. 周期剪裁DMA:根据周期拆分传输数据,提高系统权限,以免总线繁忙。

  4. 突发模式DMA:快速传输大块数据,通常用于数据密集型设备如网络适配器和存储设备。

四.通道方式

        通道方式(Channel)是一种提高计算机系统数据传输效率的重要技术。它在CPU与外设之间引入了一个专门的数据传输装置——通道,负责处理外设与内存之间的数据传输,从而减轻CPU的负担,提高数据传输速度。

1.通道方式的工作原理

通道方式的工作原理可以概括为以下步骤:

  1. CPU向通道发出指令: CPU向通道发送指令,指定数据传输的源地址、目标地址、数据长度等信息。
  2. 通道准备数据传输: 通道根据CPU的指令,准备数据传输所需的硬件资源,例如申请DMA控制器、设置数据传输路径等。
  3. 通道启动数据传输: 通道启动DMA控制器,进行数据传输。DMA控制器是一种专门用于数据传输的硬件设备,它可以独立于CPU工作,完成数据的搬运操作。
  4. 通道完成数据传输: 数据传输完成后,通道向CPU发出中断信号,通知CPU数据传输已完成。
  5. CPU处理中断: CPU收到中断信号后,会执行相应的处理程序,完成后续操作。

2.通道方式的优点

通道方式具有以下优点:

  • 减轻CPU负担: 通道可以处理数据传输的繁琐操作,减轻CPU的负担,使CPU能够专注于执行其他任务,从而提高系统的整体性能。
  • 提高数据传输速度: 通道可以使用DMA控制器进行数据传输,DMA控制器可以独立于CPU工作,因此数据传输速度更快。
  • 提高系统灵活性: 通道可以方便地连接各种外设,提高系统的可扩展性。

3.通道方式的缺点

通道方式也存在一些缺点:

  • 增加系统复杂性: 通道方式增加了系统的硬件和软件复杂性,需要额外的硬件设备和软件支持。
  • 降低CPU控制程度: 通道方式将数据传输控制权交给了通道,降低了CPU对数据的控制程度。

4.通道方式的应用

通道方式广泛应用于各种计算机系统中,例如:

  • 大型计算机系统: 在大型计算机系统中,通道方式是常用的数据传输方式,可以满足高速数据传输的需求。
  • I/O密集型应用: 在I/O密集型应用中,例如视频编辑、图形处理等,通道方式可以有效提高数据传输速度,提高应用性能。
  • 嵌入式系统: 在嵌入式系统中,通道方式可以减轻CPU负担,提高系统的实时性。

五.通用I/O标准接口

        通用I/O(GPIO)接口是一种可配置的I/O接口,它允许用户访问所有可用I/O的状态并控制用户输出寄存器。GPIO接口通常包括输入和输出控制寄存器、输入和输出状态寄存器、标准I/O集状态寄存器等。GPIO接口的优势在于可以提供一个跨平台的硬件抽象层,简化对低级设备的访问。

1.通用I/O标准接口的特点

通用I/O标准接口具有以下特点:

  • 通用性: GPIO接口可以连接各种类型的设备,例如传感器、执行器、LED灯等。
  • 可配置性: GPIO接口的每个引脚都可以配置为输入或输出模式,并可以设置不同的电气特性。
  • 易用性: GPIO接口易于使用,通常只需要简单的软件操作即可控制。
  • 跨平台: GPIO接口通常提供跨平台的API,可以在不同的操作系统和开发环境中使用。

2.通用I/O标准接口的优势

通用I/O标准接口具有以下优势:

  • 简化开发: GPIO接口提供了一个抽象层,可以简化对低级设备的访问,降低开发难度。
  • 提高灵活性: GPIO接口可以灵活地配置和控制,满足不同的应用需求。
  • 降低成本: GPIO接口通常使用通用元件实现,成本较低。

3.通用I/O标准接口的应用

通用I/O标准接口广泛应用于各种电子设备中,例如:

  • 微控制器: GPIO接口是微控制器常用的外设接口,可以用于控制各种外设。
  • 嵌入式系统: GPIO接口常用于嵌入式系统中,用于连接传感器、执行器等设备。
  • 原型开发: GPIO接口常用于原型开发中,用于快速搭建电路和测试功能。

总结

        总之,CPU与外设之间的信息交换是计算机系统的重要组成部分,不同的信息交换方式各有利弊,需要根据实际需求进行选择。随着技术的发展,信息交换的速度也在不断提高,为各种应用提供了强大的支持。

这篇关于CPU与外设之间的信息交换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1020487

相关文章

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

《数据结构(C语言版)第二版》第八章-排序(8.3-交换排序、8.4-选择排序)

8.3 交换排序 8.3.1 冒泡排序 【算法特点】 (1) 稳定排序。 (2) 可用于链式存储结构。 (3) 移动记录次数较多,算法平均时间性能比直接插入排序差。当初始记录无序,n较大时, 此算法不宜采用。 #include <stdio.h>#include <stdlib.h>#define MAXSIZE 26typedef int KeyType;typedef char In

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

Linux命令(11):系统信息查看命令

系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv

O(n)时间内对[0..n^-1]之间的n个数排序

题目 如何在O(n)时间内,对0到n^2-1之间的n个整数进行排序 思路 把整数转换为n进制再排序,每个数有两位,每位的取值范围是[0..n-1],再进行基数排序 代码 #include <iostream>#include <cmath>using namespace std;int n, radix, length_A, digit = 2;void Print(int *A,

Java程序到CPU上执行 的步骤

相信很多的小伙伴在最初学习编程的时候会容易产生一个疑惑❓,那就是编写的Java代码究竟是怎么一步一步到CPU上去执行的呢?CPU又是如何执行的呢?今天跟随小编的脚步去化解开这个疑惑❓。 在学习这个过程之前,我们需要先讲解一些与本内容相关的知识点 指令 指令是指导CPU运行的命令,主要由操作码+被操作数组成。 其中操作码用来表示要做什么动作,被操作数是本条指令要操作的数据,可能是内存地址,也

【小迪安全笔记 V2022 】信息打点9~11

第9天 信息打点-CDN绕过篇&漏洞回链8接口探针&全网扫指&反向件 知识点: 0、CDN知识-工作原理及阻碍 1、CDN配置-域名&区域&类型 2、CDN绕过-靠谱十余种技战法 3、CDN绑定-HOSTS绑定指向访问 CDN 是构建在数据网络上的一种分布式的内容分发网。 CDN的作用是采用流媒体服务器集群技术,克服单机系统输出带宽及并发能力不足的缺点,可极大提升系统支持的并发流数目,减少或避