DE19860062A1 - Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI - Google Patents
Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSIInfo
- Publication number
- DE19860062A1 DE19860062A1 DE19860062A DE19860062A DE19860062A1 DE 19860062 A1 DE19860062 A1 DE 19860062A1 DE 19860062 A DE19860062 A DE 19860062A DE 19860062 A DE19860062 A DE 19860062A DE 19860062 A1 DE19860062 A1 DE 19860062A1
- Authority
- DE
- Germany
- Prior art keywords
- variables
- functional unit
- operations
- input
- mapped
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/06—Power analysis or power optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Power Sources (AREA)
- Logic Circuits (AREA)
Description
Diese Erfindung bezieht sich auf die Reduktion des Lei
stungsverbrauchs für digitale VLST-Folgeschaltungen.
Genauer bezieht sich diese Erfindung auf ein System und
auf ein Verfahren zum Reduzieren des Leistungsverbrauchs
unter Verwendung von Verfahren der erzwungenen Register
teilung. Diese Erfindung ist in einem System der erzwun
genen Registerteilung und in Verfahren zum Reduzieren des
Leistungsverbrauchs in einer Folgeschaltung unter Verwen
dung der erzwungenen Registerteilung ausgeführt.
In VLSI-Schaltungen wird die Leistungsdissipation häufig
von der dynamischen Komponente dominiert, die jedesmal
erlitten wird, wenn Signale in einer Schaltung einen
Logikübergang erfahren. In der Praxis ist ein großer
Bruchteil solcher Übergänge, die während des Betriebs
üblicherweise verwendeter Schaltungen erlitten werden,
unnötig. Solche Übergänge haben keinen Einfluß auf das
von der Schaltung berechnete Ergebnis.
Sinnvollerweise kann gefolgert werden, daß möglicherweise
nicht alle Teile einer Schaltung während jedes Taktzyklus
zu arbeiten brauchen. Einige Komponenten können in eini
gen Taktzyklen im Leerlauf sein. Unter Anerkennung dieser
Tatsache wurden mehrere leistungsarme Konstruktionsver
fahren vorgeschlagen, die darauf beruhen, daß unnötige
Signalübergänge unterdrückt oder beseitigt werden. Im
allgemeinen wird zur Bezeichnung solcher Verfahren der
Begriff Power Management verwendet. Die Anwendung des
Power Managements auf eine Konstruktion umfaßt zwei
Schritte:
- - Identifizieren der Leerlaufzustände für verschie dene Teile der Schaltung.
- - Neukonstruieren der Schaltung zum Beseitigen der Schaltaktivität in den Leerlaufkomponenten, somit Vermeiden unnötiger Leistungsdissipation in diesen Teilen.
Das Power Management wird häufig von Konstrukteuren
energiesparender Systeme entwickelt und ist vielleicht
eines der am häufigsten verwendeten leistungsarmen Kon
struktionsverfahren. Siehe J. Rabaey und M. Pedram
(Herausgeber), Low Power Design Methodologies., Kluwer
Academic Publishers, Norwell, MA, (1996). Ebenso ist es
wünschenswert, ein in automatische Synthese-Hilfsmittel
integriertes Power Management zu besitzen.
Viele moderne Mikroprozessoren wenden die Strategie an,
den Takteingang mit Registern und anderen Schaltungsblöc
ken zu verknüpfen, um unnötige Übergänge in dem Taktsi
gnal sowie in dem betrachteten Schaltungsblock zu unter
drücken. Siehe A. Correale, "Overview of power minimiza
tion techniques employed in the IBM PowerPC 4xx embedded
processors", Proc. Int. Symp. Low Power Design, S. 75-80
(Apr. 1995). Automatische Syntheseverfahren zum Anwenden
der Taktverknüpfung und zum Maximieren ihrer Effizienz
sind ebenfalls bekannt. Siehe G. Tellez, A. Farrahi und
M. Sarrafzadeh, "Activity driven clock design for low
power circuits.", Proc. Int. Conf. Computer-Aided Design,
S. 62-65, (Nov. 1995) und L. Benini, P. Siegel und G.
DeMicheli, "Saving power by synthesizing gated clocks for
sequential circuits", IEEE Design & Test of Computers,
S. 32-41, (Winter 1994).
Unlängst wurden höhere Syntheseverfahren für das Power
Management vorgeschlagen. Siehe E. Musoll und J. Corta
della, "High-level synthesis techniques for reducing the
activity of functional units", Proc. Int. Symp. Low Power
Design, S. 99-104, (Apr. 1995); J. Monteiro, S. Devadas,
P. Ashar und A. Mauskar, "Scheduling techniques to enable
power management", Proc. Design Automation Conf.,
S. 349-352 (Juni 1996) und A. Raghunathan, S. Dey, N. K.
Jha und K. Wakabayashi, "Power management techniques for
control-flow intensive designs", Proc. Design Automation
Conf. S. 429-434 (Juni 1997). Ein auf das Maximieren der
Leerlaufzeiten für die Funktionseinheiten gerichteter
Planungsalgorithmus wurde in J. Monteiro, S. Devadas, P.
Ashar und A. Mauskar, "Scheduling techniques to enable
power management", Proc. Design Automation Conf.,
S. 349-352 (Juni 1996) vorgestellt.
Ein Controller-Neuspezifizierungsverfahren auf der Grund
lage der Neukonstruktion der Controller-Logik zum Redu
zieren der Aktivität in den Komponenten des Datenpfads
wurde in A. Raghunathan, S. Dey, N. K. Jha und K. Wakaba
yashi, "Power management techniques for control-flow
intensive designs", Proc. Design Automation Conf.,
S. 429-434 (Juni 1997) vorgestellt. Verfahren, die auf
das Maximieren der "Schlafzeiten" der Ablageelemente wie
etwa der Register und der Speicher gerichtet sind, wurden
in A. Farrahi, G. Tellez und M. Sarrafzadeh, "Memory
segmentation to exploit sleep mode operation", Proc.
Design Automation Conf., S. 36-41 (Juni 1995) vorge
stellt. Auf der Logikebene wurden zwei erfolgreiche Power
Management-Verfahren auf der Grundlage der geschützten
Bewertung und der Vorausberechnung vorgestellt. Siehe V.
Tiwari und S. Malik, "Guarded evaluation: Pushing power
management to logic level synthesis design", Proc. Int.
Symp. Low Power Design, S. 221-226 (Apr. 1995) und M.
Aldina, J. Monteiro, S. Devadas, A. Gosh und M. Pa
paefthymiou, "Precomputation based sequential logic
optimization for low power", IEEE Trans. VLSI Systems,
Bd. 2, S. 426-436.
Die geschützte Bewertung identifiziert Logikkegel, die
bei bestimmten Eingangszuständen abgeschaltet werden
können. Diese Logikkegel werden durch Zwischenspeicher
"geschützt", die gesperrt werden, wobei somit verhindert
wird, daß der Logikkegel Leistung verbraucht, wenn der
Ausgang des Kegels das Ausgangssignal der Schaltung nicht
beeinflußt. Bei der Vorausberechnung wird zu der ur
sprünglichen Schaltung ein einfaches, die Vorausberech
nungsschaltung genanntes Schaltnetz hinzugefügt. Bei
gewissen Eingangszuständen schaltet die Vorausberech
nungslogik die ursprüngliche Schaltung ab und berechnet
die Ausgangssignale selbst.
Zum Reduzieren des Leistungsverbrauchs in einer Schaltung
durch Beseitigen unnötiger Logikübergänge bei verschiede
nen Signalen in der Schaltung wurden mehrere herkömmliche
Verfahren verwendet. Zur Bezugnahme auf diese Verfahren
insgesamt wird der Begriff "Power Management" verwendet.
Die höhere Synthese (die auch Verhaltenssynthese genannt
wird) setzt eine Verhaltensbeschreibung einer VLSI-Schal
tung in eine Registerübertragungsebenen-Strukturverwirk
lichung (RTL-Strukturverwirklichung) um, die als eine
Verbindung von Makroblöcken (z. B. von Funktionseinhei
ten, Registern, Multiplexern, Bussen, Speicherblöcken
usw.) und einer zufälligen Logik beschrieben wird.
Eine Verhaltensbeschreibung einer Folgeschaltung enthält
eine algorithmische Spezifikation ihrer Funktionalität.
Es ist möglich, daß eine solche Beschreibung fast keine
Informationen über das zyklenweise Verhalten der Schal
tung oder ihrer Strukturverwirklichung enthält. Typi
scherweise kompilieren die Hilfsmittel für die Verhal
tenssynthese eine Verhaltensbeschreibung in ein geeigne
tes Zwischenformat wie etwa in einen Steuerdaten-Ablauf
plan (CDFG). Die Vertizes in der CDFG stellen verschie
dene Operationen der Verhaltensbeschreibung dar. Um
Datenabhängigkeiten zwischen Operationen und dem Steuer
ablauf darzustellen, werden die Daten- und Steuersignal
flanken verwendet.
Typischerweise führen die Hilfsmittel für die höhere
Synthese eine oder mehrere der folgenden Aufgaben aus:
Transformation, Modulauswahl, Taktauswahl, Planung,
Betriebsmittelzuordnung und -zuweisung (auch als Be
triebsmittel- oder Hardwareteilung bezeichnet). Die
Planung bestimmt das zyklenweise Verhalten des Entwurfs
dadurch, daß sie jede Operation einem oder mehreren
Taktzyklen oder Steuerschritten zuweist. Die Zuordnung
entscheidet die Anzahl der Hardware-Betriebsmittel jedes
Typs, die zum Verwirklichen der Verhaltensbeschreibung
verwendet werden. Die Zuweisung bezieht sich auf das
Binden jeder Variablen (und der entsprechenden Operation)
an eines der zugeordneten Register (und an die entspre
chenden Funktionseinheiten).
Die Registerteilung oder -zuweisung bezieht sich auf ein
Verfahren zum Abbilden jeder Variablen in der Verhaltens
beschreibung einer Folgeschaltung auf ein Register in
ihrer RTL-Verwirklichung. Ein umfassender Überblick über
höhere Syntheseverfahren findet sich in R. Camposano und
W. Wolf, High-Level VLSI Synthesis. Kluwer Academic
Publishers, Norwell, MA, 1991 und D. D. Galski, N. D.
Dutt, A. C.-H. Wu und S. Y.-L. Lin, High-level Synthesis:
Introduction to Chip and System Design. Kluwer Academic
Publishers, Norwell, MA, 1992.
Es wurden Vorgehensweisen des automatischen Folgeschal
tungs-Power Managements vorgeschlagen, die die folgenden
Verfahren verwenden:
- - Taktverknüpfung: Verknüpfen von Taktsignalen, um die in dem Taktnetz und in den Registern verbrauchte Leistung zu sparen, L. Benini, P. Siegel und G. DeMi cheli, "Saving power by synthesizing gated clocks for sequential circuits", IEEE Design & Test of Compu ters, S. 32-41 (Winter 1994) und L. Benini und G. De- Micheli, "Automatic synthesis of gated-clock sequen tial circuits", IEEE Trans. Computer-Aided Design, Bd. 15, S. 630-643 (Juni 1996).
- - Vorausberechnung: Sperren von Registern gegenüber dem Laden, um den Leistungsverbrauch in den Registern und in dem Schaltnetz, in das die Register einspei sen, einzusparen, M. Aldina, J. Monteiro, S. Devadas, A. Ghosh und M. Papaefthymiou, "Precomputation-based sequential logic optimization for low power", IEEE Trans. VLSI Systems, Bd. 2, S. 426-436 (Dez. 1994).
- - Operandenisolation: Das Einsetzen transparenter Zwischenspeicher an den Eingängen eines eingebetteten Schaltnetzblocks sowie einer zusätzlichen Steuer schaltungsanordnung zum Erfassen von Leerlaufzustän den für den Logikblock 16, 7, 8]. Die Ausgänge der Steuerschaltungsanordnung werden entsprechend verwen det, um die Zwischenspeicher an den Eingängen des Lo gikblocks gegenüber den sich ändernden Werten zu sperren. Somit werden die Eingangswerte der vorange henden Zyklen an den Eingängen des betrachteten Lo gikblocks erhalten, was die unnötige Leistungsdissi pation beseitigt.
- - Controllergesteuertes Power Management: Neukon struieren der Steuerlogik einer Schaltung in der Weise, daß der Leistungsverbrauch infolge unnötiger Schaltaktivität in dem Datenpfad minimiert wird, A. Raghunathan, S. Dey und N. K. Jha, "Power management techniques for control-flow ,p intensive designs", Proc. Design Automation Conf., S. 429-434 (Juni 1997).
Die ersten zwei oben diskutierten Verfahren, die Taktver
knüpfung und die Vorausberechnung, sind nur auf Taktnetze
und auf Logikblöcke anwendbar, an deren Eingängen sich
Register befinden. Somit können sie nicht verwendet
werden, um die Leistung in eingebetteten Logikblöcken,
d. h. in Logikblöcken, deren Eingänge mit den Ausgängen
anderer Schaltnetzblöcke verbunden sind, einzusparen.
Das dritte und das vierte Verfahren, die Operandenisola
tion und das controllergesteuerte Power Management,
können auf beliebige eingebettete Logikblöcke angewendet
werden. Bei der Verwendung des Operandenisolations-Ver
fahrens und des controllergesteuerten Power Management-Ver
fahrens, die der vorliegenden Erfindung näher als die
anderen obenerwähnten Verfahren stehen, bestehen jedoch
mehrere Nachteile.
In der Praxis kann die Operandenisolation infolge der
folgenden Ursachen unwirksam sein:
- - Ein Überfluß kleinerer Komponenten wie Multiple xer dominiert den Leistungsverbrauch, während die Funktionseinheiten für einen kleinen Teil der Gesamt leistung verantwortlich sein können. Siehe A. Raghu nathan, S. Dey und N. K. Jha, "Glitch analysis and reduction in register-transfer-level power optimiza tion", in Proc. Design Automation Conf., S. 331-336, Juni 1996. Der zusätzliche Leistungsbedarf infolge des Einsetzens transparenter Zwischenspeicher ist vergleichbar mit den Leistungseinsparungen, die er halten werden, wenn das Power Management auf Teil schaltungen wie etwa auf Multiplexernetze angewendet wird.
- - Die Signale, die die Leerlaufzustände für die verschiedenen Teilschaltungen erfassen, kommen typi scherweise (z. B. infolge der Anwesenheit verschach telter Bedingungsformen in jedem Controller-Zustand, wobei die Leerlaufzustände von den Ausgangssignalen der Komparatoren von dem Datenpfad abhängen können) spät an. Somit werden die Zeitgebungs-Nebenbedingun gen, die zum Anwenden der herkömmlichen Power Manage ment-Verfahren auferlegt werden müssen (das Freigabe signal für die transparenten Zwischenspeicher muß ausgeregelt sein, bevor sich seine Dateneingangs signale ändern können), häufig nicht erfüllt.
- - Um maximale Leistungseinsparungen zu erhalten, muß die Anwesenheit einer merklichen Störimpulsakti vität in den Steuersignalen sowie in den Datenpfadsi gnalen in Rechnung gestellt werden, Siehe A. Raghu nathan, S. Dey und N. K. Jha, "Glitch analysis and reduction in register-transfer-level power optimiza tion", in Proc. Design Automation Conf., S. 331-336, Juni 1996.
In gewissem Umfang mildert das controllergesteuerte Power
Management die obigen Probleme, indem es das Hinzufügen
einer zusätzlichen Schaltungsanordnung wie etwa der
transparenten Zwischenspeicher zu der Konstruktion ver
meidet (nur der Controller-Teil der Schaltung wird neu
konstruiert) und potentielle negative Wirkungen wie etwa
die Erhöhung der Schaltungsverzögerung und der Störim
pulsleistung während des Power Management-Verfahrens in
Rechnung stellt. Siehe A. Raghunathan, S. Dey und N. K.
Jha, "Power management techniques for control-flow ,p
intensive designs", in Proc. Design Automation Conf.,
S. 429-434, Juni 1997.
Jedoch kann das controllergesteuerte Power Management
(ebenso wie die meisten anderen bekannten Power Manage
ment-Verfahren) nur auf Schaltungen angewendet werden,
deren Strukturdarstellung gegeben oder vorausgesetzt ist.
Somit beschränkt die existierende Struktur der Schaltung
den Umfang, in dem sie die Leistung reduzieren können.
Die Struktur der Schaltung, die von Hand festgelegt oder
durch eine höhere Synthese (ohne Betrachtung des Power
Managements) bestimmt worden sein kann, kann unter dem
Gesichtspunkt des Power Managements wesentlich unter der
optimalen liegen.
Außerdem sind datendominierte Verhaltensbeschreibungen
üblicherweise in Signal- und Bildverarbeitungsanwendungen
anzutreffen, wobei sie durch das Übergewicht der Arithme
tikoperationen charakterisiert sind. In einem solchen
Fall wurde beobachtet, daß der Leistungsverbrauch der
Funktionseinheiten den Gesamtleistungsverbrauch dieser
Schaltungen dominiert, wobei ein wesentlicher Bruchteil
dieser Leistung verbraucht wird, wenn die Funktionsein
heiten keine nutzbaren Ausgangssignale erzeugen. Die
herkömmlichen Power Management-Verfahren, von denen viele
die Anordnung transparenter Zwischenspeicher an den
Eingängen der Funktionseinheiten umfassen, können die
Schaltungsverzögerungen entlang des kritischen Pfads
erhöhen. Somit ist es möglich, daß sie keine akzeptablen
Lösungen für Konstruktionen darstellen, die starken
Leistungszwängen unterliegen.
Eine Aufgabe dieser Erfindung besteht im Lösen der oben
erwähnten Probleme. Genauer besteht eine Aufgabe dieser
Erfindung in der Schaffung eines neuen Verfahrens, das
die Beziehung zwischen der Aufgabe der Registerteilung in
der höheren Synthese und den von den Funktionseinheiten
in der RTL-Verwirklichung ausgeführten unnötigen (uner
wünschten) Operationen auswertet.
Die vorliegende Erfindung ist auf die Verbesserung der
Möglichkeiten des Power Managements während der höheren
Synthese von Verhaltensbeschreibungen gerichtet. Die
höhere Synthese ist das Verfahren des Kompilierens einer
Steuerdaten-Ablaufplan-Beschreibung (CDFG-Beschreibung)
der Schaltung zu einer Registerübertragungsebenen-Ver
wirklichung (RTL-Verwirklichung).
Zum Verwirklichen der Aufgaben dieser Erfindung wird ein
Verfahren zum Reduzieren des Leistungsverbrauchs in einer
Folgeschaltung geschaffen, die Funktionseinheiten ent
hält, wobei das Verfahren die Registerteilung und die
Multiplexer-Konfiguration umfaßt, wobei die Registertei
lung und die Multiplexer-Konfiguration die unnötige
Schaltaktivität in wenigstens einer Funktionseinheit
beseitigen.
Ein weiterer Aspekt dieser Erfindung ist ein Verfahren
zum Synthetisieren von Folgeschaltungen mit mehreren
Variablen, wobei das Verfahren das Verlängern der Lebens
dauer einer oder mehrerer der mehreren Variablen und das
Neukonfigurieren der Multiplexer auf der Grundlage der
Ergebnisse des früheren Schritts umfaßt. Weitere Verbes
serungen umfassen das Ausführen entweder des dynamischen
Neubindens von Registern oder des Verdoppelns von Regi
stern zum Vermeiden unnötiger Schaltoperationen, die von
einer Teilmenge der Variablen hervorgerufen werden, deren
Werte in mehr als einer Iteration erforderlich sind.
Ein nochmals weiterer Aspekt dieser Erfindung ist ein
Verfahren zum Synthetisieren von Folgeschaltungen, die
mehrere Funktionseinheiten, mehrere Operationen umfassen,
wobei jede Operation mit mehreren Eingangsvariablen
verknüpft ist, wobei das Verfahren das Berechnen der
Geburtszeit eines linken Eingangssignals einer nachfol
genden Operation, das Berechnen der Geburtszeit des
rechten Eingangssignals der nachfolgenden Operation, das
Einstellen der Todes zeit der Variablen auf das Maximum
der vorangehenden Ergebnisse, das Wiederholen der Berech
nungen für jede der mehreren mit einer Operation ver
knüpften Eingangsvariablen, das Wiederholen der Berech
nungen für die mehreren, auf eine Funktionseinheit abge
bildeten Operationen sowie weiter das Wiederholen der
Berechnungen für jede Funktionseinheit umfaßt.
Weitere Verbesserungen umfassen das Konfigurieren der
Multiplexer in der Weise, daß sie einige Eingangssignale
für den Zyklus wie in einem vorangehenden Zyklus auswäh
len, falls der Zyklus ein Leerlauf ist. Nochmals weitere
Verbesserungen umfassen das Identifizieren einer letzten,
auf eine Funktionseinheit abgebildeten Operation, das
Identifizieren einer ersten, auf eine Funktionseinheit
abgebildeten Operation, das Auswählen einer Eingangsva
riablen für die letzte Operation, das Identifizieren der
Geburtszeit eines linken Eingangssignals der letzten
Operation, das Identifizieren der Geburtszeit eines
rechten Eingangssignals der letzten Operation, das Be
stimmen, ob das Maximum der Ergebnisse der vorangehenden
zwei Schritte größer als die Geburtszeit der Eingangsva
riablen ist, das Austauschen der Variablenzuweisungen,
falls der erlittene Organisationsaufwand unter einem
vorgegebenen Schwellwert liegt, und falls der vorausge
hende Schritt wahr ist, das Speichern der Werte der
Eingangsvariablen in zusätzlichen Registern, falls der
erlittene Organisationsaufwand größer als ein vorgegebe
ner Schwellwert ist, das Wiederholen der Schritte für
alle auf eine Funktionseinheit abgebildeten Eingangsva
riablen und das Wiederholen für alle Funktionseinheiten.
Ein weiterer Aspekt dieser Erfindung ist ein System zum
Synthetisieren von Folgeschaltungen mit mehreren Varia
blen, wobei das System die Lebensdauer einer oder mehre
rer der mehreren Variablen verlängert, wobei es die
Multiplexer auf der Grundlage der verlängerten Lebens
dauer der Variablen neu konfiguriert. Weitere Verbesse
rungen umfassen ein System, wobei das System weiter
entweder das dynamische Neubinden der Register oder das
Verdoppeln der Register zum Vermeiden unnötiger Schalt
operationen ausführt, die durch eine Teilmenge der Varia
blen hervorgerufen werden, deren Werte in mehr als einer
Iteration erforderlich sind.
Die obigen Aufgaben und Vorteile der vorliegenden Erfin
dung werden deutlicher anhand der ausführlichen Beschrei
bung ihrer zweckmäßiger Ausführungen mit Bezug auf die
beigefügte Zeichnung, wobei:
Fig. 1 einen geplanten CDFG zeigt.
Fig. 2 einen Stromlaufplan zeigt, der die Schaltaktivität
für eine Konstruktion unter Verwendung von Verfahren des
Standes der Technik zeigt.
Fig. 3 einen Stromlaufplan zeigt, der die Schaltaktivität
für eine Konstruktion unter Verwendung der vorliegenden
Erfindung zeigt.
Fig. 4 Transformationen während dreier Iterationen der
Ausführung einer Folgekonstruktion zeigt.
Fig. 5 einen geplanten CDFG zum Veranschaulichen eines
weiteren Aspekts dieser Erfindung zeigt.
Fig. 6 links eine Funktionseinheit in einer Architektur
mit einem unvollkommenen Power Management und rechts eine
Funktionseinheit in einer Architektur mit vollkommenem
Power Management zeigt.
Fig. 7 die Operationen zeigt, die eine Funktionseinheit
fu während zweier Iterationen der Ausführung eines CDFG
ausführt.
Fig. 8 die Grundschritte des höheres Synthesesystems
unter Verwendung von Verfahren der vorliegenden Erfindung
zeigt.
Fig. 9 einen Pseudocode für ein Prüfverfahren gemäß der
vorliegenden Erfindung zeigt.
Fig. 10 einen Pseudocode für ein Verfahren zum Behandeln
von Abhängigkeiten zwischen den Iterationen gemäß der
vorliegenden Erfindung zeigt.
Fig. 11 einen Ablaufplan zeigt, der eine derzeitige
Ausführung der vorliegenden Erfindung zeigt.
Es wird eine Verhaltensbeschreibung einer Schaltung
betrachtet, bei der die Planung und die Betriebsmittel
teilung durch ein höheres Synthesehilfsmittel zum Erzeu
gen einer RTL-Verwirklichung ausgeführt worden sind. Es
wird eine Funktionseinheit in einer solchen RTL-Verwirk
lichung betrachtet. Diese Funktionseinheit wird während
der Steuerschritte (Taktzyklen) als aktiv bezeichnet, in
denen sie zum Ausführen einer Berechnung aus der Verhal
tensbeschreibung verwendet wird. Während der anderen
Steuerschritte ist sie im Leerlauf.
Obgleich eine Funktionseinheit während ihrer Leerlauf-Steuer
stufen keine Berechnung auszuführen braucht, können
sich die Werte der Eingangssignale in die Funktionsein
heit in der RTL-Verwirklichung ändern, was eine unnötige
Leistungsdissipation bewirkt. Es ist klar, daß die Art,
in der die Register geteilt werden, einen wesentlichen
Einfluß auf die unnötige Leistungsdissipation in den
Funktionseinheiten während ihrer Leerlaufzyklen hat.
Eine natürliche Fortsetzung der obigen Beobachtung ist
die Frage, ob ohne einen unangemessen hohen Organisati
onsaufwand zu erleiden in irgendeiner Weise erzwungen
werden kann, daß die Registerteilung ein besseres Power
Management für die Funktionseinheiten ermöglicht.
Die vorliegende Erfindung beruht auf der Einsicht, daß
die Registerteilung den Leistungsverbrauch beeinflußt.
Umfassend besteht das Verfahren aus zwei Schlüsselschrit
ten: Dem Verlängern der Lebensdauern der Variablen, um
sicherzustellen, daß die alten Operanden der Funktions
einheiten während einer hinreichenden Zeit am Leben sind,
sowie dem dynamischen Neubinden der Variablen zum Auflö
sen von Lebensdauerkonflikten zwischen Kopien der glei
chen Variablen in verschiedenen CDFG-Iterationen zwischen
den Iterationen. In einem solchen Fall bezieht sich eine
Iteration auf die Verarbeitung einer Menge von Eingangs
signalen durch die Verhaltensbeschreibung oder durch den
CDFG.
Es wird ein erzwungenes Registerteilungsverfahren ge
schaffen, das in existierende höhere Synthesesysteme
integriert werden kann, um Architekturen zu erzeugen,
deren Funktionseinheiten keine Leistung verschwenden.
Dieses Verfahren wurde in den Rahmen eines existierenden
höheren Leistungsoptimierungs-Synthesesystems integriert,
das Mehrfachdurchläufe, die Verkettung, Strukturpipeline-Funk
tionseinheiten und Schleifen in dem CDFG handhaben
kann und die Wirkungen der mehreren Verhaltenssynthese
aufgaben wie etwa der Funktionseinheitsauswahl (dem
Auswählen des Typs der Funktionseinheit für eine Opera
tion), der Planung, der Taktauswahl (der Auswahl der
Taktperiode), der Betriebsmittelzuordnung (dem Bestimmen
der Anzahl jedes Betriebsmitteltyps), der Betriebsmittel
teilung und der Skalierung der Speisespannung dynamisch
abwägen kann.
Experimentelle Ergebnisse zeigen eine bis zu zweifache
Reduktion der Leistung bei zusätzlichen Flächenbedarfen
von nicht mehr als 6,4% ohne irgendeine Funktionsminde
rung im Vergleich zu leistungsoptimierten Architekturen.
Die vorliegende Erfindung ergänzt bekannte Registertei
lungsverfahren für eine geringe Leistung wie etwa A.
Raghunathan und N. K. Jha "Behavioral synthesis for low
power" in Proc. Int. Conf., Computer Design, S. 255-270,
Okt. 1994, J. Chang und M. Pedram, "Register allocation
and binding for low power" in Proc. Design Automation
Conf., S. 29-35, Juni 1995 und C. H. Gebotys, "Low energy
memory and register allocation using network flow" in
Proc. Design Automation Cont. S. 435-440, die die Schalt
aktivität an dem Ausgang der Register während aktiver
Taktzyklen zu minimieren versuchen.
Die vorliegende Erfindung kann in Verbindung mit irgend
einem existierenden Verfahren der Registerteilung (das
kein Power Management betrachtet) verwendet werden.
Die vorliegende Erfindung tritt an die Stelle der Notwen
digkeit der Verwendung der Operandenisolation in Funkti
onseinheiten in der RTL-Verwirklichung. Sie setzt voraus,
daß die Multiplexer in dem Datenpfad entsprechend als ein
Nachverarbeitungsschritt unter Verwendung eines Verfah
rens wie etwa des controllergesteuerten Power Managements
konfiguriert werden. A. Raghunathan, S. Dey und N. K.
Jha, "Power management techniques for control-flow inten
sive designs", in Proc. Design Automation Conf.,
S. 429-434 (Juni 1997).
Der Rest der Diskussion ist wie folgt organisiert. Der
Abschnitt IVA weist nach, daß die Registerbindung (die
Zuweisung von Variablen an Register) eine wesentliche
Auswirkung auf die Möglichkeiten des Power Managements
haben kann, und zeigt, wie für einen geringen zusätzli
chen Aufwand bezüglich der Anzahl der Register eine
wesentliche Reduzierung oder Beseitigung der unerwünsch
ten Schaltaktivität in den Funktionseinheiten möglich
ist. Abschnitt IVB definiert Architekturen mit vollkomme
nem Power Management und leitet Bedingungen an den Plan
und an die Variablenzuweisung ab, die für ein vollkomme
nes Power Management erfüllt sein müssen. Weiter werden
die Verfahren der vorliegenden Erfindung und zweckmäßige
Ausführungen diskutiert. Der Abschnitt IVC diskutiert
eine zweckmäßige Ausführung, bei der die Verfahren der
vorliegenden Erfindung zum Erleichtern des Power Manage
ments in ein existierendes höheres Synthesesystem inte
griert werden. Der Abschnitt IVD stellt experimentelle
Ergebnisse und der Abschnitt V die Schlußfolgerungen dar.
Ein Schlüsselaspekt dieser Erfindung besteht darin, daß
der Leistungsverbrauch durch eine geeignetere Register
teilung reduziert werden kann. Diese Wirkungen der Regi
sterteilung werden hier unter Verwendung von Beispielen
dargestellt. Es wird hier gezeigt, daß die Art, in der
die Registerzuordnung und die Registerbindung erfolgen,
einen großen Einfluß auf die unerwünschte Schaltaktivität
in einer Schaltung haben können. Weiter wird die Beseiti
gung einer unerwünschten Schaltaktivität aus einer Kon
struktion durch eine Kombination von Verfahren mit einem
geringen zusätzlichen Aufwand bezüglich der Anzahl der
Register gezeigt. Es wird ein Beispiel dargestellt, das
zeigt, daß die unerwünschte Schaltaktivität beseitigt
werden kann, ohne die Anzahl der Register in der synthe
tisierten Architektur zu erhöhen.
Beispiel 1: Es wird der in Fig. 1 gezeigte geplante CDFG
betrachtet. Jede Operation in dem CDFG ist mit ihrem
Namen (der in dem Kreis angeordnet ist, der die Operation
darstellt) und mit dem Namen der Instanz der Funktions
einheit, auf die sie abgebildet wird (der außerhalb des
Kreises angeordnet i st, der die Operation darstellt),
kommentiert. Jede Variable in dem CDFG ist mit ihrem
Namen kommentiert. Die Taktzyklusgrenzen sind mit punk
tierten Linien kommentiert. Der Plan besitzt fünf Steuer
schritte, s1, . . ., s5. Der Steuerschritt s5 wird verwendet,
um die Ausgangswerte in den Registern zu halten und um
sie an die Umgebung zu übermitteln, mit der die Konstruk
tion wechselwirkt, und um die Eingangswerte für die
nächste Iteration in ihre jeweiligen Register zu laden.
Um den Einfluß der Variablenzuweisung auf den Leistungs
verbrauch abzuschätzen, werden zwei Anwärter auf Zuwei
sungen, die in Tabelle 1 gezeigte Zuweisung 1 und Zuwei
sung 2, betrachtet. Die unter Verwendung dieser Zuweisun
gen erhaltenen Architekturen wurden Logiksyntheseoptimie
rungen unterworfen und unter Verwendung einer 1,2 Mikro
meter-Standardzellenbibliothek angeordnet und geleitet.
Die aus den Konstruktionen extrahierten Transistorebenen-Netz
listen wurden unter Verwendung eines Schalterebenen
simulators mit typischen Eingangssignalspuren zur Messung
der Leistung simuliert. Für die Schaltung Konstruktion 1,
die aus der Zuweisung 1 synthetisiert wurde, betrug der
Leistungsverbrauch 30,71 mW, während der Leistungsver
brauch für die Schaltung Konstruktion 2, die aus der
Zuweisung 2 synthetisiert wurde, 18,96 mW betrug.
Zur Erläuterung des deutlichen Unterschieds des Lei
stungsverbrauchs der zwei Konstruktionen werden unter
Verwendung der Fig. 2 bzw. 3 die Schaltaktivitäten in den
Funktionseinheiten, aus denen die Konstruktion 1 und die
Konstruktion 2 bestehen, untersucht. In diesen Figuren
ist jede Funktionseinheit durch einen bezeichneten Kasten
dargestellt. Die vertikalen, zu dem Kasten hinführenden
Linien stellen eine Dauer dar, die gleich einer Iteration
der Ausführung des CDFG ist. Jeder Steuerschritt ist mit
(i) den Symbolwerten, die an den Eingängen der Funktions
einheit in der Verwirklichung auftreten, und (ii) falls
vorhanden, mit der Operation, die der von der Funktions
einheit ausgeführten Berechnung entspricht, kommentiert.
Zum Beispiel erscheinen die Variablen v1 und v2 für die
Funktionseinheit MUL1, Fig. 2, in dem Steuerschritt s1 an
ihrem linken bzw. rechten Eingang. Die in dem Steuer
schritt s1 von MUL1 ausgeführte Berechnung entspricht der
Operation *1 des CDFG. Zyklen, in denen sich eines der
Eingangssignale einer Funktionseinheit oder beide ändern,
was eine Leistungsdissipation bewirkt, sind in den Figu
ren schraffiert. Jede Variablenänderung kann mit der
Ausführung einer neuen Operation verknüpft werden. Zy
klen, während derer störende Eingangssignalübergänge
auftreten, die nicht irgendwelchen CDFG-Operationen
entsprechen, sind mit einem X gekennzeichnet.
Der mit diesen Operationen verknüpfte Leistungsverbrauch
kann ohne Änderung der Funktionalität der Konstruktion
beseitigt werden. Eine Funktionseinheit führt keine
unerwünschte Operation aus, wenn ihre beiden Eingangs
signale nicht geändert werden. Ein Zyklus, in dem sich
ein Eingangssignal einer Funktionseinheit nicht ändert,
ist nicht mit irgendeiner Variablen gekennzeichnet. Zum
Beispiel ändern sich in Fig. 3 die Eingangssignale der
Funktionseinheit MUL1 von dem Steuerschritt s1 zu dem
Steuerschritt s2 nicht. Somit sind die Eingangssignale
von MUL1 in dem Steuerschritt s2 nicht gekennzeichnet.
Eine Untersuchung der Fig. 2 und 3 offenbart, daß die
Funktionseinheiten, die die Konstruktion 2 bilden, nur
eine unerwünschte Operation ausführen, während die Funk
tionseinheiten, die die Konstruktion 1 bilden, acht
unerwünschte Operationen ausführen. Dies erläutert den
Unterschied des Leistungsverbrauchs zwischen den zwei
Konstruktionen.
Beispiel 2: Das vorausgehende Beispiel hat gezeigt, daß
die erzwungene Registerteilung die Anzahl der unerwünsch
ten Operationen m einer Schaltung deutlich reduzieren
kann. Dieses Beispiel zeigt ein weiteres, als dynamische
Registerneubindung bezeichnetes Verfahren, das die uner
wünschten Operationen in Verbindung mit der Variablenzu
weisung weiter beseitigen kann.
Es wird die Funktionseinheit SUB1 in Konstruktion 2
betrachtet. Eine Überprüfung von Fig. 3 offenbart, daß
sie in dem Steuerschritt s1 jeder Iteration eine uner
wünschte Operation ausführt. Dies liegt daran, daß der
Multiplexer an ihrem Eingang von dem Steuerschritt s3
jeder Iteration bis zu dem Steuerschritt s1 der nächsten
Iteration das Register R5 auswählt, dem die Variable v12
zugewiesen ist. Da v12 in dem Steuerschritt s1 jeder
Iteration einen neuen Wert erlangt, berechnet SUB1 in dem
Steuerschritt s1 v11-v12, was unerwünscht ist, da der
Wert von v11 der vorausgehenden Iteration entspricht,
während der Wert von v12 der momentanen Iteration ent
spricht. Dieses Problem würde selbst dann fortdauern,
wenn an dem Eingang von SO B1 v3 anstelle von v12 ausge
wählt wäre. Dies liegt daran, daß v3 nur an dem Ende des
Steuerschritts s1 erzeugt wird, was bewirkt, daß SUB1
v11-v3 mit dem alten Wert von v3 berechnet. Es wird
angemerkt, daß der alte Wert von v12 (aus der vorausge
henden Iteration) an dem Eingang von SUB1 zum Vermeiden
der unerwünschten Operation erhalten werden muß, bis der
neue Wert von v3 in der momentanen Iteration geboren
worden ist.
In diesem Fall kann die unerwünschte Operation beseitigt
werden, ohne daß ein Preis bezüglich der Anzahl der
verwendeten Register gezahlt werden müßte, indem die den
Registern R5 und R6 in abwechselnden Iterationen zugewie
senen Variablen ausgetauscht werden. In geraden Iteratio
nen wird v3 auf R6 und v12 auf R5 abgebildet, während sie
in ungeraden Iterationen umgekehrt abgebildet werden.
Fig. 4 zeigt diese Transformation während dreier Itera
tionen der Ausführung der Konstruktion. In dieser Figur
ist die Linie, die den rechten Eingang von SUB1 dar
stellt, mit dem Register kommentiert, das die ausgewählte
Variable enthält. Wie in der Figur gezeigt ist, speichert
das Register R6 die Variable v12 in der Iteration i, die
Variable v3 in der Iteration i+1 usw. Da die Variable v3
in der Iteration i+1 im Register R6 gespeichert wird,
wird der alte Wert von v12 an dem Eingang von SUB1 erhal
ten, bis v3 geboren worden ist, was somit die in Fig. 3
gezeigte mit X bezeichnete unerwünschte Operation vermei
det.
In den Beispielen 1 und 2 wurde gezeigt, daß unerwünschte
Operationen bei einer geringen Erhöhung der Anzahl der
Register wesentlich reduziert oder beseitigt werden
können. Wie das folgende Beispiel zeigt, können uner
wünschte Operationen manchmal jedoch ohne einen zusätzli
chen Aufwand an Registern beseitigt werden.
Beispiel 3: Es wird der in Fig. 5 gezeigte geplante CDFG
betrachtet. Tabelle 2 zeigt zwei Anwärter für Variablen
zuweisungen, Zuweisung 1 und Zuweisung 2, die beide die
gleiche Anzahl an Registern erfordern. Um den Leistungs
verbrauch zu bestimmen, wurden bei der Synthese die den
zwei Konstruktionen entsprechenden Architekturen mit
typischen Eingangssignalspuren simuliert.
Die unter Verwendung der in Zuweisung 1 gezeigten Varia
blenzuweisung abgeleitete Architektur verbrauchte
42,86 mW, während die unter Verwendung von Zuweisung 2
abgeleitete Architektur 34,05 mW verbrauchte. Es zeigt
sich, daß die Funktionseinheit MUL1 für die aus der
Zuweisung 1 erhaltene Konstruktion in den Zyklen s2 und
53 unerwünschte Operationen ausführt, während die Funkti
onseinheit ADD1 in dem Zyklus s4 eine unerwünschte Opera
tion ausführt. Für die aus der Zuweisung 2 erhaltene
Konstruktion wird die Variablenzuweisung in der Weise
gewählt, daß keine unerwünschten Operationen ausgeführt
werden.
Die obigen Beispiele dienen zur Erläuterung dessen, daß
eine vernünftige Variablenzuweisung ein Schlüsselfaktor
beim Beseitigen unerwünschter Operationen ist. Die vor
liegende Erfindung ist auf das Beseitigen unerwünschter
Operationen in den Funktionseinheiten gerichtet. Da die
Funktionseinheiten in diesen Architekturen keine uner
wünschten Operationen ausführen, d. h., da irgendeine in
einer Funktionseinheit ausgeführte Operation eine gül
tige, von dem CDFG angeforderte Operation ist, werden die
durch das Anwenden der Verfahren der vorliegenden Erfin
dung erzeugten Architekturen als Verfahren mit vollkomme
nem Power Management bezeichnet.
In den folgenden Abschnitten werden Bedingungen an den
Plan und an die Variablenzuweisung abgeleitet. Wenn sie
erfüllt sind, führen diese Bedingungen zu Architekturen
mit vollkommenem Power Management. Die Integration dieser
Bedingungen in ein existierendes leistungsoptimierendes
höheres Synthesesystem wird ebenfalls beschrieben.
Ein weiterer Schlüsselaspekt dieser Erfindung ist die
Identifizierung der Bedingungen, deren Erfüllung ein
vollkommenes Power Management sicherstellt. Solche Bedin
gungen werden in diesem Abschnitt abgeleitet.
Es wird eine Funktionseinheit fu betrachtet, die eine
Operation des Typs op ausführt, wobei sie die Operationen
op1, op2, . . ., op(i-1) und opi ausführt, die in den Zeit
schritten t1, t2, . . ., t(i-1) bzw. ti geplant sind. Der
Operation opj werden an ihrem linken bzw. rechten Eingang
die Variablen vj_1 und vj_2 zugeführt, während sie die
Variable vi_out erzeugt. Während sich irgend eines der
Eingangssignale der fu ändert, verbraucht sie eine Lei
stung. Die insgesamt verbrauchte Leistung kann als
P_fu = Σ P(vj'_1, v(j+1)'_1, vj'_2, v(j+1)'_2) (1)
geschrieben werden, wobei vi'_1 (vi'_2) die Variable an
dem linken (rechten) Eingang der fu vor der Änderung ist
und wobei v(j+1)'_1, (v(j+1)'_2) die neue Variable ist,
während P(vj'_1, v(j+1)'_1, vj_2, v(j+1)'_2) der mit der
Variablenänderung verknüpfte Leistungsverbrauch ist.
Somit sind die Variablen an den Eingängen der Funktions
einheit gestrichen gezeigt, während die Variablen, die
den Operationen zugeführt werden, ungestrichen gezeigt
sind. Diese Unterscheidung wird getroffen, da die einer
Funktionseinheit zugeführten Variablen eine Obermenge der
Variablen sind, die den auf sie abgebildeten Operationen
zugeführt werden. Zum Beispiel wird angenommen, daß die
Variablen, die an dem Eingang einer Funktionseinheit fu1,
die die Operation op1 (Eingangssignale v1_2 und v1_2)
ausführt, erscheinen, von den Registern R1 und R2 abhän
gen, die in ihren linken bzw. rechten Eingang eingaben.
Wenn angenommen wird, daß v1_1 und v3_1 auf R1 abgebildet
sind, während v1_2 und v2_2 auf R2 abgebildet sind,
erscheinen an den Eingängen der Funktionseinheit v1_1,
v3_1, v1_2, v2_2. Diese Variablen werden als gestrichene
Variablen bezeichnet, wobei v1_1 und v1_2 einer Teilmenge
von ihnen entsprechen. Im allgemeinen hängt P(vj'_1,
v(j+1)'_1, vj_2, v(j+1)'_2) von der Verwirklichung der
Funktionseinheit und von der mit den Variablen P(vj'_1,
v(j+1)'_1), vj_2, v(j+1)'_2) verknüpften Signalstatistik
ab. Irgendein Paar {vj_1, vj'_2} von gleichzeitig an dem
linken und rechten Eingang von fu derart auftretenden
Variablen, daß op(vj'_1, vj'_2) von dem CDFG nicht benö
tigt wird, bildet eine unerwünschte Operation, wobei die
durch die Änderung hervorgerufenen Operationen weggelas
sen werden können, ohne die Funktionalität der Schaltung
zu ändern. Wie das Beispiel 4 zeigt, unterliegt eine
Architektur dem vollkommenen Power Management, wenn alle
solchen unerwünschten Operationen beseitigt sind.
Beispiel 4: Fig. 6 zeigt links eine Funktionseinheit in
einer Architektur mit unvollkommenem Power Management und
rechts eine Funktionseinheit in einer Architektur mit
vollkommenem Power Management gemäß der vorliegenden
Erfindung. Die Linien an dem linken und rechten Eingang
der Funktionseinheit bezeichnen die Zeitachse und sind
mit den Eingangsvariablen und mit ihren Geburtszyklen
kommentiert. Die schraffierten Leisten entsprechen Ände
rungen der Eingangswerte und stellen Zyklen, in denen
Leistung verbraucht wird, dar. Wie in der Figur gezeigt
ist, entsprechen in dem Fall von Architekturen mit voll
kommenem Power Management alle leistungsverbrauchenden
Eingangsänderungen von dem CDFG geforderten Operationen.
Die folgenden drei Bedingungen sind hinreichend, um ein
vollkommenes Power Management sicherzustellen:
- - Die Folge der in irgendeiner Iteration an dem linken Eingang von fu erscheinenden Werte entspricht v1_1, v2_1, . . ., vi_1.
- - Die Folge der in irgendeiner Iteration an dem rechten Eingang von fu erscheinenden Werte entspricht v1_2, v2_2, . . ., vi_2.
- - Die Werte an den Eingängen von fu in irgendeinem Taktzyklus entsprechen einem Paar (vj_1, vj_2), 1≦j≦i.
Es ist klar ersichtlich, daß unter den angegebenen Bedin
gungen jede in einer Funktionseinheit ausgeführte Opera
tion ein nutzbares Ausgangssignal erzeugt, wobei keine
unnötigen Operationen eingeführt werden, was somit ein
vollkommenes Power Management sicherstellt. Damit diese
Bedingungen erfüllt sind, sollten die Multiplexer an dem
linken und rechten Ausgang der Funktionseinheit die
Variablen vj_1 bzw. vj_2 mit 1≦j≦i auswählen, bis
v(j+1)_1 und v(j+1)_2 verfügbar sind. Dies kann nur
erfolgen, falls die Werte von vj_1 und vj_2 in den Regi
stern, denen sie zugewiesen sind, bis
max(birth(v(j+1)_1), birth(vj+1)_2)) verfügbar sind,
wobei birth(vj_k) die Geburtszeit der Variablen vi_k ist.
Wie in Abschnitt IVB.2 erläutert ist, würde das Verlän
gern der Lebensdauern der Variablen (des Intervalls
zwischen dem Geburt und dem Tod einer Variablen) in
dieser Weise in einigen Fällen jedoch zu unerfüllbaren
Nebenbedingungen führen.
Fig. 7 zeigt die von der Funktionseinheit fu während
zweier Iterationen der Ausführung des CDFG ausgeführten
Operationen. Die Abfolge der von fu in einer Iteration
ausgeführten Operationen lautet op1, op2, . . ., opi. Die
Variable vi_1 wird im Zyklus m geboren, während die
Variable v1_1 im Zyklus n mit m<n geboren wird. Um in
diesem Fall die Ausführung der unerwünschten Operationen
zu vermeiden, sollte der neue Wert von v1_1 an dem linken
Eingang von fu vi_1 nachfolgen. Somit muß bis zum Zyklus
n an dem linken Eingang vi_1 ausgewählt sein.
Da jedoch vi_1 im Zyklus m einen neuen Wert annimmt,
verbraucht die Funktionseinheit im Zyklus m eine unnötige
Schaltleistung. Für ein vollkommenes Power Management muß
der neue Wert von vi_1 somit in einem getrennten Register
gespeichert werden, während der alte Wert unversehrt
bleibt, bis er nicht mehr benötigt wird. Somit müssen
verschiedene Instanzen der gleichen Variablen, die in
verschiedenen Iterationen der Ausführung des CDFG erzeugt
wurden, auf verschiedene Register abgebildet werden. Dies
kann leicht auf Kosten eines zusätzlichen Registers
dadurch erfolgen, daß der neue Wert von vi_1, bevor er fu
zugeführt werden darf, in einem unbelegten Register
gepuffert wird. Es wird angemerkt, daß ein weiterer
Aspekt dieser Erfindung eine nachfolgend beschriebene von
dem zusätzlichen Registeraufwand freie Lösung für dieses
Problem schafft, die als die nachfolgend beschriebene
dynamische Registerneubindung bezeichnet wird.
R1 und R8 sollen die Register, auf die die Variablen v1_1
und v1_1 abgebildet sind, bezeichnen. Die Variablenzuwei
sungen für die Register R1 und R8 werden in abwechselnden
Iterationen des CDFG ausgetauscht, d. h., falls in einer
geraden Iteration S1 die Menge der auf R1 abgebildeten
Variablen und S8 die Menge der auf R2 abgebildeten Varia
blen bezeichnet, werden die Variablen in S1 (S8) in einer
ungeraden Iteration auf R2 (R1) abgebildet. In diesem
Szenarium wird der alte Wert von vi_1 in P2 erhalten, bis
v1_1 geboren worden ist, was die Abwesenheit der unnöti
gen Schaltaktivität in fu sicherstellt. Es wird jedoch
angemerkt, daß diese Lösung zu einer zusätzlichen Verbin
dung in dem Datenpfad führen könnte, da jede Funktions
einheit, die ursprünglich in R1 (R,) eingibt, nun eben
falls in R2 (R1) eingeben sollte, während jede Funktions
einheit, in die ursprünglich aus R1 (R8) eingegeben wird,
nun ebenfalls aus R2 (R1) eingegeben werden sollte.
In der Praxis wird dieses Verfahren für (als die Anzahl
der hinzugefügten 2-zu-1-Multiplexer gemessenen) zusätz
liche Verbindungsaufwände bis zu einen Schwellwert von
vier angewendet. Für zusätzliche Verbindungsaufwände von
mehr als vier wird die Registerverdopplung bevorzugt.
Dieser Schwellwert beruht auf Leistungsabschätzungsexpe
rimenten.
Die in den früheren Abschnitten dargestellten Verfahren
der erzwungenen Registerteilung, der dynamischen Regi
sterneubindung und der Registerverdopplung können in
irgendein höheres Synthesesystem integriert werden. In
diesem Abschnitt wird ein Algorithmus für das vollkommene
Power Management in dem Kontext eines leistungsoptimie
renden höheren Synthesesystems geschaffen. Siehe A.
Raghunathan und N. K. Jha ["An iterative improvement
algorithm for low power datapath synthesis"] Proc. Int.
Conf., Computer Aided Design, S. 597-602, Nov. 1995. Es
wird eine Übersicht über das System dargestellt, auf die
eine Beschreibung der zum Erzeugen von Architekturen mit
vollkommenem Power Management erforderlichen Modifikatio
nen folgt.
Fig. 8 zeigt die Grundschritte des höheren Synthesesy
stems, das auf einem iterativen Verbesserungsverfahren
beruht, das lokalen Minima entgehen kann. Das System
nimmt als Eingabe eine zu einem CDFG kompilierte Verhal
tensbeschreibung, eine Bibliothek der im voraus charakte
risierten Module für die Fläche, für den Tag und für die
Leistung, eine Menge typischer Eingangssignalspuren zum
Erleichtern der Leistungsabschätzung und der Abtastperi
ode (des Austastintervalls zwischen der Ankunft zweier
aufeinanderfolgender Iterationen der Eingangssignale) an.
Die Synthese beginnt in 810 mit der Identifizierung der
Menge der möglichen Taktperioden und Speisespannungen.
Für jedes solches Paar wird die Synthese mit der Ablei
tung einer Anfangslösung 820 begonnen. Die vollständigen
Planungs-, Zuordnungs- und Bindungsinformationen werden
durch die Anwendung einer Folge von Verschiebungen
(einzelne Verschiebungen können einen negativen Gewinn
haben) transformiert.
Das "Verschieben" in 830-860 kann eine Instanz einer
Funktionseinheit in dem Datenpfad durch eine Instanz
eines anderen Typs ersetzen, Paare von Funktionseinheiten
oder von Registern zu einer bzw. zu einem zusammenführen
oder eine Funktionseinheit oder ein Register in mehrere
Funktionseinheiten oder Register aufspalten. Es wird der
Einfluß jeder dieser Verschiebungen auf die Leistung
berechnet, wobei die leistungseffizienteste Folge der
Verschiebungen, die keine Abtastnebenbedingungen ver
letzt, verwirklicht wird.
Die in Fig. 8 schraffiert gezeigten Kästen bezeichnen die
Syntheseschritte, die modifiziert werden müssen, um das
vollkommene Power Management zu integrieren. Das Power
Management-Verfahren wird in drei Phasen angewendet. Die
ersten zwei Phasen 830, 840 gehören zu Verschiebungs-Aus
wahl-Verfahren, während die dritte 880 nach der itera
tiven Verbesserung stattfindet. Die ersten zwei Zustände
stellen ein vollkommenes Power Management in jeder
CDFG-Iteration sicher, ignorieren aber die in Abschnitt IVB.2
beschriebenen Wirkungen zwischen den Iterationen. Für die
Korrektur solcher Wirkungen zwischen den Iterationen ist
die dritte Stufe vorgesehen, die nach der Synthese statt
findet.
In jedem Schritt des Algorithmus, d. h. vor und nach der
Anwendung jeder Verschiebung, existiert ein vollständiger
Plan und ein vollständiger Datenpfad. Wenn eine Modulaus
wahl, eine Betriebsmittelteilung oder eine Betriebs
mittelaufspaltung betrachtet werden, wird zunächst die
resultierende Architektur geplant, um sicherzustellen,
daß ein gültiger Plan existiert. Nachdem eine Architektur
geplant ist, werden die Lebensdauern der Variablen
geprüft, um zu sehen, ob ihre Verlängerungen zwischen den
Iterationen, die zum Sicherstellen der Abwesenheit
unerwünschter Operationen erforderlich sind, irgendwelche
Konflikte in den Lebensdauern der Variablen hervorrufen.
Da jede Variable auf ein getrenntes Register abgebildet
wird, ist die Anfangslösung durch die Abwesenheit uner
wünschter Operationen gekennzeichnet. Architekturen, die
unerwünschte Operationen anzeigen, werden zurückgewiesen.
Typischerweise werden unerwünschte Operationen nur durch
Verschiebungen eingeführt, die verschiedene Register zu
einem zu vereinigen versuchen. Somit beeinflußt diese
Einschränkung die Funktionseinheitsteilung oder Funkti
onseinheisaufspaltung oder Modulauswahlverschiebungen in
der Praxis nicht. In dieser Phase ist nicht bestimmt, ob
eine Eingangsvariable der (in der aufsteigenden Reihen
folge der Geburt) letzten auf eine Funktionseinheit
abgebildeten Operation am Leben erhalten werden kann, bis
alle Eingangssignale für die erste auf die Funktionsein
heit abgebildete Operation in der nächsten Iteration
geboren worden sind. Dies liegt daran, daß sich zusätzli
che hinzugefügte Register oder zum Beseitigen des Pro
blems während einer Verschiebung der iterativen Verbesse
rung ausgeführte Zuweisungsaustausche zwischen den Itera
tionen wegen zukünftiger Verschiebungen selbst dann als
unzulänglich oder redundant erweisen können, wenn dieses
Problem in dieser Phase erfaßt und gelöst wird.
Der Pseudocode für das Prüfverfahren ist in Fig. 9 ge
zeigt. Die äußere Schleife stellt den Durchlauf der
Funktionseinheiten, die den Datenpfad bilden, dar. Die
auf die Funktionseinheit abgebildeten Operationen werden
dann in steigender Reihenfolge der Geburt durchlaufen.
Jede Eingangsvariable v der Operation op wird dann über
prüft, um sicherzustellen, daß ihre Todeszeit bis zu der
Geburtszeit des letzten ankommenden Eingangssignals der
Operation, die unmittelbar auf op folgt, verlängert
werden kann. Falls das der Fall ist, wählen die Multiple
xer an dem Eingang der betrachteten Funktionseinheit die
Variable v zum Erscheinen an dem geeigneten Eingang aus,
bis das letzte ankommende Eingangssignal von op geboren
worden ist. Falls das nicht der Fall ist, wird davon
ausgegangen, daß die Architektur kein vollkommenes Power
Management besitzt, wobei eine andere betrachtet wird. Da
sichergestellt ist, daß die Anfangsarchitektur frei von
unerwünschten Operationen der Art ist, auf die dieses
Unterprogramm prüft, liefert der Synthesealgorithmus der
vorliegenden Erfindung immer eine gültige Lösung.
Durch Abhängigkeiten zwischen den Iterationen erzeugte
Probleme werden gelöst, sobald die iterative Verbesserung
abgeschlossen wird. Der Pseudocode für das Verfahren zum
Behandeln der Abhängigkeiten zwischen den Iterationen ist
in Fig. 10 gezeigt und entspricht dem schraffierten
Kasten in Fig. 8, der dem vorletzten Schritt des Synthe
sealgorithmus entspricht. Wie zuvor stellt die äußere
Schleife das Durchlaufen der Funktionseinheiten in dem
Datenpfad dar. In diesem Fall sind die zuerst geborene
und die zuletzt geborene Operation, die auf die Funkti
onseinheit abgebildet werden, von Interesse. Falls die
Geburtszeit einer Eingangsvariablen zu der zuletzt gebo
renen Operation kleiner als die Geburtszeit des als
letztes ankommenden Eingangssignals zu der zuerst gebore
nen Operation ist, verfügt die Architektur über kein
vollkommenes Power Management. Dieses Problem wird entwe
der durch eine Registerverdopplung oder durch einen
Austausch der Variablenzuweisungen zwischen den Iteratio
nen behandelt.
Der in Fig. 11 gezeigte Ablaufplan zeigt eine Ausführung
der vorliegenden Erfindung. Dieser Ablaufplan ist selbst
erklärend.
Eine zweckmäßige Ausführung der vorliegenden Erfindung
wird im Rahmen eines höheren Leistungsoptimierungs-Syn
thesesystems SCALP realisiert. Siehe A. Raghunathan und
N. K. Jha "An iterative improvement algorithm for low
power datapath synthesis", in Proc. Int. Conf., Computer
Aided Design, S. 597-602, Nov. 1995. Die Experimente
bewerten die Verfahren der vorliegenden Erfindung unter
Verwendung mehrerer Verhaltensbeschreibungen von
Signal- und Bildverarbeitungsanwendungen.
Das modifizierte SCALP liest eine Textbeschreibung eines
CDFG ein und führt einen Vdd-Abschnitt, eine Taktauswahl,
eine Funktionseinheitsauswahl, eine Planung, eine Be
triebsmittelzuweisung und -bindung aus, die schließlich
zu einer aus einer Datenpfad-Netzliste und einer Be
schreibung des Controllers als einer endlichen Zustands
maschine bestehenden leistungsoptimierten Architektur mit
vollkommenem Power Management führt. Der Controller und
die Datenpfad-Netzliste werden vereinigt und unter Ver
wendung des SIS-Logiksynthesesystems auf die MSU-Stan
dardzellenbibliothek abgebildet. Die Anordnung und das
Leiten werden unter Verwendung von Hilfsmitteln aus der
Programmfamilie OCTTOOLS ausgeführt.
Eine aus dem Entwurf extrahierte Schalterebenen-Schaltung
wird unter Verwendung des Schalterebenensimulators
IRSIM-CAP simuliert, wobei die geschaltete Kapazität aufge
zeichnet und zum Abschätzen des Leistungsverbrauchs
verwendet wird. Da der Leistungsverbrauch aus einer
entwurfsbasierten Simulation abgeschätzt wird, können die
Controller-Leistung, die Störimpulsleistung, die Verbin
dungsleistung, die Taktleistung usw., die auf den höheren
Ebenen nicht leicht in Rechnung gestellt werden können,
genau abgeschätzt werden. Die für die Simulation verwen
deten Eingangssignalfolgen werden dadurch erhalten, daß
zunächst eine Gaußsche Folge mit einem verschwindenden
Mittelwert erzeugt und das Ergebnis dann durch ein Auto
regressionsfilter geleitet wird, um das gewünschte Niveau
der zeitlichen Korrelation einzuführen.
Tab. 3 zeigt die erhaltenen experimentellen Ergebnisse.
Die erste Spalte liefert den Namen der Schaltung. Hin
sichtlich der Bewertungsprogramme sind Paulin Tseng und
Dot prod wohlbekannte Bewertungsprogramme für die höhere
Synthese. Lat und Fir sind ein Teil der HYPER-Distribu
tion. Siehe See J. Rabaey, C. Chu, P-Hoang und M. Potkon
jak, "Fast prototyping of data path intensive architectu
res", IEEE Design 4 Test of Computers, S. 40-51, Februar
1991. Test1 ist der in Beispiel 3 gezeigte CDFG.
Die Hauptspalten P und A zeigen den Leistungsverbrauch
und die Fläche der synthetisierten Schaltungen ohne und
mit vollkommenem Power Management. Es wird angemerkt, daß
die Steuersignale für die Multiplexer und für die Regi
ster in der Schaltung in beiden Fällen in der Weise
spezifiziert wurden, daß sie den Leistungsverbrauch der
Konstruktion unter Verwendung der in 171 dargestellten
Verfahren optimieren. Die Nebenspalten SCALP bzw. PPM
beziehen sich auf Architekturen, die durch ein nicht
modifiziertes SCALP (ohne die Hilfe des Power Manage
ments) und durch die Verfahren der vorliegenden Erfindung
optimiert wurden. Die Spalten P.S. und A.O. stellen die
Leistungseinsparungen und die zusätzlichen Flächenbedarfe
für Konstruktionen mit vollkommenem Power Management in
Bezug auf leistungsoptimierte Konstruktionen, die aus dem
nicht modifizierten SCALP erhalten wurden, dar. Die
Zykluszeit der synthetisierten Konstruktionen wurde bei
25 ns festgelegt, während die Abtastperioden des SCALP
und der Konstruktionen mit vollkommenem Power Management
erzwungenermaßen gleich waren. Die erhaltenen Ergebnisse
zeigen, daß die vorliegende Erfindung für die gleiche
Verzögerung eine 26,045%ige mittlere Leistungsreduktion
gegenüber den bereits leistungsoptimierten Schaltungen
bei einem durchschnittlichen zusätzlichen Flächenbedarf
von nur 1,89% erreicht.
In dieser Erfindung wird das Konzept des vollkommenen
Power Managements geschaffen, das auf das Beseitigen
einer unerwünschten Schaltaktivität in den Funktionsein
heiten, aus denen eine datendominierte Schaltung besteht,
gerichtet ist. Es wird gezeigt, daß die Art, in der die
Variablen den Registern zugewiesen werden, einen großen
Einfluß auf die Existenz unerwünschter Operationen haben
kann. Es werden Bedingungen an die Variablenzuweisung
abgeleitet, deren Erfüllung die Abwesenheit unerwünschter
Operationen in den Funktionseinheiten, die einen Daten
pfad bilden, sicherstellt. Auf der Grundlage dieser
Bedingungen wird ein Algorithmus geschaffen, der in ein
existierendes höheres Synthesesystem integriert werden
kann, um die unerwünschte Schaltaktivität in den Funkti
onseinheiten zu beseitigen. Eine Verwirklichung der
Erfindung im Rahmen eines existierenden höheren Synthese
systems, das auf die Leistungsoptimierung gerichtet ist,
zeigte ohne irgendeine Minderung der Funktion der synthe
tisierten Architektur eine bis zu zweifache Reduzierung
der Leistung bei zusätzlichen Flächenbedarfen von nicht
mehr als 6,4%.
Weitere Modifikationen und Änderungen an der Erfindung
sind für den Fachmann auf dem Gebiet aus der vorstehenden
Offenbarung und Lehre offensichtlich. Während hier nur
bestimmte Ausführungen der Erfindung spezifisch beschrie
ben wurden, ist somit klar, daß zahlreiche Modifikationen
daran vorgenommen werden können, ohne von dem Geist und
dem Umfang der Erfindung abzuweichen.
Claims (7)
1. Verfahren zum Reduzieren des Leistungsverbrauchs
in einer Folgeschaltung, die Funktionseinheiten enthält,
wobei das Verfahren die Registerteilung und die Multiple
xer-Konfiguration umfaßt,
wobei das Verfahren die unnötige Schaltaktivität in wenigstens einer Funktionseinheit beseitigt.
wobei das Verfahren die unnötige Schaltaktivität in wenigstens einer Funktionseinheit beseitigt.
2. Verfahren zum Synthetisieren einer Folgeschaltung
aus der Verhaltensspezifikation, wobei die Folgeschaltung
mehrere Variablen besitzt, wobei das Verfahren umfaßt:
- a) Verlängern der Lebensdauer einer oder mehre rer der mehreren Variablen; und
- b) Neukonfigurieren der Multiplexer in der Folgeschaltung auf der Grundlage der Ergebnisse aus Schritt a.
3. Verfahren nach Anspruch 2, wobei das Verfahren
ferner umfaßt:
- c) Ausführen entweder des dynamischen Neubindens von Registern oder des Verdoppelns von Registern zum Vermeiden unnötiger Schaltoperationen, die von einer Teilmenge der mehreren Variablen hervorgerufen werden, wobei die Werte der Teilmenge der mehreren Variablen in mehr als einer Iteration erforderlich sind.
4. Verfahren zum Synthetisieren einer Folgeschal
tung, die mehrere Funktionseinheiten enthält, wobei auf
jede der mehreren Funktionseinheiten mehrere Operationen
abgebildet werden, wobei jede der mehreren Operationen
mit mehreren Eingangsvariablen verknüpft ist, wobei das
Verfahren umfaßt:
- a) Auswählen einer Funktionseinheit;
- b) Auswählen einer Operation, die auf die Funk tionseinheit aus Schritt a abgebildet wird;
- c) Auswählen einer mit der Operation aus Schritt b verknüpften Variablen;
- d) Berechnen einer ersten Geburtszeit eines linken Eingangssignals einer nachfolgenden Operation der Operation aus Schritt b;
- e) Berechnen einer zweiten Geburtszeit eines rechten Eingangssignals einer nachfolgenden Operation aus Schritt d;
- f) Einstellen einer Todes zeit einer Variablen in der Weise, daß sie das Maximum der ersten Geburtszeit und der zweiten Geburtszeit ist;
- g) Wiederholen der Schritte c-f für jede der mehreren mit der Operation aus Schritt 1 verknüpften Eingangsvariablen;
- h) Wiederholen der Schritte b-g für jede der mehreren auf die Funktionseinheit aus Schritt a abgebil deten Operation; und
- i) Wiederholen der Schritte a-h für jede Funkti onseinheit;
- j) Konfigurieren der Multiplexer in der Weise, daß sie einige Eingangssignale für einen momentanen Iterationszyklus wie in einem vorausgehenden Iterations zyklus auswählen, falls der momentane Iterationszyklus ein Leerlauf ist.
5. Verfahren zum Synthetisieren einer Folgeschal
tung, die mehrere Funktionseinheiten enthält, wobei auf
jede der mehreren Funktionseinheiten mehrere Operationen
abgebildet werden, wobei jede der mehreren Operationen
mit mehreren Eingangsvariablen verknüpft ist, wobei das
Verfahren umfaßt:
- a) Auswählen einer Funktionseinheit;
- b) Auswählen einer Operation, die auf die Funk tionseinheit aus Schritt a abgebildet wird;
- c) Auswählen einer mit der Operation aus Schritt b verknüpften Variablen;
- d) Identifizieren einer letzten auf die zweite Funktionseinheit abgebildeten Operation;
- e) Identifizieren einer ersten auf die zweite Funktionseinheit abgebildeten Operation;
- f) Auswählen einer Eingangsvariablen für die letzte Operation;
- g) Identifizieren einer dritten Geburtszeit eines linken Eingangssignals der ersten Operation;
- h) Identifizieren einer vierten Geburtszeit eines rechten Eingangssignals der ersten Operation;
- i) Bestimmen, ob das Maximum der dritten Ge burtszeit und der vierten Geburtszeit größer als die Geburtszeit der Eingangsvariablen aus Schritt n ist;
- j) Austauschen der Variablenzuweisungen, falls der in dem Austausch erlittene Organisationsaufwand unter einem vorgegebenen Schwellwert liegt und falls der Schritt q wahr ist;
- k) Speichern der Werte der Eingangsvariablen des Schritts n in zusätzlichen Registern, falls der Organisa tionsaufwand über einem vorgegebenen Schwellwert liegt und falls der Schritt a wahr ist;
- l) Wiederholen der Schritte f-k für alle der letzten Operation entsprechenden Eingangsvariablen;
- m) Wiederholen der Schritte a-l für alle Funkti onseinheiten; und
- n) Konfigurieren der Multiplexer in der Weise, daß sie für einen momentanen Iterationszyklus die glei chen Eingangssignale wie in einem vorausgehenden Iterati onszyklus auswählen, falls der momentane Iterationszyklus ein Leerlauf ist.
6. System zum Synthetisieren einer Folgeschaltung
mit mehreren Variablen, wobei das System die Lebensdauern
von wenigstens einer der mehreren Variablen verlängert,
damit sich verlängerte Lebensdauern ergeben, und die
Multiplexer auf der Grundlage der verlängerten Lebensdau
ern neu konfiguriert.
7. System nach Anspruch 6, wobei das System entweder
das dynamische Neubinden der Register oder das Verdoppeln
der Register zum Vermeiden unnötiger Schaltoperationen
ausführt, die von einer Teilmenge der mehreren Variablen
verursacht werden, wobei die Werte der Teilmenge der
mehreren Variablen in mehr als einer Iteration erforder
lich sind.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US6856697P | 1997-12-23 | 1997-12-23 | |
| US09/089,388 US6195786B1 (en) | 1997-12-23 | 1998-06-03 | Constrained register sharing technique for low power VLSI design |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE19860062A1 true DE19860062A1 (de) | 1999-07-01 |
Family
ID=26749099
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE19860062A Ceased DE19860062A1 (de) | 1997-12-23 | 1998-12-23 | Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US6195786B1 (de) |
| JP (1) | JP3150122B2 (de) |
| DE (1) | DE19860062A1 (de) |
Families Citing this family (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6275969B1 (en) * | 1999-06-09 | 2001-08-14 | Nec Usa, Inc. | Common case optimized circuit structure for high-performance and low-power VLSI designs |
| JP2001014368A (ja) * | 1999-06-30 | 2001-01-19 | Mitsubishi Electric Corp | クロック解析装置およびクロック解析方法 |
| JP3386427B2 (ja) * | 2000-01-28 | 2003-03-17 | シャープ株式会社 | 高位合成方法並びに高位合成方法の実施に使用される記録媒体 |
| JP3370304B2 (ja) * | 2000-01-28 | 2003-01-27 | シャープ株式会社 | 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体 |
| US6611952B1 (en) * | 2000-12-21 | 2003-08-26 | Shiv Prakash | Interactive memory allocation in a behavioral synthesis tool |
| US7302670B2 (en) * | 2000-12-21 | 2007-11-27 | Bryan Darrell Bowyer | Interactive interface resource allocation in a behavioral synthesis tool |
| JP2002366596A (ja) * | 2001-06-11 | 2002-12-20 | Sharp Corp | 高位合成装置および高位合成方法、高位合成方法による論理回路の製造方法、記録媒体 |
| JP4007483B2 (ja) * | 2001-07-16 | 2007-11-14 | シャープ株式会社 | 高位合成装置および高位合成方法 |
| JP4082653B2 (ja) * | 2001-11-15 | 2008-04-30 | 松下電器産業株式会社 | 高位合成方法および高位合成装置 |
| AU2003224667A1 (en) * | 2002-03-08 | 2003-09-22 | Mentor Graphics Corporation | Array transformation in a behavioral synthesis tool |
| GB0210624D0 (en) * | 2002-05-09 | 2002-06-19 | Paradigm Design Systems | Method of designing and making an integrated circuit |
| JP4153732B2 (ja) * | 2002-06-19 | 2008-09-24 | 株式会社東芝 | ハードウェア動作記述変換方法及びそのためのプログラム |
| US6754878B1 (en) * | 2003-03-27 | 2004-06-22 | Xilinx, Inc. | Recognizing structure information from a netlist |
| US7725848B2 (en) * | 2005-01-27 | 2010-05-25 | Wolfgang Nebel | Predictable design of low power systems by pre-implementation estimation and optimization |
| WO2005114499A1 (en) * | 2004-05-24 | 2005-12-01 | Matsushita Electric Industrial Co., Ltd | Method and apparatus for allocating data paths |
| US7275232B2 (en) * | 2005-04-01 | 2007-09-25 | Altera Corporation | Methods for producing equivalent field-programmable gate arrays and structured application specific integrated circuits |
| KR100650866B1 (ko) * | 2005-12-27 | 2006-11-28 | 동부일렉트로닉스 주식회사 | 논리 셀 라이브러리 검증 시스템 및 방법 |
| US7735050B2 (en) | 2006-02-09 | 2010-06-08 | Henry Yu | Managing and controlling the use of hardware resources on integrated circuits |
| US7509606B2 (en) * | 2006-04-25 | 2009-03-24 | International Business Machines Corporation | Method for optimizing power in a very large scale integration (VLSI) design by detecting clock gating opportunities |
| JP5023652B2 (ja) * | 2006-10-17 | 2012-09-12 | 日本電気株式会社 | 回路生成システム、回路生成方法及び回路生成プログラム |
| US7930673B2 (en) * | 2007-05-29 | 2011-04-19 | Magma Design Automation, Inc. | Method for automatic clock gating to save power |
| US7958476B1 (en) * | 2007-07-10 | 2011-06-07 | Magma Design Automation, Inc. | Method for multi-cycle path and false path clock gating |
| JP2010205084A (ja) * | 2009-03-04 | 2010-09-16 | Renesas Electronics Corp | 動作合成システム、動作合成方法、動作合成プログラム |
| US8161434B2 (en) | 2009-03-06 | 2012-04-17 | Synopsys, Inc. | Statistical formal activity analysis with consideration of temporal and spatial correlations |
| EP2494692B1 (de) | 2009-10-30 | 2016-11-23 | Semiconductor Energy Laboratory Co. Ltd. | Logikschaltkreis und halbleitervorrichtung |
| KR101844972B1 (ko) | 2009-11-27 | 2018-04-03 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치 및 반도체 장치의 제작방법 |
| JP6559257B2 (ja) | 2016-01-08 | 2019-08-14 | 三菱電機株式会社 | プロセッサ合成装置、プロセッサ合成方法及びプロセッサ合成プログラム |
| US20250110740A1 (en) * | 2023-09-28 | 2025-04-03 | Apple Inc. | Selective Toggle Suppression in Multiplexed Datapaths |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5696692A (en) * | 1995-04-24 | 1997-12-09 | Cadence Design Systems, Inc. | Conditional selection method for reducing power consumption in a circuit |
| US5682519A (en) * | 1995-04-24 | 1997-10-28 | Cadence Design Systems, Inc. | Method for reducing power consumption of switching nodes in a circuit |
| US5649166A (en) * | 1995-04-24 | 1997-07-15 | Cadence Design Systems, Inc. | Dominator selection method for reducing power consumption in a circuit |
| US5831864A (en) * | 1996-10-31 | 1998-11-03 | Trustees Of Princeton University | Design tools for high-level synthesis of a low-power data path |
| US6038381A (en) * | 1997-11-25 | 2000-03-14 | Synopsys, Inc. | Method and system for determining a signal that controls the application of operands to a circuit-implemented function for power savings |
-
1998
- 1998-06-03 US US09/089,388 patent/US6195786B1/en not_active Expired - Lifetime
- 1998-12-23 DE DE19860062A patent/DE19860062A1/de not_active Ceased
- 1998-12-24 JP JP37681398A patent/JP3150122B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP2000057201A (ja) | 2000-02-25 |
| US6195786B1 (en) | 2001-02-27 |
| JP3150122B2 (ja) | 2001-03-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE19860062A1 (de) | Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI | |
| DE19914210B4 (de) | Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung | |
| DE19824796B4 (de) | Verfahren und Vorrichtung zur Leistungsoptimierung der Registerübertragungsebene, insbesondere mit einer Störimpuls-Analyse und -Reduktion | |
| DE68927946T2 (de) | Verfahren und Vorrichtung für die Synchronisierung von parallelen Prozessoren unter Verwendung einer unscharf definierten Sperre | |
| DE19925411A1 (de) | Controller-basiertes Powermanagement für sequentielle Schaltungen mit geringer Leistungsaufnahme | |
| DE69817581T2 (de) | System und verfahren zum umwandeln von graphischen programmen in hardware-implementierungen | |
| DE69102065T2 (de) | Eine arithmetische einheit für strukturarithmetik. | |
| DE19983476B4 (de) | Verfahren und Schaltungsanordnung zur Einplanung von Operationen unter Verwendung einer Abhängigkeitsmatrix | |
| DE69428634T2 (de) | Hardware-Anordnung und Verfahren zur Ausdehnung der Datenverarbeitungszeit in den Fliessbandstufen eines Mikrorechnersystems | |
| DE69626029T2 (de) | Verfahren zum herstellen eines digitalen signalprozessors | |
| DE112005002317B4 (de) | Verfahren für die Verarbeitung von Abhängigkeitsketten | |
| DE69528084T2 (de) | Verfahren zum Entwurf einer integrierten Halbleiter-Schaltung | |
| DE69718084T2 (de) | Gerät zur Schätzung des Leistungsverbrauchs eines Mikroprozessors | |
| DE19506435C2 (de) | Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten | |
| DE3855860T2 (de) | Schaltungsveränderungssystem und -verfahren, Verfahren zur Erzeugung von invertierter Logik und Logikentwurfssystem | |
| DE69331085T2 (de) | Automatisiertes LSI-Entwurfsystem und Verfahren | |
| DE4420703A1 (de) | Mikrocomputer | |
| WO2000017771A2 (de) | Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks | |
| DE60221462T2 (de) | Vorrichtung und Verfahren zur High-Level-Synthese, Verfahren zur Produktion von logischen Schaltungen unter Verwendung des Verfahrens zur High-Level-Synthese,und Aufzeichnungsmedium | |
| DE10297598T5 (de) | Mechanismus zum Abschätzen und Steuern von di/dt-induzierten Spannungsänderungen bei Energieversorgungen | |
| DE3855524T2 (de) | Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator | |
| EP2386949B1 (de) | Verfahren und Vorrichtung zum zuweisen einer Mehrzahl von Teilaufgaben einer Aufgabe zu einer Mehrzahl von Recheneinheiten einer vorgegebenen Prozessorarchitektur | |
| DE69327504T2 (de) | Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen | |
| DE4430195B4 (de) | Verfahren zur Auswertung von Booleschen Ausdrücken | |
| DE4327660A1 (de) | Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8131 | Rejection |