Evaluierung des Lernverfahrens XCS im Entwurf von Systems-on-Chip

Werbung
DIPLOMARBEIT
Evaluierung des Lernverfahrens XCS
im Entwurf von Systems-on-Chip
Dirk Fritz
Ausgeführt an der Fakultät für Informations- und Kognitionswissenschaften am
Wilhelm-Schickard-Institut für Informatik
der Universität Tübingen
Betreuer:
Dipl.-Inform. Andreas Bernauer
1. Gutachter:
Prof. Dr. Wolfgang Rosenstiel
Eidesstattliche Erklärung
Hiermit versichere ich, diese Arbeit selbstständig verfasst und nur die angegebenen Quellen benutzt zu haben.
Tübingen am 15. Januar 2008
Dirk Fritz
Kurzfassung
In dieser Diplomarbeit wird das Leraning-Classier-System XCS evaluiert. Die Evaluierung ndet mit dem Hintergrund statt, dass der XCS im Bereich System-on-Chip zum
Einsatz kommen soll. Dabei soll es helfen, den Chip möglichst optimal einzustellen. Der
XCS kann dabei die Spannung und Frequenz ändern. Das Optimierungziel wird über die
Reward-Funktion des XCS beschrieben. Ein Ziel könnte z.B sein, das System mit maximaler Taktfrequenz und minimalem Energieaufwand zu betreiben. Im weiteren wird
geprüft, ob der XCS auf äuÿere Veränderungen wie ein Temperaturanstieg reagieren
kann. Für die Evaluierung ist eine Simulationsumgebung entwickelt worden, mit der die
Gröÿen wie Temperatur und Verlustleistung simuliert werden können. Auÿerdem wurden
Modelle implementiert, die Fehlermechanismen aufgrund zu hoher Temperatur, zu hoher
Frequenz oder zu niedriger Spannung nachbilden.
Danksagungen
An dieser Stelle möchte ich mich bei allen bedanken, die zum Gelingen dieser Arbeit
beigetragen haben. Besonderer Dank gilt dabei meinem Betreuer Andreas Bernauer, der
trotz schwieriger Umstände mit Rat und Tat zur Seite stand. Weiter möchte ich mich
bei Herrn Professor Dr. Wolfgang Rosenstiel für die Ermöglichung der Diplomarbeit und
die interessante Themenstellung bedanken.
Inhaltsverzeichnis
1 Einführung
1
1.1
Hintergrund . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.3
Aufbau der Arbeit
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Learning-Classier-System: XCS
4
2.1
Allgemeines zu Learning-Classier-Systeme
. . . . . . . . . . . . . . . . .
4
2.2
Überblick über den XCS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.2.1
Interaktion mit der Umgebung
. . . . . . . . . . . . . . . . . . . .
5
2.2.2
Single-Step und Multi-Step Probleme . . . . . . . . . . . . . . . . .
6
2.3
2.4
Formale Beschreibung des XCS
. . . . . . . . . . . . . . . . . . . . . . . .
7
2.3.1
Die Sets des XCS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.3.2
Ablauf eines Single-Step Experiments
. . . . . . . . . . . . . . . .
7
2.3.3
Einfügen neuer Classier . . . . . . . . . . . . . . . . . . . . . . . .
11
2.3.4
Zusammenfassen von Classiern . . . . . . . . . . . . . . . . . . . .
11
2.3.5
Vorgehensweise des GAs . . . . . . . . . . . . . . . . . . . . . . . .
11
2.3.6
Löschen von Classiern
. . . . . . . . . . . . . . . . . . . . . . . .
12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
Zusammenfassung
3 Modellierung von SoCs
3.1
3.2
3.3
Berechnung der Verlustleistung
13
. . . . . . . . . . . . . . . . . . . . . . . .
13
3.1.1
Modell zu Berechnung der statischen Verlustleistung
. . . . . . . .
14
3.1.2
Modell zu dynamischen Verlustleistung . . . . . . . . . . . . . . . .
15
3.1.3
Gesamte Verlustleistung . . . . . . . . . . . . . . . . . . . . . . . .
15
Modellierung der Temperatur auf einem SoC
. . . . . . . . . . . . . . . .
16
3.2.1
Grundlagen zur Berechnung der Temperatur . . . . . . . . . . . . .
16
3.2.2
Ermittlung der Temperatur mit HotSpot . . . . . . . . . . . . . . .
17
Modell aufgrund von Zeitverletzungen
. . . . . . . . . . . . . . . . . . . .
19
Inhaltsverzeichnis
3.3.1
Analytisches Modell zu Berechnung der Verzögerungszeit eines Invertes
3.4
3.6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2
Temperatureinuÿ auf die Schaltzeit
3.3.3
Gesamte Schaltzeit eines Inverters
3.3.4
Berechnung der Verzögerungszeit der Pipeline-Stufe
20
. . . . . . . . . . . . . . . . .
21
. . . . . . . . . . . . . . . . . .
22
. . . . . . . .
22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.4.1
Grundlagen zu Soft Errors . . . . . . . . . . . . . . . . . . . . . . .
24
3.4.2
Einuÿ der Spannung auf die SER
25
3.4.3
Fehlermodell für Soft Errors von Dakai Zhu
3.4.4
Fehlermodell für Soft Errors von Peter Hazucha und Christer Svens-
Soft Errors
. . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
26
son . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Stochastische Grundlagen der SER . . . . . . . . . . . . . . . . . .
28
Hard Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.5.1
Beziehung zwischen Temperatur und Langlebigkeit eines Prozessors
30
3.5.2
Elektronenmigration . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.4.5
3.5
V
Zusammenfassung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Implementierung der Modelle und Beschreibung des Testsystems
32
33
4.1
Implementierung der Modelle
. . . . . . . . . . . . . . . . . . . . . . . . .
33
4.2
Beschreibung des Testsystems . . . . . . . . . . . . . . . . . . . . . . . . .
39
4.2.1
Technische Daten des Opteron Prozessors
. . . . . . . . . . . . . .
40
4.2.2
Modellierung des Opteron Quad-Core
. . . . . . . . . . . . . . . .
41
4.2.3
Beschreibung des Opterons mit asoc-sim . . . . . . . . . . . . . . .
42
4.2.4
Trace-File für das Testsystem . . . . . . . . . . . . . . . . . . . . .
43
4.2.5
Verikation des Testsystems . . . . . . . . . . . . . . . . . . . . . .
48
4.3
XCS-Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
4.4
Zusammenfassung
50
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Evaluierung des XCS
51
5.1
Beschreibung der Umgebung und Aktionen
. . . . . . . . . . . . . . . . .
51
5.2
Single-Step oder Multi-Step
. . . . . . . . . . . . . . . . . . . . . . . . . .
52
5.3
Generierung von Classiern
. . . . . . . . . . . . . . . . . . . . . . . . . .
53
Beschreibung der Rewardfunktion . . . . . . . . . . . . . . . . . . .
54
5.3.1
5.4
Steuerung der Cores durch den XCS
. . . . . . . . . . . . . . . . . . . . .
56
5.5
Reaktion auf äuÿere Temperatureinüsse . . . . . . . . . . . . . . . . . . .
57
5.6
Lernen mit initialen Classiern
59
5.7
Optimierung eines Kernes bei einer DualCore-Anwendung
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .
62
Inhaltsverzeichnis
VI
5.8
Steuerung der Speicher . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
5.9
Zusammenfassung
66
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Zusammenfassung und Diskussion
67
6.1
Zusammenfassung
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
6.2
Diskussion und Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
A Wichtige Herleitungen
69
A.1
Dynamische Verlustleistung
. . . . . . . . . . . . . . . . . . . . . . . . . .
69
A.2
Schaltzeit eines Inverters . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
B Parameter XCS
B.1
Die Parameter des XCS im Überblick . . . . . . . . . . . . . . . . . . . . .
Literaturverzeichnis
73
73
75
Abbildungsverzeichnis
1.1
Design Methode und autonome SoC Architektur [18] . . . . . . . . . . . .
3
2.1
Interaktion des XCS mit der Umgebung [4]
. . . . . . . . . . . . . . . . .
6
2.2
Ablauf bei einem Schritt [30]
. . . . . . . . . . . . . . . . . . . . . . . . .
10
3.1
Dynamische Verlustleistung
. . . . . . . . . . . . . . . . . . . . . . . . . .
14
3.2
Verschiedene Schichten bei HotSpot [14]
3.3
thermische Ersatztschaltung bei HotSpot [14]
. . . . . . . . . . . . . . . .
18
3.4
System mit Pipeline nach [27] . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.5
Pipeline-Stufe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.6
Temperaturabhänigkeit der Verzögerungszeit eines Invertes [10]
. . . . . .
22
3.7
Arten von Prozessorfehlern nach [19] . . . . . . . . . . . . . . . . . . . . .
23
3.8
Vorgang bei Einschlag eines Alpha-Partikel [19] . . . . . . . . . . . . . . .
25
3.9
90nm CMOS Testship
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.10 Poisson-Prozess
. . . . . . . . . . . . . . . . . . .
3.11 Fehlerrate von elektronischen Schaltungen nach [25]
. . . . . . . . . . . .
3.12 typische Verteilungsfunktion von elektronischen Schaltungen nach [25]
18
31
. .
32
4.1
Auszug aus dem Klassendiagramm der implementierten Modelle . . . . . .
34
4.2
Auszug aus dem Klassendiagramm der implementierten Parametermodelle
35
4.3
Mögliche Vernetzung von Modellen . . . . . . . . . . . . . . . . . . . . . .
35
4.4
Implementiertes Verlustleistungsmodell . . . . . . . . . . . . . . . . . . . .
36
4.5
Schnittstelle für HotSpot . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
4.6
Einschwingphase Temperatur
. . . . . . . . . . . . . . . . . . . . . . . . .
37
4.7
Timing-Error Modell mit C_mteHotSpot als Temperaturmodell . . . . . .
37
4.8
Vernetzung zur Simulation eines Soft-Errors . . . . . . . . . . . . . . . . .
38
4.9
Aufbau des Opteron Prozessors . . . . . . . . . . . . . . . . . . . . . . . .
39
4.10 Floorplan des Opteron Prozessors [21]
4.11 Floorplan für HotSpot
. . . . . . . . . . . . . . . . . . . .
40
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
Abbildungsverzeichnis
VIII
4.12 Modellierung des Opteron mit asoc-sim . . . . . . . . . . . . . . . . . . . .
44
4.13 Ausführung einer Trace-Primitive . . . . . . . . . . . . . . . . . . . . . . .
44
4.14 Einbindung des C-XCS in asoc-sim . . . . . . . . . . . . . . . . . . . . . .
49
5.1
Ablauf der Lernphase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
5.2
Temperaturschwankung von 500MHz, 0.8V nach 3000MHz, 1.3V
. . . . .
54
5.3
Timing-Error bei einer Frequenz von 2000 MHz (1 ist ein Fehler . . . . . .
55
5.4
Reaktion des XCS nach zufälligen Parametereinstellungen (LR-Zerlegung)
56
5.5
Reaktion des XCS nach zufälligen Parametereinstellungen (Matrix-Multiplikation) 57
5.6
Frequenzänderung und Spannungänderung bei allen vier Cores
. . . . . .
58
5.7
◦
Reaktion des XCS auf einen Temperaturanstieg von 15 C
. . . . . . . . .
59
5.8
◦
Reaktion des XCS auf einen Temperaturanstieg von 20 C
. . . . . . . . .
60
5.9
Ablauf der Lernphase zur Laufzeit
. . . . . . . . . . . . . . . . . . . . . .
61
5.10 Frequenz-/Spannungänderungen zur Laufzeit
. . . . . . . . . . . . . . . .
61
5.11 Verhalten des XCS nach Neulernen einer Reward-Funktion und simulierter
Temperaturanstieg von
20◦ C
. . . . . . . . . . . . . . . . . . . . . . . . .
5.12 Frequenz-/Spannungänderungen Optimierung Core2
62
. . . . . . . . . . . .
64
5.13 Spannungsänderung durch den XCS bei einem Cache . . . . . . . . . . . .
65
A.1
Zeiten bei Schaltvorgang in einem Transitor nach [27] . . . . . . . . . . . .
70
A.2
Stromstärke in Abhängigkeit der Ausgangsspannung nach [27] . . . . . . .
71
Tabellenverzeichnis
3.1
Parameterwerte für das statische Verlustleistungsmodell
. . . . . . . . . .
15
4.1
Parameterwerte für die Opteron Simulation
. . . . . . . . . . . . . . . . .
42
5.1
Parameterwerte des XCS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
Kapitel 1
Einführung
Dieses Kapitel gibt eine Einführung in den Hintergrund dieser Arbeit. Danach wird die
Aufgabenstellung und Aufbau der Arbeit beschrieben.
1.1 Hintergrund
System-on-Chips (SoCs) haben sich schon seit Jahren im Bereich eingebetteter Systeme
etabliert. Bei SoCs handelt es sich um Chips die eine Vielzahl von Systemfunktionen
auf einem Chip integrieren. Dabei kann sich ein solches System aus unterschiedlichen
Komponenten zusammensetzen. Im Prinzip können daher auf einem Chip unabhänige Komponenten wie CPU, GPU, DSP oder Speicher miteinander verbunden sein. Mit
der Entwicklung und Verbreitung von Multi-Core-Systemen hat sich ein weiterer Teilbreich bei den SoCs gebildet. Neben den eigebetteten Systemen nehmen SoCs nun auch
im Server- und Konsumerbereich eine wichtige Stellung ein. Diese Systeme werden als
Multi-Processor-System-on-Chips (MPSoC) bezeichnet.
Der Trend zu immer schnelleren und komplexeren Systemen ist nach wie vor ungebrochen.
Das
Mooresche Gesetz
sagt aus, dass sich die Anzahl an Transistoren auf einem handels-
üblichen Prozessor alle achtzehn Monate verdoppelt. Die Erhöhung von der Transistorzahl bringt aber eine erhöhte Energieraufnahme mitsich. Eine hohe Energieaufnahme hat
aber unweigerlich eine hohe Temperatur zur Folge. Die Temperatur ist ein entscheidender
Faktor bzgl. der Zuverlässigkeit eines Chips. Ist die Temperatur zu hoch, kommt es zu
Fehlverhalten oder der Chip kann dabei sogar zerstört werden.
Auÿerdem werden die Transistoren ständig verkleinert. Der 65nm Fertigungsprozess ist
gegenwärtig Standard. Die Firma Intel ist bereits dabei den 45nm Prozess zu etablieren.
Die ständige Verkleinerung der Transistoren führt aber zu einer Reihe von Problemen.
Kapitel 1 Einführung
2
Zum einen entstehen dabei Schwierigkeiten bei Leistungaufnahme, zum anderen nehmen
Fehler aufgrund energiegeladener Teilchen eine immer gröÿere Bedeutung an.
Diese Diplomarbeit entstand im Rahmen des Autonomic-System-On-Chip Projekts (ASoC)
am Wilhelm-Schickard-Institut für Informatik der Universität Tübingen. Das Ziel des
Projektes ist, die Probleme durch die ständige Verkleinerung der Transistoren und den
zunehmend komplexeren Schaltungen bei SoCs mit Hilfe von biologischen Grundsätzen
(Organic-Computing) zu lösen. Dabei wurden bereits erste Grundlagen für eine Design
Methode und eine autonome SoC Architektur entwickelt [18]. In Abbildung 1.1 werden
diese beiden Konzepte dargestellt. Die Architektur teilt sich dabei in eine funktionale
und autonome Schicht auf. Die funktionale Ebene beinhaltet dabei IP-Komponenten sowie funktionale Elemente (FEs) wie z.B CPUs oder Speicher. Die autonome Schicht wird
durch autonome Elemente (AE) gebildet. Jedes dieser Elemente besitzt einen Evaluator,
Monitor und Aktuator. Der Monitor stellt den aktuellen Zustand der FE dem Evaluator zur Verfügung. Aufgrund dieses Zustandes trit der Evaluator Entscheidungen um
z.B. auf Fehler zu reagieren, die er dem Aktuator mitteilt. Der Aktuator führt die Aktionen des Evaluators auf der FE aus. Die AEs sind dafür verantwortlich, dass die FEs
möglichst optimal arbeiten. Durch FE- und AE-Bibliotheken werden diese Architekturen
entworfen. Bei den Bibliotheken handelt es sich um parametrisierte Templates. Die Parameter dienen zur unabhänigen Beschreibung von spezischen Eigenschaften einer FE
wie Bitbreite oder Leistung. Die Templates dienen zum Überdecken von verschiedenen
autonomen Elementen. Die AEs können sich z.B. in der Art des Selbstorganisationsalgorithmus unterscheiden. Das resultierende FE/AE-Modell kann dazu benutzt werden um
das System zu optimieren [2].
1.2 Aufgabenstellung
Ziel der Diplomarbeit war es, zu evaluieren, ob sich das Learning-Classier-Verfahren
XCS als Hilfsmittel im Entwurf von Systems-on-Chip eignet. Die Parameter die der XCS
dabei verändern kann sind Frequenz und Spannung. Zur Durchführung der Evaluierung
ist es nötig eine Siumlationsumgebung zu entwickeln, die es erlaubt, die Auswirkungen
dieser zwei Parameter zu modellieren. Bei den Modellen handelt es sich um Temperatur-,
Verlustleistung- und Fehlermodelle die untersucht und implementiert wurden. Anhand
dieser Modelle muÿ der XCS evaluiert werden, ob er z.B. optimale Betriebspunkte eines
SoCs nden kann. Weiter ist zu untersuchen wie der XCS auf äuÿere Einüÿe z.B. ein
Kapitel 1 Einführung
3
Abbildung 1.1: Design Methode und autonome SoC Architektur [18]
Temperaturanstieg reagiert. Die Evaluierung soll an einer konkreten Beispielanwendung
durchgeführt werden.
1.3 Aufbau der Arbeit
In Kapitel 2 wird eine Einführung in Lerning-Classier-System XCS gegeben. Dabei sind
grundlegende Kenntisse über Learning-Classier-Systeme vorteilhaft aber nicht notwendig. Kaptiel 3 stellt Modelle für Temperatur, Verlustleistung sowie Fehlerverhalten eines
SoC vor. Das Kapitel 4 befasst sich mit der Implementierung dieser Modelle. Auÿerdem
wird darin das Testsystem beschrieben, mit dem die Evaluierung des XCS durchgeführt
wurde. In Kapitel 5 wird schlieÿlich der XCS evaluiert, ob es in der Lage ist, als Evaluator eines autonomes Element eingesetzt werden zu können. Im letzten Kapitel werden
dann die gewonnenen Ergebnisse zusammengefaÿt und Schluÿfolgerungen zum Einsatz
des XCS in einem SoC gezogen.
Kapitel 2
Learning-Classier-System: XCS
XCS (Extended-Classier-System) ist ein
Learning-Classier-System
(LCS). Dieses Ka-
pitel stellt eine Einführung in die Funktionsweise von XCS dar. Abschnitt 2.1 und 2.2
geben einen kurzen Überblick über Learning-Classier-Systeme und XCS. Während Abschnitt 2.3 detailiert die Arbeitsweise des XCS erklärt.
2.1 Allgemeines zu Learning-Classier-Systeme
Bei Learning-Classier-Systeme handelt es sich um maschinelle Lernverfahren die auf
Regeln (Classiern) basieren. Eine Regel besteht aus einer Bedingung und einer Aktion.
Dabei besitzt ein LCS ein Interface über das es mit Informationen aus der
Umgebung
(Environment) versorgt wird. Diese Informationen werden für gewöhnlich mit einem IF
Bedingung = Information THEN Aktion Konstrukt bearbeitet. Das bedeutet, falls die
Bedingung einer Regel zutrit, dann wird deren Aktion ausgeführt. Nachdem die Aktion
ausgeführt wurde, wird der Classier belohnt, abhänig davon, wie gut die Aktion in der
jeweiligen Situation war. Die Regeln werden mit Hilfe eines
genetischen Algorithmus (GA)
generiert und verändert. Das Ziel dabei ist, dass möglichst allgemeine Regeln entstehen
die eine hohe
Belohnung
(Reward) bekommen. Learning-Classier-Systeme wurden zum
ersten Mal formal beschrieben von Holland in [13]. Eine klassische Aufgabe für ein solches
System ist das Animat-Problem, welches 1987 von Wilson in [28] vorgestellt wurde. Bei
dieser Aufgabe soll sich ein Tier (oder mobiler Roboter) in einer Umgebung zurechtnden
können. Dabei ist es mit grundlegenden Aktionen wie der Bewegung (vorwärts, rückwärts,
links, rechts) sowie Sensoren zur Wahrnehmung der Umgebung ausgestattet. Mit diesen
Mitteln muÿ das Tier versuchen in der Umgebung zu überleben. Das LCS wird also
durch ein Tier repräsentiert, das lernen sollte z.B. Fressbares von nicht Fressbares zu
Kapitel 2 Learning-Classier-System: XCS
5
unterscheiden. Weiter wäre es vorteilhaft, wenn das Tier gute Futterplätze möglichst
schnell von beliebigen Orten in der Umgebung erreicht.
2.2 Überblick über den XCS
Das Learning-Classier-System XCS wurde 1995 von Wilson in [29] vorgestellt. Bei XCS
handelt es sich um ein Learning-Classier-System, das sich in mehreren Punkte von dem
traditionellen Ansatz eines LCS unterscheidet. Die bis dahin vorhandenen LearningClassier-Systeme, hatten in den meisten Fällen, für die Güte eines Classiers einen
Stärke Parameter. Dieser Parameter dient als Schätzer für die entsprechende Belohnung
und repräsentiert gleichzeitig den Fitnesswert des genetischen Algorithmus. Bei XCS gibt
es zwar auch einen solchen Parameter, der versucht die zu erwartende Belohnung vorherzusagen, die Fitness berechnet sich hier allerdings aus der Genauigkeit dieser Vorhersage.
Auÿerdem arbeitet der genetische Algorithmus ausschlieÿlich auf seinem Action-Set, anstatt auf der gesamten Population. Der XCS besitzt keine Nachrichtenliste und ist daher
theoretisch nur für Markov Umgebungen geeignet. Die weiteren Ausführungen halten sich
an [4] und [5].
2.2.1 Interaktion mit der Umgebung
Die Umgebung versorgt dabei das System mit einer Reihe von Sensordaten. Dabei handelt es sich um ein n-Tupel
σ(t) ∈ {0, 1}L ,
wobei
L
für die Anzahl der Bits steht, die
benötigt werden, um jede Situation zu beschreiben. Aufgrund dieser Sensordaten führt
das System eine Aktion
Skalar
ρ(t)
α(t) ∈ {a1 , ..., an }
aus. Jede dieser Aktionen wird mit einem
belohnt, der durchaus auch Null sein kann. Grundsätzlich gibt es zwei ver-
schiedene Problemarten:
1. Single-Step-Probleme
2. Multi-Step-Probleme
Das Flag
eop
markiert das Ende eines Problems. Bei XCS gibt es neben der Umgebung
noch eine weitere Komponente: das
Reinforcement-Programm
(reinforcement-program).
Diese Komponente ist für die Verteilung der Belohnung zuständig. Die Trennung von
der Umgebung ist logisch, da die Belohnung nicht zwingend eine vererbte Eigenschaft
der Umgebung ist, sondern zum Beispiel vom System selbst festgesetzt werden kann.
Abbildung 2.1 verdeutlicht das Zusammenspiel der einzelnen Elemente.
Kapitel 2 Learning-Classier-System: XCS
6
Abbildung 2.1: Interaktion des XCS mit der Umgebung [4]
2.2.2 Single-Step und Multi-Step Probleme
Der Unterschied zwischen einem Single-Step und Multi-Step Problem ist:
1. Bei einem Single-Step Problem hängen die aufeinanderfolgenden Aktionen nicht
voneinander ab. Nach der Ausführung einer Aktion liefert das ReinforcementProgramm die entsprechende Belohnung
ρ
und setzt das Flag
eop.
2. Bei einem Multi-Step Problem hängen alle aufeinanderfolgende Aktionen voneinander ab. Eine Belohnung gibt es nur in bestimmten Situationen. Auÿerdem muÿ
das Reinforcement-Programm signalisieren, dass eine Aufgabe erfüllt ist.
Ein Beispiel für ein Single-Step-Problem ist ein Multiplexer. Die Eingabedaten in den
Multiplexer hängen nicht voneinander ab und das Ergebnis kann sofort abgefragt werden. Der XCS bekommt daher von der Umgebung die Eingabedaten geliefert und gibt als
Aktion das Ergebnis an die Umgebung zurück. Die Eingabedaten sind Werte der Steuerund Datenleitungen des Multiplexers. Stimmt das vorhergesagte Ergebnis mit dem tatsächlichen Ergebnis überein, so gibt das Reinforcement-Programm eine hohe Belohnung
an den XCS zurück. Das bereits angesprochene Animat-Problem hingegen, läÿt sich einfacher als Multi-Step-Problem lösen. Das heiÿt, die gewählten Bewegungen des Tieres in
der Umgebung hängen voneinander ab. Wenn sich z.B. feste Futterstellen in der Umgebung benden, gibt es von jeder Position einen kürzesten Pfad. Es ist also entscheidend,
wann bzw. welche Aktion von einer bestimmten Position ausgeführt wird. Falls eine Fut-
Kapitel 2 Learning-Classier-System: XCS
7
terstelle erreicht wird, setzt das Reinforcement-Programm das
eop
Flag und berechnet
die entsprechende Belohnung. Ein Multi-Step-Problem wird durch eine feste Anzahl an
Schritten begrenzt.
2.3 Formale Beschreibung des XCS
Die Classier des XCS bestehen wie allgemein üblich aus einer Bedingung und einer
Aktion. Alle Classier werden in einer sogenannten Population verwaltet. Genauer beschreibt sich ein solcher Classier wie folgt: die Bedingung
tion
A ∈ {a1 , ..., an }.
Die möglichen Situationen
s
C ∈ {0, 1, ]}L
stammen aus
und der Ak-
S ⊆ {0, 1}L ,
möglichen Sensordaten repräsentiert. Der Vorhersagewert (prediction)
ρ
die alle
schätzt die zu
erwartende Belohnung ab. Zusätzlich gibt es für jeden Classier noch weitere Parameter:
der Vorhersagefehler
Parameter
ε
ε
(error), die Fitness
F
exp.
(tness) und der Erfahrungswert
Der
gibt dabei den geschätzten Fehler einer Vorhersage der Belohnung an. Die
Fitness schätzt die Genauigkeit der Belohnungsvorhersage
ρ ab. Der Erfahrungswert exp
ist ein Zähler, wie oft ein Classier seit seiner Entstehung in das Action-Set gelangte.
Der Ziel des XCS ist es, die erhaltene Belohnung auf lange Sicht zu maximieren. Um dieses
Ziel zu erreichen lernt der XCS eine Action-Value Funktion die ein Zustands-Aktion Paar
auf eine reele Zahl abbildet (Belohnung). Der Zustand ist hierbei die aktuelle Situation
der Umgebung.
2.3.1 Die Sets des XCS
Bei XCS gibt es vier verschiedene Arten von Sets. Das erste ist die Population
alle vom XCS erstellten Classier enthält. Das Match-Set
enthält alle Classier die zu einer gegenwärtigen Situation
das Action-Set
[A]
[M ]
bildet sich aus
σ(t)
passen. Aus
[P ],
das
[P ]
und
[M ]
wird
berechnet und fasst alle Classier zusammen, die die selbe Aktion
beschreiben. Zuletzt gibt es noch das Previous-Action-Set
[A]−1
was dem Action-Set des
vorherigen Ausführunszeitpunktes entspricht.
2.3.2 Ablauf eines Single-Step Experiments
Der XCS interagiert bei einem Single-Step Problem mit der Umgebung wie folgt. Wenn
das System eine Eingabe von der Umgebung bekommt, dann erstellt es ein Match-Set
Kapitel 2 Learning-Classier-System: XCS
[M ].
8
Darin sind alle Classier enthalten, deren Bedingung mit der Eingabe übereinstim-
men. Falls
[M ]
weniger als
θmna
(einstellbare Schranke) Classier mit unterschiedlichen
Aktionen enthält, dann werden neue Classier erstellt. Diese neuen Classier haben eine
passende Bedingung zu der Eingabe und eine zufällige Aktion. Das Verfahren wird auch
als Covering bezeichnet. Bei den neuen Classiern wird mit einer Wahrscheinlichkeit von
P]
(einstellbarer Parameter) das Don't-Care Symbol
gesetzt. Für jede Aktion in
[M ]
] bei jedem Attribut der Bedingung
wird dann eine System Wahrscheinlichkeit
net, mit der die Belohnung abgeschätzt wird, falls die Aktion
P (α)
berech-
α ausgeführt werden sollte.
Diese Wahrscheinlichkeit berechnet sich wie folgt:
P
P (α) =
cl.a=a
V
cl.p × cl.F
cl∈[M ]
P
cl.a=a
dabei ist
cl.F
cl.a
die Aktion,
cl.p
die Fitness des Classiers
V
(2.1)
cl.F
cl∈[M ]
die Wahrscheinlichkeit (der möglichen Belohnung) und
cl. Aus diesen Werten wird das Prediciton-Array gebildet.
Daraus wird dann entweder die Aktion gewählt, mit der höchsten Belohnung (ExploitPhase) oder eine zufällige Aktion ausgeführt (Explore-Phase). Alle Classier in
der ausgewählten Aktion werden in das Action-Set
[A]
[M ]
mit
geladen. Danach wird die Aktion
an die Umgebung gesendet, die daraufhin die Belohnung für die Aktion an das System
zurückliefert.
Während jedem Zyklus aktualisiert der XCS anhand der Belohnung
jedes Classiers in
[A].
R
die Parameter
Die neue Vorhersage des Classiers berechnet sich mit
p ← p + β(R − p),
dabei ist
β (0 < β ≤ 1)
die Lernrate. Der Vorhersagefehler
← + β(|R − p| − ).
Die Aktualisierung der Classier Fitness
igkeit
κ
F
(2.2)
errechnet sich aus:
(2.3)
ist komplizierter. Als Erstes wird die Genau-
0
und die relative Genauigkeit κ der Classier mit

1
κ=
α( )−v
0
falls
< 0 ,
sonst
(2.4)
Kapitel 2 Learning-Classier-System: XCS
9
κ
κ0 = P
(2.5)
κx
x∈[A]
berechnet. Der Parameter
1)
und
v (v > 0)
Vorhersagefehler
0
steuert die Toleranz des Vorhersagefehlers,
κ
sind Konstanten von
> 0
ist. Die Fitness
F
α (0 < α <
welche die Abnahme bestimmen, falls der
läÿt sich nun daraus mit
F ← F + β(κ0 − F )
(2.6)
berechnen. Die Fitness der Classier ist daher eine Schätzung der Genauigkeit relativ zu
den anderen Classiern in
[A],
und verhält sich invers zu dessen Fehler der Vorhersage
der Belohnung. Fehler unterhalb der Schranke
0
werden betrachtet als ob sie die gleiche
Genauigkeit besitzen.
In Abbildung 2.2 wird der ganze Vorgang verdeutlicht. Dabei laufen folgende Schritte
ab:
Die Umgebung liefert eine Situation an die Sensoren (detectors) des XCS. Der XCS prüft
nun welche Classiern in der Population mit der Situation übereinstimmen. Alle Classier
die zu der Situation passend sind, werden ins Match-Set geladen. Danach wird aus allen
Classier im Match-Set
P (α) berechnet, diese Werte bilden das Prediction-Array. Da ein
XCS-Schritt immer aus zwei Teilschritten besteht (Explore-/Exploit-Schritt) kann nun
folgendes passieren. Im Exploit-Schritt werden die Classier in das Action-Set geladen
(aus dem Match-Set), welche die höchsten
Wahrscheinlichkeit
P (α) haben. Im Explore-Schritt wird mit einer
P] eine zufällige Aktion ausgewählt. Dann kommen alle Classier (aus
dem Match-Set) in das Action-Set die diese Aktion besitzen. Wenn bei einem Single-Step
Problem bzw. einem Multi-Step-Problem das Ende erreicht ist, dann muÿ die Umgebung
in eine neue zufällige Situation zurückversetzt werden. Im Falle des Animat-Problems
wäre dies eine zufällige Position in der Umgebung.
Der GA kann in
[A]−1
oder
[A]
zum Einsatz kommen, der GA wird daher auch als
Nischen-GA bezeichnet. In der ersten Version des XCS arbeitete der GA auf dem MatchSet, während in früheren Learning-Classier-Systemen wurde der GA immer auf die
gesamte Population angewendet. Der Vorteil des Nichen-GA liegt darin, dass möglichst
genaue und allgemeine Classier erstellt werden [30]. In Abbildung 2.2 wird auch klar, wie
die Parameter bei Multi-Step Problemen aktualisiert werden. Bei Multi-Step-Problemen
werden nur die aktuellen Classier in
[A]
und die letzten in
[A]−1
aktualisiert. Mit genü-
gend vielen Interationen verteilt sich also die Belohnung auf alle beteiligten Classier.
Kapitel 2 Learning-Classier-System: XCS
Abbildung 2.2: Ablauf bei einem Schritt [30]
10
Kapitel 2 Learning-Classier-System: XCS
11
2.3.3 Einfügen neuer Classier
Bei XCS wird auÿerdem eine Macro-Classier Technik angewendet. Ein Macro-Classier
repräsentiert eine Menge an Classiern, welche die selbe Aktion und Bedingung haben.
Wenn ein neuer Classier durch den GA erstellt wird, dann wird als erstes die Population
[P ]
durchsucht. Falls ein Classier bereits existiert der über die selbe Bedingung
und Aktion verfügt, so wird nur dessen Numerosität um Eins erhöht. Der neu erstellte
Classier wird daraufhin verworfen, ansonsten wird er in
[P ]
eingefügt. Wenn ein Classi-
er gelöscht werden soll, dann wird seine Numerosität um Eins dekrementiert. Erst wenn
seine Numerosität Null erreicht, wird er aus
[P ]
gelöscht. Dabei ist weiter wichtig, dass
die Summe aller Numerositäten der maximalen Anzahl der erlaubten Classiern in einer
Population entspricht.
2.3.4 Zusammenfassen von Classiern
Bei der Zusammenfassung von Classiern werden bei XCS zwei Verfahren angewendet:
1. Bei der Zusammenfassung im GA wird ein Nachkomme überprüft, ob dessen Bedingung von der Bedingung der Eltern Classier überdeckt wird. Eine Vereinigung
kann nur stattnden, wenn der Eltern-Classier über eine hohe Genauigkeit und
Erfahrung verfügt. Falls ja, so wird ausschlieÿlich die Numerostität des jeweilgen
Eltern Classiers erhöht.
2. Bei der Zusammenfassung im Action-Set wird ein möglichst allgemeiner Classier
gesucht, der zusätzlich noch eine hohe Genauigkeit und Erfahrung besitzt. Gegen
diesen Classier werden dann alle anderen Classier im Action-Set getestet. Falls
einer dieser Classier mit allgemeinen Classier vereinigt werden kann, dann wird
dieser aus der Population gelöscht.
2.3.5 Vorgehensweise des GAs
Der GA erzeugt seine Kinder indem er mit Wahrscheinlichkeit
Ps (cl)
zwei Classier aus
seinem Action-Set auswählt. Dabei ist
Ps (cl) = P
cl.f
cl0 ∈[A] cl
0 .f
.
(2.7)
Kapitel 2 Learning-Classier-System: XCS
12
Der GA besitzt zwei Möglichkeiten wie er die Mutation durchführt: freie Mutation und
Nischen-Mutation. Bei der freien Mutation werden beliebige Stellen einer Bedingung
mutiert, hingegen bei der Nischen-Mutation muÿ die erzeugte Bedingung zu der aktuellen
Situation
s
passen.
2.3.6 Löschen von Classiern
Der Löschvorgang von Classiern läuft nach folgendem Schema ab. Mit einer Wahrscheinlichkeit, die proportional zur geschätzten Gröÿe der Action-Sets
aus
[P ]
as
ist, werden Classier
ausgewählt. Für den Fall, dass der Classier unerfahren ist, und seine Fitness
unterhalb der durchschinttlichen Fitness liegt, wird seine Löschwahrscheinlichkeit erhöht.
Erreicht die Population die maximale Gröÿe, so werden mit Hilfe dieser Wahrscheinlichkeit Classier gelöscht. Der Parameter
as
berechnet sich durch
cl.as ← cl.as + β (|| [A] || − cl.as) .
(2.8)
2.4 Zusammenfassung
Dieses Kapitel hat eine Einführung in das Learning-Classifer-System XCS gegeben. Die
Abschnitten 2.1 und 2.2 beschäftigten sich mit Grundprinzip von Learning-ClassierSystemen und XCS. Sie behandelten auch den Unterschied zwischen Multi-Step und
Single-Step Problemen. Wähernd in Abschnitt 2.3 der detailierte Ablauf bei einem SingleStep Experiment im Vordergrund stand.
Kapitel 3
Modellierung von SoCs
Das Ziel dieser Arbeit ist es zu prüfen, ob ein XCS einen SoC steuern kann. Wie in Kapitel 2 beschrieben, erhält ein XCS seine Eingabedaten aus einer Umgebung. Der SoC
Spannung und Frequenz, sowie durch
elektrische Leistung und Temperatur. Zwischen diesen vier
deniert selbst die Umgebung durch die Parameter
die physikalischen Gröÿen
Komponenten besteht ein direkter Zusammenhang, ob ein SoC fehlerfrei arbeitet oder
nicht. Dieses Kapitel stellt deshalb Modelle vor, die Temperatur, Leistungaufnahme und
Fehlerverhalten beschreiben. Als erstes werden die Modelle zur Verlustleistung und Temperatursimulation beschrieben. Danach werden Fehlermodelle und ihre Ursachen näher
untersucht.
3.1 Berechnung der Verlustleistung
Die Verlustleistung von CMOS-Schaltungen wird in dynamische und statische Verlustleistung unterteilt. Beeinuÿt wird die dynamische Verlustleistung hauptsächlich durch
die Kapazität des Transistors und den Widerständen der Anschlüsse. Auÿerdem spielen
die Kapazitäten der darauolgenden Transistoren eine wichtige Rolle. Die Ursachen für
den statischen Leistungsverlust sind die sogenannten Leckströme, die in jedem Transistor auftreten. Der wichtigste ist der Leckstrom zwischen Source und Drain. Leckströme
entstehen durch freie Ladungsträger im Halbleiter [6].
Die Abbildung 3.1 verdeutlicht das Auftreten der dynamischen Verlustleistung. Wenn ein
Transistor schaltet, dann ieÿt der Saturations-Strom
IDsat
in die Kapazität
C.
Dieser
Strom ist abhängig von der angelegten Spannung als auch von der Zeit. Je stärker der
Kondensator geladen ist, desto kleiner wird der Strom.
Kapitel 3 Modellierung von SoCs
14
Abbildung 3.1: Dynamische Verlustleistung
3.1.1 Modell zu Berechnung der statischen Verlustleistung
Das von Butts et al. entwickelte Modell zielt drauf ab, in High-Level-Simulationen zum
Einsatz zu kommen. Allgemein verhält sich die statische Verlustleistung wie folgt: Für
kleine Ströme ist
IDsat
proportional zu
des Transistors. Der Strom
IDsat
VDD − Vt .
Dabei ist
Vt
die Schwellwertspannung
hängt aber noch von weiteren Parametern ab, wie z.B.
von der Kanallänge in einem Transistor. Dadurch verringert sich die Stromstärke weitaus
stärker bei einer Verkleinerung des Transistor. Dem entgegen wirkt aber der Driftstrom
der sich bei einer Verkleinerung stark erhöht. Daher muÿ auch die Schwellwertspannung
Vt
herabgesenkt werden, um eine bessere Performanz zu erzielen. Durch immer weitere
Herabsenkung der Schwellwertpannung
Vt
nehmen die Leckströme eine enorme Bedeu-
tung an. Der Leckstrom in Abhänigigkeit von der Schwellwertspannung
Vt
kann durch
−qVt
IDsub = ke akB T .
beschrieben werden. Dabei sind
und
k
q
und
kB
sind Kenngröÿen des Bausteins und
(3.1)
physikalische Konstanten. Die Parameter
T
a
ist die absolute Temperatur. Darin sieht
man auch, dass der Leckstrom exponentiell zunimmt, falls die Temperatur ansteigt oder
Vt
abgesenkt wird.
Das Modell nähert die statische Verlustleistung durch
Ps = VDD × N × kdesign × ktech × 10
−Vt
St
(3.2)
Kapitel 3 Modellierung von SoCs
15
an. Dabei werden die drei technologieabhängigen Parameter (ktech , St und
Vt )
in einer
Technolgiekonstante zusammengefaÿt. Dies führt zu folgenden Ansatz:
Ps = VDD × N × kdesign × Iˆleak
Bei
Iˆleak
(3.3)
handelt es sich um den normalisierten Leckstrom. Der Vorteil daran ist, dass
für eine feste CMOS Technologie verschiedene Leckströme angenommen werden können,
allerdings führt dies zu einer schlechteren Schätzung als wenn
ktech , Vt
und
St
berück-
sichtigt werden würden.
Schaltung
N
kdesign
D Flip-Flop
22/bit
1.4
D Latch
10/bit
2.0
2-input mux
2 / bit/input
1.9
CAM cell
13 /bit
1.7
Static logic
2/gate input
11(9)
Tabelle 3.1: Parameterwerte für das statische Verlustleistungsmodell
Die Parameter für das Modell sind in Tabelle 3.1 angegeben [6].
3.1.2 Modell zu dynamischen Verlustleistung
Die dynamische Verlustleistung wird im allgemeinen mit
2
Pd = CL VDD
fp
modelliert, wobei
CL
die Lastkapazität und
fp
(3.4)
die Taktfrequenz. Diese Formel wird auf
der Grundlage eines Inverters hergeleitet (siehe Appendix A.1). An dieser Formel ist zu
erkennen, dass die Leistung linear mit der Frequenz ansteigt, aber unabhängig von den
Geräte Parametern ist [27].
3.1.3 Gesamte Verlustleistung
Wenn die Kurzschlussverlustleistung vernachlässigt wird, kann die gesamte Verlustleistung aus Formel 3.3 und 3.4 mit
Ptotal = Ps + Pd
(3.5)
Kapitel 3 Modellierung von SoCs
16
berechnet werden. Da es aber bei der dynamischen Verlustleistung stark darauf ankommt,
welche Schaltelemente überhaupt arbeiten, wird im allgemeinen folgende Vereinfachung
angenommen.
Pd =
Der Parameter
α
mit
(0 ≤ α ≤ 1)
2
α ∗ CT otal VDD
tp
(3.6)
beschreibt die Signalaktivität, also die prozentua-
le Anzahl der Schaltvorgänge in einer Schaltung und
Ctotal
die gesamte Kapazität der
Schaltung [27]. Diese Methode wird oft zur Schätzung der Leistungsaufnahme verwendet. In [8] wurde dies z.B. von der Firma Intel verwendet um den Prozessor Pentium M
stromsparender zu machen. Darin wurde die Signalaktivität ( engl. activity factor) als
die durchschnittliche Anzahl von 0 nach 1 Übergängen deniert. Die Extraktion der Signalaktivität wurde über eine Logiksimulation vorgenommen. Genauso kann dabei auch
mit einer maximalen Signalaktivtät gearbeitet werden, um ein Worst-Case-Szenarium zu
simulieren, denn die Signalaktivität ist bei jedem Programm verschieden.
3.2 Modellierung der Temperatur auf einem SoC
Die Temperatur hängt bei SoCs in erster Linie von der Leistungsaufnahme der einzelnen
FEs ab. Dabei kommt es auch zu einer Wechselwirkung zwischen den FEs. Auÿerdem
müssen vorhandene Kühlsysteme berücksichtigt werden.
3.2.1 Grundlagen zur Berechnung der Temperatur
Bei Transistoren müssen unbedingt gewisse Grenzwerte eingehalten werden, da sie ansonsten zerstört werden. In den Datenblättern wird daher eine höchstzulässige Sperrschichttemperatur
TJmax
und bei Silizium bei ca.
angegeben. Der Grenzwert liegt bei Geranium bei ca.
200◦ C .
100◦ C
Da es schwierig ist, diese Temperatur direkt zu messen
wird zusätzlich noch die maximale Verlustleistung als Grenzwert angegeben. Die maximal
Ptotmax wird meist auf eine Gehäusetempera◦
tur von 25 C bezogen. Bei höheren Gehäusetemperaturen gelten geringere Werte, die
höchstzulässige Transistorverlustleistung
aus einer Lastminderungskurve zu entnehmen sind. Die Lastminderungskurve gibt die
maximale zulässige Verlustleistung abhängig von der Gehäusetemperatur
TG
an.
Aus der Lastminderungskurve kann der thermische Widerstand des Transistors berechnet
werden:
Kapitel 3 Modellierung von SoCs
17
RthJG =
Die tatsächliche Verlustleistung
Ptotal
∆P
.
∆TG
(3.7)
muÿ geringer sein als
Ptotmax .
Damit eine festge-
legte Gehäusetemperatur gehalten werden kann, ist meist der Einsatz eines Kühlkörpers
nötig. Die Berechnung kann mit einer thermischen Ersatzschaltung durchgeführt werden.
Eine thermische Schaltung besitzt die gleichen Elemente wie eine elektrische Schaltung.
Der Wärmewiderstand
peraturstufen
T
Rth
ist das Gegenstück zum elektrischen Widerstand
entsprechen den elektrischen Potenzialen
mit dem elektrischen Strom
I
ϕ.
R. Die Tem-
Der Wärmestrom
PV
kann
verglichen werden [31].
In vergangener Zeit wurde diverese Modelle entwickelt, um die Temperatur von Chips
zu schätzen. Ein Modell wurde in [20] bereits vorgestellt. Ein weiteres ist HotSpot [14],
welches sich zu einem Standard im akademischen Umfeld entwickelt hat.
3.2.2 Ermittlung der Temperatur mit HotSpot
Mit HotSpot wurde von Skadron et al. ein Temperatursimulator entwickelt, der Temperaturen auf einem Chip sehr genau berechnen kann. Bei HotSpot wird ein Chip in
verschiedene Ebenen unterteilt. Die Wärme wird dabei von der aktiven Silizium Schicht
erzeugt. Diese Schicht ist verbunden über den Silizum-Bulk mit dem Thermal-InterfaceMaterial, dem Kühlerhalter und dem Kühlkörper selbst. Weiter gibt es noch einen zweiten Wärmeuss, der die Wärme an die Platine überträgt. In Abbildung 3.2 sind die alle
Schichten zu sehen die HotSpot modelliert.
HotSpot kann dabei beide Wärmeüsse modellieren, wobei jede Ebene unterteilt ist in
Blöcke. Beispielsweise kann der Silizum-Bulk in ein unstrukturiertes Gitter unterteilt
werden, auf Basis der FEs. Falls die Temperaturbestimmung feinkörniger sein soll, ist
es auch möglich, die Ebene in ein feiner strukturiertes Gitter aufzuteilen. Jeder Block
bzw. jede Gitterzelle wird einem Knoten eines thermischen Ersatznetzwerks zugeordnet. Dabei besitzt jeder Block oder jede Zelle einen vertikalen thermischen und mehrere
laterale Widerstände. Abbildung 3.3 zeigt das thermische Ersatznetzwerk. Der thermische Widerstand modelliert dabei die Wärmeübertragung nach oben und unten. Er wird
beschrieben durch:
Rvertical =
t
k∗A
(3.8)
Kapitel 3 Modellierung von SoCs
Abbildung 3.2: Verschiedene Schichten bei HotSpot [14]
Abbildung 3.3: thermische Ersatztschaltung bei HotSpot [14]
18
Kapitel 3 Modellierung von SoCs
19
Abbildung 3.4: System mit Pipeline nach [27]
Dabei ist
t
die Dicke der Schicht, k die thermische Konduktivität und
A
die Fläche des
Blocks. Die Berechnung der lateralen Widerstände ist komplizierter. Die Ableitungen und
Formeln können in [17] und [23] gefunden werden. Für die mit der Umgebung verbundenen Schichten wird ein konstanter Wärmeübertragskoezient angenommen. Diese Annahme führt zum folgenden Ansatz des korrespondierenden thermischen Widerstands:
Rconvection =
1
,
hA
(3.9)
dabei ist A die Oberäche [14].
3.3 Modell aufgrund von Zeitverletzungen
Fehler die aufgrund von Zeitverletzungen entstehen werden auch
Timing-Errors genannt.
Die Ursache sind zu lange Schaltzeiten von Schaltelementen. Haupteinuss auf solche
Fehler hat die Verzögerungszeit der Logik. Diese wird hauptsächlich von der Spannung
beeinuÿt, aber auch von der Temperatur. Abbildung 3.4 zeigt diesen Sachverhalt bei
einem System welches Piplines benutzt. Bei solchen Systemen wird die Ausgabe der Logik
bis zum nächsten Takt in Registern zwischengespeichert [27]. Ist nun die Verzögerungszeit
der Logik zu lange, dann sind in den Registern nicht die korrekten Werte. Dadurch
entsteht ein Timing-Error. .
Timing-Errors zu modellieren ist sehr schwierig, da sie auch davon abhängen, welchen
Weg ein Signal durch die Logik nimmt. Deshalb wurde in dieser Arbeit ein sehr einfaches Timing-Error Modell entwickelt, welches auf einer Reihenschaltung von Invertern
besteht:
Das Modell beschreibt eine Pipline-Stufe mit 10 Inverter die in Reihe geschaltet sind. In
Kapitel 3 Modellierung von SoCs
20
Abbildung 3.5: Pipeline-Stufe
Abbildung 3.5 ist der Aufbau skizziert. Ist das Signal nicht innerhalb eines Taktes am
Eingang des Latches angekommen, dann wird ein Timing-Error injiziert. Ein ähnliches
Modell welches zur Schätzung der Soft-Error-Rate angewendet worden ist ndet sich in
[24].
3.3.1 Analytisches Modell zu Berechnung der Verzögerungszeit eines
Invertes
In [27] wird ein analytisches Modell vorgestellt mit dessen Hilfe sich die Verzögerungszeit
eines Inverters in Abhängigkeit von der Spannung berechnen läÿt (Herleitung Appendix A.2). Die Schaltgeschwindigkeit eines CMOS-Gates wird dabei von der Lade- und
Entladezeit der Kapazität abhänig gemacht, wobei in drei Zeiten unterschieden wird:
1.
tr
beschreibt die Zeit, die das Ausgangssignal eines Transistors benötigt, um von
10%
2.
tf
td
90%
seines stationären Wertes anzusteigen.
beschreibt die Zeit, die das Ausgangssignal eines Transistors benötigt, um von
90%
3.
auf
auf
10%
seines staionären Wertes abzufallen.
ist die Verzögerungszeit, von dem Zeitpunkt an, bei dem das Eingangsignal
und das Ausgangsignal
50%
50%
erreicht.
In dem Modell ergibt sich die gesamte Fallzeit durch
2CL
tf =
βn VDD (1 − n)
β
(n − 0.1) 1
+ ln (19 − 20n) .
(1 − n)
2
ist dabei der Steilheitskoezient und
n =
(3.10)
|vtn |
VDD . Aus den Formeln ist zu erkennen,
dass die Verzögerungszeit proportional von der Ladekapzität des Transistors abhängt.
Auÿerdem ist sie antiproportional zur angelegten Spannung. Falls die Spannung erhöht
wird vermindert sich die Verzögerungszeit.
Kapitel 3 Modellierung von SoCs
21
Berechnung der Zeit für einen Signalanstieg in einem Inverter
Durch die Symmetrie eines CMOS-Inverter kann für die Anstiegszeit
tf
eine ähnliche
Näherung wie bei der Fallzeit angenommen werden, so dass sich der folgende Ansatz
ergibt:
2CL
tr =
βp VDD (1 − p)
mit
p=
(p − 0.1) 1
+ ln (19 − 20p)
(1 − p)
2
(3.11)
|vtp |
VDD .
Für gleich groÿe NMOS- und PMOS-Transistoren kann
βn = 2βp angenommen werden.
Berechnung der Verzögerungszeit
Bei den meisten CMOS Schaltungen wird die Verzögerungszeit hauptsächlich durch Fallund Anstiegzeit des Ausgangssignal bestimmt. Daher berechnet sich die Verzögerungszeit
mit
tdr =
tr
2
(3.12)
tdf =
tf
.
2
(3.13)
und
Daraus ergibt sich als durchschnittliche Verzögerungszeit
tav =
tdf + tdr
.
2
(3.14)
3.3.2 Temperatureinuÿ auf die Schaltzeit
Die herrschende Temperatur hat auf die Verzögerungszeit der Logik einen entscheidenden
Einuÿ. In [10] wurden die Fall- und Anstiegszeiten bei einem Inverter, in Abhänigkeit
von der Temperatur gemessen. Wie in Abbildung 3.6 zu sehen ist, steigt die Verzögerungszeit ungefähr linear an. Auÿerdem ist sie im Vergleich zu
218K
bei
428K
mehr als
zweimal so hoch.
Dieses Verhalten der Verzögerung wurde bei unterschiedlichen Frequenzen festgestellt.
Kapitel 3 Modellierung von SoCs
22
Abbildung 3.6: Temperaturabhänigkeit der Verzögerungszeit eines Invertes [10]
3.3.3 Gesamte Schaltzeit eines Inverters
Damit auch die Temperatur berücksichtigt werden kann, wird in dieser Arbeit aufgrund
3.3.2 die Verlängerung der Schaltzeit als linear angenommen. Diese Annahme führt zu
folgendem Ansatz bei der Berechnung dieser Zeit:
ttempdelay (T ) =
T − 218K
∗ tg ,
418K − 218K
wobei ist tg der gesamte zeitliche Unterschied von
218K
zu
418K
(3.15)
ist. Das heiÿt ttempdelay
ist die Verlängerung der Schaltzeit aufgrund einer erhöhten Temperatur. Das Modell
berechnet deshalb die durchschnittliche Schaltzeit mit
tav =
tdf + ttempdelay + tdr + ttempdelay
.
2
(3.16)
3.3.4 Berechnung der Verzögerungszeit der Pipeline-Stufe
Die Zeit
tav
wird benutzt um für jeden Inverter der Pipeline-Stufe die Schaltzeit zu be-
rechnen. Ist also die gesamte Verzögerungszeit der 10 Inverter länger als die Taktperiode,
dann liegt bei diesem Modell ein Timing-Error vor. Dieses einfache Modell ist ausreichend
um Timing-Errors für die Evaluierung des XCS zu beschreiben.
Kapitel 3 Modellierung von SoCs
23
Abbildung 3.7: Arten von Prozessorfehlern nach [19]
3.4 Soft Errors
Bei Soft-Errors handelt es sich um Single-Event-Eects (SEE), die keinen destruktiven
Einuÿ auf die Hardware haben. Durch das Zurücksetzen der Hardware in einen alten
Zustand, kann die Hardware in ein normales Arbeitsverhalten zurückgeführt werden. Im
Vergleich dazu stehen Hard-Errors, die zu dauerhaften Fehlern führen. In Abbildung 3.7
sind die verschiedenen Arten von Prozessorfehler zu sehen. Die Gründe für das Auftreten
von Soft-Errors liegen hauptsächlich an externer radioaktiver Strahlung, die auch als
Single-Event-Upsets (SEU) bekannt sind. Sie führen zu transienten und inkonsistenten
Fehlern der Daten, welche nicht in Verbindung mit Fabrikationsfehlern stehen. Genauer
handelt es sich dabei entweder um Single-Bit-Upsets (SEU) oder Multiple-Bit-Upsets
(MBU). Bei einem SEU dreht sich genau ein Bit, während bei MBUs werden mehrere
Bits gedreht.
SEUs sind zufällig und führen zu groÿen Schwierigkeiten, gerade bei Anwendungen, die
durch fehlerhafte Speicherinhalte gesteuert werden. Denn dann sind nicht nur die Anwendungsdaten fehlerhaft, sondern auch die Anwendung selbst ist nicht mehr funktionsfähig,
was zu systemkritischen Fehlern führen kann [19].
Kapitel 3 Modellierung von SoCs
24
3.4.1 Grundlagen zu Soft Errors
Die Hauptquellen der SEUs sind:
1. nieder-energetische Alpha-Teilchen,
2. hoch-energetische kosmische Teilchen,
3. und thermische Neutronen.
Alpha-Partikel entstehen bei radioaktivem Zerfall von Uranium-238 und Thorium-232.
Durch diesen Vorgang werden Alpha-Partikel zwischen 2 und 9 MeV freigesetzt. Die
benötigte Energie für ein Elektronen-Loch-Paar beträgt bei Silizium 3.6 eV, weshalb ein
Alpha-Partikel ca
106
Elektronen-Loch-Paare erzeugen kann. Dringt der Alpha-Partikel
in die Silizium Schicht ein, so verändert er die gegenwärtige Ladung (Abbildung 3.8),
da er die erzeugten Elektronen-Lochpaare mitzieht. Je nach Geometrie des Eindringens
und der Höhe der sogenannten kritischen Ladung
Qcrit
kann dies zur einer Fehlschaltung
führen. Die geschieht genau dann, wenn die von dem Alpha-Partikel erzeugte Ladung die
kritische Ladung übersteigt. Dadurch wird ein Störimpuls erzeugt, der zum Drehen eines
Bits führt. Diese Störladung ist:
Z
∞
Qa =
Ia (t) dt.
(3.17)
t=t0
Dabei ist
Ia
der durch das Ion induzierte Strom und t0 der Einschlagzeitpunkt des Alpha-
Partikels. Ist
Qa > Qcrit
dann entsteht ein interner Fehler. Die kritische Ladung be-
schreibt also wie resistent eine Schaltung gegen Soft-Errors ist [16]. Eine höhere kritsche
Ladung führt zu weniger Soft-Errors, was wiederum zu einem höheren Energieverbrauch
und langsameren Schaltungen führt. Neben Alpha-Partikeln gibt es noch zwei weitere
Quellen für das Auftreten von Soft-Errors. Hochenergetische kosmische Teilchen reagieren mit der oberen Atmosphäre der Erde. Dadurch entstehen hochenergetische Neutronen
(10 bis 800 MeV) und Protonen (30 MeV). Da Neutronen keinerlei Ladung haben, interagieren sie nicht direkt mit dem Halbleiter Baustein. Kolidiert ein solches Neutron mit
dem Silizium Atomkern, so können Alpha-Partikel und weitere schwere Ionen entstehen.
Dadurch entstehen wiederum Elektronen-Loch-Paare mit weitaus gröÿeren Energien. Der
Einuss von Neutronen ist ortsabhängig, da die Durchuÿrate vom Schildeekt der Atmosphäre beeinuÿt wird.
Kapitel 3 Modellierung von SoCs
25
Abbildung 3.8: Vorgang bei Einschlag eines Alpha-Partikel [19]
Thermische Neutronen tragen einen groÿen Anteil an Soft-Errors Sie besitzen Energie
von ca. 25 meV und können allerdings leicht vermieden werden, wenn im Chip kein
Boron-Phosphor-Silicate-Glas verwendet wird.
Durch stetige Verfeinerung des Produktions-Prozess (von 0,25
µm
bis zu 45 nm) ver-
ringert sich auch die Versorgungsspannung und die Kapazität. Dadurch verringert sich
auch die kritische Ladung und womit ein radioaktives Teilchen die Zelle leichter beeinuÿen kann. Beschrieben wird das Fehlverhalten durch die Soft-Error-Rate (SER), die
in FITs (Failures-In-Time) gemessen wird. Ein FIT ist die Anzahl der Fehler in einer
Milliarde Betriebsstunden. D.h. bei einer gemessenen SER von 1000 FITs beträgt der
MTTF (Mean-Time-To-Failure) ca. 114 Jahre. Die SER bleibt allerdings keineswegs in
einem aktzeptablen Rahmen, z.B. wurde nachgewiesen, dass bei einem Notebook mit 2
GBit Speicher in 35000 Fuÿ über dem Alantik die SER von 600 FITs auf 100000 FITS
ansteigt. Das bedeutet einen durchschnittlichen Fehler alle fünf Stunden. Das Absenken
der Versorgungsspannung verschärft dieses Verhalten weiter [19].
3.4.2 Einuÿ der Spannung auf die SER
In [11] wird der Einuÿ der Spannung auf die SER näher untersucht. Dabei wurden ausgehend von einem 90-nm CMOS Test-Chip (Abbildung 3.9) Messungen unternommen.
Kapitel 3 Modellierung von SoCs
26
Abbildung 3.9: 90nm CMOS Testship
Auf dem Chip wurde eine Schaltung aus Latches verbaut, die ein SRAM darstellen. Ausgehend von einer SER bei einer Spannung von 1,2V konnte folgender Zusammenhang
festgestellt werden: steigt die Spannung von 1,2V nach 0,8V, 1,2V nach 1,0V und 1,2V
nach 1,3V ändert, dann skaliert die SER mit +100%,+33% und -9%. Das heiÿt im Durchschitt erhöht sich die SER um 18 % bei einer Reduktion von 10% der Spannung. Weiter
konnte festgestellt werden, dass die SER linear von der Gröÿe der Diode abhängt. Der
Trend bei SRAMs zeigt, dass sich die Spannung von Generation zu Generation um 13%
vermindert hat. Wird davon ausgegangen, dass sich dieser Trend fortsetzt, so erhöht sich
die SER um 8% bei einer festen Spannungsänderung von 14% pro Chipgeneration.
3.4.3 Fehlermodell für Soft Errors von Dakai Zhu
Im allgemeinen werden transiente Fehler durch eine Poisson-Verteilung mit einer durchschnittlichen Ereignisrate
λ beschrieben. Um den Einuÿ der Spannungsänderung zu be-
rücksichtigen, wird in diesem Modell die durchschnittliche Ereignisrate von der Spannung
und der Frequenz abhängig gemacht. Da nach Zhu die Spannung bei Speicherbausteinen
in enger Verbindung mit der Frequenz
f
steht, wird
λ
wie folgt modelliert:
λ(V, f ) = λ(f ) = λ0 g(f )
Wobei
Vmin ≤ V ≤ Vmax
und
fmin ≤ f ≤ fmax
ist. Der Parameter
(3.18)
d
fälligkeit einer Schaltung bzgl. Soft-Errors modellieren. Weiter sind
soll dabei die An-
fmax
und
vmax
die
Kapitel 3 Modellierung von SoCs
27
normalisierten maximalen Frequenzen und Spannungen. Dabei beschreibt
schnittliche Ereignisrate für die maximale Frequenz, d.h.
λ0
die durch-
g(Vmax , fmax ) = 1. Die kritische
Ladung nimmt mit einer Senkung der Versorgungsspannung ab. Dadurch können auch
nieder-energetische Teilchen Soft-Errors verursachen. In [22] wurde gezeigt, dass sich die
kritische Ladung proportional zur Versorgungsspannung verhält. Allerdings ist die Anzahl der nieder-energetischen Teilchen weitaus höher als die höher-energetischen Teilchen.
In diesem Modell wird die durchschnittliche Ereignisrate daher exponentiell skaliert.
d(1−f )
λ(f ) = λ0 g(f ) = λ0 10 1−fmin .
Die Fehlerrate
λ
(3.19)
kann zwischen 1000 unnd 100000 FITs/Megabit liegen.
3.4.4 Fehlermodell für Soft Errors von Peter Hazucha und Christer
Svensson
Das Modell von Hazucha et al. ([12]) beschreibt den Einuss von Neutronen
> 1 MeV auf
die SER. Dabei wird auch der Ort berücksichtigt, da es einen groÿen Unterschied macht,
ob der Neutronenuss in Bodennähe oder in einer bestimmte Flughöhe gemessen wird.
Dies ist sowohl für kombinatorische Logik als auch für Speicherbausteine anwendbar. Das
Modell beschreibt die Fehlerrate mit
λ ∝ Nf lux × CS × e
wobei
Nf lux
CS
der Neutronenuÿ,
kritische Ladung und
−Qcrit
Qs
der Querschnitt des Schaltungsknoten,
(3.20)
Qcrit
die
Qs die Ladungssammlung am pn-Übergang ist, welche laut Hazucha
stark von der Dotierung und
VDD
Für die Technologiegrösse 0.6
µm wurde die Parameter mit Hilfe des Neutronenstrahl im
abhängt.
Los Alamos National Laboratory gemessen.
Damit
QCRIT
modelliert werden kann, ist neben der Versorgungsspannung noch eine
zeitliche Komponente
T
nötig. Der Störstrom wird in diesem Modell durch
I(t) =
angenähert, während der Parameter
wurde.
T
2
√
T π
r
t ( −t )
e T
T
(3.21)
jeweils für p- und n-Drains getrennt gemessen
Kapitel 3 Modellierung von SoCs
Für
Qs
28
wurden für die verschiedenen Technologiegröÿen Skalierungsfaktoren entwickelt,
mit denen das Modell auch auf andere Schaltungen angewendet werden kann, die nicht
im 0.6
µm
Prozess gefertigt wurden.
3.4.5 Stochastische Grundlagen der SER
Der Soft-Error-Rate liegt immer die Poisson-Verteilung zur Grunde. Mit der PoissonVerteilung kann die Wahrscheinlichkeit berechnet werden, dass genau
r
Ereignisse in
einem Zeitintervall auftreten. Charakterisiert wird diese Verteilung über die durchschnittliche Ereignisrate
λ.
Die mathematischen Grundlagen wurden aus [9] entnommen.
Poisson-Verteilung
Für
λ≥0
heiÿt das Wahrscheinlichkeitsmaÿ
Pλ
Pλ ({k}) =
die Poisson-Verteilung zum Parameter
mit
e−λ λk
k!
(3.22)
λ.
Poisson-Prozess
Setzt man voraus, dass es unendlich viele unabhängige Zufallsvariablen mit vorgegebener
Verteilung gibt, dann ist mit dem Poisson-Prozess eine Modellierung rein zufälliger Zeitpunkte möglich. Mit Hilfe des Poisson-Prozesses ist es auÿerdem möglich, ein einfaches
Verfahren zur Simulation von poissonverteilten Zufallsvariablen zu implementieren.
Die Wartezeiten bis zum ersten Fehler sind bei Poissonverteilungen exponentialverteilt.
was zu folgendem Ansatz führt: Sei
gemäÿ
λ
λ > 0
und
(Li )i≥1
eine Folge von unabhängigen,
exponentialverteilten Zufallsvariablen und
Nt =
X
1]0,t] (Tk )
(3.23)
k≥1
die Anzahl der Punkte im Intervall
Punkte in
]0, t].
Für
s < t
ist dann
Nt − Ns
die Anzahl der
]s, t].
Eine solche Familie
zu Intensität
(Nt )t≥0 (Abbildung 3.10) von Zufallsvariablen ist ein Posisson-Prozess
λ > 0.
Kapitel 3 Modellierung von SoCs
29
Abbildung 3.10: Poisson-Prozess
Simulationsverfahren
Die Simulation von Exponential-Verteilungen verläuft folgendermaÿen. Seien
unabhängige auf dem Intervall
sind die Zufallsvariablen
für alle
c>0
gilt
[0, 1]
uniform verteilte Zufallsvariablen und
Xi = −(log Ui )/λ
P (Xi ≥ c) = P (Ui ≤
zum Parameter
e−λc )
=
λ
Ui , i ≥ 1,
λ > 0.
Dann
exponentialverteilt, denn
e−λc .
Dieser Algortihmus simuliert also jeden einzelnen Fehler aufgrund einer Fehlerrate
α
deren die Poisson-Verteilung zugrunde liegt. Da die einzelnen Fehlereintritte bei einer
Poisson-Verteilung exponentialverteilt sind.
3.5 Hard Errors
Bei Hard Errors handelt es sich um permanente Fehler in einem Prozessor. Die sogenannte Hard-Error-Rate verhält sich invers proportional zu der Lebenszeit eines Prozessors,
woraus sich direkt die Lebenszeit eines Chips ableiten läÿt. Bei Hard-Errors wird zwischen
zwei Arten von Fehlern unterschieden, den
1. extrinsische Fehlern
2. intrinsische Fehlern.
Kapitel 3 Modellierung von SoCs
30
Bei extrinsischen Fehlern handelt es sich um Schäden, die durch Fertigungsfehler entstehen. Sie treten meistens in einer frühen Lebensphase eines Prozessors auf. Intrinsische
Fehler treten selbst dann auf, wenn der Prozessor unter seinen spezizierten Bedingungen
betrieben wurde. Sie hängen vorallem vom Material und der zugrundeliegenden Produktionsmethode ab. Die Fehlerrate steigt bei diesen Fehler mit zunehmenden Alter an. Daher ist es wichtig, dass diese Fehler erst nach einer festgelegten Lebenszeit auftreten. Die
Hard-Error-Rate wird deshalb auch mit einer Badewannenkurve dargestellt (Abbildung
3.11). Diese Kurve wird in drei Abschnitte unterteilt, die jeweils durch einen Fehlertyp
charakterisiert werden. In der frühen Lebensphase sind vorallem extrinsische Fehler für
die Ausfälle verantwortlich. Das Auftreten dieser Fehler sinkt sehr schnell mit der Zeit
ab. In der nützlichen Lebensphase ist das Auftreten von Fehlern zufällig, daher lassen
sich diese auch schwer beschreiben. In der Verschleiÿphase sind hingegen die intrinsischen
Fehler für das starke Ansteigen der Kurve verantwortlich. Hard-Errors sollten möglichst
nie in der nützlichen Lebensphase auftreten. Daher ist die Lebenszeit von Prozessoren
fast ausschlieÿlich von intrinisischen Fehlern abhängig [25].
3.5.1 Beziehung zwischen Temperatur und Langlebigkeit eines Prozessors
Fast alle intrinsische Fehler hängen von der Temperatur ab. Diese Beziehung wird im
allgemeinen über die Arrhenius-Beziehung beschrieben, die chemische Reaktionen in Abhänigkeit von der Temperatur beschreibt. Wenn man animmt, dass bis auf die Temperatur
alle andere Einüsse konstant sind, dann kann die Fehlerrate mit
Ea
λ ∝ e kT
berechnet werden. Dabei ist
Boltzmannkonstante (8, 62
×
Ea
(3.24)
k
die Aktivierungsenergie des Fehlermechanismus,
10−5 Ke ) und
T
die
die Temperatur des Chips. An diesem Zu-
sammenhang erkennt man, dass die Ausfallrate mit einem Ansteigen der Temperatur
exponentiell erhöht wird [25].
Die Fehlerrate
λ
wird immer in FITs angegeben (Failure-in-Time), daraus läÿt sich die
MTTF (Meantime-to-Failure) berechnen. Die MTTF wird berechnet mit
MTTF =
1
λ
(3.25)
und beschreibt die durchschnittliche Zeit bis zum ersten Fehler. Der Parameter
2
meist aus χn (Binomialverteilung) abgeleitet [15]. Für
n=2
λ
wird
geht diese Verteilung in die
Kapitel 3 Modellierung von SoCs
31
Abbildung 3.11: Fehlerrate von elektronischen Schaltungen nach [25]
Exponentialverteliung über. In Abbildung 3.12 ist eine typische Verteilungsfunktion für
elektronische Schaltungen zu sehen [25].
Wenn heutztage die Lebenszeit untersucht wird, dann ndet dies in der Regel mit Hilfe
eines sogenannten Beschleunigungsfaktors statt. Dieser Faktor beschreibt dabei, um wieviel sich die Ausfallrate erhöht, wenn die Temperatur
Tt
zu einer festen Temperatur
Ts
ansteigt. Der Beschleunigungsfaktor deniert sich durch
Ea
λt
AT =
= e kT
λs
“
1
− T1
Tt
s
”
.
(3.26)
Dadurch lassen sich im Labor die langen Ausfallzeiten simulieren. Eine gute Übersicht
über alle Fehlermechanismen gibt [15] und [3].
3.5.2 Elektronenmigration
An dieser Stelle soll stellvertretend ein Modell genannt werden, dass den Fehlermechanismus der Elektronenmigration beschreibt. Sie tritt vorallem bei Gebrauch von Aluminium
als Leiterbahnmaterial auf. Der Grund ist hierfür, dass sich Elektronen aus Metallatomgitter lösen und sich an anderer Stelle wieder ablagern. Dies führt zu Lücken und Verdichtungen, was wiederum zu einem erhöhten Wiederstand der Leiterbahn führt. Beschrieben
Kapitel 3 Modellierung von SoCs
32
Abbildung 3.12: typische Verteilungsfunktion von elektronischen Schaltungen nach [25]
wird die Elektronenmigration über
Ea
M T T F = A (J − Jcrit )−n e kT ,
dabei ist
A
eine emprisch bestimmte Konstante,
J
die Stromdichte im Leiter,
kritische Stromdichte damit Elektronenmigration stattnden kann und
rungsenergie. Weiter ist
k
die Boltzmannkonstante,
(3.27)
T
Ea
Jcrit
die
die Aktivie-
die Temperatur in Kelvin und
n
eine empirische Konstante die abhängt von dem Leiterbahnmaterial [15].
3.6 Zusammenfassung
In diesem Kapitel wurden Modelle zur Beschreibung von SoCs vorgestellt. An erster Stelle kamen Modelle zur Berechnung der Verlustleistung. Bei der Verlustleistung wird zwischen dynamischen und statischen Verlustleisung unterschieden, für beide Fälle wurde
ein Modell angeführt. Abschnitt 3.2 beschreibt das Grundprinzip von HotSpot. HotSpot ist ein sehr populärer Temperatursimulator für Prozessoren. Die Modellierung von
Timing-Errors ist sehr schwierig, deshalb wurde in Abschnitt 3.3 ein sehr einfaches selbst
entwickeltes Modell erläutert. Das Modell basiert auf den Schaltzeiten von Invertern
in einer Pipline-Stufe. Abschnitt 3.4 gab eine kurze Einführung in das Phänomen der
Soft-Errors und Modellierungsmöglichkeiten an. Fehler welche die Lebenzeit von elektronischen Schaltungen beeinuÿen (Hard-Errors), ist in Abschnitt 3.5 geschildert worden.
Kapitel 4
Implementierung der Modelle und
Beschreibung des Testsystems
Dieses Kapitel beschreibt welche Modelle in den Simulator asoc-sim integriert wurden
und bilden damit die notwendige Grundlage für die Modellierung eines Testsystems. Das
Testsystem soll dazu benutzt werden, die Evaluierung des XCS durchzuführen.
4.1 Implementierung der Modelle
Mit dem SystemC Simulator asoc-sim können sowohl funktionale Elmente (FE), als auch
autonome Elemente (AE) der ASoC Architektur beschrieben werden. Ein autonomes
Element besteht aus einem Monitor, Aktuator und einem Evaluator. Der Evaluator wird
durch den XCS repräsentiert. Der Monitor sammelt die gesamten modellierten Daten, wie
Leistungsaufnahme, Temperatur und die entstandenen Fehler. Der Monitor stellt diese
Daten dem Evaluator zur Verfügung. Der Aktuator übersetzt die Aktionen des XCS, in
eine kompatible Form für die jeweilige FE. Die Modelle wurden so gestaltet, dass sie in
einer FE instanziiert werden können. Jedes Modell bietet dabei eine spezische Schnittstelle an, über die, die berechneten Werte abgerufen werden. In Abbildung 4.1 und 4.2
sieht man einen Auszug aus dem Klassendiagramm. Darin erkennt man, dass es für jedes C_model eine Oberklasse gibt, die eine möglichst allgemeine Schnittstelle anbietet.
Ein spezisches Modell erweitert dann diese Schnittstelle entsprechend. Dadurch können
beliebig viele Modelle und Modelltypen hinzugefügt werden. Jedes Modell besitzt eine
Methode evntChanged(), über die ein Event abgefragt werden kann, der dann immer eintritt, wenn das Modell seine Werte neu berechnet hat. Nachdem die Modelle instanziiert
wurden, wird von SystemC die Methode end_elaboration() aufgerufen. In dieser Phase
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
34
Abbildung 4.1: Auszug aus dem Klassendiagramm der implementierten Modelle
initialisieren sich die Modelle selber, d.h. wenn zum Beispiel ein Fehlermodell zur Berechnung seiner Daten die Temperatur benötigt, dann holt sich das Modell einen Zeiger
auf das Temperaturmodell über eine SystemC Schnittstelle. Danach wird der jeweilige
Event abgefragt und zu einem SC_METHOD-Thread zugeordnet. Falls nun ein Modell
seine Daten ändert, dann wacht dieser Thread auf und veranlaÿt sein Modell ebenfalls
die Daten neu zu berechnen. Die Modelle bilden daher eine Art Netzwerk um Daten zu
beziehen. Ihre eigenen Daten stellen sie dann anderen Modellen wieder zu Verfügung.
In Abbildung 4.3 wird eine mögliche Vernetzung von verschiedenen Modellen dargestellt.
Auÿerdem wird das Zusammenspiel zwischen den autnomen und funktionalen Elementen
gezeigt. Wenn z.B. die Frequenz geändert wird, dann wird das Modell Power-Estimation
und das Fehlermodell davon benachrichtigt. Die Power-Estimation informiert das Temperaturmodell, welches wiederum das Error-Modell informiert. Durch dieses Netzwerk
halten die Modelle immer den aktuellen Zustand eines FE.
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
35
Abbildung 4.2: Auszug aus dem Klassendiagramm der implementierten Parametermodelle
Abbildung 4.3: Mögliche Vernetzung von Modellen
Berechnung der elektrischen Leistung
Das Modell für die Abschätzung der Verlustleistung basiert auf Formel 3.5. Dabei wurden
für
Pd
und
Ps
des Modells.
die Formel 3.4 und 3.3 benutzt. Abbildung 4.4 zeigt die Abhängigkeiten
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
36
Abbildung 4.4: Implementiertes Verlustleistungsmodell
Temperaturberechnung
Für die Berechnung der Temperatur wurde eine Schnittstelle entworfen, die den Temperatursimulator HotSpot integriert. Die HotSpot-Parameter und der Floorplan müssen über eine Datei an HotSpot übergeben werden. Die Schnittstelle muÿ mit einem
Frequenz-Modell und Verlustleistungsmodell vernetzt werden. Abbildung 4.5 zeigt dies
am Beispiel des implementierten Verlustleistungsmodell C_mpcSimple und dem Frequenzmodell C_frequency.
Abbildung 4.5: Schnittstelle für HotSpot
Das HotSpot-Tool liegt mittlerweile in Version 4.0 vor. Allerdings bietet die Schnittstelle lediglich Unterstützung auf Basis der unstrukturierten Gittereinteilung an. Eine
Unterstützung des feineren strukturierten Gitter macht in diesem Fall nur wenig Sinn,
da hierfür der genaue Ort der Energieaufnahme bekannt sein muÿ. Das HotSpot-Tool
ist in der Lage
transiente
Temperaturen zu berechnen. Dabei handelt es sich um ein
Temperaturverlauf in Abhängigkeit der zeitlichen Leistungaufnahme. HotSpot benötigt
dafür die verbrauchte Leistung für jeden Zeitabschnitt. Das bedeutet sobald sich Leistungaufnahme sich ändert muÿ HotSpot aktiviert werden, um die neue Temperatur zu
berechnen. Bei Start einer Simulation und konstanter Leistungsaufnahme benötigt die
Temperatur allerdings ca 50 sek. bis sie sich stabilisiert hat. Der Grund ist hierfür, dass
die Wärmeleitung des Kühlkörpers temperaturabhängig ist. In Abbildung 4.6 wird dieses
Verhalten noch verdeutlicht.
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
37
Abbildung 4.6: Einschwingphase Temperatur
Timing-Errors
Die Modellierung von Timing-Errors basiert wie schon in Abschnitt 3.3 beschrieben auf
einer Simulation von einer einzelnen Pipeline-Stufe. Dieses einfache Modell ist ausreichend um die Timing-Errors für die Evaluierung des XCS zu beschreiben. Damit das
Modell benutzt werden kann, muÿ neben Spannung und Frequenz auch die Temperatur
zu Verfügung gestellt werden (Abbildung 4.7).
Abbildung 4.7: Timing-Error Modell mit C_mteHotSpot als Temperaturmodell
Soft-Errors
Bei der Modellierung von Soft-Errors muÿ zwischen kombinatorischer Logik und Speicher
unterschieden werden. Für die Modellierung von SRAM wurde Formel 3.19 herangezogen.
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
38
Allerdings wurde nicht wie im Orginal-Paper mit der Frequenz skaliert sondern mit der
Spannung. Da die Fehlerrate poissonverteilt ist, wurde der Algorithmus aus Abschnitt
3.4.5 implementiert. Sobald die Fehlerrate nach einer Spannungsänderung angepaÿt wurde, aktualisiert sich die Exponential-Verteilungssimulation. Die Zufallsvariable (randomvariable) ist im Prinzip die Wartezeit zum nächsten Fehler. In C_merTimes läuft ein
Thread der für diese Zeit immer einschläft. Nach Aufwachen injiziert C_merTimes den
Fehler und holt sich von C_merExponential eine neue Zufallsvariable.
Abbildung 4.8: Vernetzung zur Simulation eines Soft-Errors
Die Simulation von Soft-Errors in kombinatorische Logik ist mit dem Modell aus Abschnitt 3.4.4 zwar möglich, aber äuÿert kompliziert. Der Grund hierfür ist, dass nicht
jeder Alpha-Partikel Einschlag zwingend zu einem Soft-Error führen muÿ: denn der dabei
enstehende Störstrom muÿ sich im Normalfall über mehrere logische Gatter fortsetzen,
was nicht immer der Fall ist. Weiter ist die Abhängigkeit von der Spannung bei dem
Parameter
Qs
nicht genügend genau untersucht. Weil der XCS verschiedene Spannungen
einstellen soll, kann dieses Modell nicht verwendet werden.
Hard-Errors
Hard-Errors zu simulieren macht keinen Sinn, da die Zeit bis zum Auftreten des ersten
Fehler mehrere Jahre betragen kann. Hinsichtlich der Evaluierung des XCS wäre es zwar
möglich den Beschleunigungsfaktor in die Reward-Funktion einieÿen zu lassen: jedoch
würde dies den Sachverhalt unnötig verkomplizieren. Hard-Errors gehen daher in diese
Arbeit nur indirekt ein, indem eine maximale Temperaturobergrenze festgelegt wird, die
nicht überschritten werden sollte. Damit wird also im Prinzip ein fester MTTF-Wert
festgelegt.
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
39
Abbildung 4.9: Aufbau des Opteron Prozessors
4.2 Beschreibung des Testsystems
Damit der XCS evaluiert werden kann, ist es notwendig, ein SoC/MPSoC mit asocsim zu modellieren und die implementierten Modelle zu kongurieren. Die Entscheidung
el auf einen bereits existierenden MPSoC: den AMD Opteron (Barcelona) Prozessor.
Der Grund hierfür ist, dass bei einem realen Chip möglichst viele Parameter für die
Simulation mit asoc-sim zu Verfügung stehen. Für dieses System wurden mit Hilfe von
Trace-Files vier Anwendungen nachempfunden. Bei dem aktuellen Opteron Prozessor
handelt es sich um ein Quad-Core-System. Dabei sind vier separate Kerne auf einem Die
untergebracht. Der Prozessor ist bereits in der Lage, die Frequenz jedes einzelnen Kernes
separat einzustellen. Im Vergleich zu anderen Quad-Core Prozessoren ist der gemeinsame
L3-Cache eine wichtigte Neuerung. Das heiÿt alle Kerne besitzen einen eigenen L1-Cache
und L2-Cache. Der L2-Cache besitzt eine Anbindung an die Northbridge. Der L3-Cache
dient dem Austausch gemeinsamer Daten und erleichert dem Chip die L1-, L2-Caches
kohärent zu halten. In Abbildung 4.9 ist der grundsätzliche Aufbau des Chips skizziert
[26] [7].
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
40
Abbildung 4.10: Floorplan des Opteron Prozessors [21]
4.2.1 Technische Daten des Opteron Prozessors
Der Prozessor wird momentan im 65nm Prozess gefertigt. Die Die-Gröÿe liegt bei
285mm2 ,
welche im Vergleich zu anderen Prozessoren sehr groÿ ist. In dem Chip wurden ca. 463
Millionen Tansistoren verbaut. Der L3-Cache beträgt
2048KB
und ist je nach Anwen-
dungsgebiet erweiterbar. Die L2-Caches haben jeweils eine Gröÿe von 512KB. Bei den
L1-Caches stehen
64KB für Daten und 64KB für Instruktionen zur Verfügung. Dabei sind
sowohl die L1- und L2-Caches mit der Prozessorfrequenz getaktet. Der L3-Cache wird
auch mit der Prozessorfrequenz angegeben, aber seine Latenz ist deutlich höher. Die Taktfrequenz liegt zwischen
1700 − 2000MHz
bei einer Betriebspannung von
1, 15 − 1, 20V .
Abbildung 4.10 zeigt den Aufbau des Prozessors. Die Caches sind 2-, 16- und 32-fach
assoziativ. Das heiÿt eine Cache-Block ist
Byte [7].
32KB
groÿ und eine Cache-Zeile umfaÿt 64
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
41
Abbildung 4.11: Floorplan für HotSpot
4.2.2 Modellierung des Opteron Quad-Core
Anhand der technischen Daten wurden die Parameter für die Simulation abgleitet. Als
erstes muÿte für HotSpot ein Floorplan beschrieben werden. Durch die Fläche des Dies
und des Bildes in Abbildung 4.10 wurde für HotSpot der in Abbildung 4.11 gezeigte
Floorplan erstellt. Wie in der Abbildung zu sehen ist, wurde die Northbridge bei der
Temperatursimulation mit HotSpot nicht berücksichtigt. Dies ist notwendig, da keine
Abschätzungen der Singalaktivität für die Verlustleistungsberechnung vorlagen. Für eine
genaue Temperaturberechnung ist es wichtig, dass die Leistungsverteilung auf dem Chip
bekannt ist. Deshalb wurden die Signalaktivitäten nur auf die Cores angepaÿt, um möglichst die
Thermal Design Power
(TDP) und
Average CPU Power
(ACP) anzunähern.
Die darin enthaltenen Transistoren wurden deswegen den einzelnen Cores zugeordnet.
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
42
Parameter
Core
L1-Cache
L2-Cache
L3-Cache
Num. Transistoren
59126896
9
1 ∗ 10−8
1.5 fF
115 µA
V2
0, 2V
0, 035 ns
25165824
1, 2
1 ∗ 10−8
1.5 fF
115 µA
V2
0, 2 V
0, 035 ns
786432
1, 2
1 ∗ 10−8
1.5 fF
115 µA
V2
0, 2 V
0, 035 ns
100663296
1, 2
1 ∗ 10−8
1.5 fF
115 µA
V2
0, 2V
0, 035 ns
kdesign
Iˆ
C
pro Transistor
β
Vtp u.Vtn
◦
Delay bei 428 K
Tabelle 4.1: Parameterwerte für die Opteron Simulation
Um die Transistorzahl der Caches zu berechnen, wurde weiter angenommen, dass es sich
bei dem Speicher um 6T-SRAM Zellen handelt. Die L1-Caches wurden bei der Temperaturberechnung nicht extra berücksichtigt, allerdings als eigene FE modelliert. Weitere
wichtige angenommenen Parameter für die implementierten Modelle nden sich in Tabelle 4.1. Die Werte von
β , Vtp
und
Vtn
wurden allerdings so gewählt, dass mit dem
einfachen Timing-Error Modell auch Fehler erzeugt werden. Sie liegen aber durchaus in
realistischen Bereichen.
Modellierung der Cache-Speicher
Da es sich bei der Simulation um eine High-Level Simulation handelt, wird das Verhalten
der Caches nur ganz einfach abgebildet. Die Latenz der Speicher wurde mit
Takte bei
3, 15
und
45
2000MHz angenommen [7]. Da die Arbeitsweisen der Caches nicht bekannt und
für die Evaluierung auch nicht wichtig ist, wird der Cache wie folgt modelliert. Bei einem
Miss in einem Cache wird solange gewartet bis eine Zeile geladen wurde. Danach fängt
der Prefetcher an den gesamten Block nachzuladen. Für diese Zeit wird der Cache und
dadurch sämliche Zugrie blockiert. Der Cache benutzt die Last-Recently-Used Methode
zum Ersetzen von Blöcken.
4.2.3 Beschreibung des Opterons mit asoc-sim
Anhand der technischen Daten und den angenommenen Parameter konnte eine Simulation mit asoc-sim durchgeführt werden. Abbildung 4.12 stellt das entwickelte ProzessorModell dar. Bei den FEs handelt es sich um C++ Objekte. Bei den Cores wurde eine
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
43
spezielle FE-Klasse vom Typ FE_traced verwendet. Diese Klasse ermöglicht das Ausführen von Trace-Files auf einer FE. Innerhalb des Trace-Files benden sich sogenannte
Trace-Primitiven. Die Trace-Primitiven sollen die Vorgänge auf den FEs abstrahieren,
damit nicht jeder Befehl einzeln simuliert werden muÿ. Die Cachezugrie werden beispielsweise wie folgt damit abgebildet. Der Code für die Trace-Primitiven ist in Listing
4.1 dargestellt.
LOAD
CACHE
LOAD
CACHE
STORE CACHE
STORE CACHE
MEM
L3
MEM
L3
0.02
0
0.02
1
0.02
8
0.02
8
Listing 4.1: Trace-Primitiven für den Cachezugri
Der erste Parameter ist der Name des Ports an den die FE die Anfragen stellt. Da alle
Cores direkt an den L1-Cache angebunden sind, greifen auch alle auf den Port CACHE
zu. Der zweite Parameter ist der Ort, wo die benötigten Daten abgelegt und gespeichert
werden. Allerdings wird bei LOADs nur dann auf den Speicher zugegrien, wenn es in
L1- und L2-Cache zu einem Miss kommt. Der dritte Parameter beschreibt die Signalaktivität für Verlustleistungsberechnung. Bei den STORE-Primitiven beschreibt der letzte
Parameter wieviel Cache-Zeilen geschrieben werden sollen. Während bei den LOADS
der letzte Parameter aussagt, ob ein neuer Block geladen werden soll. Abbildung 4.13
beschreibt den Vorgang bei Ausführung der Trace-Primitive LOAD mit den Parametern
CACHE, MEM, 0.02 und 0. Für Caches wurde eine eigene FE vom Typ FE_cache und
für die Northbridge eine vom Typ FE_bridge implementiert. Weiter ist zu sehen, dass
es in den Caches zu einem Miss kommt, deshalb muÿ solange gewartet werden, bis über
die Northbridge die Daten aus dem Speicher geladen wurden. Danach werden die Daten
in die Caches geschrieben (rote Pfeile).
4.2.4 Trace-File für das Testsystem
Damit der Einuÿ verschiedener Programme bei der Steuerung durch den XCS untersucht werden kann, existieren vier verschiedene Traces. Bei dem ersten Programm handelt
es sich um eine LR-Zerlegung eines linearen Gleichungssysstem. Die Anwendung ist angelehnt an den bekannten Benchmark
Linpack. Die zweite Applikation modelliert einen
Video-Stream, auf den ein Rauschlter angewendet wird. Als drittes werden mehrere
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
Abbildung 4.12: Modellierung des Opteron mit asoc-sim
Abbildung 4.13: Ausführung einer Trace-Primitive
44
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
45
Matrix-Multiplikationen simuliert. Das letzte Programm ist eine synthetische DualCoreAnwendung.
LR-Zerlegung
Bei einer LR-Zerlegung handelt es sich um ein ein numerisch stabiles Verfahren um ein
Gleichungssystem
Ax = b zu lösen. Der Algorithmus läuft in folgendender Weiÿe ab [32]:
Als erstes wird A in
A = LR
zerlegt. Danach werden die Gleichungsysteme
Ly = b
Rx = y
gelöst. Bei
L
und
R
handelt es sich um ein oberes bzw unteres Dreiecksystem. Der Al-
gorithmus teilt sich daher in zwei Teile auf: 1. die Berechnung der LR-Zerlegung und 2.
die Berechnung der Dreiecksysteme. Bei dem Rechenauwand werden nur Multiplikationen und Divisionen berücksichtigt. Die Anzahl der Multiplikationen und Divisionen zur
Elimination der k-ten Variablen bei der LR-Zerlegung ist:
(n − k)
Berechnung der lik ,
+ (n − k)2
Wobei
lik
die Elemente von
L
Berechnung der
und
aij
i = k + 1, ...., n
aij , i, j = k + 1, ..., n
die Elemente von
R
sind. Daraus ergibt sich die
Gesamtzahl der Multiplikationen und Divisionen mit
n−1
X
2
(n − k) + (n − k)
=
k=1
n−1
X
k=1
1
1
k + k 2 = n3 − n.
3
3
(4.1)
Der Aufwand zur Lösung der Dreiecksysteme berechnet sich mit
n
X
k=1
(k − 1) +
n−1
X
(n − k) + n = n2 .
k=1
Zwei Trace-Primitiven beschreiben diese zwei Schritte (Listing 4.2).
(4.2)
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
LR
25
63
0.06
LRB 25
63
0.06
46
Listing 4.2: Trace-Primitiven für die LR-Zerlegung
Die erste Zier ist die Anzahl der benötigten Zykeln für eine Multiplikation/Division. Die
zweite ist die Zeilenlänge des Gleichungsystem und die dritte beschreibt die durchschnittliche Signalaktivität. Aus Formel 4.1 und 4.2 kann die Rechenzeit berechnet werden. Der
in Listing 4.3 gezeigte Auszug aus dem Trace-File beschreibt den Programmablauf zur
Lösung von einem Gleichungssystem. Auÿerdem belegt der Algortihmus, durch die Wahl
von
n = 63,
für ein Gleichungssystem fast einen kompletten Cache-Block.
LOAD CACHE MEM 0 . 0 2
LR 3
63
LRB 3
1
0.06
63
0.06
STORE CACHE MEM 0 . 0 2
8
Listing 4.3: Programmablauf für eine LR-Zerlegung
Als erstes lädt der Core die erste Cache-Line aus dem Arbeitsspeicher. Danach beginnen
die Caches sofort mit Prefetchen. Auÿerdem wird davon ausgegangen, dass es zu keinem
weiteren STALL in den Load/Store Einheiten kommt. Nachdem nun
L und R vorhanden
sind, können die Dreiecksysteme berechnet werden. Anzumerken ist auch noch, dass bei
einer LR-Zerlegung die berechneten Variablen von
L
und
R
an die alten Stellen von
A
gespeichert werden.
Video-Stream
Bei dem Video-Stream wird jedes Bild mit einem diskreten 3x3-Filter gefaltet. Das bedeutet, es müssen pro Pixel 1 Division und 8 Multiplikationen angewandt werden. Hierzu
wurde wieder eine Trace-Primititive erstellt (Listing 4.4).
GR
25
11000
0.06
Listing 4.4: Trace-Primitive für den 3x3 Filter
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
47
In einen Cache-Block passen ca. 11000 Pixel. Dies führt zu einem Trace-File wie in Listing 4.5.
VIDEO :
LOAD CACHE MEM 0 . 0 2
GR 3
11000
1
0.06
STORE CACHE MEM 0 . 0 2
512
LOOP VIDEO 2 8
Listing 4.5: Programmablauf für ein Bild des Video-Streams
Bei 11000 Pixel pro Block müssen bei einer Bildgröÿe von 640x480 ca. 28 Blöcke geladen
werden. Sobald der L1-Cache die Daten geladen hat, führt der Prozessor die Filterung
durch. Um die Bilder sofort von der Grakkarte weiterverarbeiten zu lassen, werden sie
direkt in das RAM zurückgeschrieben.
Matrix-Multiplikation
Dieses Trace-File bildet eine Matrix-Multiplikation ab. Der Aufwand zur Berechnung einer Multiplikation ist
n2 .
Die Berechnung benötigt daher gleich viele Multiplikationen
wie die Lösung der Dreiecksysteme bei der LR-Zerlegung. Für eine 63x63 Matrix muÿ
wieder ein kompletter Cache-Block geladen werden. Danach kann die Trace-Primitive
der Dreiecksysteme ausgeführt werden. Der 63-zeilige Ergebnisvektor belegt acht CacheZeilen, die in den Speicher zurückgeschrieben werden (Listing 4.6).
LOAD CACHE MEM 0 . 0 2
LRB 3
63
1
0.06
STORE CACHE MEM 0 . 0 2
8
Listing 4.6: Programmablauf für die Matrix-Multiplikation
DualCore-Anwendung
Dieses Programm ist eine Anwendung die auf zwei Kernen ausgeführt wird, wobei Prozess
1 auf Daten von Prozess 2 warten muÿ. Prozess 2 wurde dabei so gestaltet, dass er
gegenüber Prozess 1 deutlich früher am Rendevouzpunkt zum Nachrichtenaustausch ist.
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
48
In Listung 4.7 und 4.8 werden die beiden Trace-Files gezeigt. Die Trace-Primitive ACT
setzt für die angegebenen Takte (erster Parameter) die entsprechende Signalaktivität und
wartet entsprechend. Weiter wurde noch zwei Trace-Primitiven READY und WAIT_ON
implementiert, die zur Synchronisation von den Cores dienen.
PARA:
LOAD CACHE MEM 0 . 0 2
1
LOAD CACHE MEM 0 . 0 2
0
LOAD CACHE MEM 0 . 0 2
0
ACT 4 0 0 0 0 0 0 0 0 0
0.5
READY c o r e 2
LOAD CACHE L3
0.02
ACT 1 0 0 0 0 0 0 0 0
0.3
1
STORE CACHE MEM 0 . 0 2
32
LOOP PARA 2 0 0 0 0 0 0
Listing 4.7: DualCore-Anwendung: Prozess 1
PARA:
LOAD CACHE MEM 0 . 0 2
ACT 2 0 0 0 0 0 0 0 0 0
0.5
STORE CACHE L3
0.02
ACT 0 . 0
1
512
0.0
WAIT_ON c o r e 1
LOOP PARA 2 0 0 0 0 0 0
Listing 4.8: DualCore-Anwendung: Prozess 2
4.2.5 Verikation des Testsystems
Die Trace-Files wurden eine Sekunde lange mit asoc-sim simuliert, wobei in jeder TracePrimitive ein Zähler implementiert wurde. Die Anwendungen werden dabei ständig wiederholt. Wenn auf einem Core die LR-Zerlegung ausgeführt wird und die anderen Cores idlen, dann werden in einer Sekunde 7417 Gleichungsysteme gelöst. Bei dem VideoStream werden ca. 231 Bilder pro Sekunde berechnet. Läuft auf einem Core ausschlieÿlich die Matrix-Multiplikation, dann berechnet der Core 101698 solcher Multiplikationen. Wird auf Core1 die Matrix-Multiplikation, auf Core2 der Video-Stream und auf
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
49
Core3/Core4 die LR-Zerlegung ausgeführt, dann werden 91917 Matrix-Multiplikationen,
223 Bilder pro Sekunde und jeweils 7311 LR-Zerlegungen berechnet. Daran sieht man,
dass der gemeinsame Zugri auf den Hauptspeicher zum Flaschenhals wird, und sich
die Anwendungen gegenseitig ausbremsen. Der Leistungsverbrauch liegt bei diesem Anwendungsfall bei ca. 83 Watt und die Temperatur beträgt ca.
55◦ C
auf jedem Core.
Im IDLE-Modus beträgt die Verlustleistung ca. 26 Watt. Diese Werte sind durchaus
realistisch wie ein Vergleich mit [1] zeigt.
4.3 XCS-Wrapper
Der XCS stand als C-Programm zu Verfügung, welches von Butz selbst entwickelt worden
ist. Damit der XCS auch als Evaluator in asoc-sim eingesetzt werden konnte, muÿte ein
Wrapper entwickelt werden. Dieser Wrapper stellt das Verbindungsstück zwischen dem
Evaluator und dem C-XCS dar. Den Zugri auf die gemeinsame Ressource des C-XCS
überwacht die Klasse XCSArbiter. Die Klasse steuert auch die Aufrufe in die Umgebung
(also in den Evaluator). Dadurch ist es möglich für jede FE einen XCS-Evaluator mit
eigener Population zu betreiben. Abbildung 4.14 verdeutlich diesen Zusammenhang.
Abbildung 4.14: Einbindung des C-XCS in asoc-sim
Auÿerdem unterstützt die Klasse XCSArbiter noch die folgenden Funktionen:
1. Vor jedem Experiment können eigene initiale Classier in die Population geladen
werden.
2. Bereits abgeschlossene Experimente können wieder aufgenommen werden.
3. Zur Laufzeit sind Parameteränderungen wie z.b. die Lernrate möglich
Kapitel 4 Implementierung der Modelle und Beschreibung des Testsystems
50
Damit diese Punkte umgesetzt werden konnte war eine intensive Analyse des C-Codes
nötig.
4.4 Zusammenfassung
Dieses Kapitel beschrieb wie die in Kaptiel 3 vorgestellen Modelle implementiert wurden.
Bei der Implementierung wurde darauf geachtet, dass die entworfene Simulationumgebung möglichst exibel und erweiterbar ist. Auÿerdem wurde der Aufbau des Testsystems
gezeigt mit dem die folgende Evaluierung durchgeführt wurde. Für das Testsystem wurden Trace-Files entwickelt. die Programmabläufe simulieren sollen. Im letzten Abschnitt
wurde kurz umschrieben wie der XCS in asoc-sim integriert worden ist.
Kapitel 5
Evaluierung des XCS
In diesem Kapitel wird das Learning-Classier-System XCS bewertet, ob es für den Einsatz im Bereich SoC/MPSoC geeignet ist. Dabei muÿ als erstes eine geeignete Beschreibung der Umgebung, des Reinforcement-Programmes und den ausführbaren Aktionen
gefunden werden. Der XCS muÿ in der Lage sein, aus dieser Beschreibung lernen zu
können. Für die Evaluierung wird der Quad-Core aus Abschnitt 4.2 benutzt.
5.1 Beschreibung der Umgebung und Aktionen
Die Beschreibung der Umgebung, also die von den Sensoren gelieferten Situationen, und
die Möglichkeiten der Reaktion auf eine Situation sind entscheidene Faktoren, damit
der XCS erfolgreich arbeitet. Die Sensorendaten des XCS werden im asoc-sim durch
den Monitor repräsentiert. Mit den implementierten Modelle standen folgende Daten zu
Verfügung:
1. aktuelle Temperatur
2. Leistungsverbrauch
3. fand ein Timing-Error statt (nur Logik)
4. aktuelle Frequenz
5. aktuelle Spannung
6. Anzahl der Soft-Errors (nur Speicher)
Kapitel 5 Evaluierung des XCS
52
Der Ansatz für die Beschreibung der Umgebung und den Aktionen sieht wie folgt aus:
Die Anzahl der einstellbaren Frequenzen auf jedem Core wurde auf 11 festgelegt und die
wählbaren Spannungen auf 6. Der Frequenzbereich verläuft von 500MHz bis 3000MHz
und der Spannungsbereich liegt zwischen 0,8V und 1,3V. Diese zwei Parameter wurden
mit 4 und 3 Bit quantisiert und stellen den ersten Teil der Umgebungsbeschreibung dar.
Zum Beispiel steht
C = 0001100
für 750MHz und einer Spannung von 1,2V. Der zweite
Teil ist der Temperaturbereich zwischen
50◦ C
und
90◦ C , der mit 5 Bit quantisiert wurde.
Auÿerdem wurde noch ein Fehlerbit hinzugefügt, falls ein Soft- oder Timing-Error aufgetreten ist, wird dieses Bit auf 1 gesetzt. Eine Situation hat daher z.B. die folgende Form:
C = 1001010001100.
Die Aktionen des XCS beschränken sich auf die Veränderung der
Spannung und der Frequenz. Das Problem wurde als Single-Step Problem angegangen, so
dass eine Aktion eine Änderung der Spannung und der Frequenz bedeutet. Eine Aktion
ist daher:
(s, f )
wobei
s
mit
s ∈ {0..5}
eine konkrete Spannung und
f
und
f ∈ {0..10} ,
eine konkrete Frequenz ist. Die Gesamtzahl der
Aktionen beträgt dadurch 66 Stück. Das heitÿt eine Aktion
1000MHz,
(5, 10)
(5.1)
(0, 2)
entspricht 0,8V und
bedeutet eine Einstellung von 1,3V und 3000MHz.
5.2 Single-Step oder Multi-Step
Ein wichtiger Punkt ist: ob das Problem als Multi-Step oder Single-Step Experiment angegangen werden soll. Denn je nach Problemart hat jedes dieser Experimenttypen seine
Vorteile. Der Vorteil daran die Aufgabe als Single-Step-Experiment durchzuführen ist,
dass der Reward sofort berechnet werden kann. Die Alternative dazu ist ein Multi-StepExperiment, bei dessen es keine kombinierten Einstellungen von Frequenz und Spannung
gibt. Jede Aktion steht nur für eine Parameteränderung. Das heiÿt es würden nacheinander Spannung bzw. Frequenz verändert werden. Die Anzahl der Aktionen wäre in diesem
Fall 17 Stück (11 Frequenz und 6 Spannung). Bei Multi-Step-Experimenten muÿ aber
das Reinforcement-Programm das
eop Flag setzen, damit signalisiert es, dass die Aufgabe
erfüllt wurde. Genau dies ist aber nicht möglich, da das Reinforcement-Programm nie
entscheiden kann, ob das Optimum erreicht wurde. Das bedeutet, der Reward muÿ immer
nach einer festgelegten Anzahl an Schritten zurückgeliefert werden. Ein weiteres Problem
bei Multi-Step-Experimenten ist, dass kein direkter Zusammenhang zwischen der eingestellen Frequenz und der vorliegenden Spannung hergestellt werden kann. Eine höhere
Spannung kann durchaus die richtige Wahl in einer gegebenen Situation sein. Allerdings
Kapitel 5 Evaluierung des XCS
53
Abbildung 5.1: Ablauf der Lernphase
wenn daraufhin die falsche Frequenz gewählt wird, dann wird durch den erzwungenen
Reward, die prinzipiell gute Wahl der höheren Spannung, mit einem niedrigen Reward
belohnt. Dies führt dazu, dass der XCS aussagelose Classier erstellt, da eine Aktion
teilweise hoch belohnt wird, aber teilweise auch wieder niedrigere Belohnungen erhält.
5.3 Generierung von Classiern
Als erstes werden die Classier mit Hilfe des XCS erstellt, dabei ist das Ziel alle möglichen
Temperatur-, Frequenz- und Spannungskombinationen zu testen. Im ersten Schritt wird
eine zufällige Frequenz/Spannung eingestellt und zwei Sekunden gewartet. Nach diesen
zwei Sekunden bekommt der XCS von der Umgebung die Situation geliefert. Er wählt
daraufhin eine neue Aktion aus. Diese Aktion wird dann auf dem Core eingestellt und
zwei Sekunden gewartet. Danach wird die Aktion bewertet und der Reward berechnet.
Als nächstes wird erneut die Frequenz/Spannung zufällig eingestellt und zwei Sekunden
gewartet. Dann ist wieder der XCS an der Reihe, eine neue Einstellung zu testen. Dieser
Vorgang wird in Abbildung 5.1 verdeutlicht.
Der Vorgang muÿ dann genügend oft wiederholt werden. In diesem Anwendungsbeispiel
wurden 50000 solcher Schritte durchgeführt. Die Temperatur steigt bei einer Spannungs/Frequenzänderung in den ersten zwei Sekunden sehr stark an. Deshalb muÿ mindestens
solange gewartet werden, damit die verschiedenen Aktionen verglichen werden können.
Der schnelle Anstieg in den ersten zwei Sekunden wird in Abbildung 5.2 dargestellt. Dabei liefen die anderen Cores im IDLE-Modus und hatten eine Frequenz von 2000MHz
und eine Spannung 1,2V. Die Classier werden auf einem Core erstellt. Dabei ist die
Signalaktivität konstant bei 0,05. Zu Cachezugrien kommt es in dieser Zeit nicht. Dadurch kann eine deutlich höhere Simulationszeit erreicht werden, als wenn die Traces aus
Abschnitt 4.2.4 ausgeführt werden. Die wichtigsten Parameter für diese Lernphase sind
Kapitel 5 Evaluierung des XCS
54
Abbildung 5.2: Temperaturschwankung von 500MHz, 0.8V nach 3000MHz, 1.3V
in Tabelle 5.1 aufgeführt. Auÿerdem wird die Temperatur zufällig um
5, 10, 20 und 30◦ C
erhöht, um äuÿere Temperatureinüsse zu modellieren. Die zufällige Erhöhung darf erst
wieder zurückgenommen werden, wenn die Aktion des XCS evaluiert wurde.
Don't Care Prob.
Explore Prob.
θGA
θDel
θSub
Lernphase
1.0
1.0
25
20
20
Verikation
1.0
0.0
∞
∞
∞
Tabelle 5.1: Parameterwerte des XCS
5.3.1 Beschreibung der Rewardfunktion
Der XCS soll lernen, den Energieaufwand bei einer gewünschten Leistung auf den Cores
zu minimieren. Zusätzlich dürfen aber keinerlei Fehler mit diesen Einstellungen auftreten.
Kapitel 5 Evaluierung des XCS
55
Abbildung 5.3: Timing-Error bei einer Frequenz von 2000 MHz (1 ist ein Fehler
Diese Bedingungen führen zu folgendem Ansatz für die Rewardfunktion:
R(f, p, t, v) =
f
fmax
∗ w1 + 1 −
mit
p
pmax
∗ w2 + rel(t, v, f ) ∗ w3

0
rel(t, v, f ) =
1
(5.2)
falls Timing-Error,
sonst
Da der XCS nur auf den Cores aktiv ist, können nur Timing-Errors berücksichtigt werden.
Soft-Errors sind nur für Caches modellierbar. In Abbildung 5.3 ist zu sehen, wann das
Timing-Error Modell bei einer Frequenz von 2000MHz Fehler injiziert. Die Gewichte
wurden auf
w1 = 200, w2 = 35
und
w3 = 200
festgelegt. Dadurch soll das System
bei einer möglichst niedrigen Verlustleistung eine möglichst hohe Frequenz erreichen.
Abbildung 5.3 zeigt auÿerdem, dass die Frequenz von 2000MHz und 1,2V, in normalen
Temperaturbereichen eine sichere und performante Einstellung darstellt. Weshalb sie
immer einen hohen Reward bekommen wird.
Kapitel 5 Evaluierung des XCS
Abbildung 5.4: Reaktion
des
56
XCS
nach
zufälligen
Parametereinstellungen
(LR-
Zerlegung)
5.4 Steuerung der Cores durch den XCS
Das Experiment wurde mit den Parametern aus 5.3 durchgeführt. Danach wurden diese
Classier getestet, indem die Parameter aus Tabelle 5.1 (Verikation) geändert wurden.
Die Explore-Wahrscheinlichkeit wird auf 0 gesetzt, so dass nur die Aktionen gewählt
werden, die den höchsten Reward versprechen. Die Änderungen der Parameter
und
θSub
θGA , θDel
führen dazu, dass der GA nicht mehr aktiv ist und keine Classier gelöscht
oder vereinigt werden. Die einzige Möglichkeit dass neue Classier entstehen ist durch
Covering. Auf den Cores werden in dieser Phase verschiedene Trace-Files ausgeführt, die
Anwendungen laufen dabei in einer Endlosschleife.
Als erstes wird die LR-Zerlegung ausgeführt und jeweils alle 5 sek zufällig eine neue
Frequenz und Spannung eingestellt wurde. Der XCS reagierte auf diese Änderung immer
mit Rücksetzung des Systems auf 2000MHz und 1.2V, was in diesen Temperaturbereichen
zu keinen Fehler führt und die beste Einstellung ist. In Abbildung 5.4 wird dieser Test
veranschaulicht.
In einem zweiten Test wurde untersucht, ob diese Classier auch auf die Matrix-Multiplikation
anwendbar sind. Hierzu wurde die Matrix-Multiplikation auf Core1 ausgeführt. In Abbildung 5.5 ist zu sehen, dass der XCS das System auch hier wieder in einen sicheren
Kapitel 5 Evaluierung des XCS
Abbildung 5.5: Reaktion
des
XCS
57
nach
zufälligen
Parametereinstellungen
(Matrix-
Multiplikation)
Zustand überführt.
Der nächste Test untersucht wie sich der XCS verhält, wenn auf allen vier Cores eine
Anwendung ausgeführt wird. Dabei läuft auf Core1 die Matrix-Multiplikation, auf Core2
der Video-Stream und auf Core3/Core4 die LR-Zerlegung. Jeder Core hat dabei sein
eigener XCS. Dabei starten die vier Cores mit unterschiedlichen Frequenzen/Spannungen,
wobei jeder XCS nach 10 sek gestartet wird. Wie in Abbildung 5.6 zu sehen ist, ändert
jeder XCS sofort wieder die Spannung/Frequenz auf 2000MHz und 1,2V ab.
Durch den XCS ist es daher möglich, optimale Betriebspunkte innerhalb eines spezizierten Bereiches zu nden.
5.5 Reaktion auf äuÿere Temperatureinüsse
In diesem Abschnitt wird gezeigt, wie der XCS auf äuÿere Einüsse reagiert. Dies wird am
Beispiel einer Erhöhung der Chiptemperatur durchgeführt. Die Ursache könnte sein, dass
die Auÿentemperatur ansteigt oder das Kühlsystem nicht richtig funktioniert. Durch die
erhöhte Temperatur kann es zu Timing-Errors kommen, so dass eine bestimmte Frequenz
Kapitel 5 Evaluierung des XCS
58
Abbildung 5.6: Frequenzänderung und Spannungänderung bei allen vier Cores
nicht mehr eingehalten werden kann. Auÿerdem wird gezeigt wie Hard-Errors vermieden
werden können. Hierzu wird die Rewardfunktion 5.2 erweitert:
R(f, p, t, v) =
f
fmax
mit
∗ w1 + 1 −
p
∗ w2 + rel(t, v, f ) ∗ w3
pmax



0
falls Timing-Error,

 70 2
rel(t, v, f ) =
für t > 70

 t

1
sonst
Die Gewichte wurden für eine Temperatur unterhalb von
35
und
w3 = 200
festgelegt. Oberhalb von
70◦ C
ist
(5.3)
70◦ C wieder auf w1 = 200, w2 =
w1 = 100, w2 = 100
Durch die Erweiterung der Reward-Funktion wird eine Art
und
w3 = 200.
Notfallverhalten beschrieben,
welches sich dadurch auszeichnet, dass der Chip durch den XCS bei über
70◦ C
auf eine
weniger performante Einstellung reguliert werden soll. Durch die hohe Gewichtung der
Verlustleistung kann zudem erreicht werden, dass die Temperatur absinkt. Ziel ist es,
das System möglichst wieder in die Nähe von
70◦ C
zu bringen. Die Reduzierung der
Temperatur vermindert gleichzeitig die Hard-Error-Rate. Die Classier wurden mit der
gleichen Methode erstellt wie in Abschnitt 5.4.
Die Verikation verläuft folgendermaÿen: Die Temperatur wird für 20 sek um
15◦ C
er-
höht. Ein Evaluator ist nur auf Core1 aktiv, auf dem die LR-Zerlegung läuft. Die anderen
Cores sind im IDLE-Modus. Der Evaluator ruft alle vier Sekunden den Monitor ab. In
Abbildung 5.7 sieht man die Reaktion des XCS auf die Veränderung der Umgebung. Der
Kapitel 5 Evaluierung des XCS
59
Abbildung 5.7: Reaktion des XCS auf einen Temperaturanstieg von
15◦ C
XCS schaltet sofort die Frequenz auf 1500MHz und 0,9V herunter. Dadurch sinkt die
Temperatur und wieder auf unter
70◦ C.
In diesem Bereich liefert wieder die Frequenz
2000MHz und 1,2V den besten Reward, weshalb der XCS diese Einstellung wählt. Dadurch steigt die Temperatur an und der Vorgang wiederholt sich. Einmal stellt der XCS
allerdings 1,3V anstatt 1,2V ein. Solche kleine Fehler liegen wohl daran, dass eine andere
Anwendung als die gelernte läuft. Zum anderen ist es sehr unwahrscheinlich, dass der
XCS Classier erstellt, die den Problemraum zu hundertprozentig abdecken.
Die Temperatur sank nach einer Erhöhung um
und 0,8V, nicht mehr unter
20◦ C , trotz einer Umstellung auf 1250MHz
70◦ C . Wie Abbildung 5.8 zeigt, behält der XCS deshalb diese
Einstellung bei. Durch die beide Einstellungen konnten Timing-Errors vermieden werden
und das System blieb in einem stabilen Zustand. Nachdem in den Tests der Temperaturanstieg zurückgenommen wurde, reguliert der XCS das System wieder auf 2000MHz
und 1,2V. Dieser Test zeigt, dass die Erweiterung der Rewardfunktion den gewünschten
Eekt hatte und der XCS dadurch auf äuÿere Temperatureinüÿe sehr gut reagieren
kann.
5.6 Lernen mit initialen Classiern
In diesem Abschnitt wird das Verhalten untersucht, ob der XCS eine neue RewardFunktion mit Classiern einer anderen Reward-Funktion lernen kann. Dabei dienen die
bereits in Abschnitt 5.5 verwendeten Classier als initiale Classier. Da diese Classier
den Problemraum schon gut abdecken, wird der GA deaktiviert. Bei der neuen Reward-
Kapitel 5 Evaluierung des XCS
60
Abbildung 5.8: Reaktion des XCS auf einen Temperaturanstieg von
Funktion werden die Gewichte auf
w1 = 100, w2 = 100
und
w3 = 200
20◦ C
gesetzt. Dadurch
haben Verlustleistung und Performanz die gleiche Priorität. Die Gewichte über
70◦ C
bleiben allerdings gleich. Damit die Lernzeit niedrig gehalten wird, muÿ der Lernvorgang aus Abbildung 5.1 abgeändert werden. Daher wird eine Strategie angewendet, die
versucht, möglichst nur in einer Nische die neue Reward-Funtkion zu lernen. Die veränderte Lernphase beschreibt Abbildung 5.9. Darin sieht man, dass immer die selbe
Frequenz-/Spannungskombination gewählt wird, bis der XCS eine bessere ndet. Sobald
das Reinforcement-Programm einen höheren Reward (rew) als der bisherig beste Reward
(o_rew) liefert, dann wird, ab diesem Zeitpunkt, die zugehörige Frequenz/Spannung eingestellt. Damit wird der Problemraum eingeschränkt, indem nur an lohnenden Bereichen
die neue Reward-Funktion gelernt wird. Auÿerdem wurde die Lernrate von 0,2 auf 1,0
erhöht, um die Lernzeit weiter zu minimieren. Die hohe Lernrate ist auch notwendig da
die alte Reward-Funktion erst wieder verlernt werden muÿ. Das Experiment wird auf
einem Core durchgeführt, die anderen drei sind im IDLE-Modus.
In Abbildung 5.10 ist der Verlauf der Lernphase beschrieben. Darin ist zu sehen, dass
das System relativ lange benötigt, trotz der hohen Lernrate, bis es sich einigermaÿen
stabilisiert hat. Die Abbildung zeigt aber auch deutlich das Lernprinzip des XCS. In der
Lernphase müssen ständig zufällige Parametereinstellungen getestet werden, damit der
XCS überhaupt lernen kann. Der XCS benötigt unbedingt den Explore-Schritt um den
Problemraum zu erkunden. Umso höher die Explore-Wahrscheinlichkeit
P]
(Standard ist
1,0) ist, desto schneller wird der XCS lernen.
Nach 1000 Schritten (2000 sek) wird diese Lernphase wieder beendet. Der XCS wählt
Kapitel 5 Evaluierung des XCS
Abbildung 5.9: Ablauf der Lernphase zur Laufzeit
Abbildung 5.10: Frequenz-/Spannungänderungen zur Laufzeit
61
Kapitel 5 Evaluierung des XCS
62
Abbildung 5.11: Verhalten des XCS nach Neulernen einer Reward-Funktion und simulierter Temperaturanstieg von
20◦ C
nun als beste Einstellung 1250MHz und 0,8V.
Nun wird die Temperatur um
20◦ C
erhöht. Wie in Abbildung 5.11 zu sehen ist, hat sich
das Notfallverhalten nicht geändert. Der XCS behält die Frequenz und Spannung bei. Dieses Verhalten ist aber nicht immer der Fall. Denn Classier die sehr allgemein sind, hätten
normalerweise einen hohen Vorhersagefehler. Da aber nicht der ganze Problemraum neu
gelernt werden kann, geht dieser Vorhersagefehler verloren. Dadurch haben allgemeine
Classier eine höhere Gewichtung im Match-Set, somit werden andere Einstellungen als
ursprünglich vorgenommen. Es ist klar, dass durch die vorgeschlagene Lernstrategie erst
nach und nach alle wichtigen Classier ihre Parameter ändern. Das gute Funktionieren der initialen Classiern hängt wohl damit zusammen, dass durch die Wahl der ersten
Reward-Funktion relativ spezielle und sehr allgemeine Classier enstanden. Dadurch sind
sie auch für andere Reward-Funktionen sehr gut geeignet.
5.7 Optimierung eines Kernes bei einer
DualCore-Anwendung
Die gewonnenen Ergebnisse aus den vorangegangenen Abschnitten können nun dazu benutzt werden, zwei Cores bzgl. einer DualCore-Anwendung zu optimieren. Dabei werden
die Trace-Files aus Listing 4.7 und 4.8 auf Core1 und Core2 ausgeführt. Da der Prozess
1 die längere Rechenzeit hat, wird Core1 mit maximaler Frequenz getaktet: 2000MHz
bei 1,2V. Der andere Core soll nun so eingestellt werden, dass seine Wartezeit minimiert
Kapitel 5 Evaluierung des XCS
63
wird. Dazu wird die Rewardfunktion leicht angepaÿt.
p
R(f, p, t, v, wt) = time (wt) ∗ w1 + 1 −
∗ w2 + rel(t, v, f ) ∗ w3
pmax



0
falls Timingfehler,

 70 2
mit rel(t, v, f ) =
für t > 70
t



1
sonst

1 − wt
falls Wartezeit Core1 = 0,
wtmax
mit time(wt) =
0
sonst
(5.4)
Bei der neuen Reward-Funktion ist zu sehen, dass nicht mehr die Frequenz bewertet wird,
sondern die Wartezeit von Core2 auf Core1 (wt). Ist Core2 zu langsam, dann ist die Wartezeit von Core1 > 0. Deshalb wird dieser Fall mit einem Reward von 0 bewertet, da sich
sonst die Laufzeit insgesamt verlängern würde. Im Code müssen zwei Messpunkte festgelegt werden. In Listing 5.1 sind diese zwei Messpunkte durch START_EVALUATE und
END_EVALUATE vertreten. Auÿerdem ist noch eine dritte Trace-Primitive hinzugefügt
worden, die den Evaluator veranlaÿt eine neue Aktion auszuführen (START_ACTION).
PARA:
START_ACTION
LOAD CACHE MEM 0 . 0 2
ACT 2 0 0 0 0 0 0 0 0 0
0.5
STORE CACHE L3
0.02
ACT 0 . 0
1
512
0.0
START_EVALUATE
WAIT_ON c o r e 1
END_EVALUATE
LOOP PARA 2 0 0 0 0 0 0
Listing 5.1: DualCore-Anwendung mit Messpunkten: Prozess 2
Die Classier stammen aus den Experimenten aus Abschnitt 5.4, der Lernvorgang wurde
aus Abschnitt 5.6 übernommen. Das heiÿt nach 1000 Schritten endet die Lernphase und
das System wählt die beste Einstellung aus. In Abbildung 5.12 ist zu sehen, dass der XCS
Core2 auf 1000 MHz und 0.8V einstellt. Diese Einstellung ist optimal, da die Wartezeit
von Core2 auf Core1 minimal wird, aber Core1 nicht auf Core2 warten muÿ. Es ist klar
dass bei dieser Einstellung es zu keinem Timing-Error kommt.
Kapitel 5 Evaluierung des XCS
64
Abbildung 5.12: Frequenz-/Spannungänderungen Optimierung Core2
5.8 Steuerung der Speicher
Die Steuermöglichkeiten durch den XCS lassen sich auch auf den Speicher ausweiten.
In diesem Beispiel besitzt die Umgebungsbeschreibung keine Temperaturkomponente.
Daher wird angeommen, dass sich die Temperatur bei ca.
60◦ C
hält. Der Grund hierfür
ist, dass die Temperatur der Speicher während den Simulationen fast konstant war. Eine
Situation beschreibt sich durch Frequenz, Spannung und Fehlerbit. Ein entscheidender
Unterschied sind die Aktionen. Da hier Cache-Speicher modelliert wird, macht es wenig
Sinn, diese anders als mit dem Prozessortakt zu betreiben. Das heiÿt der XCS kann nur die
Spannung ändern. Die Frequenz bekommt er von seinem jeweiligen Core vorgeschrieben.
Eine Aktion ist also:
(s) mit s ∈ {0..5}
(5.5)
Auÿerdem werden in diesem Beispiel nur Soft-Errors berücksichtigt, wobei eine sehr aggressive SER von 100000 FITS angeommen. Das verwendete Modell ist in Abschnitt 3.19
beschrieben, dem Parameter
d
wird der Wert
6
zugewiesen. Da Soft-Errors sehr selten
vorkommen, wird die Wartezeit von bisher 2 sek auf 10 sek erhöht. Für Timing-Errors
bei Speicherelementen stand kein Modell zu Verfügung.
Auÿerdem wurde die Reward-Funktion vereinfacht. Da die Frequenz immer vom jeweiligen Core vorgeben wird, braucht diese nicht mehr berücksichtigt werden. Ein Notfallverhalten ist, wie bei einem unerwarteten Temperaturanstieg, bei Soft-Errors nur schwer
zu formulieren, da hierfür der Neutronenuÿ gemessen werden müsste. Allerdings ist ein
plötzlicher Anstieg des Neutronenusses nicht sehr realistisch. Auf diesen Fall kann nur
Kapitel 5 Evaluierung des XCS
65
Abbildung 5.13: Spannungsänderung durch den XCS bei einem Cache
mit Neulernen reagiert werden. Die Reward-Funktion beschreibt sich deshalb mit:
R(f, p, v) =
mit
1−
p
∗ w2 + rel(v, f ) ∗ w3

0 falls Soft-Error
rel(f, v) =
1 sonst
pmax
(5.6)
In Abbildung 5.13 ist das Ergebnis nach dem Lernen zu sehen. In der Abbildung wird alle 20 Sekunden eine neue Frequenz-/Spannungskombination ausgewählt. Danach soll der
XCS die Spannung entsprechend anpassen. Die vom XCS gewählte Spannung bleibt 20
sek. eingestellt. Dieser Vorgang wird dann dreimal wiederholt. Die zufällig gewählten Frequenzen/Spannungen sind: 500MHz/0,8V, 750MHz/1,2V, 1750MHz/1,1V und 2000MHz/1,3V. Der XCS stellt immer die Spannung auf 1V ein. Ab einer Spannung von 1V sind
Soft-Errors sehr unwahrscheinlich. In der Realität könnte dann der Ablauf folgendermaÿen aussehen. Die AEs der Cores teilen den AEs der Caches die ausgewählte Frequenz
mit. Daraufhin stellen die AEs die entsprechende Spannung auf den Caches ein.
Kapitel 5 Evaluierung des XCS
66
5.9 Zusammenfassung
Die hier beschriebenen Tests konnten auch für andere Situationen reproduziert werden.
In der Regel entscheidet sich der XCS immer für die optimale Einstellung. Falls der XCS
nicht die optimale Einstellung ndet, dann ist zumindest die vorgenommene Einstellung
immer eine sehr gute. Diese Fälle kommen allerdings sehr selten vor. Für ein erfolgreiches Lernen ist es zwingend notwendig, alle möglichen Kombinationen von Spannung,
Frequenz und Temperatur dem XCS als Situation zu liefern. Kann dies nicht realisiert
werden, dann wird der XCS sehr schlechte Ergebnisse produzieren.
Die Versuche zeigen, dass der XCS in der Lage ist ein SoC zu steuern. Abschnitt 5.4 und
5.6 zeigt, dass durch die Skalierung der Reward-Funktion mit den Gewichten verschiedene
optimale Betriebspunkte gefunden werden können. Durch erweitern der Reward-Funktion
in Abschnitt 5.5 war es auch möglich den XCS ein Verhalten lernen zu lassen, falls die
Temperatur plötzlich ansteigt. Mit kleinen Änderungen in der Reward-Funktion können
auch verschiedene Optimierungsziele erreicht werden. In Abschnitt 5.7 war dies an der
Minimierung der Wartezeit eines Prozesses zu sehen. Genauso konnte der XCS auch
Speicher unter Einwirkung von Soft-Errors optimieren. Diese ganzen Tests zeigten, dass
der XCS ein sehr exibles Werkzeug zum Lösen solcher Probleme ist. Das Hauptproblem
ist allerdings die lange Lernzeit. Gerade dann wenn mit einer leeren Population gestartet
wird.
Kapitel 6
Zusammenfassung und Diskussion
6.1 Zusammenfassung
In dieser Arbeit wurden die Einsatzmöglichkeiten des Learning-Classier-System XCS
zur Kontrollierung eines SoCs gezeigt. Die Steuerungsmöglichkeiten des XCS waren dabei die Parameter Spannung und Frequenz. Damit die Evaluierung durchgeführt werden
konnte, ist eine Simulationumgebung zur Modellierung eines SoC entwickelt worden. Die
Simulationsumgebung umfaÿt die Modellierung von Temperatur, elektrische Leistung,
Timing-Errors und Soft-Errors. Für die Temperaturberechnung ist der Temperatursimulator HotSpot zum Einsatz gekommen. Für die Leistungsaufnahme wurden jeweils
ein statisches und ein dynamisches Verlustleistungsmodell vorgestellt und implementiert.
Die vier Gröÿen Spannung, Frequenz, Leistung und Temperatur sind hauptverantwortlich dafür, ob ein Chip fehlerfrei arbeitet. Sie bilden die Ursachen für die drei vorgestellen
Fehlertypen. Dabei handelt es sich um
1. Timing-Errors,
2. Soft-Errors,
3. Hard-Errors.
Die Ursachen dieser Fehler beschrieben worden. Die Modelle wurden mithilfe der Simulationsbibliothek asoc-sim implementiert. Mit diesen Modellen konnte ein Testsystem
konguriert werden, um die Evaluierung des XCS durchzuführen. Bei dem System handelt es sich um den Quad-Core Prozessor Opteron (Barcelona). Mithilfe von vier kleinen
Trace-Files konnten Beispielprogramme simuliert werden, dabei handelt es sich um eine
LR-Zerlegung, Matrix-Multiplikation, DualCore-Anwendung und einen Video-Stream.
Kapitel 6 Zusammenfassung und Diskussion
68
In Folge der Evaluierung wurde sowohl eine mögliche Umgebungsbeschreibung für den
XCS vorgestellt, als auch ein mögliches Reinforcement-Programm. Weiter konnte gezeigt
werden, dass der XCS damit optimale Betriebspunkte nden kann. Der XCS ist ebenfalls
in der Lage äuÿere Einüÿe wie das Ansteigen der Temperatur zu lernen. Falls die initialen
Classier zu der Umgebung passen, dann kann der XCS auch ohne Einsatz des GAs gute
Ergebnisse liefern. Bei der Steuerung von Speicherelementen unter Einuÿ von SoftErrors zeigte der XCS gute Ergebnisse.
6.2 Diskussion und Ausblick
Wie gezeigt wurde, kann der XCS einen SoC optimal einstellen. Allerdings sind die Lernzeiten recht lange. Dies liegt vorallem daran, dass die Temperatur auf Veränderungen
sehr träge reagiert. Damit aber zwei Einstellungen miteinander verglichen werden können, muÿ solange gewartet werden, bis sie einen gewissen Sättigungspunkt erreicht. Neben
der Temperatur sollte auch die Leistungsaufnahme nicht zu stark schwanken. Diese Wartezeit führt zu einer enorm langen Lernzeit. Ein anderer Punkt ist, dass das System in
der Lernphase in möglichst alle Zustände gebracht werden muÿ. Wenn dies nicht ermöglicht werden kann, wird der XCS keine guten Ergebnisse liefern. Die Arbeit mit dem
XCS hat auÿerdem gezeigt, dass es sehr schwierig ist, überhaupt eine funktionierende
Problembeschreibung zu nden. Um die Komplexität zu reduzieren, sollte jede FE ihre
Classier selber verwalten. Ingesamt gesehen konnte der XCS die gestellten Aufgaben
gut bewältigen. Damit die Lernzeit beschleunigt werden kann, ist vorallem eine kompaktere Umgebungsbeschreibung wichtig. Das bedeutet kurze Bedingungen mit wenigen
Aktionen. Dadurch sollte sich die Lernzeit sehr verkürzen.
Die Simulation selber sollte weiter verbessert werden. Gerade die Schätzung der Verlustleistung und Modellierung von Timing-Errors ist äuÿerst komplex und schwierig. Die
Simulation von Soft-Errors in kombinatorischer Logik stellt eine weitere Herausforderung
dar.
Anhang A
Wichtige Herleitungen
A.1 Dynamische Verlustleistung
Zur Herleitung (aus [27]) der dynamischen Verlustleistung in einem Inverter wird folgende Annahme gemacht: die auf- und absteigende Schaltzeit ist sehr viel kleiner als die
Taktperiode und das Eingangssignal ist quadratisch mit der Taktfrequenz
fp =
1
.
tp
Die durchschnittliche Verlustleistung errechnet sich dann durch
1
Pd =
tp
tZp /2
0
dabei ist
in
Ztp
1
in (t)Vout dt +
tp
ip (t) (VDD − Vout ) dt,
tp /2
der transiente Strom des n-Mos Elements und
einen Takt und mit
IDsat (t) = CL fVo ut /dt
CL
Pd =
tp
=
VZDD
CL
Vout dVout +
tp
0
2
CL VDD
tp
2
= CL VDD
fp
(A.1)
ip
des p-Mos Elements. Für
ergibt sich:
Z0
(VDD − Vout ) d (VDD − Vout )
(A.2)
VDD
(A.3)
(A.4)
Anhang A Wichtige Herleitungen
70
Abbildung A.1: Zeiten bei Schaltvorgang in einem Transitor nach [27]
A.2 Schaltzeit eines Inverters
In [27] wird ein analytisches Modell vorgestellt mit dessen Hilfe sich die Verzögerungszeit
in Abhängigkeit von der Spannung berechnen läÿt. Das Modell beschreibt die Verzögerungszeit eines Inverters. Die Schaltgeschwindigkeit eines CMOS-Gates wird dabei von
der Lade- und Entladezeit der Kapazität abhänig gemacht, wobei in drei Zeiten unterschieden wird:
1.
tr
beschreibt die Zeit, die das Ausgangssignal eines Transistors benötigt, um von
10%
2.
tf
auf
90%
seines stationären Wertes anzusteigen.
beschreibt die Zeit, die das Ausgangssignal eines Transistors benötigt, um von
90%
auf
10%
seines stationären Wertes abzufallen.
In Abbildung A.1 wird der Schaltvorgang eines Inverters verdeutlicht. Sobald sich das
Ausgangssignal verändert, fängt die nachfolgende Kapzität an sich zu laden. Der Verlauf
des ieÿenden Entladestroms am NMOS-Transistor wird in Abbildung A.2 dargestellt.
Anhang A Wichtige Herleitungen
71
Abbildung A.2: Stromstärke in Abhängigkeit der Ausgangsspannung nach [27]
Berechnung der Zeit für einen Signalabfall bei einem Inverter
Aus dem oben beschriebenen Schaltverhalten lassen sich zwei Annahmen bzgl. der Beschreibung der Fallzeit des Ausgangssignals ableiten:
1.
tf 1
ist die Zeit das die Ausgangsspannung von
0.9VDD
2.
tf 2
ist die Zeit das die Ausgangsspannung von
VDD − Vtn
Vtn
Dabei ist
auf
VDD − Vtn
abfällt.
0.1VDD
abfällt.
auf
die Schwellwertspannung des NMOS-Transitors. Solange
Vout > VDD − Vtn
ist, verhält sich der Entladestrom konstant, da er im Sättigungsbereich arbeitet. Dies
führt zu folgendem Ansatz:
Dabei ist
β
tf 1
(A.5)
t = t1
für den Zeitpunkt an dem
der Steilheitskoezient. Setzt man nun
Vout = 0.9VDD
läÿt sich
CL dVout βn
+
(VDD − Vtn )2 = 0.
dt
2
ist, und
t = t2
als den Zeitpunkt an dem
Vout = VDD − Vtn
erreicht, dann
beschreiben mit:
tf 1
Z 0.9VDD
2CL
=
dVout
βn (VDD − Vtn )2 VDD −Vtn
2CL (Vtn − 0.9VDD )
=
βn (VDD − Vtn )2
(A.6)
(A.7)
Anhang A Wichtige Herleitungen
72
Wenn der NMOS-Transitor des Inverters in seinem linearen Bereich arbeitet, ist der
Entladestrom nicht länger konstant. Daher läÿt sich die Entladezeit tf 2 von
nach
0.1VDD
beschreiben mit:
tf 2
2CL
=
βn (VDD − Vtn )2
=
mit
n=
(VDD − V tn)
Z
VDD −V tn
0.1VDD
dVout
2
Vout
2(VDD −Vtn ) −
(A.8)
Vout
CL
ln (19 − 20n)
βn VDD (1 − n)
(A.9)
Vtn
VDD .
Zusammen ergibt sich die gesamte Fallzeit durch
tf = tf 1 + tf 2
Die Herleitung von
tr
2CL
=
βn VDD (1 − n)
ist analog zu
tf .
(n − 0.1) 1
+ ln (19 − 20n) .
(1 − n)
2
(A.10)
Anhang B
Parameter XCS
B.1 Die Parameter des XCS im Überblick
Der XCS kann über eine ganze Reihe von Parametern gesteuert werden, um Einuÿ auf
den Lernprozess nehmen zu können. Diese Parameter können in der Orgrinalimplementierung von Butz durch eine Kongurationsdatei eingestellt werden. Durch die Vielzahl
der Parameter werden im folgenden alle diese Parameter einmal aufgeführt. Diese Liste
stammt aus [4] und wurde durch zusätzliche Erklärungen erweitert.
1.
N
2.
β
3.
α, 0
4.
γ
beschreibt die maximale Gröÿe einer Population.
ist die Lernrate für
und
v
ρ, , F
as.
werden für die Berechnungen der Fitness eines Classiers benutzt.
wird bei Multistep Problemen verwendet, um diesen Faktor wird die Belohnungs-
vorhersage der Classier in
5.
und
θGA
χ
7.
θsub
vermindert.
beschränkt den GA. Falls die durschnittliche Zeit, seit der letzten Benutzung
des GA, gröÿer ist als
6.
[A]−1
θGA ,
dann wird der GA erneut ausgeführt.
ist Wahrscheinlickeit, dass ein Crossover im GA stattndet.
die Vereinigungsschranke: die Erfahrung eines Classiers muÿ mindestens diese
Schranke überschreiten, damit er mit einem anderen Classier vereinigt werden
kann.
8.
P] :
mit dieser Wahrscheinlichkeit wird an jeder Stelle der Bedingung des neuen
Classiers ein Don't-Care-Symbol gesetzt, falls
9.
pI , I
und
FI
θmna
nicht erfüllt ist
sind die initialen Werte eines neu erstellten Classiers.
Anhang B Parameter XCS
10.
pexp
11.
θmna
74
ist die Wahrscheinlichkeit, dass eine zufällige Aktion ausgewählt wird.
ist die minimale Anzahl von Aktionen, die im Match-Set vorhanden sein
müssen. Ansonsten wird ein neuer Classier (der die aktuelle Situation überdeckt)
erstellt, der sich aber von allen anderen in der Population unterscheiden muÿ.
12.
doGASubsumption
gibt an, ob Kinder eines Classiers mit ihren Eltern vereinigt
werden können.
13.
doActionSetSubsumption gibt an, mit dessen Vereinigung der Classier im ActionSet aktiviert werden kann.
Literaturverzeichnis
[1] AMD
White-Paper:
Power
Consumption,
www.amd.com/us-
en/assets/content_type/DownloadableAssets/43761A_ACP_WPv7.pdf,
Stand:
13 Januar 2008
[2] A. Bernauer et al.:
Architecture and Design Methodology for Autonomic Systems
on Chip (ASoC) http://www-ti.informatik.uni-tuebingen.de/~bernauer/asoc/, 28.
Dezember 2007
[3] R. Blish, N. Durrant:
Semiconductor Conductor Device Reliability Failure Models,
International Sematech, Mai,2000.
[4] M. Butz, S.W. Wilson:
An Algorithmic Description of XCS, Advances in Learning
Classifer Systems: Proc. 3rd Int Workshop, P. L. Lanzi, W. Stolzmann, S. W.
Wilson, editors, Springer-Verlag Berlin, 253-272, 2001.
[5] M. Butz, T. Kovacs, P.L. Lanzi:
in XCS,
Toward a Theory of Generalization and Learning
IEEE Transactions on Evolutionary Computation, Vol. 8, No.1, Februar
2004.
[6] J. A. Butts, G. S. Sohi:
A Static Power Model for Architects,
Proceedings of the
33rd Annual International Symposium on Microarchitecture (Micro-33), Dezember
2000.
[7] F. Delattre:
AMD K10 architecture, http://www.behardware.com/art/imprimer/682/,
13. September, 2007.
Intel Pentium M Processor Power Estimation, Budgeting, Optimization and Validation, Intel Technology Journal, 7(2), Mai 2003.
[8] D. Genossar et al.:
[9] H-O. Georggii:
Stochastik - Einführung in die Wahrscheinlichkeitstheorie und Sta-
tistik, Walter de Gruyter GmbH & Co, Berlin, 2004.
[10] A. Gold, A. Kos:
Temperature Inuence on Power Consumption and Time Delay,
Department of Electronics, Cracow, Poland, 2003.
Literaturverzeichnis
76
Neutron soft error rate measurements in a 90-nm CMOS process and scaling trends in SRAM from 0.25-um to 90-nm generation, Intel Corp.,
[11] P. Hazucha et al. :
Hillsboro, OR, USA, 2003.
[12] P. Hazucha , C. Svensson:
Impact of CMOS Technology Scaling on the Atmospheric
Neutron Soft Error Rate, IEEE Transactions on Nuclear Science, 47(6), Dezember
2000.
[13] J.H. Holland: Adaptation. In R. Rosen & F.M. Snell (eds), Progress in Theoretical
Biology, 4. Plenum, 1976.
[14] W. Huang, M. R. Stan, K. Skadron, K. Sankaranarayanan, S. Ghosh, and S. Velusamy:
Compact Thermal Modeling for Temperature-Aware Design, Proceedings of
the 41st Design Automation Conference, Juni 2004.
[15]
Failure Mechanisms and Models or Semiconductor Devices,
JEDEC Publication,
JEP122C, März, 2006.
[16] T. Juhnke:
Die Soft-Error-Rate von Submikrometer-CMOS-Logikschaltungen, Dis-
seration, TU Berlin, 2003.
[17] S. Lee, S. Song, V. Au, and K. Moran:
Constricting/spreading resistance model for
electronics packaging, Proc. AJTEC, März 1995, 199-206.
[18] G. Lipsa, A. Herkersdorf, W. Rosenstiel, O. Bringmann and W. Stechele:
Towards a
Frame- work and a Design Methodology for Autonomic SoC, in: 2nd ICAC (2005).
[19] R. Mastipuram, E.C. Wee:
Soft errors' impact on system reliability, Cypress Semi-
conductor, 2004.
Delphi: The development of libraries of physical models of
electronic components for an integrated design environment, Proc. Conf. Int. Elec.
[20] H. Rosten, C. Lasance:
Pack. Soc., 1994.
[21] B.
Sander:
Barcelona: AMD's Next-Generation Quad-Core Microprocessor,
developer.amd.com/assets/CART2007-Barcelona.pdf, 11.01.08.
Historical trend in alphaparticle induced soft error rates of the alpha micro-processor. In Proc. of the Annual
[22] N. Seifert, D. Moyer, N. Leland, and R. Hokinson:
International Reliability Physics Symposium, 2001.
Literaturverzeichnis
77
[23] K. Skadron, K. Sankaranarayanan, S. Velusamy, D. Tarjan, M. R. Stan, and W.
Huang:
Temperature-aware microarchitecture: Modeling and implementation, ACM
Transactions on Architecture and Code Optimization, 1(1), 94-125, März 2004.
Modeling the Eect of Technology Trends on the Soft Error Rate of Combinational Logic, Proceedings of the International Conference on
[24] P. Shivakumar et al.:
Dependable Systems and Networks, Universität Texas und IBM Austin Research
Laboratory, Austin, 2002.
[25] J. Srinivasan, S. V. Adve, P. Bose, J. Rivers, C-K. Hu:
RAMP: A Model for
Reliability Aware MicroProcessor Design, IBM Research Report, Universität Illinois
und IBM T.J. Watson Research Center, 2003.
[26] http://www.tecchannel.de/server/prozessoren/450380/, Stand: 11.01.08
Principles of CMOS VLSI Design: A Systems Perspective (VLSI
Systems Series), Addison-Wesley, 2. Auage, 1993.
[27] N.H.E. Weste:
[28] S.W. Wilson:
Classier Systems and the Animat Problem, Machine Learning, 2(3),
199-228, 1987.
[29] S.W. Wilson:
Classier tness based on accuracy, Evolutionary Computation, 3(2),
149-175, 1995.
[30] S.W. Wilson:
Generalization in the XCS Classier System, Genetic Programming
1998: Proceedings of the Third Annual Conference, J. Koza et.al., (eds), San Francisco, Kalifornien, 1998.
[31] D. Zastrow:
Elektronik, Vieweg & Sohn Verlag, Wiesbaden, 2007.
[32] H. Yserentant:
Numerik 1, Skriptum, Tübingen, 2003
Herunterladen