<计算机系统结构>CA4 存储、中断、总线、I/O 系统

本文最后更新于:2023年4月17日 中午

CA4 存储、中断、总线、I/O 系统

CA4.1 存储系统

对存储系统的基本要求是:大容量、高速度、低价格。但高速度与大容量间存在矛盾。

能并行读出多个 CPU 字的单体多字、多体单字、多体多字的交叉访问系统称为 并行主存系统

CA4.2 中断系统

计算机中断分为:内部中断(由 CPU 异常引起)、外部中断(由中断信号引起)、软件中断(由陷入指令引起)三种。

中断发生时,CPU 暂停当前工作,转而执行中断处理程序。处理完毕后,恢复环境并继续先前工作。

中断处理程序无参数,无返回值。CPU 响应中断时要跳转到一个特定地址开始执行中断服务程序,这个地址由 中断向量 维护。

中断中的一些基本概念:

  • 中断源:引起中断的各种事件。主要分为 6 类。等级由高到低为:

    1. 机器校验中断:由于机器设备故障引起的中断。如电源故障、主存出错、处理器硬件故障等

      IBM 370 将机器校验中断分为两类:紧急的、可抑制的

    2. 程序性中断(异常):程序性错误、特殊运算结果、出现监控事件。

      访管中断:用户主动调用一些管理程序发送中断请求

    3. 外中断:计时器、时钟等来自控制台的中断开关

    4. I/O 设备中断:多数 I/O 设备通过中断与 CPU 进行通信

    5. 重新启动中断

  • 中断请求:中断源向系统发出请求中断的申请

  • 中断响应:允许其中断 CPU 现行程序的运行,转而执行中断处理程序

  • 中断使能:允许 CPU 响应中断请求,进行中断处理

    中断屏蔽:阻止 CPU 响应中断请求,禁止中断处理

  • 中断优先级:指示中断的紧迫程度

  • 中断嵌套:在处理低优先级中断时,响应其他高优先级的中断请求

中断系统中,关于 中断请求的保存、中断优先级的确定、中断断点及现场的保存、中断请求分析处理、中断返回等,都是由 中断处理硬件中断处理程序 共同完成的。

CA4.3 总线系统

**总线(Bus)**是一组信号线的集合,其定义了各引线的 信号、电气、机械特性,使得计算机内部各部件与外部各系统间建立信号联系,进行数据传递和通信。

同一时刻只能有一个信息源发送信息,多模块传输信息使用分时操作。

按照计算机传输的信息种类将总线分为四类:

  • 数据总线:双向,8 根(字节)、16 根(字)、32 根(双字)
  • 地址总线:单向,由 CPU 发出。指向信息源或目标地址。20 根(8086)、24 根(80286)、32 根(80386 以后)
  • 控制总线:单/双向,控制读写、数据传输、联络、总线判决、中断控制等功能
  • 电源总线:供电

按用法分为:专用非专用

按照总线在系统中的位置分为三类:

  • 片内总线(芯片级):在集成电路内部,连接各功能单元的信息通路
  • 内部总线(板级):计算机内部模块(板)间通信
  • 外部总线(也称通讯总线。系统级):计算机间或计算机与设备间通信

总线控制有两种方式:

  • 分布式控制:总线控制逻辑分散在各部件中

  • 集中式控制:总线控制逻辑基本上集中在一起。有三种方式

    • 串行链接:设三条控制线(总线请求线、总线忙线、总线可用线)。

      仅当 “总线忙” 信号未建立时,总线控制器通过 “总线可用” 线相应 “总线请求” 线的请求。该 “总线可用” 信号依次穿过各部件,直到第一个发出过 “总线请求” 的部件。该请求部件建立 “总线忙” 信号,去除其 “总线请求” 信号,之后进行数据传输。传输完毕后,去除 “总线忙” 和 “总线可用”。

      可见,串行链接下,部件优先级由其在总线上的位置决定。

      优点:选择算法简单,控制线数量少;部件增减容易,可扩充性好;容易通过重复设置提高可靠性

      缺点:对相关电路失效敏感,一个部件异常会导致其后所有部件失连;优先级不易改变,缺乏灵活度;总线长度限制了总线分配速度,也限制了部件的增减和移动

    • 定时查询:设 2+log2n2+\log_2n 条控制线(总线请求线、总线忙线、若干定时查询计数线)

      “总线忙” 信号未建立,总线控制器收到 “总线请求” 时,使计时器开始计数,以定时查询发出请求的部件。当计数值与发出 “总线请求” 的部件相等时,该请求部件建立 “总线忙” 信号,使计数器停止查询,去除其 “总线请求”,之后进行数据传输。传输完毕后,去除 “总线忙”。

      每次总线分配前,若计时器不清零,则为循环优先级。若计时器重置为某数值,则该数值为最大优先级。改变部件号也能指定各部件希望的任意优先级。

      优点:优先级可程序控制,灵活性强;不会因部件失效影响其他部件使用总线,可靠性高

      缺点:控制线数量较多;部件数受限于定时查询线数量,扩展性稍差;控制复杂;总线分配速度取决于技术信号频率和部件数,不能很高

    • 独立请求:设 2n+12n+1 条控制线(总线已被分配线、若干对 总线请求-总线准许 线)

      各部件分别持有一对 “总线请求” 线和 “总线准许” 线。“总线已被分配” 无信号时,总线控制器仲裁所有 “总线请求”,选择其中一个以 “总线准许” 送回该部件,去除其请求,建立 “总线已被分配”,之后进行数据传输。结束后,部件去除 “总线已被分配”,总线控制器去除 “总线准许”。

      优点:总线分配速度快;控制器使用程序可控方式决定下一个使用总线部件;能方便隔离失效部件请求

      缺点:控制线数量过大;总线控制器复杂

    高性能的巨、大、中型计算机上,主要使用 定时查询、独立请求 方式。而应用广泛的小、微型计算机上,仍主要采用串行链接方式。

按传送方法划分为:

  • 同步总线:包含一个供总线上所有设备使用的时钟,这些设备基于该时钟按一个固定的协议来发送地址和数据
  • 异步总线:没有一个统一的时钟,每个设备按照各自定时方法。采用握手协议。

总线的工作指标:

  • 总线频率:总线工作时钟频率(单位:MHz)
  • 总线位宽:总线数据线根数,有 8、16、32、64 位(单位:bit)
  • 总线带宽:总线传输率(单位:Mb/S)。总线带宽=总线位宽×总线频率总线带宽=总线位宽\times 总线频率

总线间通过 总线适配器 进行通信,总线与外设间通过 I/O 控制器 进行通信。

CA4.4 I/O 系统

I/O 系统负责管理计算机 CPU 与 内存储以外的,所有外部设备。包括:存储设备、传输设备

CPU 对 I/O 的编址有两种方式:

  • 存储器映射 I/O(统一编址)
  • 为 I/O 设备独立编址

CPU 与外部设备进行 I/O 的方式:

  • 程序控制 I/O 方式

    程序查询:CPU 轮询执行数据传输相关操作。数据在 CPU 与外围设备间传送全靠 计算机程序 控制。是在 CPU 主动控制下进行。

    中断:外设准备数据时,CPU 执行与传输数据无关的工作。数据尊卑完毕后,发送中断请求,使 CPU 处理数据

  • DMA(直接存储存取)

  • 通道

    通道的功能:

    • 接收 CPU 发送的 I/O 指令,根据指令选择外设与通道连接
    • 执行通道程序。从主存中逐条取出通道指令,并对相应设备发送命令
    • 给出外设中要进行读写操作的数据的地址
    • 给出主存缓冲区的首地址。该缓冲区中存放输入数据或输出数据
    • 控制外设与主存缓冲区间的数据传送的长度
    • 指定传送工作结束时要进行的操作
    gantt
    
    dateFormat x
    axisFormat  
    
    section CPU(目态)
    当前指令: 1, 3
    I/O 访管请求: milestone, 3
    其他指令:4, 6
    响应中断请求: milestone, 6
    继续执行: 8, 9
    section CPU(管态)
    编制通道程序: 3, 4
    启动 I/O 通道: milestone, 4
    登记或例外情况处理 :6, 8
    section 通道
    组织 I/O 操作: 4, 6
    发出中断请求: milestone, 6

    一个通道传输数据期间,单位时间内能传送的数据量称为 通道流量(通道吞吐率、通道数据传输率)。单位一般是 Bps。满负载时,通道的流量称为 最大流量

    一些重要参数:

    • TST_S:设备选择时间。从通道响应设备发出的指令开始,到通道实际开始传送数据所需的时间
    • TDT_D:传送一个字节所用的时间
    • pp:在一个通道上连接且同时工作的设备数
    • nn:每台设备传送的字节数
    • kk:数组多路通道传送中,一个数据块包含的字节数
    • TT:通道完成全部传输工作需要的时间

    根据信息传输方式的不同,将通道分为 3 类:

    • 字节多路通道:多个设备连接至该通道,每次每个设备传输一个字节。以字节交叉方式分时进行服务

      所需总时间为:TBYTE=(TS+TD)×p×nT_{BYTE}=(T_S+T_D)\times p\times n

      则最大流量:fMAXBYTE=pnTBYTE=1TS+TDf_{MAX-BYTE}=\dfrac{pn}{T_{BYTE}}=\dfrac{1}{T_S+T_D}

      实际流量为所有设备数据传输率和:fBYTE=i=1pfif_{BYTE}={\sum^{p}_{i=1}\\}f_{i}

    • 选择通道:多个设备连接至该通道,一段时间内仅为一台设备服务。磁盘常用此方法

      所需总时间为:TSELECT=p×TS+n×p×TD=np×(TSn+TD)T_{SELECT}=p\times T_S+ n\times p\times T_D=np\times(\dfrac{T_S}{n}+T_D)

      则最大流量:fMAXSELECT=pnTSELECT=1TSn+TDf_{MAX-SELECT}=\dfrac{pn}{T_{SELECT}}=\dfrac{1}{\frac{T_S}{n}+T_D}

      实际流量为该通道上的最大设备数据传输率:fSELECT.j=maxi=1pjfi.jf_{SELECT.j}={\max^{p_j}_{i=1}\\}{f_{i.j}}

    • 数组多路通道:多个设备连接至该通道,轮流为每个设备传送一个数据块

      所需总时间为:fBLOCK=TS×p×nk+n×p×TD=np×(TSk+TD)f_{BLOCK}=T_S\times p\times\dfrac{n}{k}+ n\times p\times T_D=np\times(\dfrac{T_S}{k}+T_D)

      则最大流量:fMAXBLOCK=pnTBLOCK=1TSk+TDf_{MAX-BLOCK}=\dfrac{pn}{T_{BLOCK}}=\dfrac{1}{\dfrac{T_S}{k}+T_D}

      实际流量为该通道上的最大设备数据传输率:fBLOCK.j=maxi=1pjfi.jf_{BLOCK.j}={\max^{p_j}_{i=1}\\}{f_{i.j}}

    设计通道的基本原则,是必须满足 实际最大流量 不超过 极限流量。


<计算机系统结构>CA4 存储、中断、总线、I/O 系统
https://i-melody.github.io/2023/04/17/计算机系统结构/4 存储、中断、总线、IO 系统/
作者
Melody
发布于
2023年4月17日
许可协议