1. A functional unit control method comprising: using a performance monitoring unit connected to a processor, collecting performance data of a first type of functional unit in an execution stage of the processor's pipeline; determining a utilization level of the first type of functional unit based on the performance data; comparing the utilization level of the first type of functional unit with a first threshold; when a first condition has been satisfied, power gating at least one of the first type of functional unit in the processor; updating a configuration register that controls a switch governing power provided to the first functional unit; updating a lookup-table disposed in at least one of off-chip and on-chip memory, wherein the configuration register is updated using information from the look-up table during the context switch to limit a startup time required to profile a current process running on the processor; and, wherein the lookup-table stores specific needs values for a plurality of processes after each has been profiled to permit reuse of the specific needs values for corresponding processes during each context switch of the processor.