您好!
我正在使用 AM572X EVM。 根据以下命令、可用频率似乎只有3个。 那么、AM572x 系列处理器是否无法在较低频率下运行? 还是矩阵 UI 内核的限制? 如果我要更改内核或闪存、像 debian 这样的不同发行版是否可以在用户空间中使用其他频率模式?
root@am57xx-EVM:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1000000 1176000 1500000
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我正在使用 AM572X EVM。 根据以下命令、可用频率似乎只有3个。 那么、AM572x 系列处理器是否无法在较低频率下运行? 还是矩阵 UI 内核的限制? 如果我要更改内核或闪存、像 debian 这样的不同发行版是否可以在用户空间中使用其他频率模式?
root@am57xx-EVM:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1000000 1176000 1500000
您好、Kameswar、
[引用 USER="KameswarRao Vaddina]root@am57xx-EVM:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1000000 1176000 1500000[/报价]
默认情况下、我们只有这3个频率可用于 AM57x Cortex-A15 MPU。 您是否希望看到所有可用频率都具有1Hz 偏移? 请告诉我您确切需要设置哪个 OPP 和哪个频率。
[引用 USER="KameswarRao Vaddina">我正在使用矩阵 Linux。 是因为这个原因吗?[/引述]
否 矩阵 GUI 与 DVFS 可用频率没有什么共同之处。
此致、
帕维尔
>>默认情况下,AM57x Cortex-A15 MPU 只有这3个可用频率。 您是否希望看到所有可用频率都具有1Hz 偏移? 请告诉我您确切需要设置哪个 OPP 和哪个频率。
我希望它在100MHz 偏移下达到200MHz、一直达到1.5G 的最大值。 我的意思是、我需要200MHz 到1.5GHz 的所有可用频率、具有100MHz 偏移。 同时、我还想改变运行点。 我在改变频率和 OPP 的同时监控功耗。
[引用 USER="KameswarRao Vaddina">我希望它能以100MHz 的偏移达到200MHz、最高可达1.5G。 我的意思是、我需要200MHz 到1.5GHz 的所有可用频率、具有100MHz 偏移。 同时、我还想改变运行点。 我在改变频率和 OPP 的同时监控功耗。 [/报价]
在这种情况下、您应使用所需的所有频率更新 opp 表、因为此处只有3个默认频率。
processors.wiki.ti.com/.../Linux_Core_Power_Management_User's_Guide_(v4.4)
linux-4.4.4.3.32/arch/arm/boot/dts/dra7.dtsi
对于 OPP 开关、应根据频率开关自动执行此操作。 您可以对监控每个频率的电压进行仔细检查:
查看电流电压:
Target# cat /sys/class/regulator/regulator.3/microvolts
有关 AM57x 功耗的信息、我们在以下 wiki 页面中提供:
此致、
帕维尔
非常感谢 Pavel 的详细答复。
>>在这种情况下,您应使用所需的所有频率更新 opp 表,因为此处只有3个默认频率。
1) 1)那么、我必须更新 opp 表并使用"create-sdcard.sh"脚本重新刷写 sdcard? 对吧?
2) 2)关于更新 OPP 表:我应该使用哪些相应的电压值? 我是指"op-microvolT"场。 如果电压也未根据频率进行调节、则功率值将完全不准确/相关。
您能给我一个 OPP 表示例吗? 以下内容是否正确? 不过、我使用的电压值相同。 此外、不确定"opp-supported"十六进制字段和 opp-suspend。
opp_200@200000000{
opp-Hz =/bits/64 <200000000>;
op-microvolt =<1060000 850000 1150000>;
opp-supported-HW =<0xFF 0x01>;
opp-suspend;
};
opp_300@300000000{
opp-Hz =/bits/64 <300000000>;
op-microvolt =<1060000 850000 1150000>;
opp-supported-HW =<0xFF 0x01>;
opp-suspend;
};
1)因此,我必须更新 opp 表,并使用"create-sdcard.sh"脚本重新刷写 sdcard? 对吗?[/报价]
您必须更新 DTS 文件中的 opp 表并重新刷新 SD 卡中的结果 DTB 文件。 您可以手动执行此操作、也可以使用 create-sdcard.sh 脚本执行此操作
2)关于更新 OPP 表:我应该使用哪些相应的电压值?
从200MHz 到1000MHz、您应该使用对应于 OPP_NOM 的电压
在1100MHz 至1176MHz 范围内、您应该使用与 OPP_OD 相对应的电压
从1200MHz 到1500MHz、您应该使用对应于 OPP_HIGH 的电压
[报价用户="kames">您能否向我提供 OPP 表的示例? 以下内容是否正确?
[引用 user="kames"]
opp_200@200000000{
opp-Hz =/bits/64 <200000000>;
op-microvolt =<1060000 850000 1150000>;
opp-supported-HW =<0xFF 0x01>;
opp-suspend;
};
opp_300@300000000{
opp-Hz =/bits/64 <300000000>;
op-microvolt =<1060000 850000 1150000>;
opp-supported-HW =<0xFF 0x01>;
opp-suspend;
};
[/报价]
我认为这些应该是:
opp_nom@200000000{
opp-Hz =/bits/64 <200000000>;
op-microvolt =<1060000 850000 1150000>;
opp-supported-HW =<0xFF 0x01>;
opp-suspend;
};
opp_nom@300000000{
opp-Hz =/bits/64 <300000000>;
op-microvolt =<1060000 850000 1150000>;
opp-supported-HW =<0xFF 0x01>;
opp-suspend;
};
您好、Pavel、
非常感谢您的回复。 我更新了 DTS 文件并将生成的 DTB 文件刷写到 sdcard 中。 我现在可以访问较低的频率。 DTS 文件和我绘制的曲线(基准=位反转)位于以下链接中。 我使用 NI DAQ 测量 CPU 功耗、方法是测量电阻器 R34 (VDD_MPU、0.01欧姆)上的压降。
drive.google.com/open
我的问题:
1) 1)功耗似乎在从1176MHz 到1200MHz 之间发生了重大跳变。 我了解电压已增加。 但对于现代 SoC 平台、您是否看到这种巨大的突然跳跃是否可行或正常? 这样做的动机是什么?
2) 2)仅为了进行实验、平台是否允许我在整个频率范围(100MHz 至1500MHz)内保持相同的电压(标称值或高电平)? 这意味着、我可以在100MHz 至1500MHz 范围内保持"op-microvolt =<1210000 950000 1250000>"相同吗?
3) 3)我是否正确地假设对于"op-microvolt =<1210000 950000 1250000>"、这些数字表示目标频率、最小频率和最大频率?
卡姆斯、
[引用 user="kames">我更新了 DTS 文件并将生成的 DTB 文件刷写到 sdcard 中。 我现在可以访问较低的频率。[/quot]
您能否为您使用的每个频率(100MHz、200MHz、300MHz 等)提供以下寄存器值:
CM_CLKSEL_DPLL_MPU/0x4A00516C
CM_DIV_M2_DPLL_MPU/0x4A005170
如何验证您使用的每个频率的电压值是否正确? 您是否监控/sys/class/regulator/regulator.3/microvolts?
[引用 USER="Kames]1)功耗似乎在1176MHz 到1200MHz 之间有一个重大的飞跃。 我了解电压已增加。 但对于现代 SoC 平台、您是否看到这种巨大的突然跳跃是否可行或正常? 这样做的动机是什么?[/引述]
我会检查这个、并在我有东西时返回给您。
[报价 USER="Kames]2)仅为了实验、平台是否允许我在整个频率范围(从100MHz 到1500MHz)内保持相同的电压(标称值或高电平)? 这意味着、我能否在100MHz 至1500MHz 范围内保持"op-microvolt =<1210000 950000 1250000>"相同?
是的。 您可以对 opp_od 和 opp_nom 频率使用 opp_high 电压电平。
[引用 USER="Kames]3)我是否正确地假设对于"opp-microvolt =<1210000 950000 1250000>"、这些数字表示目标频率、最小频率和最大频率?
是的。 如需更多信息、请参阅 AM572x DM、表5-7和表注(5)
此致、
帕维尔
[引用 USER="Kames]1)功耗似乎在1176MHz 到1200MHz 之间有一个重大的飞跃。 我了解电压已增加。 但对于现代 SoC 平台、您是否看到这种巨大的突然跳跃是否可行或正常? 这样做的动机是什么?[/引述]
功耗也取决于用例。 例如、在 OS 空闲用例中、MPU OPP_OD 的功耗为2433.7mW、MPU OPP_HIGH 的功耗为2679.1mW。 在 Dhrystone 单核使用案例中、在 MPU OPP_OD 时、我们具有3514.6mW;在 MPU OPP_HIGH 时、我们具有4194.7mW。
请参阅以下 wiki 页面:
>>您能否为您使用的每个频率(100MHz、200MHz、300MHz 等)提供以下寄存器值:
>> CM_CLKSEL_DPLL_MPU/0x4A00516C
>> CM_DIV_M2_DPLL_MPU/0x4A005170
很抱歉、如何从命令行(或 shell 脚本中)检查这些寄存器的值?
>>如何验证您使用的每个频率的电压值是否正确? 您是否监控/sys/class/regulator/regulator.3/microvolts?
我没有验证它。 我刚才验证了频率的变化、并且运行基准所花费的时间也与频率相符。 但是、就在我运行脚本时执行"watch -n 0.1 cat /sys/class/regulator/regulator.3/microvolts "时、它会显示一个常数3300000。 您能否确认我们必须监控的稳压器是否为稳压器3?
我还应该补充的是、在将基准与任务集固定在一起之后、我只在一个内核(CPU0)上运行基准测试。 第二个 CPU 暂时不执行任何操作。
此外、当我监控"cat /sys/class/regulator/regulator.5/microvolts 时、我会得到以下内容。
100M - 1G:980000
1G - 1.176G:1090000
1.2G - 1.5G:1230000
[报价用户="Kames">>>您能否为您使用的每个频率(100MHz、200MHz、300MHz 等)提供以下寄存器值:
>> CM_CLKSEL_DPLL_MPU/0x4A00516C
>> CM_DIV_M2_DPLL_MPU/0x4A005170
很抱歉、如何从命令行(或 shell 脚本中)检查这些寄存器的值? [/报价]
您可以使用 devmem2用户空间工具。
[引用 user="kames">但现在、当我运行脚本时执行"watch -n 0.1 cat /sys/class/regulator/regulator.3/microvolts "时、它会显示一个常数3300000。 您能否确认我们必须监控的稳压器是否为稳压器3?
我会检查并返回给您。
[引用 user="kames">我还应添加一个内容、即在将基准与任务集固定在一起后、我仅在一个内核(CPU0)上运行基准测试。 第二个 CPU 暂时不执行任何操作。
检查"Dhrystone - Single Core"(Dhrystone -单核)-在此测量中、Dhrystone 基准测试应用正在单个 Coretex-A15内核上运行。 在 Dhrystone 单核使用案例中、在 MPU OPP_OD 时、我们具有3514.6mW;在 MPU OPP_HIGH 时、我们具有4194.7mW
此致、
帕维尔
[引用 user="kames"]
此外、当我监控"cat /sys/class/regulator/regulator.5/microvolts 时、我会得到以下内容。
100M - 1G:980000
1G - 1.176G:1090000
1.2G - 1.5G:1230000
[/报价]
是的、看起来应该使用调节器5。 在我的 AM572x TI EVM 上、我有:
1000MHz:1010000 (1.01V)
1176MHz:1030000 (1.03V)
1500Mhz:1190000 (1.19V)
此致、
帕维尔
非常感谢 Pavel 的确认。 我今天做了一个实验、将整个频率范围的电压固定为 OPP_HIGH。 功率曲线没有像我之前发送的曲线那样具有巨大的跳变(从1176MHz 到1200MHz)。
可以在能量图中看到一个有趣的现象。 我正在调查 CPU 的最小能量点的存在(之前的文献也存在;请参阅下面的链接)。 也就是说、存在一个频率点、其中程序运行的 CPU 能耗最小。 这意味着、如果性能不是问题、那么我们可以在最小的点运行 CPU 以节省能源。 如您在我在下面的链接中绘制的曲线中所见(能耗图的 U 形部分)
drive.google.com/.../0BzoIenLKgsD5RjFRTzYyQjRoYTA
我将较低频率下的能耗增加归因于漏电功率的增加。 你同意吗? 除了泄漏功率之外、还有其他因素吗?