当前位置: 首页 > news >正文

厦门 网站建设公司北京海淀区邮编

厦门 网站建设公司,北京海淀区邮编,长春网站制作网页,黄埔网站建设(信科网络)本章将学习如何利用ARM PMU的Cycle Counter#xff0c;来计算出CPU的时钟周期#xff0c;从而计算出CPU的时钟频率。在介绍计算方法前#xff0c;有必要先介绍下什么是时钟周期、机器周期以及指令周期。 如何计算出CPU的时钟频率 一#xff0c;时钟周期#xff0c;机器周…本章将学习如何利用ARM PMU的Cycle Counter来计算出CPU的时钟周期从而计算出CPU的时钟频率。在介绍计算方法前有必要先介绍下什么是时钟周期、机器周期以及指令周期。 如何计算出CPU的时钟频率 一时钟周期机器周期以及指令周期1.1 时钟周期clock cycle以及时钟频率clock frequency1.2 机器周期Machine Cycle/ CPU周期CPU Cycle1.3 指令周期Instruction Cycle1.4 指令周期、机器周期以及时钟周期之间的关系 二PMU 的Cycle Counter2.1 PMCCNTR_EL0, Performance Monitors Cycle Count Register 三如何计算出CPU的时钟频率四参考文档 一时钟周期机器周期以及指令周期 1.1 时钟周期clock cycle以及时钟频率clock frequency 同学们是否还记得数电里学过的同步时序逻辑电路电路里的所有触发器都是同一个时钟脉冲源触发器的状态会与该时钟脉冲信号同步即一个时钟脉冲到来所有触发器的状态就改变一次。CPU与之类似需要给CPU灌入一个连续的时钟脉冲信号每一次脉冲到来CPU内的晶体管就改变一次状态而源源不断的时钟脉冲正是CPU能够执行计算任务的关键。 如上图所示脉冲信号做出周期变化的最短时间称之为震荡周期也称为 CPU 时钟周期。它是计算机中最基本的、最小的时间单位。周期的倒数就是频率所以我们很容易得出时钟频率和时钟周期的关系 时钟频率 1 时钟周期 时钟频率\frac{1}{时钟周期} 时钟频率时钟周期1​ 即一秒1 s内发出的震荡脉冲个数为时钟频率。我们经常讲某个CPU的主频是多少GHz、多少MHz并认为CPU的频率越高其运算性能越强。从时钟频率的原理分析可知时钟频率越高一秒内发出的脉冲个数越多CPU内的晶体管状态变化次数越多即CPU的运算速度越快。 事实上每个CPU或者每个芯片都有自己的正常工作频率范围在最小工作频率和最大工作频率之间。时钟频率越高晶体管状态变化越频繁当晶体管未及时更新状态而下一个脉冲信号就已经到来时CPU有可能进入未知的状态不能正常工作。 1.2 机器周期Machine Cycle/ CPU周期CPU Cycle 机器周期也称为CPU周期。 在计算机中为了便于管理常把一条指令的执行过程划分为若干个阶段每一阶段完成一项工作。 例如取指令、存储器读、存储器写等这每一项工作称为一个基本操作注意每一个基本操作都是由若干CPU最基本的动作组成。完成一个基本操作所需要的时间称为机器周期。通常用内存中读取一个指令字的最短时间来规定CPU周期。原文) 机器周期是为了实现指令流水线而引入的概念实际上对应的是指令流水线的各个阶段称之为流水阶段或功能段流水级等。 从下图可知一个机器周期包含了若干个时钟周期 1.3 指令周期Instruction Cycle CPU从存储器中取出并执行一条指令所需的全部时间称之为指令周期。一个指令周期通常用需要几个CPU周期来表示 指令不同所需的机器周期数也不同。对于一些简单的的单字节指令在取指令周期中指令取出到指令寄存器后立即译码执行不再需要其它的机器周期。对于一些比较复杂的指令例如转移指令、乘法指令则需要两个或者两个以上的机器周期。 1.4 指令周期、机器周期以及时钟周期之间的关系 简单概括就是一个指令周期包含多个 CPU 周期而一个 CPU 周期包含多个时钟周期。 二PMU 的Cycle Counter PMU模块里有一个64-bit 位宽的计数器cycle counter这个cycle counter的计数频率为CPU的时钟频率。可以通过读取寄存器 PMCCNTR_EL0 或者 PMCCNTR来获取当前cycle counter里的clock cycle。 2.1 PMCCNTR_EL0, Performance Monitors Cycle Count Register 寄存器PMCCNTR_EL0保存着CPU的cycle counter的值记录着CPU时钟周期数 clock cycles。AArch64系统寄存器PMCCNTR_EL0[63:0]映射到AArch32的PMCCNTR[63:0]。 需要注意的是 尽管arm体系结构要求PMCCNTR_EL0 或PMCCNTR的直接读取按程序顺序进行但并不要求在两次这样的读取之间计数增加。即使cycle counter在每个时钟周期中都在增加软件也可能需要检查两次读取计数器之间的差是否为非零。WFI 和WFE指令或造成CPU 时钟停止进入standby模式。此时所有计数器的时钟频率也会发生变化。这意味着当时钟被WFI和WFE指令停止时PMCCNTR_EL0是否会继续计数是受约束的不可预测的。 使用如下指令即可读取CPU时钟周期数 clock cycles到指定寄存器 ;AArch64: MRS Xt, PMCCNTR_EL0 ;AArch32: MRC{c}{q} coproc, {#}opc1, Rt, CRn, CRm{, {#}opc2}三如何计算出CPU的时钟频率 我们有了上文的基础知识作为铺垫就可以来计算CPU的时钟频率了。基本原理如下 在固定时间T内记录下CPU经过的时钟周期数C。CPU的时钟频率F可得 时钟频率 F 时钟周期数 C 固定时间 T 时钟频率F\frac{时钟周期数C}{固定时间T} 时钟频率F固定时间T时钟周期数C​ 所以我们的程序伪代码可以这样写 cycle1 Read_PMCCNTR(); wait(10);//wait 10s cycle2 Read_PMCCNTR(); freq (cycle2-cycle1)/10;至于延时函数wait()可以使用ARM CPU内部的generic timer或者 system counter来实现延时。 四参考文档 https://wenwen.sogou.com/question/q660822487.htm https://blog.csdn.net/weixin_37641832/article/details/88920468 https://zhuanlan.zhihu.com/p/461519409
http://www.hkea.cn/news/14487491/

相关文章:

  • 蔡甸网站建设诸暨 外贸网站建设
  • 如何做财经网站长宁区公司网站建设
  • 小型商城网站魏县企业做网站推广
  • 素材网站 国外网站未经授权推广别人的产品
  • 做汽车网站开题报告的意义有源码做网站
  • 家装设计公司排行榜郑州seo网站排名优化公司
  • 开普网站建设公司企业网站模板下载尽在
  • 外贸企业 访问国外网站深圳小程序定制
  • 网站开发属于什么岗位末年人免费观看网站
  • 3d建模怎么做网站旋转淘宝客网站容易做吗
  • 如何选择昆明网站建设怎么用ps做网站首页图片尺寸
  • 太原搭建网站的公司哪家好我要找人做网站的主页
  • 洛阳网站建设专业郑州网站建设
  • 做网站链接房产网加盟
  • 哪些网站做渣土车租恁百度网盘电脑版
  • 建设银行网站怎么查自己账号吗广告模板图片
  • 东莞 网站建设设计资源网站大推荐
  • 宜春做网站 黑酷seo企业管理软件销售好做吗
  • 自建网站软件网站建设制作品牌公司
  • 快递物流公司网站模板网站登录界面源码
  • 威海网站定制动漫网站开发
  • 公司做网站推广要注意什么网站界面诊断
  • 快速网站开发 带数据库深圳南山区网站建设
  • 上海网站开发设计seo兼职平台
  • jsp网站开发分享网站做非洲国际贸易网站
  • 如何让做网站网页页面布局
  • 学php做网站wordpress淘宝ued
  • wordpress 网站标题设置方法石油大学 网页设计与网站建设
  • 网站后台ftp在哪国际新闻界官网
  • 谷歌网站收录提交网站关键词seo费用