0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于CPU运行速度计算详解

FPGA之家 来源: 裸机思维 作者:GorgonMeducer 傻孩子 2021-04-09 18:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

【说在前面的话】

相对人的感官来说CPU跑的太快了——即便是人们常常用来描述时间短暂的“一眨眼功夫”对CPU来说也是及其“漫长”的好几百毫秒了——仔细想想有几个人能在一秒钟内连续眨十次眼睛呢?正因为如此,即便是超级循环里面顺次执行的多个任务,在人类看来也往往是“一瞬间就执行完了”。那么CPU究竟跑的有多快呢?是很快、非常快还是快得不得了?如果我们继续站在人类的视角考虑这个问题,其抽象程度无异于思考“无穷大究竟是多大”。

让我们想象着周围的时间相对你突然都慢了下来,从微处理器的视角重新审视这个世界。

【第一个参考点】

“1MHz就是 1us”

“1MHz就是1us”是一个基准概念,通过修改思考方式,我们就可以利用它快速而有效的解决很多实际问题。作为练习,我们来尝试依次快速的回答以下几个问题:

假设每个时钟脉冲都对应一个指令周期:

已知系统频率是1MHz,请问1us内有几个指令周期?

已知系统频率是12MHz,请问1us内有几个指令周期?

已知系统频率是11.3728MHz,请问1us内有几个指令周期?

已知系统频率是500KHz,请问1us内有几个指令周期?

很显然,如果你试图首先计算出系统周期:

2ae6cb60-990f-11eb-8b86-12bb97331649.png

再用1us去相除:

2af41b44-990f-11eb-8b86-12bb97331649.png

这个过程已经慢了。

让我们来换一种思维模式,既然1MHz对应1us(也就是1us对应一个指令周期),那么12MHz就是1MHz的12倍,1us时间内就有12个指令周期;同理可得,当系统频率分别是11.3728MHz和500KHz(0.5MHz)的时候,1us时间内对应的指令周期数分别是11.3728个和0.5个。

借助这个等效,我们就可以对CPU的处理能力建立更多量化的感官,比如1ms的时间内,CPU能做多少事情呢?由于1ms等于1000us,对1MHz的系统来说,1ms可以完成1000个指令周期,12MHz的系统可以完成12000个指令周期。然而1000和12000这样的数字对于只有十个手指的人类大脑来说还是太抽象了,因此我们更进一步,把指令周期换算成等效的代码尺寸:

由于主流的微控制器其指令集中大多是单周期指令,我们不妨假设所有指令都是单指令周期的,这样1个指令周期就对应一条指令;

假设每条指令都是2个字节大小(16位指令);

这样,1ms时间内1MHz的系统可以运行大约2KB的代码,一个12MHz的系统可以运行24KB的代码,依次类推。

那么2KB是什么概念呢?如果你平时有留意编译后的代码尺寸,2KB大约是一个基础驱动库的尺寸,可以包含一个USART的驱动或者实现电源管理;而24KB几乎是一个小型工程应用的尺寸了。

借助这些非常具体的数字,我们很容易拿它们和中断处理程序进行比较,建立直观的认识——比如:

中断处理程序“执行的是不是足够快”?

“丢中断的风险究竟有多大”等等?

使用中断接收外设数据的时候会不会发生丢失?

可以肯定的是,这种忽略循环和条件分支的评估方法几乎是一个代码的最差情况,也就是说,在1MHz的系统中对于一个1KHz的毫秒中断,中断处理程序越接近2KB,就说明系统越可能“丢中断”。

在这种情况下,除非你通过编译器提供的等效汇编代码仔细的计算过实际的周期数,或者是通过perf_counter这样的工具实际测量过代码的周期消耗——确信时间上处理周期不会大于1ms且这期间不会存在其它中断处理程序,否则你的中断处理程序还是比2KB越小越好。

【一个真实的案例】

在一个72MHz的Cortex-M3/M4系统下,使用中断模式来接收串口数据,波特率为115200的情况下:

最大允许屏蔽中断多长时间?

中断处理程序允许的理论最大安全尺寸是多少?

首先,我们要搞清楚系统的指令大小和指令集的周期数情况。以ARM Cortex M3/M4为例,其指令大部分为单周期指令,支持16位指令和32位指令。为了评估中断处理程序的尺寸上线,我们可以分别以16位指令和32位指令为基础计算出两个结果作为参考范围;

其次,系统频率为72MHz,假设USART没有硬件FIFO,则115200的波特率在典型的“1起始位+1终止位+无校验位+8数据位”的配置下(每个数据帧对应10个bit),实际上对应最大11.52KB/s的数据率——或者说,USART完成中断每秒钟发生 11.52K次。至此,我们可以回答第一个问题,即在这一系统中最大允许屏蔽中断多长时间——1/11.52KHz ≈87us。

也就是说,假设中断屏蔽的时间为87us则中断处理程序的理论最大尺寸范围是(72 * 87 * 2)字节到(72 * 87 * 4)字节,即12.528KB到25.056KB之间。取最小值12KB。

结论,中断处理程序及其调用的子函数,其尺寸总和至少要小于12KB才能确保115200波特率的接收完成中断得到及时的响应。由于未考虑循环、分支以及其它任务的存在,以上结果仅用于粗略的快速评估,实际代码通常应该远小于这一上线值。当实际尺寸接近或者超过13KB时基本可以判定该系统存在无法及时稳定的响应中断的可能——需要对代码进行进一步的具体分析。

【结语】

“1MHz就是1us”的等效为我们提供了一个基准,建立了关于“CPU跑多快”最直观的感受,同时也为评估代码尺寸、系统可靠性提供了有力的参考。掌握了这个基准,作为一个合格的程序员,不应该仅凭人类的感觉毫无依据评价CPU的处理能力了,“72MHz足够快了吧?”“我已经用了芯片的最高频率”这种话再也不能轻易说了,我们应该定量而不是定性的去看待这类问题。
编辑:lyn

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11218

    浏览量

    222973
  • 1Mhz
    +关注

    关注

    0

    文章

    4

    浏览量

    9147

原文标题:【实时性迷思】CPU究竟跑的有多快?

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    速度计都有哪些分类?

    速度计的分类主要依据其工作原理和测量维度(轴数),以下是详细的分类:按工作原理分类(这是最核心的分类方式)这是根据加速度计内部如何感知和转换加速度信号来划分的。
    的头像 发表于 12-04 15:55 87次阅读
    加<b class='flag-5'>速度计</b>都有哪些分类?

    MEMS加速度计如何实现“微克级”超高精度测量?

    在精密导航、结构健康监测、高动态姿态控制等领域,加速度计的精度直接决定了系统的性能上限。传统高精度加速度计往往体积大、功耗高、成本昂贵,难以在嵌入式、移动平台中广泛应用。那么,有没有一款产品,既能实现“微克级”超高精度,又兼备MEMS的小体积、低功耗特性?
    的头像 发表于 12-02 15:16 123次阅读
    MEMS加<b class='flag-5'>速度计</b>如何实现“微克级”超高精度测量?

    速度计伺服电路模块原理与应用

    在惯性导航与姿态控制这一尖端技术领域,系统感知运动状态的能力直接决定了其精度与可靠性。而将物理世界的加速度精确转换为可用电信号的关键,在于一个核心部件——加速度计伺服电路模块。该模块专为光电加速度计
    的头像 发表于 11-28 15:43 159次阅读

    程序运行速度很慢如何优化?

    ;gt;外设,内存<->内存)交给DMA,释放CPU资源。 优化算法: 选择时间复杂度更低的算法。避免不必要的循环和重复计算。 减少函数调用开销: 对于频繁调用的小函数
    发表于 11-17 06:12

    如何为你的项目选择合适的加速度计

    在智能科技飞速发展的今天,从翱翔天空的飞行器到我们手中的智能设备,对运动的精准感知已成为关键。加速度计,作为测量加速度和振动的核心传感器,其选型直接决定了项目的成败。面对不同的技术类型,如何才能做出最明智的选择?本文将带您了解主要的加
    的头像 发表于 11-06 15:32 145次阅读
    如何为你的项目选择合适的加<b class='flag-5'>速度计</b>?

    石油钻井为何离不开抗高温抗冲击的石英加速度计

    在地下数千米的复杂钻井环境中,钻头需要穿越坚硬的岩层、承受剧烈振动和超过150℃的高温。此时,石英加速度计就如同钻井系统的"感知神经",通过与陀螺仪协同工作,精确测量角速度和加速度
    的头像 发表于 09-30 15:16 342次阅读
    石油钻井为何离不开抗高温抗冲击的石英加<b class='flag-5'>速度计</b>?

    传统格局将被打破?这款MEMS加速度计如何实现石英级精度

    在惯性测量领域,高精度加速度计的市场格局似乎早已固化:石英加速度计凭借其卓越的稳定性长期占据着高端应用的统治地位。然而,这一格局正在被悄然打破。ER-MA-6 MEMS加速度计的出现,以其惊人的性能指标向传统发起挑战,让业界不禁
    的头像 发表于 09-26 14:59 591次阅读
    传统格局将被打破?这款MEMS加<b class='flag-5'>速度计</b>如何实现石英级精度

    MEMS加速度计与石英加速度计的发展现状与水平对比

    在工程测量与惯性导航领域,加速度计是感知运动与振动的核心传感器。其中,微机电系统(MEMS)加速度计和石英加速度计是两种技术路线迥异但应用广泛的重要类型。它们各自的发展现状和技术水平呈现出一种既竞争又互补的格局。
    的头像 发表于 09-19 14:55 921次阅读
    MEMS加<b class='flag-5'>速度计</b>与石英加<b class='flag-5'>速度计</b>的发展现状与水平对比

    洞察万物运动:详解速度计的分类与广泛应用

    在我们日常生活中,从智能手机屏幕的自动旋转到汽车的紧急安全气囊触发,一种看不见的技术始终在默默工作,感知着物体的运动和振动。这种技术的核心元件就是加速度计。它是一种能够测量加速度(包括静态重力加速度
    的头像 发表于 09-18 16:06 679次阅读
    洞察万物运动:<b class='flag-5'>详解</b>加<b class='flag-5'>速度计</b>的分类与广泛应用

    为什么在振动分析中加速度计最常用?

    尽管振动可以通过位移、速度、加速度三个参数来完整描述,但在现代预测性维护和状态监测领域,加速度传感器(加速度计)占据了绝对主导地位,原因如下:宽广的频率范围:机械设备的早期故障(如轴承
    的头像 发表于 09-12 12:02 439次阅读
    为什么在振动分析中加<b class='flag-5'>速度计</b>最常用?

    超高精度MEMS加速度计能否撼动石英加速度计的市场地位?

    在惯性传感技术飞速发展的今天,ER-MA-6 MEMS加速度计以其突破性的技术指标,正在挑战传统石英加速度计的市场地位。这款采用先进微机电系统技术打造的高精度传感器,不仅继承了MEMS器件固有
    的头像 发表于 08-28 15:21 482次阅读
    超高精度MEMS加<b class='flag-5'>速度计</b>能否撼动石英加<b class='flag-5'>速度计</b>的市场地位?

    同一水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,运行速度如何?

    ARM 架构与 RISC-V 架构的 MCU 在同一性能水平下的运行速度对比,需从架构设计原点、指令集特性及实际测试数据展开剖析。以 ARM Cortex-M33 这类 ARMv8M 架构核心与采用
    的头像 发表于 07-02 10:29 1223次阅读
    同一水平的 RISC-V 架构的 MCU,和 ARM 架构的 MCU 相比,<b class='flag-5'>运行速度</b>如何?

    Matlab与MWORKS软件计算精度对比

    移动力在简支梁上的位置输入到y向量中。 其中Matlab编程代码为 clear L=32;%简支梁长 v=3.2;%运行速度 dt=0.5; x0=0; n=20; y=zeros(1,n);%预设
    发表于 06-07 16:57

    高性能石英加速度计,满足最严苛应用需求

    在精度、可靠性和环境适应性至关重要的行业中,ER-QA-02A高性能石英加速度计无疑是一款颠覆性的产品。专为最具挑战性的环境设计,这款先进的加速度计以无与伦比的精度和稳定性,成为航空航天、国防、工业以及地震监测等领域的理想选择。
    的头像 发表于 02-19 17:41 900次阅读

    ADXL345超低功耗3轴加速度计中文手册

    电子发烧友网站提供《ADXL345超低功耗3轴加速度计中文手册.pdf》资料免费下载
    发表于 01-06 16:35 5次下载