DE4416143A1 - Verfahren zum Entwerfen von Pipeline - Stufen in einem Computer-unterstützten Entwurfssystem - Google Patents
Verfahren zum Entwerfen von Pipeline - Stufen in einem Computer-unterstützten EntwurfssystemInfo
- Publication number
- DE4416143A1 DE4416143A1 DE4416143A DE4416143A DE4416143A1 DE 4416143 A1 DE4416143 A1 DE 4416143A1 DE 4416143 A DE4416143 A DE 4416143A DE 4416143 A DE4416143 A DE 4416143A DE 4416143 A1 DE4416143 A1 DE 4416143A1
- Authority
- DE
- Germany
- Prior art keywords
- pipeline stage
- input
- circuit
- stage
- division
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
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)
- Image Processing (AREA)
- Advance Control (AREA)
- Image Generation (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
Die vorliegende Erfindung bezieht sich im allgemeinen auf
Computer-unterstützte Entwurfssysteme und insbesondere auf
ein Verfahren zum automatischen Entwerfen von Pipeline-Stu
fen durch Teilen einer Verknüpfungsschaltung in Teile in
einem Computer-unterstützten Entwurfssystem.
Computer-unterstützte Entwurfssysteme ("CAD"-Systeme) werden
zunehmend hochentwickelt und haben viele Aspekte des Ent
wurfs von komplexen Maschinen automatisiert. Eine Art einer
komplexen Maschine, die mit der Hilfe eines CAD-Systems ent
worfen werden kann, ist ein elektronisches Gerät, wie z. B.
ein Computer. Ein CAD-System kann nicht einen gesamten Com
puter entwickeln, aber es kann für einen menschlichen Com
puterentwickler von enormem Wert sein. Eine Art, auf die ein
CAD-System dem Entwerfer helfen kann, besteht darin, eine
Netzliste für eine Gesamtschaltung, die der Entwickler ent
wickelt hat, automatisch zu erzeugen. Eine "Netzliste" ist
eine detaillierte Beschreibung einer Kombination von elemen
taren elektronischen Schaltungselementen, die eine solche
Gesamtschaltung bilden. Eine Netzliste kann z. B. ein lo
gisches UND-Gatter mit einem Ausgang beschreiben, der mit
einem ersten Eingang eines logischen ODER-Gatters verbunden
ist, usw . . Eine Netzliste kann viele tausende von Schal
tungselementen und die Verbindungen zwischen diesen ein
schließen.
Bestehende CAD-Systeme können einem Computersystem-Entwick
ler nicht nur beim Erzeugen von Netzlisten helfen, sondern
ebenfalls durch die Automatisierung bestimmter Ziele, die
beim Entwerfen einiger Arten von logischen Schaltungen auf
treten. Ein CAD-System, das einen Entwurf eines Addierers
als Reaktion auf eine Anfrage durch einen Entwickler verän
dern kann, ist z. B. in der US-Patentanmeldung SN. 08/031,775
beschrieben, die am 15. März 1993 eingereicht wurde und
Eigentum der gleichen Anmelderin der vorliegenden Anmeldung
ist, deren Inhalt hiermit durch Bezugnahme aufgenommen ist.
Ein Ansatz einer Computerarchitektur, der immer größere Be
deutung erlangt, ist das Pipeline-Verfahren. Das Pipeline-
Verfahren kann als Technik beschrieben werden, die ein se
quentielles Verfahren in verschiedene Unterverfahren auf
teilt und alle verschiedenen Unterverfahren gleichzeitig
ausführt. Ein einfaches Beispiel eines Abschnitts eines Com
puters, der diese Technik ausführt, ist in Fig. 1 gezeigt.
Daten werden an einem Eingangsanschluß 11 empfangen und beim
Auftreten eines Taktimpulses in dem ersten Zwischenspeicher
13 zwischengespeichert. Sobald die Daten in dem Zwischen
speicher 13 zwischengespeichert sind, werden sie einer er
sten Stufe 15 bereitgestellt. Diese erste Stufe 15 umfaßt
typischerweise eine Verknüpfungsschaltung, wie z. B. einen
Addierer oder irgendeine andere Art einer logischen Schal
tung, die benötigt wird. Das Ausgangssignal der Verknü
pfungsschaltung 15 wird beim nächsten Taktimpuls im zweiten
Zwischenspeicher 17 zwischengespeichert und daraufhin einer
zweiten Stufe 19 bereitgestellt, die ebenfalls eine Ver
knüpfungsschaltung ist. Die Logikschaltung der zweiten Stufe
kann zu der der ersten ähnlich sein oder nicht. Das Aus
gangssignal der zweiten Stufe wird seinerseits beim nächsten
Taktimpuls in einem dritten Zwischenspeicher 21 zwischenge
speichert und einer dritten Stufe 23 bereitgestellt. Die
dritte Stufe stellt ihr Ausgangssignal einem Datenausgang 25
bereit.
Aus der vorhergehenden Beschreibung ist es offensichtlich,
daß jede Stufe ihre Aufgabe gleichzeitig mit den anderen
durchführt, aber mit unterschiedlichen Eingangssignalen. Die
Stufen einer Pipeline können mit einer Reihe von Arbeitern
an einem Automobilmontageband verglichen werden. Jeder Ar
beiter führt eine unterschiedliche Aufgabe durch. Alle Ar
beiter führen ihre Aufgaben gleichzeitig durch, aber jeder
arbeitet zu irgendeinem Zeitpunkt an einem unterschiedlichen
Auto. Wenn jeder Arbeiter seine/ihre Aufgabe an einem Auto
durchgeführt hat, werden alle Autos zur nächsten Stufe des
Montagebandes weitergeführt.
Ein Beispiel einer Aufgabe, die ein Pipeline-Computer viel
schneller durchführen kann als ein einfacher sequentieller
Computer, ist die Aufgabe, zwei Gleit-Komma-Zahlen zu addie
ren. Eine Gleit-Komma-Zahl ist eine Zahl, die in der Form A
× 10B ausgedrückt wird, wobei A (die Mantisse) ein dezimaler
Bruch zwischen 0 und 1 ist, und B (der Exponent) eine ganze
Zahl ist. Die Aufgabe zwei Gleit-Komma-Zahlen zu addieren
erfordert drei Schritte: Synchronisation der Matissen, Sum
mieren der Matissen und Normalisieren des Ergebnisses. Bei
einem sequentiellen Computer muß jeder dieser Schritte ge
trennt durchgeführt werden. Wenn jeder Schritt eine Zeitein
heit dauert, benötigt der Computer drei Zeiteinheiten, um
die zwei Zahlen zu addieren. Bei komplizierten wissenschaft
lichen Berechnungen können viele tausende solcher Additionen
durchzuführen sein. Die Zeit, die erforderlich ist, um alle
diese Additionen durchzuführen, könnte um einen Faktor drei
reduziert werden, wenn der Computer alle drei Schritte in
einer einzelnen Zeiteinheit durchführen könnte.
Es ist nicht möglich, alle drei Schritte einer Addition
gleichzeitig auszuführen, weil jeder Schritt nach dem ersten
das Ausgangssignal des vorhergehenden Schrittes benötigt.
Beim Pipeline-Verfahren können die Schritte einer Reihe von
Additionen jedoch überlappt sein. Folglich kann der zweite
Schritt einer Addition gleichzeitig mit dem ersten Schritt
der nächsten folgenden Addition durchgeführt werden, usw.
In Fig. 1 wird dies durch Entwerfen der ersten Verknüpfungs
schaltung 15 als Mantissen-Synchronisator, der zweiten Ver
knüpfungsschaltung 19 als Matissen-Addierer und der dritten
Verknüpfungsschaltung 23 als Ergebnis-Normalisierer durch
geführt. Die ersten zwei zu addierenden Gleit-Komma-Zahlen,
z. B. X₁ = 0,95 × 10³ und Y₁ = 0,82 × 10², werden in dem
ersten Zwischenspeicher 13 zwischengespeichert und dem Man
tissen-Synchronisator zugeführt. Der Mantissen-Synchronisa
tor wandelt Y₁ in die Form Y₁, = 0,082 × 10³ um und gibt
beide Zahlen an den zweiten Zwischenspeicher 17 weiter. Beim
nächsten Taktimpuls werden X₁ und Y₁′ dem Mantissen-Addierer
zugeführt und gleichzeitig werden die Zweiten zwei zu ad
dierende Zahlen, X₂ und Y₂, dem Mantissen-Synchronisator zu
geführt. Während der Mantissen-Addierer X₁ und Y₁′ addiert,
um 1,032 × 10³ zu erhalten, synchronisiert der Mantissen-
Synchronisator X₂ und Y₂. Beim nächsten Taktimpuls wird das
Ergebnis des Mantissen-Addierers durch den Zwischenspeicher
21 zwischengespeichert und an den Ergebnis-Normalisierer
weitergegeben; währenddessen werden die synchronisierten X₂
und Y₂ dem Mantissen-Addierer zugeführt und die dritten zu
addierenden zwei Zahlen, X₃ und Y₃, werden dem Mantissen-
Synchronisator zugeführt. Der Ergebnis-Normalisierer wandelt
1,032 × 10³ in 0,1032 × 10⁴ um; gleichzeitig addiert der
Mantissen-Addierer X₂ und Y₂, während der Mantissen-Syn
chronisator X₃ und Y₃ synchronisiert. Sobald drei Zahlen in
der Pipeline sind, wird folglich bei jeder Zeiteinheit ein
neues Ergebnis erzeugt.
Mehr Informationen über Computer-Pipeline-Verfahren können
in folgenden Texten gefunden werden: Hennessy & Patterson,
"Computer Architecture: A Quantitative Approach", Morgan
Kaufmann Pub., 1990, ch. 6; Stone (Herausgeber), "Intro
duction to Computer Architecture" (zweite Ausgabe), SRA
Inc., 1980, ch. 9; und Mano, "Computer System Architecture"
(zweite Ausgabe), Prentice-Hall, 1982, Seiten 277.
Aus dem Vorhergehenden ist es offensichtlich, daß viele Ar
ten von sich wiederholenden Berechnungszielen in einem Pipe
line-Computer schneller ausgeführt werden können als in ei
nem einfachen sequentiellen Computer. Es ist ebenfalls
offensichtlich, daß die Verknüpfungsschaltungen, die die
verschiedenen Stufen einer Pipeline bilden, für bestimmte
Ziele oder eine Gruppe von zusammenhängenden Zielen manchmal
speziell entworfen sein müssen. Folglich muß der Entwickler
beim Entwerfen eines Pipeline-Computers eine oder mehrere
Pipelines für diese Ziele entwerfen, die am besten in einem
Pipeline-System ausgeführt werden können. Welche Ziele in
einem Pipeline-System ausgeführt werden sollten und welche
Stufen die Pipeline haben sollte, sind Faktoren, die im all
gemeinen durch den Entwickler entschieden werden, um die
Entwurfsbestimmungen, die der Entwickler vorgegeben hat
(oder ihm vorgegeben wurden), am besten zu erfüllen.
Ein Ziel, das ein Computer-Entwickler oft durchführen muß,
besteht darin, eine Pipeline-Stufe in zwei Stufen zu teilen.
Um dies durchzuführen, ist folgendes erforderlich: Berechnen
der Signalverarbeitungszeitverläufe an vielen Punkten in der
Logikschaltung, die die Stufe bildet, Bestimmen der Punkte,
an denen die Schaltung geteilt werden kann, ohne daß die
verschiedenen Signale danach unsynchronisiert zueinander
sind, und Bestimmen, an welchen Punkten die Teilung durchzu
führen ist, gemäß der Tatsache, wieviel Verarbeitungszeit in
jeder der neuen Stufen, in die die existierende Stufe unter
teilt werden soll, erforderlich ist. Ein CAD-System, das
diese Aufgabe automatisch durchführen könnte, wäre für Com
putersystem-Entwickler von großem Wert.
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren
zu schaffen, um eine Pipeline-Stufe automatisch in zwei
Pipeline-Stufen zu teilen, ohne daß durch den menschlichen
Entwickler viel Zeit und Aufwendung erforderlich ist.
Diese Aufgabe wird durch ein Verfahren zur automatischen
Teilung einer Pipeline-Stufe in zwei Pipeline-Stufen nach
Anspruch 1 gelöst.
Die vorliegende Erfindung schafft ein Verfahren zum automa
tischen Teilen einer Pipeline-Stufe in zwei Stufen durch ein
CAD-System, gemäß einer erwünschten Signalverarbeitungszeit
in den neuen Stufen, in die die existierende Stufe unter
teilt werden soll. Bestehende Verfahren des Pipeline-Schal
tungsentwurfs erforderten viel Zeit und Aufwand des mensch
lichen Entwicklers beim Durchführen einer solchen Teilung
von Stufen. Die Erfindung ermöglicht es, daß das CAD-System
eine willkürliche Verknüpfungslogikschaltung automatisch
teilt, wodurch es dem Entwickler ermöglicht wird, effizien
ter zu arbeiten.
Kurz und allgemein ausgedrückt beginnt das Verfahren der Er
findung mit dem Schritt des Speicherns einer Beschreibung
einer existierenden Pipeline-Stufe, die geteilt werden soll,
in einem CAD-System. Diese Stufe kann mit der Hilfe des
CAD-Systems oder von Hand durch den Entwickler entworfen
worden sein. Der Entwickler stellt ein Kriterium bereit,
typischerweise eine erwünschte Signalverarbeitungszeit, die
durch die neuen Stufen, die aus der Teilung der bestehenden
Stufe resultieren werden, erfüllt werden müssen. Von diesem
Punkt ab berechnet die Erfindung automatisch einen Teilungs
punkt für jeden Schaltungszweig in der vorhandenen Pipe
line-Stufe und ändert die Beschreibung der vorhandenen Pipe
line-Stufe in eine Beschreibung von zwei neuen Stufen: eine
Eingangsstufe und eine Ausgangsstufe. Die neue Eingangsstufe
schließt die gesamte Schaltung zwischen den Eingängen der
vorhandenen Stufe und den Teilungspunkten ein, und die neue
Ausgangsstufe schließt die gesamte Stufe zwischen den Tei
lungspunkten und den Ausgängen der vorhandenen Stufe ein.
Bei einem Ausführungsbeispiel ist das Kriterium eine er
wünschte Signalverarbeitungszeit der neuen, zu erzeugenden
Eingangsstufe. Die Teilungspunkte werden auf folgende Art
automatisch berechnet. Zuerst wird jedes Schaltungselement,
das ein Ausgangssignal der vorhandenen Pipeline-Stufe be
reitstellt, bestimmt. Diese Schaltungselemente sind
typischerweise Logikgatter, wie z. B. UND- oder ODER-Gatter
oder Kombinationen solcher Gatter. Eines dieser Schaltungs
elemente wird ausgewählt und einer seiner Eingänge wird aus
gewählt. Dann berechnet das System die maximale Signalver
arbeitungszeit von dem Eingang der vorhandenen Stufe über
irgendeinen möglichen Schaltungsweg zu dem ausgewählten Ein
gang. Wenn diese Zeit die erwünschte Signalverarbeitungszeit
überschreitet, wird dieses Schaltungselement, das den ausge
wählten Eingang bereitstellt, ebenfalls bestimmt. Wenn diese
Zeit die erwünschte Signalverarbeitungszeit nicht über
schreitet, wird der ausgewählte Eingang als vorläufiger
Teilungspunkt bestimmt. Diese Schritte werden wiederholt,
bis keine bestimmten Schaltungselemente mehr vorhanden sind.
Abschließend werden irgendwelche vorläufigen Teilungspunkte,
die ein Signal von einer gemeinsamen Quelle empfangen, zu
einem einzelnen Teilungspunkt zusammengefaßt.
Ein bevorzugtes Ausführungsbeispiel der vorliegenden Erfin
dung wird nachfolgend mit Bezugnahme auf die beiliegenden
Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockdiagramm einer Pipeline-Computerschaltung
gemäß dem Stand der Technik;
Fig. 2 ein Blockdiagramm eines Computer-unterstützten Ent
wurfsystems nach der Art, mit dem die Erfindung
ausgeführt wird;
Fig. 3 eine teilweise schematische Darstellung einer Pipe
line-Stufe, die gemäß dem Verfahren der vorliegen
den Erfindung in zwei Pipeline-Stufen unterteilt
werden soll;
Fig. 4 die Schaltung aus Fig. 3, nachdem die Schaltungs
elemente und vorläufigen Teilungspunkte gemäß dem
Verfahren der Erfindung bestimmt wurden;
Fig. 5 die Schaltung aus Fig. 3, wenn diese gemäß dem Ver
fahren der Erfindung in zwei Pipeline-Stufen unter
teilt ist;
Fig. 6 die Schaltung aus Fig. 5 mit den Zwischenspeichern,
um die Pipeline zu vervollständigen;
Fig. 7 ein Flußdiagramm, das das Verfahren der Erfindung
darstellt; und
Fig. 8 ein Flußdiagramm, das die Details des Blocks "Be
rechne Teilungspunkte" in Fig. 7 zeigt.
Wie es in den Zeichnungen aus darstellerischen Gründen ge
zeigt ist, ist die Erfindung in einem neuartigen Verfahren
zur automatischen Teilung einer Pipeline-Stufe in zwei Stu
fen durch ein CAD-System ausgeführt. Bestehende Verfahren
zum Entwerfen von Pipeline-Schaltungen erforderten, daß ein
menschlicher Entwickler solche Teilungen von Hand durch
führte. Diese Erfindung ermöglicht es dem Entwickler, durch
Automatisierung der Aufgabe der Teilung einer willkürlichen
Verknüpfungslogikschaltung entsprechend einem einfachen Kri
terium, das durch den Entwickler vorgegeben ist, schneller
und mit geringerer Stumpfsinnigkeit zu arbeiten.
Das Verfahren der Erfindung beginnt mit einer Beschreibung
einer vorhandenen Pipeline-Stufe. Der Entwickler stellt ein
Kriterium zum Teilen dieser Stufe bereit. Von diesem Punkt
aus berechnet die Erfindung automatisch einen Teilungspunkt
für jeden Schaltungszweig und ändert die Beschreibung der
bestehenden Pipeline-Stufe in eine Beschreibung von zwei
neuen Stufen, eine auf jeder Seite der Teilungspunkte.
Die Erfindung wird bevorzugterweise in einem CAD-System nach
der Art, wie es in Fig. 2 gezeigt ist, ausgeführt. Ein Com
puter 27 schließt im allgemeinen einen Zentralprozessor
("CPU" = Central Processing Unit = zentrale Verarbeitungs
einheit) 29, einen Speicher mit wahlfreiem Zugriff ("RAM" =
Random Access Memory) 31 und einen Speicher, wie z. B. ein
magnetisches Plattenlaufwerk 33, ein. Ein Entwickler steht
mit dem Computer durch eine Tastatur 35 und eine Maus 37 in
Verbindung und beobachtet die Ergebnisse auf dem Anzeige
schirm 39. Der Computer 27 kann ebenfalls mit einem Drucker
oder mit einem anderen erwünschten Ausgabegerät (nicht ge
zeigt) verbunden sein.
Die Software, die für das bestimmte Computersystem und für
die Art des Entwurfs, bei dem das System helfen soll, geeig
net ist, wird in dem Computer gespeichert, typischerweise in
dem magnetischen Plattenlaufwerk 33, und wird nach Bedarf in
den RAM 31 geladen.
Ein einfaches Beispiel einer Pipeline-Stufe, die ein Ent
wickler in zwei Stufen teilen möchte, ist in Fig. 3 bis 6
gezeigt. Die Eingangsdaten werden einem Paar von Datenein
gängen 41 und 43 bereitgestellt und beim Auftreten eines
Taktimpulses, der durch einen Takteingang 49 bereitgestellt
wird, in ein Paar von Zwischenspeichern 45 bzw. 47 zwischen
gespeichert. Die Daten werden durch eine Verknüpfungsschal
tung, die allgemein mit 51 bezeichnet ist, die eine Mehrzahl
von Schaltungselementen 53 bis 79 umfaßt, verarbeitet. Die
Ausgangsdaten werden an den Datenausgängen 81 und 83 bereit
gestellt.
Die verschiedenen Elemente 53 bis 79 können elementare Lo
gikgatter, wie z. B. UND-Gatter und ODER-Gatter, Gruppen von
Gattern, wie z. B. Halbaddierer und Multiplexer und ähnliches
sein. Einige Elemente, wie z. B. das Element 53, können nur
einen Eingang und eine Mehrzahl von Ausgängen haben. Andere,
wie z. B. das Element 63 können eine Mehrzahl von Eingängen
und nur einen Ausgang haben. Andere können mehrere Eingänge
und mehrere Ausgänge haben. Die gesamte Verknüpfungslogik 51
kann einen oder mehrere Eingänge, einen oder mehrere Aus
gänge und einige wenige oder viele tausend Schaltungselemen
te haben.
Jedes Schaltungselement erfordert typischerweise eine end
liche Zeitdauer, um ein Ausgangssignal zu erzeugen. Im all
gemeinen wird sich die Zeit, die eine Art eines Elements
benötigt, von derjenigen, die ein anderes benötigt, unter
scheiden. Um die Beschreibung hier zu vereinfachen, wird an
genommen, daß alle Schaltungselemente 53 bis 79 gleiche Ver
arbeitungszeiten haben, aber es ist offensichtlich, daß das
Verfahren der Erfindung ebenso auf Pipeline-Stufen mit Ele
menten anwendbar ist, die unterschiedliche Verarbeitungszei
ten haben.
Das Verfahren der Erfindung wird nun in Fig. 7 genauer be
schrieben. Wie oben beschrieben wurde, schließen die Schrit
te des Verfahrens, das in einem CAD-System nach der Art, wie
es in Fig. 2 gezeigt ist, ausgeführt wird, das Speichern ei
ner Beschreibung einer vorhandenen Pipeline-Stufe 51, die
geteilt werden soll, in einem Speicherbereich des CAD-Sys
tems (Block 101); das Empfangen eines Kriteriums, das eine
erwünschte Teilung beschreibt (Block 103); die automatische
Berechnung eines Teilungspunktes für jeden Schaltungszweig
in der vorhandenen Pipeline-Stufe, wobei jeder Teilungspunkt
das Kriterium erfüllt (Block 105); und das automatische Ver
ändern der Beschreibung der vorhandenen Pipeline-Stufe in
einer Beschreibung einer neuen Eingangs-Pipeline-Stufe und
einer neuen Ausgangs-Pipeline-Stufe ein, wobei die neue Ein
gangs-Pipeline-Stufe die gesamte Schaltung der vorhandenen
Pipeline-Stufe einschließt, die Signale an die Teilungspun
kte abgeben, wobei die neue Ausgangs-Pipeline-Stufe die ge
samte Schaltung der vorhandenen Pipeline-Stufe einschließt,
die Signale von den Teilungspunkten empfängt (Block 107).
Die Beschreibung der vorhandenen Stufe 51 kann besonders für
die Aufgabe, die Stufe mittels des CAD-Systems in zwei Stu
fen zu teilen, eingegeben werden. Oder diese Beschreibung
kann bereits in dem CAD als Ergebnis von vorhergehenden Ent
wurfsaktivitäten durch den Entwickler oder das CAD-System
selbst gespeichert sein.
Typischerweise umfaßt die vorhandene Pipeline-Stufe eine
Mehrzahl von Schaltungselementen 53 bis 79, die durch eine
Signalverarbeitungszeitdauer charakterisiert sind. Das Kri
terium umfaßt eine erwünschte Signalverarbeitungszeitdauer
der neuen Eingangs-Pipeline-Stufe.
Der Schritt des automatischen Berechnens eines Teilungs
punktes umfaßt bevorzugterweise die Bestimmung jedes Schal
tungselements, für das die Signalverarbeitungszeitdauer von
dem Eingang der vorhandenen Pipeline-Stufe über irgendeinen
Schaltungsweg an den Ausgang dieses Schaltungselements die
erwünschte Signalverarbeitungszeitdauer überschreitet (Block
109); das Bestimmen jedes Eingangs jedes bestimmten Schal
tungselements, für das die Signalverarbeitungslaufdauer vom
Eingang der vorhandenen Pipeline-Stufe über irgendeinen mög
lichen Schaltungsweg zu diesem Eingang die erwünschte Si
gnalverarbeitungszeitdauer nicht überschreitet, als vor
läufiger Teilungspunkt (Block 111); und das Verbinden jeg
licher vorläufigen Teilungspunkte, die ein Signal von einer
gemeinsamen Quelle empfangen, zu einem einzelnen Teilungs
punkt (Block 113). Ein "Schaltungselement" schließt einen
Ausgangsanschluß der Stufe, wie z. B. die Datenausgängen 81
und 83, als auch die Gatter und andere Elemente innerhalb
der Stufe ein; dies stellt sicher, daß ein geeigneter Tei
lungspunkt zwischen einem Stufenausgang und einem Stufen
eingang eingefügt wird, wenn irgendwelche Daten durch die
Stufe von dem Eingang an den Ausgang geschickt werden, ohne
daß sich irgendwelche Gatter dazwischen befinden.
In Fig. 8 umfaßt der Schritt des automatischen Berechnens
eines Teilungspunkts bevorzugterweise folgende Schritte:
- (a) Bestimmen jedes Schaltungselements, das ein Ausgangs signal der vorhandenen Pipeline-Stufe erzeugt (Block 115);
- (b) Auswählen irgendeines der bestimmten Schaltungselemente (117);
- (c) Auswählen eines Eingangs des ausgewählten Schaltungs elements (Block 119);
- (d) Berechnen der maximalen Signalverarbeitungszeitdauer von dem Eingang der vorhandenen Pipeline-Stufe über irgend einen möglichen Schaltungsweg an den ausgewählten Ein gang (Block 121);
- (e) wenn die berechnete Zeit die erwünschte Signalverarbei tungszeitdauer überschreitet ("JA"-Ausgabe des Blocks 123), bestimmen dieses Schaltungselements, das ein Signal an den ausgewählten Eingang abgibt (Block 125);
- (f) wenn die berechnete Zeit die erwünschte Signalverarbei tungszeitdauer nicht überschreitet ("NEIN"-Ausgabe des Blocks 123), bestimmen des ausgewählten Eingangs als einen vorläufigen Teilungspunkt (Block 127);
- (g) Wiederholen der Schritte (c) bis (f) bis es keine Ein gänge der ausgewählten Schaltungselemente mehr gibt (Block 129);
- (h) Wiederholen der Schritte (b) bis (g) bis es keine be stimmten Schaltungselemente mehr gibt (Block 131); und
- (i) Verbinden jeglicher vorläufigen Teilungspunkte, die ein Signal von einer gemeinsamen Quelle empfangen, zu einem einzelnen Teilungspunkt (Block 133).
In Fig. 3 bis 6 wird nun die tatsächliche Teilung der
Pipeline-Stufe 51 gemäß dem Verfahren der Erfindung be
schrieben. Es sei angenommen, daß es erwünscht ist, die Stu
fe derart zu teilen, daß die neue Eingangsstufe vier Zeit
einheiten verwendet. Es sei ebenfalls angenommen, daß jedes
Schaltungselement eine Zeiteinheit verwendet, um sein Aus
gangssignal nach dem Empfangen seines Eingangssignals zu er
zeugen.
Zuerst werden die tatsächlichen Stufenausgänge 81 und 83 be
stimmt, wie es durch den Buchstaben "M" in Fig. 4 angezeigt
ist. Einer dieser, z. B. 81, wird ausgewählt und sein einzi
ger Eingang wird ausgewählt. Die maximale Signalverarbei
tungszeitdauer über irgendeinen möglichen Weg von dem Stu
feneingang zu diesem gewählten Eingang wird berechnet. In
diesem Fall wäre der am längsten dauernde Weg der Weg, der
an dem Ausgang des Zwischenspeichers 45 beginnt und sich
durch die Elemente 53, 57, 61, 63, 69, 71, 73 und 75 er
streckt. Dieser Weg hat acht Elemente, folglich würde die
Gesamtzeit für das Signal zum Durchlaufen dieser Elemente
acht Zeiteinheiten betragen. Dies ist mehr als die erwün
schte Teilungszeit von vier Zeiteinheiten, so daß das Gatter
75, das das Signal dem ausgewählten Eingang bereitstellt,
bestimmt wird, wie es durch einen Buchstaben "M" in Fig. 4
angezeigt ist.
Es gibt keine weiteren Eingänge des Ausgangs 81, so daß ein
weiteres bestimmtes Element, z. B. das Element 75 ausgewählt
wird und einer seiner Eingänge, z. B. ein Eingang 85, ausge
wählt wird. Die maximale Zeitdauer für ein Signal, um diesen
ausgewählten Eingang zu erreichen, beträgt sieben Zeitein
heiten. Dies ist mehr als die erwünschte Zeitdauer von vier
Zeiteinheiten, folglich wird das Gatter 69, das das Signal
an diesen Punkt bereitstellt, bestimmt, wie es durch einen
Buchstaben "M" angezeigt ist.
Dann wird der andere Eingang des Gatters 75 ausgewählt und
derselbe Vorgang führt zu einer Bestimmung des Gatters 73.
Dann wird ein weiteres bestimmtes Schaltungselement, z. B.
das Gate 69, ausgewählt und einer seiner Eingänge, z. B. der
Eingang 87, wird bestimmt. Die maximale Zeitdauer für ein
Signal, um diesen Eingang zu erreichen, beträgt vier Einhei
ten, durch die Gatter 53, 57, 61 und 65. Dies überschreitet
nicht die erwünschte Teilungszeitdauer, die ebenfalls vier
Einheiten beträgt, so daß dieser Eingang als vorläufiger
Teilungspunkt 89 bestimmt wird, wie durch einen Buchstaben
"X" in Fig. 4 angezeigt ist. Das Verfahren wird dann fortge
setzt, bis es keine bestimmten Schaltungselemente mehr aus
zuwählen gibt, und bis keine Eingänge irgendwelcher der be
stimmten Elemente übrigbleiben, um ausgewählt zu bleiben.
Bei dem Beispiel führt dieses Verfahren zur vorläufigen Be
stimmung von fünf Teilungspunkten: dem Punkt 89, wie oben
beschrieben wurde, und den Punkten 91, 93, 95 und 97.
Abschließend werden die Eingänge dieser fünf vorläufigen
Teilungspunkte untersucht, und es wird festgestellt, daß die
Punkte 91 und 93 ihre Eingangssignale von einer gemeinsamen
Quelle, der Quelle 63, empfangen. Entsprechend werden diese
Punkte zu einem einzelnen Teilungspunkt 99 zusammengefaßt
und die Schaltung wird an den vier Teilungspunkten 89, 95,
97 und 99 in eine neue Eingangs-Stufenschaltung 51A und eine
neue Ausgangs-Stufenschaltung 51B geteilt, wie es in Fig. 5
gezeigt ist.
Wahlweise kann ein Satz Zwischenspeicher 141, 143, 145 und
147 an diesen vier Teilungspunkten zwischen den Schaltungen
51A und 51B eingefügt werden, wie in Fig. 6 gezeigt ist, um
eine vollständige Pipeline zu definieren.
Es ist offensichtlich, daß es optimal effizient sein kann,
die Signalflußzeitdauer durch alle möglichen Wege bei einem
einzelnen Durchgang der Schaltung 51 zu berechnen, bevor die
oben angeführten und in Fig. 8 dargestellten Schritte aus
geführt werden. Wenn dies durchgeführt wird, besteht der
Schritt des Berechnens der maximalen Signalzeitdauer für
einen ausgewählten Eingang (Block 121) tatsächlich nur aus
dem Nachschauen der vorher berechneten Zeitdauer für diesen
Ort in der Schaltung. Alternativ kann es bei einigen Aus
führungsbeispielen effizienter sein, nicht alle dieser Be
rechnungen gleichzeitig durchzuführen; in diesem Fall be
steht der Schritt des Berechnens der maximalen Zeitdauer aus
der tatsächlichen Berechnung der Signallaufzeitdauer über
alle Wege zu dem ausgewählten Eingang.
Es ist offensichtlich, daß das Verfahren der Erfindung wie
derholt angewendet werden kann, um eine Pipeline-Stufe in so
viele zusätzliche Stufen zu unterteilen, wie es erwünscht
ist. Beim Abschluß des Verfahrens erzeugt das CAD-System
neue Netzlisten für die geteilten Stufen.
Bei einem Ausführungsbeispiel initialisiert der Entwickler
das Teilungsverfahren durch Einfügen eines Satzes von Zwi
schenspeichern an den Ausgängen der zu teilenden Stufe und
dann gibt er dem System die Anweisung, diese Zwischenspei
cher zurück auf den erwünschten Teilungspunkt zu bewegen.
Dies schafft eine nützliche sichtbare Schnittstelle, die es
dem Entwickler ermöglicht, darzustellen, was das System tat
sächlich macht. Es ermöglicht es dem Entwickler ebenfalls,
mit einer geeigneten Signalflußänderung aufgrund des zusätz
lichen Satzes von Zwischenspeichern eine Teilung anzunehmen
und dann andere Aspekte des Gesamtentwurfs zu überprüfen,
ohne darauf zu warten, daß das CAD-System die Teilung tat
sächlich durchführt.
Aus dem Vorhergehenden ist es offensichtlich, daß das Ver
fahren der Erfindung ein CAD-System mit der Fähigkeit schaf
ft, Pipeline-Stufen, die aus einem willkürlichen Logiknetz
werk bestehen, automatisch in zwei Stufen gemäß einem Kri
terium, das durch den Entwickler bestimmt ist, zu teilen,
wodurch das Entwurfsverfahren beschleunigt wird und die Ar
beit des Entwicklers vereinfacht wird.
Claims (4)
1. Verfahren zum automatischen Teilen einer Pipeline-Stufe
(51) in zwei Pipeline-Stufen (51A, 51B), wobei das Ver
fahren folgende Schritte umfaßt, die in einem Computer
unterstützten Entwurfssystem (27, 35, 39) durchgeführt
werden:
- - Speichern (101) einer Beschreibung einer vorhandenen Pipeline-Stufe (51), die geteilt werden soll, in einem Speicherbereich (31, 33) des Computer-unterstützten Entwurfsystems (27, 35, 39);
- - Empfangen (103) eines Kriteriums, das eine erwünschte Teilung beschreibt;
- - automatisches Berechnen (105) eines Teilungspunktes (89, 91, 93, 95, 97) für jeden Schaltungszweig in der vorhandenen Pipeline-Stufe (51), wobei jeder der Tei lungspunkte das Kriterium erfüllt; und
- - automatisches Ändern (107) der Beschreibung der vor handenen Pipeline-Stufe in eine Beschreibung einer neuen Eingangs-Pipeline-Stufe (51A) und einer neuen Ausgangs-Pipeline-Stufe (51B), wobei die neue Ein gangs-Pipeline-Stufe (51A) die gesamte Schaltung der vorhandenen Pipeline-Stufe (51) umfaßt, die den Tei lungspunkten (89, 91, 93, 95, 97) Signale bereit stellt, wobei die neue Ausgangs-Pipeline-Stufe (51B) die gesamte Schaltung der vorhandenen Pipeline-Stufe (51) einschließt, die Signale von den Teilungspunkten (89, 91, 93, 95, 97) empfängt.
2. Verfahren nach Anspruch 1, bei dem die vorhandene Pipe
line-Stufe (51) eine Mehrzahl von Schaltungselementen
(53-79) umfaßt, die jeweils durch eine Signalverarbei
tungsdauer charakterisiert sind, und bei dem das Kri
terium eine erwünschte Signalverarbeitungszeitdauer der
neuen Eingangs-Pipeline-Stufe (51A) umfaßt.
3. Verfahren nach Anspruch 2, bei dem der Schritt des auto
matischen Berechnens (105) eines Teilungspunktes folgen
de Schritte aufweist:
- - Bestimmen (109) jedes Schaltungselements, für das die Signalverarbeitungszeitdauer von dem Eingang der vor handenen Pipeline-Stufe (51) über irgendeinen möglich en Schaltungsweg zu dem Ausgang dieses Schaltungsele ments die erwünschte Signalverarbeitungszeitdauer überschreitet;
- - Bestimmen (111) jedes Eingangs jedes bestimmten Schal tungselements, für das die Signalverarbeitungszeitdau er von dem Eingang der vorhandenen Pipeline-Stufe (51) über irgendeinen möglichen Schaltungsweg zu diesem Eingang die erwünschte Signalverarbeitungszeitdauer nicht überschreitet, als vorläufigen Teilungspunkt; und
- - Verbinden (113) jeglicher vorläufiger Teilungspunkte, die ein Signal von einer gemeinsamen Quelle empfangen, zu einem einzelnen Teilungspunkt.
4. Verfahren nach Anspruch 2, bei dem der Schritt des auto
matischen Berechnens (105) eines Teilungspunktes folgen
de Schritte aufweist:
- (a) Bestimmen (115) jedes Schaltungselements, das einen Ausgang der vorhandenen Pipeline-Stufe (51) dar stellt, wobei das bestimmte Element anfänglich je den Ausgangspunkt der Stufe einschließt;
- (b) Auswählen (117) eines bestimmten Schaltungsele ments;
- (c) Auswählen (119) eines Eingangs des ausgewählten Schaltungselements;
- (d) Berechnen (121) der maximalen Signalverarbeitungs zeitdauer von dem Eingang der vorhandenen Pipeli ne-Stufe (51) über irgendeinen möglichen Schal tungsweg zu dem ausgewählten Eingang;
- (e) Bestimmen (125) des Schaltungselements, das ein Signal dem ausgewählten Eingang bereitstellt und Einschließen des bestimmten Elements in die Elemen te, die in Schritt (a) bestimmt wurden, wenn die berechnete Zeitdauer die erwünschte Signalverarbei tungszeitdauer überschreitet;
- (f) Bestimmen (127) des ausgewählten Eingangs als einen vorläufigen Teilungspunkt, wenn die berechnete Zeitdauer die erwünschte Signalverarbeitungszeit dauer nicht überschreitet;
- (g) Wiederholen (129) der Schritte (c) bis (f), bis es keine Eingänge der ausgewählten Schaltungselemente mehr gibt;
- (h) Wiederholen (131) der Schritte (b) bis (g), bis es keine bestimmten Schaltungselemente mehr gibt; und
- (i) Verbinden (133) jeglicher vorläufiger Teilungspunk te, die ein Signal von einer gemeinsamen Quelle empfangen, in einem einzelnen Teilungspunkt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/089,006 US5519626A (en) | 1993-07-09 | 1993-07-09 | Method of dividing a pipelined stage into two stages in a computer-aided design system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4416143A1 true DE4416143A1 (de) | 1995-02-23 |
Family
ID=22214845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4416143A Withdrawn DE4416143A1 (de) | 1993-07-09 | 1994-05-06 | Verfahren zum Entwerfen von Pipeline - Stufen in einem Computer-unterstützten Entwurfssystem |
Country Status (4)
Country | Link |
---|---|
US (1) | US5519626A (de) |
JP (1) | JPH0736968A (de) |
DE (1) | DE4416143A1 (de) |
GB (1) | GB2279785A (de) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1127147C (zh) * | 1997-07-03 | 2003-11-05 | 松下电器产业株式会社 | 一种流水线电路合成方法 |
JP3717144B2 (ja) * | 1999-06-03 | 2005-11-16 | シャープ株式会社 | 高位合成装置および高位合成方法並びに高位合成プログラムを記録した記録媒体 |
US6853968B2 (en) | 2000-01-20 | 2005-02-08 | Arm Limited | Simulation of data processing apparatus |
GB2358496A (en) * | 2000-01-20 | 2001-07-25 | Advanced Risc Mach Ltd | Simulation of data processing apparatus including pipelined circuit elements |
JP3472527B2 (ja) * | 2000-05-16 | 2003-12-02 | 松下電器産業株式会社 | 論理回路モジュール及びこれを用いた半導体集積回路の設計方法並びに半導体集積回路 |
US7207024B2 (en) * | 2002-09-13 | 2007-04-17 | Cadence Design Sytems, Inc. | Automatic insertion of clocked elements into an electronic design to improve system performance |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3875391A (en) * | 1973-11-02 | 1975-04-01 | Raytheon Co | Pipeline signal processor |
US4807183A (en) * | 1985-09-27 | 1989-02-21 | Carnegie-Mellon University | Programmable interconnection chip for computer system functional modules |
WO1990008362A2 (en) * | 1989-01-13 | 1990-07-26 | Vlsi Technology, Inc. | Method for analyzing datapath elements |
US5212782A (en) * | 1989-01-13 | 1993-05-18 | Vlsi Technology, Inc. | Automated method of inserting pipeline stages in a data path element to achieve a specified operating frequency |
US5133069A (en) * | 1989-01-13 | 1992-07-21 | Vlsi Technology, Inc. | Technique for placement of pipelining stages in multi-stage datapath elements with an automated circuit design system |
US5175843A (en) * | 1989-10-30 | 1992-12-29 | General Electric Company | Computer-aided design method for restructuring computational networks to minimize shimming delays |
US5341322A (en) * | 1992-05-11 | 1994-08-23 | Teknekron Communications Systems, Inc. | Bit level pipeline divide circuit and method therefor |
-
1993
- 1993-07-09 US US08/089,006 patent/US5519626A/en not_active Expired - Lifetime
-
1994
- 1994-05-06 DE DE4416143A patent/DE4416143A1/de not_active Withdrawn
- 1994-07-04 GB GB9413425A patent/GB2279785A/en not_active Withdrawn
- 1994-07-07 JP JP6179406A patent/JPH0736968A/ja active Pending
Non-Patent Citations (2)
Title |
---|
In: Proc. 29th Design Automation Conference, 1992, S. 638-643 * |
PRABHU, Usha, PANGRLE, Barry M.: Superpipelined Control and Data Path Synthesis * |
Also Published As
Publication number | Publication date |
---|---|
GB2279785A (en) | 1995-01-11 |
US5519626A (en) | 1996-05-21 |
GB9413425D0 (en) | 1994-08-24 |
JPH0736968A (ja) | 1995-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19914210B4 (de) | Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung | |
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
DE2934971C2 (de) | Nach dem Fließbandprinzip arbeitender Zentralprozessor | |
DE3882487T2 (de) | Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen. | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE3306084A1 (de) | Rechnerarchitektur zur gleitkomma -addition | |
DE3750028T2 (de) | Pipelineprozessor mit schwacher Kopplung. | |
DE3508640A1 (de) | Computersystem zur implementierung eines ereignisgesteuerten simulationsalgorithmus | |
DE69632655T2 (de) | Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen | |
DE4403917C2 (de) | Vorrichtung zum Berechnen einer Bit-Besetzungszählung | |
DE69230626T2 (de) | Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen | |
DE112019000676T5 (de) | Zentraler scheduler und anweisungszuteiler für einen neuronalen inferenzprozessor | |
DE3855524T2 (de) | Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator | |
DE3485771T2 (de) | Leistungsfaehiger paralleler vektorprozessor. | |
DE3507584C2 (de) | ||
DE4345029C2 (de) | Schaltkreis für diskrete Kosinustransformation | |
DE69808362T2 (de) | Multiplizierverfahren und Multiplizierschaltung | |
DE69029608T2 (de) | Digitale Signalprozessorvorrichtung | |
EP0657044A1 (de) | Rechnersystem mit mindestens einem mikroprozessor und mindestens einem coprozessor und verfahren zu dessen betrieb. | |
DE4416143A1 (de) | Verfahren zum Entwerfen von Pipeline - Stufen in einem Computer-unterstützten Entwurfssystem | |
DE19528760A1 (de) | Bildverarbeitende Schaltung eines hohen Integrationsgrads | |
DE3486073T2 (de) | Vektorverarbeitungsgeraet. | |
DE102007034684A1 (de) | Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8130 | Withdrawal |