算一算中断处理占了多少时间
程序跑 10000 拍,其间发生 20 次中断(每次 50 拍)。算出「中断总开销 / 占比」(占比保留两位小数)。
开始练习 →
DMA 是谁在搬
用 DMA 传输时,真正搬数据的是【0】。
开始练习 →
DMA 传输时 CPU 在干什么
DMA 正在搬数据的这段时间,CPU【0】。
开始练习 →
DMA 什么时候不划算
数据量很小时,DMA 反而比中断慢。因为【0】。
开始练习 →
DMA 从几个字节起划算
运行下面这段程序,填写它打印出来的结果。 DEV = 1000 IRQ = 50 def by_poll(n): return n * DEV def by_irq(n): return n * IRQ def by_
开始练习 →
自己写:DMA 传输的账
给字节数,算出「中断方式 / DMA 方式 / 谁更快」。
开始练习 →
一次 DMA 传输的四步
把 DMA 传输的四步走一遍:设参数 / 启动 / 搬运 / 完成中断,返回「步数 / 搬了几个 / CPU 参与了几步」。
开始练习 →
算一算 CPU 被解放了多少
用中断方式搬 100 字节 vs 用 DMA,算出「CPU 参与次数 / 解放了多少倍」。
开始练习 →
⚠️ DMA 也要占总线
DMA 搬运时会占用内存总线,CPU 访存要多等。算出「不考虑总线争用 / 考虑之后」两种口径的总拍数。
开始练习 →
为什么程序不能直接操作设备
用户程序不能直接往设备寄存器里写命令,因为【0】。
开始练习 →