查缺补漏----程序查询方式和中断方式计算题

news/2024/12/23 1:33:15/

1.程序查询方式

总结下来就是:

必须在外设传输完端口大小的数据时访问端口,以防止数据未被及时读出而丢失。

占CPU总时间:就是某段时间内设备用了多少时钟周期/PCU有多少个时钟周期
CPU的时钟周期数:就看主频,主频表示每秒有多少个时钟周期

设备每秒用了多少时钟周期:5*10^5*10*4

例题:

同理,200*500/50M=0.2%

这里的衡量单位不再是秒了,而是每400s,中断响应所允许的延迟时间不是中断响应的时间,所以用100ns/400ns=25%

2.程序中断方式

例题:

1s内能传输50kB数据,而接口缓冲寄存器只有32位(4B),所以1s需要中断50kB/4B=12500次

每秒设备用了多少时钟周期/每秒CPU有多少时钟周期:

12500*1000/1G=1.25%

3.DMA方式

题目无非是想告诉我们,对于高速设备的成组数据传输,适合使用DMA方式。

回顾一下真题:

主要是下面两道其他比较简单

(1)

① MIPS表示每秒可以执行多少百万条 指令:80/4=20M条指令

MIPS=主频/CPI,也就是1s的时钟周期数/每条指令的的时钟周期数

② 每秒执行20M条指令,访存20Mx1.5=30M次。Cache命中率为99%,故平均每秒cache缺失次数为30Mx(1-99%)=0.3M次=300K次

③ Cache缺失时,CPU访问主存,将要访问的数据所在的整个主存块调入Cache,则每秒需要调入300K(不命中的次数)x16B(每个块的大小)=4800KB,即主存带宽至少4.8MB/s

为什么是至少呢?

因为这个带宽仅仅满足了CPU的访存要求,Cache缺失时,不仅要将对应主存块调入Cache,还需要将数据调入CPU。这部分的带宽并没有算上。

再加上,如果有DMA控制器的话,不仅CPU要访存,DMA控制器也要访存,所以比这个带宽更大。

(2)

平均每秒Cache缺失次数为300K次,平均每秒产生的缺页异常次数=300Kx0.0005%=1.5次

外设准备好或接受完数据缓冲寄存器中的32位数据时由I/O/接口发出DMA请求,页面大小4KB,所以每秒需要调入的数据量为1.5x4KB=6KB

每准备好32bit数据就有一次DMA请求,故请求次数=6KB÷32bit=6KB÷4B=1.5K(这里的大小1024是)=1536

(3)

CPU和DMA控制器同时要求使用存储器总线时,DMA请求优先级更高。因为DMA请求得不到及时响应,I/O传输数据可能会丢失。

(4)每个存储体有相同的存储周期,采用交叉编址的方式,则连续访问的时候,每次访问的存储体都不同,一个存储体访问结束后,可以立即开始访问下一个存储体。

也就是可以采用流水线的模式:

这里问的是主存能提供的最大带宽,所以只需要考虑流水线充分流动起来的情况即可:

所以,翻译一下题目,每隔1/4T的存储周期都能取出一个字 :

主存能提供的最大带宽:32bit/(50ns/4)

也可以这样想:当个存储体带宽的四倍,即:

4x(32bit÷50ns)=320MB/s

(1)

这里是异步通信的数据格式:每传送一个字符需要传送1位起始位、7位数据位、1位校验位、1位停止位,共需传送10位。图中停止位可能有多位,例如1.5位,2位

每0.5ms可送入1个字符每秒可送入 1s/0.5ms=2000 个字符

(2)

从图中可以看出,中断服务程序的第15条指令外设就开始新的工作了(数据准备),后5条主要用于CPU中断返回,CPU中断返回和外设是并行工作的。

所以传送数据在虚线标的时间就完成了,而CPU参与的时间则是绿色线标的部分。

完成一次传输大约需要多少时钟周期?

主频50MHz,时钟周期为1/50MHz=20ns

0.5ms对应时钟周期数为0.5ms/20ns=25000

传送1个字符需要的时钟周期数为 25000+10(CPU响应)+15x4(CPU中断服务)=25070

传送1000个字符需要的时钟周期数为25070x1000=25070000。

CPU参与的时钟周期?

CPU用于该任务的时间大约为 1000x(10+20x4)=9x104个时钟周期,即绿色线部分的时钟周期。

(3)

中断隐指令:1.关中断         2.保存断点(PC)         3.引出中断服务程序


http://www.ppmy.cn/news/1533452.html

相关文章

【html】基础(二)

本专栏内容为:前端专栏 记录学习前端,分为若干个子专栏,html js css vue等 💓博主csdn个人主页:小小unicorn ⏩专栏分类:js专栏 🚚代码仓库:小小unicorn的代码仓库🚚 &am…

JavaScript 可视化案例 D3.js Chart.js 使用教程 图表实现 柱状图 饼状图 条形图 折现图等

JavaScript 可视化通常用于将数据以图形方式展示&#xff0c;以下是使用D3.js 和 Chart.js 这两种常用库进行可视化的案例。 案例一&#xff1a;使用 D3.js 实现条形图 1. 引入 D3.js 首先&#xff0c;需要在 HTML 中引入 D3.js&#xff1a; <!DOCTYPE html> <htm…

【CKA】五、网络策略–NetworkPolicy

5、配置网络策略–NetworkPolicy 1. 考题内容&#xff1a; 2. 答题思路&#xff1a; 1、根据题目分析要创建怎样的网络策略 2、按题目要求查看ns corp-net的label 3、编写yaml&#xff0c;其中注意 namespace、label、port 3. 官网地址&#xff1a; https://kubernetes.io/…

经典文献阅读之--WiROS(用于机器人的WiFi感知工具箱)

0. 简介 近期的许多研究探索了使用基于WiFi的感知技术来改善SLAM&#xff08;同时定位与地图构建&#xff09;、机器人操控或探索。此外&#xff0c;WiFi的广泛可用性使其成为最具优势的射频信号。但WiFi传感器缺乏一个准确、易处理、多功能的工具箱&#xff0c;这限制了它们与…

使用Chrome浏览器时打开网页如何禁用缓存

缓存是浏览器用于临时存储网页资源的一种机制&#xff0c;可以提高网页加载速度和减轻服务器负载。 然而&#xff0c;有时候我们需要阻止缓存中的Chrome浏览器&#xff0c;以便获取最新的网页内容。以下是一些方法可以实现这个目标&#xff1a; 1、强制刷新页面&#xff1a;在C…

深度学习·Argparse

Argparse 命令行选项、参数和子命令解析器 ArgumentParser 命令行传参数->解析参数->获得对应参数 初始化&#xff1a;parser argparse.ArgumentParser(descriptionxxx)添加命令行参数&#xff1a; parser.add_argument("--training_filepath", typestr, he…

无源码实现免登录功能

因项目要求需要对一个没有源代码的老旧系统实现免登录功能&#xff0c;系统采用前后端分离的方式部署&#xff0c;登录时前端调用后台的认证接口&#xff0c;认证接口返回token信息&#xff0c;然后将token以json的方式存储到cookie中&#xff0c;格式如下&#xff1a; 这里有…

通达信盯盘接口在美股适用吗

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…