泛泰a870:如何查看泛泰A870高通骁龙600(APQ8064T)的CPU体质(A850/A860也可参考)

一、科普:

A850/A860使用的CPU是高通APQ8064,而A870则是骁龙600系列的APQ8064T(其实就是8064的马甲,只是主频更高一点而已)。

此系列的CPU分为不同的体质等级,一共有7个等级,分别用数字0,1,2,3,4,5,6表示,其中数字越大越好。

关于等级划分的猜测:

首先,制造出来的CPU品质肯定有高有低,任何工厂制造出来的产品不可能品质都一样。

所以就造成某些CPU可以在较低的电压下达到较高的频率,而另一些CPU只能在较高的电压下才能稳定运行于同一频率,那么就可以将其体质划分等级,以便于测试和管理,体质越好的CPU,同频率下电压更低(也就是功耗更小,更省电,也更容易超频)。

其次,体质分布曲线肯定符合自然界的正态分布规律,所以必然是一条中间高两头低的曲线,也就是体质为3的CPU概率最高,然后体质2和体质4次之,体质1和体质5再次之,最少的是体质0(最差)和体质6(最好)

如果你买到了罕见的体质6的手机,那么CPU这部分肯定最省电(因为所需电压最低)且超频潜力最高(加些电压可以达到更高频率),为什么只是说CPU部分呢,因为手机里还有其它部分,比如液晶屏,基带芯片,wifi芯片,摄像头等,这些部件也肯定有品质差异,只是没有像CPU这么明确的划分而已,不可能所有优秀的零部件都集中在同一台手机里,所以每台手机的耗电水平不会波动太大。

但不论如何,品质6的CPU的超频潜力最大是毋庸置疑的。


二、如何查看手机CPU的体质:

1.安装手机的官方驱动程序,并且打开“开发人员选项”和“USB调试”,连接数据线。

2.确保手机已root。

3.长按手机电源键选择重启手机

4.等手机重启并进入桌面后,在PC端的CMD命令行中执行adb shell

5.输入su,并在手机中授予权限。

6.cat /proc/kmsg > /sdcard/kmsg.txt,然后cmd中光标会停住,此时在cmd窗口下按PC组合键Ctrl+C以结束。

7.在内置存储根目录找到kmsg.txt并拷贝出来,正常的话,大概60KB大小。

这个文件是内核启动日志,用记事本打开后搜索PVS或acpuclk,可以找到如下信息(这就是我的A870L的真实信息):

<6>[    0.435455] acpuclk-8064 acpuclk-8064: SPEED BIN: 1
<6>[    0.435485] acpuclk-8064 acpuclk-8064: ACPU PVS: 1

SPEED BIN:代表CPU类型,APQ8064是0,而APQ8064T的是1。A870是骁龙600,所以确实是1。而A850和A860必须为0。

ACPU PVS:代表CPU的“体质”的等级划分。我的A870L是1,处于倒数第二等,体质较差,正常来讲,大部分手机应该为3。如果你的是6或5,那么恭喜你获得了省电cpu。

还有一种划分方式,是以slow,nominal,fast和faster四种来划分的,slow 等级的运行电压最高,faster运行电压最低,和数字划分差不多,这里就不多说了。


三、接下来说说A870的CPU电压:

先看看A870内核源代码中,关于各体质等级的CPU电压定义:

注意:不同型号手机即使CPU相同,内核中关于电压的定义也不一定相同。

static struct acpu_level freq_tbl_PVS0[] __initdata = {{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 950000, AVS(0x70001F) },{ 1, { 486000, HFPLL, 2, 0x24 }, L2(3), 950000, AVS(0x0) },{ 1, { 594000, HFPLL, 1, 0x16 }, L2(3), 975000, AVS(0x0) },{ 1, { 702000, HFPLL, 1, 0x1A }, L2(3), 1000000, AVS(0x0) },{ 1, { 810000, HFPLL, 1, 0x1E }, L2(3), 1025000, AVS(0x0) },{ 1, { 918000, HFPLL, 1, 0x22 }, L2(3), 1050000, AVS(0x0) },{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(3), 1075000, AVS(0x0) },{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(9), 1100000, AVS(0x70000D) },{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(9), 1125000, AVS(0x0) },{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(9), 1150000, AVS(0x0) },{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(9), 1175000, AVS(0x0) },{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(9), 1200000, AVS(0x0) },{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(9), 1225000, AVS(0x0) },{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(9), 1250000, AVS(0x70000B) },{ 0, { 0 } }};static struct acpu_level freq_tbl_PVS1[] __initdata = {{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 925000, AVS(0x70001F) },{ 1, { 486000, HFPLL, 2, 0x24 }, L2(3), 925000, AVS(0x0) },{ 1, { 594000, HFPLL, 1, 0x16 }, L2(3), 950000, AVS(0x0) },{ 1, { 702000, HFPLL, 1, 0x1A }, L2(3), 975000, AVS(0x0) },{ 1, { 810000, HFPLL, 1, 0x1E }, L2(3), 1000000, AVS(0x0) },{ 1, { 918000, HFPLL, 1, 0x22 }, L2(3), 1025000, AVS(0x0) },{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(3), 1050000, AVS(0x0) },{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(9), 1075000, AVS(0x70000D) },{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(9), 1100000, AVS(0x0) },{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(9), 1125000, AVS(0x0) },{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(9), 1150000, AVS(0x0) },{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(9), 1175000, AVS(0x0) },{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(9), 1200000, AVS(0x0) },{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(9), 1225000, AVS(0x70000B) },{ 0, { 0 } }};static struct acpu_level freq_tbl_PVS2[] __initdata = {{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000, AVS(0x70001F) },{ 1, { 486000, HFPLL, 2, 0x24 }, L2(3), 900000, AVS(0x0) },{ 1, { 594000, HFPLL, 1, 0x16 }, L2(3), 925000, AVS(0x0) },{ 1, { 702000, HFPLL, 1, 0x1A }, L2(3), 950000, AVS(0x0) },{ 1, { 810000, HFPLL, 1, 0x1E }, L2(3), 975000, AVS(0x0) },{ 1, { 918000, HFPLL, 1, 0x22 }, L2(3), 1000000, AVS(0x0) },{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(3), 1025000, AVS(0x0) },{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(9), 1050000, AVS(0x70000D) },{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(9), 1075000, AVS(0x0) },{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(9), 1100000, AVS(0x0) },{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(9), 1125000, AVS(0x0) },{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(9), 1150000, AVS(0x0) },{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(9), 1175000, AVS(0x0) },{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(9), 1200000, AVS(0x70000B) },{ 0, { 0 } }};static struct acpu_level freq_tbl_PVS3[] __initdata = {{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 900000, AVS(0x70001F) },{ 1, { 486000, HFPLL, 2, 0x24 }, L2(3), 900000, AVS(0x0) },{ 1, { 594000, HFPLL, 1, 0x16 }, L2(3), 900000, AVS(0x0) },{ 1, { 702000, HFPLL, 1, 0x1A }, L2(3), 925000, AVS(0x0) },{ 1, { 810000, HFPLL, 1, 0x1E }, L2(3), 950000, AVS(0x0) },{ 1, { 918000, HFPLL, 1, 0x22 }, L2(3), 975000, AVS(0x0) },{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(3), 1000000, AVS(0x0) },{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(9), 1025000, AVS(0x70000D) },{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(9), 1050000, AVS(0x0) },{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(9), 1075000, AVS(0x0) },{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(9), 1100000, AVS(0x0) },{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(9), 1125000, AVS(0x0) },{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(9), 1150000, AVS(0x0) },{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(9), 1175000, AVS(0x70000B) },{ 0, { 0 } }};static struct acpu_level freq_tbl_PVS4[] __initdata = {{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000, AVS(0x70001F) },{ 1, { 486000, HFPLL, 2, 0x24 }, L2(3), 875000, AVS(0x0) },{ 1, { 594000, HFPLL, 1, 0x16 }, L2(3), 875000, AVS(0x0) },{ 1, { 702000, HFPLL, 1, 0x1A }, L2(3), 900000, AVS(0x0) },{ 1, { 810000, HFPLL, 1, 0x1E }, L2(3), 925000, AVS(0x0) },{ 1, { 918000, HFPLL, 1, 0x22 }, L2(3), 950000, AVS(0x0) },{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(3), 975000, AVS(0x0) },{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(9), 1000000, AVS(0x70000D) },{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(9), 1025000, AVS(0x0) },{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(9), 1050000, AVS(0x0) },{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(9), 1075000, AVS(0x0) },{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(9), 1100000, AVS(0x0) },{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(9), 1125000, AVS(0x0) },{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(9), 1150000, AVS(0x70000B) },{ 0, { 0 } }};static struct acpu_level freq_tbl_PVS5[] __initdata = {{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 875000, AVS(0x70001F) },{ 1, { 486000, HFPLL, 2, 0x24 }, L2(3), 875000, AVS(0x0) },{ 1, { 594000, HFPLL, 1, 0x16 }, L2(3), 875000, AVS(0x0) },{ 1, { 702000, HFPLL, 1, 0x1A }, L2(3), 875000, AVS(0x0) },{ 1, { 810000, HFPLL, 1, 0x1E }, L2(3), 900000, AVS(0x0) },{ 1, { 918000, HFPLL, 1, 0x22 }, L2(3), 925000, AVS(0x0) },{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(3), 950000, AVS(0x0) },{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(9), 975000, AVS(0x70000D) },{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(9), 1000000, AVS(0x0) },{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(9), 1025000, AVS(0x0) },{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(9), 1050000, AVS(0x0) },{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(9), 1075000, AVS(0x0) },{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(9), 1100000, AVS(0x0) },{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(9), 1125000, AVS(0x70000B) },{ 0, { 0 } }};static struct acpu_level freq_tbl_PVS6[] __initdata = {{ 1, { 384000, PLL_8, 0, 0x00 }, L2(0), 850000, AVS(0x70001F) },{ 1, { 486000, HFPLL, 2, 0x24 }, L2(3), 850000, AVS(0x0) },{ 1, { 594000, HFPLL, 1, 0x16 }, L2(3), 850000, AVS(0x0) },{ 1, { 702000, HFPLL, 1, 0x1A }, L2(3), 850000, AVS(0x0) },{ 1, { 810000, HFPLL, 1, 0x1E }, L2(3), 875000, AVS(0x0) },{ 1, { 918000, HFPLL, 1, 0x22 }, L2(3), 900000, AVS(0x0) },{ 1, { 1026000, HFPLL, 1, 0x26 }, L2(3), 925000, AVS(0x0) },{ 1, { 1134000, HFPLL, 1, 0x2A }, L2(9), 950000, AVS(0x70000D) },{ 1, { 1242000, HFPLL, 1, 0x2E }, L2(9), 975000, AVS(0x0) },{ 1, { 1350000, HFPLL, 1, 0x32 }, L2(9), 1000000, AVS(0x0) },{ 1, { 1458000, HFPLL, 1, 0x36 }, L2(9), 1025000, AVS(0x0) },{ 1, { 1566000, HFPLL, 1, 0x3A }, L2(9), 1050000, AVS(0x0) },{ 1, { 1674000, HFPLL, 1, 0x3E }, L2(9), 1075000, AVS(0x0) },{ 1, { 1728000, HFPLL, 1, 0x40 }, L2(9), 1100000, AVS(0x70000B) },{ 0, { 0 } }};

PVS0~6的7个Struct即为对应7种体质CPU的频率电压表

就以每个表的第一行和倒数第二行作为例子来分析:

同样是384MHz的频率,PSV0需要0.95v电压,而PVS6只要0.85v电压。

同样是1728MHz的频率,PVS0需要1.25v,而PVS6只需要1.1V。

所以同样的手机,有些CPU较费电,有些CPU较省电。

但放心,实际使用效果并不会差异太大,买到什么样的手机,就看人品了。

相关推荐

相关文章