如何禁用SMI中断PC程序计数器,以增强PC实时性能?

CPU是计算机的控制中心主要由运算器、控制器、寄存器组和内部总线等部件组成。

控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成它是發布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作

主要功能有:从内存中取出一条指令,并指出下一条指令在内存中嘚位置;对指令进行译码或测试并产生相应的操作控制信号,以便启动规定的动作;指挥并控制CPU、内存和输入输出设备之间数据的流动

程序计数器(PC)是专用寄存器,具有寄存信息和计数两种功能又称为指令计数器,在程序开始执行前将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的初始内容即是程序第一条指令的地址执行指令时,CPU将自动修改PC的内容以便使其保持的总是将要执行的丅一条指令的地址。由于大多数指令都是按顺序执行的因此修改的过程通常只是简单地对PC加1。当遇到转移指令时后继指令的地址根据當前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出 的直接转移的地址得到

指令寄存器(IR)用来保存当前正在執行的指令。当执行一条指令时先把它从内存取到数据寄存器(DR)中,然后再传送至IR为了执行任何给定的指令,必须对操作码进行测试以便识别所要求的操作。指令译码器(ID)就是做这项工作的指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后即可向操作控制器发出具体操作的特定信号。

指令译码器(ID):对操作码进行测试以便识别所要求的操作。

地址寄存器(AR)用来保存当前CPU所访问的内存单元的地址由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息直到内存的读/写操作唍成为止。

为了保证程序指令能够连续地执行下去CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正起到这种作用所以通瑺又称为指令计数器。在程序开始执行前必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是從内存提取的第一条指令的地址当执行指令时,CPU将自动修改PC的内容即每执行一条指令PC增加一个量,这个量等于指令所含的字节数以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的所以修改的过程通常只是简单的对PC加1。

寄存器组昰CPU中的一个重要组成部分它是CPU内部的临时存储空间。寄存器既可以用来存放数据和地址也可以存放控制信息或CPU工作时的状态。在CPU中增加寄存器的数量可以使CPU把执行程序时所需的数据尽可能地放在寄存器中,从而减少访问内存的次数提高其运行速度。但是寄存器的數目也不能太多,除了增加成本外寄存器地址编码增加还会增加指令的长度。CPU中的寄存器通常分为存放数据的寄存器、存放地址的寄存器、存放控制信息的寄存器、存放状态信息的寄存器和其他寄存器等类型

程序计数器是存放指令地址的寄存器,其作用是:当程序顺序執行时每取出一条指令,程序计数器(PC)内容自动增加一个值指向下一条要取的指令。当程序出现转移时则将转移地址送入PC,然后由PC指姠新的指令地址

指令寄存器(IR)用于存放正在执行的指令,指令从内存取出后送入指令寄存器其操作码部分经指令译码器送微操作信号发苼器,其地址码部分指明参加运算的操作数的地址形成方式在指令执行过程中,指令寄存器中的内容保持不变

状态字寄存器(PSW)用于保存指令执行完成后产生的条件码,例如运算是否有溢出结果为正还是为负,是否有进位等此外,PSW还保存中断PC程序计数器和系统工作状态等信息

通用寄存器组是CPU中的一组工作寄存器,运算时用于暂存操作数或地址在程序中使用通用寄存器可以减少访问内存的次数,提高運算速度

在汇编语言程序中,程序员可以直接访问通用寄存器以存取数据可以访问状态字寄存器以获取有关数据处理结果的相关信息,可以通过相对程序计数器进行寻址但是不能访问指令寄存器。

指令中的寻址方式就是如何对指令中的地址字段进行解释以获得操作數的方法或 获得程序转移地址的方法。常用的寻址方式有:

?立即寻址操作数就包含在指令中。

?直接寻址操作数存放在内存单元中,指令中直接给出操作数所在存储单元的地址

?寄存器寻址。操作数存放在某一寄存器中指令中给出存放操作数的寄存器名。

?寄存器间接寻址操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中

?间接寻址。指令中给出操作数地址的地址

?相對寻址。指令地址码给出的是一个偏移量(可正可负)操作数地址等于本条 指令的地址加上该偏移量。

?变址寻址操作数地址等于变址寄存器的内容加偏移量。

版权声明:本文为博主原创文章未经博主允许不得转载。 /cjecho/article/details/

Rhealstone是系统实时性的测量基准之一Rhealstone方法对ERTOS中六个关键操作的时间量进行测量,并将它们的加权和称为Rhealstone数这六个時间量如下:

2.抢占时间(preemption time),即系统将控制从低优先级的任务转移到高优先级任务所花费的时间为了对任务进行抢占,系统必须首先識别引起高优先级任务就绪的事件比较两个任务的优先级,最后进行任务的切换所以抢占时间中包括了任务切换时间。

3.中断PC程序计數器延迟时间(interrupt latency time)指从中断PC程序计数器第一条指令所持续的时间间隔.它由四部分组成,即硬件延迟部分(通常可以忽略不计)、ERTOS的关中断PC程序计数器时间、处理器完成当前指令的时间以及中断PC程序计数器响应周期的时间

4.信号量混洗时间(semaphore shuffling time),指从一个任务释放信号量到另一個等待该信号量的任务被激活的时间延迟在ERTOS中,通常有许多任务同时竞争某一共享资源基于信号量的互斥访问保证了任一时刻只有一個任务能够访问公共资源。信号量混洗时间反映了与互斥有关的时间开销因此也是衡量ERTOS实时性能的一个重要指标。

5.死锁解除时间(deadlock breaking time)即系统解开处于死锁状态的多个任务所需花费的时间。死锁解除时间反映了RTOS解决死锁的算法的效率

6.数据包吞吐率(datagram throuShput time),指一个任务通过调用ERTOS嘚原语把数据传送到另一个任务去时,每秒可以传送的字节数

二、关键的性能指标分析
一个实时操作系统的实时性能的主要评测指标包括上下文切换时间,抢占时间中断PC程序计数器延迟时间,信号量混洗时间具体含义如下:

time),定义为系统在两个独立的、处于就绪态並且具有相同优先级的任务之间切换所需要的时间它包括三个部分,即保存当前任务上下文的时间、调度程序选中新任务的时间和恢复噺任务上下文的时间切换所需的时间主要取决于保存任务上下文所用的数据结构以及操作系统采用的调度算法的效率。产生任务切换的原因可以是资源可得信号量的获取等。任务切换是任一多任务系统中基本效率的测量点它是同步的,非抢占的实时控制软件实现了┅种基于同等优先级任务的时间片轮转算法。影响任务切换的因素有:主机CPU的结构指令集以及CPU特性。

任务切换过程增加了应用程序的额外负荷CPU的内部寄存器越多,额外负荷就越重任务切换所需要的时间取决于CPU有多少寄存器要入栈。实时内核的性能不应该以每秒钟能做哆少次任务切换来评价RTOS中通常是1微秒左右。

抢占时间即系统将控制权从低优先级的任务转移到高优先级任务所花费的时间为了对任务進行抢占,系统必须首先识别引起高优先级任务就绪的事件比较两个任务的优先级,最后进行任务的切换所以抢占时间中包括了任务切换时间。

它和任务切换有些类似但是抢占时间通常花费时间更长。这是因为执行中首先要确认唤醒事件并评估正在运行的任务和请求运行的任务的优先级高低,然后才决定是否切换任务实质上,所有的多处理任务可以在执行期间动态分配优先级所以,抢占时间也昰衡量实时性能的重要指标

中断PC程序计数器延迟时间是指从接收到中断PC程序计数器信号到操作系统做出响应,并完成进入中断PC程序计数器服务例程所需要的时间多任务操作系统中,中断PC程序计数器处理首先进入一个中断PC程序计数器服务的总控程序然后才进入驱动程序嘚ISR。

中断PC程序计数器延迟时间=最大关中断PC程序计数器时间+硬件开始处理中断PC程序计数器到开始执行中断PC程序计数器服务例程第一条指囹之间的时间

硬件开始处理中断PC程序计数器到开始执行中断PC程序计数器服务例程的第一条指令之间的时间由硬件决定,所以中断PC程序計数器延迟时间的长短主要取决于最大关中断PC程序计数器的时间。硬实时操作系统的关中断PC程序计数器时间通常是几微秒而Linux最坏可达几毫秒。

信号量混洗时间(semaphore shuffling time)是指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟。在RTOS中通常有许多任务同时竞争某┅共享资源,基于信号量的互斥访问保证了任一时刻只有一个任务能够访问公共资源信号量混洗时间反映了与互斥有关的时间开销,因此也是衡量ERTOS实时性能的一个重要指标

测试设计说明:测试项为协同式的任务调度时间,它是指具有相同优先级并且相互独立的两个就绪狀态的人物之间相互切换所花费的时间开销它主要有保存当前任务上下文的时间,调度程序选中新任务的时间和恢复新任务上下文的时間这三部分组成图3.2给出了两个任务切换过程的示意图
图3.1两个任务切换过程的示意图

这里假设测试任务用TASK表示,TASK[i]表示第i个正在运行的任务测试过程中为了能够尽量减少系统的误差,这里我们采取给系统中设置多个任务记为任务0到N-1。同时各个任务间的切换是从TASK[0]开始到TASK[1],這样一直切换下去最后再从TASK[N-1]切换到最开始的任务TASK[0]。

上述过程重复K次就可以得到K个任务切换时间。在测试过程中需要在任务的源代码Φ插入测试控制代码并记录时间。如下面代码1所示为任务TASK[0]插入测试控制代码后的伪代码执行流程

测试设计说明:测试项为抢占式的任务調度时间,大小取决于低优先级任务向高优先级任务切换所需要的时间开销系统在进行任务抢占的时候,先区分出任务优先级的大小找到优先级高的就绪事件,当发生任务切换时高优先级的任务先被响应,这里抢占时间就已经把任务切换时间包含在内

该测试中包含 5 個由高到低不同优先级的任务,各个任务在执行过程中会将自己的计数器加1在测试开始时,只有优先级最低的任务处于就绪其它任务嘟被挂起。优先级最低的任务先唤醒优先级次低的任务被抢占这样依次抢占下去后,最高优先级的任务获的CPU使用权后又将自己挂起次高优先级的任务也将自己挂起,到最后优先级最低任务又获得CPU 使用权一个新的循环又开始。图3.2 是测试3 图3.2 抢占式的任务调度测试

测试设计說明:定义中断PC程序计数器处理延迟时间是系统中断PC程序计数器发生到中断PC程序计数器服务程序中首条指令开始运行之间的间隔所花费的時间在测试过程中,为了能够测试系统中断PC程序计数器延迟时间的最差结果可以选择一些如系统调用等对中断PC程序计数器延迟有比较夶影响作用的一系列因素,并使中断PC程序计数器服务程序绑定其对应的中断PC程序计数器号最后在程序的适当位置插入测量控制代码。如丅面代码2所示为一个用于测量中断PC程序计数器延迟的测试负载的伪代码示例
代码说明:代码2中函数call_init是用于生成系统中断PC程序计数器,实際过程中通常也采用软中断PC程序计数器的方式这里我们假设Ta是系统中断PC程序计数器请求开始的时间,Tb是系统中断PC程序计数器服务程序被調用进行的时间从而Tb-Ta的时间差就是中断PC程序计数器延迟。

测试说明:IPC机制性能测试主要测试以下时间:创建一个同步/互斥对象的时间刪除一个同步/互斥对象的时间,获取一个同步/互斥对象的时间释放一个同步/互斥对象的时间。

获取/释放信号量通常指从释放信号量到等待该信号量被重新激活所需要的时间间隔测试过程中,设计一个任务TASK1该任务通过不断获取和释放信号量来模拟信号量的任务同步功能。具体测试流程如下图3.3所示
图3.3 信号量获取与释放流程

本文档关于关键性能指标分析部分摘抄自:

无线电装接高级理论复习资料 一、判断题 1、超高频振荡器应选用共基极振荡电路( √ ) 2、鉴相器实际上是一个相位比较电路。(√ ) 3、正向AGC和反向AGC要求静态工作点电流嘟应放在最大增益处(√ ) 4、正向AGC随着被控管Ic的增大而使增益上升。( X ) 5、印制板上元件的安插有卧式和立式(X ) 6、振荡电路中必须偠有正反馈。 (√ ) 7、电磁铁、变压器及电动机的铁芯是用硬磁材料制造的( X ) 8、无论串联型还是并联型开关电源都是以储能电感和负載串联还是并联而命名的。(√ ) 9、手工浸焊中的锡锅熔化焊料的温度应调在焊料熔点183℃左右( X) 10、用4位二进制数可编排成16种不同的代碼,既可代表数值又可代表文字符号(√ ) 11、正弦量必备的三个要素是振幅值、角频率和波长。( X) 12、放大器的各级地线只能分开接地以免各级之间地电流相互干扰。( X ) 13、放大电路的一大特点是交、直流并存的(√ ) 14、“位”在计算机中是表示信息的最小单位。(√ ) 15、锁相技术的作用是通过相位控制提高频率控制精度( √ ) 16、当鉴相器的输出误差电压UAFC=0就可断定两输入比较信号的频率相同。(X ) 17、分布参数适用于部件的尺寸远小于正常工作频率所对应的波长( X ) 18、当工作频率高到一定程度时,一小段导线就可作为电感、电容戓开路线、短路线等。( √ ) 19、超高频放大器和超高频振荡器相比首先要防止的是高频辐射问题(X ) 20、计算机系统中,硬件是软件的物質保障(√ ) 21、计算机上必不可少的输入设备是键盘,必不可少的输出设备是显示器( √ ) 22、每一台PC机都必须要安装操作系统。(√ ) 23、操作系统就是MS-DOS( X) 24、计算机病毒具有潜在性、传播性、破坏性。(√ ) 25、在PC机里ROM中的信息会因断电而消失(X ) 26、PC机的CPU是由累加器嘚控制器组成的。( X ) 27、外存储器又分为软盘存储器和硬盘存储器(√ ) 28、PC机上运行的语言程序,归根到底都是由0和1组成的代码( √ ) 29、延迟AGC是指输入信号在时间上的延迟。( X ) 30、DOS把存在大磁盘中的任何信息都称为文件( √ ) 31、启动DOS就是把计算机的控制权交给DOS操作系統,用户只能在它们的管理下使用计算机(√ ) 32、汉字操作系统必须要有输入汉字的方法,并有存储、处理及输出汉字的能力(√ ) 33、计算机的系统软件主要包括操作系统、语言翻译系统、数据库管理系统。(√ ) 34、键盘、鼠标、扫描仪都是计算机的输入设备( √) 35、将源程序编译成机器语言的目标程序,然后执行、生成并保存目标程序是高级语言编译执行方式。( √ ) 二、单项选择题 1、正向AGC晶體管随着IC的变大β值( B ) A.变大 B.变小 C.不变 D.无法确定 2、鉴相器的误差输出电压UAFC=0,则说明( D ) A.只有同步输入脉冲 B.只有比较脉冲 C.两输入脉冲相位基本相等 D.经上都有可能 3、根据基尔霍夫第一定律,流进某个节点的电流之和(C )流出该节点的电流之和 A.大于 B 小于 C 恒等于 4、要使锁相环路从失锁状态进入锁定状态必须使固有频差( A)。 A.小于捕捉带宽 B.大于捕捉带宽 C等于捕捉带宽 D. 其它 5、在滤波电路中( C)二极管承受导通冲击电流小。 A.电容滤波 B.纯电阻 C.电感滤波 6、可用集中参数分析的波段是( D ) A.毫米波 B.厘米波 C.分米波 D.米波 7、高頻放大器工作频率越高则(D )。 A.增益和带宽都大 B.增益和带宽都小 C.增益变大带宽变小 D.增益变小,带宽变大 8、在单相桥式整流电路Φ所用整流二极管的数量是(D )。 A.一只 B.二只 C.三只 D.四只 9、为减小放大器中各变压器之间的相互干扰应将它们的铁芯以(B )方式排列。 A.楿互平行 B.相互垂直 C.相互成45°角 10、一个完整的计算机系统由( A )组成等 A.硬件系统和软件系统 B.CPU、输入设备、输出设备、存储器 C.键盤、主机、CRT和磁盘 D.打印机、鼠标、主机

我要回帖

更多关于 中断PC程序计数器 的文章

 

随机推荐