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 Entwurfssystem

Info

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
Application number
DE4416143A
Other languages
English (en)
Inventor
Bruce Culbertson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE4416143A1 publication Critical patent/DE4416143A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit 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)
  • Image Generation (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Advance Control (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.
DE4416143A 1993-07-09 1994-05-06 Verfahren zum Entwerfen von Pipeline - Stufen in einem Computer-unterstützten Entwurfssystem Withdrawn DE4416143A1 (de)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW557574B (en) * 1997-07-03 2003-10-11 Matsushita Electric Ind Co Ltd Functional module model, pipelined circuit synthesis and pipelined circuit device
JP3717144B2 (ja) 1999-06-03 2005-11-16 シャープ株式会社 高位合成装置および高位合成方法並びに高位合成プログラムを記録した記録媒体
GB2358496A (en) * 2000-01-20 2001-07-25 Advanced Risc Mach Ltd Simulation of data processing apparatus including pipelined circuit elements
US6853968B2 (en) 2000-01-20 2005-02-08 Arm Limited Simulation of data processing apparatus
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)

* Cited by examiner, † Cited by third party
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
JPH04502677A (ja) * 1989-01-13 1992-05-14 ブイエルエスアイ テクノロジー,インコーポレイティド データパス素子の分析方法
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

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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
US5519626A (en) 1996-05-21
GB2279785A (en) 1995-01-11
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
DE3882487T2 (de) Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen.
DE2758830A1 (de) Rechenvorrichtung
DE3306084A1 (de) Rechnerarchitektur zur gleitkomma -addition
DE3750028T2 (de) Pipelineprozessor mit schwacher Kopplung.
DE60223143T2 (de) Bereichsgroessen-ablaufverfahren fuer die mehrfachbehandlung von vielen artikeln
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
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
DE69029608T2 (de) Digitale Signalprozessorvorrichtung
WO1994006077A1 (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
DE68903280T2 (de) Vektorschlange in computern mit vektorregister.
DE3486073T2 (de) Vektorverarbeitungsgeraet.
DE2039228A1 (de) Verfahren und Vorrichtung zum Konvertieren und Stellenwert-Verschieben von Zahlsignalen unterschiedlicher Codes in einer Datenverarbeitungsanlage
DE102007034684A1 (de) Verfahren zum Betrieb eines Multiprozessorsystems, insbesondere im Zusammenhang mit einem medizinischen bildgebenden System
DE10335326A1 (de) Verfahren und Vorrichtung zur Simulation von Prozessabläufen in der graphischen Industrie

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8130 Withdrawal