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 DatenverarbeitungssystemInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3873—Variable length pipelines, e.g. elastic pipeline
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation 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
- 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.
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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 |
-
1991
- 1991-11-26 US US07/800,343 patent/US5367699A/en not_active Expired - Lifetime
-
1992
- 1992-11-17 EP EP92119610A patent/EP0544178B1/de not_active Expired - Lifetime
- 1992-11-17 DE DE69228652T patent/DE69228652T2/de not_active Expired - Fee Related
- 1992-11-26 JP JP31739792A patent/JP3169713B2/ja not_active Expired - Fee Related
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 |