(12 分)假定硬盘传输数据以 32 位的字为单位,传输速率为 1MB/s。CPU 的时钟频率为 50MHz。
(1)采用程序查询的输入输出方式,假定不能使数据丢失,求传输程序运行周期占用 CPU 的时间比率。
(2)采用中断方法进行控制,每次传输的开销(包括中断处理)为 100 个时钟周期。求 CPU 为传输硬盘数据花费的时间比率。
(3)采用 DMA 控制器进行输入输出操作,假定 DMA 的启动操作需要 1000 个时钟周期,DMA 完成时处理中断需要 500 个时钟周期。如果平均传输的数据长度为 4KB(此处,1MB=1000KB),问在硬盘工作的一次传输中,处理器将用多少时间比重进行输入输出操作,忽略 DMA 申请使用总线的影响。
[tag_link]
【答案】 (1) 100% (2) 50% (3) 0.75% 【解析】 首先,计算基本参数。硬盘传输速率为 1 MB/s,根据给定 1 MB = 1000 KB,假定 1 KB = 1000 字节,则 1 MB/s = 1 , 000 , 000 字节 / 秒 . 数据传输以 32 位字为单位,每字 4 字节,因此每秒传输字数为 1 , 000 , 000/4 = 250 , 000 字 / 秒 . 每字传输时间间隔为 1/250 , 000 秒 = 4 × 1 0 − 6 秒 = 4 微秒 . CPU 时钟频率为 50 MHz,即 50 × 1 0 6 周期 / 秒 , 时钟周期为 1/ ( 50 × 1 0 6 ) = 2 × 1 0 − 8 秒 = 0.02 微秒 . 每字传输时间间隔对应的时钟周期数为 4 微秒 /0.02 微秒 = 200 周期 .
(1)程序查询方式:为确保数据不丢失,CPU 必须在每字传输时间内完成对该字的查询与传输。假定传输程序处理每字需 200 周期,则每秒 CPU 用于传输的时间为 250 , 000 字 / 秒 × 200 周期 / 字 = 50 × 1 0 6 周期 / 秒 , 与 CPU 总周期数相等,故占用比率为 1,即 100%。
(2)中断方式:每次传输开销(包括中断处理)为 100 时钟周期。每秒中断次数为 250{,}000 次,故每秒 CPU 用于传输的时间为 250 , 000 × 100 = 25 × 1 0 6 周期 . CPU 总周期为 50 × 1 0 6 周期 / 秒 , 因此时间比率为 25 × 1 0 6 /50 × 1 0 6 = 0.5 , 即 50%。
(3)DMA 方式:平均传输数据长度为 4 KB。根据 1 MB = 1000 KB, 4 KB = 4000 字节 . 传输 4 KB 所需时间为 4000 字节 /1 , 000 , 000 字节 / 秒 = 0.004 秒 = 4 毫秒 . 对应的时钟周期数为 4 × 1 0 − 3 秒 / ( 2 × 1 0 − 8 秒 / 周期 ) = 200 , 000 周期 . CPU 每次 DMA 传输参与时间:启动 DMA 需 1000 周期,完成中断处理需 500 周期,共 1500 周期。在硬盘一次传输中,处理器进行输入输出操作的时间比重为 1500 周期 /200 , 000 周期 = 0.0075 , 即 0.75%。