快捷搜索:

LUT法能否能够加快程序执行的速度

简介

本文从电气工程师的不雅点 (POV) 启程,重点钻研了给定处置惩罚器的实施和若何在各类实施要领下进行权衡。软件工程师关于法度榜样履行中的多线程、并行处置惩罚或者再设置设置设备摆设摆设的不雅点不在本文的斟酌范围之列。法度榜样履行的主要方面包括速率、精度、面市光阴 (TM) 和存储器使用等。别的,编码标准、IP 掩护、便携性和文档等其他身分仅影响将来项目的 TM,对今朝的法度榜样没有影响。是以,在本文的案例钻研中只斟酌主要的方面。在抱负的环境下,我们盼望能够把法度榜样履行的每个方面都是最优秀的,但实际的系统并非完美,必要有所取舍。本文将探究在法度榜样实施中权衡应用公式法和 LUT 的环境,并探究各方面下体现最佳的措施。实施措施的选择将取决于利用的详细要求。

LUT 是存储在系统存储器中的预期结果范围列表或者阵列。应用测得的输入值作为索引,就可以在履行中获得输出值,从而节约处置惩罚光阴。LUT 可以经由过程多种要领建立。大年夜多半工程师除了必要具备工程领域内的各项技巧技能,也同时还必要具备“Excel 工程设计”技能,是以,本文将采纳 Microsoft Excel 表格创建 LUT。将预期的输入范围输入公式,即可在 LUT在获得对应的输出值。与履行传统的数学公式比拟,应用 LUT 系统具有多种上风。

履行速率

Accuracy

在完备的系统中,输入和预期输出之间的延迟来自硬件、软件、中断和逻辑驱动延迟。数据处置惩罚和阐发也会影响法度榜样中的软件延迟。数据处置惩罚取决于实施指令所必要的时钟周期数量。简单来说,与 LUT 措施造访存储器中的值比拟,公式法应用的乘、除或者其他繁杂的数学函数耗用的 CPU 周期更多。只管可以采纳移位法和加减法算法来完成乘除运算,前进公式法的速率,但在大年夜多半环境下对简化等式及提升效率和精度的感化微乎其微。是以,LUT 法一样平常都邑快于公式法。

精度

在精度方面,公式法不停优于 LUT 法。因为我们采纳的是电气工程师的视角,我们不妨在履行措施和电气旌旗灯号之间进行一下类比。公式法类似于继续光阴模拟旌旗灯号,而 LUT 则类似于量化的离散旌旗灯号。无限样本的 LUT 可以达到公式法的精度。LUT 的精度取决于斟酌的范围和范围中的样本数量。是以,根据要求的精度和范围,LUT 的存储器使用是可扩展的。

存储器使用

公式法中的存储器应用主要取决于用于等式履行的代码空间大年夜小和支持这些等式的数学库的大年夜小。假如采纳单浮点函数则必要添加全部库,存储器耗用会显明增长。在 LUT 法下,存储器耗用取决于用来解析 LUT 得到输出值的代码大年夜小和LUT 的大年夜小。一样平常而言,实施公式和解析 LUT 的代码空间区别不大年夜,但库对存储器的占用显明高于 LUT 的大年夜小。LUT 的大年夜小是由要求的精度抉择的,并可经由过程插值法进行优化。是以,在利用要求的公式对照繁杂,输入范围又较小的环境下,LUT 对存储器的使用效率更高。

面市光阴

因为早已开拓完毕,并在大年夜多半系统上获得过验证,因而在直接采纳公式的环境下,面市光阴会更快。这样既能达到要求的精度,又能节省设计、调试和测试系统的光阴。在某些项目中,存储器可能不够以满意公式法应用的数学库的要求。在这种环境下,则必要采纳分段线性或 LUT 法。LUT 法的 TM 取决于多种身分,如利用繁杂性、工程师技能、可用于构建 LUT 的软件对象等。是以,这项参数无法以量化的要领进行对照。不过,因为与详细的系统/平台无关,公式法的实施速率可能会快一些。

本文就应在什么地方应用 LUT 取代公式的两个示例及其涉及的权衡进行了探究。所探究的案例中包孕法度榜样履行的不合重点方面。第一个例子是含有繁杂的数学等式的温度感应利用。由于采纳公式法来得到温度值耗用了大年夜量的存储器,留给根据测得的温度值增加其他功能的存储空间则变得更少了。平日,温度感应是完备的感应器系统的一部分,是以存储器优化在该利用中异常紧张。第二个例子是节制系统算法。在该例中,为避免系统不稳定环境的呈现,履行速率是最必要斟酌的。

案例钻研1:温度丈量

因其阻值随温度而发生变更,热敏电阻平日被用来丈量温度。采纳负温度系数(NTC) 的热敏电阻测得的温度 (Tk) 与测得的阻抗 (RT) 呈反比关系,可表达为等式1 中的 Steinhart-Hart 公式。

[1]

等式中的 A、B、C 均为常数。为测得阻抗变更,可斟酌图 1 所示的系统。在此图中,VT 为热敏电阻两真个电压,Vref 为恒定参考电压。ADC 的输出是 VT 点模拟电压的数字形式。固件根据 ADC 测得的值,采纳各类实施规划谋略出响应的温度值。

.

图 1:采纳热敏电阻的温度感应系统方框图

图中翰墨:thermistor:热敏电阻

firmware data processing:固件数据处置惩罚

temperature value 温度值

公式法:

在公式法中,热敏电阻的阻值应用标准的分压方程式谋略,如等式 2 所示。

[2]

这里的 VGND 和 Vref 可在法度榜样中定义为常数,也可丈量得出。将丈量得出的值代入等式 2,可以打消因参考电压变更、ADC 增益和偏置变更引起的偏差。在本文中,假定参考电压、ADC 是抱负的,且Vref 和 VGND均为常数。在谋略出阻值后,就可以应用等式 1 谋略出温度值。

由于等式 1 不是简单线性等式,在采纳公式法的环境下,有效的存储器使用和履行的速率都很紧张。这个等式必须加入较大年夜的数学库。是否由于精度而吸收较大年夜的存储器占用和较慢的反映速率,取决于利用的必要。在医疗或太空设备中,精度异常紧张,而在家用电器中,精度并不是最紧张的身分,比如我们在安保系统、炉具或者轿车中所见到的温度丈量。在这些利用中,假如外部温度是 70 度,而感应系统显示 71 度,并不会导致致命的结果。破费者也不乐意化更多的钱购买功能更强大年夜的芯片来得到这种精度。

针对热敏电阻的 LUT

热敏电阻的电压会不停对应一个独一的阻值,也便是独一的温度值。例如,假如 NTC 热敏电阻在 25 摄氏度的阻值为 RT=10 KΩ,参考电阻为 Rref=10 KΩ 时,则意味着 25 摄氏度时的电压 VT=Vref/2。在温度为 50 摄氏度时,RT=5 KΩ,不过 Rref 和 Vref 维持不变,故VT=Vref/3。是以,VT=Vref/3 就意味着 T=50 °C,而VT=Vref/2 意味着 T=25 °C。这样就可以根据测得电压对应的温度值应用等式体例一张表格,存储在存储器中作为 LUT。然后应用测得的电压值作为索引来解析LUT,进而得到对应的温度值。抉择温度步长的LUT 的大年夜小会影响丈量的精度。假如要求的温度范围为 –40 ~ 125 °C,则在步长为 1 °C 的环境下必要有 166 条款的 LUT,假如是 0.5 °C,就必要 332 条款的 LUT。是以在精度、丈量范围和存储器应用方面存在大年夜量的权衡空间。在公式法下,不管要求的精度和丈量范围若何,存储器应用都是固定的。

对照

包孕 LUT 法和公式法的项目都在赛普拉斯软件 PSoC Designer 中借助 CY8C27x43 芯片获得了实施。LUT 的大年夜小如前所述,为 166 条样本。LUT 法应用的 ROM 为1,000 字节,而在公式法中为 3,780 字节。假如项目在带有 4K 存储器的芯片上实施,则剩下的闪存对任何繁杂系统均不足应用。

为对照履行速率,分手运行了两种措施。如图 2 所示,每种措施运行完毕后,都邑触发一个引脚。

图 2:热敏电阻感应系统的履行光阴

对应履行公式法耗用光阴的旌旗灯号电平较低,对应履行 LUT 法耗用光阴的旌旗灯号电平较高。如图所示,LUT 法耗用的光阴为 8µs,公式法耗用的光阴为 468 µs。虽然速率方面的对照取决于处置惩罚器时钟速度和用于实施的 CPU 时钟周期,但本案例大年夜致阐清楚明了两者之间的差异。显而易见,在本利用中,LUT 法可以将履行光阴低落 50 倍。

案例钻研2:PID 系统

比例-积分-微分 (PID) 系统是最常见的反馈节制系统(如稳压器等)。采纳专门的硬件,可以得到最快的节制环路相应光阴。不过,假如采纳微处置惩罚器来实施 PID 系统,可以支持更多调试和调剂 (adaptation) 功能。本案例钻研的两种实施措施均采纳 SoC。图 3 所示的是 PID 系统的实施方框图。

图 3:PID 系统方框图

图中翰墨:plant:设备

error:偏差

firmware data processing:固件数据处置惩罚

output:输出

PID 稳压器系统具有必要的置位点 Vset 和实际输出电压 Vout。必要的旌旗灯号和输出旌旗灯号之间的差便是偏差值e。节制环路然后运用等式 3 所示的闭合环路系统等式来让偏差值为 0:[3]这里的 Kp、Ki和Kd 均为常数。

公式法

在 PID 系统的软件实施规划中,积分/差分是经由过程对上一偏差值和新的偏差值进行累加/累减来实现的。这些值然后与等式 4 所示的响应常数相乘。

[4]

这里的 ErrorI 是添加到现有偏差值中的上一累加偏差值,ErrorD 是从现有偏差值中减去的上一累减偏差值。得出的新值存储为上一偏差值并用于下一个履行周期。因为等式中有乘法运算,是以履行速率较慢。

LUT 法

在 LUT 法中,法度榜样不应用乘法,其应用的是存储在表中的预老师成的偏差值与常数相乘的积。测得的偏差值被用作在对应的表中得到输出的索引。是以,偏差值仅限于整数值而非浮点数,是以也就限定了精度。采纳这种措施的指令如等式 5 所示:

[5]

这里 TableP、TableI和 TableD分手为包孕 KP*Error、Ki*ErrorI和 Kd*ErrorD值的 LUT。

对照

PID 系统的实施是采纳赛普拉斯软件 PSoC Designer 在 CY8C27x43 芯片中进行的。为实施 LUT 法,应用了各存有 60 个值的三张表,应用的 ROM 为 1,150 字节。对同一利用,公式法需应用 1,800 字节的 RAM。两种措施的履行光阴如图 4 所示。

图 4:PID 系统的履行光阴

上图波形与图 2 相似,高电平旌旗灯号对应的是 LUT 法的履行速率,低电平旌旗灯号对应的是公式法的履行速率。显而易见,履行速率提升了 4 倍。

结论:

本次探究及案例钻研显示,LUT 法确凿能够加快法度榜样履行的速率。对付详细的利用,法度榜样履行中还有其他必要在选择实施措施之前加以权衡的问题。终极选择哪种措施则取决于利用的规范。不过,假如旨在加快履行速率并削减存储器占用,则化费光阴构建 LUT 也是在所不惜的。

您可能还会对下面的文章感兴趣: