1 Reply Latest reply on Jan 10, 2011 11:58 AM by tedk

    Frequency and voltage control

    ziyad

      I am working on testing some behavior of some applications on specific cores and need to have control over frequency and voltage.

      Currently we can only control the frequency by a divider that divides the frequency to smaller values very rapidly (divider is an int 2 - 6).

       

      Is there a way we can control the frequency by adding/subtracting steps instead of dividing the main frequency?

       

      Also, the voltage control gives us the ability to add 0.1 V steps to 0.7V with a max of 6 steps. Is there a way we can get a wider range of voltages and/or a smaller step size?

       

      Thanks,

      Ziyad

        • 1. Re: Frequency and voltage control
          tedk

          You have to be very careful when you don't use the RCCE API to modify the voltage and frequency. You can put the chip into a state that causes actual hardware damage. The RCCE API protects you from that possibility.

           

          You can look at the RCCE source code and see what it does.  When you change the voltage, you are restricted to changing the voltage in a voltage domain. But you can get a finer voltage control by setting bits 7:0 in the voltage control register. Bits 7:0 are called the VID, and it has 256 values. Each step is 6.25 mv. But it will max out ... it won't let you set a voltage higher than 1.3v. Look at the EAS (Section 5) for more information.

           

          What you can do with the frequency (programatically) is also described in the EAS, Section 4.

           

          There is the possibility of some additional frequency control through the JTAG interface. When you train, you get the following choices ... for tile, mesh, and memory frequency.

          Please select from the following possibilities:
          INFO: (0) Tile533_Mesh800_DDR800
          INFO: (1) Tile800_Mesh1600_DDR1066
          INFO: (2) Tile800_Mesh1600_DDR800
          INFO: (3) Tile800_Mesh800_DDR1066
          INFO: (4) Tile800_Mesh800_DDR800
          INFO: (others) Abort!
          Make your selection:

          The choices come from the files in /opt/sccKit/current/setting. You can add other choices to the sccBmc list by writing your own *.rlb files. When you do this, you are controlling frequency through the JTAG interface. This is not something I'd recommend doing. In fact you can't do it yourself on a data center system; you'd have to have your own MCPC/Rocky Lake system.