章节一览

计算机组成原理知识点比较多,所以分多部分复习。本篇是第四部分,复习系统总线与输入输出系统,重点是磁盘与I/O接口的三种工作方式。

计算机系统概述

数据的表示和运算

指令系统

中央处理器(重点)

存储的分层体系结构(重点)

互联及输入输出设备


总线

总线的概念与组成?

和CPU内部的总线(片内总线)不同,这里研究的总线是连接计算机内各部件,如CPU、主存和各种输入输出设备的总线,称为系统总线系统总线是一组能为多个部件分时共享的公共信息传输通路

image-20220614201323059

共享是指多个设备共同使用同一个总线;分时是指某一时刻只允许一个设备向总线发送信息,但可以有多个接收方。

总线存在于电脑的主板上。主板上刻印的线就是总线。此外提供了很多IO设备的接口(图略)。

系统总线包括地址总线数据总线控制总线,我们需要关注它们的传输方向:

  1. 地址总线是单向的(CPU$\rightarrow$主存的内存单元或I/O端口的地址
  2. 数据总线是双向的(读写)
  3. 控制总线总体是双向的。一根控制总线包含很多根线,每根线上传输不同的控制信号。就控制总线的某一根而言是单向的

总线的结构?

最显然的就是单总线结构,此外还有双总线结构三总线结构四总线结构

  1. 单总线结构

    image-20220614201323059

    CPU、主存和IO设备都连接在同一个系统总线上。但是由于各设备频率相差很大,所以有的时候效率很低。

  2. 双总线结构

    image-20220614203043149

    由于IO设备频率比CPU和主存慢很多,所以将IO设备单独用一个IO总线连接,通道就是IO总线与主存总线的桥梁。

    但是还是没有考虑到IO设备之间的区别。实际上,有的IO设备很快,如硬盘(磁盘);而有的很慢,如鼠标、键盘。

  3. 三总线结构

    image-20220614203456411

    DMA(Direct Memory Access)即直接内存访问总线,它可以在内存和高速外设之间传送数据;而IO总线则用于CPU和低速的外设之间传送数据。

  4. 四总线结构

    现在实际采用的就是四总线结构。需要记住靠近CPU的是北桥芯片,远离CPU的是南桥芯片。它们共同组成桥接器,连接计算机的各部分。

    image-20220614204942636

总线的性能指标?

  1. 总线时钟频率:就是机器/CPU的时钟频率。
  2. 总线工作频率:总线的一次工作包括申请阶段、寻址阶段、传输阶段和结束阶段。要区别总线时钟频率和总线工作频率。二者的关系题目会给出。
  3. 总线宽度:一般指的是数据总线的宽度。
  4. 总线带宽:即单位时间内总线上可传输数据的位数,常考计算,公式为:总线带宽=总线工作频率$\times$总线宽度
  5. 总线复用:如地址总线和数据总线共用一条总线,仍要求不能同时传输。
  6. 传送方式:有突发传输和非突发传输两种。非突发传输每次进行数据传输都是先传地址,再获得数据;突发传输则是先给出一个地址,接下来可以从连续的地传输成块的数据,相当于地址自动++。

image-20220614213503002


输入&输出系统

IO系统的组成?常见的输入输出设备(外部设备)?

IO系统包括IO软件和IO硬件。软件包括驱动程序、用户程序、管理程序等;硬件包括外部设备、设备控制器和接口IO总线等。

常见的输入输出设备有:

  1. 输入设备:键盘、鼠标
  2. 输出设备:显示器、打印机
  3. 外存储器(既是输入也是输出):磁盘、光盘

磁盘存储器?磁盘的性能指标?

磁表面存储器利用N极和S极的朝向来存储0和1。写入采用电生磁的原理,读取采用磁生电的原理。用于磁性可以长期保留,所以磁盘是非易失性存储器。磁盘拆开的结构如下:

image-20220615004754515

磁盘可以分为可以分为存储区域和控制部分。

  1. 存储区域:存储区域就是盘面这一块。

    一个硬盘有多个记录面,每个记录面划分为若干磁道,每条磁道又可以划分为若干扇区。扇区(块)是磁盘读写的最小单位(以块为单位)。

    image-20220615005451400

  2. 控制部分:包括电机、旋臂、转轴等。

磁盘有如下性能指标:

  1. 磁盘的容量,市面上的如500G、1T、2T等。

  2. 记录密度:记录密度包括道密度和位密度

    image-20220615010224327

    道密度就是沿半径方向单位长度磁道的数目;位密度就是一个磁道上单位长度可以存储的比特数。用于内道和外道的容量都是一样的,所以内圈的位密度更大。

  3. 平均存取时间:一次存取时间包括寻道时间、旋转延时、传输时间三部分:

    • 寻道时间就是旋臂将磁头转到对应磁道需要的时间;
    • 旋转延时是磁头单位到要读写扇区需要的时间;
    • 传输时间是转轴将磁道转一个扇区需要的时间。

    由于都是机械运动,所以磁盘读写需要的时间比较长。此外,有的题目还会有控制时间。

廉价冗余磁盘阵列RAID?

和多根内存条组成双通道一样,可以通过RAID的方式实现磁盘的并行访问,加快磁盘的读写速度。但是,使用多个磁盘出错率比一个磁盘大,所以需要引入备份或校验技术以提高可靠性:

  1. RAID0:无冗余和无校验的磁盘阵列

  2. RAID1:镜像磁盘阵列,既能并行访问,又相当于备份,利用率50%。

    image-20220615012111582

  3. RAID2:采用海明码纠错的磁盘阵列(位交叉),规模越大,利用率越高。

    image-20220615012132054

  4. RAID3:采用奇偶校验的磁盘阵列(位交叉),冗余位占一个盘即可。

    image-20220615012424194

I/O接口的结构、功能?

I/O接口是主机与外设之间进行信息交换的媒介。基本结构如下:

image-20220615073130667

I/O接口在主机侧通过I/O总线与内存、CPU相连:

  1. 通过数据总线,在数据缓冲寄存器实现外设与主机间的数据传送;同时控制寄存器中接收控制命令;状态寄存器向CPU发送当前设备的状态信息。
  2. 通过地址总线,控制要访问I/O接口中的寄存器(端口)。
  3. 通过控制总线,接收主机发送过来的读写等控制信号I/O控制逻辑还能对控制寄存器中的控制命令译码

I/O接口的主要功能有:

  1. 解决主机与外设时序配合问题,协调不同工作速度的外设和主机之间交换信息。
  2. 进行地址译码和设备选择。一个I/O接口可以连接多个外设。CPU送来地址码后,I/O接口对地址进行译码,选择相应的外设。
  3. 实现数据缓冲。使用数据缓冲器暂存数据,避免因为速度不一致导致丢失数据。
  4. 信号格式的转换,如调节电平、数据格式转换、串并转换等。
  5. 向CPU进行反馈。如通过状态寄存器中的状态字向CPU反馈设备的工作状态,以及各种中断请求。

I/O接口的编址?

CPU要直接访问I/O接口的寄存器(端口),就需要对各端口进行编号,每个端口对应一个地址。编址的方式有统一编址独立编址两种。

  1. 统一编址:把I/O端口当作存储器的单元进行地址分配,因此又称存储器映射方式。RISC通常采用统一编址。

    它的优点是CPU对I/O端口的操作灵活,I/O端口编址空间大;缺点是会占用存储器的地址,使内存容量变小。

  2. 独立编址:I/O端口的地址空间和内存单元的地址空间相互独立,区别二者的方式是为I/O端口设置专门的I/O指令,如IN、OUT、INS、OUTS等,因此又称为I/O映射方式

    它的优点是由于I/O端口与存储单元采用了不同的指令,所以程序清晰;缺点是I/O指令少,控制比较复杂。

I/O接口的类型?

按主机访问I/O接口的方式,分为程序查询I/O方式、中断I/O方式和DMA方式。相应地,I/O接口可以分为程序查询接口、中断接口和DMA接口

程序查询方式?

  • 主机进行IN操作时,先发出询问信号,从状态寄存器中读取设备状态并决定下一步是进行数据传送还是等待其准备就绪

  • 主机进行OUT操作时,也是先发出询问信号,从状态寄存器中读取设备状态并决定下一步是进行数据传送还是等待其工作完毕

image-20220615081336168

鼠标等设备的查询频率较低,所以对CPU的占用是可以忽略不记的;但是硬盘等设备的查询频率太高,会占用较多的CPU时间,影响系统的工作。

中断I/O方式?

程序查询方式的缺点是外设会独占CPU,使CPU的速度降到外设的水平,不能充分发挥CPU的性能。因此采用中断的方式。

中断的概念是当计算机执行当前程序时,出现了一些特殊请求或异常情况,CPU暂时终止现行程序保存断点后转去对特殊请求或异常进行处理,处理完后恢复现场,继续执行原程序。它的好处:

  1. 实现CPU与I/O设备的并行工作,相当于”外设做好了就戳CPU一下”。
  2. 实现多道程序、分时操作。多道程序的切换需借助于中断系统
  3. 便于实现人机交互和用户对机器的干预。
  4. 便于实时处理程序的实现。

image-20220615084148789

如上图,CPU在现行程序和中断服务程序之间切换,实现了CPU和外设的并行工作。但是中断存在的问题有:①多个外设同时发出中断请求的优先级判别 ②现行程序不想被中断如何处理?

  1. 开中断和关中断:使用标志寄存器的IF位IF为1表示当前程序可以被中断,即开中断IF为0表示为关中断,当前程序不能被一般的中断(可屏蔽中断打扰),但是不能屏蔽关机等硬件强制中断(非屏蔽中断)。
  2. 中断判优:给不同的中断排个优先级。故障中断优先级最高;高速设备优先于低速设备;非屏蔽中断优于可屏蔽中断等。中断的优先级用中断屏蔽字来表示,为1表示

综上,中断的过程如下:

屏蔽字为0表示可以被该中断源中断,为0表示不能被该中断源中断。

DMA方式?

使用中断后,打印机等设备可以与CPU并行工作,但硬盘每次的读写仍需要CPU控制,还是会占用大量的CPU时间。解决的方式是为硬盘再加一个阉割版的CPU:DMA控制器。

在DMA控制器的控制下进行数据的传输,无需处理器的干涉,当传输完成时以中断方式通知CPU进行处理即可,这样就可以实现DMA与CPU的并行工作了。需要注意的是DMA每次的读写也是以块为单位

image-20220615094253290

  1. 预处理阶段:DMA控制器从CPU获得要访存的主存的起始地址、I/O设备的起始地址和需要传送的块的个数
  2. 数据传输阶段:主存和I/O设备每次一个块地传送数据。
  3. 结束处理阶段:传输完毕,溢出信号为1,CPU执行中断服务程序做DMA结束处理。

数据传输阶段,DMA控制器会占用系统总线与主存进行数据传输。DMA占用系统总线时,CPU就不能访问内存了。所以需要合理地选择DMA的传送方式

  1. CPU停止法:DMA工作的一段时间内,系统总线的占用权都归DMA控制器。简单,但是CPU不能访问存储器,一定程度上违背了使用DMA的初心。
  2. 交替分时访问法:总线周期交替地由CPU和DMA控制器使用。缺点是DMA对总线的使用时间不是固定的,而将总线时间交替划分会浪费很多,灵活性不够。
  3. 周期挪移法:DMA控制器对系统总线占用的优先权>CPU。当二者同时请求占用总线时,DMA优先;当CPU正在占用总线时,DMA等待CPU占用结束。这种方法比较灵活。

image-20220615095859283