CSNotesCSNotes
TODO
LeetCode
数据结构
计算机组成原理
操作系统
计算机网络
数据库
Java
SSM
React
实用工具
GitHub
TODO
LeetCode
数据结构
计算机组成原理
操作系统
计算机网络
数据库
Java
SSM
React
实用工具
GitHub
  • 第一章 计算机系统概述

    • 1.1 计算机发展历程
  • 第二章 数据的表示和运算

    • 2.1 数制与数码
    • 2.2 运算方法和运算电路
    • 2.3 浮点数的表示与运算
  • 第三章 存储系统

    • 3.1 存储器概述
    • 3.2 主存储器
    • 3.3 主存储器与 CPU 的连接
    • 3.4 外部存储器
    • 3.5 高速缓冲存储器
    • 3.6 虚拟存储器
  • 第四章 指令系统

    • 4.1 指令格式
    • 4.2 指令的寻址方式
    • 4.3 程序的机器级代码表示
    • 4.4 CISC 和 RISC 的基本概念
  • 第五章 中央处理器

    • 5.1 CPU 的功能和基本结构
    • 5.2 指令执行过程
    • 5.3 数据通路的功能和基本结构
    • 5.4 控制器的功能和工作原理
  • 第六章 总线

    • 6.1 总线概述
    • 6.2 总线事务和定时
  • 第七章 输入/输出系统

    • 7.1 I/O 系统基本概念
    • 7.2 I/O 接口
    • 7.3 I/O 方式

7.3 I/O 方式

7.3.1 程序查询方式

特点:CPU 有“踏步”等待现象 CPU 与 I/O 串型工作。

7.3.2 程序的中断方式

3.多重中断和中断屏蔽技术

7.3.3 DMA 方式

在 DMA 传送方式中,由外部设备向 DMA 控制器发出 DMA 请求信号,然后由 DMA 控制器向 CPU 发出总线请求信号。在 DMA 方式中,DMA 控制器在传送期间由总线控制权,这时 CPU 不能响应 I/O 中断。

DMA 方式只能用于数据传输。

CPU 响应中断 3 个条件:

1.中断源有中断请求。

2.CPU 允许中断及开中断。

3.一条指令执行完毕,且没有更紧迫的任务。

假设计算机的主频为 500MHz,CPI 为 4.现有设备 A 和 B,其数据传输率分别为 2MB/s 和 40MB/s,对应 I/O 接口中各有一个 32 位数据缓冲寄存器。

(1) 若设备 A 采用定时 I/O 方式,每次输入/输出都至少执行 10 条指令。设备 A 最多间隔多长时间查询一次才不能丢失数据?CPU 用于设备 A 输入/输出占 CPU 总时间的百分比至少是多少?

设备 A 准备 32 位数据所用的时间为$4B/2MB=2us$,所以最多每隔 2us 查询一次。每秒查询次数至少是$1s/2us=5\times 10^{5}$,每秒查询用的时钟周期为$5\times 10^{5}\times 10\times 5=2\times 10^{7}$个时钟周期,占百分比$2\times 10^{7}/500M=4%$。

(2) 在中断 I/O 方式下,若每次中断响应和中断处理的总时钟周期数至少为 400,则设备 B 能否采用中断 I/O 方式?为什么?

中断响应和中断处理的时间为$400\times \left( 1/500M\right) =0.8us$,而 B 准备 32 位数据所用的时间为$4B/40MB=0.1us$,小于中断响应和中断处理时间,数据会被刷新,因此设备 B 不适合采用中断 I/O 方式。

(3) 若设备 B 采用 DMA 方式,每次 DMA 传送的数据块大小为 1000B,CPU 用于 DMA 预处理和后处理的总时钟周期数为 500,则 CPU 用于设备 B 输入/输出的时间占总时间的百分比最大是多少?

设备 B 每秒的 DMA 次数最多为$40MB/1000B=40000$,CPU 用于设备 B 输入/输出的时间最多为$40000\times 500=2\times 10^{7}$个时钟周期,占 CPU 总时间的百分比最大为$2\times 10^{7}/500M=4%$。

假设某计算机的 CPU 主频为 80MHz,CPI 为 4,平均每条指令访存 1.5 次,主存与 Cache 之间交换的块大小为 16B,Cache 命中率为 99%,存储器总线宽度为 32 位。请回答下列问题。

(1) 该计算机的 MIPS 数是多少?平均每秒 Cache 缺失的次数是多少?在不考虑 DMA 传送的情况下,主存带宽至少达到多少才能满足 CPU 的访存要求?

MIPS=80/4=20。$20\times 1.5\times 0.01=0.3M$次。$0.3M\times 16B=4.8MB/s$。

(2) 假定在 Cache 缺失的情况下访问主存时,存在 0.0005% 的缺页率,则 CPU 平均每秒产生多少次缺页异常?若页面大小为 4KB,每次缺页都需要访问磁盘,访问磁盘时 DMA 传送采用周期挪用方式,磁盘 I/O 接口的数据缓冲寄存器为 32 位,则磁盘 I/O 接口平均每秒发出的 DMA 请求次数至少是多少?

平均每秒产生的缺页中断 300000x0.0005%=1.5 次,1.5x4KB/4B=1.5K=1536

(3)CPU 和 DMA 控制器同时要求使用存储器总线时,哪个优先级更高?为什么?

CPU 和 DMA 控制器同时要求使用存储器总线时,DMA 请求优先级更高。因为 DMA 请求得不到及时响应,I/O 传输数据可能会丢失。

(4) 为提高性能,主存采用四体低位交叉存储模式,工作时每 1/4 个存储周期启动一个体。若每个题的存储周期为 50ns,则该主存能提供的最大带宽是多少?

$4x4B/50ns=320MB/s$

某计算机的 CPU 主频为 500MHz,CPI 为 5。假定某外设的数据传输率为 0.5MBps,采用中断方式与主机进行数据传送,以 32 位为传输单位,对应的中断程序包含 18 条指令,中断服务的其他开销相当于 2 条指令的执行时间。

(1) 在中断方式下,CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比时多少?

中断方式下,CPU 每次用于数据传送的时钟周期为$5x18+5x2=100$,外设每秒申请的中断次数为$0.5MB/4B=125000$。

1s 内用于中断的开销为$100x125000=12500000=12.5M$个时钟周期。

CPU 用于外设 I/O 的时间占整个 CPU 时间的百分比为$12.5M/500M=2.5%$

(2) 当该外设的数据传输率达到 5MBps 时,改用 DMA 方式传送数据。假定每次 DMA 传送块大小为 5000B,且 DMA 预处理和后处理的总开销为 500 个时钟周期,则 CPU 用于该外设 I/O 的时间占整个 CPU 时间的百分比时多少(假设 DMA 与 CPU 之间没有访存冲突)?

当外设数据传输率提高到 5MBps 时,改用 DMA 方式传送,每次 DMA 传送 5000B,1s 内需产生的 DMA 处理的总开销为 1000x500=500000=0.5M 个时钟周期。

CPU 用于外设 I/O 的时间占整个 CPU 时间的百分比为 0.5M/100M=0.1%

编辑此页
上次更新:
Prev
7.2 I/O 接口