performance - What does PCI (not PCI-E) bus speed of 66MHz really mean?

07
2014-07
  • Computernerd

    According to this article , the bus is the circuit that connects the motherboard . The faster the speed of the bus , the quicker data can be transferred . Bus speed is measured in MHz (Mega Hertz) and a bus speed of 66 MHZ means that that are 66 million cycles per second . Hertz means how the frequency of x every second

    For CPU , 66 MHz means 66 million instructions can be processed every second

    How about for Bus ?? How much data is terms of btyes is transferred for every cycle ??

  • Answers
  • ultrasawblade

    It's the speed at which the PCI protocol operates over the bus. It's the CLK signal in the illustration below.

    Wikipedia gives this formula for 32-bit 33MHz PCI, which is x2 for 32-bit 64MHz PCI:

    Peak transfer rate of 133 MB/s (133 megabytes per second) for 32-bit bus width (33.33 MHz × 32 bits ÷ 8 bits/byte = 133 MB/s)

    There is an address phase and a data phase in the protocol as you can see below, so not all of the 266MBytes/sec will be dedicated to actual work. There is a bit of overhead.

    From this:

    The basic transfer mechanism is a burst, composed of an address phase and one or more data phases.

    Typical read and write transfers are illustrated below:

    enter image description here

    This article mentions an effective throughput of 90MBytes/sec of the theoretical 133MBytes/sec due to the overhead. For 32-bit 66MHz it would be doubled.


  • Related Question

    performance - What service can hold CPU at lowest frequency possible when on battery load under Ubuntu?
  • vava

    When I'm running on battery even with "performance" frequency scaling governor, something regularly lowers CPU speed to it's lowest value. I don't really want that, my AC strip usually in another room so I don't really need to save power. How can I find what service doing that?

    laptop_mode is disabled so that's not it.

    Update: Looks like CPU being scaled down only if it is under load. If it is more or less idle, it could stay on any frequency pretty much forever, but once it gets loaded, it quickly jumps to it's lowest frequency.

    Another update: Something sets maximum frequency CPU can have.

    Ubuntu launchpad bug 242006


  • Related Answers
  • Mike Cooper

    Try and add the applet "CPU Frequency Scaling Monitor" to your gnome-bar. From there, you might be able to set the frequency manually, instead of relying on a governor.

  • swatkat

    Is it Intel Centrino based laptop? It could be "SpeedStep" at work! In any case, you can check out EmiFreq-applet to control/set CPU frequency.
    http://zzrough.free.fr/emifreq.php

  • caliban

    The services relating to power management (including but not limited to CPU throttling) are

    APMD - the Advance Power Management daemon
    ACPID - the Advanced Configuration and Power Interface daemon
    

    Also, your CPU might be hardware controlled - try finding out if your BIOS has settings for disabling CPU throttling (on a notebook, it might be impossible).

    P.S Don't do it - you run the risk of frying your notebook. Install the CPU Frequency Scaling Gnome applet and control it manually.

  • nagul

    Afaik, the Gnome applet uses cpufreq-selector. I think this is the command being executed under the hood when you use the applet:

    sudo cpufreq-selector --governor=performance --freq=2000

    You can run the command directly and see if you see any difference in behaviour.

    The cpufrequtils package provides utilities to help you manipulate the CPU scaling behaviour. Install the package and check your CPU options via cpufreq-info.

    $ cpufreq-info 
    cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
    Report errors and bugs to [email protected], please.
    analyzing CPU 0:
      driver: acpi-cpufreq
      CPUs which need to switch frequency at the same time: 0
      hardware limits: 1000 MHz - 1.67 GHz
      available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz
      available cpufreq governors: conservative, ondemand, userspace, powersave, performance
      current policy: frequency should be within 1000 MHz and 1.67 GHz.
                      The governor "ondemand" may decide which speed to use
                      within this range.
      current CPU frequency is 1000 MHz.
      cpufreq stats: 1.67 GHz:0.00%, 1.33 GHz:0.00%, 1000 MHz:0.01%  (3526)
    analyzing CPU 1:
      driver: acpi-cpufreq
      CPUs which need to switch frequency at the same time: 1
      hardware limits: 1000 MHz - 1.67 GHz
      available frequency steps: 1.67 GHz, 1.33 GHz, 1000 MHz
      available cpufreq governors: conservative, ondemand, userspace, powersave, performance
      current policy: frequency should be within 1000 MHz and 1.67 GHz.
                      The governor "ondemand" may decide which speed to use
                      within this range.
      current CPU frequency is 1000 MHz.
      cpufreq stats: 1.67 GHz:0.00%, 1.33 GHz:0.00%, 1000 MHz:0.01%  (3737)
    

    Next, try to set the minimum frequency a governor can use with the cpufreq-set command. This will hopefully stick better than the cpufreq-selector command.

    NAME
           cpufreq-set - A small tool which allows to modify cpufreq settings.
    
    SYNTAX
           cpufreq-set [options]
    
    DESCRIPTION
           cpufreq-set   allows  you  to  modify  cpufreq  settings  without  having  to  type  e.g.
           "/sys/devices/system/cpu/cpu0/cpufreq/scaling_set_speed" all the time.
    
    OPTIONS
           -c --cpu <CPU>
                  number of CPU where cpufreq settings shall be modified.
    
           -d --min <FREQ>
                  new minimum CPU frequency the governor may select.
    
           -u --max <FREQ>
                  new maximum CPU frequency the governor may select.
    
           -g --governor <GOV>
                  new cpufreq governor.
    
           -f --freq <FREQ>
                  specific frequency to be set. Requires userspace  governor  to  be  available  and
                  loaded.
    

    Note that I have no idea of the downsides of doing this. You may well be shortening your CPU life dramatically by having it constantly operate at the max frequency.

  • vava

    Turns out there was a setting in a BIOS I set and completely forgot about. It is called "SpeedStep management" or something similar, and it was set to "Optimize Battery" when on battery. Switching it to automatic completely cured the problem.