计算机组成原理 —— 总线和 I/O

2024年1月22日 晴天

 

不知道说啥,最近特别蠢,把自己吹感冒连续半个月,将近一个月。

 

 

第六章 总线 

 

综合题 - 1

某总线的时钟频率为 66MHz,在一个 64 位总线中,总线数据传输的周期是 7 个时钟周期传输 6 个字的数据块。

(1)总线的数据传输率是多少?

(2)若不改变数据块的大小,而将时钟频率减半,这时总线的数据传输率是多少?

 

解析:

(1)velocity = quantity * frequency = 64/8 * 6/7 * 66 * 10^6 hz = 452.6 MB/s

(2)v = q * f = 64/8 * 6 / 7 * (66/2) MHz = 226.3 MB/s 

 

 

综合题 - 2

某总线支持二级 Cache 块传输方式,若每块 6 个字,每个字长 4 字节,时钟频率 100 MHz。

(1)读操作时,第一个时钟周期接收地址,第二、三个为时延周期,另用 4 个周期传送一个块。读操作的总线传输率是多少?

(2)写操作时,第一个时钟周期接收地址,第二个为延时周期,另用 4 个周期传送一个块,写操作的总线传输速率是多少?

(3)设在全部的传输中,70%用于读,30%用于写,该总线在本次传输中的平均传输速率是多少?

 

解析:

(1)每个主存块 = 6*4 = 24 B

每个时钟周期读操作数据 24B / 7 = 24/7 B —— 前摇的动作也要算入!

bit rate = quanity * frequency = 24/7 B * 100 MHz = 342.9 MB/s

 

(2)每个时钟周期写操作数据 24B / 6 = 4B

bit rate = quantity * frequency = 4B * 100 MHz = 400 MB/s

 

(3)平均读写速度 = 0.7 * 342.9 MB/s + 0.3 * 400 MB/s = 240 MB/s + 120 MB/s = 360 MB/s

 

 

Page 258

 

综合题 - 1

在异步串行传输方式下,起始位为 1 位,数据位为 7 位,偶校验位为 1 位,停止位为 1 位,若波特率为 1200 b/s ,问这时的有效数据传输速率为多少?

解析:

1.ASCII 一共 10 比特

2.这里的波特率是 b/s,有效数据传输率 = 速率 * 有效比特的比例 = 1200 b/s * 7/10 = 840 b/s

 

 

Page 270

 

综合题 - 1

硬磁盘共有 4 个记录面,存储区域内半径为 10 cm,外半径为 15.5 cm,道密度为 60 道/cm,外层位密度为 600 bit/cm,转速为 6000 转/分。

(1)硬磁盘的磁道总数是多少?

(2)硬磁盘的容量是多少?

(3)将长度超过一个磁道容量的文件记录在同一个柱面上是否合理?

(4)采用定长数据块记录格式,直接寻址的最小单位是什么?寻址命令中磁盘地址如何表示?

(5)假定每个扇区的容量为 512B,每个磁道有 12 个扇区,寻道的平均等待时间为 10.5 ms,试计算磁盘平均存取时间。

 

解析:

(1)半径差 = 15.5 - 10 = 5.5CM, 磁道 = 60 道/CM * 5.5 CM = 330 道, 磁道总数 = 4 * 330 = 1320 道

(2)外层磁道长度 = 2*Pi*R = 2 * 3,14 * 15.5 = 97.34 CM

每条磁道比特数量 = 97.34 CM  * 600bit/CM = 7300.5 字节

磁盘总比特数 = 7300.5 字节 * 1320道 = 9636000字节

 

(3)文件长度超过一个磁道,可以记录在同一个柱面,这样可以避免重新寻道。

(4)定长数据块,直接寻址的最小单位是【扇区】

磁盘地址结构: 硬盘号(2位) + 柱面号(9位) + 扇区号(4位)

最多可以有,4个磁盘,8个记录面,每个面最多 128 个磁道,每道最多 16 个扇区。

 

(5)读取扇区的时间 = 磁头内外径的时间 + 盘片自转时间 + 扫过扇区时间

= 平均寻道时间 + 盘片旋转一圈的时间/2 + 扫过扇区时间

A 平均寻道时间 10.5 ms

B 盘片转一圈时间 / 2 = 60s / 6000转 * 0,5 = 5ms

C 盘片转一圈时间 10 ms ,扫过 12 个扇区。因此,扫过一个扇区的时间 = 10ms / 12 = 0.83 ms

因此,读取扇区时间 =  10.5 ms + 5 ms + 0.83 ms = 16.33  ms

【注意】  注意这里扫过扇区的时间。一圈是 12 个扇区,因为这类题比较少。此前,同类题目,计算的是扫过扇区时间(也就是读取扇区的时间),和传输对应数据的时间。

 

 

Page 289

 

综合题 -1 

在 DMA 方式下,主存和 I/O 设备之间有一条物理通路 相连吗?

答:不是。DMA 方式下,I/O设备与主存连接的通路,必须通过 CPU。

 

 

综合题 - 2

问题:

(1)一个完整的指令周期,包括哪些 CPU 工作周期?

(2)中断周期前和中断周期后各是 CPU 的什么工作周期?

(3)DMA 周期前和 DMA 周期后各是 CPU 什么工作周期?

 

解析:

(1)完整的指令周期:取址、间址、执行、中断

(2)中断之前是执行;中断之后是下一个指令的取址

(3)DMA 周期前后都是机器周期。

 

 

综合题 - 3

假定某 I/O 设备向 CPU 传送信息的最高频率为 4 万次/秒,而相应中断处理程序的执行时间为 40 微秒,则该 I/O设备是否可采用中断方式工作?为什么?

解析:

I/O和CPU之间传送一次为 1/40000 = 25 微秒

处理中断 40 微秒

这意味着,中断还没处理完,CPU 又会发送传输请求。这会使得数据丢失,因此不能采用中断方式。

 

 

综合题 - 4

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

解析:

1.用 CLK 计算

2.鼠标。每秒查询 30 次 * 100 CLK = 每秒占用 3000CLK

每秒 3000 / 50M = 60 * 10^(-6)  = 0.006%

3.硬盘。4字节查一次。时间 = Quantity / Velocity = 4字节 / 2*2^20 字节/秒 =2^(-19) 秒

每秒查询 2^19 次 

硬盘占用比例 = 2^19 / 50M= 512K/50M = 102.4%

CPU全部时间都不足以查询硬盘,因此不用这个方式与硬盘交互。

 

 

综合题 - 5

【2009】某计算机的 CPU 主频 500 MHz,CPI 为5(即执行每条指令平均需 5 个时钟周期)。假定某外设的数据传输率为 0.5 MB/s ,采用中断方式与主机进行数据传送,以 32 位为传输单位,对应的中断服务程序包含18 条指令,中断服务的其他开销相当于 2 条指令的执行时间,回答问题,并给出计算过程。

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

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

 

解析:

(1)分为中断需要的 CLK,以及传数据需要的 CLK

中断需要的 CLK = (18+2) * 5 = 100 CLK

一次传数据需要的时间 = 4字节 / 0.5 MB/s = 8 / (10^6) s = 8 微秒

每秒传数据次数 = 1/ 8 微秒 = 125000 次

处理 I/O 的百分比 = (100 + 125000) / 500M = 0.25 * 10^(-3) = 0.025% —— 这是错的

处理 I/O 百分比 = (100 * 125000 ) / 500M  = 2.5% ——  这是对的。每秒传送 125000 次,每次需要 100 CLK。

 

(2)

DMA 每秒传 1000 次,每次 500 CLK,每秒 500 000 CLK

I/O 百分比 = 500 000 / 500M =0.1%

【注意】 DMA 每次处理,只有预处理和后处理。

 

 

综合题 - 6

【2012】假定某计算机的 CPU 主频为 80 MHz,CPI 为 4,平均每条指令访存 1.5 次,主存与 Cache 之间交换的块大小为 16B,Cache 的命中率为 99%, 存储器总线带宽为 32 位,回答:

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

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

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

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

 

解析:

(1)每个 CLK 指令数 =  1/4 , 每秒 80M 个 CLK,于是 每秒指令数 = 1/4 * 80M = 20M Instructions 。故 MIPS 为 20。 —— 这是对的

Cache 缺失率 = 1%, 每条指令平均访存 1.5次。

平均每秒 Cache 缺失次数 = 每条指令访存次数 * 每秒指令数量 * (1-99%) = 1.5 * 20M * 1% = 300K

 

(2)每秒产生的缺页异常 = 300K* 0.0005% = 1.5 次

每秒平均访问页面大小 = 4KB * 1.5 = 6KB , 请求次数 = 6KB / 4B =1.5 * 1024 = 1536次

 

(3)DMA 请求优先级更高,因为是周期挪用的方式

 (4)最大带宽(速度) = 4* 4B / 50ns = 320 MB/s

ns = 10^(-9) s

【注意】 这里一个体的大小,和端口寄存器一致。

 

 

综合题 - 7 

【2016】假定 CPU 主频为 50MHz ,CPI 为 4,设备 D 采用异步串行通信方式向主机传送 7 位 ASCII 码字符,通信规程中有 1 位奇校验位和 1 位停止位,从 D 接收启动命令到字符送入 I/O 端口需要 0.5ms。回答:

(1)每传送一个字符,在异步串行通信线上共需传输多少位?在设备 D 持续工作过程中,每秒最多可向 I/O 端口送入多少个字符?

(2)设备 D 采用中断方式进行输入/输出。示意图如下:

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

 

解析:

(1)传送一个 ASCII 码,需要 10 位。 —— 这个一定要记住!

每秒向 I/O 端口送的次数 = 1 / 0.5 ms = 2000次

每次输送 10 比特,于是每秒向 I/O 端口送 2000 * 10 bit = 2000个字符。

 

(2)中断响应 10 CLK

中断服务 20 Inc. * 4 = 80 CLK 

中断一次耗去  90CLK

读取 1000 字符 = 1000 * 90 CLK = 90000 CLK

 

 针对第二小题"完成这一任务的时间"

第一,处理中断服务程序,前 15 条指令可以用 CPI来计算。后面 5 条指令,传输 D 的内容。

第二,因为题目给出【D设备启动,到将数据送到端口寄存器】,这是后面 5 条指令的效果。既然给出时间,直接用题目给出的【时间】变量。

D设备启动 -> 数据送到端口寄存器,需要 0.5 ms,CPU 标准时间 1/50M s/CLK。因此,D设备启动直至数据送到端口寄存器,这段时间需要 0.5 ms / (1/50M) = 25000 CLK

第三,中断完成数据传送至端口寄存器,总时钟周期 = 中断响应 10 CLK + 前 15 条指令 15 * 4 CLK + 后 5 条指令 25000 CLK = 25070 CLK

1000 个字符需要的 CLK = 1000 * 25070 = 2.507 * 10^7 CLK  

 

中断响应:关中断、保护断点、程序状态、识别中断源。

 

 

综合题 - 8

设某计算机有 4 个中断源 1、2、3、4,其硬件排队优先次序按 1 - 2 - 3 - 4 降序排列,各中断源的服务程序中所对应的屏蔽字如下所示

(1)给出上述 4 个中断源的中断处理次序。

(2)若 4 个中断源同时有中断请求,画出 CPU 执行程序的轨迹。

 

解析:

(1)看列。因此,中断次序,3-1-4-2

(2)如果原来的中断源顺序是 1-2-3-4

执行顺序, 1-2(中断1)-3(执行完 2,再执行1,再执行3) - 4(可中断1,不可中断2,可中断3,如全部执行完,则直接执行4) 

 

 

综合题 - 9

假设磁盘采用 DMA 方式与主机交换信息,其传输速率为 2 MB/s ,而且 DMA 的预处理需要 1000 个时钟周期,DMA 完成传输后处理中断需要 500 个时钟周期。若平均传输的数据长度为 4KB,试问在硬盘工作时,50 MHz 的处理器需用多大的时间比率进行 DMA 辅助操作(预处理和后处理)?

 

解析:

1.CPU 每秒钟 50M CLK

2.DMA 预处理+后处理一共多少个 CLK?一共 1000 + 500 = 1500 CLK

DMA 每秒处理的次数 = 2 MB/s / 4KB = 0.5 * 1024 次/秒 = 512 次/秒

DMA 每秒占用 CLK 个数 = 1500 CLK/次 * 512 次/秒 = 768000 CLK/秒

综上,DMA占用CPU比例 = 768000 CLK / 50M = 1.536% 

 

 

综合题 - 10

一个 DMA 接口可采用周期窃取方式把字符传送到存储器,它支持的最大批量为 400B。若存取周期为 0.2微秒,每处理一次中断需 5 微秒,现有的字符设备的传输率为 9600 b/s。假设字符之间的传输时无间隙的,试问 DMA 方式每秒因数据传输占用处理器多少时间?若完全采用中断方式,又需占处理器多少时间(忽略预处理所需时间)?

 

解析: 

(1)数据传输

字符设备速度 = 1200 B/s —— 自己没做对!因为概念不清晰!

每秒传 1200B,因此需要 1200 个存取周期。 —— 这里是这样理解的。存取周期,针对读写主存或寄存器,读写一次的数据量,是一个字,或一个字节。【周期窃取】=【周期挪用】

每次能传 400 B,因此,每秒需要传 1200B / 400B = 3次

需要的时间 = 3*5微秒 + 0.2微秒*1200 = 255 微秒

 

(2)中断

中断的话,1200 次中断

时间 = 5微秒 * 1200 = 6000 微秒 = 6 毫秒

注意:对于【存取周期】理解不深刻。存取周期,一次传的数据,即一个字,或者一个字节。

 

 

综合题 - 11

假设磁盘传输数据以 32 位的字为单位,传输速率 1MB/s,CPU 的时钟频率为 50 MHz。回答:

(1)采取程序查询方式,假设查询操作需要 100 个时钟周期,求 CPU 为 I/O 查询所花费时间比率(假设进行足够的查询以避免数据丢失)?

(2)采用中断方式进行控制,每次传输的开销(包括中断处理)为 80 个时钟周期。求 CPU 为传输硬盘所花费的时间比率。

(3)采用 DMA 方式,假定 DMA 的启动需要 1000 个时钟周期,DMA 完成时后处理需要 500 个时钟周期,若平均传输的数据长度为 4KB,试问硬盘工作时处理器将用多少时间比率进行输入/输出操作?忽略 DMA 申请总线的影响。

 

解析:

(1)每秒查询次数 = 传输速度 / 数据量 = 1MB/s / 4B  = 256 * 1024 次/秒 = 262144 次/秒

每秒需要的时钟周期  = 262144次 * 100 CLK = 26214400 CLK

占用 CPU 比率 = 26214400 / 50M = 52.4%

 

(2)每秒传输的次数 = 传输速率 / 一次传输数据量 = 1MB/s / 4B  = 262144 次/秒

 每秒需要的 CLK = 262144 次 * 80 = 21M

占用CPU 比率 = 21M / 50M =  41.9%  

 

(3)DMA方式,跑一次需要 1500 CLK

每秒CPU传的次数 = 1 MB/s / 4KB  = 256 次/秒

1500 * 256 = 384K

CPU比例 = 384K / 50M =  0.768%  

 

 

综合题 - 12

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

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

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

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

 

解析:

(1)每次 I/O 的CLK 数量 = 10条指令 * CPI = 40 CLK

每秒 I/O 次数 = 速度 / 每次传的数据量 = 2 MB/s / 4B = 512 K次

每秒 CLK = 40 * 512K = 20M

CPU比率 = 20M / 50M =   40%  

 

(2)B设备每秒 I/O 次数 = 40 MB/s / 4B = 10M

每秒中断响应和中断处理的 CLK  = 10M * 400 = 4000M > 500M

说明 CPU 处理不了,因此不能用中断方式。

 

(3) 每秒 I/O 次数 = 速度 / 每次传输的数据量 = 40 MB/s / 1000B = 40K次

每秒需要的 CLK = 40K * 500 = 20 M

CPU比率 = 20M / 500M  = 4%

 

总结:2024年1月24日,距离考试考完已经一个月了。本人表示,学习要是做了几道题还没感觉,结论只有一个,就是共性的部分,还未获取到!

 

 

 

 

ShoelessCai.com 您值得关注!

 

posted on 2024-01-23 16:14  Mira_2019  阅读(38)  评论(0编辑  收藏  举报