假定CPU的主频是500MHz。硬盘采用DMA方式进行数据传送,其数据传输率为4MB/s, 每次DMA传输的数据量为8KB, 要求没有任何数据传输被错过
时间: 2024-06-14 17:08:53 浏览: 277
假设CPU的主频是500MHz,硬盘采用DMA方式进行数据传送,数据传输率为4MB/s,每次DMA传输的数据量为8KB。要求没有任何数据传输被错过。
首先,我们需要计算每次DMA传输所需的时间。由于数据传输率为4MB/s,每秒可以传输4MB的数据。而每次DMA传输的数据量为8KB,即8 * 1024字节。因此,每次DMA传输所需的时间为:
传输时间 = 数据量 / 数据传输率 = (8 * 1024)字节 / (4 * 1024 * 1024)字节/秒 = 0.002秒
接下来,我们需要计算CPU每秒钟可以执行的指令数。由于CPU的主频是500MHz,即每秒钟可以执行500 * 10^6条指令。因此,CPU每秒钟可以执行的指令数为:
指令数 = 主频 / 指令周期 = 500 * 10^6条指令/秒
为了确保没有任何数据传输被错过,我们需要保证CPU在每次DMA传输完成之前不会执行其他指令。因此,我们需要计算每次DMA传输所需的指令数。根据上面的计算结果,每次DMA传输所需的时间为0.002秒。而CPU每秒钟可以执行的指令数为500 * 10^6条指令/秒。因此,每次DMA传输所需的指令数为:
指令数 = 指令数 * 传输时间 = (500 * 10^6条指令/秒) * (0.002秒) = 1 * 10^6条指令
因此,为了确保没有任何数据传输被错过,我们需要保证每次DMA传输完成之前CPU执行的指令数不超过1 * 10^6条指令。
相关问题
设某计算机的 CPU 主频为 80MHz,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)该计算机的 MIPS 数是多少?平均每秒 Cache 缺失的次数是多少?在不考虑 DMA 传送的情况下。主存带宽至少达到多少才能满足 CPU 的访存要求?
MIPS(Million Instructions Per Second)= CPU 主频 / CPI = 80MHz / 4 = 20 MIPS
平均每秒 Cache 缺失的次数 = MIPS × 平均每条指令访存次数 × (1 - Cache 命中率)= 20 × 1.5 × (1 - 0.99) = 0.3
假设主存带宽为 x,由于平均每条指令访存 1.5 次,因此主存每秒需要传输的字节数为:
20 × 80 × 10^6 / 8 × 1.5 = 200MB
又因为每次传输的块大小为 16B,因此主存每秒需要传输的块数为:
200MB / 16B = 12.5M
所以主存带宽至少应为:
12.5M × 16B × 8 / s = 2Gbps
(2)假定在 Cache 缺失的情况下访问主存时,存在 0.0005%的缺页率,则 CPU 平均每秒产生多少次缺页异常?若 页面大小为 4KB,每次缺页都需要访问磁盘,访问磁盘时 DMA 传送采用周期挪用方式,磁盘 I/O 接口的数据缓冲 寄存器为 32 位,则磁盘 I/O 接口平均每秒发出的 DMA 请求次数至少是多少?
CPU 平均每秒产生的缺页异常次数 = MIPS × 平均每条指令访存次数 × 缺页率 = 20 × 1.5 × 0.0005% = 0.00015
每次缺页需要访问磁盘,页面大小为 4KB,因此每次访问磁盘需要传输 4KB 的数据。磁盘 I/O 接口的数据缓冲寄存器为 32 位,因此每次 DMA 传输可以传输 32 位的数据。传输 4KB 的数据需要传输 1024 个块,每个块的大小为 32 位,因此每次传输需要 1024 × 32 位 = 32KB 的带宽。DMA 采用周期挪用方式,每次传输需要占用总线一个周期,因此磁盘 I/O 接口平均每秒发出的 DMA 请求次数至少应为:
磁盘 I/O 接口带宽 = CPU 平均每秒产生的缺页异常次数 × 每次传输的带宽 = 0.00015 × 32KB = 4.8B/s
因此磁盘 I/O 接口平均每秒发出的 DMA 请求次数至少应为:
4.8B/s / 32B/次 = 0.15次/s
(3)CPU 和 DMA 控制器同时要求使用存储器总线时,哪个优先级更高?为什么?
DMA 控制器的优先级更高。因为 DMA 控制器的任务是进行数据传输,如果 DMA 控制器无法及时访问存储器总线,则数据传输会受到影响,导致系统性能下降或数据错误。而 CPU 的任务是执行指令,如果 CPU 无法及时访问存储器总线,则只会导致指令执行速度变慢,而不会对系统稳定性造成影响。
(4)为了提高性能,主存采用 4 体低位交叉存储器,工作时每 1/4 周期启动一个存储体,每个存储体传送周期为 50ns,则主存能提供的最大带宽是多少?
主存采用 4 体低位交叉存储器,每个存储体传送周期为 50ns,因此每个周期可以传输一个存储体的数据。因为主存采用低位交叉存储器,每个存储体的容量为总容量的 1/4,因此每个存储体传输的数据大小为总数据大小的 1/4。主存总带宽为:
4 × (1 / 4) × (1 / 50ns) × 数据位宽 = 数据位宽 / 50ns = 640MB/s
其中数据位宽为存储器总线宽度为 32 位,因此主存总带宽为 640MB/s。
阅读全文