408王道计算机组成原理强化——输入输出系统大题(I/O)

简介: 408王道计算机组成原理强化——输入输出系统大题(I/O)

1.程序查询方式

①I/O速率 ②缓冲区大小 ③查询一次时间开销

① / ② → ④查询频率;③ * ④ → ⑤查询时间占比

1.scanf函数发出系统调用请求操作系统从键盘等设备读取字符时,是在该进程的时间片内不断while循环轮询,当该进程时间片用完后就会切换进程,即该进程被剥夺处理机的使用权,故不会导致一直占用处理机

2.I/O设备通过USB与主机相连,USB带有I/O接口(I/O设备的软件部分),I/O设备和主机之间发生数据交互时,为了解决两者之间的速度差异,将会把数据先放入I/O接口的缓冲区中

3.不同的I/O接口的缓冲区大小不同(字 / 字节)

4.如果缓冲区的数据不被及时取走,当有新数据不断存入时,旧数据将会被新数据覆盖:I / O设备按照一定的速率将数据写入缓冲区,CPU需要按照一定的频率从缓冲区取出数据,并将其放入主存(数据流向:缓冲区→CPU寄存器→主存),故CPU查询的频率 ≥ I/O设备数据速率

例如:I/O设备数据输入速率为100KB/S,缓冲区大小为4B,则1S内CPU需要查询100/4 = 25次f54377e0076d41269c1626773ff0b583.png

①I/O设备和I/O接口的传输速率,即I/O设备数据输入速率

②缓冲区的大小(注意单位:字 / 字节)

① / ② = CPU定时查的频率 :若低于频率,则可能发生数据丢失;若高于,则不丢失

5.CPU用于查询的时间占总时间的比例 :

①查一次的时间开销

②一秒钟查询次数

① * ②得到每一秒钟查询的总时间→时间占比e5a21fce69cd4751bd79dcb27a6badd3.png

(1)①定时查询I/O方式:即程序轮询

②I/O接口中的缓冲区大小为32位,即4B;I/O设备的数据传输速率为2MB/s

③CPU查询频率 = 2MB/s / 4B = 500 000,1S查询500 000次,需2μs查询一次

④用于设备A输入/输出的时间占比:每次输入 / 输入都要至少执行10条指令,且CPI = 4→每次查询需要10 * 4 = 40个时钟周期;主频为500MHz→时间占比 = 40 * 500 000 / 500 000 000 = 4 %

2.程序中断方式

1.I/O接口的数据缓冲区满,I/O接口给CPU发送I/O中断信号,CPU检测到I/O中断后进行中断处理

①中断响应(中断隐指令) ②中断服务程序

程序中断方式的CPU取数据时间 = ① + ②

2.③I / O 速率 ④缓冲区大小 → ③ / ④ 每隔多久缓冲区满 ⑤→ CPU取数据时间 ① + ② ≤ ⑤

b425032b57984ec79e84f60c0a3483c5.png

(2)每次中断的时钟周期为400,则① + ②的时间;

40MB/s(B的I/O速率)/ 4B(缓冲区大小)= 10M次中断/s

10M * 400 = 4000M时钟周期,而计算机主频为500MHz < 4000M,即CPU无法满足中断处理次数,将会发生数据覆盖6656278f07904d3db29ecc2689434de8.png(1)①以32位为传输单位:缓冲区大小为32bit,即4B

②中断服务程序18条指令,中断服务的其他开销相当于2条指令:每次中断处理需要20条指令 + CPI = 5 → 每次中断的时钟周期  = 20 * 5 = 100

③每秒钟需要进行的中断次数 = 0.5MB/s(I/O速率)/ 4B(缓冲区大小)= 125 000次

④占比:125 000 * 100(每秒中断总时钟周期)/ 500 000 000(主频)= 2.5 %

3.DMA方式

1.DMA接口和主机之间的数据传输以块为单位,但DMA接口与I/O设备的传输仍以字为单位

2.①预处理:CPU执行一连串指令告诉DMA接口接下来需要读/写几个字,读/写主存的位置(块)

②数据传输:DMA接口的缓冲区被充满后以字为单位放入主存块中,主存块满后发出中断信号

③后处理:CPU处理DMA中断

3.DMA方式本质上是程序中断方式的扩展:DMA每个块发出中断,程序中断方式每个字发出中断

4.程序查询方式和程序中断方式可能发生数据丢失,但是DMA不可能发生数据丢失

86c2967fdb114f26962c82a4bdb6c974.png

(3) ①每次DMA传送的数据块大小为1000B,即用于DMA传送的主存块大小为1000B

②每秒DMA中断的次数 = 40MB/s / 1000B = 40 000次

③每次DMA中断的时间开销 = 500个时钟周期

④占比 = 40 000 * 5000 / 500MHz = 4%d355a3b4265f44a9ae995e87ed21552a.png

(2)①每秒DMA中断次数 = 5MB/s / 5 000B = 1 000次

②每次DMA中断的时间开销 = 500次

③占比 = 500 * 1000 / 500M = 0.1%

eeafc9c92d6f4475b561b55aa6e14dd9.png

(1)①异步串行通信需要开始位:1 + 7 + 1 + 1 = 10位

②1 / 0.5ms = 2000个字符

(2)①I/O设备分为两种:1.按自己节奏运行,不听CPU命令的设备 2.听CPU指挥何时运行何时停止的设备;其中第15条指令启动D工作,则说明设备D是后者

②中断响应需要10个时钟周期,设备D在中断服务程序的第15条指令执行后开始工作,即设备D的工作间隔为10 + 15 * 4 = 70个时钟周期

③CPU的时钟周期为 1s / 50MHz = 20ns;字符D每次工作所需的时钟周期为0.5ms / 20ns = 25000

④设备D传输一个字符所需的时钟周期数 = 25 000 + 70 = 25 070→1000个字符所需的时钟周期 = 25 070 * 1 000  = 25 070 000

⑤设备D每次处理完给CPU发出中断请求,CPU处理一次中断请求所需时钟周期数 = 中断响应 + 中断服务程序10 + 20 * 4 = 90;1000个字符所需时钟周期数 = 1 000 * 90 = 90 000

⑥中断响应完成关中断、保护断点、中断服务程序寻址

相关文章
|
6月前
|
存储
【期末计算机组成原理速成】第四章:输入输出系统
【期末计算机组成原理速成】第四章:输入输出系统
152 0
|
算法 网络虚拟化 内存技术
408王道计算机组成原理强化——存储系统大题
408王道计算机组成原理强化——存储系统大题(下)
2170 2
408王道计算机组成原理强化——存储系统大题
|
存储 算法 调度
【考研必备】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(下)
【考研必备】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)
|
5月前
|
存储 知识图谱
【计算机组成原理】指令系统&考研真题详解之拓展操作码!
也就是说 “其中三地址指令29”条这句话,完全可以翻译成“三地址这种类型的指令一共能有29种不同的可能性” 这样说就清晰多 因为这就意味着 我们需要用若干个字节 来表示这29种不同的可能性 然后又已知每一个字节位能表示的可能性是2种(0/1),那么我们想有多少个字节可以表示29种不同的可能呢?最少5种 (因为2的4次方=16<29),2^5=32>29,也就是说有32-29=3种可能性是不在三地址指令这种类型的指令集里面的,所以这3 种余出来的可能性要被利用 就在下一种 “二地址指令集”中利用到
73 0
|
存储 Unix Linux
【考研必备二】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(上)
【考研必备二】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(上)
【考研必备二】解开“黑匣子”的神秘面纱,透视数字世界底层实现过程(计算机组成原理)(上)
|
存储 内存技术
408王道计算机组成原理强化——存储系统大题(上)
408王道计算机组成原理强化——存储系统大题
923 2
408王道计算机组成原理强化——存储系统大题(上)
408王道计算机组成原理强化——数据的运算及大题(下)
408王道计算机组成原理强化——数据的运算及大题
509 1
408王道计算机组成原理强化——数据的运算及大题(下)
408王道计算机组成原理强化——数据的运算及大题(上)
408王道计算机组成原理强化——数据的运算及大题
213 1
408王道计算机组成原理强化——数据的运算及大题(上)
|
编译器
408王道计算机组成原理强化——指令系统及大题解构(上)
408王道计算机组成原理强化——指令系统及大题解构
263 1
408王道计算机组成原理强化——指令系统及大题解构(上)
|
存储 程序员
408王道计算机组成原理强化——指令系统及大题解构(下)
408王道计算机组成原理强化——指令系统及大题解构
285 1
408王道计算机组成原理强化——指令系统及大题解构(下)