THÈSE
Pour obtenir le grade de
DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE
Spécialité : Micro et Nano Electronique
Arrêté ministériel : 7 août 2006
Présentée par
Hatem Mohamed Zakaria Radwan
Thèse dirigée par Laurent Fesquet et
codirigée par Marc Renaudin
préparée au sein du Laboratoire TIMA
dans l'École Doctorale « Electronique, Electrotechnique,
Automatique et Traitement du Signal »
Architecture Asynchrone pour L’Efficacité
Energétique et L’Amélioration du
Rendement en Fabrication dans les
Technologies Décananométriques:
Application à un Système sur Puce MultiCœurs
Thèse soutenue publiquement le « 24 Février 2011 »,
devant le jury composé de :
M. Michel ROBERT
Professeur des Universités, LIRMM, Président
M. Olivier SENTIEYS
Professeur des Universités, ENSSAT, Rapporteur
M. Habib MEHREZ
Professeur des Universités, Laboratoire LIP6, Rapporteur
M. Laurent Fesquet
Maitre de Conférences, TIMA, Directeur de thèse
M. Marc Renaudin
Directeur Technique, TI EMPO, Co-encadrant
M. Carlos Canudas-de-Wit
Directeur de Recherche, GIPSA-Lab, CNRS, Membre
M. Mario Diaz Nava
Directeur Technique, STMicroelectronics, Invité
Asynchronous Architecture for Power
Efficiency and Yield Enhancement in the
Decananometric Technologies:
Application to a Multi-Core System-on-Chip
By
Hatem Zakaria
France, 2011
To …
My dear Wife and lovely child, Ali
My Parents, Sisters and Brother
My lovely country Egypt
ACKNOWLEDGMENT
This thesis arose in part out of years of research that has been done within the
Concurrent Integrated Systems group (CIS) of the TIMA laboratory in Grenoble. By that
time, I have worked with a great number of people whose contribution in assorted ways
to the research and the making of the thesis deserved special mention. It is a pleasure to
convey my gratitude to them all in my humble acknowledgment.
In the first place I would like to record my gratitude to Dr. Laurent Fesquet for his
supervision, advice, and guidance from the very early stage of this research as well as
giving me extraordinary experiences throughout the work. Above all and the most
needed, he provided me unflinching encouragement and support in various ways. His
truly scientist intuition has exceptionally enriched my growth as a scientist want to be.
I greatly indebted to my co-supervisor Dr. Marc Renaudin for all his precious
support, consistent encouragement and valuable guidance thought the start of my thesis. I
owe an enormous debt of gratitude to him, for the confidence that he accorded to me by
accepting to participate in the supervision of my thesis.
I am grateful to the thesis jury members for their precious time which they have
scarified for me. Thanks to Prof. Michel Robert, for the interest he gave to this work by
agreeing to be the president of my thesis jury. I am also thankful to the thesis reviewers,
Prof. Olivier Sentieys and Prof. Habib Mehrez, the interest they have shown towards my
work has brought an outside perspective on enriching the subject. Their constructive
suggestions on the thesis are really appreciated for me. I am grateful that in the midst of
their activities, they accepted these tasks. My thanks also go to Dr. Carlos Canudas-deWit and Dr. Mario Diaz Nava, for their commitment to take part in my jury committee.
My deep regards for Dr. Gilles Sicard, for his precious friendly attitude and his
immediate help for many administrative issues. I am also grateful to Mr. Alexandre
Chagoya, the responsible of service design and test at CIME Nanotech. He always
provided me with the needed help and software tools for my work. I also thank all the
Hatem Zakaria
Université de Grenoble
administrative staff of the TIMA laboratory and the EEATS, who have always been
gentle with me and helped me to get things done very smoothly.
Collective and individual acknowledgments are also owed to my colleagues in
CIS group whose present somehow perpetually refreshed, helpful, and memorable. Many
thanks go in particular to Eslam and Oussama for their friendship, brotherhood and
continual support in work and life. Thanks to Taha, Hakim, Franck and Gregory for the
great discussions and open minded attitude. I cannot finish without thanking also Khaled,
Saeed, Jeremie, Florant, Alexandre, Hawraa, Olivier, Mathieu, David and Rodrigo.
Special thanks also go to all my colleagues in the ARAVIS Minalogic project, those from
INRIA, CEA-Leti and STMicroelectronics for their appreciated discussions and valuable
remarks all over my PhD work.
My warm special thanks to my family, for their consideration of my research
abroad. Without their encouragement, inseparable support and prayers it would have been
impossible for me to finish this work. My Father, in the first place is the person who put
the fundament my learning character, showing me the joy of intellectual pursuit ever
since I was a child. My Mother is the one who sincerely raised me with her caring and
gently love. My sisters and brother, who inspired my life with the real meaning of the
family. My dearest and lovely kid, Ali who is the real source of happiness in my life, he
actually suffered a lot because of my busyness.
Words fail me to express my appreciation to my wonderful and beautiful wife,
whose prayers, dedication, love, continual support and persistent confidence in me, has
taken the load off my shoulder. I owe her for being unselfishly let her intelligence,
passions, and ambitions collide with mine.
All gratitude to my dearest teachers and professors those did great efforts to drive
me up to the scientific level which I have now. Special thanks for Dr. Abdel Aziz ElBassiouni who always keep encouraging and supporting me to do the best.
Hatem ZAKARIA
Grenoble, France
February 2011
Hatem Zakaria
Université de Grenoble
Abstract
Continuous scaling of CMOS technology push circuit designs towards multi-core
complex SoCs. Unfortunately with the nanometric technologies, the integrated system
performances after fabrication will not be fully predictable. Indeed, the process variations
really become huge at the chip scale. Therefore the design of such complex SoCs in the
nanoscale technologies is now constrained by many parameters such as the energy
consumption and the robustness to process variability. This implies the need of efficient
algorithms and built-in circuitry able to adapt the system behavior to the workload
variations and, at the same time, to cope with the parameter variations which cannot be
predicted or accurately modeled at design time. In this context, this thesis work addresses
the design of Globally Asynchronous Locally Synchronous “GALS” based Network-onChip “NoC” architectures in the upcoming CMOS technologies. A novel methodology to
dynamically control the speed of different voltage-frequency NoC islands according to
the process variability impact on each domain is proposed. This control technique can
improve the performances, the energy consumption, and the yield of future SoC
architectures in a synergistic manner. The control methodology is based on the design of
an asynchronous programmable self-timed ring where the controller takes into account
the dynamic workload and the process variability effects. The controller especially
considers the operating frequency limit which does not exceed the maximum locally
allowed value for a given clock domain. With such an approach, it is no more required to
separately guaranty the timing performances for each node at design time. This
drastically relaxes the fabrication constraints and helps the yield enhancement.
Hatem Zakaria
Université de Grenoble
Table of Contents
List of Figures
xi
List of Tables
xv
Chapter 1.
1
1.1
1.2
Introduction
Context and Motivations …………………………………………………
Thesis Outline ……………………………………………………………
1
3
Part-I
GALS Paradigm
5
Chapter 2.
Asynchronous Circuits
7
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
Introduction …...………………………………………………………….
Asynchronous Circuits Principles ………………………………………..
Handshaking Protocols …………………………………………………..
The Muller’s C-Element …………………………………………………
The Muller’s Pipeline ……………………………………………………
Classification of Asynchronous Circuits ………………………………...
Pipeline and Rings: Token Game ………………………………………..
Conclusions ………………………………………………………………
Chapter 3.
Self Timed Rings
21
3.1 Introduction ………………………………………………………………
3.2 Ring Structure ……………………………………………………………
3.2.1 Ring Connectivity …..……………………………………………….
3.2.2 Definitions and Notations …………………………………………...
3.3 Ring Modeling …………………………………………………………...
3.3.1 The Charlie Effect …………………………………………………...
3.3.2 The Drafting Effect ………………………………………………….
3.3.3 The Charlie Model …………………………………………………..
3.3.4 Timed VHDL Models ……………………………………………….
3.4 Oscillation Frequency Calculation of Self-Timed Rings ………………...
3.5 Programmable Self-Timed Rings ………………………………………..
3.5.1 PSTR Architecture …………………………………………………..
3.5.2 PSTR Design Flow ………………………………………………….
3.6 Programmable Stoppable Oscillator (PSO) ……………………………...
3.7 Implementation and Results ……………………………………………...
Hatem Zakaria
7
9
11
13
14
16
17
19
Université de Grenoble
21
22
22
23
24
25
26
26
29
30
34
34
37
40
46
vii
3.7.1 Analog Results ………………………………………………………
3.7.2 Frequency vs. Supply Voltage ………………………………………
3.7.3 Sensitivity to Process Variability ……………………………………
3.8 Conclusions ………………………………………………………………
Chapter 4.
PSTR Case Study in a GALS System
2.1 Introduction ………………………………………………………………
2.2 Multi Clock Challenges and GALS Scheme …………………………….
2.3 Data Synchronization in GALS Systems ………………………………...
2.3.1 GALS Wrapper with Pausible Clocking …………………………….
2.3.2 FIFO Solutions ………………………………………………………
2.3.3 Boundary Synchronization ………………………………………….
2.4 Application of PSTR for GALS Data Synchronization ………………….
2.4.1 Circuit Design ……………………………………………………….
2.4.2 Simulation Results …………………………………………………..
2.4.3 Multipoint Interconnection Schemes ………………………………..
2.5 Conclusions ………………………………………………………………
47
48
49
50
53
53
53
55
57
58
59
60
61
65
66
70
Part-II
CMOS Power Reduction and Design for Yield
71
Chapter 5.
Power Saving Techniques
73
5.1 Introduction ………………………………………………………………
5.2 Sources of CMOS Power Consumption …………………………………
5.2.1 Leakage Power……………………………………………………….
5.2.2 Switching Power …………………………………………………….
5.2.3 Short-Circuit Power ………………………………………………....
5.3 Static Power Reduction Techniques ……………………………………..
5.3.1 Multi-Threshold ……………………………………………………..
5.3.2 Body Biasing ………………………………………………………..
5.3.3 Power Gating ………………………………………………………..
5.4 Dynamic Power Reduction Techniques ………………………………….
5.4.1 Clock Gating ………………………………………………………...
5.4.2 Dynamic Voltage and Frequency Scaling …………………………..
5.5 Classification of DVFS Algorithms ……………………………………...
5.5.1 Intra-Task DVFS ……………………………………………………
5.5.2 Inter-Task DVFS ……………………………………………………
5.6 DVFS Architecture Overview …………………………………………...
5.7 Conclusions ………………………………………………………………
Hatem Zakaria
Université de Grenoble
73
73
75
76
76
77
77
78
79
81
82
84
87
87
88
92
94
viii
Chapter 6.
Controlling Uncertainty and Handling the Process Variability
6.1 Introduction ………………………………………………………………
6.2 Related Work Contributions ……………………………………………..
6.3 Process Variability Robust NoC Architecture …………………………...
6.3.1 Overall Architecture ………………………………………………...
6.3.2 Sensing the Computational Activity ………………………………...
6.3.3 DC-DC Converter …………………………………………………...
6.3.4 Frequency Controller ………………………………………………..
6.4 NoC Control Method …………………………………………….............
6.4.1 Fast Predictive Control ……………………………………………...
6.4.2 Tracking Efficiency …………………………………………………
6.4.3 Digital Controller Algorithm ………………………………………..
6.5 Simulation Results ……………………………………………………….
6.5.1 Load Modeling ………………………………………………………
6.5.2 Workload Tracking Efficiency ……………………………………...
6.5.3 Robustness to Process Variability …………………………………..
6.6 Conclusions ………………………………………………………………
Chapter 7.
Designing Process Variability Robust DVFS Control
7.1 Introduction ………………………………………………………………
7.2 Case Study: MIPS R2000 ………………………………………………..
7.3 Analysis of MIPS R2000 Critical Path Delay Variations ………………..
7.4 PSTR Programmability to Manage MIPS R2000 Variations ……………
7.4.1 PSTR 45nm CMOS Delay Parameters ……………………………...
7.4.2 PSTR Architecture …………………………………………………..
7.4.3 PSTR Configuration ………………………………………………...
7.5 Digital Controller Design ………………………………………………...
7.5.1 Overall Architecture ………………………………………………...
7.5.2 Speed Set Point Update ……………………………………………..
7.5.3 Voltage and Frequency Selection …………………………………...
7.6 Simulation Results ……………………………………………………….
7.7 Conclusions ………………………………………………………………
Chapter 8.
Conclusion and Perspectives
95
95
97
98
102
105
106
106
107
110
112
114
116
116
117
118
119
121
121
122
123
126
126
127
128
129
129
131
133
135
143
145
Publications
149
References
151
Hatem Zakaria
Université de Grenoble
ix
LIST OF FIGURES
Figure
Title
Page
2.1
Basic Structure of a Synchronous Circuit.
9
2.2
Basic Structure of an Asynchronous Circuit.
10
2.3
A Two-Phase Protocol.
12
2.4
A Four-Phase Protocol.
13
2.5
The Muller’s C-element: Symbol and Truth Table.
14
2.6
The Muller Pipeline.
15
2.7
Gates and Wires Delay Model for a Circuit Fragment.
16
2.8
Basic Elements of an Asynchronous Circuit.
17
2.9
A Possible State of a Five Stage Pipeline.
18
2.10
A Sequence of Data Transfers in a Ring.
19
3.1
A Ring Stage.
23
3.2
A Self-Timed Ring.
23
3.3
Modes of Operation in Self-Timed Rings.
24
3.4
“week feedback” Implementation of a Muller C-element.
25
3.5
A Ring Stage Chronogram.
27
3.6
Charlie Diagram at Constant y.
28
3.7
Charlie Diagram at Constant s.
29
3.8
VHDL Simulation Results for two Different Configurations of 11-Stages
Self-Timed Ring without Charlie Effect.
30
3.9
VHDL Simulation Results for two Different Configurations of 11-Stages
Self-Timed Ring with Charlie Effect.
30
3.10
Charlie Diagram at Constant y for two Different Operating Conditions.
31
3.11
Charlie (R) against Charlie (s) Diagrams with respect to R.
33
Hatem Zakaria
Université de Grenoble
xi
3.12
Muller Gate with Set/Reset.
35
3.13
Programmable Self-Timed Ring.
36
3.14
PSTR with External D-F.Fs for Targeting Low Frequencies.
38
3.15
Design Flow for PSTR Oscillators.
39
3.16
The Interface between Micro-Processor and PSO.
40
3.17
Programmable/Stoppable Oscillator.
41
3.18
PSO Control Unit.
42
3.19
Timing Diagram of the PSO.
45
3.20
Analog Results of the PSO.
46
3.21
PSTR Output Frequency Change with respect to the Supply Voltage.
49
3.22
Process Variations of PSTR.
49
4.1
GALS Architecture.
55
4.2
Double-Latching Synchronization Scheme.
56
4.3
GALS System with Pausible Clocking.
57
4.4
Typical FIFO Based GALS System.
58
4.5
PSTR Based GALS System.
62
4.6
Control Switch Interconnections with the Asynchronous Ring.
63
4.7
Control Switch.
64
4.8
Timing Diagram of the Control Switch.
66
4.9
Multipoint GALS interconnects (Shared Bus).
67
4.10
Multipoint GALS interconnects (Switch Network).
68
4.11
Multipoint GALS interconnects (Ring Structure).
69
5.1
Static vs. Dynamic Power with Process Migration.
75
5.2
Using Bias to Control Threshold Voltages.
78
Hatem Zakaria
Université de Grenoble
xii
5.3
Fine Grain Power Gating with an Inverter.
80
5.4
Coarse-Grain Power Gating.
81
5.5
Clock Gating.
83
5.6
Propagation Delay vs. Vdd for an Inverter Gate in STMicroelectronics
45nm CMOS Process using HVT, SVT and LVT libraries.
85
5.7
Energy Consumption vs. Power Consumption.
86
5.8
Examples of Stretching to NTA.
90
5.9
Voltage/Frequency Control Simplified Architecture.
93
6.1
A NoC Architecture with Multiple Voltage-Frequency Domains.
96
6.2
Fabrication Yield Control by Distributing Tasks over Different
Processing Nodes in a GALS System.
98
6.3
Energy/Performance Control Simplified Architecture.
101
6.4
Energy/Performance Management Architecture for a Voltage-Frequency
Island in a GALS-NoC System.
103
6.5
Chronogram of Vdd-Hopping.
106
6.6
Different Computational Speed Set Point Buildings and their Impact on
the Energy Consumption (i.e. the Penalizing High Voltage Running
Time).
109
6.7
Flow Chart of the Digital Controller Algorithm.
115
6.8
Simulink Simulation for the Processing Node Load Model showing its
Current Variations with respect to Different Processing Instructions.
116
6.9
Matlab Simulation Result of the Digital Controller.
117
6.10
Matlab Simulation Results to Test the System Robustness with Different
Degrees of the Process Variability Effect.
118
7.1
Internal Architecture of the Pipelined MIPS (5 Stages).
122
7.2
MIPS R2000 Critical Path Delay Variation with Respect to Supply
Voltage at Three Different PVT Corners.
123
Hatem Zakaria
Université de Grenoble
xiii
7.3
Process Variability Robust Energy/Performance
Architecture (MIPS R2000 Case Study).
7.4
Memory Mapping of the Programmable Oscillator.
127
7.5
Digital Controller Architecture.
129
7.6
Speed Set Point Update Unit.
131
7.7
Reset Pulse Generator Architecture and Timing Diagram.
133
7.8
Voltage and Frequency Selection Unit.
134
7.9
Timing Diagram of the Voltage and Frequency Selection Unit.
134
7.10
Change Frequency Pulse Generator.
135
7.11
Timing Diagram of the Digital Controller Behaviour with 3 Different
MIPS R2000 Workloads under Nominal Process Variability Effect.
137
7.12
Timing Diagram of the Digital Controller Behaviour with 3 Different
MIPS R2000 Workloads under Worst Process Variability Effect.
138
7.13
Timing Diagram of the Digital Controller Behaviour with 3 Different
MIPS R2000 Workloads under Best Process Variability Effect.
139
Hatem Zakaria
Université de Grenoble
Management
125
xiv
LIST OF TABLES
Table
Description
Page
3.1
Results for Different Programming Strategies.
47
4.1
Properties of GALS Systems.
60
5.1
Classification of DVFS Algorithms.
91
7.1
MIPS R2000 Optimum Clock Frequencies Required to Compensate for
the Process Variability Impact on 45nm CMOS Technology.
124
7.2
Extracted Delay Values of the Asynchronous PSTR Functional
Parameters on STMicroelectronics 45nm CMOS.
126
7.3
PSTR Programmability to Manage Process Variations of the 45nm
CMOS Technology on the MIPS R2000.
128
7.4
A Comparison between Energy-Efficient and Normal Average Based
DVFS Control with Respect to a System without DVFS at Different
Process Variability Corners.
140
7.5
Power, Energy and Cross Sectional Area of Each Part in the DVFS
Architecture shown in Figure 7.3.
142
7.6
Performance Analysis of the Whole Energy-Efficient GALS-NoC
DVFS Control System under Nominal Process Variability Impact.
142
Hatem Zakaria
Université de Grenoble
xv
Chapter 1
Introduction
1.1 Context and Motivations
With increased levels of integration in scaled technologies, complex systems
containing (large number of processors, on-chip memories, IPs, complex clock trees, I/O
control units, etc.) have become a reality. As recognized by the International Technology
Roadmap for Semiconductors (ITRS), dealing with on-chip communications and power
management problems require a drastic departure from the classic design methodologies
[SEM 06]. Therefore novel on-chip communication architectures that use a Network-onChip (NoC) approach have emerged as a scalable alternative to traditional bus-based or
point-to-point communication solutions [DAL 01] and [LEE 07].
By eliminating global wires, the NoC approach provides the needed modularity
and performance, while facilitating design reuse. Moreover, the NoC approach offers a
matchless platform for implementing the globally asynchronous locally synchronous
(GALS) design paradigm [CHA 84] and [MUT 00]. This makes the clock distribution
and timing closure problems more manageable. In addition, a GALS design style fits
nicely with the concept of different voltage-frequency domains, which provides better
power-performance tradeoffs than its single voltage, single clock frequency counterpart
[DIE 03] and [BER 05], while taking advantage of the natural partitioning and mapping
of applications onto the NoC platform. However, the implementation of GALS systems
makes mandatory the synchronization of the communicating clock domains frequencies
and phases in order to guarantee that data is reliably transferred among them [BEI 06].
In addition to this huge increase in system complexity, the systems designed in
nanoscale technologies suffer from systematic and random variations in process, voltage,
and temperature (PVT), particularly from the 45nm CMOS technologies and beyond. As
Hatem Zakaria
Université de Grenoble
1
Chapter 1. Introduction
a result, the integrated system performances after fabrication will not be fully predictable.
Indeed, within die variations play an increasingly important role in system power
consumption and performance as the technology scales down [BOR 03].
Since designers cannot rely on the accuracy of the nominal parameter values,
there is a tremendous need for on-line techniques that can cope with such dynamic
variations [REB 09] and [MIE 08]. More precisely, there is a need for efficient
algorithms and built-in circuitry able to adapt the system behavior to workload variations
and, at the same time, cope with the parameter variations which cannot be predicted or
accurately modeled at design time.
Not surprisingly, designing appropriate dynamic voltage and frequency scaling
(DVFS) control algorithms for run-time control of different voltage-frequency domains in
a GALS system is a matter of great importance. While this problem has been addressed
before by a number of authors [OGR 08], [WU 04] and [NIY 05], no attention has been
given to add the feature of controlling the impact of manufacturing process variations to
the capabilities of the DVFS controllers.
Starting from these overarching ideas, ARAVIS project (Architecture avancée
Reconfigurable et Asynchrone pour la Video et la radio logicielle Intégrée Sur puce)
sponsored by Minalogic, looks for architecture and design solutions that allow the
production of embedded computational platforms in its scalability limit. It proposes a
generalization of certain techniques in order to obtain a solution to the technology
variability problem in 32nm, which will represent an input toward the development of a
new paradigm. The ARAVIS project is focused on three technology keys:
1- Reconfigurable structure with respect to applicability requirements. It can be
accomplished by programming the flexible interconnections between the
clustered nodes of the SoC computational unit [PIN 01].
2- GALS paradigm in order to release the communication constraints between
remote points.
3- Dynamic management of the power consumption and activity with respect to
constraints are achieved by control theory application [HEL 04].
Hatem Zakaria
Université de Grenoble
2
Chapter 1. Introduction
This thesis is included as a part of the ARAVIS project context. It specifically
focuses on the design of GALS-based NoC architectures in the upcoming CMOS
technologies. Activity monitors are disseminated into each voltage-frequency island to
locally evaluate the process quality in terms of its relative speed with respect to the other
processing nodes. A novel methodology to dynamically control the speed of different
voltage-frequency GALS-NoC islands according to the process variability impact on each
domain is proposed. This control technique can improve the performances, the energy
consumption, and the yield of future SoC architectures in a synergistic manner.
The proposed control methodology is based on the design of an asynchronous
programmable self-timed ring where the controller takes into account the dynamic
workload and the process variability effects. The controller especially considers the
operating frequency limit which does not exceed the maximum locally allowed value for
a given clock domain. With such an approach, it is no more required to separately
guaranty the performance for each node. This drastically relaxes the fabrication
constraints and helps the yield enhancement.
1.2 Thesis Outline
This thesis dissertation is mainly split into two main parts: GALS Paradigm (PartI) and CMOS Power Reduction and Design for Yield (Part-II).
This first part comprises the chapters 2 to 4. In Chapter 2 an introduction of the
asynchronous circuits is introduced. Asynchronous circuit classes are discussed stating
the different handshaking protocols. In addition to this, token and bubble rules were also
presented to facilitate the discussion of data flow in asynchronous circuits. This helps to
understand the basic principle of operation of self-timed rings.
In Chapter 3, we propose a design for a Programmable/Stoppable Oscillator
(PSO) which is based on self-timed ring to exploit its interesting characteristics
(programmability, accuracy and robustness against process variability). Through a
handshaking protocol, the oscillator is communicating with the synchronous processor to
ensure a proper switching from one frequency to another. The oscillator is designed in
order to avoid the presence of glitches and truncated clock periods.
Hatem Zakaria
Université de Grenoble
3
Chapter 1. Introduction
As we consider GALS-NoC architectures, low latency high throughput
asynchronous communication mechanisms between synchronous blocks will be
obligatory. Therefore in Chapter 4, we make use of the previously designed
programmable self-timed ring to propose a new scheme based on the use of asynchronous
handshake circuits to safely synchronize these clocks. This circuit design gathers the
small area and the low power consumption advantages of the pausible clocking GALS
with the high throughput advantage of the FIFO-based GALS.
The second part of the thesis contains the chapters 5 to 7. The necessary concepts
needed to understand and well characterize the main sources of CMOS power dissipation
in the nanometric era are declared in Chapter 5. Moreover, in this chapter we investigate
different low power solutions that are needed to reduce the impact of each contributing
part to the total CMOS power consumption. As DVFS is recognized as one of the most
effective power reduction techniques, therefore its different algorithms and its
architecture are detailed.
In Chapter 6, a novel DFVS architecture that dynamically adapts the speed of
each voltage-frequency island in a GALS system is proposed. The DVFS control
principal not only considers the dynamic workload variations, but also ensures that the
operating frequency does not exceed the maximum allowed value for a given process
variability effect. The control methodology is based on the use of the asynchronous PSO
with a fast predictive feedback controller.
Chapter 7 addresses the problem of designing the proposed process variability
robust DVFS control methodology. MIPS R2000 presents our processing load case study.
The PSO was programmed and configured to compensate for MIPS R2000 variations on
STMicroelectronics 45nm CMOS technology. Moreover, the digital controller part of the
DVFS was completely designed and tested on different process variability corners.
Finally the conclusion of the thesis and the prospects are discussed in Chapter 8.
Hatem Zakaria
Université de Grenoble
4
Part – I
GALS Paradigm
Chapter 2
Asynchronous Circuits
2.1 Introduction
In recent years there has been tremendous growth in the silicon integration
capacity. Starting from the 45 nm technology and beyond, designers face various
problems in power consumption, process variability, environment-parameters (Process,
Voltage, and Temperature) “PVT” variations and Electromagnetic Interference “EMI”.
As synchronous design style is based on global timing assumptions determined by the
clock. Coping with this assumption, especially with the recent technologies, is
challenging from two points of views. First, the increase of process variability implies
inefficient increase in timing doubt while designing. Second, clock trees are gradually
consuming more power and needing more effort for managing. Therefore, different
solutions are presented for these challenges as multi-clock systems and clock gating.
However, Asynchronous circuits show an efficient alternative solution for these problems
[REN 03] and [BEE 02].
Asynchronous circuits use handshaking between their components in order to
perform the necessary synchronization, communication, and sequencing of operations.
This results in a behavior that is similar to systematic fine-grain clock gating and local
clocks that are not in phase and whose period is determined by actual circuit delays; i.e.
registers are only clocked where and when needed. This behavior gives asynchronous
circuits the following interesting features [SPA 01], [BER 99], and [MAR 97]:
(1) Low power consumption
Because asynchronous circuits do not need any clock signals, the power spent on
clock switching in a synchronous chip is avoided. Additionally, the signal transitions in
asynchronous circuits will automatically stop when there is no data. Therefore,
asynchronous circuit design has zero standby dynamic power consumption), [BER 94].
Hatem Zakaria
Université de Grenoble
7
Part-I
Chapter 2. Asynchronous Circuits
(2) No global-signal distribution and clock skew problems
Since asynchronous circuit designs have simple handshake interfaces and local
timing, the difficulties of clock distribution and clock skew faced by synchronous designs
are removed from asynchronous designs.
(3) Low emitted EMI noise
In a synchronous design, flip-flop transitions follow a certain clock frequency so
that the energy spent on signal transitions concentrates within the very narrow bands
around the clock frequency. Thus, the synchronized signal switching activities will
produce substantial electrical noise. Whereas, the switching activities in an asynchronous
circuit are correlated loosely because there is no universal timing pace, hence, they
produce a more distributed noise spectrum and a lower peak noise value, [PAV 98].
(4) Average-case performance
In a synchronous design, the operating speed is limited by the worst-case, called
critical path in the circuits. However, in asynchronous circuits, the operating speed is
determined by actual local latencies in the circuits rather than global worst-case latency.
In most of cases, the average-case of latencies are smaller than the worst-case latency,
hence, asynchronous designs can achieve better operating speed performance, [WIL 91]
and [WIL 95].
(5) Robust and adaptive
A synchronous circuit is sensitive to the delay variations caused by the process
variability effects and environment-parameters variations (i.e. clock signal, supply
voltage, and operating temperature) related with the manufacturing process and
application surrounding. Whereas, the loose timing requirement of asynchronous circuits
allow them to operate correctly under large variations caused by different manufacturing
processes and application environment, [NIE 94] and [SPA 01].
(6) Better modularity
The modularity of asynchronous circuits is almost perfect. It is due to the locality
of control and the use of a well-specified communication protocol by all operators. It is
indeed easy to construct a complex system involving pre-existing blocks, [SPA 01].
Hatem Zakaria
Université de Grenoble
8
Part-I
Chapter 2. Asynchronous Circuits
According to the previously mentioned asynchronous circuit advantages, research
and industry are progressively more motivated to the introduction of asynchronous
technology into products and design flows. On the other hand there are also some
drawbacks of the asynchronous circuit implementation. The asynchronous control logic
that implements the handshaking normally causes an overhead in terms of silicon area,
circuit speed, and power consumption. It is therefore important to ask whether or not the
investment pays off, i.e. whether the use of asynchronous technique results in a
considerable improvement over the synchronous one or not [SPA 01].
2.2 Asynchronous Circuits Principles
In synchronous design style, depicted in Figure 2.1, synchronous circuits are
composed of combinational function blocks and registers. The circuit activity is
controlled by a global clock which triggers at the same time the memorization of the
complete state of the circuit. As a new state is sampled and placed in the registers, the
combinational circuits start the computation of the next state to be sampled at the next
clock edge. The clock signal is fixed so that all functional blocks correctly complete their
operations and their data outputs are stable and ready to be sampled. That implies a
global timing assumption which is applied to the whole circuit: the longest combinational
path (critical path) must not exceed the clock period. Synchronization in asynchronous
circuits is done by replacing the clock signal with some form of handshaking between
adjacent registers; for example the request-acknowledge based handshake protocol shown
in Figure 2.2 [MYE 01] and [SPA 01].
Figure 2.1: Basic Structure of a Synchronous Circuit.
Hatem Zakaria
Université de Grenoble
9
Part-I
Chapter 2. Asynchronous Circuits
Asynchronous circuits are composed of communicating stages which computation
is controlled by the presence of data at their inputs and outputs. Their behavior is much
similar to the data-flow model, [REN 03]. Let’s consider one asynchronous stage
described in Figure 2.2. It receives data from its input port, the functional block computes
it, and sends the result through a register to its output port. Data communication over its
ports are not controlled by an external signal, like a clock, but by a communication
protocol implemented within the control part of the stage itself. Such protocols require a
bi-directional exchange of information between senders and receivers called handshake
protocols.
Figure 2.2: Basic Structure of an Asynchronous Circuit.
The communication protocol is the basis of the sequencing rules of asynchronous
circuits. The first rule is that an asynchronous stage starts the computation if and only if
all the data required for the computation are available. Once the result can be stored in the
register, the asynchronous stage releases the input ports. It outputs the result through the
output port if and only if this port is available, i.e. released by the next stage connected to
it, at the end of the previous communication. The implementation of the communication
protocol in each stage is the price to pay to get rid of the clock and be able to control the
sequencing locally, [REN 03].
Each asynchronous stage can implement functions with very different granularity:
bit-level functions, word-level arithmetic functions or even complex algorithms.
However, they always have the following three main characteristics, [YUN 96], [REN
96], [CUM 94], and [WIL 94]:
Hatem Zakaria
Université de Grenoble
10
Part-I
Chapter 2. Asynchronous Circuits
1. All their channels respect a unified communication protocol.
2. They all compute the input data set at the highest speed and place the
result at its output as soon as possible (minimum forward latency),
while, the synchronous circuits forward latency may not vary with the
data computed. The forward latency is constrained by the clock period.
3. They also all have a maximum throughput which corresponds to the
maximum frequency at which the module can process the incoming
data (maximum cycle time). This characteristic is not the inverse of the
forward latency because the asynchronous stage has to release the
communication channels before accepting the next data set. With
asynchronous circuits, we have to consider the forward and reverse
phases to compute the throughput (Notice that is not a trivial relation
because this depends on the employed handshaking protocol).
2.3 Handshaking Protocols
To implement a bidirectional signaling in asynchronous circuits, two
communication protocols are commonly used: the two-phase protocol, also called NRZ
(Non Return to Zero) or “half-handshake” and four-phase protocol, also known as RZ
(Return to Zero) or “full-handshake”. Both protocols are respectively shown in Figure 2.3
and Figure 2.4. In both cases, it should be noted that any event on a signal from the
transmitter stage is reset by an event on a signal from the receiver stage, and vice versa.
This mechanism ensures the insensitivity to the processing time of the operator. In these
protocols, the only importance is in the occurrence of events locally between the
transmitter and the receiver, and not in their relative time, or their respective orders in
relation to the transmitter input or the receiver output. The choice of communication
protocol affects the characteristics of the board layout (Area, speed, power consumption,
robustness, etc ...), [REN 03] and [SPA 01].
The two phase protocol has the minimum required sequence of information
exchange per communication. Signaling in the 2-phase protocol is event-based since data
Hatem Zakaria
Université de Grenoble
11
Part-I
Chapter 2. Asynchronous Circuits
detection and acknowledgment are done by means of rising and falling edges of signals.
The two phases are as follows:
1st Phase: The transmitter generates a transition on the request signal. The
receiver detects the incoming data and once the reception process is completed, it
generates a transition on the acknowledgement signal.
2nd Phase: The transition on the acknowledgement signal is detected by the
transmitter and depending upon the availability, the new data is transmitted.
Figure 2.3: A Two-Phase Protocol.
Four phase protocols are level-based. These protocols require a return to zero
phase for both the data and the acknowledgement as shown in Figure 2.4. The sequencing
between two asynchronous stages in the four phase protocol is done in the following
manner:
1st Phase: The transmitter issues data and sets the request signal high.
2nd Phase: The receiver absorbs the data and sets the acknowledgement high.
3rd Phase: The transmitter responds by taking request low (at which point data is
no longer valid).
4th Phase: The receiver acknowledges this by taking acknowledge low. At this
point the transmitter may initiate the next communication cycle.
Hatem Zakaria
Université de Grenoble
12
Part-I
Chapter 2. Asynchronous Circuits
Figure 2.4: A Four-Phase Protocol.
Despite of the apparent effectiveness of the two-phase protocol (i.e. faster and less
power consuming), but actually it is not always the case because event-based logic is
more costly than level-based in terms of CMOS implementation. Moreover, very
effective optimizations can be done at the logic and architectural levels when using fourphase protocols. Generally speaking two-phase protocols are preferred when slow
components (with large forward latencies) are involved in the cycle time. On the
contrary, four-phase protocols are mostly used within the circuit due to the symmetry of
its phases, where the designer is free of balancing component latencies to optimize the
circuit performances [REN 03], [SPA 01], and [REN 00].
2.4 The Muller’s C-element
In a synchronous circuit the checking role is to define points in time where signals
are stable and valid. In between the clock ticks, signals may exhibit hazards and may
have multiple transitions till the combinational circuits stabilize. This does not matter
from the functional point of view. Conversely, asynchronous control circuits shown in
Figure 2.2 have a different behavior. The absence of the clock means that, in many
situations signals are required to be valid all the time, that every signal transition has a
meaning. As a result, hazards and races must be avoided. A circuit that is better in this
respect is the Muller’s C-element shown in Figure 2.5, [RIG 02], and [MAR 86].
Actually, it is a state holding element works in the following principle: When both inputs
are 0 the output is set to 0, and when both inputs are 1 the output is set to 1. For other
input combinations the output does not change. Consequently, an observer seeing the
Hatem Zakaria
Université de Grenoble
13
Part-I
Chapter 2. Asynchronous Circuits
output change from 0 to 1 may conclude that both inputs are now at 1; and similarly, an
observer seeing the output change from 1 to 0 may conclude that both inputs are now 0.
Combining this with the observation that all asynchronous circuits rely on handshaking
that involves cyclic transitions between 0 and 1, it should be clear that the C-element is
indeed a fundamental component that is extensively used in asynchronous circuits.
Figure 2.5: The Muller’s C-element: Symbol and Truth Table.
2.5 The Muller’s Pipeline
Figure 2.6 shows a circuit that is built from C-elements and inverters. The circuit
is known as a Muller’s pipeline, [GUN 93] and [MUL 59]. Variations and extensions of
this circuit form the control backbone of almost all asynchronous circuits. This Muller’s
pipeline is a way to transmit the handshakes. After all of the C-elements have been
initialized to 0, the left environment may start handshaking. To understand what happens
let’s consider the ith C-element, C[i]: It will propagate a 1 from its predecessor, C[i-1],
only if its successor, C[i+1], is 0. In a similar way it will propagate a 0 from its
predecessor if its successor is 1. It is often useful to think of the signals propagating in an
asynchronous circuit as a sequence of waves, as illustrated at the bottom of figure 2.6.
Viewed this way, the role of a C-element stage in the pipeline is to propagate these waves
in a carefully controlled way that maintains the integrity of each wave.
On any interface between C-element pipeline stages an observer will see correct
handshaking, but the timing may differ from the timing of the handshaking on the left
hand environment. Once a wave has been injected into the Muller pipeline, it will
propagate with a speed that is determined by the actual delays in the circuit. Eventually
Hatem Zakaria
Université de Grenoble
14
Part-I
Chapter 2. Asynchronous Circuits
the first handshake (request) injected by the left hand environment will reach the right
hand environment. If the right hand environment does not respond to the handshake, the
pipeline will eventually fill. If this happens the pipeline will stop handshaking with the
left hand environment. In addition to this elegant behavior, the pipeline has a number of
beautiful symmetries. Firstly, it does not matter if 2-phase or 4-phase handshaking is
used. The difference is in how the signals are interpreted and the circuit is used.
Secondly, the circuit operates equally well from right to left, with reversing the role of the
request and acknowledge signals. Finally, the circuit has the interesting property that it
works correctly regardless of delays in gates and wires. The Muller pipeline is delayinsensitive.
Figure 2.6: The Muller Pipeline.
Hatem Zakaria
Université de Grenoble
15
Part-I
Chapter 2. Asynchronous Circuits
2.6 Classification of Asynchronous Circuits
Asynchronous circuits can be classified as being speed-independent, delay
insensitive or self-timed depending on gate and wire delays assumptions that are required
to guarantee their functional correctness [PAN 02], and [EBE 91]. Figure 2.7 facilitate
the illustration of this concept. The figure shows three gates: A, B, and C, where the
output signal from gate A is connected to inputs on gates B and C.
Figure 2.7: Gates and Wires Delay Model for a Circuit Fragment, the output of Gate A
forks to inputs of gates B and C.
Speed-Independent (SI):
This class of circuits operates correctly assuming that positive, bounded but
unknown delays in gates and ideal zero-delay wires, [EBE 91]. Referring to Figure 2.7
this means arbitrary dA, dB, and dC, but d1 = d2 = d3 = 0. Assuming ideal zero-delay wires
is not very realistic in today’s semiconductor processes.
Delay-Insensitive (DI):
This class of circuits operates correctly with positive, bounded but unknown
delays in wires as well as in gates. Referring to Figure 2.7 this means arbitrary dA, dB, dC,
d1, d2, and d3. Such circuits are obviously extremely robust. At the gate level, only
circuits composed of C-elements and inverters can be delay-insensitive, and their
functionality is limited. This is why delay-insensitive circuits are usually built out of
modules which require some delay assumptions internally. Circuits that are delay-
Hatem Zakaria
Université de Grenoble
16
Part-I
Chapter 2. Asynchronous Circuits
insensitive with the exception of some carefully identified wire forks, where d2 = d3 are
called Quasi-Delay-Insensitive (QDI). Such wire forks where signal transitions occur at
the same time at all end points are called “isochronic forks”, [BER 92] and [MAR 90]. At
the gate level, this assumption enables the design of circuits made of single-output gates.
Self-Timed Circuits:
Speed
independency
and
delay-insensitivity
as
introduced
above
are
mathematically well defined prosperities under the unbounded gate and wire delay
model, [SPA 01]. Circuits whose correct operation relies on more elaborate and/or
engineering timing assumptions are simply called self-timed. In the next chapter a full
description of self-timed rings and their programmability will be presented.
The different circuit classes SI, DI, QDI and self-timed are not mutually exclusive
ways to build complete systems, but useful abstractions that can be used at different
levels of design, [SPA 01] and [HAU 95]. In most practical designs they are mixed. For
example, in the Amulet processors SI design is used for local asynchronous controllers,
and DI is used for high-level composition, [GAR 00]. Therefore, the careful choice of
handshake protocol and circuit implementation style is among the factors to optimize an
asynchronous digital system.
2.7 Pipelines and Rings: Token Game
At architectural level, in order to ease the token flow discussion it is assumed that
an asynchronous circuit is composed of functional blocks (combinational circuits),
memory elements (registers) and channels (request, acknowledgment, and data signals).
Figure 2.8 shows the basic elements of an asynchronous circuit.
Figure 2.8: Basic Elements of an Asynchronous Circuit.
Hatem Zakaria
Université de Grenoble
17
Part-I
Chapter 2. Asynchronous Circuits
A token is carrying information and is stored in a memory element. A token is
represented by a filled circle next to the memory element it is stored in. When using a 4phase protocol, the asynchronous data-path processes a stream of alternating valid and
return to zero tokens. When a 2-phase protocol is used, there are only valid tokens, but
apart from that everything is the same. Data flow information is controlled by two rules,
[REN 03]:
Token rule: a memory may receive and store a new token from its
predecessor if and only if it has a bubble.
Bubble rule: a memory becomes empty (bubble) if and only if its
successor has received and stored the token that it was holding.
Figure 2.9 shows a snapshot of a simple five stage pipeline, which is implemented
using 2-phase protocol. The valid value in L1 and L3 has just been copied into L2 and L4
respectively. This means that L1 and L3 are now holding old duplicates of the values now
stored in L2 and L4. Such old duplicates are called “bubbles”, and the newest valid
values are called “tokens”. To distinguish tokens from bubbles, tokens are presented with
a circle around the value. Bubbles can be viewed as a medium: a bubble allows a token to
move forward, and in supporting this, the bubble moves backward one step.
Figure 2.9: A Possible State of a Five Stage Pipeline.
Any circuit should have one or more bubbles; otherwise it will be in a deadlock
state. This is a matter of initializing the circuit properly. Furthermore, as we will see in
the next chapter, the number of bubbles also has a significant impact on performance.
Hatem Zakaria
Université de Grenoble
18
Part-I
Chapter 2. Asynchronous Circuits
Figure 2.10: A Sequence of Data Transfers in a Ring.
In a pipeline with at least three stages, it is possible to connect the output of the
last stage to the input of the first stage, forming a ring in which data tokens can circulate
autonomously, [SPA 01]. Assuming the ring is initialized as shown in Figure 2.10 at time
t0 with two valid tokens and a bubble, the steps of the circulation process are shown in
Figure 2.10, at time t1, t2 and t3. Rings are the backbone structure of circuits that perform
iterative computations. The cycle time of the ring in Figure 2.10 is 3 steps (the state at t3
is identical to the state at t0).
Next chapters of the thesis show how programmable versions of 2-phase selftimed rings could be used, in order to: Firstly, synchronize the data transfer between
different clock domains in a GALS system, while avoiding metastability problems.
Secondly, manage not only the energy consumption but also the process variability in
complex integrated system (System on Chip often denoted SoC).
2.8 Conclusions
Problems with the clock in synchronous circuit design are becoming more and
more complex, which open the path to the design of asynchronous circuits. Unlike the
global clock mechanism used in synchronous circuits, timing in asynchronous circuits is
done locally through a bidirectional signaling between all elements of the circuit. This
signaling is established via communication channels using a specified handshaking
Hatem Zakaria
Université de Grenoble
19
Part-I
Chapter 2. Asynchronous Circuits
protocol (2-phase or 4-phase). Asynchronous circuits are classified into different types
according to their gate and wire delays assumptions that are required to guarantee their
functional correctness. Asynchronous circuits make the design of distributed finite state
machines as well as data paths much easier than before, as there is no need to know the
global state of the system to make things communicate and synchronize, where it is the
case with synchronous circuits. Token and bubble rules were presented to facilitate the
discussion of data flow in asynchronous circuits. This also helps to understand the basic
principle of operation of self-timed rings, which will be presented in details within the
next chapter.
Hatem Zakaria
Université de Grenoble
20
Chapter 3
Self-Timed Rings
3.1 Introduction
Ring oscillators are one of the most essential building blocks in many digital and
communication systems. They are used in to generate and distribute timing signals which
synchronize processing unit operations. Programmable versions of these ring oscillators
have a variety of applications. In Dynamic Voltage and Frequency Scaling “DVFS”
systems, they are used to dynamically manage the energy consumption of a complex
system integrated on a chip. This is done with the regular adaption of the processing unit
clock frequency according to the computational needs, as will be shown in Chapter 5. In
Globally Asynchronous Locally Synchronous “GALS” systems programmable ring
oscillators are also required in order to adjust the clock frequency for each clock domain,
where each domain has its own local clock frequency, as will shown in Chapter 4. With
the rapid increase in the process variability effects on the system behavior due to the
shrinking of the integrating technology, one must carefully choose the operational ring
oscillator. This oscillator should have robust behavior under different environmental and
process variability effects.
Adjustable clocks can be derived from different kinds of clock generators. For
example, these clocks can be derived from analog Voltage Controlled Oscillators “VCO”,
which are a part of a Phase Locked Loop “PLL”. However, VCO have a limited operating
range and a required stabilization time when changing the frequency [BOY 06]. Another
solution is to use a standard clock divider, but this will make the time resolution coarser,
due to counting integer periods of the input frequency [STO 03]. In addition, they give
regular time step which implies irregular frequency step (usually frequency step follows
“1/x” curve).
Hatem Zakaria
Université de Grenoble
21
Part-I
Chapter 3. Self-Timed Rings
Asynchronous self-timed rings are considered promising solution for generating
clocks. In [FAI 04] they are efficiently used to generate high-resolution timing signals.
Their robustness against process variability in comparison to inverter rings is proven in
[HAM 08]. They are efficiently used as a data driven clocks in [MUL 07]. Moreover, for
a given number of stages self-timed rings can be reconfigured easily by controlling their
initialization (i.e. their number of tokens and bubbles; explain in the sequel), while in the
contrary, inverter-ring frequency is fixed [FAI 04]. Furthermore, as events propagate
between adjacent stages in self-timed rings according to a simple request/acknowledge
handshake signals, we can make use of these handshakes in synchronizing the data
transfer between different clock domains in a GALS system while avoiding metastability
problems, as will be shown in Chapter 4.
This chapter proposes a design for a Programmable/Stoppable Oscillator which is
based on asynchronous self-timed ring to exploit its interesting characteristics. Through a
handshaking protocol, the oscillator is communicating with the synchronous processor to
insure a proper switching from one frequency to another. The oscillator is designed in
order to avoid the presence of glitches and truncated clock periods.
A
new methodology
for calculating the ring oscillation period will also be presented.
3.2 Ring Structure
Various kinds of implementations of a self-timed ring exist and the underlying
token and bubble notions depend on the communication protocol (e.g. 2-phase or 4-phase
communication protocol). In this context, it is important to clearly define the structure
and the token and bubble notions.
3.2.1 Ring Connectivity
Figure 3.1 shows the structure of the ring stage. It is composed of a Muller Celement and an inverter. In each stage, the input which is connected to the previous stage
is marked F (Forward) and the input which is connected to the following stage is marked
R (Reverse), C denotes the output of the stage. Figure 3.2 shows an example of a ring
composed of self-timed handshaking N-stages, [MUL 59].
Hatem Zakaria
Université de Grenoble
22
Part-I
Chapter 3. Self-Timed Rings
Figure 3.1: A Ring Stage
Figure 3.2: A Self-Timed Ring.
3.2.2 Definitions and Notations
We choose the 2-phase communication protocol as defined in [SUT 89], which
allows us to derive the token and bubble concepts of the self-timed ring as follows:
•
Stagei contains a token if its output Ci is not equal to the output Ci+1 of stagei+1.
C i ≠ C i +1 ⇔ Stage i ← Token
•
Stagei contains a bubble if its output Ci is equal to the output Ci+1 of stagei+1.
C i = C i +1 ⇔ Stage i ← Bubble
The numbers of tokens and bubbles are denoted by NT and NB respectively.
Because a token is defined with respect to the value of two adjacent stages, NT is an even
number whatever the number of stages. Moreover, each stage of the ring contains either a
token or a bubble, so NT + NB = N, where N is the number of the ring stages. As selftimed rings have a 2-phase pipeline structure, the data flow through its adjacent stages is
the same as it was previously discussed in Chapter 2. If a token is present in stagei, it will
propagate to stagei+1, if and only if stagei+1 contains a bubble. The bubble of stagei+1 will
Hatem Zakaria
Université de Grenoble
23
Part-I
Chapter 3. Self-Timed Rings
move backward to stagei. This implies a transition on stagei+1. In Figure 2.10 an example
was shown for these token/bubble movements in a three stage self-timed ring, which
contains two tokens and one bubble. With the previous notations, the necessary and
sufficient condition for a token to propagate from stagei-1 to stagei can be expressed as:
C i −1 ≠ C i = C i +1
From these propagation rules, we can derive the requirements to obtain an
oscillating asynchronous self-timed ring. By definition, the number of tokens in a ring
must be even and at least one bubble is necessary to enable tokens to move. The minimal
number of stages is hence 3. Self-timed rings produce two different modes of oscillation:
“Evenly spaced” or “Burst” modes, see Figure 3.3. In the evenly spaced mode, the events
inside the ring are equally spaced in time. In the burst mode, the events are non-uniformly
spaced in time. In our application, we only target the evenly spaced mode.
Figure 3.3: Modes of Operation in Self-Timed Rings.
3.3 Ring Modeling
The key to understand the temporal properties of self-timed rings lies in finding
an appropriate model for the ring. The ideal model will be one that captures the nonlinear timing dependencies of real circuits while still being simple enough to provide
insight into the causes of bursting and uniformly spaced behavior. Two key effects have
been identified as being responsible of the ring behavior, the Charlie effect, [EBE 98] and
[ZEB 05], and the Drafting effect [WIN 01], [WIN 02], and [FAI 04].
Hatem Zakaria
Université de Grenoble
24
Part-I
Chapter 3. Self-Timed Rings
3.3.1 The Charlie effect
The deep observation of the C-element temporal behavior shows that the
separation time between input events has a direct impact on the propagation delay: “the
closer the input events; the longer the propagation time”. This phenomenon is called
“Charlie effect” in reference to Charles E. Molnar. The analysis of the C-element
structure can explain these variations in the propagation time. Figure 3.4 shows a
conventional implementation of the C-element referenced as “week feedback”, [SHA 98].
It can be divided into two stages: the input stage which calculates the output value when
both inputs are identical and the output stage which stores this value in other cases.
Figure 3.4: “week feedback” Implementation of a Muller C-element.
The Charlie effect appears in the input stage transistors when both N-channel and
P-channel transistors must move simultaneously from the cut-off state to the saturation
state, or vice versa. This occurs when the events on both inputs of the C-element are
close. To understand this phenomenon, we propose an example. Consider a scenario
where both A and B make a 0 to 1 transitions, and A changes after B. If A changes a long
time after B, then the P-channel transistor controlled by B will be in its cut-off region, and
the N-channel transistor controlled by B will be fully conducting as A changes.
Hatem Zakaria
Université de Grenoble
25
Part-I
Chapter 3. Self-Timed Rings
Furthermore, the node between the two N-channel transistors will be close to ground
potential. This allows a relatively fast transition on signal Q and therefore on the output
C. on the other hand, if A changes only slightly after B, then the transistors controlled by
B will both be partially conducting as A changes. This result in a greater delay from the
transition of A to the transition of C. Similar effects occur if A changes before B.
3.3.2 The Drafting effect
Similarly, there is an impact of the time elapsed between two successive output
communications on the propagation delay: the closer the successive transitions; the
shorter the propagation delay. This phenomenon is called the “Drafting effect”. This
effect is opposite to the Charlie effect which has a tendency to slow the spread of tokens,
while the Drafting effect tends to accelerate several tokens in sequence. This effect which
appears on the output stage of the Muller C-element is due to the output capacitance of
the stage. When a commutation occurs just after the previous one, the output has not
enough time to reach neither Vdd nor GND before its new commutation which causes a
faster transition (i.e. shorter propagation delay).
3.3.3 The Charlie Model
The Charlie model represents the ring stage propagation delay as a function of
two variables, s and y as shown in Figure 3.5 where:
- s is the half separation time between input events:
- y is the time between the previous output commutation and the mean input time.
Hatem Zakaria
Université de Grenoble
26
Part-I
Chapter 3. Self-Timed Rings
Figure 3.5: A Ring Stage Chronogram.
The Charlie model is also adjusted by a set of five parameters that correspond to
the physical characteristics of the stage implementation (dimensions of the Muller Celement and inverter transistors). These parameters are noted as:
- Dff the static forward propagation delay.
- Drr the static reverse propagation delay.
- Dcharlie the amplitude of the Charlie effect.
- A the duration of the drafting effect.
- B the amplitude of the drafting effect.
The shape of the Charlie model at constant y corresponds to a parabola defined by
the asymptote lines Dff + s and Drr – s (see Figure 3.6). Noting that the minimum value of
this parabola, which is called “valley” of Charlie model, corresponds to the longest
propagation delay where the influence of the Charlie effect is the maximum. Similarly,
the shape of the Charlie model at constant s follows the exponential form of charging a
capacitance through a resistance (see Figure 3.7). Therefore, the analytical formulation of
the Charlie model can be expressed as:
Hatem Zakaria
Université de Grenoble
27
Part-I
Chapter 3. Self-Timed Rings
,
(3.1)
with:
Finally, the commutation instant tC can be expressed with respect to the input
commutation instants (tF and tR) and the Charlie model as:
⁄
,
(3.2)
Figure 3.6: Charlie Diagram at Constant y.
Hatem Zakaria
Université de Grenoble
28
Part-I
Chapter 3. Self-Timed Rings
Figure 3.7: Charlie Diagram at Constant s.
3.3.4 Timed VHDL Models
Without modeling the Charlie effect and by simulating the same self-timed ring
with the same number of tokens and bubbles, but with different spatial token
distributions, digital simulation (VHDL Model) shows different steady state waveform.
However, Analog simulation shows exactly the same steady state waveform. An
explanation of this incorrect behavior of the digital simulation is due to the absence of
Charlie effect in the model, [YAH 09]. To confirm this explanation, we simulate an 11stage ring without modeling the Charlie effect. We first configured it by the following
Token/Bubble pattern (“TTTTBBBBBBB”). The steady state output was a burst mode
oscillation. When the ring is initialized with (“TBBBBTTBBBT”), the steady state output
becomes evenly spaced. This wrongly concludes that the initial spatial distribution of the
Tokens/Bubbles could affect the oscillation mode, which is not true. These simulation
results are shown in Figure 3.8.
Hatem Zakaria
Université de Grenoble
29
Part-I
Chapter 3. Self-Timed Rings
Figure 3.8: VHDL Simulation Results for two Different Configurations of 11-Stages
Self-Timed Ring without Charlie Effect.
The same simulation is now performed using Muller gates models which are
taking the Charlie effect into consideration. Figure 3.9 shows that they give identical
steady state behavior and both are oscillating in evenly spaced mode as it was expected.
Figure 3.9: VHDL Simulation Results for two Different Configurations of 11-Stages
Self-Timed Ring with Charlie Effect.
The conclusion is that including the Charlie effect inside our digital model is
mandatory to have a correct behavior of the ring model. As the design and analysis
phases need so many simulations, our digital model saves us a lot of time compared to
standard analog simulations.
3.4 Oscillation Frequency Calculation of Self-Timed Rings
In this section, we propose a simple methodology for calculating the oscillation
frequency of the self-timed ring oscillator. The new method allows us to estimate the
oscillation period in function of the stage temporal parameters and the number of bubbles
and tokens. In [HAM 08] a behavioral model of asynchronous ring is proposed. The
proposed behavioral model offers interesting prospects regarding timing information. It
needs to calculate the half separation time between inputs s. To do so, it uses state graph
Hatem Zakaria
Université de Grenoble
30
Part-I
Chapter 3. Self-Timed Rings
to iteratively catch the timing evolution inside the ring. That seems a bit complex if the
goal is only estimating the oscillation frequency. Consequently, it seems very useful to
find a simple relation between s and the number of bubbles and tokens. In [FAI 04], the
authors give a relation between the period, the stage delay and the separation time. In this
model the Drafting effect can be neglected because its effect is very small compared to
the Charlie effect in the period calculation. With our terminology we can express this
relation as:
Where
4
4
| |
4
| |
4
(3.3)
| | is the stage delay from the last arriving input (i.e.
Dff in Figure 3.5). The period of the self-timed ring oscillators depends on the ratio
. For the same ratio, we have the same oscillation whatever the number of
stages. This is why we think that there is a direct relation between s and R. To estimate s
we can use the Charlie diagram at constant y shown in Figure 3.6 at two different
operating conditions. First, when the operating point of the asynchronous self-timed ring
is in the token limited region, where
i.e. s ≤ smin. Second, when the
operating point of the asynchronous self-timed ring is in the bubble limited region where
i.e. s ≥ smin, the two operating conditions are shown in Figure 3.10.
(a) Token Limited
(b) Bubble Limited
Figure 3.10: Charlie Diagram at Constant y for two Different Operating Conditions.
Hatem Zakaria
Université de Grenoble
31
Part-I
Chapter 3. Self-Timed Rings
At point “A” shown in Figure 3.10 (a) the ring is oscillating at its maximum
frequency, [WIN 01]:
⁄
⁄
/2
and
Lemma 1
At points B and C shown in Figures 3.10 (a) and (b) respectively:
0 Î
1
Lemma 2
Lines (A-B) and (A-C) are applied when
and
respectively. From Lemma 1 and by dividing s by Drr:
2
Î
2
1
(3.4)
If we prove that Equation 3.4 is correct for point B then we can assume that it is
correct for the line (A-B). At point B, s = 0 and from Lemma 2, R = 1. Substituting R = 1
into Equation 3.4, results in s = 0 which is correct. This means that Equation 3.4 is
correct for the line (A-B). This could be mathematically formulated as:
If
then
2
1
(3.5a)
By the same way, from Lemma 1 and by dividing s by Dff, we can prove that:
If
then
2
1
1
(3.5b)
These equations allow us to calculate s without going through the behavioral
model. Therefore, we can introduce a new function called Charlie(R), which expresses
the value of the function of Charlie according to the ratio R. This equation can be
obtained by replacing s, from Equation 3.5, into Equation 3.1. The result is shown in
Equation 3.6.
Hatem Zakaria
Université de Grenoble
32
Part-I
Chapter 3. Self-Timed Rings
If
then
(3.6a)
2
2
then
If
2
2
1
(3.6b)
To show the accuracy of Equation 3.6, we compared the Charlie values extracted
from the VHDL simulation which is based on Charlie (s) Equation 3.1. These values are
plotted against the corresponding R in Figure 3.11. The same curve is plotted using
Charlie(R), Equation 3.6. The figure shows that the two plots are identical with an error
which is less than 1%.
Figure 3.11: Charlie (R) against Charlie (s) Diagrams with respect to R.
Hatem Zakaria
Université de Grenoble
33
Part-I
Chapter 3. Self-Timed Rings
The importance of this Charlie(R) diagram is that it allows us to have a clear idea
about the oscillation period with respect to R = NT / NB. For designers it is easier, even
obvious to interpret the Charlie diagram with the R parameter than the Charlie diagram
with the s parameter. In case of the burst mode, s is not the same for all stages and s
which is computed by Equation 3.5 is the average value. Equation 3.7 shows how the
oscillation period can be calculated using Charlie(R).
4
(3.7)
If we neglect Charlie effect in Equation 3.6, and by substituting the result in
Equation 3.7:
If
then
2
If
then
2
1
1
(3.8a)
1
(3.8b)
3.5 Programmable Self-Timed Rings (PSTR)
As explained in the previous sections, Self-Timed Rings give advantages from
different points of view, generation of high-resolution timing signals, robustness against
process variability, and reconfigurability. As a result, our programmable oscillator will be
based on a Programmable Self-Timed Ring (PSTR). One example of a Self-Timed Ring
is depicted in Figure 3.2.
3.5.1 PSTR Architecture
There are many possible ways to control the frequency of the self timed ring. In
this section, two strategies using architectural solutions are described. Strategy1 is to
change the number of tokens and bubbles inside the ring. That would change the value of
the term R in Equation 3.4. We designed a Muller gate which has a Set/Reset control, see
Figure 3.12. Using this gate, an asynchronous self-timed ring in which we can
dynamically insert tokens and bubbles is designed. This ring has the same architecture as
the one in Figure 3.2 except that it is based on Set/Reset Muller gates.
Hatem Zakaria
Université de Grenoble
34
Part-I
Chapter 3. Self-Timed Rings
Figure 3.12: Muller Gate with Set/Reset.
As an example, for a ring with five stages (N=5), we can insert “BTTTT” by
controlling the Set/Reset of the stages so they are initially loaded by “11010”. That
configuration would produce the minimum frequency of this ring. If we change the
Set/Reset so that the ring is initialized by “11110”, which means “BBBTT”, this ring will
oscillate at a higher frequency. This example shows how the ring frequency can be
controlled by changing the NT over NB ratio. By using Strategy1, the Ring can achieve
high frequencies. Since the programmability overhead is limited to the addition of the
Set/Reset controls. It is not significantly affecting the speed. However, using fixed
number of stages limits the number of possible frequencies. For example, 12 stages gave
us 5 different frequencies. This makes the frequency step quite coarse. If the objective is
to produce finer frequency steps, we propose Strategy2.
Strategy2: in this strategy, not only the Token/Bubbles ratio is controllable but
also the number of stages. Figure 3.13 shows the block diagram of our programmable
self-timed ring. It is composed of stages based on the Muller gates with Set/Reset. The
initialization of the ring is controlled by the Token Control Word “TCW”. This is
defining the number of Tokens and Bubbles inside the ring. By means of the TCW the
frequency of the ring can be programmed. To be able to change the number of stages, a
multiplexer is placed after each stage. These multiplexers are controlled by the Stage
Control Word “SCW”. SCW is controlling the number of stages inside the ring. The
design starts with the maximum number of stages “N”. Then, by using SCW we can
remove up to N-3 stages. If the stage is enabled, the equivalent bit in the SCW is set to
Hatem Zakaria
Université de Grenoble
35
Part-I
Chapter 3. Self-Timed Rings
zero. In Figure 3.13, suppose that all stages are enabled. That means SCW bits are all
zeros. That will make all the multiplexers select input “a” which is connected to the
preceding C-Element (STG1 is connected to STG2, STG2 is connected to STG3 etc...).
Regarding the last stage “STGn”, its acknowledgment is connected by the tri-state buffer
“T1” to the output of STG1. That closes the ring and makes it functioning correctly.
Now, suppose that STG1 has to be removed. Then SCW0 is set to “1” and the other bits
are zeros. Two things are to be done. First, the “Req” of STG2 needs to be connected to
the output of STGn. Second, the signal “Ack” of STGn needs to be connected to the
STG2 output. As SCW0 is “1”, Mux1 will connect input “b” to the output. That would
connect STGn out to the STG2 Request signal. In addition, SCW0 will force “T1” to high
impedance. The AND gate “D1” outs “1” which enables “T2” and connects STG2 out to
STGn Ack. By this scenario, the ring contains N-1 stages. By means of SCW and TCW,
the self-timed ring in Figure 3.13 can dynamically be programmed to have a range of
stages between N to 3, and whatever configurations of Tokens and Bubbles.
Figure 3.13: Programmable Self-Timed Ring.
Regarding the delays of the ring stages, the design is very modular and balanced.
The forward delay Dff has the Muller gate and the Mux. The reverse delay Drr has the
Hatem Zakaria
Université de Grenoble
36
Part-I
Chapter 3. Self-Timed Rings
Muller gate and an inverter. Only STGn has a bit longer Drr as the delay of the tri-state
buffer is added. This will not affect the ring behavior especially this stage is dealt
differently during the physical implementation. The set of AND gates at the tri-state
buffer control are not contributing to the delay as they are prepared once, at programming
phase, and they never change until the ring is reprogrammed. This structure provides a
Self-Timed Ring which has an interesting range of frequencies. More details about the
implementation as well as performance figures are shown in Section 3.7. In Strategy2, the
PSTR gives finer frequency steps, however the programmability overhead from speed
and power point of views is higher than Strategy1. Adding a limited number of
multiplexers gives a nice solution. For example, for a 12 stages two multiplexers can be
added, one after stage 1 and one after stage 7. That gives a PSTR with possibilities of 12,
11 and 5 stages. This compromise gives nice results from all points of view. This hybrid
solution is denoted as Strategy3.
3.5.2 PSTR Design Flow
In this section, we present a design flow for PSTR oscillators, see Figure 3.15.
According to the specifications, thanks to the frequency calculation Equation 3.8 and
according to Drr (defined by the targeted CMOS implementation); the design flow helps
the designers to choose the suitable PSTR architecture (number of stages Nstages, bubbles
NB and Tokens NT) which allows approaching the target oscillation frequencies Ftar.
In this design flow, we assume that the self-timed ring operating point always
exists in the token limited region, and that the maximum allowable Nstages from which we
start our design is 20, and then it will be changed during the design. This number is
chosen according to the circuit area and power consumption limitations; see Chapter 7 for
more details on the design of PSTR for MIPS R2000 on 45nm STMicroelectronics
CMOS technologies. As the thesis is targeting an optimum design in terms of area and
power consumption on the 45nm CMOS technology, designing a PSTR with this
limitation on Nstages will always give us frequencies within the GHz range (i.e. above 0.5
GHz), see Section 3.7. Consequently, if the design is targeting lower frequencies (i.e.
below 0.5 GHz), we have to choose between two solutions. First solution is to increase
Hatem Zakaria
Université de Grenoble
37
Part-I
Chapter 3. Self-Timed Rings
the allowable Nstages. This will accordingly increase the area and power consumption of
the PSTR. For example in order to get a frequency of 60 MHz with Drr = 73 ps on the
45nm CMOS, and according to Equation 3.8a we need to have a PSTR with at least 113
stages, which is impractical. This guides us to the second solution, which is the addition
of external D Flip-Flops at the self-timed ring output, see Figure 3.14. This will divide
the asynchronous self-timed ring output Fosc by 2No. of F.Fs. Subsequently, we can complete
our design using Fosc which is now applicable with the Nstages limitation.
Figure 3.14: PSTR with External D-F.Fs for Targeting Low Frequencies.
The main idea of the design flow shown in Figure 3.15 is to keep looking on the
most suitable values of NT, NB and Nstages that achieve the target frequency Ftar. This is
done by comparing the ratio NT/NB calculated from Equation 3.8a with our assumption
NT_d/NB_d. Noting that in the case of targeting low frequencies we have to use a set of DF.Fs. In this case, the target PSTR frequency FOsc will be equal to Ftar multiplied by
2No._of_F.Fs. If NT_d/NB_d is not equal to NT/NB, then we enter into a loop to adapt these two
ratios to be as close as possible. As long as NT > NB (token limited region), we keep
minimizing NT_d by 2 while NB_d = Nstages-NT_d and each time we compare the two ratios
together. If we could not achieve that NT_d/NB_d ≈ NT_d/NB_d, then we resort to adapting
Nstages. This is done by reducing Nstages by 1, and selecting the maximum allowable even
number for NT_d, while NB_d = Nstages – NT_d. Once NT_d/NB_d is approximately equal to
NT_d/NB_d then NT = NT_d, NB = NB_d and Nstages = NT + NB, so the design is complete.
Hatem Zakaria
Université de Grenoble
38
Part-I
Chapter 3. Self-Timed Rings
Start
Define the Target
Oscillator output
Frequencies (Ftar)
Set Nstages = 20
NT > NB
Initialize NT_d = 18, and NB_d = 2
Ftar values
are less than
0.5 GHz?
No
A
Yes
Define the suitable No.
of D-Flip Flops to be
used
NT_d = NT_d - 2
Fosc = Ftar
NB_d = Nstages – NT_d
Fosc = Ftar * 2No. of F.Fs
Yes
NT_d > NB_d
B
No
Nstages = Nstages – 1
NT/NB = 1/ (2* Fosc * Drr) - 1
B
0
NT/NB ≈ NT_d/NB_d
No
Nstages mod 2
1
A
NB_d = Nstages – NT_d
Yes
NT = NT_d
NB = NB_d
Nstages = NT + NB
NT_d = Nstages – 1
NT_d = Nstages – 2
End
Figure 3.15: Design Flow for PSTR Oscillators.
Hatem Zakaria
Université de Grenoble
39
Part-I
Chapter 3. Self-Timed Rings
3.6 Programmable Stoppable Oscillator (PSO)
Note: since silicon data are confidential, no exact delay-values are shown in this
section. However, the complete performance figures are given in Section 3.7.
Based on the PSTR proposed in Section 3.5, a fully Programmable-Stoppable
Oscillator, “PSO”, is designed. The main goal of our design is to provide a
communication protocol between the processor and the PSO so that:
-
The processor can Pause/Reprogram the PSO clock output.
-
The clock is paused when switching from one frequency to another and the length
of the pausing period is controlled by the processor.
-
While taking into consideration Metastability and racings, the Start/Stop clockperiods are always complete without any truncated periods or glitches.
Figure 3.16: The Interface between Micro-Processor and PSO.
Figure 3.16 shows the connections between the processor and our PSO. The PSO
receives two commands from the processor. Change Frequency, “CF”, which is putting
the PSO in change frequency mode, “Mode1”, where it uses the Frequency Code, “FC”,
to program the PSTR by the required frequency. The other command is Pause Clock,
Hatem Zakaria
Université de Grenoble
40
Part-I
Chapter 3. Self-Timed Rings
“PC”, which puts the PSO in a Pause mode, “Mode2”, where the output clock is paused
until it is released, with the same frequency, by the processor. The communication
protocol is as follows. In Mode1, the processor sends CF high and the FC is set to the
appropriate code for the required frequency. When the PSO is ready to change the
frequency, it pauses the clock and lowers the Change Frequency Done signal, “CFD”.
The clock is paused until the CF command is lowered by the processor. When CF is
lowered, the clock is released with the new frequency and the CFD is returned to high.
By the same scenario in Mode2, the processor raises PC command when the clock is
needed to be paused. The PSO pauses the clock and sets its Pause Clock Done signal,
“PCD”, to zero. Whenever the processor lowers the PC command, the PSO raises its
PCD out and continues sending clock output with the last frequency before pausing.
By means of the upper handshaking protocol between the processor and the PSO,
the processor has a full control on the pausing period between two different frequencies.
The importance of that, from our point of view, is to give the processor (or its upper
controller) the control on the time between two frequencies. In this way different
techniques can be applied on the processor, (task rescheduling, DVS, HW reconfiguration
…), without caring about the time needed by these techniques.
Figure 3.17: Programmable/Stoppable Oscillator.
Hatem Zakaria
Université de Grenoble
41
Part-I
Chapter 3. Self-Timed Rings
In Figure 3.17, the details of the PSO are depicted. It is composed of a Control
Unit, “CU”, and the PSTR. The CU outs the TCW and the SCW which are determining the
number of Tokens/Bubbles and the number of stages respectively. The CU is clocked by
the output of the PSTR, “R_Out”. The Clk out which is sent to the processor is the output
of the dissymmetric Muller gate “C1”. The output “Stop” from the CU is controlling
whether R_Out is connected to Clk or not. When Stop is high R_Out is connected to Clk.
When it is low, any change in R_Out, including truncated periods and glitches, is filtered
by the Muller gate. Figure 3.18 shows the details of the CU.
Figure 3.18: PSO Control Unit.
In the two lookup tables, LUT1 and LUT2, the map of the frequency code to the
corresponding TCW and SCW is stored respectively; this map of the frequency code is
determined by using the model presented in Section 3.4 for all Token/Bubble possible
configurations. In LUT2, there is another stored value per each frequency; it is the
number of clocks needed by the PSTR to reach its steady state, where it’s calculated using
the simulation. This output is denoted by Count_Ref. Count_Ref and the output of
stoppable binary counter is compared by a comparator. The binary counter is clocked by
R_Out to count the clocks during the transient state. The comparator outs one, “EQ=1”,
when its inputs are equal and vice versa. EQ is latched by a D-FF which is clocked by
R_Out. The output of the D-FF is the Signal “Stop”. This signal is delayed by two
matching delays, Delay1 and Delay2, before sent to the processor as CFD and PCD
Hatem Zakaria
Université de Grenoble
42
Part-I
Chapter 3. Self-Timed Rings
signals respectively. LUT1 have asynchronous Reset. However, the counter and the D-FF
have synchronous resets. The Stop control of the counter is asynchronous. During normal
operation, CF and PC are set to zero. The Stop signal is high, which makes R_Out
connected to Clk by the Muller C1 in Figure 3.17. The processor could issue one of two
commands CF for Mode1 and PC for Mode2.
Mode1: the processor sets CF to high and sends the appropriate code on FC. With
the next negative edge on R_Out, the D-FF and counter outputs are set to zeros. That
lowers the Stop signal and isolates R_Out from Clk. In addition, LUT1 and LUT2 out the
new TCW and SCW for programming the PSTR by the new frequency. LUT2 outs the
new Count_Ref too. Delay1 delays Stop by equivalent time to the access time of the
LUTs plus the required time for programming the PSTR. This guaranties that the CFD is
not lowered before the PSTR is properly programmed. When CFD is lowered, the
processor lowers CF whenever it is ready to receive the new Clk. When CF is lowered,
LUT1 receives a Reset signal. That forces TCW to be all zeros and allows the PSTR,
Figure 3.13, to start oscillation. The Counter counts the clocks on R_Out. When they are
equal to Count_Ref, the comparator sets EQ to high. When EQ is high, the counter is
stopped and counts no more edges. With the next negative edge on R_Out, the D-FF
latches EQ and sets Stop to one. That enables the Muller C1, in Figure 3.17, and connects
R_Out to Clk. Now the PSO returns to its normal operation and the PSTR output is
connected to the processor.
Mode2: the processor sets PC to high asking for pausing the Clk output. The DFF receives a Reset signal. With the next negative edge on R_Out, Stop is set to zero and
isolates R_Out from Clk, which is stalled at zero. Delay2 delays the Stop by a time equal
to the delay of the Muller C1, Figure 3.17. After this delay, the PCD is sent to the
processor. Whenever the processor, or its upper controller, wants to unpause the Clk, it
lowers the PC signal. With the next negative edge on R_Out, the D-FF latches EQ again
which is still one as Counter output and Count_Ref are still equal. That sets Stop to one
which connects R_Out to Clk and the clock of the processor is unpaused.
Hatem Zakaria
Université de Grenoble
43
Part-I
Chapter 3. Self-Timed Rings
The main difference between Mode1 and Mode2, is that in Mode2 TCW and SCW
are not changed. As a result the LUTs accessing have a fixed output value and so no
pulses are skipped by the counter. That makes the processor able to pause and unpause in
a higher rate compared to the possible rate for programming and re-programming. In
Mode1, the minimum delay between two requests on CF should be longer than the access
time of the LUTs plus the PSTR programming time plus the time to skip the transient
state clocks (by the counter). In contrast, the minimum time between two requests on PC
is equal to the sum of the OR gate, the D-FF and the Muller gate delays. This sum is
lower than the period of one clock of the PSTR maximum frequency. As the ring size
could be long, we restrict the CU to have very low growth with respect to the ring size. In
Figure 3.18, the HW which will grow with the Ring number of stages is the LUTs. For
each extra stage, LUT1 has two more bits and LUT2 has 1 extra bit. This growth is really
very limited.
Racing and Metastability: any racing or Metastabilty cases could affect the
operation of the PSO. In Mode1, there are two possible scenarios for Metastability. First,
when CF is set to one and FC is changed to the new code. Since the processor is
synchronous and sends these controls on a negative edge of the clock and because these
inputs will not affect the control unit until the next negative edge, these controls have a
complete clock period to get ready at the CU inputs. This delay reduces the probabilities
of Metastability. The second possible Metastability scenario is when CF is lowered by
the processor; especially this is done completely asynchronously. However, the
handshaking protocol ensures that CF can not be lowered before the PSTR is stalled by
the TCW. In this way no possible Metastability or racing can appear.
In Mode2, same two scenarios are possible. Firstly when the processor sets PC to
high, similarly as in Mode1, this scenario is safe. Secondly when the processor or its
upper controller lowers the PC, this case could have Metastability if the Reset input at the
D-FF is deasserted during a negative edge at R_Out. However, the probability of this
Metastability is very low due to the short delay of the reset logic path.
Hatem Zakaria
Université de Grenoble
44
Part-I
Chapter 3. Self-Timed Rings
The PSO is implemented on STMicroelectronics 45nm technology, the
implementation details are discussed in Section 3.7. The delay information is extracted
from the physical design and inserted in our timed VHDL model. By using the digital
flow, we could quickly get various simulations. Thanks to including Charlie and drafting
effects inside the digital model which gave us accurate results, very close to the analog
simulation results. Figure 3.19 shows one example where the PSO is requested to switch
from low frequency to a higher one. After that, the PSO is requested to pause the clock.
Figure 3.19: Timing Diagram of the PSO.
In Figure 3.19 at point “A”, the CF and the new FC are sent. Nothing happened
till the next negative edge on R_Out, at point “B”. After this edge, the Stop signal is
lowered. At point “C”, it is clear that R_Out has a truncated clock due to the new
programming pattern. However, this truncated clock never appears on Clk. CF is lowered
at point “D”, which makes R_Out to start oscillating with the new frequency and the
counter starts counting the transient clocks. On the other hand, at point “F” the PC is sent.
On the next negative edge, the Stop signal is lowered and Clk is stalled at zero (see point
Hatem Zakaria
Université de Grenoble
45
Part-I
Chapter 3. Self-Timed Rings
“G”). Please note that R_Out is continuing oscillating with the same frequency. At point
“H”, the PC is lowered. The next negative edge on R_Out, forces the D-FF to latch
“EQ=1” and set the Stop to one. Consequently, the Clk output starts to oscillate from the
following positive edge. The design is extensively tested against many scenarios
especially for the communication protocol between the processor and the PSO. All test
cases show a correct behavior for the design.
3.7 Implementation and Results
The design presented in Sections 3.5 and 3.6 is implemented using
STMicroelectronics 45nm CMOS Technology. We use our TAL “TIMA Asynchronous
Library” and the STMicroelectronics 45nm standard libraries for the physical
implementation. CADENCE design flow is used for the design, simulation, layout and
post layout simulation.
In our design, a Muller gate with Set/Reset, as depicted in Figure 3.12, is
implemented. Then a complete circuit of the ring with 11 stages as in Figure 3.13 is built
and tested. The Muller gate at Stagen, needs to be sized so that it can derive the stage
multiplexers. As a result, we could have a well shaped clock output, as shown in Figure
3.20.
Figure 3.20: Analog Results of the PSO.
Hatem Zakaria
Université de Grenoble
46
Part-I
Chapter 3. Self-Timed Rings
3.7.1 Analog Results
As explained in Section 3.5, we have two main strategies to control the frequency
of the proposed PSTR. Table 3.1 indicates the main features of each of them. For fair
comparison of power consumption, all strategies are tested in a configuration of 11
stages, 10Tokens/1Bubbles. In this case, the frequency of operation is very close in all
strategies due to its dependency on Drr which is almost equal in the three strategies.
Table 3.1: Results for Different Programming Strategies.
Strategy 1
Strategy 2
Strategy 3
Frequency Range
500 MHz – 3 GHz
400 MHz – 1.7 GHz
450 MHz – 2 GHz
No. of Frequencies
5
13
9
Step Size
Irregular
100 MHz
Irregular
Static Power
8.7 nW
37.5 nW
15.94 nW
63.68 µW
145 µW
82.3 µW
Dynamic Power
(for 1 Bubble)
In strategy 1, a ring with 11 stages is implemented, where its output frequency is
controlled by only changing TCW. Its max oscillation frequency is 3 GHz. It has a few
numbers of possible frequencies due to its coarse and irregular frequency-step size (300
to 700 MHz). It has the smallest static and dynamic power consumption, as it uses
minimum hardware.
In strategy 2, a ring with 11 stages is implemented, where its output frequency is
controlled by changing the TCW/SCW. On one hand, it provides a finer-regular
frequency step (around 100 MHz). On the other hand, maximum frequency is decreased,
that was expected, due to the delays added by the multiplexers. It has the largest static
and dynamic power consumption, as it is implemented with more hardware.
Hatem Zakaria
Université de Grenoble
47
Part-I
Chapter 3. Self-Timed Rings
Regarding Strategy 3, which is a hybrid between the first two strategies, we build
it using 12 stages, and 2 multiplexers are used to implement a ring with possibilities of
12, 11, 5 stages. Strategy 3 is a compromise between strategy 1 (No multiplexers, few
frequency steps, and Min. power consumption), and strategy 2 (Max. No. of multiplexers,
Max. No. of frequencies, and Max. power consumption).
In strategy 2, there are 25 different configurations of frequencies with TCW and
SCW. In spite of that, we get only 13 frequencies. This is due to two mean reasons.
Firstly, some frequencies are repeated within these possible configurations. For example,
for 10 stages with NT/NB = 4/6, we get the same frequency as for 5 stages with NT/NB =
2/3, which is 1.4 GHz. This is due to the proportionality of the output frequency of the
PSTR with the ratio NT/NB. The second reason for this is the existence of some burst
mode outputs. Within this range, we have 10 frequencies with 50% duty cycle and 3 with
30% duty cycle. A 50% duty cycle is mandatory only in double-edge trigger applications
[BUI 06]. As a conclusion we have 3 different strategies for frequency control that we
can choose between them, according to the requested application.
Figure 3.20 indicates how the output frequency changes by changing TCW/SCW
configurations. We get the lower frequency in the left hand side of the graph with 10T,
and 1B. While the higher frequency in the right hand side is obtained with 6T and 5B.
3.7.2 Frequency vs. Supply Voltage
The time response of the PSTR against its supply voltage is an interesting feature.
Generally speaking, the speed of asynchronous circuits, including self-timed rings, can be
naturally controlled using the supply voltage. Our implementation for a PSTR using
Strategy1 is tested against the supply voltage change; results are shown in Figure 3.21.
The PSTR is configured so that it oscillates on its maximum frequency. Its supply voltage
is changed from zero to 1.1V. The ring could not oscillate under 0.5V. Starting from
0.8V, it shows linear change in its frequency till it reaches the maximum frequency at
1.1V. This behavior enables us to use the voltage for generating more frequencies and/or
fine tuning the final oscillation. However, we did not completely include this feature in
our chip as we need more work on voltage regulator and level shifters.
Hatem Zakaria
Université de Grenoble
48
Part-I
Chapter 3. Self-Timed Rings
Figure 3.21: PSTR Output Frequency Change with respect to the Supply Voltage.
3.7.3 Sensitivity to Process Variability
In order to measure the effect of the process variability on the proposed ring,
Monte-Carlo simulation (1000 iterations) of strategy 1 with 12 stages, 6T/6B
configuration had been performed with Cadence. As shown in Figure 3.22a, for a Die-ToDie variability, we have an average frequency of 2.7 GHz, and a standard deviation of
205 MHz. This result indicates that we have a process variability effect on the clock
period of 7.6%. For Within-Die variability, simulation results give us an average value of
2.6 GHz and a standard deviation of 25 MHz, which means a process variability effect on
the clock period of 1%, see Figure 3.22b.
Figure 3.22: Process Variations of PSTR (a) Die-to-Die (b) Within-Die.
Hatem Zakaria
Université de Grenoble
49
Part-I
Chapter 3. Self-Timed Rings
3.8 Conclusions
This chapter addressed the problem of designing programmable/Stoppable
Oscillator targeting the applications which need a frequencies in the range of 3 GHz to
400 MHz. Self-Timed Ring is chosen as the core of the oscillator because of its reported
advantages with respect to many points of view (programmability, accuracy, robustness
against process variability …). A new methodology for calculating the oscillation
frequency of Self-Timed Rings is proposed. By including Charlie/drafting effects to our
VHDL models, we showed the possibility of using digital simulation to accurately model
and simulate the Self-Timed Ring behavior.
By using two main different strategies, programmability is introduced to SelfTimed Rings. The two proposed strategies are simple architecture-based solutions. These
strategies show high efficiency and flexibility while choosing the ring frequency. Based
on the proposed programmable Self-Timed Ring, a complete Programmable/Stoppable
Oscillator is designed and implemented. An efficient handshaking protocol between the
processor and the oscillator is used to insure a proper switching from one frequency to
another. The Oscillator shows glitch free and no truncated clocks at its output.
Metastability scenarios are investigated and the oscillator shows no metastability when
changing frequency and one possible scenario when pausing the output.
The proposed architectures are physically implemented using STMicroelectronics
45nm CMOS technology. For the different programming strategies, the implemented chip
is characterized for its speed, power consumption and sensitivity to process variability.
The chip shows a wide range of frequencies with regular and fine frequency step. By
using Monte-Carlo simulation of 1000 iteration, the chip shows less than 1% process
variability effect on the clock period due to Within-Die variability and around 7.5%
process variability effect on the clock period due to Die-To-Die variability.
The effect of changing the power supply on the chip is studied as well. The chip
shows very linear changes in its frequency with respect to the variations in its power
supply. However, in the current version of the chip, this strategy is not fully
implemented.
Hatem Zakaria
Université de Grenoble
50
Part-I
Chapter 3. Self-Timed Rings
This design shows how Self-Timed Rings can be efficiently used to implement a
Programmable/Stoppable Oscillator. The implemented chip shows High-speed, LowPower, Low-Process Variability of the generated frequency, Wide-Range with Regular
and Fine frequency step output. To the best of our knowledge, this chip is the first
realization of a programmable Self-Timed Ring.
Hatem Zakaria
Université de Grenoble
51
Chapter 4
PSTR Case Study in a GALS System
4.1 Introduction
As the number of processing or functional components in an on-chip system
becomes larger and faster. Moreover, with the growing number of system components,
the functionalities of systems components also become largely different from each other.
It means that an on-chip system may include different processors for different
computation tasks, varied hardware accelerators for varied functions, and various
interface controllers for various peripheral devices. Therefore, these heterogeneous
system components have different clock frequencies according to the tasks that they are
handling. When integrating all heterogeneous components into an on-chip system,
coordinating different clock domains is a challenge. This Chapter starts with stating the
main challenges a designer could face when dealing with multi clock GALS systems.
Then, it presents a comparison between different techniques of synchronization. After
that, a new clock synchronization scheme is proposed. This clock synchronization
scheme is based on the use of the PSTR presented in Chapter 3. In this scheme each
synchronous module has both an incoming and an outgoing clock signal, which have
been obtained by opening the PSTR oscillator module. Since these clock signals also
behave as handshake signals, handshake circuits can be used to synchronize the clocks.
Finally, the idea of synchronizing a point to point GALS system is generalized to a
multipoint GALS interconnection, where three different topologies were presented.
4.2 Multi Clock Challenges and GALS Scheme
From the viewpoint of a chip design, as addressed in [OLS 99], for large highspeed globally synchronous systems, designing the clock distribution net becomes a
troublesome task because of the problems caused by clock skew, by growing die sizes
and shrinking clock periods. At the same time, the power consumption is increasing
Hatem Zakaria
Université de Grenoble
53
Part-I
Chapter 4. PSTR Case Study in a GALS System
tremendously because the working clock frequency driven by demanding applications is
getting higher in the scale of Gigahertz. Therefore, one solution of the challenges
mentioned above is to enable different processing or functional system components to
work at their own clock rates. Thus, the following challenge that a SoC designer needs to
handle is how to integrate the clock independent components into one system. In this
situation, the Globally Asynchronous Locally Synchronous (GALS) scheme is proposed
to solve the system integration challenge, [CHA 84]. The basic idea of applying GALS
scheme into on-chip systems is to partition the system into several independently clock
domains that communicate with each other in an asynchronous fashion.
GALS design style holds the promise of combining the advantages of both
synchronous and asynchronous operation, [CHA 84]. Our GALS employs a self-timed
communication scheme between coarse-grained circuit blocks and combine the following
features:
1. All major modules are designed in accordance to proven synchronous
clocking discipline.
2. Data exchange between two modules strictly follows a full handshake
protocol.
3. Each module is allowed to run from its own local clock frequency (and
supply voltage), making scaling far more convenient than with the standard
synchronous approach, which in accordance contributes to power savings.
4. All asynchronous circuitry necessary for coordinating the clock-driven with
the self-timed operation is confined to “self-timed wrappers” arranged around
each clock domain.
5. The GALS architecture can mitigate the impact of process and temperature
variations, because a globally asynchronous system does not require that the
global frequency was dictated by the longest path delay (the critical path) of
the whole chip. In this case, each clock-domain frequency is only determined
by the slowest path in its domain, [MAR 05].
Hatem Zakaria
Université de Grenoble
54
Part-I
Chapter 4. PSTR Case Study in a GALS System
The methods and challenges of designing a GALS on-chip network will be
presented in the following two sections, with a case study for the application of the PSTR
(presented in Chapter 3) in synchronizing data communication within a GALS system.
4.3 Data Synchronization in GALS Systems
In a GALS system, each synchronous part, usually referred as clock domain,
operates with its own clock signal. The different domains are mutually asynchronous as
they run at different clock frequencies, see Figure 4.1. Therefore synchronization remains
an issue either the clock domains work with different frequencies, or with the same
central clock frequency. This is so, because the communications among clock domains
demand harmonization of the different clock phases in order to guarantee that data is
reliably transferred among clock domains. The term, synchronous domain, used in this
thesis refers to the group of design blocks which work under the dictation of clock signals
in a SoC, while, the term of asynchronous domain refers to the group of blocks which
work in a self-timed manner without any clock signal.
Figure 4.1: GALS Architecture.
Hatem Zakaria
Université de Grenoble
55
Part-I
Chapter 4. PSTR Case Study in a GALS System
Several synchronization schemes or structures for data transfers among
independent clock domains in a GALS system have been presented. One category of
solutions is to synchronize the signals from asynchronous domain with the local clock in
an arbitrary timing relationship and limit synchronization failures within an acceptable
level. The most widely applied scheme in this category is the double-latching as
illustrated in Figure 4.2. It consists of two serially connected D-Flip-Flop (D-FF)
components to latch the input signals with the reference clock of the receiver. It is
possible that the first D-FF enters into metastable state if input signal transitions violate
the setup or hold timing requirement. In this situation, the second D-FF gives a whole
clock cycle for the first D-FF to resolve the metastability before latching its output.
However, in the double-latching scheme, there still exists the failure possibility if the first
latch can not get rid of metastability state before the second flip-flop samples its output.
Therefore, Mean Time Between Failure (MTBF) is introduced to measure the safety of a
synchronizer. MTBF gives indication about how often a synchronization failure occurs.
The performance analysis of double-latching synchronizers and the equation of
calculating MTBF of a synchronizer are presented in [DIK 99] and [KIN 02].
Figure 4.2: Double-Latching Synchronization Scheme.
Another type of solutions of data synchronization in a GALS system is to avoid
synchronization failures by adjusting the clock signal of the local synchronous module or
by generating a controllable clock signal in the synchronization interface. Clock Domain
Crossing (CDC) strategies are required to achieve this purpose. Several hardware
techniques have been proposed to deal with this problem. For example, the work
Hatem Zakaria
Université de Grenoble
56
Part-I
Chapter 4. PSTR Case Study in a GALS System
presented in [MAT 05] develops a stoppable clock structure to build a deterministic
wrapper. The work in [MUT 99], and [ZHU 02] presents stretchable clock schemes to
avoid synchronization failure in the interface between synchronous and asynchronous
domains. A plausible clock scheme is firstly presented in [YUN 96a] to manage the data
transfers between independent clock domains without synchronization failure. The work
presented in [JOY 04], and [MUT 00] further develops the plausible clock scheme. The
work in [BOR 97] presents an asynchronous wrapper which combines the stretchable and
pausible clock schemes together. This wrapper can avoid synchronization failures caused
by metastability in circuits. An interesting taxonomy of these different CDC hardware
techniques is summarized and presented in [CUM 09]. Three main strategies are outlined,
namely, pausible-clock generators, FIFO buffers, and boundary synchronization.
4.3.1 GALS Wrapper with Pausible Clocking
Figure 4.3: GALS System with Pausible Clocking.
Many GALS systems presented in the past few years use (plausible, stretchable,
or data-driven) clocking [YUN 96a] and [MUT 00]. The basic idea of all these proposals
is similar: transferring data between wrappers when both the data transmitter and data
receiver clocks are stopped. This elegantly solves the problem of synchronization
between the two clock domains. Figure 4.3 illustrates the general structure of such a
system. The asynchronous wrapper contains input and output ports that perform the
Hatem Zakaria
Université de Grenoble
57
Part-I
Chapter 4. PSTR Case Study in a GALS System
handshake process between the locally synchronous modules, and generates a stretch
signal to stop the activity of both clocks. The basic GALS method focuses on point-topoint communication between blocks.
4.3.2 FIFO Solutions
Another approach for interfacing locally synchronous blocks is using specially
designed asynchronous FIFO buffers and hiding the system synchronization problem
within the FIFO buffers [CHE 00], [CHA 03], and [BEI 06]. Such a system can tolerate
very large interconnect delays and is also robust with regard to metastability. Designers
can use this method to interconnect asynchronous and synchronous systems and also to
construct synchronous-synchronous and asynchronous-asynchronous interfaces. Fig. 4.4
diagrams a typical FIFO interface, which achieves an acceptable data throughput [CHE
00]. In addition to the data cells, the FIFO structure includes an empty/full detector and a
special deadlock detector.
Figure 4.4: Typical FIFO Based GALS System.
The advantage of FIFO synchronizers is that they do not affect the locally
synchronous modules operation. However, with very wide interconnect data buses; FIFO
structures can be costly in silicon area. Also, they require specialized complex cells to
generate the empty/full flags used for flow control. The introduced latency might be
Hatem Zakaria
Université de Grenoble
58
Part-I
Chapter 4. PSTR Case Study in a GALS System
significant and unacceptable for high-speed and low-latency applications. As an
alternative, in [BEI 06] a synchronous-asynchronous FIFO based on the bisynchronous
classical FIFO design using gray code has been designed, for the specific case of an
asynchronous Network-on-Chip (NoC) interface. Their aim was to maintain compatibility
with existing design solutions and to use standard CAD tools. Thus, even with some
performance degradation or suboptimal architecture, designers can achieve the main goal
of designing GALS systems in the standard design environment.
4.3.3 Boundary Synchronization
A third solution is to perform data synchronization at the borders of the locally
synchronous island, without affecting the inner operation of locally synchronous blocks
and without relying on FIFO buffers. For this purpose, designers can use standard twoflop, one-flop, predictive, or adaptive synchronizers for mesochronous systems, or locally
delayed latching [GIN 03, DOB 04]. This method can achieve very reliable data transfer
between locally synchronous blocks. On the other hand, such solutions generally increase
latency and reduce data throughput, resulting in limited applicability for high-speed
systems.
Table 4.1 summarizes the properties of GALS systems synchronization methods.
Contrary to earlier expectations, GALS-based solutions do not automatically offer
performance gains. Inter-block communication incurs some penalty in all GALS systems.
In pausible-clock systems, the clock can be stretched when transferring data on slow
communication links, reducing the locally synchronous modules operating frequency.
FIFO-based systems, depending on the communication link, suffer from additional
latency. If designed carefully, performance degradation in a GALS system will be
insignificant; however, in some examples (for various reasons), the reported performance
degradation of the GALS system was as high as 23% [MUT 00]. The GALS approach is
a vehicle for block interconnects. A crucial parameter for such an application is data
throughput and latency. For many GALS solutions, the problem of data throughput is
critical. Some pausible-clocking schemes can theoretically reach a maximum data
throughput of one data item per clock cycle [MUT 00]. However, more often, data
transfers are limited to every second clock cycle or even every fourth or fifth clock cycle
Hatem Zakaria
Université de Grenoble
59
Part-I
Chapter 4. PSTR Case Study in a GALS System
of the locally synchronous block. In addition, in an environment with intensive data
transfers the performance degrades significantly. For FIFO-based solutions, the
throughput problem is less severe, but latency increases.
Table 4.1: Properties of GALS Systems.
Synchronization Method
Property
Pausible
Clocking
FIFO-Based
Boundary
Synchronization
Area Overhead
Low
Medium to High
Low
Latency
Low
High
Medium
Throughput
Lowered according
to clock pause rate
High
Medium
Power Consumption
Low
High
Medium
Additional Cells
Mutex, Delay-line,
Muller-C
Empty/Full flag
Muller-C, Mutex
Advantages
No Metastability
Simple Solution,
Throughput
Low Overhead
Disadvantages
Local Clock
Generators,
Throughput
Area Overhead,
Latency
Requires
Verification,
Throughput
4.4 Application of PSTR for GALS Data Synchronization
In this section we present a new method for synchronizing different clock
frequencies in a GALS system. Our GALS system uses the PSTR oscillator presented in
Chapter 3 as the main generating source of clocks in each synchronous domain. In
contrast to most conventional GALS schemes, the method is not based on including in
each ring oscillator a synchronizing element (such as for instance an arbiter) which on
one side can pause the clock and on the other side offers a handshake interface. Instead,
we propose a scheme in which each synchronous module has both an incoming and an
Hatem Zakaria
Université de Grenoble
60
Part-I
Chapter 4. PSTR Case Study in a GALS System
outgoing clock signal, which have been obtained by opening the ring oscillator module.
Since these clock signals also behave as handshake signals, handshake circuits can be
used to synchronize the clocks.
4.4.1 Circuit Design
The clock synchronization approaches mentioned in the previous sections have all
one property in common: they include in the ring oscillator a synchronizing element that
on one side can pause the clock and on the other side offers a handshake interface. Each
approach has its specific synchronizing element (such as for instance an arbiter). The fact
that either the clock or the environment may proceed implies that input and output
operations are mutually exclusive (no overlap in the data validity intervals). A
communication between two clock domains then implies two conversions: first from one
clock domain to handshakes and then from handshakes to the other clock domain.
Therefore, during such a communication one clock domain will be running while the
other side clock domain is paused.
In this subsection we propose a scheme in which the handshake signals are
obtained directly by opening the PSTR oscillator feedback. The simplest form of clock
synchronization is then by means of a C-element which synchronizes the two clock
domains directly with a small and predictable timing overhead (and without the need for
any conversion). The clock signal generated by each synchronous GALS domain Celement can be used to support bidirectional communication. Arbiters are only needed
when they are unavoidable, for example for sharing resources between independent clock
domains. The main advantage of this method is that it uses asynchronous logic in
securing data communication between different clock domains and avoiding the problem
of metastability. Moreover, as process variability could have different effects on the two
communicating clock domains even if they are programmed to work at the same clock
frequency, this method enables us to remove this slight difference between the clock
frequencies and to make them completely synchronized. One more advantage is that it
avoids stopping data communication between different clock domains during their
synchronization phase.
Hatem Zakaria
Université de Grenoble
61
Part-I
Chapter 4. PSTR Case Study in a GALS System
Figure 4.5: PSTR Based GALS System.
Figure 4.5 shows a simplified block diagram of such PSTR based GALS system.
It uses a PSTR (i.e. asynchronous ring) oscillator and a kind of control switch to safely
synchronize the data transfer by means of the asynchronous handshaking request Req and
acknowledgement Ack signals. The Com signal is used to define whether or not the
synchronous clock domains are in a data exchange mode. The detailed interconnections
between the asynchronous ring and the control switch are depicted in Figure 4.6.
The control switch is used to manage the connections of Ring_out_Req and
Ring_out_Ack signals with the GALS network through the handshaking Req_ANoC and
Ack_ANoC signals. If Com equal 1 (i.e. we have data exchange) the Ring_out_Req and
Ring_out_Ack will be connected directly to Req_ANoC and Ack_ANoC respectively. In
this case the two communicating domain asynchronous ring outputs will be connected
together through the control switch. Then, the main functionality of the control switch
will be to synchronize the two communicating clock domains together, so that they are
working with the clock frequency of the slower communicating one. This
synchronization has to be done without the need to reprogram each PSTR oscillator, just
Hatem Zakaria
Université de Grenoble
62
Part-I
Chapter 4. PSTR Case Study in a GALS System
by the mean of a C-element (as shown in Figure 4.7). Once Com signal equals 0 (i.e. no
communication) the feedback connections of the asynchronous ring are closed. Each ring
oscillator returns to work again with its own operating clock frequency.
Figure 4.6: Control Switch Interconnections with the Asynchronous Ring.
The details of the control switch circuit design are depicted in Figure 4.7. The
Muller C-element C2 has one input which is connected to the output of the tri-state
buffers of the PSTR shown in Figure 3.13. The second input of C2 comes from the Mux
output. The Mux defines wither the second input of C2 will be connected to Ack_ANoC or
it will be short circuited with the first input of C2 according to Sel value. If “Sel = 0”,
then the two inputs of C2 will be connected together. In this case C2 will behave as a
buffer gate that passes the signal coming from the tri-state buffers directly to
Ring_out_Ack, which means that the ring backward feedback connection is now closed.
C1 and Delay element have been added in the forward feedback connection in order to
match the delays of C2 and the Mux. The output of C1 is connected to the request input of
the first stage in the PSTR. Note that C1 and C2 set and reset inputs are the same as that
of last and first stages in the PSTR respectively. Currently, the two PSTR asynchronous
ring feedback connections are completely closed and balanced, so that the ring behaves
normally as explained in Chapter 3. On the other hand, if “Sel = 1” then the PSTR
Hatem Zakaria
Université de Grenoble
63
Part-I
Chapter 4. PSTR Case Study in a GALS System
backward feedback connection will be opened. The two inputs of C2 will be Ack_ANoC
and the output coming from the tri-state buffers. Given that, the clock signal of the other
side communicating module is connected to the GALS network through Ack_ANoC.
Accordingly, each of the C2 inputs will now be connected with the clock output of the
two different communicating domains.
Figure 4.7: Control Switch.
In order to guaranty the correctness of our system behavior, we have to be always
sure that the last clock cycle of our communicating domain has already been completed
before/after the start/stop of the synchronization phase of the two clock domains; this is
to avoid the presence of any glitches or truncated clock periods. So that, if Com signal
changes its state from 0 to 1 (i.e. from no communication into data exchange state), the
multiplexer Sel signal will not be allowed to change its state except with the next negative
edge of our communicating domain. In this case, it will be always guaranteed that the
other GALS communicating domain clock output will only be connected to one of C2
inputs only when the clock of our communicating domain is active low. As Muller Celement is actually a state holding element, C2 will not start to generate any output except
when both inputs are equal to 1. Thus, the synchronization phase will only start just after
the completion of our communicating domain last clock cycle. After that, C2 output will
Hatem Zakaria
Université de Grenoble
64
Part-I
Chapter 4. PSTR Case Study in a GALS System
exactly follow the slower clock frequency of the two communicating domains with a
small time shift corresponding to the Charlie effect on C2. Conversely, if Com signal
changes its state from 1 to 0 (i.e. from data exchange into no communication state), DFF1 output Q_x will be changed from 1 to 0 on the next negative edge of the synchronized
clock. As Q_x is connected to the input of DFF-2, therefore with the next positive clock
edge of the last synchronized clock cycle, the output of DFF-2 will be changed from 1 to
0. Thus, the two inputs of the OR gate are 0, which forces Sel signal to be 0. This
disconnects Ack_ANoC from the Mux input, which cuts the connection between the two
communicating domains. Moreover, it insures that Ring_out_Ack is reconnected with the
output from the tri-state buffers. As a result, the backward feedback connection is again
closed after completing the last clock cycle of the synchronized clock. An amazing
feature of the PSTR is that, it will now consider the last positive clock edge as the start of
the first original domain clock cycle and returns back to run at its normal oscillating
frequency, thanks to the state holding functionality of C1.
4.4.2 Simulation Results
The control switch shown in Figure 4.7 is implemented on a CMOS 45nm
technology from STMicroelectronics. The delay information is extracted from the
physical design and inserted in our timed VHDL model. Figure 4.8 shows an example
where the control switch is requested to change the synchronous module state from no
communication to data exchange with another synchronous module, then it disconnects
and returns back to the no communication state.
At point “A”, Com changes its level from 0 to 1. As a result, Q_x and Sel are
changed with the next negative edge of Clock. Once, the Clock completes its last clock
cycle, it starts to decide wither or not to continue at the same clock frequency. As the
other communicating part clock frequency connected to Ack_ANoC is slower than the
Clock frequency, the Clock frequency is synchronized with Ack_ANoC with a small time
shift corresponding to C2 delay. Consequently, the two domains are now well
synchronized, with the receiving domain is sampling the correct data sent over the GALS
network.
Hatem Zakaria
Université de Grenoble
65
Part-I
Chapter 4. PSTR Case Study in a GALS System
At point “B”, Com changes its level from 1 to 0. Again, Q_x is changed with the
next negative edge of Clock, while Sel changes its level after the completion of the last
Clock cycle. After that, the Clock returns again to oscillate at the same clock frequency it
has before the data exchange state. As only a small number of additional elements have
been used in this control switch circuit (C-element, Mux, and DFF). Therefore, this
circuit gathers the small area (30.34 µm²) and the low power consumption advantages
(12.67 µW) of the pausible clocking GALS with the high throughput advantage of the
FIFO-based GALS, as we are switching directly from one frequency to the other with no
need for pausing or reprogramming our clock generator.
Figure 4.8: Timing Diagram of the Control Switch.
4.4.3 Multipoint Interconnection Schemes
A shared system bus or another form of multi-point data exchange is a key
necessity of a modern SoC design as point-to-point exchange alone does not provide the
necessary modularity and scalability. Synchronous SoC designs most often use a
synchronous shared bus with central arbitration. Clock skew across the chip and the use
of many timing domains in a system raise many problems concerning placement and
routing and strongly limit the throughput. Our early circuits only supported point-to-point
connections. To generalize the idea with the standard synchronous on-chip interconnects
solutions, several interconnection approaches are being considered to add to the current
GALS technique. Three different topologies were chosen for further studies.
Hatem Zakaria
Université de Grenoble
66
Part-I
Chapter 4. PSTR Case Study in a GALS System
Shared Bus
The point-to point concept shown in the previous sections can be enhanced to
support a shared bus solution as shown in Figure 4.9. A central arbiter handles the access
to the shared bus resources by multiple senders, and an address decoder selects the
appropriate destination. The control switch located in each GALS module manages the
self-timed data transfers between different GALS modules through the handshaking
request and acknowledgment signals. The shared bus only needs little area, but has the
disadvantage of high capacitive loads, resistances and crosstalk effects due to the rather
long wiring. As every bus transaction is controlled by a four-phase handshake, long wires
cause a considerable delay on the handshake cycle (Request rising Æ Acknowledgment
rising Æ Request falling Æ Acknowledgment falling).
Figure 4.9: Multipoint GALS interconnects (Shared Bus).
Hatem Zakaria
Université de Grenoble
67
Part-I
Chapter 4. PSTR Case Study in a GALS System
Switch Network
In Figure 4.10 a central switch network routes the incoming requests from the
senders to the appropriate receiver. Such a switch can be build from a matrix of smaller
self-timed switching elements. Arbitration between the incoming requests is handled
within the switching elements. The micropipeline-like structure divides the long
interconnection wires into smaller parts thereby lowering capacitance, resistance as well
as crosstalk effects. The time for a handshake cycle is greatly reduced as the acknowledge
signal comes from the subsequent stage directly. As long as data transfers do not
interfere, the capacity of the network as a whole can be a multiple of the shared bus
solution due to the concurrent channels. No arbitration is necessary in this case. The price
to pay is the higher end-to-end latency, quite poor scalability, and a considerable area
requirement.
Figure 4.10: Multipoint GALS interconnects (Switch Network).
Hatem Zakaria
Université de Grenoble
68
Part-I
Chapter 4. PSTR Case Study in a GALS System
Ring Structure
Figure 4.10 shows a block diagram of a self-timed ring topology that connects
GALS modules in a circular fashion. At each node, local address decoders decide
whether a received data word is bound for the local node or must be passed on to the
successor node. Every node can also insert new data into the ring. One can think of a feed
through solution with ring nodes connected by point-to-point transfer channels only, or a
bypass version with ring transceivers acting independently from the modules. The two
approaches are addressed in details in [VIL 03].
Concerning throughput, latency, and area requirement, the ring occupies a
position somewhere in between the shared bus and the switch solution. Because the data
packets have to traverse unrelated transceivers before reaching their destination, the
latency is high compared to the shared bus. On the other hand the reduction of the length
of the connecting wires scales down wire capacitance and crosstalk effects as in the
switch and thus higher throughput is expected. The approach is modular and scales easily.
No central instance is necessary and no distinction is made between masters (that can
initiate a data transfer) and slaves (that just respond to a request).
Figure 4.11: Multipoint GALS interconnects (Ring Structure).
Hatem Zakaria
Université de Grenoble
69
Part-I
Chapter 4. PSTR Case Study in a GALS System
4.5 Conclusions
The use of GALS architectures opens a range of opportunities and advantages for
system design. From a synchronous designer’s point of view, it provides the opportunity
to completely decouple timing constraints of different modules and to assemble them
without fearing metastability. This adds a high degree of modularity and the modules get
much more amenable to reuse.
The GALS approach is also advantageous from an asynchronous designer's
perspective. Because asynchronous modules can easily be incorporated in the self-timed
network-on-chip, they can be used in system-on-chip designs wherever they are available
and beneficial. Thus asynchronous design styles can demonstrate their potential and
maturity in projects they otherwise wouldn't have access to.
This Chapter presents a comparison between different GALS synchronization
schemes. After that, a new scheme based on the use of the PSTR as the main clock
generating source in each GALS module is proposed. This scheme supports reliable
communication between independently clocked GALS modules. However, instead of
including in each PSTR oscillator a standard element for pausing the clock (such as for
instance an arbiter), each synchronous module is proposed to have both an incoming and
an outgoing clock signal, which have been obtained by opening the PSTR oscillator
module. Since these clock signals behave as handshake signals, handshake circuits can be
used to synchronize the clocks. The simplest way synchronizing two different clock
domains is then by means of a C-element, which introduces only a small and predictable
timing overhead. A multiplexer and DFF have been used in this circuit design, in order to
adapt the instants on which we switch between no communication and data exchanges
states, so we don’t have any glitches nor truncated clock periods.
The advantages of this scheme are: due to its self-timed nature, the control switch
used with the PSTR allows connecting modules running at different clock frequencies
with very small power consumption. It offers high throughput compared to a pausible
clock solution and a small area compared to FIFO based solution. Moreover, it can be
easily applied in different multipoint GALS interconnection schemes.
Hatem Zakaria
Université de Grenoble
70
Part – II
CMOS Power Reduction
And
Design for Yield
Chapter 5
Power Saving Techniques
5.1 Introduction
Rapid development of portable systems like laptops, PDAs, digital wrist watches,
and cell phones requires low power consumption and high density ICs, which leads to a
surge of innovative developments in low power devices and design techniques. In most
cases, the requirements for low power consumption must be met with equally demanding
goals for high chip density and high throughput circuits. Hence, the low-power digital
design and digital ICs have emerged as very active fields of research and development. In
this cutting-edge technology era, reduction in the power dissipation is a critical task,
especially as the size of transistors is scaled down to increase the transistor density over
the silicon chip. Consequently, careful consideration must be given to minimize digital
ICs power dissipation without sacrificing its performance.
5.2 Sources of CMOS Power Consumption
There are three major sources of power dissipation in digital CMOS circuits
which are summarized in the following Equation 5.1.
(5.1)
The first term Pleakage represents leakage power consumption, where leakage
currents can arise from substrate injection and sub-threshold effects, which is primarily
determined by fabrication technology considerations. The second term Pswitching is the
switching power which occurs when a gate is switching from one logic state to another
and is the result of the switching current (needed to charge and discharge internal nodes).
Finally, Pshortcircuit is the short circuit power consumption due to the direct-path short
Hatem Zakaria
Université de Grenoble
73
Part-II
Chapter 5. Power Saving Techniques
circuit current, which arises when both the NMOS and PMOS transistors are
simultaneously active, conducting current directly from supply voltage to ground.
The sum of the switching and the short circuit powers is called the dynamic
power, while the leakage power is called the static power. Accordingly, power dissipation
in CMOS circuits involves both static and dynamic power dissipations. In the submicron
technologies, the static power dissipation, caused by leakage currents and sub-threshold
currents contribute with a small percentage to the total power consumption. This static
power consumption occurs when all inputs are held at the same logic level and the circuit
is not in changing states. On the other hand, the dynamic power dissipation, resulting
from charging and discharging of parasitic capacitive loads of interconnects and devices
dominates the overall power consumption. Therefore, traditional low power management
techniques for 130nm and 180nm technology nodes were focusing only on reducing the
dynamic power.
Advances in CMOS technology allow MOS transistor sizes to be continuously
scaled down in progressively smaller technology nodes. As transistor sizes become
smaller, supply voltages can be lowered to reduce the power dissipation. In order to
achieve high speed with low supply voltages, the threshold voltage must be reduced
accordingly. This reduction of the threshold voltages combined to the short channel effect
has led to an exponential increase in the transistors leakage current. Thinner gate oxides
have also contribute to an increase in gate leakage current as well. Consequently, leakage
power is no longer negligible in deep-submicron CMOS technologies.
At 90 nm and beyond, leakage power accounts for a significant portion of the total
power in high-performance designs as shown in Figure 5.1 [PAN 05], therefore its
management becomes essential in the ASIC design process. Leakage power is now a
growing concern in the overall design process. Unlike dynamic power, which can be
managed by reducing switching activity, leakage power causes its effect as long as the
power is on. That is why current process technologies are pushing designers to consider
new design methods to reduce both static and dynamic power consumption.
Hatem Zakaria
Université de Grenoble
74
Part-II
Chapter 5. Power Saving Techniques
Figure 5.1: Static vs. Dynamic Power with Process Migration.
In this chapter a survey on different methods that can be used to control both the
static and the dynamic CMOS power consumption will be presented. The following
subsections will show using equations how each part contributes to the total CMOS
circuit power consumption. This will help the circuit designers in choosing the most
suitable technique for reducing the effect of each power consuming part, as will be shown
in Sections 5.3 and 5.4.
5.2.1 Leakage Power
Leakage or static power dissipation is associated with logic gates when they are
inactive (static); that is, not currently switching from one state to another. In this case,
these gates should theoretically not be consuming any power at all. In reality, however,
there is always some amount of leakage current passing through the transistors, which
means they do consume a certain amount of power. Even though the static power
consumption associated with an individual logic gate is extremely small, the total effect
becomes significant when we come to consider today’s ICs, which can contain tens of
millions of gates. Furthermore, as transistors shrink in size when the industry moves from
one technology to another, the level of doping has to be increased, thereby causing
leakage currents to become relatively larger. The result is that, even if a large portion of
Hatem Zakaria
Université de Grenoble
75
Part-II
Chapter 5. Power Saving Techniques
the device is completely inactive, it may still be consuming a significant amount of
power. The leakage power consumption associated with the transistors is expressed as:
.
.
(5.2)
where q is the elementary charge, Vth is the transistor’s threshold voltage, K is
Boltzmann’s constant, I0 is the saturation current, and T is the temperature.
One important point about this equation is that it shows that static power
dissipation has an exponential dependence on temperature. This means that as the chip
heats up, its static power dissipation increases exponentially. Furthermore, we see that
static power dissipation has an inverse exponential dependence on the switching
threshold of the transistors.
5.2.2 Switching Power
Equation 5.3 allows for the calculation of the power consumption of a switched
capacitor. At the transistor-level, the load capacitance CL includes the parasitic gate
overlap and fringing capacitances as well as the Miller capacity. α models the switching
probability of the transistor during a cycle of the clock toggling at frequency f. Vdd is the
supply voltage.
.
. .
(5.3)
From equation 5.3 we can note that switching power is not a function of the
transistor size, but rather a function of switching activity and load capacitance. Thus, it is
data dependent.
5.2.3 Short-Circuit Power
Short-circuit power is the second part of the dynamic power consumption. It
occurs during a short period of time when both the pull-up and the pull-down networks of
static CMOS-gates are conducting. Equation 5.4 gives a simple model of the short-circuit
Hatem Zakaria
Université de Grenoble
76
Part-II
Chapter 5. Power Saving Techniques
power with β modeling the transistors’ conductivity per voltage unit factoring the linear
region, Vth is the threshold voltage, T is the inputs’ rise/fall time, and τ is the gate delay.
12
2
(5.4)
Equation 5.4 is an overestimation by up to a factor of three. For an accurate
analysis, transistor level models and transient analyses are needed [HED 87]; however,
Pshortcircuit within modules can be captured as part of the dynamic power models of the
modules.
5.3 Static Power Reduction Techniques
Since, static power has become a significant contributor to the total CMOS power
consumption in today’s technological nodes, as the gate length and threshold voltage are
scaled down. Therefore, several techniques have to be applied at the circuit level to
reduce this amount of power. From equation 5.2, one can conclude that, the static power
reduction is mainly related to managing the transistor threshold and/or supply voltages
(Vth and/or Vdd). As a result, static power reduction techniques can include multithreshold libraries, multiple and dynamic supply voltages, power gating and variable
body biasing [BOR 05] and [PFI 07].
5.3.1 Multi-Threshold
Silicon foundries have started to offer multiple threshold devices at the same
process node to address the need to control leakage current and enabling designers to
trade off leakage and performance [SVI 01]. Consequently, a certain number of libraries
of gates are defined for different implementations of functions, including high-voltagethreshold (HVT), standard-voltage-threshold (SVT) and low-voltage-threshold (LVT)
cells, which have different speed and leakage characteristics.
It is common for the LVT device to have an order of magnitude higher leakage
than the SVT device and the HVT device to have leakage characteristics an order of
magnitude below the standard. This reduction in leakage is not free, however, and it
Hatem Zakaria
Université de Grenoble
77
Part-II
Chapter 5. Power Saving Techniques
comes at the expense of the speed of the device and an increase in the cost of the
fabrication process. The LVT cells are the fastest and have the highest leakage. They are
used by the synthesis and optimization tools in the critical paths. The SVT and HVT
gates are used in less-critical paths to reduce leakage power. The challenge for EDA tools
is to use the available characteristics of the cells in the design library to create an
implementation that will meet the timing constraints, while reducing the leakage current
as much as possible.
5.3.2 Body Biasing
The threshold voltage and therefore the leakage current in a CMOS transistor are
controllable by varying the back biasing. The change in the threshold voltage is roughly
proportional to the square root of the back bias voltage. A distinct advantage of this
approach is that during periods when heavy processing is needed, the threshold voltage
can be reduced, thus speeding up the cells. When the cells are in a slower drowsy or idle
mode, the threshold voltage can be raised, thus lowering the leakage.
Figure 5.2: Using Bias to Control Threshold Voltages.
One significant impact of using variable back biasing is that two new terminals
for each cell need to be routed. A common ASIC design practice is to create cells that tie
Hatem Zakaria
Université de Grenoble
78
Part-II
Chapter 5. Power Saving Techniques
the N-well regions to Vdd and the P-well regions to ground. In the physical
implementation, these are simply predefined contacts designed into the cell, which are
connected as part of the power and ground routes. To enable back-biasing, new voltage
lines are routed to control the bias. These can be to individual cells or, more likely, to
regions that contain multiple cells sharing the same WELL and a common tie-cell to
control the WELL bias, [FLA 03] and [MAR 02]. Figure 5.2 illustrates the concept of
variable body biasing. Figure 5.2 (a) is a traditional implementation with wells tied to Vdd
and Vss, and Figure 5.2 (b) presents wells biased for leakage reduction.
5.3.3 Power Gating
To reduce the overall leakage power of the chip, it is highly desirable to add
mechanisms to turn off blocks that are not being used. This technique is known as power
gating. The basic strategy of power gating is to provide two power modes: a low power
mode (i.e. sleep mode) and an active mode. The goal is to switch between these two
modes at the appropriate time and in the appropriate manner to maximize power savings
while minimizing the impact to performance.
Power-gating reduces leakage by reducing transistor gate to source voltage. The
operation of power-gating technique is simple. A header (p-type transistor) switch is
placed in between a block and power to control supply power from this block with sleep
signal, see Figure 5.3. In active mode, the voltage V_Vdd is acting as power supply at a
potential of approximately Vdd to the block; leakage power exists both in header and this
circuit block. In standby mode, header is switched off, meaning that the voltage V_Vdd is
beginning to drop with time. The voltage is no longer at Vdd, but rather at a voltage
somewhat above VSS at saturation point. Hence, transistor gate to source voltage is
reduced. As soon as V_Vdd starts to fall, leakage power saving in this block begins. Yet,
leakage still exists in the header. This is why sleep transistors are usually made of HVT
devices to prevent from cell leakage while maintaining a high potential on V_Vdd. Same
principle applies to a footer (n-type transistor) switch where it is inserted between a block
and ground. Both headers and footers are employed alternatively in a power-gating
design.
Hatem Zakaria
Université de Grenoble
79
Part-II
Chapter 5. Power Saving Techniques
Figure 5.3: Fine Grain Power Gating with an Inverter.
Since standard cells are tagged to an additional transistor, chip area will be much
bigger than a normal one. This will result a larger die size on wafer and leads to cost
increasing. It is also required a set of libraries for a good power saving, timing closure
and area efficiency design. This type of power-gating is known as fine-grain powergating, [FRE 07]. In coarse grain power gating, a block of gates has its power switched
by a collection of switch cells, see Figure 5.4. The sizing of a coarse grain switch network
is more difficult than a fine grain switch as the exact switching activity of the logic it
supplies is not known and can only be estimated. But coarse grain gating designs have
significantly less area penalty than fine grain. Over the last few years, there has been a
strong convergence towards coarse grain power gating as the preferred method. The area
penalty for fine grain power gating has just not proven worth the savings in design effort.
Today, virtually all power gated designs use coarse grain power gating.
One of the key challenges in any power gating design is managing the in-rush
current when the power is reconnected. This in-rush current must be carefully controlled
in order to avoid excessive voltage drop in the power network; otherwise, the function
and state of powered-on blocks could be corrupted as the power gated block goes through
its sleep/wakeup sequence.
Hatem Zakaria
Université de Grenoble
80
Part-II
Chapter 5. Power Saving Techniques
Figure 5.4: Coarse-Grain Power Gating.
5.4 Dynamic Power Reduction Techniques
The dynamic power consumption is a dominant power component for the current
and future design technologies. Dynamic power substantially increases in nanometer
technologies because of increased number of on-chip functions as well as a prolonging
trend on getting higher clock frequencies. Since all applications running over system
processors do not require fast processors to operate at the highest speed all the time, it is
possible to slow down the fast circuitry and reduce the static power consumption as well
as the dynamic power consumption when the maximal performance is not required.
Equation 5.3 calculates the dynamic power consumption, Pdynamic, of CMOS logic
gates. It can be easily inferred that Pdynamic is proportional to the load capacitance, CL ,the
square of Vdd , the switching activity, α, and the clock frequency, f. Consequently, power
consumption reduction can be achieved by:
•
Reducing of output capacitance, CL
•
Reducing of supply voltage, Vdd
•
Reducing of switching activity, α
•
Reducing of clock frequency, f
Hatem Zakaria
Université de Grenoble
81
Part-II
Chapter 5. Power Saving Techniques
Thus, a designer should devise new techniques aiming at the decrease of each
above mentioned parameter or any combination of them. Concerning, the load
capacitance CL, it can only be affected during chip design (for example by minimizing on
chip routing capacitances and reducing external components access). Therefore the two
main dynamic power reduction strategies concern the reduction of the switching activity
and the supply voltage with the clock frequency. Clock gating is a very popular example
of switching activity control. Dynamic Voltage and Frequency Scaling “DVFS”
introduces a significant example of dynamic power reduction in most complex SoC
systems by controlling their supply voltage and clock frequency. Therefore, the rest of the
thesis will mainly focus on the use of DVFS in GALS systems, and how they can be
improved to smartly control the process variability effect.
5.4.1 Clock Gating
A significant fraction of the dynamic power in a chip is in the distribution
network of the clock. Up to 50% or even more of the dynamic power can be spent in the
clock buffers. This result makes intuitive sense since these buffers have the highest toggle
rate in the system, there are lots of them, and they often have high drive strength to
minimize clock delay. In addition, the flops receiving the clock dissipate some dynamic
power even if the inputs and outputs remain the same.
The most common way to reduce this power is to turn clocks off when they are
not required. This approach is known as clock gating. Modern design tools support
automatic clock gating: they can identify circuits where clock gating can be inserted
without changing the functionality of the logic. Figure 5.5 shows how clock gating
works. In the original design, the register is updated or not depending on a variable “EN”.
The same result can be achieved by gating the clock based on the same variable. If the
registers involved are single bits, then a small savings occurs. If they are, say, 32-bit
registers, then one clock gating cell can gate the clock to all 32 registers (and any buffers
in their clock trees). This can result in considerable power savings.
In the early days of RTL design, engineers would code clock gating circuits
explicitly in the RTL. This approach is error prone – it is very easy to create a clock gated
Hatem Zakaria
Université de Grenoble
82
Part-II
Chapter 5. Power Saving Techniques
circuit that glitches during gating, producing functional errors. Today, most libraries
include specific clock gating cells that are recognized by the synthesis tool. The
combination of explicit clock gating cells and automatic insertion makes clock gating a
simple and reliable way of reducing power. No change in the RTL is required to
implement this style of clock gating.
Figure 5.5: Clock Gating.
In [POK 07], Pokhrel reports on a unique opportunity his team recently had to
compare a (nearly) identical chip implemented both with and without clock gating. As a
power reduction project, an existing 180nm chip without clock gating was reimplemented in the same technology with clock gating. Only minor changes in the logic
were implemented (some small blocks were removed and replaced by other blocks, for a
small net increase in functionality). Pokhrel reports an area reduction of 20% and a power
savings of 34% to 43%, depending on the operating mode. (This savings was realized on
the clock gated part of the chip; the processor was a hard macro and not clock gated.
Power measurements were made on the whole chip when the processor was in sleep
Hatem Zakaria
Université de Grenoble
83
Part-II
Chapter 5. Power Saving Techniques
mode; i.e. the processor clock was turned off.) The power measurements are from actual
silicon. The area savings is due to the fact that a single clock gating cell takes the place of
multiple multiplexers. Pokhrel makes a couple of interesting observations:
•
After some analysis and experiments, the team decided to use clock gating only
on registers with a bit-width of at least three. They found that clock gating on onebit registers was not power or area efficient.
•
Much of the power savings was due to the fact that the clock gating cells were
placed early in the clock path. Approximately 60% of the clock buffers came after
the clock gating cell, and so had their activity reduce to zero during gating.
5.4.2 Dynamic Voltage and Frequency Scaling
Dynamic voltage and frequency scaling (DVFS) is recognized as one of the most
effective power reduction techniques. Given that, switching power Pswitching is the major
contributing part to total CMOS power dissipation. Therefore, controlling Pswitching will
have a significant impact on the reduction of the total CMOS power consumption.
Equation 5.3 shows that, reducing the supply voltage Vdd will decreases the switching
power dissipation. The reduction in switching power is a quadratic function of the voltage
Vdd and a linear function of the clock frequency fclk. As a result, Dynamic Voltage Scaling
(DVS) can be used to efficiently manage the SoC power/energy consumption [FLA 04].
Supply voltage can be reduced whenever slack is available in the critical path. However,
this drop will also decrease the computational speed because of the propagation delay of
gates, i.e. Td, which is seriously increasing as Vdd approaches the threshold voltage of the
device Vth, see Figure 5.6. In this figure an inverter implemented on STMicroelectronics
45nm CMOS technology using three different libraries (i.e. HVT, SVT and LVT) was
taken as an example. Figure 5.6 also shows that for the same gate, the LVT
implementation provides the smallest propagation delay while the HVT implementation
presents the largest amount of delay, as it was explained previously in section 5.3.1. The
relation between the propagation delay Td and the supply voltage Vdd can be expressed as:
(5.5)
Hatem Zakaria
Université de Grenoble
84
Part-II
Chapter 5. Power Saving Techniques
Figure 5.6: Propagation delay vs. Vdd for an inverter gate in STMicroelectronics 45nm
CMOS process using HVT, SVT and LVT libraries.
Controlling the supply voltage is hence a power-delay tradeoff: the power
consumption decreases while the delay increases. That is why the supply voltage and the
clock frequency have to be controlled together to guarantee the critical path (i.e., the
slowest path between two clocked components). If the frequency is too high the data
cannot be computed during a clock period, which means that the results sampled by the
clocked components will probably be incorrect. Therefore the critical path delay has to be
lower than the clock period, [POU 01]:
1
(5.6)
Clearly, it is required to decrease the clock frequency before decreasing the
supply voltage and, respectively, increase the supply voltage before increasing the clock
frequency. This principle is needed in all systems to guarantee the critical path: either
Hatem Zakaria
Université de Grenoble
85
Part-II
Chapter 5. Power Saving Techniques
with a hardware solution like some delay lines, [DHA 01] and [DHA 02], or with a
software technique at least. Scaling supply voltage and clock frequency together results in
a reduction in the energy computation as well. While, scaling clock frequency alone is
insufficient because, reducing the clock frequency does not only reduce the processor
power consumption but also increase the computation execution time (which is to a first
approximation linearly dependent on clock frequency). The clock speed reduction results
in a computation taking more time but using the same total amount of energy. Because
the power consumption is quadratically dependent to the voltage level, scaling the voltage
level proportionally along with the clock frequency offers a significant total
power/energy reduction while running a processor at a reduced performance level.
As a conclusion, adapting the supply voltage is very interesting when possible but
this implies the use of Dynamic Frequency Scaling (DFS) to keep correct the system
behavior. The addition of DFS to DVS is called DVFS and results in simultaneously
managing the frequency and voltage which provides a good consumption-performance
tradeoff.
Figure 5.7: Energy Consumption vs. Power Consumption.
Hatem Zakaria
Université de Grenoble
86
Part-II
Chapter 5. Power Saving Techniques
As applications do not require the full computational power at any time, it is
possible to control speed and energy. In many cases, the only performance requirement is
that the task meets a deadline, see Figure 1.3 (a). Such cases create opportunities to run
the processor at a lower performance level and achieve the same perceived performance
while consuming less energy. Figure 1.3 (b) shows that decreasing the processor clock
frequency reduces power consumption but simply spreads the computation out over time,
thereby consuming the same total energy as before. Figure 1.3 (c) shows that reducing the
voltage level as well as the clock frequency achieve the desired goal of reduced energy
consumption at an appropriate performance level [VAR 03].
5.5 Classification of DVFS Algorithms
For hard real-time systems, there are two kinds of scheduling approaches
depending on the scaling granularity: intra-task DVFS (Intra-DVFS) and inter-task DVFS
(Inter-DVFS). The intra-task DVFS algorithms adjust the voltage and the frequency
within an individual task boundary, [SHI 01] and [GRU 01], while the inter-task DVFS
algorithms determine the voltage and the frequency on a task-by-task basis at each
scheduling point. The main difference between them is whether the slack times are used
for the current task or for the tasks that follow. Inter-DVFS algorithms distribute the slack
times from the current task for the following tasks, while Intra-DVFS algorithms use the
slack times from the current task for the current task itself.
5.5.1 Intra-Task DVFS
In scheduling hard real-time tasks, in order to guarantee the timing constraint of
each task, the execution times of tasks are usually assumed to be the worst case execution
times (WCETs). However, since a task has many possible execution paths, there are large
execution time variations among them. So, when the execution path taken at run time is
not the worst case execution path (WCEP), the task may complete its execution before its
WCET, resulting in a slack time. In that case, Intra-DVFS exploits such slack times and
adjusts the processor speed. Intra-DVFS algorithms can be classified into two types
depending on how to estimate slack times and how to adjust speeds.
Hatem Zakaria
Université de Grenoble
87
Part-II
Chapter 5. Power Saving Techniques
Path Based Method
In the path-based Intra-DVFS, the voltage and the clock frequency are determined
based on a predicted reference execution path, such as WCEP. For example, when the
actual execution deviates from the predicted reference execution path (say, by a branch
instruction), the clock speed is adjusted. If the new path takes significantly longer to
complete its execution than the reference path, the clock speed is raised to meet the
deadline constraint. On the other hand, if the new path can finish its execution earlier than
the reference path, the clock speed is lowered to reduce the energy consumption. In the
path-based Intra-DVFS, program locations for possible speed scaling are identified using
static program analysis [SHI 01] or execution time profiling [LEE 00].
Stochastic Method
The stochastic method is based on the idea that it is better to start the execution at
a low speed and accelerate the execution later when needed than to start with a high
speed and reduce the speed later when slack time is found. By starting at a low speed, if
the task finishes earlier than its WCET, it does not need to execute at a high speed.
Theoretically, if the probability density function of execution times of a task is known a
priori, the optimal speed schedule can be computed, [GRU 01]. Under the stochastic
method, the clock speed is raised at specific time instances, regardless of the execution
paths taken. Unlike the path-based Intra-DVFS that can utilize all the slack times of the
task in scaling speed, the stochastic Intra-DVFS may not utilize all the potential slack
times.
5.5.2 Inter-Task DVFS
Inter-DVFS algorithms exploit the “run-calculate-assign-run” strategy to
determine the supply voltage and the appropriate clock frequency, which can be
summarized as follows: (1) run a current task, (2) when the task is completed, calculate
the maximum allowable execution time for the next task, (3) assign the supply voltage
with the corresponding clock frequency for the next task, and (4) run the next task. Most
Inter-DVFS algorithms differ during step (2) in computing the maximum allowed time
Hatem Zakaria
Université de Grenoble
88
Part-II
Chapter 5. Power Saving Techniques
for the next task τ which is the sum of WCET of τ and the slack time available for τ. A
generic Inter-DVFS algorithm consists of two parts: slack estimation and slack
distribution. The goal of the slack estimation part is to identify as much slack times as
possible while the goal of the slack distribution part is to distribute the resulting slack
times so that the resulting speed schedule is as uniform as possible. Slack times generally
come from two sources; static slack times are the extra times available for the next task
that can be identified statically, while dynamic slack times are caused from run-time
variations of the task executions.
A. Slack Estimation Methods
(1) Static Stack Estimation
Maximum constant speed
One of the most commonly used static slack estimation methods is to compute the
maximum constant speed, which is defined as the lowest possible clock speed that
guarantees the feasible schedule of a task set, [SHI 00]. For example, in earliest deadline
first (EDF) scheduling, if the worst case processor utilization (WCPU) U of a given task
set is lower than 1.0 under the maximum speed fmax, the task set can be scheduled with a
new maximum speed f’max = U. fmax. Although more complicated, the maximum constant
speed can be statically calculated as well for RM scheduling, [SHI 00] and [GRU 01].
(2) Dynamic Stack Estimation
Three widely-used techniques of estimating dynamic slack times are briefly
described below.
Stretching to Next Task Arrival time (NTA)
Even though a given task set is scheduled with the maximum constant speed,
since the actual execution times of tasks are usually much less than their WCETs, the
tasks usually have dynamic slack times. One simple method to estimate the dynamic
slack time is to use the arrival time of the next task, denoted by NTA, [SHI 00]. Assume
that the current task τ is scheduled at time t. If NTA of τ is later than (t + WCET (τ)), task
τ can be executed at a lower speed so that its execution completes exactly at the NTA.
Figure 5.8 shows examples of the Stretching-to-NTA method. When a single task τ is
Hatem Zakaria
Université de Grenoble
89
Part-II
Chapter 5. Power Saving Techniques
activated as shown in Figure 5.8 (a), the execution of τ can be stretched to NTA. When
multiple tasks are activated, there can be several alternatives in stretching options. For
example, the dynamic slack time may be given to a single task or distributed equally to
all activated tasks. Cases I and II of Figure 5.8 (b) illustrate these two options,
respectively.
Figure 5.8: Examples of Stretching to NTA.
Priority-based slack stealing
This method exploits the basic properties of priority-driven scheduling such as
EDF. The basic idea is that when a higher-priority task completes its execution earlier
than its WCET, the following lower-priority tasks can use the slack time from the
completed higher-priority task. It is also possible for a higher priority task to utilize the
slack times from completed lower priority tasks. However, the latter type of slack stealing
is computationally expensive to implement precisely. Therefore, the existing algorithms
are based on heuristics, [AYD 01] and [KIM 02].
Hatem Zakaria
Université de Grenoble
90
Part-II
Chapter 5. Power Saving Techniques
Utilization updating
The actual processor utilization during run time is usually lower than the worst
case processor utilization. The utilization updating technique estimates the required
processor performance at the current scheduling point by recalculating the expected worst
case processor utilization using the actual execution times of completed task instances,
[PIL 01]. When the processor utilization is updated, the clock speed can be adjusted
accordingly. The main merit of this method is its simple implementation, since only the
processor utilization of completed task instances have to be updated at each scheduling
point.
B. Slack Distribution Methods
In distributing slack times, most Inter-DVFS algorithms have adopted a greedy
approach, where all the slack times are given to the next activated task. This approach is
not an optimal solution, but the greedy approach is widely used because of its simplicity.
Table 5.1 summarizes all previously mentioned DVFS scheduling algorithms with
the main characteristics (i.e. scaling method and slack computation) of each technique.
Table 5.1: Classification of DVFS Algorithms.
DVFS
Algorithm
Intra-DVFS
Scaling Method
Slack
Computation
Path-based method
Stochastic method
Off-Line
Maximum Constant Speed
Inter-DVFS
Stretching to NTA
Priority-based slack stealing
On-Line
Utilization Updating
Hatem Zakaria
Université de Grenoble
91
Part-II
Chapter 5. Power Saving Techniques
5.6 DVFS Architecture Overview
DVFS is a technique that allows the processor to dynamically alter their voltage
and speed at runtime under the control of voltage scheduling algorithms. Implementing
DVFS in a general-purpose microprocessor system includes three key components:
1.
An operating system that can smartly vary the processor speed.
2.
A regulation loop which generates the minimum voltage required for the
desired speed.
3.
A microprocessor which operates over a wide voltage range.
Nowadays, because of the instruction complexity and the access time to memory
through different levels of cache, it is extremely hard to predict the execution time of a
program and consequently the real speed of a processor. DVFS implementation generally
assumes that the speed of the processor is constant (do not care about the cache
mechanisms) and takes the worst case. With such an assumption, the processors run faster
than the minimal speed enabling the highest energy savings. With a feedback system, it is
possible to control with a high accuracy the power/energy consumed by the circuit. This
is done respecting all the specifications and needs of the applications executed by the
processor.
Fig. 5.9 shows the block diagram of the DVFS system. The sensor integrates an
instruction counter and the clock is used as a time reference. Because the processor
informs the sensor every time an instruction completes, it can calculate the real speed of
the processor in Millions Instructions per Second (MIPS), averaged on a period of
computation. Indeed, each executed application indicates to the co-processor through a
software layer (OS) the speed it requires. The information about the speed can be inserted
statically into the code at compile time (API - Application Programming Interface –
function calls in the code) or computed dynamically at run time by the operating system.
Therefore combining the information about the real-time requirements (estimated in
MIPS) of the applications and OS running on the microprocessor enables us to create a
computational load profile with respect to time. Consequently, using this profile it is
Hatem Zakaria
Université de Grenoble
92
Part-II
Chapter 5. Power Saving Techniques
possible to apply a fine-grain power/energy management (software) allowing application
deadlines to be met. Note that task scheduling is an important issue when using this
technique. Sophisticated scheduling policies, as the one proposed in, [ZHU 03], can
easily take advantage of this work by simply interfacing to the hardware features
proposed using an API. The co-processor integrates with the sensor two main parts, the
load error prediction unit and the digital controller part. The load error prediction
computes the amount of error in the load profile (i.e. the difference between the set point
sent by the OS and the calculated average speed by the sensor). The digital controller part
dynamically controls the voltage/frequency scaling hardware which integrates a DC/DC
converter to scale the supply voltage as well as the programmable clock generator to
control the clock frequency in order to satisfy the application computational needs with
an appropriate management strategy. This leads to a lower supply voltage and frequency
reducing the system power/energy consumption. Indeed, the lower the processor speed,
the lower the power consumption.
Figure 5.9: Voltage/Frequency Control Simplified Architecture.
Hatem Zakaria
Université de Grenoble
93
Part-II
Chapter 5. Power Saving Techniques
There are many ways to control the voltage/frequency scaling hardware
(Proportional Integral Derivative (PID) controller, fuzzy logic compensators, etc). Since
the control is performed by the digital controller of the co-processor, this enables us to
choose the way the control operates. The control depends on the microprocessor and the
DC/DC converter. For each circuit, it is necessary to perform a complete characterization
of the whole system in order to tune the control parameters at best. For instance, the
period of the external sensor clock is crucial since it determines the accuracy of the
calculated average speed. Moreover, it determines the system speed response. In fact the
coprocessor sensor integrates also a register to memorize the number of executed
instructions (i.e. the counter output) on a predefined period and determines the average
speed on each rising-edge of the clock. If this period is short, the system will be fast but
the calculated average speed will not be accurate. On the opposite, a long period leads to
a slow system but to a more accurate speed. Therefore the period used to estimate the
speed must be chosen carefully
5.7 Conclusions
The CMOS power consumption in the nanometric scales is becoming a really
important design constraint. Therefore, optimization is required at all circuit levels in
order to get low-power circuits with an acceptable level of performance. The goal of this
chapter was to provide to the user the necessary concepts to understand and well
characterize the causes of different sources of CMOS power dissipation. From which,
designers can choose the appropriate way to reduce the effect of each contributing part in
a CMOS circuit. Therefore different low-power solutions were investigated, for example,
the impact of leakage power can be reduced using multi-threshold, body biasing or power
gating techniques. On the other hand, the impact of dynamic power consumption can be
reduced by clock gating or DVFS techniques. Since supply voltage scaling affects both
static and dynamic power, DVFS with power gating are chosen during the rest of the
thesis as the promising techniques for a global CMOS power reduction. Therefore
different DVFS algorithms and the main DVFS architecture were explained in details.
Hatem Zakaria
Université de Grenoble
94
Chapter 6
Controlling Uncertainty and Handling the
Process Variability
6.1 Introduction
Due to continuous scaling of CMOS technology, systems containing a large
number of processors and on-chip memories have become a reality. Consequently, novel
architectures that allow various cores communicate to each other via the Network-onChip (NoC) paradigm have emerged as a promising alternative to traditional bus-based or
point-to-point communication solutions [DAL 01]. By eliminating global wires, the NoC
approach provides the needed scalability and predictability, while facilitating design
reuse. Moreover, the NoC approach offers a matchless platform for implementing the
globally asynchronous, locally synchronous (GALS) design paradigm, [CHA 84] and
[MUT 00]; this makes the clock distribution and timing closure problems more
manageable. In addition, a GALS design style fits nicely with the concept of different
voltage-frequency domains, which provide better power-performance tradeoffs than its
single voltage, single clock frequency counterpart, while taking advantage of the natural
partitioning and mapping of applications onto the NoC platform.
Besides this huge increase in system complexity, systems designed in nanoscale
technologies suffer from systematic and random variations in process, voltage, and
temperature (PVT). Nowadays, within die variations play an increasingly important role
in system power consumption and performance as the technology scales down [BOR 03].
Since designers cannot rely on the accuracy of the nominal parameter values, there is a
tremendous need for on-line techniques that can cope with such dynamic variations. More
precisely, there is a need for efficient algorithms and built-in circuitry able to adapt the
system behavior to workload variations and, at the same time, cope with the parameter
variations which cannot be predicted or accurately modeled at design time.
Hatem Zakaria
Université de Grenoble
95
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
Figure 6.1: A NoC Architecture with Multiple Voltage-Frequency Domains.
Not surprisingly, designing appropriate dynamic voltage and frequency scaling
(DVFS) control algorithms for run-time control of different voltage-frequency domains in
a GALS system is a matter of great importance. While this problem has been addressed
before by a number of authors [OGR 08], [WU 04] and [NIY 05], no attention has been
paid to add the feature of controlling the impact of manufacturing process variations to
the capabilities of the DVFS controllers. Starting from these overarching ideas, in this
chapter, we specifically focus on proposing a new NoC architecture, which have a
process variability robust adaptive control technique. This control technique can improve
the performance, power consumption, and reliability of future NoC architectures in a
synergistic manner. We consider NoC architectures consisting of multiple voltagefrequency islands, or voltage-clock domains, as shown in Figure 6.1. Each island is a
synchronous region, i.e., the cores within the same island share a single clock and supply
Hatem Zakaria
Université de Grenoble
96
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
voltage that can be controlled independently of other islands. Communication across
different clock domains is asynchronous and it can be achieved through the use of the
control switches integrated within the PSTR as presented previously in Chapter 4.
The contribution of our work is twofold: First, we propose a novel methodology
to dynamically control the speed of each island. The controller not only considers the
dynamic workload variations, but also ensures that the operating frequency does not
exceed the maximum allowed value for a given process variability effect. Then, on the
following Chapter we will study, analyze and design a complete circuit for the adaptive
control system and its different parts on a real processor on STMicroelectronics 45nm
CMOS technology.
6.2 Related Work Contributions
Generally speaking, feedback control reduces the systems sensitivity to parameter
variations. So, design of nanoscale MPSoCs is likely to benefit from the systematic
approaches from modern control theory [REB 10] and [JUA 05]. As such, in [MAR 02],
the authors propose using adaptive body biasing and dynamic voltage scaling
simultaneously to reduce power in processors with a single clock domain. Partitioning
NoCs into multiple voltage-clock islands to minimize the energy consumption is
considered in [OGR 07]. The power management for NoCs have been recently
considered by several authors. The work in [SIM 04] presents a stochastic power
management technique for NoCs. In [SHA 03], the authors present a run-time technique
to satisfy peak power consumption constraints in interconnection networks by controlling
the local power consumption of each router. An on-line DVFS algorithm based on
proportional-integral-derivative (PID) controller for multiple clock domain processors is
presented in [WU 04]. PID control requires manual tuning of the control gain which may
become prohibitive as the number of voltage-clock domains increases. To address these
shortcomings, we develop the architecture of the voltage-frequency domains used within
a NoC, put limits on the maximum operating clock frequency for each voltage-frequency
island according to the impact of the process variability effect on it and take the
advantage of tools from modern control theory to build a process variability robust
energy controller. More precisely, we propose:
Hatem Zakaria
Université de Grenoble
97
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
-
A novel NoC architecture model for multiple voltage-frequency island design
-
Activity monitors integration in different voltage-frequency islands to limit the
maximum allowable clock frequency used according to the process variability
impact on this island.
-
Feedback control algorithms that control the speed of each voltage-frequency
island to cope with the PVT and workload variations.
6.3 Process Variability Robust NoC Architecture
In a GALS system, process variability and fabrication yield can be improved by
smartly removing tasks over fault or low performance nodes and assign them into other
high performance ones, as shown in Figure 6.2. As each processing node performance
could be measured by some kind of an activity monitor, a global system manager is able
to distribute the tasks over the nodes. The task assignment takes into account the node
performances and the task processing loads. The main target of this manager is to
guaranty an overall chip performance. With this kind of approach, it is no more required
to separately guaranty a performance for each node which relaxes the fabrication
constraints and permits a yield enhancement.
Figure 6.2: Fabrication yield control by distributing tasks over different processing nodes
in a GALS system.
Hatem Zakaria
Université de Grenoble
98
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
Based on the previous ideas we propose a solution to manage the impact of
process variability in a multiprocessor GALS system. In a GALS system, we can choose
to slow down some parts of the circuit while allowing others to operate at the maximal
frequency. This enables more energy saving opportunities than conventional systems
built around one processor and allows adapting the clock speed to the local process
quality [ZAK 10b] and [REB 10]. Moreover, it has also been shown that multiple-clock
designs (GALS) with voltage scaling are even better not only in terms of power and
performance, but also in terms of variability [MAR 05]. As a result building a system
based on the implementation of hardware resources whose performances are
unpredictable at the fabrication time requires having total management strategies of the
performance by adaptation of the voltage/frequency in order to respect the real time
constraints of the application and the allocated energy budget. So it is proposed to use
automatic feedback loops based on:
1. Measurement of the real local performances of silicon and the actuation of the
parameters voltage/frequency (hardware level).
2. The suitable hardware resource allocation for the execution of a task in the
assigned time/energy budget (operating system level).
The idea is the use of dynamic DVFS with task scheduling techniques to
dynamically manage not only the energy budget but also the activity of the processing
node based on advanced automatic control techniques. These techniques will allow an
optimal regulation of the clock frequency and the supply voltage according to the
computational load and the load distribution in the various GALS processors. In order to
compensate for the process variation due to the technology dispersion, and optimize the
operation of the circuit, the dynamic voltage/frequency regulation itself should be selfadjustable and robust against process variability with the variable loads and dispersion
models. Implementing DVFS in a GALS system presents many design challenges:
1. Specific mechanisms are needed, allowing the different domains to communicate
and synchronize in a reliable manner.
2. Splitting the computational load on the processors must be done as a trade-off
with the communication load. Usually the communication systems consume a lot
of energy.
Hatem Zakaria
Université de Grenoble
99
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
3. Interdependencies between different clock domains impact the overall
performances. A domain operating at a low speed tends to slow down the
communications and to reduce the processor speed in communication.
4. Sensing the local process quality and processor speed can also be a design issue.
Many researches have been done in this field to develop DVFS and to guaranty a
correct system behavior even if the process variations are huge. In [SEM 02], a GALS
system model has been developed to gradually decrease the clock frequency when there
are little observable changes in the workload. Compiler for controlling GALS systems
have been developed too as in [MAG 03]. However, there are very few studies
integrating power and process variation management together.
One of the propositions to handle the uncertainty of a processing node over a
GALS system due to the impact of process variability and also to reduce its energyconsumption by means of automatic control methods is the use of activity monitors. The
activity monitors can be embedded in each voltage-frequency island (i.e. processing
node) in order to provide a real performance measurement of different voltage-frequency
islands after the fabrication process, which will be used afterwards by the operating
system to distribute tasks over different processing nodes and assign those low or fault
processing node tasks over idle ones. This means the need for rescheduling tasks in each
processing node to meet the new assigned deadlines. This will be achieved by controlling
the supply voltage/ clock frequency, which in accordance will control the power/energy
of consumption.
Figure 6.3 shows a simplified architecture of this control system using three
different control loops [ZAK 10a]. The control loops are applied in different architecture
levels: control in energy of consumption (supply voltage), control in the processing
power (supply voltage/clock frequency) and in the management of the Quality of Service
(QoS) provided by the application. Voltage, frequency and energy control loops are used
in order to adapt the energy of consumption and the process variability effect. The other
control loop is needed to deal with the QoS (at the application level), the limitation of
processing and/or communication power and the constraints in energy consumption. Note
that the QoS control loop is out of the scope of this thesis.
Hatem Zakaria
Université de Grenoble
100
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
Figure 6.3: Energy/Performance Control Simplified Architecture.
In Figure 6.3, the QoS controller sends a set of information (required speed, No.
of instructions, and deadlines for each instruction), which are given by the operating
system (that can be statically inserted into the code or dynamically computed at run time
by the OS). There are also sensors embedded in each processing unit in order to provide
real-time measurements of the processor speed. Therefore, combining this information
about the real-time requirements of the applications and the OS enables us to create a
computational load profile with respect to time. Consequently, using such a profile makes
possible to apply a fine-grain power/energy management allowing application deadlines
to be met. Note that task scheduling is an important issue when using this technique.
Sophisticated scheduling policies, as the one proposed in [ZHU 03], can easily take
advantage of this work by simply interfacing to the hardware features proposed using an
API (Application Programmable Interface). Here, the DVFS hardware part contains a
DC-DC converter for voltage regulation and a programmable clock generator for
frequency regulation. The energy controller dynamically controls the DC-DC converter to
Hatem Zakaria
Université de Grenoble
101
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
scale the supply voltage as well as the clock frequency in order to satisfy the application
computational needs with an appropriate management strategy. Note that, the maximum
allowable clock frequency of the programmable oscillators is defined on the system startup according to the evaluation of process variability impact on each voltage-frequency
island. This information is received from an activity monitors located in each processing
domain. By this way, we could manage the impact of process variability by the
application of DVFS with task scheduling techniques, under the control of an
Energy/Performance controller.
6.3.1 Overall Architecture
Using both a Network on Chip (NoC) distributed communication scheme and a
GALS approach offers an easy integration of different functional units thanks to a local
clock generation [KRS 07]. Moreover, it can allow better energy savings since each
functional unit can easily have its own independent clock frequency and supply voltage.
Hence, NoC architectures combined with a multi-power domain GALS system appear as
natural enablers for distributed power management systems as well as for local DVFS. In
this section, we propose a new architecture for the voltage-frequency islands in a GALSNoC system. This architecture helps in modeling both DVFS and local process quality
management.
In Figure 6.4, a detailed block diagram of the novel voltage-frequency island
architecture in a GALS-NoC system is shown, [ZAK 10a]. Since in advanced
technologies, the associated processor leakage has an important contribution to the
system energy consumption, the Sleep Mode Management block is used to put useless
processors into a sleep mode in order to limit their static power consumption. On the
other hand, the Speed Sensor is used to calculate the Real-Time Speed of the processing
node in MIPS. The Activity Monitors disseminated into each voltage-frequency island
are used to locally evaluate the process quality in terms of its relative speed with respect
to the other processing nodes (i.e. Intrinsic Speed). The Intrinsic Speed value defines the
upper clock frequency bound of the operating voltage-frequency island. We have also
two actuators: the DC-DC converter which provides the supply voltage and the
Asynchronous Programmable Ring which generates the desired clock frequency to each
Hatem Zakaria
Université de Grenoble
102
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
local processing node. The Digital Controller manages the voltage/frequency couple. It
processes the error between the Unit Speed and the speed set point information extracted
from the information sent by the operating system (i.e. No. of instructions and deadlines)
within a closed loop system, and by applying a well-suited compensator sends the desired
voltage and frequency code values to the DC-DC converter and to the clock generator.
Consequently, the system is able to locally adapt their output voltage and clock frequency
values clock domain by clock domain in order to limit their dynamic power consumption.
Figure 6.4: Energy/Performance Management Architecture for a Voltage-Frequency
Island in a GALS-NoC System.
In this model, the ANoC (Asynchronous NoC) is the reliable communication path
between the different clock domains. Therefore, the communication across different
clock domains is asynchronous and it can be achieved through the use of the control
switches integrated within the PSTR as presented previously in Chapter 4. This can fix
the speed of data communications between any two different processing nodes to the
Hatem Zakaria
Université de Grenoble
103
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
slowest communicating node. This local synchronization mechanism is based on
Req_ANoC and Ack_ANoC handshake signals. As a result, we could have a secure
communication with no metastability problem at the clock domain crossing and an
adaptation to process variability. Within this framework, we explore two feedback control
techniques, namely regulation and tracking, as follows:
1- Start-Up Regulation: For this scenario, we assume that the activity monitor
located in each voltage-frequency island evaluates the impact of the
manufacturing process variability within it in terms of the Intrinsic Speed.
Subsequently, this value is sent through the ANoC to the OS, which will use it in
evaluating the relative performance of the different NoC voltage-frequency
islands. As a result, the OS can distribute tasks over different processing nodes,
and assign those low or fault processing node tasks over idle ones. The task
assignment takes into account the node performances and the task processing
loads. Moreover, the Intrinsic Speed value is also used by the programmable
oscillator to define the maximum allowable clock frequency to be generated for
this processing node. So that, the maximum number of processing nodes in a chip
could be used even at an acceptable lower performance level with respect to other
ones. This guaranties the overall chip performance instead of separately
guarantying each node performance, which relaxes fabrication constrains and
permits more yield enhancement.
2- On-line tracking: This scenario is more general, in the sense that it can scale the
voltage and clock frequency within a range of values in order to minimize the
energy/power consumption, as well as provide robustness in operation. In this
case, we have an upper bound on the operating clock frequency, which is
previously defined for each voltage-frequency island by the activity monitors.
Moreover, we assume there exists a lower bound on the operating frequency
(hence on the voltage) for a subset of voltage-frequency islands that doesn’t
violate the critical path condition of their processing nodes. The proposed
controller sets the speed of each island such that it minimizes the penalizing high
voltage (hence clock frequency) run time while guaranteeing a computational
speed performance.
Hatem Zakaria
Université de Grenoble
104
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
6.3.2 Sensing the Computational Activity
As mentioned in Chapter 5 activity sensors play a critical role in DVFS systems
and must be selected carefully. However we are facing many difficulties in order to
implement a sensor that measures the processor activity accurately. Different assumptions
were proposed, here is an example for two of them:
Current Activity Sensor
It consists of an analog solution to monitor the activity of the system with respect
to the amount of current consumed. In [RIU 06], a monitor fabricated in a 90nm CMOS
technology which is able to estimate the circuit activity is proposed. Unfortunately, this
kind of sensors has very limited applications, for example in our case it's difficult to say
if the activity is strong or not. Indeed, the current is data-dependant for a part and
activity-dependant for the other part (we can say that the current gives an image of the
executed instructions). Moreover, it is also difficult to plan the deadline of the task, so
this sensor is not well-suited for our DVFS application.
Instruction Counter
There exist two possible solutions to implement this kind of activity sensing:
- Direct instruction count: by incrementing the counter each time a new instruction has
been executed and calculates the average value with respect to a reference clock. It is a
simple and efficient way to estimate the activity and the progress in a task. The limit is
that it is difficult to accurately compute the time. Indeed, with CISC machine (not RISC),
it is difficult to predict the remaining clock cycles or the speed for reaching a deadline.
- Statically computing the clock cycles: at compile time, we calculate a bound for the
number of clock cycles. We estimate here, instruction by instruction, the number of
cycles. This is a little bit more complex and more accurate. The gain is not formally
proven compared to a simple counter.
Hatem Zakaria
Université de Grenoble
105
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
6.3.3 DC-DC Converter
The DC/DC converter is a circuit that converts a voltage source (of direct current)
from one voltage to another. Two kinds of DC/DC converter can be used. The first class
is a continuous DC/DC converter which provides an accurate supply voltage, but with a
weak efficiency. The second kind of converter used is a digitally controlled stepconverter (Vdd-hopping converter) that has a better efficiency but discrete output values.
The Vdd-hopping technique was modeled in our system, where its principle is described
in [ALB 08] and [ALB 09]. Two voltage levels are available (Vlow and Vhigh) and the one
or the other could be achieved with a certain transition time and dynamics that depend
upon the internal controller of the Vdd-hopping, as shown in Figure 6.5 [MIE 07].
Figure 6.5: Chronogram of Vdd-Hopping (a) Falling and (b) Rising Transitions.
6.3.4 Frequency Controller
The frequency controller is a vital part in our proposed NoC architecture. Given
that, our goal is to design process variability robust voltage-frequency islands in a NoC
system which has the minimum possible energy consumption. This could be done by
limiting the upper clock frequency bound of the different processing islands with respect
to process variability impact on each. Subsequently, adapt their clock frequency to
dynamic workload variations. Therefore, we have to carefully choose our clock frequency
generator.
Hatem Zakaria
Université de Grenoble
106
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
Asynchronous PSTR are considered promising solution for generating clocks. It
has the low power consumption and process variability robustness advantages of
asynchronous circuits, as it was shown in Chapter 3. Moreover, PSTR can be easily
reconfigured in order to change its output clock frequency. Furthermore, PSTR output
frequency has a linear change with respect to the supply voltage. Consequently, it could
be supplied with the output of the Vdd-Hopping to give the corresponding clock frequency
at different voltage levels. As a result, our design in the rest of the thesis will be mainly
focused on the use of the asynchronous PSTR as the clock generator part in the system.
6.4 NoC Control Method
As the GALS-NoC voltage frequency islands can run at several voltage levels
with an available frequency range for each level. In order to control the energyperformance tradeoff we propose to calculate a Speed Set Point to track, denoted ωsp (in
MIPS), for each task that the processing domain has to execute. This set point is based on
some task information sent by the operating system: for each task Ti the operating system
provides the computational load (i.e. the number of instructions Ci) and the deadline Ni,
as shown in Figure 6.4.
The presence of deadline and time horizon to compute tasks naturally leads to
predictive control. Predictive control consists in finding an open-loop control profile over
some time horizon and in applying it until the next time instant. The stability relies in the
way the open loop control is chosen. The most classical strategy consists in taking the
open-loop control that minimizes a cost function. The horizon can be constant, infinite or
less classically contractive as in [DUR 09]. For further details on predictive control, one
can refer to [MAY 90]. The key point of the present control problem will be the choice of
the open-loop strategy and its computational cost. Indeed, if predictive control is known
to be a robust approach, it is also often associated to high computational cost which is not
acceptable in the present case. The strategy adopted here is called fast predictive control
and consist in taking advantage of the structure of the dynamical system to fasten the
finding of the open-loop control, [ALA 06]. The simplicity of the system considered here
is therefore very suitable for such strategies.
Hatem Zakaria
Université de Grenoble
107
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
Two speed set point building methods are illustrated on Figure 6.6 for a three-task
example. The digital controller is an upstream from the Vdd-Hopping and the
asynchronous PSTR, where it calculates the voltage and frequency values that have to be
sent to these actuators, in order to minimize the energy consumption while guaranteeing
the computational performance [DUR 09a]. Therefore, the control behavior is restricted
to only two voltage levels Vlevel = {Vhigh, Vlow} with three different frequency levels Flevel
= {Fhigh, Flow1, Flow2}, where Fhigh is the maximum possible frequency at Vhigh, Flow1 is the
maximum possible frequency at Vlow, and Flow1 > Flow2. Let ωmax, ωmax_L1 and ωmax_L2
denotes the processing unit speed at Fhigh, Flow1 and Flow2 respectively. An intuitive
method would consist in building the average speed set point of each task that is the ratio
Ci/Ni. With such an approach the Ci instructions are performed and ended at Ni, Figure
6.6 (a). However, this method is not energy-efficient. Indeed, one could see that, as soon
as the average speed set point of a task is higher than ωmax_L1 - such as for the task T2. The
task has to be executed all the time at Vhigh to not miss the deadline. Therefore, the chip
will consume a lot by running the whole task at the penalizing highest supply voltage. A
solution to avoid that is to split the tasks into two time intervals, as follows:
i) First (if required), the chip begins to run at Vhigh with the maximum available
frequency in order to achieve the maximum possible speed ωmax - such as for T2
from t2 to tswitch on Figure 6.6 (b).
ii) Then, the task can be finished at the low voltage with a speed under ωmax_L1. The
switching time to go from Vhigh to Vlow - denoted tswitch in the example - has to be
suitably calculated in order that the performed number of instructions during the
two time intervals corresponds to the number of instructions to do Ci, i.e. the task
fits with its deadline and the performances are so guaranteed.
Thus, this proposal allows reducing the penalizing high voltage running time tVhigh
and so the energy consumption as much as possible since the maximum available
frequency is automatically used when the system is running at high voltage.
Hatem Zakaria
Université de Grenoble
108
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
(a) Intuitive Average Computational Speed Set Point Building.
(b): Energy-Efficient Speed Set Point Building.
Figure 6.6: Different Computational Speed Set Point Buildings and their Impact on the
Energy Consumption (i.e. the Penalizing High Voltage Running Time).
Hatem Zakaria
Université de Grenoble
109
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
Indeed, the computational load used to treat a given task is equal with both strategies
since the darken surface areas of the task T2 are respectively the same on both drawings
in Figure 6.6. Nevertheless, the switching time tswitch could not be a priori known and
therefore, a predictive control law is required to dynamically calculate this switching time
[DUR 09b]. That point will be detailed in the following subsections. Furthermore, the
task information given by the operating system is not enough anymore to build such an
energy-efficient computational speed set point. We also need some information about the
system resources, such as the maximum speed for the different voltage levels, i.e. ωmax,
ωmax_L1 and ωmax_L2. Moreover, we need to know what it has already been done, and for
this reason we propose to use a closed-loop system in order to predict the minimum high
voltage running time.
6.4.1 Fast Predictive Control
To minimize the energy consumption the system has to run the shortest possible
time with the penalizing high supply voltage. Thus, the controller dynamically calculates
if the system needs to run at Vhigh (and at ωmax) or at the low voltage level (and a speed
lower than ωmax_L1) will be enough to compute the task before its deadline. This principle
could be formulated as a predictive control problem: for each task Ti, what is the speed
set point which will minimize the high voltage running time tVhigh while guaranteeing that
the executed instruction number is equal to the number of instructions Ci to do:
min
/
Nevertheless, the speed set point can be obtained in an easier and faster way. We
simply need to know what the processor has to do and how much time is available to do
it. Let ωj and ωj+1 are the two computational speeds which are immediate neighbors to
“predicted average speed” δ, (i.e. ωj > ωj+1 and ωj > δ ≥ ωj+1). The aim of the controller is
to dynamically calculate δ which is required to perform the task exactly on its deadline, in
order to know if the task has to be executed at the more penalizing voltage level Vj or on
the contrary if Vj+1 will be enough to perform it before its deadline. The value of δ can be
easily described as the ratio between what the processor has to do to compute the task
Hatem Zakaria
Université de Grenoble
110
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
minus what it has already done (that is corresponding to what it remains to do) and the
remaining time before the end of the task, this can be mathematically expressed as:
∑
(6.1)
where ti is the beginning of the task Ti, ti is the current time and tk+1 is the next sampling
time. Li denotes, the remaining available time to complete a given task. This equation can
then be implemented as following:
Ω
Ω
.
Ω
(6.2)
where Ω is the integration of the computational speed ω, Ts is the sampling period and tk-1
is the last sampling time. Moreover, a conditional instruction is added to be coherent
with Equation (6.1): indeed, the computational speed ω is integrated on the running time
of each task and so when a task execution is completed, which means in the last sampling
time before its deadline, the variable Ω is reset to zero.
The computational speed set point is then deduced from the dynamic value of δ
and so are the voltage and frequency levels. Indeed, the device runs with the more
penalizing neighboring speed ωj during a certain time. As the running computational
speed of the device is higher than the average predicted speed because ωj > δ , the value
of δ decreases until achieving δ(tk+1) = ωj+1, which means that the task can be finished
with the less penalizing neighboring speed ωj+1.
To conclude, this control method is called a fast predictive control technique
because the strategy consists in predicting the time when the system has to switch from
the more penalizing voltage level to the less one, but to calculate this switching time, the
controller does not need to compute a complex optimization algorithm since the
computation is easy and immediate. Moreover, the computational performances are
guaranteed because the speed set point to track is always higher or equal than required.
Therefore, the control law is robust thanks to the prediction [DUR 11].
Hatem Zakaria
Université de Grenoble
111
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
According to the two voltage levels and the three frequency levels we have
previously defined with the corresponding computational speed at each of them, the
control algorithm can be defined as:
If
δ
_
Else if
δ
_
(6.3)
Else
6.4.2 Tracking Efficiency
The proposed control strategy is easy to implement, except for the parameters ωm,
i.e. the possible computational speeds when the device is supplied with the voltage Vm
and the clock frequency fm. Since we would like to have a controller robust to process
variability where the value of fm and Vm are not known a priori and could vary, therefore
we propose to estimate ωm.
Let
denotes the estimation of the computational speeds. The solution consists
in measuring the speed for each couple of voltage/frequency levels. Therefore all the
speeds ωm are measured when the system is running with the supply voltage Vm and the
clock frequency fm. In order to know that we use the previous values of the control
variable and to filter the fluctuation of the measured speed, a weighted mean is used, with
the weighted value 0 ≤ ρ ≤ 1. The following algorithm summarizes that principle:
If
Then
Hatem Zakaria
1
1
1
.
_
_
Université de Grenoble
.
(6.4)
112
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
However, a problem could appear during the voltage transitions. Indeed, the
algorithm (6.3) allows to dynamically calculate the predicted average speed δ and to
compare this value with the computational speeds ωm (in fact with the estimation of the
speeds
). For example, for a given task the system runs with the voltage Vhigh and the
frequency Fhigh while δ is higher than
_
_
, but as soon as δ becomes lower than
the controller changes the voltage and frequency levels. Nevertheless, during this
level transition the estimated speed could also vary (due to the fluctuations in the
estimation) and so becomes lower than the current value of δ. Because of this
phenomenon, the levels could hence switch and switch again and a solution is so
required. For this reason, we propose bounding the value of ρ in order that the variation
of the estimation is always lower than the variation of δ.
First, let ∆
denotes the variation of the estimation of the computational speeds,
obtained from Equation (6.4):
∆
Then, let ∆
the value of Ω
∆
·
(6.5)
denotes the variation of the predicted average speed. By substituting
into Equation (6.2), then
Ω
can be expressed as:
·
(6.6)
As the number of instructions Ci usually does not change for a given task,
for small
. Moreover,
then
values of Ts. Consequently, the first term on the right hand side of Equation (6.6) can be
approximated as
. As a result, the variation of δ is given by:
∆
(6.7)
Finally, we need to get the condition for which |∆
Equations (6.5) and (6.7), this can be expressed as follows:
Hatem Zakaria
Université de Grenoble
|
|∆
|. From
113
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
·|
|
·
·|
(6.8)
|
Therefore, Equation (6.8) helps us in finding the proper ρ value between zero and
one to have the best tracking efficiency. Simulation results in the following sections
shows that choosing smaller ρ values close to zero achieve better tracking, as we limit
large fluctuations in estimated computational speed
at the specified voltage and
frequency levels, by limiting the amount of contribution of measured speed ω to it, see
Equation (6.4).
6.4.3 Digital Controller Algorithm
Equation (6.4) allows as tracking the system variations efficiently by selecting a
suitable value for ρ. Furthermore, no information on the system parameters is required at
all, that is very important for process variability since the voltages and the frequencies are
not known and could vary. Thus, the controller just needs to measure the computational
speed ω and get the Ci and Ni information from the operating system in order to estimate
the value of the computational speeds
i.e.
_
and ω
_
at the two different frequencies defined at Vlow,
. Note that each
is updated only as long as we stay longer at
its corresponding frequency level, otherwise it remains unchanged. By multiplying
_
and ω
_
by the remaining time Li respectively, we could know how many
instructions can be executed at these two threshold speed values (i.e. ∆
and ∆
be executed ∆
_
·
·
_
·
). Comparing the remaining number of instructions to
Ω
, from Equation (6.2) with ∆ and ∆ ,
equation (6.3). Finally, if the remaining time
is less than Ts (i.e. the task has been
we could specify at which operating region we should be as shown previously by
completed and we are going to start a new one, we reset the value of Ω to zero and set
to be equal to the new task deadline Ni. Otherwise, the loop to update the value of
the computational speeds
_
and
_
, estimate ∆ and ∆ , and compare them
with the value of ∆ is repeated. Figure (6.7) explains in details the control algorithm of
the digital controller used in each voltage-frequency island GALS-NoC.
Hatem Zakaria
Université de Grenoble
114
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
Figure 6.7: Flow Chart of the Digital Controller Algorithm.
Hatem Zakaria
Université de Grenoble
115
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
6.5 Simulation Results
6.5.1 Load Modeling
In order to build and test a MATLAB behavioral model for a GALS-NoC
processing node, we have used the definitions for the main sources of power dissipation
shown in Chapter 5. A fictive load that behaves more like a real loaded processor has
been built using MATLAB/Simulink [ZAK 10a]. It uses Equation (5.1), (5.2), and (5.3)
in representing its output current waveform and power dissipation variations. Figure 6.8
shows the processing node behavior observed with such a simulation. It gives the current
variation and the processed number of instructions of our fictive processor which depends
on the applied voltage and frequency values. The effect of loading a new instruction into
the processor on the current waveform is also shown by the added irregular ripples with
each instruction. Also the sampling effect on the processor current waveform has been
taken into consideration. Moreover, this model is enabled to change its computational
speed with respect to the voltage/frequency pair applied to it.
Figure 6.8: Simulink simulation for the processing node load model showing its current
variations with respect to different processing instructions.
Hatem Zakaria
Université de Grenoble
116
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
This model helps us to verify the proposed NoC control methodology by testing
the effect of applying DVFS through the use of the digital controller in minimizing the
average power and energy consumption while guarantying the system performance with
parameter variations.
6.5.2 Workload Tracking Efficiency
This subsection presents some simulation results to evaluate the tracking
efficiency of the proposed digital controller. A scenario with three tasks to execute is
proposed: the first task starts with 4 instructions to do in 0.5µs, then a 65 instruction task
has to be executed in 2.5µs and the last one has to compute 10 instructions in 1µs, these
data are provided by the OS. Figure 6.9 shows the simulation result of the system with 2
voltage levels and 3 frequency levels. The top plot shows the average speed set point
Ci/Ni of each task (for guideline), the predicted average speed δ (for guideline) and the
measured computational speed ω, while the bottom plot shows the supply voltage Vdd.
Figure 6.9: Matlab Simulation Result of the Digital Controller.
The energy consumption is calculated in order to have an idea of the reduction
achieved. Thus, the Equation (5.1) is used and a ratio of this power consumption is added
due to the Vdd-hopping principle: 20% more during the voltage transition times and 3%
more during the steady state [DUR 09]. Finally, the integration during the whole running
Hatem Zakaria
Université de Grenoble
117
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
time gives the total energy consumption. The control strategy is compared with a system
without Dynamic Voltage and Frequency Scaling (DVFS) mechanism: the supply voltage
is fixed to the most penalizing level, i.e. Vdd = Vhigh, and so is the clock frequency
fclk_=_fhigh. Figure 6.9 shows that with the 2 possible voltage levels the system runs during
more than 75% of the simulation time at the low voltage. As a result, a reduction of the
energy consumption more than 20% is achieved (in comparison to a system without
DVFS mechanism) with the 3-task test bench proposed [ZAK 10a]. Note that as far as we
have frequency levels less than the two maximal possible clock frequencies (i.e. fhigh,
flow1), this will contribute to the instant dynamic power saving but not to the energy
consumption. More simulation results will be shown for the system workload tracking on
MIPS-R2000 processor with the 45nm CMOS parameter variations on Chapter 7.
6.5.3 Robustness to Process Variability
As the proposed control strategy does not use any information on some system
parameters, the controller adapts itself with these uncertainties. Figure 6.10 shows how
the system is still working for different process variability effects.
Figure 6.10: Matlab Simulation Results to Test the System Robustness with Different
Degrees of the Process Variability Effect.
Hatem Zakaria
Université de Grenoble
118
Part-II
Chapter 6. Controlling Uncertainty and Handling Process Variability Effects
In Figure 6.10 different degrees for the process variability effect were tested,
which correspond to “no variability”, “10% of variability” and “20% of variability”. One
could see that the estimation of the maximum computational speed ωm allows the system
to still work, even if the processing node does not work as expected (i.e. with a
computational speed ω lower than expected). Of course, in order to compensate a lower
computational speed induced by the process variability, the system will run a longer time
at the penalizing supply voltage [ZAK 10a]. The robustness is limited by the maximum
possible activity of the processing node anyway. Indeed, if the chip is not enough fast to
compute the task while running at the maximal speed (the chip runs with the highest
voltage and highest frequency), the controller would not be able to do anything to solve
this failure. The only way is to migrate the task allocated to this processing node to a high
performance one, and this has to be done by the operating system, see Figure 6.2.
6.6 Conclusions
In this Chapter, we have addressed the design of GALS-based NoC
communication architectures with multiple voltage-frequency domains. Firstly, we have
introduced a new architecture based on the use of the asynchronous PSTR that adapts its
maximal output clock frequency according to the performance evaluation of the
processing domain. Evaluating the fabrication process quality and the local
environmental parameters (voltage, temperature) is done with the help of activity
monitors embedded in each processing domain. Secondly, we have presented a variationadaptive feedback control methodology for NoC architectures with multiple voltageclock domains. More precisely, we developed techniques to dynamically control the
speed of each voltage-frequency island and provide robustness against the uncertainties
and variations in the design parameters. At the same time, our techniques adapt the
operating voltage and frequency to the variations in the workload to save power and
energy consumption. Simulation results demonstrate robustness to parameter variations
and more than 20% energy savings for a behavioral-like Matlab load model. An
implementation of the proposed digital controller in the CMOS 45nm technology from
STMicroelectronics will be shown in the following chapter. The system will be tested on
MIPS-R2000 processor under different process variability corners.
Hatem Zakaria
Université de Grenoble
119
Chapter 7
Designing Process Variability Robust
DVFS Control
7.1 Introduction
In the previous chapter, it has been shown that integrating activity monitors in
different clock domains in a GALS-NoC system is a promising solutions to reduce the
process variability impact. A complete modeling methodology was introduced to build a
process variability robust NoC-node with minimum energy consumption. The proposed
feedback controller was proven to especially adapt more smartly voltages and frequencies
(energy/performance) with strong process variability. The DFVS controller is based on a
fast predictive control, which is shown to be more energy-efficient than the intuitive
approach method.
In this chapter, we will study, analyze and design a complete circuit for different
parts of the process variability robust energy-efficient DVFS control system. This DVFS
control technique improves the performance, power consumption, and reliability of future
NoC-based architectures in a synergistic manner. We consider NoC-based architectures
consisting of multiple voltage-frequency islands. Each island may contain several
processing cores that share a single clock, supply voltage, and digital control unit.
First, the MIPS R2000 microprocessor is synthesized on STMicroelectronics
45nm CMOS technology, in order to represent our processing load case of study. Then,
the information extracted from the analysis of the MIPS R2000 processor on different
process variability corners has been used in the programmability of our asynchronous
PSTR. Finally, the digital control system is designed. The gain in the power/energy
consumption reduction and the area overhead of the proposed control system is compared
with a system without DVFS, and the one that uses the intuitive DVFS approach method.
Hatem Zakaria
Université de Grenoble
121
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
7.2 Case Study: MIPS-R2000
MIPS-R2000 is a 32-bit reduced instruction set computer (RISC) initially
developed by the Stanford University, where it stands for a Microprocessor without
Interlocked Pipeline Stages. This means that it has single execution cycle instructions so
that the compiler can schedule them to avoid conflicts. The MIPS architecture includes
thirty-two general-purpose 32-bit registers and fifty-eight instructions, each 32 bits long.
The instructions are processed in a five-stage pipeline: fetch, decode, execute, memory,
and write back, see Figure 7.1. MIPS R2000 includes also a coprocessor to handle
exceptions and hold configuration bits. Only a few configuration bits are used for the
R2000 architecture, and are mostly used to enable/disable exceptions and to configure the
caches. The MIPS architecture supports exception handling and interrupts. Due to the
MIPS R2000 simplicity in terms of architecture, programming model, and instruction set
as well as availability as an open core, it has been used as our main case of study in the
DVFS control system design for a GALS-NoC, that compensate for the 45nm CMOS
uncertainties. Details of the MIPS R2000 synthesis and analysis results are shown in the
following section.
Figure 7.1: Internal Architecture of the Pipelined MIPS (5 Stages).
Hatem Zakaria
Université de Grenoble
122
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
7.3 Analysis of MIPS R2000 Critical Path Delay Variations
Presently, the variability is captured in the design by using simulation corners,
which correspond to the values of certain process parameters that deviate by a certain
standard deviations from their typical value. In STMicroelectronics 45nm CMOS
technology, three PVT (Process, Voltage, and Temperature) corners are available: Best,
Nominal and Worst. All standard logic cells were characterized at each of these three
corners. So, we use Design Vision tool to implement MIPS-R2000 using
STMicroelectronics 45nm CMOS libraries in order to test its behavior at each of the
previously specified PVT corners.
Since, our main goal is to define the optimum operating clock frequency needed
by the processing load that compensates for the propagation delay variations due to the
process variability impact. Therefore, the critical path delay of the synthesized MIPS
R2000 with respect to supply voltage is analyzed at the three different PVT corners, as
shown in Figure 7.2.
Figure 7.2: MIPS R2000 Critical Path Delay Variation with Respect to Supply Voltage at
Three Different PVT Corners.
Hatem Zakaria
Université de Grenoble
123
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
In Chapter 6, we have defined two main operating voltage levels outputs from
Vdd-Hopping unit (Vlow and Vhigh), where extra voltage levels will have a direct impact on
the control system complexity and its relevant power consumption [DUR 09]. According
to STMicroelectronics 45nm libraries, we choose Vlow = 0.95 volts and Vhigh = 1.1 volts.
Consequently, the optimum clock frequency needed by the MIPS R2000 at the specified
two voltage levels with the three different process variability corners are defined as
shown in Table 7.1:
Table 7.1: MIPS R2000 Optimum Clock Frequencies Required to Compensate for the
Process Variability Impact on 45nm CMOS Technology.
Voltage
Level
Clock
Frequency
(MHz)
Process Variability Condition
Worst
Nominal
Best
0.95
60
75
85
1.1
95
115
145
Figure 7.3 shows how the MIPS R2000 processor is integrated as our main
processing load into the previously proposed process variability robust DVFS
architecture for a GALS-NoC system, depicted in Figure 6.4. Rom is loaded with a
factorial program to test its execution by the processor. Each time a new instruction is
loaded into ram_data bus, a pulse is generated on the ram_ack signal to indicate the
availability of a new data for the processor.
Speed sensor is used to provide to the digital controller the computational speed
information ωi in terms of number of instructions executed per unit time. Therefore, the
speed sensor contains an instruction counter which is clocked with the ram_ack signal,
and a reference clock. Since, the period of the reference clock is crucial since it
determines the accuracy of the calculated average speed. Moreover, it determines the
system speed response. In fact the, speed sensor integrates also a register to memorize the
instruction counter output (i.e. computational speed ωi) on a predefined period and
determines the average speed on each rising-edge of the reference clock (i.e. RST signal).
If this period is short, the system will be fast but the calculated average speed will not be
Hatem Zakaria
Université de Grenoble
124
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
accurate. On the opposite, a long period leads to a slow system but to a more accurate
average speed. Therefore, according to the set of clock frequencies available for the
MIPS R2000, see Table 7.1, the reference clock frequency was chosen to be 2MHz, in
order to count a considerable amount of instructions with a proper system response. Note
that, the RST signal is also used to reset the instruction counter every 500 ns to be ready
for a new measurement of the computational speed ωi. To conclude, the computational
speed ωi is now applied in terms of number of instructions executed per 500 ns to the
digital controller.
Figure 7.3: Process Variability Robust Energy/Performance Management Architecture
(MIPS R2000 Case Study).
The digital controller predicts the corresponding set of speed set points based on
the information sent by the OS (i.e. No. of instructions Ci and deadlines Ni), and the
integrated process variability monitors (i.e. activity monitors). Afterward, it processes the
error between computational speed ωi and the predicted average speed point, to send the
Hatem Zakaria
Université de Grenoble
125
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
proper voltage Vlevel and frequency Flevel code values to the Vdd-Hopping and to the
programmable oscillator respectively. CF and PC are the change frequency and pause
clock pulses used by the programmable stoppable oscillator (PSO), refer to Chapter 3.
The activity monitor output is also used by the programmable oscillator to select
the optimum set of clock frequencies suitable to be used with the present situation of
process variability impact, further details is shown in the following section.
Consequently, the system is able to locally adapt the output voltage and clock frequency
values with respect to the actual process variability impact, in order to get the most
suitable performance while limiting the system energy/dynamic power consumption.
7.4 PSTR Programmability to manage MIPS R2000 Variations
7.4.1 PSTR 45nm CMOS Delay Parameters
From Table 7.1 now it’s clear that we have to design a programmable ring which
has an operating frequency range from 60 to 145 MHz. Since, we are trying to build a
correct behavioral VHDL model for the asynchronous PSTR ring, so the next step was to
extract delay parameters of the PSTR ring from an analog tool. We used Cadence and the
results are as shown in Table 7.2:
Table 7.2: Extracted Delay Values of the Asynchronous PSTR Functional Parameters on
STMicroelectronics 45nm CMOS.
Asynchronous PSTR
Parameter
Supply Voltage
Propagation Delay
(Volts)
(ps)
Asynchronous Ring Stage
1.1
62
Forward Delay (Dff)
0.95
79
Asynchronous Ring Stage
1.1
73
Reverse Delay (Drr)
0.95
92
Hatem Zakaria
Université de Grenoble
126
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
7.4.2 PSTR Architecture
The requested target frequencies of the MIPS R2000 shown in Table 7.1 is in the
range of MHz while the asynchronous ring normally generate outputs in the range of
GHz. Therefore, either we will have to use an asynchronous PSTR with at least 50 stages,
which means extra hardware, power consumption and area overhead. Otherwise, we have
to add frequency dividers on the output of the asynchronous PSTR. According to the
frequency values shown in Table 7.1, it was decided to use an asynchronous PSTR with a
maximum of 20 stages and add 4 extra D-Flip Flops to divide the generated output
frequency by 16, as it was previously depicted in Figure 3.14.
Figure 7.4: Memory Mapping of the Programmable Oscillator.
The main goal of our design is to adapt the generated clock frequency with
respect to the current located process variability impact and to the processed workload. In
the 45nm CMOS libraries provided by STMicroelectronics, we have three defined
process variability corners. Consequently, we will split the contents of our programmable
oscillator code memory (i.e. LUT1 and LUT2) shown in Figure 3.18 into three main
Hatem Zakaria
Université de Grenoble
127
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
pages. Based upon the activity monitor output, the corresponding page will be selected.
Each page contains a set of programming codes (i.e. TCW and SCW) that generates the
suitable clock frequencies for the MIPS R2000 which compensate for the delay variation
due to the process variability effect. In each programming code set, we have one code
corresponding to the clock frequency Fhigh at the high voltage Vhigh, and two other codes
corresponding to the clock frequencies Flow1 and Flow2 at the low voltage Vlow.
Consequently, our programmable oscillator explained in Chapter 3 can be simply
represented by the block diagram shown in Figure 7.4.
7.4.3 PSTR Configuration
Table 7.1 defines the MIPS R2000 maximal clock frequencies (i.e. Fhigh and
Flow1), which are needed to compensate for different process variability corners at the two
specified voltage levels. For the third clock frequency Flow2, it was chosen to be lower
than Flow1 for each process variability corner, as shown in Table 7.3. Using the PSTR
programmability design flow, shown in Figure 3.15, we get the PSTR configuration (i.e.
the number of tokens, the number of bubbles, and the number of stages) for each of these
frequencies (Fhigh, Flow1 and Flow2) at the three different process variability corners. This
helps us to specify the TCW and SCW contents of our programmable oscillator memory
shown in Figure 7.4. The full PSTR programmability results are as shown in Table 7.3.
Table 7.3: PSTR Programmability to Manage Process Variations of the 45nm CMOS
Technology on the MIPS R2000.
Process
Variability
Best
Voltage
Frequency
Target
Frequency
(MHz)
1.1
Fhigh
Flow1
Flow2
Fhigh
Flow1
Flow2
Fhigh
Flow1
Flow2
145
85
60
115
75
45
95
60
35
0.95
1.1
Nominal
0.95
1.1
Worst
Hatem Zakaria
0.95
PSTR Programmability
No.
Tokens
12
12
14
14
14
13
14
14
17
Université de Grenoble
No.
Bubbles
6
4
3
5
4
2
4
3
2
No.
Stages
18
16
17
19
18
15
18
17
19
128
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
7.5 Digital Controller Design
In this section the complete design of the digital controller part in our proposed
process variability robust DVFS architecture depicted in Figure 7.3 will be presented. Its
main principle of operation is based on implementing the energy-efficient control
algorithm, described by the flow chart shown in Figure 6.7.
7.5.1 Overall Architecture
In Figure 7.5 the details of the digital controller are depicted. For each task, the
OS sends the total number of instructions to be executed Ci, and the task deadline Ni,
where Ni is represented in terms of the requested number of clock cycles per reference
clock output RST. Therefore, at the beginning of each task a counter is loaded with Ni-1
and then it is regularly decremented on each positive edge of the RST signal to present
the remaining time (i.e. number of reference clock cycles) Li to complete the allocated
task.
Figure 7.5: Digital Controller Architecture.
Hatem Zakaria
Université de Grenoble
129
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
The computational speed information ω sent by the speed sensor represents the
number of executed instructions per reference clock cycle. We need to know the total
number of instructions executed by the system since the beginning of the task until the
last sampling instant, i.e. ωk. Therefore, an adder is used to accumulate ω as long as the
task is running. This accumulated value is stored in Register 1 on each negative edge of
the RST signal. Once the down counter output is zero (i.e. Li_0 = 1), this means that we
have one last RST clock cycle to complete the allocated task. As a result, Register 1 is
reset (i.e. ωk = 0) on the next negative edge of the RST signal to be ready for a new task
execution.
Providing that the task is still running, Ci is subtracted from ωk to estimate the
remaining number of task instructions to be executed i.e. ∆. If the result of the subtraction
is negative, this means that our system has already completed the allocated task before its
deadline. Therefore, a PC signal is sent to the programmable oscillator to stop the
generated clock output till the assignment of a new task to the processor. This adds more
energy saving opportunities by relaxing our system as it has no more tasks to execute.
Otherwise, the digital controller will regulate the generated clock frequency with respect
to the predicted workload.
Our energy-efficient digital controller is based on using an adaptive set of speed
set points, rather than the concept of using a fixed speed set point as in the intuitive
average control method, for more details refer to Chapter 5. Therefore, the digital
controller contains a special unit called speed set point update. On the start up regulation
phase of the system, this unit accepts the proper initial set of computational speeds set
points (i.e. ωmax_L1_init and ωmax_L2_init). ωmax_L1_init and ωmax_L2_init correspond to the
maximum predicted computational speed of the system at Flow1 and Flow2 respectively
with respect to the current situation of process variability impact. Subsequently, the
speed set point update unit keeps adapting these two maximum predicted computational
speeds set points with regard to the last sampled computational speed value ω and the
update factor ρ’. Afterwards, the main functionality of this unit will be to estimate the
maximum number of instructions that can be executed by the system if it was supplied by
either Flow1 or Flow2 (i.e. ∆1 or ∆2 respectively).
Hatem Zakaria
Université de Grenoble
130
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
By comparing ∆ with ∆1 and ∆2 (i.e. GT1 and GT2), we can decide which couple
of voltage and frequency levels will be sufficient to supply our processor, in order to
meet the allocated task deadline. Here comes the main functionality of the voltage and
frequency selection unit. The supply voltage and the clock frequency have to be
controlled together in order to ensure the maximum delay over the critical path. Clearly,
the voltage and frequency selection unit is required to increase the voltage before
increasing the frequency and, respectively, to decrease the frequency before decreasing
the voltage.
7.5.2 Speed Set Point Update
The architecture of the speed set point update unit is depicted in Figure 7.6. The
main goal of this unit is to continually predict the maximum number of instruction ∆1 and
∆2 that can be executed by the system within the specified remaining time for the task Li
before its deadline. Actually, ∆1 and ∆2 are estimated to predict the system computation
capabilities when it will be supplied by Vlow with either Flow1 or Flow2, respectively.
Figure 7.6: Speed Set Point Update Unit.
Hatem Zakaria
Université de Grenoble
131
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
The speed set point update unit is composed of two symmetrical branches. Each
of the two branches applies the formula defined by Equation (6.4) with ρ = 1/8 in order to
get the two estimated computational speeds ωmax_L1 and ωmax_L2. To facilitate the
implementation of this part we first get ωmax_L1* 8 and ωmax_L2* 8, using ρ’ = 7, from
MUX1 and MUX2 outputs respectively. Then, MUX1 and MUX2 outputs are simply
logically shifted 3 bits to the right to divide their outputs by 8, so we get ωmax_L1 and
ωmax_L2 from Register 1 and Register 2 outputs respectively. Subsequently, each of the
two outputs ωmax_L1 and ωmax_L2 are multiplied by Li. As a result, we obtain the
corresponding maximum number of instructions ∆1 and ∆2, that can be executed by the
system during the remaining number of reference clock cycles Li for the allocated task,
wither the system was working with the predicted computational speed set point ωmax_L1
or ωmax_L2. Note that, on the last sampling instant of the current allocated task (Li_0 = 1),
MUX5 and MUX6 select Ni of the next task to be executed. So that, on the next sampling
instant (i.e. next positive edge of the RST signal), ∆1 = ωmax_L1 * Ni and ∆2 = ωmax_L2 * Ni.
Afterwards, as long as the task is running MUX5 and MUX6 select Li, so that, ∆1 =
ωmax_L1 * Li and ∆2 = ωmax_L2 * Li.
As on the start up regulation phase of the system, the speed setup point update
unit has to accept the proper initial set of computational speed set points (i.e. ωmax_L1_init
and ωmax_L2_init) with respect to the current situation of process variability impact.
Therefore, the reset pulse generator unit is included. The reset pulse generator unit
generates a single pulse of duration equal to the RST period, see Figure 7.7. This enables
MUX1 and MUX2 to select ωmax_L1_init and ωmax_L2_init on the start up regulation phase.
Subsequently, the speed set point update unit keeps fine tuning these two maximal
predicted computational speeds as ωmax_L1 and ωmax_L2. Note that, ωmax_L1 or ωmax_L2 are
updated with the corresponding measured value of ω only if the system is working with
Flow1 (i.e. GT1 = 0 and GT2 = 1) or Flow2 (i.e. GT1 = 0 and GT2 = 0) respectively.
Otherwise ωmax_L1 and ωmax_L2 remains unchanged, as the measured value of ω in that
case corresponds to a processing system under a clock frequency of Fhigh. Therefore
MUX3 and MUX4 are used to enable this kind of adaption for ωmax_L1 and ωmax_L2.
Different timing diagrams for the system behaviour on the three different process
variability corners are shown in Section 7.6 to better explain the flow of all signals.
Hatem Zakaria
Université de Grenoble
132
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
Figure 7.7: Reset Pulse Generator (a) Architecture (b) Timing Diagram.
7.5.3 Voltage and Frequency Selection
Switching performance levels take time for both voltage regulators and clock
generators. Switching voltage levels is particular slow and switching frequencies is orders
of magnitude faster than voltage level switching. As a result, we have to increase the
voltage first then the clock frequency, and to decrease the voltage after clock frequency is
lowered. The voltage and frequency selection unit shown in Figure 7.8 is able to do so
through the use of Delay1 and Delay2. Delay2 corresponds to the Vdd-Hopping delay to
switch from one voltage state to another one, which is approximately equal to 300 ns
[MIE 07]. While Delay1 corresponds to the programmable oscillator delay to switch from
one frequency to another, which is approximately equal to 20 ns, see Chapter 3.
Initially DFF1 and DFF2 outputs are reset to zero. There are two possible
scenarios for voltage switching. First, when the system has to switch from Vlow to Vhigh
(i.e. GT1 value changes from 0 to 1). In this case, MUX3 output will be directly
connected to the input port 1 of MUX1. This insures that Vlevel immediately changes its
value from 0 to 1. On the other hand, this positive edge transition on MUX1 output will
change XOR output to 1. As a result, MUX2 will select input port 1 to be connected to
flevel. This delays the corresponding frequency code with an amount of time equal to
Delay2, see Figure 7.9. This insures that the programmable oscillator will not change its
output clock frequency before Vdd-Hopping output is stable.
Hatem Zakaria
Université de Grenoble
133
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
Figure 7.8: Voltage and Frequency Selection Unit.
Figure 7.9: Timing Diagram of the voltage and frequency selection unit.
(a) Switching from Vlow to Vhigh. (b) Switching from Vhigh to Vlow.
Hatem Zakaria
Université de Grenoble
134
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
Second scenario, when the system has to switch from Vhigh to Vlow (i.e. GT1 value
changes from 1 to 0). In this case, DFF1 will be triggered and its output will be equal to
1. Consequently, the XOR output is equal to zero, which enables the immediate
connection of flevel to the new frequency code value as MUX2 selects the incoming data
on its input port 0. MUX3 will select the incoming data on its input port 1, which is
delayed with an amount of time equal to Delay1. This insures that the Vdd-Hopping unit
will not change its output before the programmable oscillator new clock frequency is
stable, see Figure 7.9.
As our programmable oscillator (Asynchronous PSTR) proposed in chapter 3
needs a change frequency CF pulse to indicate the presence of a new frequency code. The
change frequency pulse generator depicted in Figure 7.10 is used. As it is simply en event
detector, it is mainly composed of XOR gates. The reset pulse generator shown in Figure
7.7 is used again in the voltage and frequency selection unit with its D input inversely
connected to GT1. This will reset DFF1 and DFF2 once GT1 changes its value from 1 to
0. As a result, the voltage and frequency selection unit is allowed to adapt again the
switching delayed instants between Vlevel and Flevel.
Figure 7.10: Change Frequency Pulse Generator.
7.6 Simulation Results
The
design
presented
in
Sections
7.5
is
implemented
using
the
STMicroelectronics 45nm CMOS standard libraries for the physical implementation with
the Synopsys Design Vision tool. In order to evaluate the tracking efficiency of the
proposed digital controller under different process variability conditions, a post layout
simulation with Modelsim has been used. A scenario with three tasks is proposed: the
first task starts with C1 = 100 instructions to do in 2 µs, (i.e. N1= 4 as TRST = 500 ns), then
Hatem Zakaria
Université de Grenoble
135
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
a C2 = 340 instructions task has to be executed in 4 µs (i.e. N2 = 8), and the last one has to
compute C3 = 160 instructions in 3 µs (i.e. N3 = 6). These data are supposed to be
provided by the OS.
Figure 7.11 shows the simulation result of the system under nominal process
variability (i.e. activator monitor output A_Mon = 01). We can see that the used set of
clock frequencies are Fhigh = 115 MHz, Flow1 = 75 MHz and Flow2 = 45 MHz, which
corresponds to the proper set of clock frequencies that has to be used under nominal
process variability as it was shown in Table 7.3. Task 1 was completed successfully with
both Vlevel and Flevel equal to 0 (i.e. Fclk = Flow2 = 45 MHz and Vlevel = Vlow = 0.95 volts),
all over the allocated time for the task. This is because ∆ during task 1 execution is
always less than ∆1 and ∆2. Note that ∆ is firstly loaded with C1. Afterwards, it is
decremented with ωk on each positive edge of the RST signal. Moreover, ωk is reset to
zero on the RST negative edge just before the start of task 2. Each time a new instruction
is executed we have a pulse on the Ins_Speed signal, where it’s connected to ram_ack
signal shown in Figure 7.3. Ins_Speed is added in Figure 7.11 as a guideline for the MIPS
R2000 clock speed.
For task 2, ∆ is firstly loaded with C2 = 340, which is higher than ∆1 and ∆2. As a
result, the digital controller directly sets Vlevel = Vhigh, and then after 300 ns sets Flevel =
Fhigh. Therefore, the digital controller speeds up the MIPS R2000 to be able to complete
the task at the proposed deadline N2. This is by setting the MIPS R2000 to work with the
maximum supply voltage of 1.1 volts and clock frequency of 115 MHz. Once the digital
controller has detected that task 2 can be completed with relaxed conditions, for example
at Li = 4, ∆ is less than ∆1, the system switches back to Vlow. Here, we can see that the
digital controller firstly switches Flevel to Flow1 then after 20ns Vlevel to Vlow. Therefore
after running the MIPS R2000 for 1.52µs at 1.1 volts, it is now supplied with 0.95 volts
and 75 MHz. Again the processor continues to work with these operating conditions tell
∆ is less than ∆2 at Li = 1. At this moment the system switches back again to the second
lower clock frequency Flow2 = 45 MHz at Vlow. We can see that the estimated
computational speed ωmax_L1 was updated with the measured speed ω of the MIPS R2000
only when the system was supplied with Flow1.
Hatem Zakaria
Université de Grenoble
136
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
Figure 7.11: Timing Diagram of the Digital Controller Behaviour with 3 Different MIPS
R2000 Workloads under Nominal Process Variability Effect.
For task 3, ∆ is firstly loaded with C3 = 160, which is lower than ∆1 and ∆2. As a
result, the digital controller keeps supplying the MIPS R2000 with Vlow and Flow2 as long
as ∆ is lower than ∆1 and ∆2 all over task 3 execution time till its deadline. Note also that
in this case ωmax_L2 was updated with the measured speed ω of the MIPS R2000 as the
system was supplied with Flow2 at this time.
In Figure 7.12, the simulation result of the system under worst process variability
(i.e. activator monitor output A_Mon = 00) is depicted. We can see that the used set of
clock frequencies are now Fhigh = 95 MHz, Flow1 = 60 MHz and Flow2 = 35 MHz, as it was
shown in Table 7.3. Therefore, our programmable oscillator now generates the proper set
of clock frequencies that has to be used in order to compensate for the reduced
performance of the MIPS R2000 (i.e. increased critical path delay), under worst process
variability effect. As a result, Task 1 runs 1.5µs at Flow1 then it switches to Flow2 for the
last 0.5 µs. Moreover, Task 2 runs for 3.02 µs at Vhigh, which is 2 times longer than when
Hatem Zakaria
Université de Grenoble
137
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
the MIPS R2000 is under nominal process viability, Figure 7.11. Then, when Li = 1, it
switches to Flow1 = 60 MHz. Finally, it was able to complete the task successfully, where
at Li = 0 the estimated remaining number of instructions to be executed is only 7.
Therefore, it was able to relax the processing power again by switching to Flow2 = 35
MHz. For task 3, ∆ is firstly loaded with C3 = 160, which is now lower than ∆1 and
higher than ∆2. As a result, the digital controller supplies the MIPS R2000 with Vlow and
Flow1. Once, ∆ becomes lower than ∆2 at Li = 1 the digital controller relaxes the frequency
to Flow2 till task 3 deadline.
Figure 7.12: Timing Diagram of the Digital Controller Behaviour with 3 Different MIPS
R2000 Workloads under Worst Process Variability Effect.
The same 3 tasks workload is simulated again for the MIPS R2000 under best
process variability see Figure 7.13. Now, the used set of clock frequencies generated by
the programmable oscillator are Fhigh = 145 MHz, Flow1 = 85 MHz and Flow2 = 60 MHz.
These clock frequencies correspond to the proper set that has to be used under best
process variability as it was shown in Table 7.3. Using these frequency configurations the
MIPS R2000 is able to successfully complete all the three tasks at Vlow, which adds more
Hatem Zakaria
Université de Grenoble
138
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
power/energy saving opportunities than under the nominal case. Therefore, our proposed
DVFS control architecture is able to not only compensate for the delay variations with
different process variability impacts, but also exploit the enhanced response of the system
under best variability conditions to gain more in terms of energy savings. Detailed
comparison results with numbers are shown in Table 7.4. Note that for task 3 the MIPS
R2000 completes the task 0.75µs before its deadline. At Li = 1, ∆ = 21 which is even less
than ∆2/2. This means that the processor needs only one half RST clock cycle to complete
task 3 during Li = 1. Therefore, on the next negative RST clock edge ωk is shown to be
higher than Ci. Consequently, the output of subtraction shown in Figure 7.5 is negative,
which is next sampled as ∆ = -13. Thus, a PC signal is sent to stop generated clock output
by the programmable oscillator, and keeps the processor in an idle mode till it has a new
assigned task. Again, this exploits the enhanced system performance by adding more
energy savings as the processor has no more tasks.
Figure 7.13: Timing Diagram of the Digital Controller Behaviour with 3 Different MIPS
R2000 Workloads under Best Process Variability Effect.
Hatem Zakaria
Université de Grenoble
139
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
To evaluate our proposed energy-efficient DVFS control for GALS-NoC
architecture, the implemented chip is characterised for its average dynamic power, energy
consumption, area overhead and robustness to process variability. Table 7.4 shows a
comparison between the proposed energy-efficient DVFS control and the average based
one, see Chapter 6, with respect to a system without DVFS. This comparison is in terms
of average dynamic power and energy savings of the processor alone under different
process variability corners.
Table 7.4: A Comparison between Energy-Efficient and Normal Average Based DVFS
Control with Respect to a System without DVFS at Different Process Variability Corners.
Process
Variability
Impact
Best
Nominal
Worst
Energy-Efficient Control
Average Based Control
(Adaptive Speed Set Point within
the Task, Figure 6.6.b)
(Fixed Speed Set Point all over the
Task, Figure 6.6.a)
Energy
Average Dynamic
Power Savings
Savings
51, 39 %
25,41 %
51,42 %
Energy
Average Dynamic
Power Savings
Savings
36,78 %
14,12 %
21,18 %
Achieve the Requested
Performance with a Reduced Set
of Clock Frequencies
(Yield Enhancement)
Used Set of Nominal Clock
Frequencies Violates the MIPS
R2000 Critical Path
(Erroneous Data Outputs)
From table 7.4 it is clear that under nominal process variability, the DVFS control
with an adaptive computational speed set point during task execution (i.e. energyefficient control) is 1.5 more power and energy savings efficient than the one with fixed
speed set point (i.e. average based control). Energy-efficient DVFS control is able to save
21.18% of the energy consumption and 51.42% of the average dynamic power consumed
by a system without DVFS. Note that power savings results are approximately 2 times
better than energy savings, as power savings are proportional to both voltage and
frequency control, while energy savings are proportional only to voltage control.
Hatem Zakaria
Université de Grenoble
140
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
Our proposed energy-efficient DVFS control has the ability to adapt the
computational speed set points (i.e. set of clock frequencies generated by the PSTR) with
respect to the process variability impact. Since under the previously the allocated 3 tasks
workload, the proposed DVFS control architecture was able to reduce the high voltage
running time to zero, see Figure 7.12. Therefore the energy-efficient DVFS control was
able to exploit this enhanced performance of the system (i.e. reduced critical path delay)
to save more energy consumption (i.e. 25.41% under best process variability impact).
However, the average based DVFS control saves the same amount of energy regardless
of the reduced process variability impact.
Under worst process variability condition, the used set of clock frequencies for a
system without DVFS (i.e. 115 MHz) and even that for a system with average based
DVFS control (i.e. 115 MHz at Vhigh and 75 MHz at Vlow) violates the MIPS R2000
critical path delay, shown in Figure 7.2. As a result, the MIPS R2000 will have erroneous
output results. Therefore this GALS-NoC processing node has to be neglected and its
allocated tasks have to be distributed over other high performance processing nodes.
However, with the proposed DVFS control architecture, the MIPS R2000 was still able to
complete the allocated tasks successfully by using the proper set of maximum clock
frequencies (i.e. 95 MHz at Vhigh and 60 MHz at Vlow). This drastically relaxes the
fabrication constraints and helps the yield enhancement.
In order to perfectly evaluate our system, the average dynamic power, the energy
consumption and the area of different DVFS control architecture parts shown in Figure
7.3 has to be considered. From Table 7.5, It is clear that the two most power/energy
consuming parts are the Vdd-Hopping and the programmable Oscillator. However, the
digital controller consumes only 64.32 µW, as it has the lowest activity rate in the system
of 2 MHz. Based on the values shown in Table 7.5, the average dynamic power savings,
energy savings and area overhead of the whole DVFS control system are evaluated as
shown in Table 7.6. These values are given for a GALS-NoC voltage-frequency island
with a single processing element (i.e. MIPS R2000) and compared with another one with
8 processing elements, refer to Figure 6.1. Under nominal process variability the average
dynamic power and energy savings values of the whole DVFS control system are smaller
than but not too far from those presented in Table 7.4.
Hatem Zakaria
Université de Grenoble
141
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
Table 7.5: Power, Energy and Cross Sectional Area of Each Part in the DVFS
Architecture shown in Figure 7.3.
Power Consumption
(µW)
Digital
Vdd
PSTR
Speed
Controller
Hopping,
[MIE 07]
Oscillator
Sensor
15177,9
64,32
455,37
357
2,57
108,4
0,589
4.098
3,213
,002
20210
1858
4400
418
36
MIPS
R2000
at 1.1V - 25°C
Energy Consumption
(nJ)
Over 9µSecs
Area (µm2)
Since we have a single DVFS control system for each voltage-frequency island in
a GALS-NoC system. Therefore, in a voltage-frequency island with multi processing
elements, the efficacy of the DVFS control system will be more effective in saving power
and energy consumption, see Table 7.6. Moreover, the area overhead of the extra DVFS
hardware will be approximately divided by the number of processing elements per a
GALS-NoC voltage-frequency island. For example the area overhead in a processing
island with 8 processors is 4.15%. However, the area overhead in a processing island with
a single processor is 33.21%.
Table 7.6: Performance Analysis of the Whole Energy-Efficient GALS-NoC DVFS
Control System under Nominal Process Variability Impact.
No. of Processing elements per
GALS-NoC VoltageFrequency Island
Average Dynamic
Power Savings
Energy Savings
Over 9µSecs
Area
Overhead
1
45,62 %
14,86 %
33.21 %
8
50,7 %
19,92 %
4.15 %
Hatem Zakaria
Université de Grenoble
142
Part-II Chapter 7. Designing Robust DVFS Control for Process Variability management
7.7 Conclusions
This chapter addressed the problem of designing the process variability robust
DVFS control architecture proposed in Chapter 6. First, the MIPS R2000 microprocessor
is synthesized using the STMicroelectronics 45nm CMOS libraries, in order to present
our processing load case of study. Then, the information extracted from the analysis of
the MIPS R2000 processor on different process variability corners has been used in the
programmability of our programmable oscillator (i.e. asynchronous PSTR). Finally, the
energy-efficient DVFS digital control system is fully designed and implemented on the
STMicroelectronics 45nm CMOS technology. The digital controller was able to smartly
adapt the voltage/frequency couple with workload variation and, at the same time, copes
with the parameter variations which cannot be predicted or accurately modeled at design
time. Moreover, it also considers the voltage regulator and frequency oscillator switching
performance levels, in order to correctly adapt their switching instants. According to the
measured degree of process variability effect on the processing load performance, the
programmable oscillator was able to generate the proper set of maximum clock
frequencies that does not violates the MIPS R2000 critical path delay. Afterwards, the
digital controller regularly adapts the estimated computational speed set points based on
the workload variations with the existing process variability impact.
For the different process variability corners defined by STMicroelectronics 45nm
CMOS libraries, the proposed DVFS control system was able to successfully achieve the
requested performance by the OS. This allows us to not neglect most of the voltagefrequency islands, even if they were under worst process variability effect, which has a
direct impact on enhancing the fabricated yield. Moreover, it was able to approximately
save 50% of the power and 25% of the energy consumed by a system without DVFS,
which is even 1.5 times better than a system with intuitive average based DVFS control.
In addition to that, the digital controller exploits the enhanced performance of the system
under best process variability to save more power/energy consumption. One more
advantage of the proposed DVFS architecture is its small area overhead, especially with
GALS-NoC voltage-frequency islands, that contains more than one processing element.
With 8 MIPS R2000 per voltage-frequency island, the area overhead will only be 4.15%.
Hatem Zakaria
Université de Grenoble
143
Chapter 8
Conclusion and Perspectives
Regarding the recent and upcoming nanometric CMOS technologies, designing a
complex system is now becoming very challenging. These challenges are due to several
constraints, such as guarantying the correct system behavior with strong process
variations or controlling the system speed and energy. The main problem with such
systems is that their modeling is complex and their behavior is difficult to predict.
Moreover, the fabrication yield is more difficult to maintain as a high rate in the
nanometric technologies and it can be improved by appropriate design techniques
(Design for Yield).
Indeed, process variations play an increasingly important role in system power
consumption and performance as the technology scales down. This implies to consider
global management strategies in order to respect energetic and real-time constraints.
More precisely, there is a need for efficient algorithms and built-in circuitry able to adapt
the system behavior to workload variations and, at the same time, cope with the
parameter variations which cannot be predicted or accurately modeled at design time.
Therefore performance estimation and management are today key points in new
integrated systems. Concretely, these ideas were considered in a French national project
called ARAVIS, sponsored by the global competitive cluster Minalogic.
New strategies for energy management have to be used to meet the energy and
real-time constraints. Solutions such as dynamic voltage and frequency scaling (DVFS)
have to be considered, they have been explored and have shown significant energy
savings while meeting performance requirements. While this problem has been addressed
before by a large number of engineers and researchers, no attention has been given to add
the feature of controlling the impact of manufacturing process variations to the
capabilities of the DVFS controllers.
Hatem Zakaria
Université de Grenoble
145
Chapter 8. Conclusion and Prospective
In this thesis, we have first addressed the problem of designing a process
variability robust source for generating adjustable clocks, in order to be applied within
each voltage-frequency island in a complex GALS-NoC system. Self-Timed Ring (STR)
is chosen as the core of the oscillator because of its reported advantages with respect to
many points of view (programmability, accuracy, robustness against process variability).
A new methodology for calculating the oscillation frequency of STRs is proposed. The
method shows very high efficiency and accuracy during the different design phases. By
including Charlie/drafting effects to our VHDL models, we showed the possibility of
using digital simulation to accurately model and simulate the STR behavior.
Programmability has been introduced to STRs using two main different strategies.
The two proposed strategies are simple architecture based solutions. These strategies
show high efficiency and flexibility while choosing the ring frequency. Based on the
proposed programmable STR (PSTR), a complete Programmable/Stoppable Oscillator
(PSO) is designed and implemented. An efficient handshaking protocol between the
processor and the oscillator is used to insure a proper switching from one frequency to
another. The Oscillator shows glitch free and no truncated clocks at its output. The
proposed architectures are physically implemented using the STMicroelectronics 45nm
CMOS technology. The implemented chip shows High-speed, Low-Power, Low-Process
Variability of the generated frequency, Wide-Range with Regular and Fine frequency
step output. To the best of our knowledge, this chip is the first realization of a PSTR. As
the PSTR is going to be used as one of the most important parts in the design of a process
variability robust DVFS control for GALS-NoC systems, the effect of changing the
power supply on the chip is studied as well. The chip shows very linear change in its
frequency with respect to the variations in its power supply.
Since the voltage-frequency islands in a GALS-NoC system have different clock
frequencies according to the tasks that they are handling as well as their influence by the
local process variations within each island. Therefore, synchronizing theses different
clock domains during communication phases was our next challenge. Consequently, we
have proposed a new scheme based on the use of the PSTR as the main clock generating
source in each GALS module. This scheme supports reliable communication between
independently clocked GALS modules. However, instead of including in each PSTR
Hatem Zakaria
Université de Grenoble
146
Chapter 8. Conclusion and Prospective
oscillator a standard element for pausing the clock, each synchronous module is proposed
to have both an incoming and an outgoing clock signal, which have been obtained by
opening the PSTR oscillator. Since these clock signals behave as handshake signals,
handshake circuits can be used to synchronize the clocks. The simplest way
synchronizing two different clock domains is then carried out by means of a C-element,
which introduces only a small and predictable timing overhead. A multiplexer and DFF
have been used in this circuit design, in order to adapt the instants on which we switch
between no communication and data exchanges states, so we do not have any glitches nor
truncated clock periods. The advantages of this scheme are: due to its self-timed nature,
the control switch used with the PSTR allows connecting modules running at different
clock frequencies with very low power consumption. It offers high throughput compared
to a shared bus solution and a small area compared to FIFO-based solution. Moreover, it
can be easily applied in different multipoint GALS interconnection schemes.
The next and the main objective of this thesis was to design an energy-efficient,
process variability robust DVFS control system for future GALS-based NoC
communication architectures with multiple voltage-frequency domains. Subsequently, we
have introduced a new voltage-frequency island architecture based on the use of the
asynchronous PSTR that adapts its maximum output clock frequency according to the
performance evaluation of the processing domain. Evaluating the fabrication process
quality and the local environmental parameters (voltage, temperature) is done with the
help of activity monitors embedded in each processing domain. Afterwards, we have
presented a variation-adaptive feedback control methodology for GALS-NoC
architectures. More precisely, we developed techniques to dynamically control the speed
of each GALS-NoC voltage-frequency island and provide robustness against the
uncertainties and variations in the design parameters. At the same time, our techniques
adapt the operating voltage and frequency to the variations in the workload to save power
and energy consumption. Simulation results demonstrate robustness to parameter
variations and efficient energy savings with a Matlab load model.
In order to design our proposed GALS-NoC control methodology and test its
response on a real processing load with different process variability impacts, the MIPS
R2000 microprocessor has been chosen as our main case study. First, it has been
Hatem Zakaria
Université de Grenoble
147
Chapter 8. Conclusion and Prospective
synthesized using the STMicroelectronics 45nm CMOS libraries. Then, the information
extracted from the analysis of the MIPS R2000 processor on different process variability
corners has been used to parameterize the programmability of our asynchronous PSTR.
Finally, the energy-efficient DVFS digital control system is fully designed and
implemented on STMicroelectronics 45nm CMOS technology.
The
implemented
digital
controller
was
able
to
smartly
adapt
the
voltage/frequency couple with workload variations and, at the same time, copes with the
process variations. Moreover, it also considers the voltage regulator and frequency
oscillator switching performance levels, in order to correctly adapt their switching
instants. According to the measured degree of process variability effect on the processing
load performance, the programmable oscillator was able to generate the proper set of
maximum clock frequencies which do not violate the MIPS R2000 critical path delay.
Afterwards, the digital controller regularly adapts the estimated computational speed set
points based on the workload variations with the exiting process variability impact.
For the different process variability corners defined by STMicroelectronics for
their 45nm CMOS libraries, the proposed DVFS control system was able successfully
achieve the requested performance by the OS. This allows us to not neglect most of the
GALS-NoC voltage-frequency islands, even if they were under worst process variability
effect, which has a direct impact on enhancing the fabrication yield. Moreover, the digital
controller exploits the enhanced performance of the system under the best process
conditions to save more power/energy consumption. One more advantage of the proposed
DVFS architecture is its small area overhead, especially with GALS-NoC voltagefrequency islands, that contains more than one processing element (or larger than the
MIPS R2000).
There are many possible extensions to this work such as:
1. The proposed PSTR-based GALS synchronization scheme can be
extended and applied with different multipoint interconnection schemes.
2. The digital controller part of the DVFS system in the proposed GALSNoC architecture can be developed to be completely asynchronous, in
order to improve its robustness against process variations.
Hatem Zakaria
Université de Grenoble
148
Chapter 8. Conclusion and Prospective
3. The
new
proposed
GALS-NoC
architecture
can
be
physically
implemented with different die positions per silicon wafer.
4. Experimental results with more applications and complex processors like
ARM cores can be carried out to practically test the DVFS controller
behavior with different workloads and process variability impact.
5. The idea can also be extended and practically tested with the 32nm CMOS
technology and beyond.
Hatem Zakaria
Université de Grenoble
149
Publications
Conference Publications
¾ Eslam Yahya, Oussama Elissati, Hatem Zakaria, Laurent Fesquet and Marc
Renaudin, "Programmable/Stoppable Oscillator Based on Self-Timed Rings",
ASYNC 2009 (15th IEEE International Symposium on Asynchronous Circuits and
Systems), May 17-20, Chapel Hill, North Carolina, USA, pp. 3-12, 2009.
¾ Laurent Fesquet and Hatem Zakaria, "Controlling Energy and Process Variability in
System-on-Chips: needs for control theory", MSC 2009 (3rd IEEE Multiconference on Systems and Control), July 8-10, Saint Petersburg, RUSSIA, pp.
302-307, 2009.
¾ Hatem Zakaria, Sylvain Durand, Nicolas Marchand and Laurent Fesquet
“Integrated Asynchronous Regulation for Nanometric Technologies”, VARI’10 (1st
European workshop on CMOS Variability), May 26-27, Montpellier, France, pp.
86-91, 2010.
Workshop Publication
¾ Hatem Zakaria et al., "Integrated Asynchronous Regulation for Nanometric
Technologies: Application to an Embedded Parallel System", MINATEC
CROSSROADS, Grenoble, France, Poster, 2008.
Book Chapter
¾ Hatem Zakaria, Eslam Yahya and Laurent Fesquet “Self Adaption in SoCs”, in:
Autonomic Networking-on-Chip (Bio-inspired Specification, Development, and
Verification), Part of the Embedded Multi-core Systems (EMS) Book Series Edited
by: Phan Cong-Vinh. 32 pages, Taylor & Francis, CRC Press, 2011.
Hatem Zakaria
Université de Grenoble
151
References
[ALA 06]
Alamir M.: ‘Stabilization of Nonlinear Systems Using Receding- Horizon
Control Schemes: A Parametrized Approach for Fast Systems’, Lecture
Notes in Control and Information Sciences, Springer-Verlag, London,
2006.
[ALB 08]
Albea C., Canudas de Wit C. and Gordillo F.: ‘Advanced Control Design
for Voltage Scaling Converters’, in Proceedings of the 34th IEEE
Conference (IECON’08), pp. 79-84, 2008.
[ALB 09]
Albea C., Canudas de Wit C. and Gordillo F.: ‘Control and Stability
Analysis for the Vdd-Hopping Mechanism’, in Proceedings of the IEEE
Conference on Control and Applications, pp. 320-325, 2009.
[AYD 01]
Aydin H., Melhem R., Mosse D. and Alvarez P.: ‘Dynamic and
Aggressive Scheduling Techniques for Power-Aware Real-Time
Systems’, In Proceedings of IEEE Real-Time Systems Symposium, 2001.
[BEE 02]
Beerel P.: ‘Asynchronous Circuits: An Increasingly Practical Design
Solution’. Proceedings of ISQED’02, IEEE Computer Society, pp. 367372, 2002.
[BEI 06]
Beigne E. and Vivet P.: ‘Design of on-chip and off-chip interfaces for a
GALS NoC architecture’. in Proceedings of the 12th IEEE International
Symposium on Asynchronous Circuits and Systems, ASYNC '06, pp.
172-183, 2006.
[BER 05]
Bertozzi D., et al.: ‘NoC synthesis flow for customized domain specific
multiprocessor systems-on-chip’. IEEE Trans. Parallel Distribution
Systems, 16(2), pp. 113-129, 2005.
[BER 92]
Berkel K.: ‘Beware the isochronic fork Integration’, VLSI journal, 13(2),
pp. 103-128, 1992.
[BER 94]
Berkel C., Burgess R., Kessels J., Peeters A., Roncken M., and Schalij F.:
‘Asynchronous circuits for low power: A DCC error corrector’. IEEE
Design Test., 11(2), pp. 22–32, 1994.
[BER 99]
Berkel C., Josephs M. and Nowick S.: ‘Scanning the Technology.
Applications of Asynchronous Circuits’. Proceedings of the IEEE, 87(2),
pp. 223-233, 1999.
Hatem Zakaria
Université de Grenoble
153
References
[BOR 03]
Borkar S., et al.: ‘Parameter Variations and Impact on Circuits and
Microarchitecture’, in Proceedings of DAC, pp. 238-242, 2003.
[BOR 05]
Borinski E., Arnim V. and Seegebrecht P.: ‘Efficiency of body biasing in
90-nm CMOS for low-power digital circuits’. IEEE Journal of Solid-state
Circuits, 40(7), pp. 1549-1556, 2005.
[BOR 97]
Bormann D. and Cheung P.: ‘Asynchronous wrapper for heterogeneous
systems’, in Proceedings IEEE International Conference on Computer
Design: VLSI in Computers and Processors ICCD '97, pp. 307-314, 1997.
[BOY 06]
Boyer F., Epassa H. and Savaria Y.: ‘Embedded power-aware cycle by
cycle variable speed processor’, Computers and Digital Techniques, IEE
Proceedings 153(4), pp. 283 – 290, 2006.
[BUI 06]
Bui H. and Savaria Y.: ‘High speed differential pulse-width control loop
based on frequency-to-voltage converters’, Proceedings of the 16th ACM
Great Lakes symposium on VLSI, pp. 53-56, 2006.
[CHA 03]
Chakraborty A. and Greenstreet M.: ‘Efficient self-timed interfaces for
crossing clock domains’. In Proceedings of the 9th International
Symposium on Asynchronous Circuits and Systems ASYNC ‘03, pp. 7888, 2003.
[CHA 84]
Chapiro D.: ‘Globally-Asynchronous Locally-Synchronous Systems’,
Ph.D. thesis, Stanford University, report No. STANCS-84-1026, 1984.
[CHE 00]
Chelcea T. and Nowick S.: ‘Low-latency asynchronous FIFO's using
token rings’. in Proceedings of the 6th International Symposium on
Advanced Research in Asynchronous Circuits and Systems ASYNC '00,
pp. 210-220, 2000.
[CUM 09]
Cummings C.: ‘Clock domain crossing (cdc) design and verification
techniques using system verilog’. SNUG-2008, Boston, 2009.
[CUM 94]
Cummings U., Lines A., and Martin, A.: ‘An asynchronous pipelined
lattice structure filter’. Proceedings of the International Symposium on
Asynchronous Circuits and Systems, Salt Lake City, Utah, USA, pp. 126133, 1994.
[DAL 01]
Dally W. and Towles B.: ‘Route packets, not wires: On-chip
interconnection networks’, in Proceedings DAC, pp. 684-689, 2001.
[DHA 01]
Dhar S., Dhar E. and Maksimovic D.: ‘Switching regulator with
dynamically adjustable supply voltage for low power VLSI’, In
Proceedings of the International Symposium on Low Power Electronics
and Design, pp. 103-107, 2001.
Hatem Zakaria
Université de Grenoble
154
References
[DHA 02]
Dhar S., Maksimovic D. and Kranzen B.: ‘Closed-loop adaptive voltage
scaling controller for standard-cell ASICs’, In ISLPED '02: Proceedings
of the 2002 international symposium on Low power electronics and
design, pp. 103-107, New York, NY, USA, ACM, 2002.
[DIE 03]
Dielissen J., Radulescu A., Goossensa K. and Rijpkema E.: ‘Concepts
and implementation of the Philips network-on-chip’, presented at the IPBased SoC Des., Grenoble, France, 2003.
[DIK 99]
Dike C. and Burton E.: ‘Miller and noise effects in a synchronizing flipflop’, IEEE Journal of Solid-State Circuits, 34(6), pp. 849-855, 1999.
[DOB 04]
Dobkin R., Ginosar R. and Sotiriou C.: ‘Data synchronization issues in
GALS SoCs’. in Proceedings of the 10th International Symposium on
Asynchronous Circuits and Systems ASYNC ‘04, pp. 170-180, 2004.
[DUR 09]
Durand S. and Nicolas M.: ‘Fast Predictive Control of Micro Controller’s
Energy-Performance Tradeoff’, IEEE Control Applications, (CCA) &
Intelligent Control, (ISIC), pp. 314-319, 2009.
[DUR 09a]
Durand S. and Nicolas M.: ‘Dispositif de Commande d'alimentation d'un
Calculateur’, Patent, No. 09/04686, 2009.
[DUR 09b]
Durand S. and Nicolas M.: ‘Dispositif de Commande d'alimentation d'un
Calculateur’, Patent, No. 09/01576, 2009.
[DUR 11]
Durand S.: ‘Reduction of the Energy Consumption in Embedded
Electronic Devices with Low Control Computational Cost’. PhD thesis,
Institut National Polytechnique de Grenoble, Grenoble, France, 2011.
[EBE 91]
Ebergen J.: ‘A formal approach to designing delay-insensitive circuits’.
Distributed Computing, 5(3), pp. 107-119, 1991.
[EBE 98]
Ebergen J., Fairbanks S., and Sutherland I.: ‘Predicting performance of
micropipelines using Charlie diagrams’, in Proc. International
Symposium on Advanced Research in Asynchronous Circuits and
Systems, ASYNC98, pp. 238–246, 1998.
[FAI 04]
Fairbanks S. and Moore S.: ‘Analog micropipeline rings for high
precision timing’, ASYNC’04, CRETE, Greece, IEEE, pp. 41–50, 2004.
[FLA 03]
Flautner K., Flynn D. and Rives M.: ‘A combined hardware-software
approach for low-power SoCs: applying adaptive voltage scaling and the
vertigo performance-setting algorithms’, In Proceedings of DesignCon
(System-on-Chip and ASIC Design Conference), 2003.
Hatem Zakaria
Université de Grenoble
155
References
[FLA 04]
Flautner K., Flynn D., Roberts D. and Patel D.: ‘Iem926: An energy
efficient SoC with dynamic voltage scaling’, Design, Automation and
Test in Europe Conference and Exhibition, 3, pp. 324-327, 2004.
[FRE 07]
Frenkil J. and Venkatraman S.: ‘Power-gating Design Automation’,
Chapter 10, ‘Closing the Power Gap between ASIC & Custom: Tools and
Techniques for Low Power Design’, No.1, 2007.
[GAR 00]
Garside J. et al.: ‘AMULET3i - an Asynchronous System-on-Chip’.
Proceedings ASYNC 2000, IEEE Computer Society Press, pp. 162-175,
2000.
[GIN 03]
Ginosar R.: ‘Fourteen ways to fool your synchronizer’, International
Symposium on Asynchronous Circuits and Systems Async’03, pp. 1-8,
2003.
[GRU 01]
Gruian F.: ‘Hard Real-Time Scheduling Using Stochastic Data and DVS
Processors’, In Proceedings of the International Symposium on Low
Power Electronics and Design, pp. 46-51, 2001.
[GUN 93]
Gunawardena J.: ‘A generalized event structure for the Muller unfolding
of a safe net’. Proceedings of the 4th International Conference on
Concurrency Theory, pp. 278-292, 1993.
[HAM 08]
Hamon J., Fesquet L., Miscopein B. and Renaudin M.: ‘High-Level
Time-Accurate Model for the Design of Self-Timed Ring Oscillators’,
ASYNC’08, Newcastle, UK, IEEE, pp. 29 – 38, 2008.
[HAU 95]
Hauck S.: ‘Asynchronous design methodologies: An overview’.
Proceedings of the IEEE, 83(1), pp. 69-93, 1995.
[HED 87]
Hedenstierna N. and Jeppson K.: ‘CMOS circuit speed and buffer
optimization’, IEEE Transactions on CAD, 6(3), 1987.
[HEL 04]
Hellerstein J., Diao Y., Parekh S. and Tilbury D.: Feedback Control of
Computing Systems. Wiley-IEEE Press, ISBN: 978-0-471-26637-2, 2004.
[JOY 04]
Joycee M., Supratik C. and Dinesh S.: ‘Evaluation of pausible clocking
for interfacing high speed IP cores in GALS framework’, in proceedings
of 17th International Conference on VLSI Design, pp. 559-564, 2004.
[JUA 05]
Juang P., et al.: ‘Coordinated, Distributed, Formal Energy Management
of Chip Multiprocessors’, in Proceedings of the ISLPED, pp. 127-130,
2005.
Hatem Zakaria
Université de Grenoble
156
References
[KIM 02]
Kim W., Kim J. and Min S.: ‘A Dynamic Voltage Scaling Algorithm for
Dynamic-Priority Hard Real-Time Systems Using Slack Time Analysis’,
In Proceedings of Design, Automation and Test in Europe (DATE’02),
pp. 788-794, 2002.
[KIN 02]
Kinniment D., Bystrov A. and Yakovlev A.: ‘Synchronization circuit
performance’, IEEE Journal of Solid-State Circuits, 37(2), pp. 202-209,
2002.
[KRS 07]
Krstic M., Grass E., Gurkaynak F., Vivet P.: ‘Globally Asynchronous,
Locally Synchronous Circuits: Overview and Outlook’, In IEEE Design
& Test of Computers, 24(5), pp. 430-441, 2007.
[LEE 00]
Lee S. and Sakurai T.: ‘Run-time Voltage Hopping for Low power RealTime Systems’, In Proceedings of the 37th Design Automation
Conference, pp. 806-809, 2000.
[LEE 07]
Lee H., Chang N., Ogras U. and Marculescu R.: ‘On-chip communication
architecture exploration: A quantitative evaluation of point-to-point, bus,
and network-on-chip approaches’. ACM Trans. Des. Autom. Electron.
Syst., 1(3), pp. 1-20, 2007.
[MAG 03]
Magklis G., et al.: ‘Dynamic Frequency and Voltage Scaling for a
Multiple-Clock-Domain Microprocessor’. IEEE Transactions on VLSI,
23(6), pp. 62-68, 2003.
[MAR 02]
Martin S., Flautner K., Mudge T. and Blaauw D.: ‘Combined dynamic
voltage scaling and adaptive body biasing for lower power
microprocessors under dynamic workloads’, In Proceedings of the
International Conference on Computer-Aided Design, pp. 721–725, 2002.
[MAR 05]
Marculescu D. and Talpes E.: ‘Energy Awareness and Uncertainty in
Microarchitecture-Level Design’, IEEE Micro, 25(5), pp. 64-76, 2005.
[MAR 86]
Martin A.: ‘Compiling communicating processes into delay-insensitive
VLSI circuits’. Distributed Computing, 1(4), PP. 226–234, 1986.
[MAR 90]
Martin A.: ‘The limitations to delay-insensitivity in asynchronous
circuits’. In William J. Dally, editor, Advanced Research in VLSI, MIT
Press, pp. 263-278, 1990.
[MAR 97]
Martin A., Lines A., Manohar R., Nystrom M., Penzes P., Southworth R.,
Cummings U., and Lee T.: ‘The design of an asynchronous MIPS
R3000’. In Proceedings of the 17th Conference on Advanced Research in
VLSI, pp. 164–181, 1997.
Hatem Zakaria
Université de Grenoble
157
References
[MAT 05]
Matthew W. Wayne P. and Ian G.: ‘Synchro-Tokens: A Deterministic
GALS Methodology for Chip-Level Debug and Test’, IEEE Transactions
on Computers, 54(12), pp. 1532-1546, 2005.
[MAY 90]
Mayne D. and Michalska H.: ‘Receding Horizon Control of Nonlinear
Systems’. IEEE Transactions on Automatic Control, 35(7), pp. 814-824,
1990.
[MIE 07]
Miermont S., Vivet P. and Renaudin M.: ‘A Power Supply Selector for
Energy- and Area-Efficient Local Dynamic Voltage Scaling’, in
Proceedings of PATMOS, pp. 556-565, 2007.
[MIE 08]
Miermont S.: ‘Contrôle distribué de la tension d'alimentation dans les
architectures GALS et proposition d'un sélecteur dynamique
d'alimentation’. PhD thesis, Institut National Polytechnique de Grenoble,
Grenoble, France, 2008.
[MUL 07]
Mullins R. and Moore S.: ‘Demystifying Data-Driven and Pausible
Clocking Schemes’, ASYNC’07, Berkeley, California, USA, IEEE, pp.
175–185, 2007.
[MUL 59]
Muller D. and Bartky W.: ‘A theory of asynchronous circuits’.
Proceedings of International Symposium on the Theory of Switching, pp.
204-243, 1959.
[MUT 00]
Muttersbach, J. Villiger and Fichtner, W.: ‘Practical design of globallyasynchronous locally-synchronous systems’ In Proceedings of the
International Symposium on Advanced Research in Asynchronous
Circuits and Systems ASYNC’00, pp. 52-59, 2000.
[MUT 99]
Muttersbach J., Villiger T., Kaeslin H., Felber N. and Fichtner, W.:
‘Globally-asynchronous locally-synchronous architectures to simplify the
design of on-chip systems’, in Proceedings of 12th Annual IEEE
International ASIC/SOC Conference, pp. 317 – 321, 1999.
[MYE 01]
Myers C.: Asynchronous Circuit Design, New York: John Wiley & Sons,
2001.
[NIE 94]
Nielsen L., Niessen C., Sparsø J., and Berkel C.: ‘Low-power operation
using self-timed circuits and adaptive scaling of the supply voltage’.
IEEE Transactions on VLSI Systems, 2(4), pp. 391-397, 1994.
[NIY 05]
Niyogi K. and Marculescu D.: ‘Speed and Voltage Selection for GALS
Systems based on Voltage/Frequency Islands’, in Proceedings of ASPDAC, pp. 1-6, 2005.
Hatem Zakaria
Université de Grenoble
158
References
[OGR 07]
Ogras U., et al.: ‘Voltage-Frequency Island Partitioning for GALS-based
Networks-on-Chip’, in Proceedings of DAC, pp. 110-115, 2007.
[OGR 08]
Ogras U., et al.: ‘Variation-Adaptive Feedback Control for Networks-onChip with Multiple Clock Domains’, in Proceedings of DAC, pp. 614619, 2008.
[OLS 99]
Olsson T., Torkelsson M., Nilsson P., Hemani A. and Meincke T.:
‘A digitally controlled on-chip clock multiplier for globally asynchronous
locally synchronous systems’, in proceedings of the IEEE 42nd Midwest
Symposium on Circuits and Systems, 1, pp. 84-87, 1999.
[PAN 02]
Panyasak D., Sicard G., and Renaudin M.: ‘A Current Shaping
Methodology for Low EMI Asynchronous Circuits’ EMC Compo,
Toulouse, France, 2002.
[PAN 05]
Pangrle B. and Kapoor S.: ‘Leakage power at 90nm and below’,
Technical report, Synopsis Inc, 2005.
[PAV 98]
Paver N., Day P., Farnsworth C., Jackson D., Lien W., and Liu J.: ‘A
low-power, low-noise configurable self-timed DSP’, in Proceedings of
International Symposium on Advanced Research in Asynchronous
Circuits and Systems, pp. 32–42, 1998.
[PFI 07]
Pfitzner A., Kuzmicz W., Piwowarska E. and Kasprowicz D.: ‘Static
power consumption in nano-CMOS circuits: Physics and modeling’. In
Proceeding of the 14th International Conference Mixed Design of
Integrated Circuits and Systems, pp. 163-168, 2007.
[PIL 01]
Pillai P. and Shin K.: ‘Real-Time Dynamic Voltage Scaling for LowPower Embedded Operating Systems’. In Proceedings of 18th ACM
Symposium on Operating Systems Principles (SOSP’01), pp. 89-102,
2001.
[PIN 01]
Pinheiro E., Bianchini R., Carrera E. and Heath T.: ‘Dynamic Cluster
Reconfiguration for Power and Performance’. In Benini L., Kandemir M.
and Ramanujam J., editors, Compilers and operating systems for low
power, Kluwer Academic Publishers, Norwell, USA, pp. 75-93, 2001.
[POK 07]
Pokhrel K.: ‘Physical and Silicon Measures of Low Power Clock Gating
Success: An Apple to Apple Case Study’, SNUG, http://www.snuguniversal.org, 2007.
[POU 01]
Pouwelse J., Langendoen K. and Sips H.: ‘Dynamic voltage scaling on a
low-power microprocessor’, In MobiCom'01 Proceedings of the 7th
annual international conference on Mobile computing and networking,
New York, NY, USA, ACM, pp. 251-259, 2001.
Hatem Zakaria
Université de Grenoble
159
References
[REB 09]
Rebaud B.: ‘Evolution vers des Architectures de Systèmes Intégrés AutoAdaptatives et Tolérantes aux Variations Technologiques et
Environnementales’. PhD thesis, LIRMM, France, 2009.
[REB 10]
Rebaud B., et al.: ‘Digital Timing Slack Monitors and Their Specific
Insertion Flow for Adaptive Compensation of Variabilities’. In Monteiro
J. and Leuken R., editors, Integrated Circuit and System Design. Power
and Timing Modeling, Optimization and Simulation, Lecture Notes in
Computer Science, Springer-Verlag, 5953, pp. 266-275, 2010.
[REN 03]
Renaudin M. and Fragoso J.: ‘Asynchronous Circuits Design: An
Architectural Approach’. In: Guntzel J. and Reis R. V Escola de
Microeletrônica da SBC-Sul, Rio Grande, Brazil, pp. 1-43, 2003.
[REN 96]
Renaudin M., Elhassan B., and Guyot A.: ‘A New Asynchronous Pipeline
Scheme: Application To The Design Of A Self-Timed Ring Divider’.
IEEE Journal of Solid-State Circuits, 31(7), pp. 1001-1013, 1996.
[RIG 02]
Rigaud J.: ‘Spécification de bibliothèques pour la synthèse de circuits
asynchrones’. PhD thesis, Institut National Polytechnique de Grenoble,
Grenoble, France, 2002.
[RIU 06]
Rius J, Meijer M. and Pineda de Gyvez J.: ‘An Activity Monitor for
Power/Performance Tuning of CMOS Digital Circuits’. Journal of Low
Power Electronics, 2(1), pp. 80-86, 2006.
[SEM 02]
Semeraro G., et al.: ‘Energy-efficient processor design using multiple
clock domains with dynamic voltage and frequency scaling’, in HPCA
'02: Proceedings of the 8th International Symposium on HighPerformance Computer Architecture, pp. 29-40, 2002.
[SEM 06]
Semiconductor Association: ‘The International Technology Roadmap for
Semiconductors’, 2006.
[SHA 03]
Shang L., Peh L. and Jha N.: ‘PowerHerd: Dynamically Satisfying Peak
Power Constraints in Interconnection Networks’, in Proceedings of the
International. Symposium On Supercomputing, 2003.
[SHA 98]
Shams M., Ebergen J. and Elmasry M.: ‘Modeling and comparing CMOS
implementations of the c-element’. IEEE Transactions on Very Large
Scale Integration (VLSI) Systems, 6(4), pp. 563–567, 1998.
[SHI 00]
Shin Y., Choi K. and Sakurai T.: ‘Power Optimization of Real-Time
Embedded Systems on Variable Speed Processors’, In Proceedings of the
International Conference on Computer-Aided Design, pp. 365-368, 2000.
Hatem Zakaria
Université de Grenoble
160
References
[SHI 01]
Shin D., Kim J. and Lee S.: ‘Intra-Task Voltage Scheduling for LowEnergy Hard Real-Time Applications’, IEEE Design and Test of
Computers, 18(2), pp. 20-30, 2001.
[SIM 04]
Simunic T., Boyd S. and Glynn P.: ‘Managing Power Consumption in
Networks on Chips’, in Transactions on VLSI, 12(1), pp. 96-107, 2004.
[SPA 01]
SparsØ J. and Furber S.: ‘Principles of Asynchronous Circuit Design. A
System Perspective’. Kluwer Academic Publishers, 2001.
[STO 03]
Stork M.: ‘Digital building block for frequency synthesizer and fractional
phase locked loops’, SympoTIC, IEEE, pp. 126 – 129, 2003.
[SUT 89]
Sutherland I.: ‘Micropipelines’ Communications of the ACM
(Association of Computing Machinery), 32(6), pp. 720–738, 1989.
[SVI 01]
Svilan S., Burr J. and Tyler G.: ‘Effects of elevated temperature on
tunable near-zero threshold CMOS’, In Proceeding of the International
Symposium on Low-Power Electron and Design, pp. 255-258, 2001.
[VAR 03]
Varma A., Ganesh B., Sen M., Choudhury S., Srinivasan L. and Jacob B.:
‘A control-theoretic approach to dynamic voltage scheduling’, In
CASES'03: Proceedings of the international conference on Compilers,
architecture and synthesis for embedded systems, New York, USA,
ACM, pp. 255-266, 2003.
[VIL 03]
Villiger T., Kaslin H., Gürkaynak F., Oetiker S. and Fichtner W.: ‘Selftimed Ring for Globally-Asynchronous Locally-Synchronous Systems’,
in Proceedings of the 9th International Symposium on Asynchronous
Circuits and Systems ASYNC’03, pp. 141-150, 2003.
[WIL 91]
Williams T. and Horowitz M.A.: ‘A zero-overhead self-timed 160 ns. 54
bit CMOS divider’. IEEE Journal of Solid State Circuits, 26(11), pp.
1651-1661, 1991.
[WIL 94]
Williams T.: ‘Performance of Iterative Computation in self-timed rings’.
Journal of VLSI signal processing, 7, pp. 17-31, 1994.
[WIL 95]
Williams T., Patkar N., and Shen G.: ‘SPARC64: A 64-b 64activeinstruction out-of-order-execution MCM processor’. IEEE Journal
of Solid-State Circuits, 30(11), pp. 1215-1226, 1995.
[WIN 01]
Winstanley A. and Greenstreet M.: ‘Temporal properties of selftimed
rings’, in Proc. 11th Advanced Research Working Conference on Correct
Hardware Design and Verification Methods (CHARME), 2001.
Hatem Zakaria
Université de Grenoble
161
References
[WIN 02]
Winstanley A., Garivier A., and Greenstreet M.: ‘An event spacing
experiment’, in Proc. International Symposium on Advanced Research in
Asynchronous Circuits and Systems, ASYNC 02, pp. 47–56, 2002.
[WU 04]
Wu Q., et al.: ‘Formal Online Methods for Voltage/Frequency Control in
Multiple Clock Domain Microprocessors’, in Proceedings of ASPLOS,
pp. 248-259, 2004.
[YAH 09]
Yahya E., Elissati O., Zakaria H., Fesquet L. and Renaudin M.
‘Programmable/Stoppable Oscillator Based on Self-Timed Rings’,
ASYNC 09 (15th IEEE International Symposium on Asynchronous
Circuits and Systems), Chapel Hill, North Carolina, USA, pp. 3-12, 2009.
[YUN 96]
Yun K., Beerel P., and Arceo J.: ‘High-Performance Asynchronous
Pipeline Circuits’. IEEE Computer Society, ASYNC96, AizuWakamatsu, Japan, pp. 17-28, 1996.
[YUN 96a]
Yun K. and Donohue R.: ‘Pausible Clocking: A First Step Toward
Heterogeneous Systems’, In Procedings of International Conference on
Computer Design ICCD, pp. 118-123, 1996.
[ZAK 10a]
Zakaria H., Durand S., Marchand N. and Fesquet L.: ‘Integrated
Asynchronous Regulation for Nanometric Technologies’, in VARI
Workshop, Montpellier, France, 2010.
[ZAK 10b]
Zakaria H., Yahya E. and Fesquet L.: ‘Self Adaption in SoCs’, Book
Chapter, In Cong-Vinh P., editor, Autonomic Networking-on-Chip (Bioinspired Specification, Development, and Verification), Embedded MultiCore Systems, CRC Press, 2011.
[ZEB 05]
Zebilis V. and Sotiriou C.: ‘Controlling event spacing in self-timed
rings’, ASYNC’05, New York, USA, IEEE, pp. 109 – 115, 2005.
[ZHU 02]
Zhuang S., Li W., Carlsson J., Palmkvist K. and Wanhammar L.:
'Asynchronous Data Communication with Low Power for GLAS
Systems’, in Proceedings of the 9th international conference on
Electronics, Circuits and Systems, 2, pp. 753-756, 2002.
[ZHU 03]
Zhu Y. and Mueller F.: ‘Feedback dynamic voltage scaling DVS-EDF
scheduling: Correctness and PID-feedback’. Technical report, Workshop
on Compilers and Operating Systems for Low Power, 2003.
Hatem Zakaria
Université de Grenoble
162
Architecture Asynchrone pour L’Efficacité Energétique et L’Amélioration du Rendement
en Fabrication dans les Technologies Décananométriques: Application à un Système sur
Puce Multi-Cœurs
Résumé - La réduction continuelle des dimensions dans les technologies CMOS a ouvert la porte à la conception de
circuits complexes multi-cœurs (SoC). Malheureusement dans les technologies nanométriques, les performances
des systèmes intégrés après fabrication ne sont pas complètement prédictibles. En effet, les variations des procédés
de fabrication sont très importantes aux échelles des puces. Par conséquent, la conception de tels systèmes dans les
technologies nanométriques est désormais contrainte par de nombreux paramètres tels que la robustesse aux
variations des procédés de fabrication et la consommation d'énergie. Ceci implique de disposer d'algorithmes
efficaces, intégrés dans la puce, susceptibles d'adapter le comportement du système aux variations des charges des
processeurs tout en faisant face simultanément aux variations des paramètres qui ne peuvent pas être prédits ou
modélisées avec précision au moment de la conception. Dans ce contexte, ce travail de thèse porte sur la conception
de systèmes dit « GALS » (Globally Asynchronous Locally Synchronous) conçus autour d’un réseau de
communication intégré à la puce (Network-on-Chip ou NoC) exploitant les nouvelles générations de technologie
CMOS. Une nouvelle méthode permettant de contrôler dynamiquement la vitesse des différents îlots du NoC grâce
à un contrôle de la tension et de la fréquence en fonction de la qualité locale des procédés de fabrication sur chaque
îlot est proposée. Cette technique de contrôle permet d’améliorer les performances du système en consommation,
et d’augmenter son rendement en fabrication grâce à l’utilisation des synergies au sein du système intégré. La
méthode de contrôle est basée sur l’utilisation d'un anneau asynchrone programmable capable de prendre en
compte la charge de travail dynamique et les effets de la variabilité des procédés de fabrication. Le contrôleur évalue
en particulier la limite supérieure de fréquence de fonctionnement pour chaque domaine d'horloge. Ainsi, il n'est
plus nécessaire de garantir les performances temporelles de chaque nœud au moment de la conception. Cela relâche
considérablement les contraintes de fabrication et permet du même coup l'amélioration du rendement.
Mots Clés: Logique Asynchrone, Technologies Nanométriques, Variabilité des Procédés de Fabrication, GALSNoC, DVFS Mécanismes de Contrôle, Conceptions pour le Rendement.
Asynchronous architecture for power efficiency and yield enhancement in the
decananometric technologies: Application to a multi-core system-on-chip
Abstract - Continuous scaling of CMOS technology push circuit designs towards multi-core complex SoCs.
Moreover, with the nanometric technologies, the integrated system performances after fabrication will not be fully
predictable. Indeed, the process variations really become huge at the chip scale. Therefore the design of such
complex SoCs in the nanoscale technologies is now constrained by many parameters such as the energy
consumption and the robustness to process variability. This implies the need of efficient algorithms and built-in
circuitry able to adapt the system behavior to the workload variations and, at the same time, to cope with the
parameter variations which cannot be predicted or accurately modeled at design time. In this context, this thesis
work addresses the design of GALS-based NoC architectures in the upcoming CMOS technologies. A novel
methodology to dynamically control the speed of different voltage-frequency NoC islands according to the process
variability impact on each domain is proposed. This control technique can improve the performances, the energy
consumption, and the yield of future SoC architectures in a synergistic manner. The control methodology is based
on the design of an asynchronous programmable self-timed ring where the controller takes into account the dynamic
workload and the process variability effects. The controller especially considers the operating frequency limit which
does not exceed the maximum locally allowed value for a given clock domain. With such an approach, it is no more
required to separately guaranty the performance for each node. This drastically relaxes the fabrication constraints
and helps the yield enhancement.
Keywords: Asynchronous Logic, Nanometric Technologies, Process Variations, GALS-NoC, DVFS Control
Schemes, Design for Yield.
Thèse préparée au laboratoire TIMA (Techniques de l’Informatique et de la Microélectronique pour
l’Architecture des ordinateurs), 46 Avenue Félix Viallet, 38031, Grenoble Cedex, France
ISBN: 978-2-84813-164-1