Advanced Clocking and Power Management Techniques for Microprocessors