计算机系统基础22---计算机的基本组成---IO控制方式

文章目录

1、直接程序控制

无条件传送方式、程序查询方式。

无条件传送方式

无条件传送方式是计算机输入输出(I/O)设备管理中的一种基础数据传输机制,其核心特点是假设外设始终处于就绪状态,CPU无需检测设备状态即可直接进行数据读写。

一、基本原理

1、同步假设:

无条件传送方式基于一个关键假设:外设的数据准备速度与CPU的传输速度完全匹配,即外设始终准备好接收或发送数据。例如,开关状态、LED显示等简单设备,其状态变化由CPU直接控制,无需额外同步。

2、直接操作:

CPU通过I/O指令(如IN、OUT)直接访问外设的寄存器,无需检查状态寄存器或等待中断信号。数据传输过程完全由CPU的指令周期驱动。

二、工作流程

以CPU向LED输出数据为例,无条件传送方式的流程如下:

1、初始化阶段:

CPU配置外设的寄存器地址(如LED控制寄存器地址为0x3000)。

确保外设(LED)已正确连接并处于可操作状态。

2、数据传输阶段:

CPU直接执行OUT指令,将数据写入外设寄存器:

bash 复制代码
MOV AL, 0xFF  ; 将数据0xFF(全亮)存入AL寄存器
OUT 0x3000, AL ; 将AL中的数据写入地址为0x3000的LED寄存器

外设(LED)立即响应,根据写入的数据更新显示状态。

3、操作完成:

数据传输瞬间完成,CPU无需等待或检测外设状态。

程序查询方式

程序查询方式(Programmed I/O,或称为忙等待方式)是计算机输入输出(I/O)设备管理中的一种基础控制机制,其核心思想是CPU通过主动轮询(Polling)外设的状态寄存器,判断设备是否就绪,再决定是否进行数据传输。

一、基本原理

1、CPU主导控制:

CPU完全控制I/O操作的每一个步骤,包括设备启动、状态检测和数据传输,外设仅被动响应CPU的指令。

2、状态轮询机制:

CPU通过循环读取外设的状态寄存器(Status Register),检查特定标志位(如"数据就绪"或"缓冲区空闲"),直到外设满足传输条件。

3、顺序执行:

数据传输必须在外设就绪后进行,若外设未就绪,CPU会持续等待(忙等待),无法执行其他任务。

二、工作流程

1、初始化阶段:

CPU向键盘的I/O接口发送"读取数据"命令(如写入控制寄存器)。

设置键盘接口的状态寄存器为"忙"状态(表示设备正在处理请求)。

2、状态检测阶段:

CPU循环执行以下操作:

a. 读取键盘接口的状态寄存器(如通过IN指令)。

b. 检查"数据就绪"标志位(假设为第0位):

若标志位为0(未就绪),继续循环检测。

若标志位为1(就绪),进入数据传输阶段。

关键问题:在循环检测期间,CPU无法执行其他任务,资源利用率低。

3、数据传输阶段:

CPU通过IN指令从键盘接口的数据寄存器读取按键值。

将数据存入主存或寄存器中,供后续处理。

4、操作完成:

CPU向键盘接口发送"操作完成"信号,清除状态寄存器的"忙"标志。

2、中断方式

中断方式(Interrupt-Driven I/O)是计算机系统中一种高效的输入/输出(I/O)控制机制,它通过外设主动通知CPU来触发数据传输,从而避免了程序查询方式中CPU的忙等待,显著提高了系统资源利用率和并行性。

一、基本原理

1、外设主动通知:

当外设完成数据准备(如键盘按键按下)或需要CPU服务(如磁盘数据传输完成)时,会向CPU发送一个中断信号(Interrupt Request,IRQ)。

2、CPU响应中断:

CPU在执行完当前指令后,暂停当前任务,保存现场(如程序计数器PC、寄存器状态等),跳转到预设的中断服务程序(ISR, Interrupt Service Routine)执行。

3、中断服务程序处理:

ISR负责处理外设请求,如从外设读取数据、写入数据到外设或更新设备状态。

4、返回原任务:

ISR执行完毕后,CPU恢复现场,继续执行被中断的任务。

3、直接存储器存取方式

直接存储器存取(Direct Memory Access,DMA)是一种高效的数据传输机制,它允许外设(如磁盘、网卡、显卡等)直接与内存进行数据交换,而无需CPU的持续干预。这种方式显著提高了数据传输速度,减轻了CPU的负担,特别适用于高速、大批量数据传输的场景。

一、基本原理

1、外设直接访问内存:

DMA控制器(DMA Controller,DMAC)作为CPU和外设之间的"中介",负责管理数据传输。它拥有独立的总线控制权,可以直接读写内存,而无需CPU逐字节或逐字地搬运数据。

2、CPU初始化DMA传输:

CPU通过配置DMA控制器的寄存器(如源地址、目标地址、传输长度、传输方向等)来初始化一次DMA传输。

配置完成后,CPU启动DMA控制器,并继续执行其他任务。

3、DMA控制器接管总线:

DMA控制器向总线仲裁器(Bus Arbiter)请求总线控制权。

获得总线控制权后,DMA控制器直接访问内存和外设,执行数据传输。

4、传输完成通知CPU:

数据传输完成后,DMA控制器通过中断(DMA Interrupt)通知CPU。

CPU可以处理传输完成后的操作(如更新缓冲区指针、启动下一次传输等)。

二、关键组件与机制

1、DMA控制器(DMAC):

核心功能:管理DMA传输,包括初始化、执行和完成通知。

2、关键寄存器:

源地址寄存器(Source Address Register):存储数据来源的内存地址或外设端口地址。

目标地址寄存器(Destination Address Register):存储数据目标的内存地址或外设端口地址。

传输长度寄存器(Transfer Count Register):存储需要传输的数据量(如字节数、字数等)。

控制寄存器(Control Register):配置传输方向(读/写)、传输模式(单次/循环)、中断使能等。

总线控制权:DMA控制器通过总线仲裁器获得总线控制权,从而直接访问内存和外设。

2、总线仲裁器(Bus Arbiter):

负责协调多个设备(如CPU、DMA控制器、其他外设)对总线的访问请求。

当DMA控制器请求总线时,总线仲裁器会根据优先级策略(如固定优先级、轮询优先级等)决定是否授予DMA控制器总线控制权。

3、内存:

DMA传输的数据源或目标,通常是系统内存(RAM)或设备内存(如显卡的显存)。

4、外设:

需要与内存进行数据交换的设备,如磁盘、网卡、声卡、显卡等。

三、工作流程(以磁盘读取为例)

1、初始化阶段:

CPU配置DMA控制器的寄存器:

源地址:磁盘控制器的数据端口地址(或磁盘缓冲区地址)。

目标地址:系统内存中的目标缓冲区地址。

传输长度:需要读取的数据量(如512字节)。

控制寄存器:设置传输方向为"外设→内存",启用中断。

CPU启动DMA控制器,并继续执行其他任务。

2、DMA控制器接管总线:

DMA控制器向总线仲裁器请求总线控制权。

获得总线控制权后,DMA控制器开始执行数据传输:

从磁盘控制器的数据端口读取数据。

将数据写入系统内存的目标缓冲区。

重复上述步骤,直到传输完成(传输长度减至0)。

3、传输完成通知CPU:

数据传输完成后,DMA控制器:

清除传输长度寄存器(或设置完成标志)。

向CPU发送中断信号(DMA Interrupt)。

CPU响应中断,执行中断服务程序(ISR):

检查DMA控制器的状态寄存器,确认传输完成。

处理传输完成后的操作(如更新文件系统指针、启动下一次磁盘读取等)。

发送中断结束信号(EOI)给中断控制器。

四、DMA传输模式

1、单次传输模式(Single Transfer Mode):

每次DMA传输仅传输一个数据单元(如一个字节或一个字)。

传输完成后,DMA控制器释放总线控制权,需要CPU重新配置才能进行下一次传输。

适用于低速设备或需要精细控制的场景。

2、块传输模式(Block Transfer Mode):

一次DMA传输可以传输多个连续的数据单元(如一个磁盘扇区的数据)。

传输过程中,DMA控制器持续占用总线,直到传输完成。

适用于高速设备或大批量数据传输的场景。

3、循环传输模式(Cycle Stealing Mode):

DMA控制器在CPU不需要总线时"偷取"总线周期进行数据传输。

传输过程中,DMA控制器与CPU交替使用总线,减少对CPU的影响。

适用于对实时性要求较高但数据量不大的场景。

4、链式传输模式(Chained Transfer Mode):

使用描述符表(Descriptor Table)定义多个不连续的传输任务。

DMA控制器根据描述符表依次执行多个传输任务,无需CPU干预。

适用于复杂的数据传输场景(如网络数据包分片传输)。

4、输入输出处理机

输入输出处理机(I/O Processor,简称IOP)是计算机系统中独立处理输入输出操作的核心组件,其设计目的是减轻主CPU在I/O任务中的负担,提高系统整体效率。

一、核心功能

1、独立执行I/O任务:IOP能够脱离主CPU的直接控制,独立执行数据传输、设备控制及错误处理等I/O任务。这显著降低了主CPU在I/O操作中的参与度,使其能够专注于计算任务。

3、数据传输与设备控制:IOP负责管理外设与内存之间的数据传输,包括PCI和SCSI总线的数据传输、RAID的处理、磁盘驱动器重建等。同时,它还控制外设的操作,如磁头定位、穿孔等。

4、错误恢复与高速缓存管理:在I/O操作过程中,IOP能够检测并处理错误,确保数据传输的准确性。此外,它还管理高速缓存,提高数据访问速度。

二、工作原理

1、接收请求:CPU向IOP发送I/O请求,指定需要执行的操作。

2、执行操作:IOP根据指令,控制外设与内存之间的数据传输,并处理相关数据。这一过程中,IOP可能使用自身的指令集和逻辑电路运行,无需CPU介入每个细节。

3、状态报告:操作完成后,IOP将结果和状态信息反馈给CPU,以便后续处理。

相关推荐
風清掦2 小时前
【STM32学习笔记-12】Unix 时间戳、BKP 备份寄存器与 RTC 实时时钟
笔记·stm32·单片机·嵌入式硬件·学习·实时音视频·unix
hoiii1872 小时前
基于STM32的扫地机器人源码工程
stm32·单片机·机器人
feasibility.4 小时前
嵌入式系统的“能量-执行”拓扑学:电池、舵机、电机与电调的深层关系
科技·嵌入式硬件·电机·拓扑学·舵机·电池·电调
振南的单片机世界4 小时前
EXTI边沿检测:上升沿、下降沿、双边沿,硬件自动捕捉
stm32·单片机·嵌入式硬件
Max_uuc6 小时前
【感知心法】别相信你的传感器!撕碎“所读即所得”的 API 幻觉,论物理世界的“全员撒谎”与状态观测器的绝对凝视
单片机
踏着七彩祥云的小丑6 小时前
嵌入式——认识电子元器件——符号
单片机·嵌入式硬件
莎士比亚的文学花园18 小时前
stm32——平衡小车
stm32·单片机·嵌入式硬件
Hello_Embed19 小时前
STM32CubeIDE 创建第1个工程
stm32·单片机·嵌入式·ai编程
小麦嵌入式20 小时前
FPGA入门(一):手把手教你用 Vivado 创建工程并仿真
stm32·单片机·嵌入式硬件·mcu·fpga开发·硬件架构·硬件工程