计算机组成原理(七)输入输出系统

7.1 I/O系统基本概念

I/O系统由I/O软件和I/O硬件两部分构成。

I/O硬件包括外部设备、I/O接口、I/O总线等。

  • I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外部设备

  • I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输

常见的I/O设备.png

I/O基本控制方式有(具体见7.4)

  • 程序查询方式:CPU不断轮询检查I/O控制器中的“状态寄存器”,检测到状态为“已完成”之后,再从数据寄存器取出输入数据
  • 程序中断方式:等待键盘I/O时CPU可以先去执行其他程序,键盘I/O完成后I/O控制器向CPU发出中断请求,CPU响应中断请求,并取走输入数据
  • DMA控制方式:主存与高速I/O设备之间有一条直接数据通路(DMA总线)。CPU向DMA接口发出“读/写”命令,并指明主存地址、磁盘地址、读写数据量等参数。DMA控制器自动控制磁盘与主存的数据读写,每完成一整块数据读写(如1KB为一整块),才向CPU发出一次中断请求。
  • 通道可以识别并执行一系列通道指令,通道指令种类、功能通常比较单一
    • CPU向通道发出I/O指令。指明通道程序在内存中的位置,并指明要操作的是哪个I/O设备。CPU就可以去做其他事情
    • 通道执行内存中的通道程序,控制I/O设备完成一系列任务
    • 通道执行完规定的任务后,向CPU发出中断请求,之后CPU对中断进行处理

I/O 软件包括驱动程序、用户程序、管理程序、升级补丁等。通常采用I/O指令和通道指令实现主机和I/O设备的信息交换。

  • I/O 指令是CPU 指令的一部分
I/O 指令.png
  • 通道指令是通道能识别的指令,通道程序提前编制好放在主存中。在含有通道的计算机中,CPU执行I/O指令对通道发出命令,由通道执行一系列通道指令,代替CPU对I/O设备进行管理

7.2 外部设备

外部设备也称外围设备,是除了主机以外的、能直接或间接与计算机交换信息的装置。

7.2.1 输入设备

输入设备用于向计算机系统输入命令和文本、数据等信息的部件。键盘和鼠标是最基本的输入设备。

7.2.1.1 键盘

键盘是最常用的输入设备,通过它可发出命令或输入数据。每个键相当于一个开关,当按下键时,电信号连通;当松开键时,弹簧把键弹起,电信号断开。

键盘输入信息可分为3个步骤:

  • 查出按下的是哪个键;
  • 将该键翻译成能被主机接收的编码,如ASCII码;
  • 将编码传送给主机。

7.2.1.2 鼠标

鼠标是常用的定位输入设备,它把用户的操作与计算机屏幕上的位置信息相联系。常用的鼠标有机械式和光电式两种。

工作原理:当鼠标在平面上移动时,其底部传感器把运动的方向和距离检测出来,从而控制光标做相应运动。

7.2.2 输入设备

7.2.2.1 显示器

显示器有以下主要参数

  • 屏幕大小:以对角线长度表示,常用的有12~29英寸等。
  • 分辨率:所能表示的像素个数,屏幕上的每一个光点就是一个像素,以宽、高的像素的乘积表示,例如,800×600、1024×768和1280×1024等。
  • 灰度级:灰度级是指黑白显示器中所显示的像素点的亮暗差别,在彩色显示器中则表现为颜色的不同,灰度级越多,图像层次越清楚逼真,典型的有8位(256级)、16位等。n位可以表示𝟐𝒏种不同的亮度或颜色。
  • 刷新:光点只能保持极短的时间便会消失,为此必须在光点消失之前再重新扫描显示一遍,这个过程称为刷新。
  • 刷新频率:单位时间内扫描整个屏幕内容的次数,按照人的视觉生理,刷新频率大于30Hz时才不会感到闪烁,通常显示器刷新频率在60~120Hz。

显示存储器(VRAM)也称刷新存储器,为了不断提高刷新图像的信号,必须把一帧图像信息存储在刷新存储器中。其存储容量由图像分辨率和灰度级决定,分辨率越高,灰度级越多,刷新存储器容量越大。
VRAM容量= 分辨率× 灰度级位数

VRAM带宽= 分辨率× 灰度级位数× 帧频

  • 阴极射线管(CRT)显示器

CRT显示器主要由电子枪、偏转线圈、荫罩、高压石墨电极和荧光粉涂层及玻璃外壳5部分组成。具有可视角度大、无坏点、色彩还原度高、色度均匀、可调节的多分辨率模式、响应时间极短等特点,按显示信息内容不同可分为

  1. 字符显示器。显示字符的方法以点阵为基础。点阵是指由m×n个点组成的阵列。点阵的多少取决于显示字符的质量和字符窗口的大小。字符窗口是指每个字符在屏幕上所占的点数,它包括字符显示点阵和字符间隔。将点阵存入由ROM构成的字符发生器中,在CRT进行光栅扫描的过程中,从字符发生器中依次读出某个字符的点阵,按照点阵中0和1代码不同控制扫描电子束的开或关,从而在屏幕上显示出字符。对应于每个字符窗口,所需显示字符的ASCII代码被存放在视频存储器VRAM中,以备刷新。
  2. 图形显示器。将所显示图形的一组坐标点和绘图命令组成显示文件存放在缓冲存储器中,缓存中的显示文件传送给矢量(线段)产生器,产生相应的模拟电压,直接控制电子束在屏幕上的移动。为了在屏幕上保留持久稳定的图像,需要按一定的频率对屏幕进行反复刷新。这种显示器的优点是分辨率高且显示的曲线平滑。目前高质量的图形显示器采用这种随机扫描方式。缺点是当显示复杂图形时,会有闪烁感。
  3. 图像显示器

图形显示器主要显示矢量图形,比较规则,而图像显示器可以显示丰富多彩的图像信息

  • 液晶显示器(LCD)

利用液晶的电光效应,由图像信号电压直接控制薄膜晶体管,再间接控制液晶分子的光学特性来实现图像的显示。具有体积小、重量轻、省电、无辐射、绿色环保、画面柔、不伤眼等特点。

  • LED(发光二极管)显示器

原理:通过控制半导体发光二极管进行显示,用来显示文字、图形、图像等各种信息。与LCD相比,LED显示器在亮度、功耗、可视角度和刷新速率等方面都更具优势。

7.2.2.2 打印机(了解即可)

打印机是计算机的输出设备之一,用于将计算机处理结果打印在相关介质上。

按印字原理不同可分为

  • 击打式打印机:利用机械动作使印字机构与色带和纸相撞而打印字符,优点:设备成本低,印字质量好;缺点:噪声大,速度慢
  • 非击打式打印机:采用电、磁、光、喷墨等物理、化学方法来印刷字符,优点:速度快,噪声小;缺点:成本高

按打印机工作方式不同可分为

  • 串行打印机:逐字打印,速度慢
  • 行式打印机:逐行打印,速度快

按工作方式可分为

  • 针式打印机:在联机状态下,主机发出打印命令,经接口、检测和控制电路,间歇驱动纵向送纸和打印头横向移动,同时驱动打印机间歇冲击色带,在纸上打印出所需内容。它工作原理简单,造价低廉,耗材(色带)便宜,但打印分辨率和打印速度不够高。
  • 喷墨式打印机:带电的喷墨雾点经过电极偏转后,直接在纸上形成所需字形。彩色喷墨打印机基于三基色原理,即分别喷射3种颜色墨滴,按一定的比例混合出所要求的颜色。打印噪声小,可实现高质量彩色打印,通常打印速度比针式打印机快;但防水性差,高质量打印需要专用打印纸。
  • 激光打印机:计算机输出的二进制信息,经过调制后的激光束扫描,在感光鼓上形成潜像,再经过显影、转印和定影,便在纸上得到所需的字符或图像。打印质量高、速度快、噪声小、处理能力强;但耗材多、价格较贵、不能复写打印多份,且对
    纸张的要求高。

7.2.3 外存储器

所谓“磁表面存储”,是指把某些磁性材料薄薄地涂在金属铝或塑料表面上作为载磁体来存储信息。磁盘存储器、磁带存储器和磁鼓存储器均属于磁表面存储器。

磁表面存储器的优点:

  • 存储容量大,位价格低;
  • 记录介质可以重复使用;
  • 记录信息可以长期保存而不丢失,甚至可以脱机存档;
  • 非破坏性读出,读出时不需要再生。

磁表面存储器的缺点:

  • 存取速度慢;
  • 机械结构复杂;
  • 对工作环境要求较高。

7.2.3.1 磁盘存储器

7.2.3.1.1 磁盘设备的组成

一块硬盘含有若干个记录面,每个记录面划分为若干条磁道,而每条磁道又划分为若干个扇区,扇区(也称块)是磁盘读写的最小单位,也就是说磁盘按块存取。

  • 磁头数(Heads)即记录面数,表示硬盘总共有多少个磁头,磁头用于读取/写入盘片上记录面的信息,一个记录面对应一个磁头。
  • 柱面数(Cylinders)表示硬盘每一面盘片上有多少条磁道。在一个盘组中,不同记录面的相同编号(位置)的诸磁道构成一个圆柱面。
  • 扇区数(Sectors)表示每一条磁道上有多少个扇区。
磁盘内部结构.png

硬盘存储器由磁盘驱动器、磁盘控制器和盘片组成。

  • 磁盘驱动器:核心部件是磁头组件和盘片组件,温彻斯特盘是一种可移动头固定盘片的硬盘存储器。
  • 磁盘控制器:是硬盘存储器和主机的接口,主流的标准有IDE、SCSI、SATA等。
磁盘读取.png

7.2.3.1.2 磁盘的性能指标

  • 磁盘的容量: 一个磁盘所能存储的字节总数称为磁盘容量。磁盘容量有非格式化容量和格式化容量之分。

非格式化容量是指磁记录表面可以利用的磁化单元总数。

格式化容量是指按照某种特定的记录格式所能存储信息的总量。

  • 记录密度:记录密度是指盘片单位面积上记录的二进制的信息量,通常以道密度、位密度和面密度表示。

道密度是沿磁盘半径方向单位长度上的磁道数;

位密度是磁道单位长度上能记录的二进制代码位数;

面密度是位密度和道密度的乘积。

记录密度.png
  • 平均存取时间

平均存取时间= 寻道时间(磁头移动到目的磁道)+ 旋转延迟时间(磁头定位到所在扇区)+ 传输时间(传输数据所花费的时间)

平均存取时间.png
  • 数据传输率:磁盘存储器在单位时间内向主机传送数据的字节数,称为数据传输率。假设磁盘转数为r(转/秒),每条磁道容量为N个字节,则数据传输率

D_r=rN

7.2.3.1.3 磁盘地址

主机向磁盘控制器发送寻址信息,磁盘的地址一般如图所示:

磁盘地址.png

若系统中有4个驱动器,每个驱动器带一个磁盘,每个磁盘256个磁道、16个盘面,每个盘面划分为16个扇区,则每个扇区地址要18位二进制代码;

7.2.3.1.4 硬盘的工作过程

硬盘的主要操作是寻址、读盘、写盘。每个操作都对应一个控制字,硬盘工作时,第一步是取控制字,第二步是执行控制字。

硬盘属于机械式部件,其读写操作是串行的,不可能在同一时刻既读又写,也不可能在同一时刻读两组数据或写两组数据

7.2.3.2 磁盘阵列

RAID(Redundant Array of Inexpensive Disks,廉价冗余磁盘阵列)是将多个独立的物理磁盘组成一个独立的逻辑盘,数据在多个物理盘上分割交叉存储、并行访问,具有更好的存储性能、可靠性和安全性。

RAID的分级如下所示。在RAID1~RAID5的几种方案中,无论何时有磁盘损坏,都可以随时拔出受损的磁盘再插入好的磁盘,而数据不会损坏。

  • RAID0:无冗余和无校验的磁盘阵列。
  • RAID1:镜像磁盘阵列。
  • RAID2:采用纠错的海明码的磁盘阵列。
  • RAID3:位交叉奇偶校验的磁盘阵列。
  • RAID4:块交叉奇偶校验的磁盘阵列。
  • RAID5:无独立校验的奇偶校验磁盘阵列。

RAID通过同时使用多个磁盘,提高了传输率;通过在多个磁盘上并行存取来大幅提高存储系统的数据吞吐量;通过镜像功能,可以提高安全可靠性;通过数据校验,可以提供容错能力。

7.3 I/O接口

I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输

7.3.1 I/O接口的功能

  • 数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
  • 错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
  • 控制和定时:接收从控制总线发来的控制信号、时钟信号
  • 数据格式转换:串-并、并-串等格式转换
  • 与主机和设备通信:实现主机—I/O接口—I/O设备之间的通信

7.3.2 I/O接口的基本结构

I/O接口的基本结构.png

外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并转换功能。

内部接口:内部接口与系统总线相连,实质上是与内存、CPU相连。

工作原理:

  1. 发命令:发送命令字到I/O控制寄存器,向设备发送命令(需要驱动程序的协助)
  2. 读状态:从状态寄存器读取状态字,获得设备或I/O控制器的状态信息
  3. 读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换

控制寄存器、状态寄存器在使用时间上是错开的,因此有的I/O接口中可将二者合二为一

7.3.4 I/O端口及其编址

I/O端口是指接口电路中可以被CPU直接访问的寄存器。I/O端口要想能够被CPU访问,必须要有端口地址,每一个端口都对应着一个端口地址。对I/O端口的编址分为统一编址和独立编址两种

  1. 统一编址

把I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口,又称存储器映射方式。靠不同的地址码区分内存和I/O设备,I/O地址要求相对固定在地址的某部分。

优点:

  • 不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高
  • 端口有较大的编址空间
  • 读写控制逻辑电路简单

缺点:

  • 端口占用了主存地址空间,使主存地址空间变小
  • 外设寻址时间长(地址位数多,地址译码速度慢)
  1. 独立编址

I/O端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/O映射方式。靠不同的指令区分内存和I/O设备。

优点:

  • 使用专用I/O指令,程序编制清晰
  • I/O端口地址位数少,地址译码速度快
  • I/O端口的地址不占用主存地址空间

缺点:

  • I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差
  • 需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制逻辑电路的复杂性
统一编址和独立编址.png

7.4 I/O方式

7.4.1 程序查询方式

  1. CPU执行初始化程序,并预置传送参数:设置计数器、设置数据首地址
  2. 向I/O接口发送命令字,启动I/O设备
  3. CPU从接口读取设备状态信息
  4. CPU不断查询I/O设备状态,直到外设准备就绪
  5. 传送一次数据、一般为一个字
  6. 修改地址和计数器参数
  7. 判断传送是否结束(一般计数器为0时结束),否则转到3

在程序查询方式的输入/输出系统中,假设不考虑处理时间,每一个查询操作需要100个时钟周期,CPU的时钟频率为50MHz。现有鼠标和硬盘两个设备,而且CPU必须每秒对鼠标进行30次查询,硬盘以32位字长为单位传输数据,即每32位被CPU查询一次,传输率为2×220B/s。求CPU对这两个设备查询所花费的时间比率,由此可得出什么结论?(课后综合题4)

一个时钟周期为1/50MHz = 20ns
一个查询操作耗时100 × 20ns = 2000ns

1)鼠标
每秒查询鼠标耗时30 × 2000ns = 60000ns
查询鼠标所花费的时间比率= 60000ns/1s = 0.006%

对鼠标的查询基本不影响CPU的性能

2)硬盘
每32位需要查询一次,每秒传送2×220B
每秒需要查询(2×220B)/4B = 219
查询硬盘耗时219× 2000ns = 512 × 1024 × 2000ns≈ 1.05×109 ns
查询硬盘所花费的时间比率= (1.05×109 ns)/1s = 105%

CPU将全部时间都用于对硬盘的查询也不能满足磁盘传输的要求

7.4.2 程序中断方式

7.4.2.1 中断的基本概念

程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。

中断处理过程.png

7.4.2.2 关中断

关中断的作用:实现原子操作

  • 非屏蔽中断:关中断时也会被响应(如:掉电)
  • 可屏蔽中断:关中断时不会被响应

IF=1表示开中断(允许中断)
IF=0表示关中断(不允许中断)

PSW.png

7.4.2.3 中断请求标记

每个中断源向CPU发出中断请求的时间是随机的。为了记录中断事件并区分不同的中断源,中断系统需对每个中断源设置中断请求标记触发器INTR,当其状态为“1”时,表示中断源有请求。这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可分散在各个中断源中。

中断请求标记.png

对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/O的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻。

7.4.2.4 中断判优

中断判优既可以用硬件实现,也可用软件实现:硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中;软件实现是通过查询程序实现的。

优先级

  1. 硬件故障中断属于最高级,其次是软件中断;
  2. 非屏蔽中断优于可屏蔽中断;
  3. DMA请求优于I/O设备传送的中断请求
  4. 高速设备优于低速设备;
  5. 输入设备优于输出设备;
  6. 实时设备优于普通设备。

7.4.2.5 中断处理过程

中断隐指令的主要任务:

  • 关中断:在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。
  • 保存断点:为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。可以存入堆栈,也可以存入指定单元。
  • 引出中断服务程序:引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)。
硬件向量法.png

中断服务程序的主要任务:

  • 保护现场:保存通用寄存器和状态寄存器的内容[1] ,以便返回原程序后可以恢复CPU环境。可使用堆栈,也可以使用特定存储单元。
  • 中断服务(设备服务):主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中(eg:中断服务的过程中有可能修改ACC寄存器的值)
  • 恢复现场:通过出栈指令或取数指令把之前保存的信息送回寄存器中(eg:把原程序算到一般的ACC值恢复原样)
  • 中断返回:通过中断返回指令回到原程序断点处。

7.4.2.6 多重中断

单重中断与多重中断.png

7.4.2.7 中断屏蔽技术

中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件。

  • 在中断服务程序中提前设置开中断指令。

  • 优先级别高的中断源有权中断优先级别低的中断源。

每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。

屏蔽字设置的规律:

  1. 一般用‘1’表示屏蔽,’0’表示正常申请。
  2. 每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
  3. 屏蔽字中‘1’越多,优先级越高。每个屏蔽字中至少有一个’1’(至少要能屏蔽自身的中断)。

例7.1 设某机有4个中断源A、B、C、D,其硬件排队优先次序为A>B>C>D,现要求将中断处理次序改为D>A>C>B。

1)写出每个中断源对应的屏蔽字。
2)按下图所示的时间轴给出的4个中断源的请求时刻,画出CPU执行程序的轨迹。设每个中断源的中断服务程序时间均为20us。

例7.1答案.png

7.4.2.8 程序中断方式

程序中断方式.png

【2016年真题】假定CPU主频为50MHz,CPI为4。设备D采用异步串行通信方式向主机传送7位ASCII字符,通信规程中有1位奇校验位和1位停止位,从D接收启动命令到字符送入I/O端口需要0.5ms。请回答下列问题,要求说明理由。
1)每传送一个字符,在异步串行通信线上共需传输多少位?在设备D持续工作过程中,每秒钟最多可向I/O端口送入多少个字符?
2)设备D采用中断方式进行输入/输出,示意图如下:

题图.png

I/O端口每收到一个字符申请一次中断,中断响应需10个时钟周期,中断服务程序共有20条指令,其中第15条指令启动D工作。若CPU需从D读取1000个字符,则完成这一任务所需时间大约是多少个时钟周期?CPU用于完成这一任务的时间大约是多少个时钟周期?在中断响应阶段CPU进行了哪些操作?

1)每传送一个字符需要传送1位起始位、7位数据位、1位校验位、1位停止位,共需传送10位。
每秒可送入1s/0.5ms = 2000 个字符

2)主频50MHz,时钟周期为1/50MHz = 20ns
0.5ms对应时钟周期数为0.5ms/20ns = 25000
传送1个字符需要的时钟周期数为25000 + 10 + 15×4 = 25070
传送1000个字符需要的时钟周期数为25070×1000 = 25070000个时钟周期

CPU用于该任务的时间大约为1000×(10+20×4)= 9×104 个时钟周期

中断响应阶段CPU进行的操作(中断隐指令)
①关中断
②保存断点(PC)
③引出中断服务程序

7.4.3 DMA方式

CPU向DMA控制器指明要输入还是输出;要传送多少个数据;数据在主存、外设中的地址。

7.4.3.1 DMA控制器的主要功能

主存和 DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。DMA控制器的主要功能有

  • 接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求。
  • CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
  • 确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数。
  • 规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送操作。
  • 向CPU报告DMA操作的结束。

7.4.3.2 DMA控制器的组成

DMA控制器.png
  • 主存地址计数器:简称AR,存放要交换数据的主存地址。
  • 传送长度计数器:简称WC,用来记录传送数据的长度,计数溢出时,数据即传送完毕,自动发中断请求信号。
  • 数据缓冲寄存器:用于暂存每次传送的数据。
  • DMA请求触发器:每当I/O设备准备好数据后给出一个控制信号,使DMA请求触发器置位。
  • “控制/状态”逻辑:由控制和时序电路及状态标志组成,用于指定传送方向,修改传送参数,并对DMA请求信号和CPU响应信号进行协调和同步。
  • 中断机构:当一个数据块传送完毕后触发中断机构,向CPU提出中断请求。

7.4.3.3 DMA的传送过程

DMA的传送流程.png
DMA的传送流程.png

7.4.3.4 DMA传送方式

主存和DMA控制器之间有一条数据通路,因此主存和I/O设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。

  1. 停止CPU访问主存
停止CPU访问主存.png

控制简单,但CPU 处于不工作状态或保持状态,未充分发挥CPU 对主存的利用率

  1. DMA与CPU交替访存
DMA与CPU交替访存.png

不需要总线使用权的申请、建立和归还过程,但硬件逻辑更为复杂

  1. 周期挪用(周期窃取)
周期挪用.png

DMA 访问主存有三种可能:

  • CPU 此时不访存(不冲突)
  • CPU 正在访存(存取周期结束让出总线)
  • CPU 与DMA 同时请求访存(I/O访存优先)

7.4.3.5 DMA方式的特点

主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。

DMA方式具有下列特点:

  • 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
  • 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
  • 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
  • DMA传送速度快,CPU和外设并行工作,提高了系统效率。
  • DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。

7.4.3.6 DMA方式和中断方式的对比

DMA方式和中断方式的对比.png

  1. eg:保存ACC寄存器的值

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容