CPU

From A110 Wiki
Jump to: navigation, search

The A110 uses a low-power VIA C7-M ULV CPU at 1 GHz, with 64 KB instruction L1 cache, 64 KB data L1 cache, and 128 KB L2 cache.

The CPU does not support AMD64 long mode. It does support CPU frequency scaling, though.

Contents

Detailed information

$ cat /proc/cpuinfo
processor	 : 0
vendor_id	 : CentaurHauls
cpu family	 : 6
model		 : 13
model name	 : VIA C7-M Processor 1000MHz
stepping	 : 0
cpu MHz	 : 997.541
cache size	 : 128 KB
fdiv_bug	 : no
hlt_bug	 : no
f00f_bug	 : no
coma_bug	 : no
fpu		 : yes
fpu_exception	 : yes
cpuid level	 : 1
wp		 : yes
flags		 : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge cmov pat clflush acpi mmx fxsr sse sse2 tm nx up pni est tm2 xtpr rng rng_en ace ace_en ace2 ace2_en phe phe_en pmm pmm_en
bogomips	 : 1997.06
clflush size	 : 64
power management:

CPU frequency scaling with Linux >= 2.6.25

As the CPU has the est feature flag, it supports CPU frequency scaling using the e_powersaver kernel module.

The latest 2.6.25 mainline kernel already contains the e_powersaver module which allows CPU frequency scaling on the A110.

CPU frequency scaling with Linux <= 2.6.24

There's a backport for older kernels supplied by Christian Rothländer. It's working with the Ubuntu kernel delivered with the first batch of the A110s.

$ wget http://www.a110wiki.de/wiki/images/6/65/Cpufreq-2.6.25_backport.tar.bz2
$ tar xfvj Cpufreq-2.6.25_backport.tar.bz2
$ cd cpufreq
$ make

The final kernel module is called e_powersaver.ko.

How to use the CPU frequency scaling

$ modprobe e_powersaver
eps: Detected VIA Model D C7-M
eps: Current voltage = 796mV
eps: Current multiplier = 10
eps: Highest voltage = 796mV
eps: Highest multiplier = 10
eps: Lowest voltage = 796mV
eps: Lowest multiplier = 4
$ cpufreq-info
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
  driver: e_powersaver
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 399 MHz - 998 MHz
  available frequency steps: 399 MHz, 499 MHz, 599 MHz, 698 MHz, 798 MHz, 898 MHz, 998 MHz
  available cpufreq governors: powersave, ondemand, conservative, userspace, performance
  current policy: frequency should be within 399 MHz and 998 MHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 998 MHz (asserted by call to hardware).

You can change the frequency of the CPU directly using cpufreq-set --freq, or (recommended) by setting one of the so-called governors.

To get the most performance out of the CPU:

$ cpufreq-set -g performance

In order to reduce power consumption (the battery will last longer):

$ cpufreq-set -g powersave

Or, alternatively, you can use the ondemand governor, which adapts the frequency dynamically as needed:

$ cpufreq-set -g ondemand
Personal tools