CPU的计算igbt驱动原理及电路图,进行计算的电路图

【实战经验】一种计算CPU使用率的方法及其实现原理 - 资料馆 - 意法半导体STM32/STM8技术社区
后使用快捷导航没有帐号?
查看: 2917|回复: 2
【实战经验】一种计算CPU使用率的方法及其实现原理
在线时间2018 小时
ST金币3254
TA的每日心情开心 09:20签到天数: 1 天[LV.1]初来乍到主题帖子精华
一种计算CPU使用率 的方法 及其实现原理
出于性能方面的考虑,有的时候,我们希望知道CPU的使用率为多少,进而判断此CPU的负载情况和对于当前运行环境是否足够“胜任”。本文将介绍一种计算CPU占有率的方法以及其实现原理。
2.1 算法简介
此算法是基于操作系统的,理论上不限于任何操作系统,只要有任务调度就可以。本文将以FreeRTOST为例来介绍本算法的使用方法。
本文所介绍的算法出处为随Cube库一起提供的,它在cube库中的位置如下图所示:
1.png (80.78 KB, 下载次数: 11)
05:33 上传
本文将以STM32F4为例,测试环境为STM3240G-EVAL评估板。
2.2 开始移植
本文以CubeF4内的示例代码工程STM32Cube_FW_F4_V1.10.0\Projects\STM324xG_EVAL\Applications\FreeRTOS\FreeRTOS_ThreadCreation为例,IDE使用IAR。
第一步:使用IAR打开FreeRTOS_ThreadCreation工程,将cpu_utils.c文件添加到工程,并在工程中添加对应头文件目录:
2.png (84.63 KB, 下载次数: 8)
05:33 上传
第二步:打开FreeRTOST的配置头文件FreeRTOSConfig.h修改宏configUSE_IDLE_HOOK和configUSE_TICK_HOOK的值为1: #define configUSE_PREEMPTION 1
3.png (152.96 KB, 下载次数: 10)
05:33 上传
第三步:继续在FreeRTOSConfig.h头文件的末尾处添加traceTASK_SWITCHED_IN与traceTASK_SWITCHED_OUT定义:
4.png (86.26 KB, 下载次数: 11)
05:33 上传
第四步:在main.h头文件中include “”cmsis_os.h“”
5.png (76.85 KB, 下载次数: 8)
05:33 上传
第五步: 修改工程属性,使编译过程不需要函数原型:
6.png (252.26 KB, 下载次数: 11)
05:33 上传
第六步:在工程中任何用户代码处都可以调用osGetCPUUsage()函数来获取当前CPU的使用率:
7.png (74.71 KB, 下载次数: 11)
05:33 上传
第七步:编译并运行测试
在调试状态下使用Live Watch窗口监控全部变量osCPU_Usage的值:
8.png (23.57 KB, 下载次数: 10)
05:33 上传
osCPU_Usage是在cpu_utils.c文件中定义的全局变量,表示当前CPU的使用率,是个动态值,由上图可以,CPU使用率的动态值为20%。实际在代码中是按第六步中调用osGetCPUUsage()函数来获取当前CPU的使用率的。
至此,算法使用方法介绍完毕。
3 算法实现原理分析
操作系统运行时是不断在不同的任务间进行切换,而驱动这一调度过程是通过系统tick来驱动的,即每产生一次系统tick则检查一下当前正在运行的任务的环境判断是否需要切换任务,即调度,如果需要,则触发PendSV,通过在PendSV中断调用vTaskSwitchContext()函数来实现任务的调度。而本文所要讲述的CPU使用率算法是通过在一定时间内(1000个时间片内),计算空闲任务所占用的时间片总量,100减去空闲任务所占百分比则为工作任务所占百分比,即CPU使用率。
9.png (38.1 KB, 下载次数: 9)
05:33 上传
此函数为空闲任务钩子函数,每次当切换到空闲任务时就会运行此钩子函数,它的作用就是记录当前空闲任务的句柄并保存到全局变量xIdleHandle。
10.png (73.85 KB, 下载次数: 11)
05:33 上传
此函数为操作系统的tick钩子函数,即每次产生系统tick中断都会进入到此钩子函数。此钩子函数实际上就是具体计算CPU使用率的算法了。osCPU_TotalIdleTime是一个全局变量,表示在1000个tick时间内空闲任务总共占用的时间片,CALCULATION_PERIOD宏的值为1000,即每1000个tick时间内重新计算一次CPU的使用率。
下面两个函数就是如何计算osCPU_TotalIdleTime的:
11.png (108.1 KB, 下载次数: 7)
05:33 上传
这两个函数是调度器钩子函数,在调度器进行任务切进和切出时分别回调,StartIdleMonitor()函数记录切换到空闲任务时的时间点,EndIdleMonitor()则在推出空闲任务时计算此次空闲任务花费多长时间,并累加到osCPU_TotalIdleTime,即空闲任务总共占用的时间片。
12.png (27.65 KB, 下载次数: 8)
05:33 上传
全局变量osCPU_Usage保存的就是CPU的使用率,它是在操作系统的tick钩子函数中每隔1000个tick就被重新计算一次。
通过此方法可以很好的用来评估STM23 MCU的运行性能。
文档下载地址:
实战经验汇总:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
在线时间10 小时
该用户从未签到主题帖子精华
初级会员, 积分 138, 距离下一级还需 62 积分
非常棒,下来试验下,谢谢
在线时间2 小时
该用户从未签到主题帖子精华
新手上路, 积分 40, 距离下一级还需 10 积分
谢楼主分享,下来试验下,谢谢
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp
站长推荐 /2
Tel: 3-8064
备案号: 苏ICP备号-2
|||意法半导体STM32/STM8技术社区
Powered by51CTO旗下网站
具有计算和控制能力:继电器如何成为CPU
究竟是如何设计的电路,具有计算和控制的智力?这一点也不高深。本系列文章从初中学的最简单的电路图说起,看看能不能从最初的有一个继电器的电路,画到一个简单的CPU。电路图用multisim12.0绘制,这样就可以看到效果了。
作者:BIT祝威来源:博客园| 17:57
究竟是如何设计的电路,具有计算和控制的智力?
这一点也不高深。本系列文章从初中学的最简单的电路图说起,看看能不能从最初的有一个继电器的电路,画到一个简单的CPU。电路图用multisim12.0绘制,这样就可以看到效果了。
(注:虽然现代计算机是用半导体材料制作芯片的,但是电路原理和继电器材料没有不同。本人愚钝,只理解了继电器,还没有研究电子管、晶体管这些器件的工作原理。而继电器原理简单,用作讲解数字电路原理再好不过。)
从电池、开关和继电器开始
上图左上角是一个很普通的电路,由电池、开关电流表和灯泡组成。这个是初中物理学过的。
上图右上角是对左上角电路的简单变形,用VCC代替了电池,用接地符号实现了回路。相当于把电池拆开来画了。电路功能是一样的。本文此后的电路图一般都采用VCC和接地表示电源。因为你会发现只有这样的画法能够让我们方便理解之后的电路图。
然后往下看,第三个电路图,那个圈圈里圈着个K的蓝色的东西,表示的是继电器。当继电器左侧有电流通过时,右侧的电路就断开;反之则联通。(对应地,也有那种左侧有电流通过时,右侧的电路就联通;反之则断开的继电器,稍后会用到)这个电路想让你知道的是,可以用继电器实现这样的功能:控制左侧的电路的通断,即可改变右侧电路的通断。换个方式说,就是左侧的电路通断情况决定了右侧的电路的通断情况。再往抽象了说,就是左侧电路代表了&输入&(Input)这个概念,右侧电路代表了&输出&(Output)这个概念。继电器则代表了&计算&(或者&算法&、&处理&等)(CPU)这个概念。硬件就是用这种电器设备的固有物理性质提供了最初的计算能力。
再往下看第四个电路图,它和第三个的区别就在于用VCC和接地符号代替了电池。初次看电路,我们有必要经历一次从电池到VCC和接地符号的过渡。以后的电路图,我们将直接使用VCC和接地符号,请务必在此处适应这样的画法。
然后是最下边这个电路。和第四个电路相比,它用一个&非门&的符号代替了&继电器、右侧电路电源和继电器的接地&这三个符号。也就是说一个&非门&实际上就是&继电器、右侧电路电源和继电器的接地&这三个东西的组合,而且画的时候省略了电源和接地符号。
之前在学校里学数字电路,我就是想不明白逻辑门的电源在哪儿,整个电路的通路在哪儿,所以一直学不好。现在有个这个电路图,感觉一切豁然开朗。
用继电器做个与门
刚刚我们用继电器做出了&非门&。可以看到只要用一个继电器就可以了。与门的电路如下图所示。
与门由两个继电器(这两个继电器用的都是跟做非门的继电器通断情形相反的那种)构成,只有当两个继电器左侧都通电时,右侧电路才能联通。这样就实现了&与&的功能。&与门&的符号是一个躺着封口的U形。
注:本文里我做的电路图片都是GIF格式的,你可以在浏览器里看到随着开关的开闭,输入和输出电路上的灯泡是如何变化的。每个图上都有()标识我的博客地址,不过每个GIF图的最后一帧都去掉了这个标识。这样,看到一帧没有标识的时候,就知道下一帧将是GIF图的第一帧了。
用继电器做个或门
&非门&、&与门&做出来了,&或门&也就不难理解了,直接上图大家体会吧。(导线交叉的地方,如果有个红点,表示是联通的,否则就是互不相干的)&或门&的符号像一个子弹。
用继电器做个异或门
&异或门&的功能是:左侧的两个输入电路一个联通另一个不联通时,右侧电路联通;否则右侧电路不联通。这次先画符号,大家可以先自己尝试用继电器画&异或门&,锻炼一下思维,然后再向下看答案。
答案揭晓!&异或门&的实现如下图所示。乍看很复杂,其实是有逻辑的。最右边的连个继电器其实是一个&或门&,最左边两个继电器是两个&非门&,中间两上两下共四个继电器,是两个&与门&。这样就好理解了。AB两个输入电路为A通、B不通的时候,整个&异或门&会通过下方的路线使灯泡亮;若A不通、B通,则会通过上方的线路使灯泡亮。其他情况灯泡都不会亮。
做一些看起来可用的东西
与或非异或逻辑门电路虽然重要,却离构造CPU相距较远,做出来似乎也没什么成就感。那么我们用这些过于基础的器件,做一些有用的东西吧!
为了表达方便,我们约定一下,逻辑门电路的输入(输出)线上有电流的时候,我们说输入为1(输出为1),否则就说输入为0(输出为0)。
振荡器能够不断地输出0、1、0、1、0、1、0、1&&这样的信号。这种东西虽然一时说不上有什么用,不过一定是有用到的时候的。振荡器做起来也简单得离谱。看下图所示电路。
把非门的输出端连到输入端上。当输出为1时,输入也就成了1,那么输出就得变成0;然后输入也跟着变成0,这样输出又变回了1。循环翻转无休无止。振荡器能翻转多快,就看继电器的反应有多快了。(现代计算机用晶体管代替了继电器,晶体管比继电器翻转速度快得多,所以能够得到的频率更高,计算机的速度更快。而且晶体管比继电器省电)话说multisim12仿真的翻转速度也够可以的,本人截图也费了不少劲。
顺便给一个用继电器做振荡器的实际应用的例子:上学的时候上下课的铃声就是用继电器做的振荡器完成的。0101信号用锤子敲打铁盔表达了出来。
刚刚约定了,用1和0表示电路的通断。电路只有通断这两种状态,所以计算机只用0和1来表示数,这就是二进制啊。关于二进制和十进制的内容别人写得太多了,我就不提啦。要计算两个多位二进制数的和,可以分别计算各个数位上的结果,而各个数位的计算方法又是相同的,即&被加数+加数=&和的值+进位的值&。这用逻辑门表示如下图。
A和B表示加数和被加数,C表示前一位计算的进位的值,C1灯泡表示本次计算的进位的值,S1灯泡表示本次计算的和的值。我找了半天,也没在multisim12里找到一位二进制数的加法器件的符号,大家看这个图就可以了。
要计算多位数,把单位数加法器首尾相连就可以了,如下图所示。这两张图是从《穿越计算机的迷雾》中拿来的。如果侵权,请告诉我,不然我就偷个懒不自己画啦。
学汇编的时候听过这个东西,&寄存&这个词让我感觉寄人篱下可怜巴巴的。寄存器的功能是把数据(约定里说的0和1,实际就是电路的通断状态)保存下来,以后还可以取出来用。寄存器这东西比之前的器件都复杂,需要一步一步来做。
先看下面这个电路,这是各种有存储功能的器件的基础。
上图展示的是在R和S开关都断开的情况下启动电路得到的结果。《穿越计算机的迷雾》里说这种情况下,哪个灯泡亮是不一定的,就看哪个逻辑门转的快了。不过我用multisim12仿真的时候,两个灯泡是在忽亮忽灭不停地闪。这可以说是非正常人类使用R-S触发器的情况。下面再看看正常人类使用R-S触发器的情况。
R-S触发器的R是Reset,意思是把Q灯泡重置为0,S是Set,意思是把Q灯泡置为1。可以看到,只闭合S,则Q亮NQ不亮;只闭合R,则Q不亮NQ亮;同时闭合RS,则Q和NQ都不亮;同时断开RS,则Q和NQ保持刚才的状态不变。
既然要保存数据,我们就要求只在希望保存某个数据的时候存进去,否则就不理他。所以我们给R-S触发器加一个新的输入作为控制端,只有控制端为1的时候才能保存新来的数据。这里也把RS端合并为一个D端,用一个非门实现了只能使R和S有且只有一个开关是闭合的(即要么Q灯泡变为1要么Q灯泡变为0)。
D触发器的符号我也没在multisim里找到,大家看这个吧。
上升沿D触发器
我们只希望在某一瞬间把数据存起来,而不是像D触发器那样,控制端为1的整个时间端都会保存新数据。(这样最安全)于是我们在D触发器基础上设计了上升沿D触发器。这个触发器只在控制端从0变为1的瞬间存储新数据。是不是很奇妙的设计?
上升沿D触发器使用了两个D触发器,再加一个非门,就OK了。平时,我们把要存储的数据(D开关)放好。然后,当控制端CP为断开时,图中上面那个D触发器是能够存数据的,但是下面那个存不了。就是说新数据已经到了两个D触发器之间的导线上。在控制端CP闭合的瞬间,上面的D触发器无法再存新数据了,而下面的D触发器可以存新数据了,那么它存的是哪个新数据?只能是刚刚在两个D触发器之间的导线上的数据了。这个瞬间之后,新数据无法通过上面的D触发器,自然也就无法保存了。
这次我终于在multisim12里找到了上升沿D触发器的符号。
乒乓触发器
这是个有点类似振荡器的器件。两者的区别在于,振荡器是自动地改变输出,乒乓触发器是在输入一个上升沿的时候改变输出。电路图如下所示。
可以看出,乒乓触发器其实就是把上升沿D触发器的非Q输出端接到了输入端。很显然每次存的新数据总是和输出信号相反。
乒乓触发器可以用来做计数器。计数器有这样的功能:每收到一个上升沿的信号,就增加1。例如下图所示的能统计二进制的0(即0到31)这32个数。计数器的每一位计数器件都是一个乒乓触发器。灯泡亮表示1,灯泡灭表示0。
利用上升沿D触发器还可以做&走马灯&。走马灯是每次都让前面一个灯泡亮的设备,最后一个灯泡亮过之后,又从第一个灯泡开始亮,循环往复。下图所示电路就是一个有5个灯泡循环走马的走马灯。为了在电路刚接通的时候让第一个灯亮起来,我加了两个开关S1和S2,大家可以分析一下怎么用S1和S2。这有助于加深体会上升沿D触发器的功能,并加速对更复杂器件的理解。
终于到这个小玩意了!
能保存5位二进制数的寄存器如下图所示。其实就是5个上升沿D触发器并列起来而已。
想保存数据的时候,调整好D0、D1、D2、D3、D4五个开关(实际应用的时候就可能是其他电路的输出导线了),然后断开再闭合一下控制端的开关S5即可,数据就保存到了5个上升沿D触发器的Q端。
我这里只画了保存5位数的寄存器,是因为再画就太大了,在word里图就看不清楚了。我们知道现在计算机的寄存器已经到32位或者64位了。那就是有32或64个并列的上升沿D触发器组成一个寄存器。我们也看到了一个上升沿D触发器需要几十个继电器(晶体管),那么一个寄存器就需要上千个继电器(晶体管)了。而CPU里包含的寄存器、加法器等运算器还有各种控制器,其包含的继电器(晶体管)数目上百万也就很好理解了。内存条里的内存也是用上升沿D触发器和一个门电路组成存储一位(一个bit,8个bit是一个字节)的存储结构的,其包含的继电器(晶体管)数目可想而知有多少。
到这里,做CPU需要的基础器件就差不多全了。不过再写下去就太长了,不利于理解和记忆。因此暂且中场休息,大家各自嘘嘘去,下一篇再继续介绍如何构造一个简单的CPU。
前面介绍的各自器件,可以用下表描述其继承关系。(索性把下一篇文章要介绍的器件也列出来了)
异或门电路
多个数的加法器
多bit存储器
多字存储器
有地址译码器的存储器
自大学始,学软件工程至今已有7年。一共找到这么几本好书:《穿越计算机的迷雾》、《Orange'S OS:一个操作系统的实现》、《CLR via C#》。
读《穿》就是为了弄明白一个问题:为什么计算机能够计算?《穿》在下面这张图中让我明白了我一直想不明白的问题。
读《Orange》也是为了弄明白一个问题:进程到底是什么?
读《CLR via C#》还是为了弄明白一个问题:.NET虚拟机里都有什么?
想知道的东西还有很多,抓紧一切机会去求索~
感谢我亲爱的媳妇贴心照顾和理解支持,我会好好努力赚钱买好吃的好玩的送你~
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
热点头条热点关注头条
24H热文一周话题本月最赞
讲师:226725人学习过
讲师:243829人学习过
讲师:30404人学习过
精选博文论坛热帖下载排行
本书译自Grails项目负责人Graeme Keith Rocher所著的“The Definitive Guide to Grails”一书,着重介绍了如何在Grails框架下使用Groovy语...
订阅51CTO邮刊CPU-运算方法_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
CPU-运算方法
&&组成原理
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩41页未读,
定制HR最喜欢的简历
你可能喜欢您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
第二章 计算机系统及计算原理.ppt 103页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
第二章 计算机系统及计算原理
你可能关注的文档:
··········
··········
大学计算机基础 * 信息表示与处理 ----西文字符 ASCII 码是美国信息交换标准代码(American Standard Code for Information Interchange)包括 0--9十个数字,大小写英文字母及专用符号等95种可打印字符。 Computer 101111
010 A的ASCII码值的十进制数为65 大学计算机基础 * 显示输出 打印输出 机内码向字形码转换 数 字 码 拼 音 码 字 形 码 机内码 输入码向机内码转换 字符代码化(输入码) 机内码:是计算机内部存储和处理信息的二进制代码 ASCII码为英文字符机内码 国标码为汉字机内码 信息表示与处理 ----汉字字符 大学计算机基础 * 信息表示与处理 ----国标码 我国于1981年颁布了国家标准GB2312,即信息交换用汉字编码字符集—基本集,是以94个可显示的ASCII码字符为基集,由两个字节构成一个汉字交换码,简称国标码。把收入的 6763 个汉字分为两级,第一级汉字3755个,属常用字,按汉语拼音字母顺序排列;第二级汉字3008个,属非常用字,按部首排列。 机内码:为区别ASCII码而将字节的最高位置1 1
国标码第二字节 1
国标码第一字节 ASCII码用一个字节表示,最高位为0 大学计算机基础 * 信息表示与处理 ----汉字字模库 点阵类型 点
阵 字节数 简易型 16×16 32 普及型 24×24 提高型 32×32 精密型 48×48 128 72 占用字节数==点阵列数/8×行数 288 表示汉字图形的代码称为汉字字形码,用于显示或打印汉字时产生字形。字形编码常用点阵码和矢量码。 大学计算机基础 * 信息表示与处理 ----多媒体数据 文字
位图图像是以屏幕上的像素点信息来存储图像 多媒体技术是以计算机技术为基础,能综合处理文字、声音、图形、图像、动画等多种媒体信息的技术。(是一门跨学科的综合性高新技术) 声音
矢量图像是由一组存储在计算机中,描述点、线、面等大小形状及其位置、维数的指令组成,而不是真正的图像。
视频是图像数据的一种,由若干有联系的图像数据连续播放而形成。
信息表示与处理 ----图像编码 图像的编码方式:图像的显示区域划分为均匀的网格状,如800?600=480000个单元格,每个单元格是一个像素,对每个像素进行编码,即可得到整个图像的编码。 图像中每个像素的编码通常由若干位二进制组成,可表达像素的亮度、色彩等丰富的信息,如24位真彩色图像,每个像素点用3个字节24个二进制编码表示,可以显示的颜色达224=种。 图像除对像素进行编码的表示方法之外,还有一种矢量方法。 信息表示与处理 ----声音编码 声音由动态、连续的声波组成,按照固定的时间间隔对声波进行采样,把这些采样值转化为二进制序列,便得到声音的数字化表示,如图所示。 采样时时间间隔越小,采样频率越高,数字化表示就越接近原声。音乐CD的采样频率为44100次/s,这样的声音质量已相当逼真了。 信息表示与处理 ----视频编码 视频是在时间上连续的动态图像,其数字化过程与音频相似,也是通过采样、量化、编码的方式完成,但因为视频数据量巨大,在编码的时候一般要进行数据压缩处理,其过程如图所示。 视频图像数据有关极强的关联性,也就存在大量的冗余信息,压缩就是去除数据中的冗余信息。 大学计算机基础 * 1. 在计算机内存中,存储1个汉字字符编码需用_____个字节。
D.8 2.若已知彩色显示器的分辨率为,如果它能显示16色,则显示存储器容量至少应为_____。
D.384MB 3.在微型计算机中,应用最普遍的字符编码是______。
B.ASCII码 C.汉字编码
D.国标码 4.在计算机系统中,有两种不同的图像编码方式,即位图编码(即像素编码)和______ 编码方式。 5.微机CPU的主要性能指标有______等。
B.前端总线频率(FSB)串行接口
D.核心数量
信息表示与处理 大学计算机基础 * ----进位计数制
什么是进位计数制?
有哪些常用的进位计数制?
每种进位计数制有什么规律? 计数及运算的方法 十进制,十二进制,六十进制,八进
正在加载中,请稍后...豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
具有计算和控制能力:继电器如何成为CPU(1)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 igbt驱动原理及电路图 的文章

 

随机推荐