ABSTRACT

CONTENTS 8.1 Introduction : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 190

8.1.1 Power consumption : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 190 8.1.2 Process variability : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 191 8.1.3 Yield : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 192

8.2 Power management techniques : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 193 8.2.1 Leakage power management : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 194 8.2.2 Dynamic power management : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 194

8.2.2.1 DVFS architecture overview : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 197 8.2.2.2 DC/DC converter : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 200 8.2.2.3 Clock generator : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 201 8.2.2.4 Sensing the computational activity : : : : : : : : : : : : : : : : : : : : : : : : 202

8.3 Controlling uncertainty and handling process variability : : : : : : : : : : : : : : : : : : : : 203 8.4 Data synchronization in GALS system : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 207

8.4.1 GALS wrapper with pausible clocking : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 208 8.4.2 FIFO solutions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 209 8.4.3 Boundary synchronization : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 210

8.5 Conclusions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 212 8.6 Glossary : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 213

In recent years, there has been tremendous growth in silicon integration capacity. It is now possible to have complex systems (e.g., large multiprocessor, memories, IPs, complex clock trees, I/O control units) implemented on a single chip. On the other hand, the design of such complex System-on-Chips (SoCs) is now constrained by many parameters such as speed, energy and robustness to process variability. In fact, controlling the speed and the energy in a complex SoC requires specific power supplies and several clock generators. Furthermore, with the technology shrink, the be-

havior of such systems that embed several microprocessors and a complex Networkon-Chip (NoC) is no more predictable. In order to reach an acceptable fabrication yield, the clock synchronization based on the assumption that the critical path is shorter than the clock period is impracticable with large SoCs. As a result, the complex SoCs are divided into multiple clock domains. These SoCs are called Globally Asynchronous Locally Synchronous (GALS) circuits. The GALS circuits provide a promising solution for implementing the large and complex SoCs.