DE69228652T2 - Verfahren und Vorrichtung zur Durchführung von Submodel-Steuerung in einem Datenverarbeitungssystem - Google Patents

Verfahren und Vorrichtung zur Durchführung von Submodel-Steuerung in einem Datenverarbeitungssystem

Info

Publication number
DE69228652T2
DE69228652T2 DE69228652T DE69228652T DE69228652T2 DE 69228652 T2 DE69228652 T2 DE 69228652T2 DE 69228652 T DE69228652 T DE 69228652T DE 69228652 T DE69228652 T DE 69228652T DE 69228652 T2 DE69228652 T2 DE 69228652T2
Authority
DE
Germany
Prior art keywords
counter
sub
count
modulo
instruction
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.)
Expired - Fee Related
Application number
DE69228652T
Other languages
English (en)
Other versions
DE69228652D1 (de
Inventor
Russell W. Guenthner
Ronald E. Lange
Leonard Rabins
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.)
Bull HN Information Systems Inc
Original Assignee
Bull HN Information Systems Inc
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 Bull HN Information Systems Inc filed Critical Bull HN Information Systems Inc
Application granted granted Critical
Publication of DE69228652D1 publication Critical patent/DE69228652D1/de
Publication of DE69228652T2 publication Critical patent/DE69228652T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

    Gebiet der Erfindung
  • Diese Erfindung bezieht sich auf Zentraleinheiten für Datenverarbeitungssysteme und im besonderen auf ein Verfahren und eine Vorrichtung zum Steuern der Instruktionsausführungsgeschwindigkeit in einer Zentraleinheit, um Submodel- Steuerung durchzuführen.
  • Hinterrund der Erfindung
  • Bei Vermarktung einer Familie von Datenverarbeitungssystemen ist es allgemein üblich, Systeme mit unterschiedlichen Fähigkeiten bezüglich der Verarbeitungsgeschwindigkeit anzubieten, welche Zentraleinheiten (CPUs) aufweisen, die außer bei der Verarbeitungsgeschwindigkeitsbemessung im wesentlichen dieselben sind. Es ist deshalb notwendig, Modifizierungen zu den Schaltkreisen, welche die Instruktionsausführungsgeschwindigkeit bestimmen, zu liefern, um die Verarbeitungsgeschwindigkeiten der geschwindigkeitsverminderten CPUs zu verlangsamen.
  • Solche Modifizierungen können so einfach sein, wie etwa das Vorsehen eines langsameren Systemtakts, aber diese Technik kann, wegen potentiell schwieriger Einflüsse auf andere Systemkomponenten außer den CPU(s), Probleme bereiten. Dieser Ansatz kann auch feine zeitliche Abstimmungsprobleme in den CPU(s) selbst veranlassen, besonders im Falle von Fließband-CPUs, wie sie typischerweise in leistungsstarken Großrechnersystemen verwendet werden.
  • Somit ist es für Fachleute verständlich, daß es wünschenswert wäre, Submodel- Steuerung derart durchzuführen, daß ein verläßlicher Systembetrieb absolut unbeeinflußt ist und daß die Betriebsgeschwindigkeit bei einem präzisen Bruchteil der Höchstgeschwindigkeit einer jeden Instruktionsausführung eingerichtet ist, sogar für Instruktionen, deren Ausführungsperiode variabel sein darf.
  • Im folgenden Stand der Technik werden verschiedene Vorrichtungen zum Steuern der Instruktionsausführungsgeschwindigkeit bekanntgegeben.
  • EP-A-0 357 250 beschreibt einen Datenprozessor, welcher mit einem Mechanismus zum Steuern seiner Leistung ausgestattet ist. Dem Prozessor ist es ermöglicht für R Taktschläge normal zu laufen, und dann sind weitere Instruktionsstarts für W Taktschläge gesperrt. Das Verhältnis W/R bestimmt das Leistungsniveau des Prozessors.
  • EP-A-0 196 964 beschreibt ein System zur Leistungsanpassung eines Prozessors, in welchem jegliche Leistung eines Prozessors eingefroren ist, wenn die Ausführungssperrperiode auftritt.
  • JP-A-3 126 131 lehrt eine Ausführungsgeschwindigkeits-Steuervorrichtung, welche periodisch ein Halt-Befehlssignal an die CPU liefert, um den Verarbeitungsbetrieb während des Empfangs des Halt-Befehlssignals zu unterbrechen.
  • Die vorliegende Anmeldung unterscheidet sich von dem bekannten Stand der Technik dadurch, daß eine stärker vereinfachte und effektivere Steuerlogik vorgesehen wird, um den Beginn der Instruktionen für eine vorbestimmte Zahl von Taktschlägen zu verhindern.
  • Es ist daher eine umfassende Aufgabe dieser Erfindung, ein verbessertes Verfahren und eine verbesserte Vorrichtung zum Durchführen von Submodel-Steuerung bei einer Familie von Zentraleinheiten zu schaffen.
  • Es ist ein anderer Aspekt dieser Erfindung, ein Verfahren und eine Vorrichtung zum Durchführen von Submodel-Steuerung bei einer Familie von Zentraleinheiten zu schaffen durch Anwenden von Fließbandprozessoren, und bei denen eine Geschwindigkeitsverminderung dadurch erreicht wird, daß nachteilige zeitliche Abstimmungseffekte weder in das System als Ganzes noch in den geschwindigkeitsverminderten Prozessor eingeführt werden.
  • Es ist ein weiterer Aspekt dieser Erfindung, ein Verfahren und eine Vorrichtung zum Durchführen von Submodel-Steuerung zu schaffen, durch Erreichen einer virtuellen Ausführungsgeschwindigkeit, die ein bekannter Bruchteil der Höchstgeschwindigkeit ist, für alle Instruktionen einschließlich derer mit variabler Periode.
  • Zusammenfassung der Erfindung
  • Diese und andere Aufgaben der Erfindung sind auf vorteilhafte Art gelöst, im wesentlichen durch Anwenden der in den charakterisierenden Teilen der unabhängigen Ansprüche 1 (Verfahren) und 6 (Vorrichtung) niedergelegten Kennzeichen. Weitere Verbesserungen, Merkmale und Aspekte der Erfindung sind in den beigefügten, abhängigen Ansprüchen festgelegt.
  • Kurz gesagt wird ein Unterzähler geschaffen, welcher gesteuert ist, von einem Anfangszählstand vorwärts zu zählen, wenn eine Instruktion ausgeführt wird, und dann mit derselben Geschwindigkeit rückwärts zu zählen, um eine effektive Ver zögerung zu erreichen, bevor das Verarbeiten der Instruktion, welche während normaler Programmausführung verarbeitet werden soll, begonnen wird. Die Instruktionsübertragung und das Dekodieren der neuen Instruktion, die in die Pipeline eingegeben wird, sind gesperrt, bis das höchstwertige Bit ("Vorzeichen-Bit") des Unterzählers den Zustand ändert. Wenn es dem Unterzähler erlaubt ist während der gesamten Vorwärts- und Rückwärtszählperioden zu zählen, wird ein Geschwindigkeitsverminderungsmodus von 1/2 erreicht. Um andere Bruchteile wie 1/4 und 3/4 zu erhalten, wird der Unterzähler gesteuert, während der einen Zählrichtungsperiode periodisch zu zählen und während der anderen Zählrichtungsperiode die ganze Zeit zu zählen.
  • Beschreibung der Zeichnungen
  • Das Verfahren und die Vorrichtung der Erfindung können am besten in Bezug auf die folgende Beschreibung verstanden werden, die in Verbindung mit den sie begleitenden Zeichnungen verfaßt wurde:
  • Fig. 1 ist ein schematisches Blockdiagramm einer beispielhaften Ausführung der Erfindung, die in ihrer Umgebung einer Zentraleinheit (CPU) abgebildet ist.
  • Fig. 2 ist ein Wellenformdiagramm, das den Betrieb der Erfindung veranschaulicht, wenn der beispielhafte Geschwindigkeitsverminderungsbruchteil 1/2 gewählt wurde;
  • Fig. 3 ist ein Wellenformdiagramm, das den Betrieb der Erfindung veranschaulicht, wenn der beispielhafte Geschwindigkeitsverminderungsbruchteil 1/4 gewählt wurde; und
  • Fig. 4 ist ein Wellenformdiagramm, das den Betrieb der Erfindung veranschaulicht, wenn der beispielhafte Geschwindigkeitsverminderungsbruchteil 3/4 gewählt wurde.
  • Beschreibung der bevorzugten Ausführungsform(en)
  • In der folgenden Beschreibung werden, im Interesse der Einfachheit, logische Abläufe nicht beachtet. Somit gelten, wenn die positiv gehende Vorderkante eines Takt-(CLK)-Signals eine Zustandsänderung in einem logischen Element verursacht, von diesem logischen Element getriebene Vorrichtungen durch irgendeine Reihe von beeinflußten logischen Vorrichtungen im selben Moment beurteilt, angetrieben und geschaltet und so weiter. In der Praxis werden der selektive Gebrauch von Multiphasentakten, von Vorder- und Hinterkanten von Taktimpulsen und andere Techniken benutzt, um logische Abläufe aufzulösen, wobei dies alles auch im Stand der Technik bekannt ist.
  • Die Aufmerksamkeit wird zuerst auf Fig. 1 gerichtet, welche eine augenblicklich bevorzugte Ausführungsform der Erfindung veranschaulicht, welche in positiver Logik und unter Benutzung von einfachen logischen Elementen realisiert ist. Die Umgebung der Erfindung befindet sich innerhalb einer Zentraleinheit (CPU), welche eine Datenmanipulationslogik 1 aufweist, die mit einem Speicher 2 auf normale Art kommuniziert. Die CPU weist auch eine Ablaufsteurung 3 auf, welche bestimmt, wann verschiedene Operationen, die an der Instruktionsausführung beteiligt sind, stattfinden.
  • Die Ablaufsteuerung liefert auch normale Ganzfrequenz-Taktimpulse an die erfinderische Logik auf der CLK-Strecke. Obwohl die Erfindung auf alle CPUs an wendbar ist, wird sie erst im Zusammenhang mit einem Fließbandprozessor beschrieben, in dem bestimmte Betriebsweisen, die an der Vorbereitung und Ausführung aufeinanderfolgender Instruktionen beteiligt sind, in einer überlappenden Art ausgeführt werden. So könnte, lediglich als Beispiel, die Ablaufsteuerung 3 die Datenmanipulationslogik 1 lenken, aufeinanderfolgend eine Instruktionsübertragung/Instruktionsdekodierung (IT/ID)-Phase einer neuen Instruktion in der Leitung, eine effektive Adressvirtuelle Adress-(EA/VA)-Phase der Instruktion unmittelbar davor, eine virtuell-zu-reell/Cache-Zugang-(VRCA)-Phase einer Instruktion zwei Positionen in der Leitung davor und eine Operand/Ausführungs- (OP/EX)-Phase einer Instruktion am Ende der Leitung zu beginnen. (Fachleute werden verstehen, daß OP/EX von einer kurzen "Säuberungs"-Phase gefolgt werden könnte, um eine letzte Gelegenheit zu liefern, um Fehler zu bearbeiten, um zu speichern, um zu vergleichen, etc. Die Säuberungsphase wird in der folgenden Beschreibung im Interesse der Klarheit ausgelassen.)
  • Eingänge zu der beispielhaften Logik weisen sich gegenseitig ausschließende 1/1, 1/4, 1/2 und 3/4-Signale auf. In der Praxis wäre nur einer von ihnen verdrahtet; verbunden oder auf andere Weise ausgewählt, um eine logische "1" zu liefern, um die ausgewählte Geschwindigkeitsverminderung zu spezifizieren. Wie es nachfolgend offensichtlicher wird, ist der Zweck der beispielhaften Logik, eine "VER- ZÖGERUNG NÄCHSTE IT/ID-PHASE" an die Ablaufsteuerung zu liefern, um die Geschwindigkeitsverminderung zu bewirken. Dieses Signal liegt vor, wenn die Ausgabe des UND-Gatters 4 eine logische "1" ist. Wenn die 1/1- Geschwindigkeit (d. h. keine Geschwindigkeitsverminderung) gewählt wurde, wird die 1/1-Eingabe durch die Umkehrschaltung 5 zu einer logischen "0" umgekehrt, welche ein Bein des UND-Gatters 4 treibt, das dadurch andauernd gesperrt wird und nicht das "VERZÖGERUNG NÄCHSTE IT/ID PHASE"-Signal ausgeben kann. Somit läuft die CPU mit voller Geschwindigkeit.
  • In der beispielhaften Ausführungsform wird eine Reihe von vier in Kaskadenform angeordneten Flip-Flops SM1 6, SM2 7, SM3 8 und SM4 9 benutzt. Ein Vorwärts/Rückwärts-Unterzähler 10 liefert eine gewisse wesentliche Steuerung über die Flip-Flop-Kaskade, wie es sich zeigen wird. In einigen Betriebsarten wird ein Modulo-3-Zähler 13 benutzt, der aus den Stufen SMA 11 und SMB 12 besteht. Es wird verständlich werden, daß eine geeignete herkömmliche Zwischenverbindung zwischen SMA und SMB zu einem Modulo-3-Betrieb führt, derart, daß die Zählfolge 00, 10, 01, 00, etc. ist.
  • Der Modulo-3-Zähler 13 wird zum Zählen durch ein logisches Netzwerk freigeschaltet oder gesperrt, welches durch SM4 9 und die 1/4- und 3/4-Eingänge getrieben ist. Der Q-Ausgang von SMB, der einen Zählstand von 01 (2&sub1;&sub0;) darstellt, wenn SMB gesetzt ist, wird an ein ODER-Gatter 14 angelegt, welches einen "Zähl"-Eingang zum Unterzähler 10 treibt. Somit kann der Unterzähler 10 nur zählen, wenn das ODER-Gatter 14 freigeschaltet ist, d. h., wenn der Modulo-3- Zähler 13 einen Zählstand von 2 hält.
  • Das Eingabelogiknetzwerk zum Modulo-3-Zähler 13 weist eine Umkehrschaltung 15 auf, welche durch ein ODER-Gatter 16 getrieben ist und welche selektiv den Modulo-3-Zähler zum Zählen freischaltet. Die Zusammenführung zwischen dem ODER-Gatter 16 und der Umkehrschaltung 15 ist mit einem anderen Eingang zum ODER-Gatter 14 verbunden derart, daß der Modulo-3-Zähler umgangen wird, wenn dieser Punkt bei einer logischen "1" ist. Das ODER-Gatter 16 hat zwei Eingänge, die entsprechend durch ein UND-Gatter 17 und ein UND-Gatter 18 getrieben werden. Ein Bein des UND-Gatters 17 ist mit dem 1/4-Signal verbunden, und das andere Bein wird durch die Umkehrschaltung 19 getrieben, welche wiederum durch den Q-Ausgang vom SM4 9 getrieben wird. Ähnlich ist ein Bein des UND-Gatters 18 mit dem 3/4-Signal verbunden, und das andere Bein wird direkt durch den Q-Ausgang vom SM4 9 getrieben.
  • Der Unterzähler 10 hat, zusätzlich zum Empfang von CLK-Pulsen und dem "Zähl"-Eingang vom ODER-Gatter 14, "Vorwärts"- und "Rückwärts"-Eingänge, um die Zählrichtung während des Zählens zu steuern. SM4 9 steuert die Zählrichtung, wobei sein Q-Ausgang mit dem "Rückwärts"-Eingang des Unterzählers 10 verbunden ist und sein Q-Strich-Ausgang mit dem "Vorwärts"-Eingang verbunden ist. Somit zählt der Unterzähler vorwärts, wenn SM4 zurückgesetzt wird und er zählt rückwärts, wenn SM4 gesetzt wird.
  • Im Beispiel sind die Flip-Flops 6, 7, 8, 9 als einfache getaktete Setzen/Zurücksetzen-Typen realisiert. Der Setzen-Eingang zu SM1 6 wird durch den Q-Strich-Ausgang von der höchstwertigen Bit-(MSB)-Stufe 22 des Unterzählers 10 getrieben und sein Zurücksetzen-Eingang wird durch die Umkehrschaltung 21 getrieben. Dadurch folgt SM1 immer dem Zustand der MSB-Stufe 22 des Unterzählers 10.
  • Die Setzen-Eingabe zu SM2 7 wird durch das UND-Gatter 23 getrieben, bei dem ein Bein mit dem Q-Strich-Ausgang von SM1 6 verbunden ist; das andere Bein wird durch das herkömmliche "LETZTE EA/VA AUSGEFÜHRT"-Signal von der Wechselwirkung zwischen der Datenmanipulationslogik 1 und der Ablaufsteuerung 3 getrieben. Der Zurücksetzen-Eingang zu SM2 7 ist mit dem Q- Ausgang von SM1 6 verbunden. Ähnlich ist der Setzen-Eingang zu SM3 8 durch ein UND-Gatter 24 getrieben, bei dem ein Bein mit dem Q-Strich-Ausgang von SM2 7 verbunden ist; das andere Bein ist durch das herkömmliche "LETZTER VR/CA AUSGEFÜHRT"-Signal getrieben. Der Zurücksetzen-Eingang zu SM3 8 ist mit dem Q-Ausgang von SM2 7 verbunden. Schließlich ist der Setzen-Eingang zu SM4 9 durch das UND-Gatter 25 getrieben, bei dem ein Bein mit dem Q- Strich-Ausgang von SM3 8 verbunden ist; das andere Bein ist durch das herkömmliche "LETZTE OP/EX AUSGEFÜHRT"-Signal getrieben. Der Zurücksetzen-Eingang zu SM4 9 ist mit dem Q-Ausgang von SM3 8 verbunden.
  • Der erste zu beschreibende Geschwindigkeitsverminderungsmodus ist 1/2. Wenn das 1/2-Signal unter Ausschluß von 1/1, 1/4 und 3/4 vorliegt, ist das ODER-Gatter 14 permanent freigeschaltet, und das Bein des UND-Gatters 4, das durch die Umkehrschaltung 5 getrieben ist, ist permanent bei einer logischen "1". In diesem Modus zählt der Modulo-3-Zähler 13, hat aber keinen Einfluß, da das ODER- Gatter 14 permanent freigeschaltet ist. Ferner schaltet die Tatsache, daß das ODER-Gatter permanent freigeschaltet ist, auch den Unterzähler 10 frei, um kontinuierlich zu zählen.
  • Unter Bezugnahme auf Fig. 2 wie auch auf Fig. 1 kann ein Anfangspunkt für eine Analyse des Betriebes angenommen werden, bei dem der Unterzähler 10 rückwärts zählt und der MSB 22 gerade von einer logischen "0" zu einer logischen "1" gewechselt hat, um anzuzeigen, daß der Unterzähler jetzt eine negative Zahl enthält. In der Praxis wird der beispielhafte Unterzähler dann bei einem Referenzzählstand sein, der die größte negative Zahl ist, die dieser enthalten kann; d. h., alle logischen "1"en. Der Flip-Flop SM1 6 wird in diesem Moment zurückgesetzt, und es wird der IT/ID-Phase ermöglicht, eine neue Instruktion, welche in die Leitungsinstruktion eingegeben wird, zu beginnen. Die Flip-Flops SM2 7, SM3 8 und SM4 9 werden darauffolgend durch die nächsten drei Taktimpulse zurückgesetzt.
  • Der Unterzähler 10 wird fortfahren, rückwärts zu zählen, bis SM 4 zurückgesetzt wird (Q-Strich- = "1"), woraufhin der Unterzähler 10 umkehren und anfangen wird, von einem Zählstand von -3 vorwärts zu zählen. Sobald der MSB 22 des Unterzählers 10 positiv wird ("0"), was bei dem nächsten Taktimpuls, nachdem der Unterzähler alle "1"en enthält, gegeben ist, wird SM1 gesetzt. Das veranlaßt seinen Q-Ausgang auf "1" zu gehen und schaltet somit das UND-Gatter 4, welches das "VERZÖGERUNG NÄCHSTE IT/ID PHASE"-Signal an die Ablaufsteuerung 3 ausgibt, voll frei. Der Q-Ausgang schaltet auch teilweise das UND- Gatter 23 frei.
  • In der Zwischenzeit wird kaskadenartig die EA/VA-Phase begonnen haben, und wenn die letzte EA/VA-Aufgabe beendet worden ist, wird das "LETZTE EA/VA AUSGEFÜHRT"-Signal das UND-Gatter 23 voll freigeschaltet, um SM2 zu setzen derart, daß sein Q-Ausgang das UND-Gatter 24 teilweise freischaltet. Die VR/CA-Phase wird begonnen haben, und wenn die letzte VR/CA-Aufgabe beendet worden ist, wird das "LETZTE VR/CA AUSGEFÜHRT"-Signal das UND- Gatter 24 voll freischalten, um SM3 derart zu setzen, daß sein Q-Ausgang teilweise das UND-Gatter 25 freischaltet. Die OP/EX-Phase wird begonnen haben, und wenn die letzte OP/EX-Aufgabe beendet worden ist, wird das "LETZTE OP/EX AUSGEFÜHRT"-Signal das UND-Gatter 25 voll freischalten, um SM4 zu setzen derart, daß sein Q-Ausgang auf "1" schaltet und sein Q-Strich auf "0".
  • Wenn SM4 gesetzt ist, ist der Unterzähler 10 zu einem Endzählstand, im Beispiel +5, angewachsen, welcher (unter Berücksichtigung der Vorwärts- und Rückwärts- Zählaktivität des Unterzählers) direkt mit der Echtzeit verbunden ist, egal wie unterschiedlich die Zeit ist, die benötigt wurde, um die erfüllte Instruktion auszuführen. (Es ist verständlich, daß die Länge des Unterzählers 10 ausreichend groß gewählt ist, damit sie beim Vorwärtszählen nie vollkommen gefüllt wird. Bei der aktuellen Realisierung der Erfindung stellte sich zum Beispiel heraus, daß ein 16- Bit-Zähler geeignet ist, sogar die ausgedehntesten Gleitpunkt- und/oder virtuellen Adress-Instruktionen zu bearbeiten.) In diesem Moment beginnt der Unterzähler 10 zurück rückwärts zu zählen, wobei das "VERZÖGERUNG NÄCHSTE IT/ID PHASE"-Signal die ganze Zeit die Ablaufsteuerung 3 davon abhält, die IT/ID- Phase der nächsten Instruktion, welche während normaler Programmausführung verarbeitet werden soll, zu starten. Wenn der Unterzähler 10 den ganzen Weg zurück bis -1 abgenommen hat, was durch den MSB 22 abgetastet wird, welcher auf "1" geht, um seinen Q-Strich-Ausgang auf "0" zu plazieren, wird die Umkehrschaltung 21 freigeschaltet, SM1 zurückzusetzen.
  • Das Resultat ist, daß die Rückwärtszählaktivität des Unterzählers 10, während der Zeit, während der SM4 gesetzt ist, die gleiche Zeitdauer beansprucht, die benötigt wird, um die gerade beendete Instruktion auszuführen. Es ist deshalb verständlich, daß, wenn die drei Taktperioden "die in die OP/EX-Phase führen" berücksichtigt werden, die 1/2-Subbmodel-Leistungsfähigkeit ohne die geringste Störung der internen Uhr der CPU und ohne Verändern von irgendwelchen Schaltzeiten oder anderen Zeitabstimmungsprozessen oder Parametern erreicht wird.
  • In Fig. 2 ist gezeigt, daß die Phasen der vier Instruktionen in der Leitung dieselben entsprechenden Zeitperioden zum Beenden in Anspruch nehmen. Dies dient dazu, die Ausführung einer sehr einfachen Instruktion zu veranschaulichen. Praktischerweise werden sie typischerweise unterschiedlich sein, und einige der Phasen, besonders OP/EX können sehr ausgedehnt sein, wie es durch den nachfolgenden Fließzustand, gezeigt in Fig. 2, dargestellt wird. Jedoch bearbeitet die zugrundeliegende Submodel-Steuermethode und -vorrichtung diese Veränderlichkeit leicht. Der Unterzähler 10 zählt einfach vorwärts, wenn eine Instruktion ausgeführt wird, und zählt rückwärts mit derselben Geschwindigkeit, um die gleiche Zeitperiode zu erhalten.
  • 1/4 und 3/4-Submodel-Steuerung zu erhalten bringt den Modulo-3-Zähler 13 in Betrieb. Man beachte dieselben Startbedingungen wie vorher beschrieben, außer daß, unter Bezugnahme auf Fig. 3 sowie auf Fig. 1, das 1/4-Signal unter Ausschluß von 1/1, 1/2 und 3/4 vorliegt. Wenn SM4 9 beim dritten Taktimpuls zurückgesetzt wird, nachdem SM1 zurückgesetzt wurde, wird sein Q-Ausgang durch die Umkehrschaltung 19 umgekehrt, um das UND-Gatter 17 völlig freizuschalten, welches das ODER-Gatter 16 völlig freischaltet. Unter diesen Bedingungen ist das ODER- Gatter 14 freigeschaltet, und der Modulo-3-Zähler 13, welcher auf jeden Fall durch die Umkehrschaltung 15 gesperrt wird, hat keinen Effekt. Als ein Ergebnis zählt der Unterzähler 10 in der vorher beschriebenen Art vorwärts, bis die nachfolgenden Ereignisse SM4 veranlassen, gesetzt zu werden. Dieses Ereignis sperrt das UND-Gatter 17, das ODER-Gatter 16 und das ODER-Gatter 14, jedoch schaltet die Umkehrschaltung 15 den Modulo-3-Zähler 13 zum Zählen frei. Da der Q-Ausgang von SMB 12 ein anderes Eingangsbein zum ODER-Gatter 14 treibt, wird es dem Unterzähler 10 ermöglicht, nur zu zählen, wenn der Zählstand im Modulo-3-Zähler 13 2&sub1;&sub0; (01) ist; somit zählt der Unterzähler 10 nur 1/3 der Zeit rückwärts, und er benötigt dreimal solange, um zum Anfangszählstand zurück rückwärts zu zählen, als er benötigte, um vorwärts zu zählen. Diese Bedingung erzielt genau 1/4 Submodel-Leistungsfähigkeit. Es sollte beachtet werden, daß die Annahme gemacht wurde, daß der Modulo-3-Zähler 13 einen 2&sub1;&sub0; enthielt, wenn SM4 zurückgesetzt wurde. Jedoch ist der Startzählstand des Modulo-3-Zählers statistisch irrelevant, besonders wenn man beachtet, daß die OP/EX-Phase im Vergleich mit anderen Phasen oft wesentlich ausgedehnter ist.
  • Man betrachte jetzt einen 3/4-Submodel-Betrieb unter Bezugnahme auf Fig. 4 sowie auf Fig. 1. Wenn SM4, wie vorher beschrieben, zurückgesetzt ist, hält sein Q- Ausgang das UND-Gatter 18 gesperrt derart, daß das ODER-Gatter 16 gesperrt ist, und das ODER-Gatter 14 nicht durch das ODER-Gatter 16 freigeschaltet wird. Jedoch schaltet die Umkehrschaltung 15 den Modulo-3-Zähler zum Zählen frei derart, daß jeder dritte Zählvorgang das ODER-Gatter 14 freischaltet. Somit kann man sehen, daß es dem Unterzähler 10 ermöglicht wird, 1/3 der Zeit vorwärts zu zählen; d. h. jeden dritten Taktimpuls. Wenn SM4 am Ende einer Instruktionsausführung gesetzt wird, schaltet sein Q-Ausgang völlig das UND-Gatter 18 frei, welches das ODER-Gatter 16 freischaltet, welches wiederum das ODER-Gatter 14 freischaltet. Als ein Ergebnis zählt der Unterzähler 10 die ganze Zeit rückwärts und erreicht den Anfangszählstand dreimal so schnell wie für die Ausführung der Instruktion in Anspruch genommen wurde. Dies erzielt genau 3/4-Submodel- Betrieb. Wieder wurde die veranschaulichende Annahme gemacht, daß der Modulo-3-Zähler 13 ein 2&sub1;&sub0; enthielt, wenn der SM4 zurückgesetzt wurde.
  • Die 1/1, 1/2, 3/4, 1/4-Ausführung wurde zu Veranschaulichungszwecken gewählt, weil sie wahrscheinlich in der Praxis benutzt werden wird. Jedoch werden Fachleute verstehen, daß andere Submodel-Leistungsfähigkeitsbruchteile leicht durch geeignete Modifizierung des Zählers 13 zu einem anderen Modulo und Anpassung seiner Eingabelogik erreicht werden können.
  • Somit, da die Prinzipien der Erfindung jetzt durch eine veranschaulichende Ausführungsform verdeutlicht wurden, werden mögliche Veränderungen der Struktur, der Anordnungen, der Verhältnisse, der Elemente, der Materialien und der Komponenten, die in der Praxis der Erfindung benutzt werden, welche besonders für spezifische Umgebungen und Betriebserfordernisse angepaßt sind, ohne von den Prinzipien abzuweichen, welche in den begleitenden Ansprüchen niedergelegt sind, für Fachleute offensichtlich.

Claims (18)

1. Verfahren zum Durchführen von Submodel-Steuerung in einer Datenverarbeitungseinheit, welche logische Schaltkreise (1) zur Datenmanipulation und Folgesteuereinrichtungen (3) zum Ausrichten der Phasen der Instruktionsausführung, innerhalb der logischen Schaltkreise (1) zur Datenmanipulation und zum Feststellen, wann jede Phase während der Instruktionsausführung beendet worden ist, aufweist, gekennzeichnet durch die Schritte:
Liefern von Einstufungssignalen (1/1, 1/4, 1/2, ....) zu den Folgesteuereinrichtungen (3), welche dadurch die notwendige Information bekommen, um für eine korrekte Einstufung zu sorgen;
Setzen eines Anfangszählstandes in einem Unterzähler (10);
dem Unterzähler (10) ermöglichen, während Ausführung einer Instruktion, in eine erste Richtung vom Anfangszählstand zu einem Endzählstand zu zählen;
dem Unterzähler (10) ermöglichen, wenn die Ausführung der Instruktion beendet ist, vom Endzählstand in die entgegengesetzte Richtung zu zählen, während der Beginn der Verarbeitung der nächsten Instruktion, welche während normaler Programmausführung verarbeitet werden soll, durch Folgesteuereinrichtungen (3) verhindert wird;
den Folgesteuereinrichtungen (3) ermöglichen, wenn der Unterzähler (10) das Vorzeichen ändert, das Verarbeiten der nächsten Instruktion, welche während normaler Programmausführung verarbeitet werden soll, zu beginnen; und
Zurückkehren zum Schritt (c).
2. Verfahren nach Anspruch 1, in welchem die Unterzähler-(10)-Zählraten während der Schritte (c) und (d) identisch sind.
3. Verfahren nach Anspruch 2, in welchem, während des Schrittes (d), dem Unterzähler (10) zählen nur ermöglicht ist, wenn ein Modulo-N-Zähler (13) einen vorbestimmten Zählstand enthält.
4. Verfahren nach Anspruch 2, in welchem, während des Schrittes (c), dem Unterzähler (10) zählen nur ermöglicht ist, wenn ein Modulo-N-Zähler (13) einen vorbestimmten Zählstand enthält.
5. Verfahren nach Anspruch 3 oder 4, in welchem der Modulo-N-Zähler (13) mit derselben Rate zählt wie der Unterzähler.
6. Vorrichtung zum Durchführen von Submodel-Steuerung in einer zentralen Verarbeitungseinheit, welche logische Schaltkreise (1) zur Datenmanipulation und Folgesteuereinrichtungen (3) zum Ausrichten der Phasen der Instruktionsausführung, innerhalb der logischen Schaltkreise (1) zur Datenmanipulation, und zum Feststellen, wann jede Phase während der Instruktionsausführung beendet worden ist, aufweist, gekennzeichnet durch:
(a) Einstufungssignal-Liefereinrichtungen (5) zum Liefern von Einstufungssignalen (1/1, ...) zu den Folgesteuereinrichtungen (3), welche dadurch die notwendige Information bekommen, um für eine korrekte Einstufung zu sorgen;
(b) einen Vorwärts/Rückwärts-Unterzähler (10); und mindestens
(c) erste, zweite, dritte und letzte Unterzähler-Steuereinrichtungen (6, 7, 8, 9), wobei:
- die ersten Einrichtungen den Unterzähler (10) veranlassen, während der Ausführung einer Instruktion von einem Anfangszählstand in eine erste Richtung zu zählen, um einen Endzählstand zu erhalten, wenn die Ausführung der Instruktion beendet worden ist;
- die zweiten Einrichtungen, die auf die Beendigung der Ausführung der Instruktion ansprechen, den Unterzähler (10) veranlassen, von einem Endzählstand in die entgegengesetzte Richtung zu zählen;
- die dritten Einrichtungen verhindern, daß die Folgesteuereinrichtungen (3) das Verarbeiten des nächsten Befehls, der während normaler Programmausführung verarbeitet werden soll, einleiten, wenn der Unterzähler (10) in die erste Richtung zählt; und
- die letzten Einrichtungen den Folgesteuereinrichtungen (3) ermöglichen, das Verarbeiten der nächsten Instruktion, welche während normaler Programmausführung verarbeitet werden soll, einzuleiten, wenn der Unterzähler (10) das Vorzeichen ändert.
7. Vorrichtung nach Anspruch 6, in welcher die Unterzähler- Steuereinrichtungen weiter aufweisen:
- einen Modulo-N-Zähler (13); und
- Modulo-N-Zähler-Steuereinrichtungen (14, 15), um dem Unterzähler (10) zu ermöglichen, nur dann in die erste Richtung zu zählen, wenn der Modulo-N-Zähler (13) einen vorbestimmten Zählstand enthält, und nur dann in die entgegengesetzte Richtung zu zählen, wenn der Modulo-N-Zähler (13) den gleichen oder einen anderen vorbestimmten Zählstand enthält.
8. Vorrichtung nach Anspruch 7, in welcher der Unterzähler (10) und der Modulo-N-Zähler (13) durch dieselbe Taktquelle (CLK) erhöht/verringert werden.
9. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß der Unterzähler (10) gesteuert wird, von einem Anfangszählstand in eine erste Richtung zu zählen, wenn eine Instruktion ausgeführt wird und dann rückwärts, wenn die Instruktion beendet ist, und in eine zweite Richtung zu zählen, bis der Unterzähler das Vorzeichen ändert, um eine effektive Verzögerung zu erreichen, bevor ermöglicht wird, das Verarbeiten der nachfolgenden Instruktion durchzuführen.
10. Vorrichtung nach Anspruch 6 oder 9, dadurch gekennzeichnet, daß die Vor- und Rückwärtszählraten des Unterzählers (10) identisch sind, derart, daß die Ausführungsrate der zentralen Verarbeitungseinheit im wesentlichen halb so groß ist wie diejenige, die erreicht werden könnte, wenn die Vorrichtung zum Durchführen von Submodel-Steuerung abgeschaltet wäre.
11. Vorrichtung nach Anspruch 6 oder 10, dadurch gekennzeichnet, daß der Unterzähler gesteuert wird, bei einem vorbestimmten Bruchteil der Rate vorwärts zu zählen, bei welcher der Unterzähler (10) gesteuert wird rückwärts zu zählen, derart, daß die Ausführungsrate der zentralen Verarbeitungseinheit mehr als die Hälfte, aber weniger als die gleiche Rate beträgt, welche erzielt würde, wenn die Vorrichtung zum Durchführen von Submodel-Steuerung abgeschaltet wäre.
12. Vorrichtung nach Anspruch 6 oder 10, dadurch gekennzeichnet, daß der Unterzähler (10) gesteuert wird, bei einem vorbestimmten Bruchteil der Rate rückwärts zu zählen, bei welcher der Unterzähler gesteuert wird vorwärts zu zählen, derart, daß die Ausführungsrate der zentralen Verarbeitungseinheit weniger als die halbe Rate beträgt, welche erzielt würde, wenn die Vorrichtung zum Durchführen von Submodel-Steuerung abgeschaltet wäre.
13. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß der Modulo- N-Zähler (13) eine Zähl-Eingangsklemme und Ausgangsklemme hat, bei der der augenblickliche darin enthaltene Zählstand angezeigt wird; und die Modulo-N-Zählersteuereinrichtungen weiter Kopplungseinrichtungen (16, 17, 18, 19) aufweisen, die zwischen die letzten Unterzählersteuereinrichtungen (9) und den Zähleingang zu dem Modulo- N-Zähler (13) gekoppelt sind und auf einen ersten bzw. zweiten Zustand der letzten Unterzählersteuereinrichtungen (9) und die Anwesenheit des Einstufungssignals (1/4, 3/4) ansprechen, um ein Zählsignal an den Modulo-N-Zähler zu liefern.
14. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, daß die Ausgangsklemme des Modulo-N-Zählers (13) durch ein ODER-Glied (14) mit dem Zähl-Freigabe-Eingang (Zählstand) des Unterzählers (10) gekoppelt ist, um den Unterzähler selektiv in die erste bzw. zweite Richtung zählen zu lassen.
15. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß der Modulo- N-Zähler (13) zwei Stufen (11, 12) aufweist und im Modulo-3-Modus zählt.
16. Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Unterzähler-Steuereinrichtungen (6, 7, 8, 9) als in Kaskadenform angeordnete Flip-Flops aufgebaut sind, jedes Flip-Flop mindestens einen Eingang hat, um dessen Zustand herzustellen, und mindestens einen Ausgang, um dessen augenblicklichen Zustand anzuzeigen, wobei jeder mindestens eine Ausgang (Q) der Flip-Flops (6, 7, 8), ausgenommen der mindestens der eine Ausgang des letzten Flip-Flops (9), mit einem Eingang eines darauffolgenden Flip-Flops in der Kaskade gekoppelt ist.
17. Vorrichtung nach Anspruch 6 oder 16, dadurch gekennzeichnet, daß eine Verzögerungseinrichtung (4) mit mindestens einem Ausgang (Q) des ersten Flip-Flops (6) gekoppelt ist, um:
- ein Signal zu den Folgesteuereinrichtungen (3) auszugeben, um das Einleiten des Verarbeitens des nächsten Instruktion, die während normaler Programmausführung verarbeitet werden soll, zu verzögern, wenn der Unterzähler (10) in die erste Richtung zählt; und
- ein Signal zu den Folgesteuereinrichtungen (3) auszugeben, um das Einleiten des Verarbeitens der ersten Phase der nächsten Instruktion, die während normaler Programmausführung verarbeitet werden soll, zu ermöglichen, wenn der Zustand des ersten Flip- Flops (6) das Vorzeichen ändert.
18. Vorrichtung nach Anspruch 17, dadurch gekennzeichnet, daß die Verzögerungseinrichtung (4) ein UND-Glied ist, wobei sein erster Eingang mit dem mindestens einen Ausgang (Q) des ersten Flip-Flops (6) gekoppelt ist, sein zweiter Eingang mit den Einstufungssignal- Liefereinrichtungen (5) und sein Ausgang mit dem Eingang der Folgesteuereinrichtungen (3) gekoppelt ist, wodurch ein Herabsetzungs- Steuersignal (Verzögerung nächste IT/ID Phase) zu den Folgesteuereinrichtungen (3) geliefert wird, um das Herabsetzen zu bewirken, wobei eine logische "1" ein Herabsetzen anzeigt, und eine logische "0" kein Herabsetzen anzeigt, in welchem Fall die zentrale Verarbeitungseinheit mit Höchstgeschwindigkeit läuft.
DE69228652T 1991-11-26 1992-11-17 Verfahren und Vorrichtung zur Durchführung von Submodel-Steuerung in einem Datenverarbeitungssystem Expired - Fee Related DE69228652T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/800,343 US5367699A (en) 1991-11-26 1991-11-26 Central processing unit incorporation selectable, precisa ratio, speed of execution derating

Publications (2)

Publication Number Publication Date
DE69228652D1 DE69228652D1 (de) 1999-04-22
DE69228652T2 true DE69228652T2 (de) 1999-09-23

Family

ID=25178164

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69228652T Expired - Fee Related DE69228652T2 (de) 1991-11-26 1992-11-17 Verfahren und Vorrichtung zur Durchführung von Submodel-Steuerung in einem Datenverarbeitungssystem

Country Status (4)

Country Link
US (1) US5367699A (de)
EP (1) EP0544178B1 (de)
JP (1) JP3169713B2 (de)
DE (1) DE69228652T2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911083A (en) * 1996-12-27 1999-06-08 Unisys Corporation Programmable processor execution rate controller
US6104964A (en) * 1997-02-06 2000-08-15 Matsushita Electric Industrial Co., Ltd. Processing rate calculation apparatus, a processing rate calculation method, and a computer readable recording medium having thereon a processing rate calculation program
US6978374B1 (en) 2000-09-29 2005-12-20 Unisys Corporation Authorization key system for selectively controlling the performance of a data processing system
US9323540B2 (en) 2013-08-15 2016-04-26 Nxp B.V. Task execution determinism improvement for an event-driven processor
DE102014117073A1 (de) 2014-07-25 2015-02-19 Westfalen Ag Schutzgas für ein Schweissverfahren

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3766461A (en) * 1971-10-04 1973-10-16 Superior Electric Co Backlash compensation circuit for numerically controlled stepping motor driven machine
US3806918A (en) * 1973-03-26 1974-04-23 Recognition Equipment Inc Digital phase lock loop
US3883870A (en) * 1973-12-17 1975-05-13 Hughes Aircraft Co System for phase aligning parallel signal processing channels
CA1089017A (en) * 1976-12-16 1980-11-04 Norio Yamashita Channel selecting apparatus in receiver
JPS593891B2 (ja) * 1979-01-17 1984-01-26 ソニー株式会社 受信検出回路
US4249448A (en) * 1979-04-09 1981-02-10 Kawai Musical Instrument Mfg. Co. Ltd. Even-odd symmetric computation in a polyphonic tone synthesizer
US4442745A (en) * 1980-04-28 1984-04-17 Norlin Industries, Inc. Long duration aperiodic musical waveform generator
US4413908A (en) * 1982-03-05 1983-11-08 Bio-Rad Laboratories, Inc. Scanning interferometer control systems
US4607300A (en) * 1983-05-25 1986-08-19 Pioneer Electronic Corporation Automatically reversible tape deck
JPH0623954B2 (ja) * 1985-03-29 1994-03-30 富士通株式会社 情報処理装置の性能調整方式
US4881248A (en) * 1986-08-28 1989-11-14 Nec Corporation Counter circuit provided with means for reading out counted data by read-command signal applied asynchronously with clock signals to be counted
GB8820183D0 (en) * 1988-08-25 1988-09-28 Int Computers Ltd Data processing apparatus
JPH03126131A (ja) * 1989-10-11 1991-05-29 Nec Corp 中央処理装置の実行速度制御方式
US5187479A (en) * 1991-09-30 1993-02-16 Am International Incorporated Backlash compensation circuit for use with an incremental encoder

Also Published As

Publication number Publication date
EP0544178B1 (de) 1999-03-17
EP0544178A2 (de) 1993-06-02
US5367699A (en) 1994-11-22
JPH05233276A (ja) 1993-09-10
DE69228652D1 (de) 1999-04-22
JP3169713B2 (ja) 2001-05-28
EP0544178A3 (de) 1994-03-23

Similar Documents

Publication Publication Date Title
DE69130630T2 (de) Synchrones Verfahren und Gerät für Prozessoren
DE69419524T2 (de) Sperrsynchronisierung für verteilte speicher-massivparallelrechner
DE69233510T2 (de) Ausgangspuffer für Mikroprozessor
DE4320681C2 (de) Schieberegisterzelle
DE69120586T2 (de) Rechnersystem mit synchronem Bus
DE69132344T2 (de) Dynamische Busarbitrierung
DE60002571T2 (de) Elastische schnittstelleanornung und verfahren dafür
DE60202749T2 (de) Schnittstelle von synchron zu asynchron zu synchron
DE2912440A1 (de) Taktsignalgenerator
DE2731336A1 (de) Taktsystem
DE2838549A1 (de) Impulsbreitenmesschaltung
DE2234867A1 (de) Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme
DE69130233T2 (de) Verfahren und gerät um ein sperrungscache einzusetzen
DE3850808T2 (de) Erzeugung von Taktimpulsen.
DE69233345T2 (de) Ein-Chip-Mikrocomputer mit zwei Zeitgeberfunktionsarten
DE69228652T2 (de) Verfahren und Vorrichtung zur Durchführung von Submodel-Steuerung in einem Datenverarbeitungssystem
DE69626609T2 (de) Pipeline-datenverarbeitungsschaltung
DE4005042A1 (de) Architektur eines digitalen bewegungssteuerungselements hoher geschwindigkeit
DE2725614C2 (de)
DE3781590T2 (de) Digitale takteinheit in ttl-technologie.
DE69127893T2 (de) Zählergesteuerte verschlussregelschaltung
DE69131454T2 (de) Datenprozessor zur Impulssignalerzeugung als Antwort auf externes Taktsignal
DE3230329C2 (de)
WO1998044674A1 (de) Phasenjustierung schneller paralleler signale
DE3123379C2 (de)

Legal Events

Date Code Title Description
8339 Ceased/non-payment of the annual fee