DE19524402C2 - Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge - Google Patents

Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge

Info

Publication number
DE19524402C2
DE19524402C2 DE19524402A DE19524402A DE19524402C2 DE 19524402 C2 DE19524402 C2 DE 19524402C2 DE 19524402 A DE19524402 A DE 19524402A DE 19524402 A DE19524402 A DE 19524402A DE 19524402 C2 DE19524402 C2 DE 19524402C2
Authority
DE
Germany
Prior art keywords
program
pseudo
command
random number
bit
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
DE19524402A
Other languages
English (en)
Other versions
DE19524402A1 (de
Inventor
Shinichi Nakagawa
Kazuya Ishihara
Satoshi Kumaki
Atsuo Hanami
Hiroshi Segawa
Tetsuya Matsumura
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE19524402A1 publication Critical patent/DE19524402A1/de
Application granted granted Critical
Publication of DE19524402C2 publication Critical patent/DE19524402C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

Die vorliegende Erfindung bezieht sich auf eine Programmausfüh­ rungssteuereinrichtung und auf ein Programmausführungssteuerver­ fahren.
Die vorliegende Erfindung bezieht sich allgemein auf Programm­ ausführungssteuereinrichtungen zur Speicherung von Befehlen in einer Befehlsspeichervorrichtung und zum Bezeichnen von Adres­ sen der Vorrichtung zum Lesen der Befehle in einer speziellen Reihenfolge und zum Anlegen derselben an eine Programmausfüh­ rungsvorrichtung und auf ein Verfahren dazu. Genauer bezieht sich die vorliegende Erfindung auf eine Programmausführungs­ steuervorrichtung, die zur Ausführung eines solchen Befehls­ lesens bei hoher Geschwindigkeit in der Lage ist, während sie eine Schaltung relativ kleiner Größe benötigt, und auf ein Ver­ fahren dazu, und auf ein Programmumwandlungsverfahren zum Um­ wandeln des Programms in eine Form, die durch eine solche Pro­ grammausführungssteuereinrichtung und durch ein solches Ver­ fahren lesbar ist.
Fig. 1 zeigt ein Beispiel einer Programmausführungssteuerein­ richtung (im folgenden als "Programmsteuereinheit" bezeichnet) zum Steuern einer Programmausführungsabfolge in einem Mikropro­ zessor oder ähnlichem. Wie in Fig. 1 gezeigt ist, weist eine Programmsteuereinheit einen Programmzähler (PC) 300, einen Be­ fehlsspeicher 32, einen Befehlsdekoder 34, einen Inkrementierer 302 und eine Auswahlvorrichtung 304 auf.
Der Befehlsspeicher 32 speichert Befehle eines Programmes in der Reihenfolge von Programmadressen. Programmadressen sind gewöhnlich so eingestellt, daß sie eine nach der anderen um eins erhöht werden, d. h., daß sie um eins inkrementiert werden. In dem Befehlsspeicher 32 sind die Programmadressen in einem fortlaufenden Speicherraum, dessen Adressen jeweils um eins erhöht sind, angeordnet. Der Befehlsspeicher 32 dient zum Lesen eines Befehlswortes 38 (aus m-Bit) aus einer angelegten n-Bit Adresse 310 und zum Anlegen des Wortes an den Befehlsdekoder 34.
Der Befehlsdekoder 34 dient zum Dekodieren des m-Bit Befehls­ wortes 38 zum Anlegen eines dem Befehl entsprechenden ℓ-Bit Steuersignals 40 an eine Ausführungsvorrichtung wie eine arith­ metische Logikeinheit (arithmetische Recheneinheit). Der Be­ fehlsdekoder 34 dekodiert außerdem ein Befehlswort zum Aus­ geben eines Auswahlsignals 42, einer Sprungadresse 44 oder ähnlichem an die Auswahlvorrichtung 304.
Die Auswahlvorrichtung 304 dient zum Auswählen von entweder einer n-Bit Ausgabe 306 von dem Inkrementierer 302 oder einer n-Bit Sprungadresse 44 von dem Befehlsdekoder 34 als Reaktion auf ein Auswahlsignal 42, das von dem Befehlsdekoder 34 ange­ legt wird, zum Anlegen der ausgewählten Ausgabe oder Adresse als eine Ausgabe 308 (von n-Bit) an den Programmzähler 300.
Der Programmzähler 300 dient zum Ausgeben der Adresse 310 für das Lesen eines Befehlswortes aus dem Befehlsspeicher 32. Die Ausgabe 310 des Programmzählers 300 wird außerdem an den Inkre­ mentierer 302 angelegt.
Der Inkrementierer 302 dient zum Inkrementieren (Addieren von 1) der Inhalte des Programmzählers 300 und zum Anlegen einer n-Bit Ausgabe 306 an die Auswahlvorrichtung 304.
Die in Fig. 1 gezeigte Programmsteuerungseinheit arbeitet wie folgt. Zuerst wird der Programmzähler 300 über einen Rücksetz­ betrieb oder ähnliches auf 0 eingestellt. Mit der Ausgabe 310 des Programmzählers 300 als eine Adresse wird ein Befehl aus dem Befehlsspeicher 32 an der Adresse 0 als Befehlswort 38 ge­ lesen. Das gelesene Befehlswort 38 wird durch den Befehlsdekoder 34 dekodiert und ein Auswahlsignal 42, ein Steuersignal 40, eine Sprungadresse 44 und ähnliches werden ausgegeben.
Die Ausgabe 310 des Programmzählers 300 wird zur selben Zeit an den Inkrementierer 302 angelegt, dort inkrementiert und an die Auswahlvorrichtung 304 angelegt. Wenn das Auswahlsignal 42 von dem Befehlsdekoder 34 die Auswahlvorrichtung 304 zum Auswählen der Ausgabe des Inkrementierers 302 steuert, wählt die Auswahl­ vorrichtung 304 die Ausgabe 306 des Inkrementierers 302 aus und legt dieselbe an den Programmzähler 300 an. Solange das Auswahl­ signal 42 den Wert zum Auswählen der Ausgabe des Inkrementierers 302 aufweist wird daher die Ausgabe 310 des Programmzählers 300 jeweils um eins inkrementiert.
Wenn ein durch den Befehlsdekoder 34 dekodierter Befehl ein Verzweigungsbefehl ist, gibt der Befehlsdekoder 34 eine Sprung­ adresse 44 aus und legt ebenfalls ein Auswahlssignal 42 an die Auswahlvorrichtung 304 zum Steuern der Auswahl der Vorrichtung 34 zum Auswählen der Sprungadresse 44. Die Auswahlvorrich­ tung 304 wählt die Sprungadresse 44 aus und legt dieselbe an den Programmzähler 300 an. In diesem Fall wird daher der Wert des Programmzählers 300 auf die Sprungadresse eingestellt.
Obwohl in Fig. 1 nur ein schematisiertes einfaches Beispiel ge­ zeigt ist, sind in der Praxis Aufrufadressen, Rückkehradressen, Interruptadressen etc. einer Subroutine, die andere als die in der Figur gezeigten sind, durch die Auswahlvorrichtung 304 aus­ zuwählen.
Fig. 2 zeigt ein Ablaufdiagramm für das Zuladen bzw. Laden eines Programmes in den in Fig. 1 gezeigten Befehlsspeicher 32. Zuerst werden in einem Schritt 90 Programme mit einer Hoch­ sprache erzeugt. Diese Hochsprachenprogramme werden in eine Maschinensprache durch einen Assembler (Übersetzungspro­ gramm), einen Linker (Verbinder) und einen Compiler (Kompilie­ rer) umgewandelt, während dem Befehlspeicher in Schritt 92 Adressen zugewiesen werden. In Schritt 96 wird das in eine Ma­ schinensprache umgewandelte Programm in einen realen Speicher (Befehlsspeicher) geladen. Die Anordnung der Befehle in dem realen Speicher in diesem Fall wird später unter Bezugnahme auf Fig. 3 beschrieben. Desweiteren wird in Schritt 320 das in dem realen Speicher angeordnete Programm durch einen Programmzähler ausgeführt.
Fig. 3 zeigt die Anordnung von Programmadressen in dem realen Speicher zu dem Zeitpunkt des Ladens des Programmes in den realen Speicher in Schritt 96, der in Fig. 2 gezeigt ist. Unter Bezugnahme auf Fig. 3 wird angenommen, daß in dem durch einen Assembler, einem Linker und einem Compiler in die Maschinen­ sprache umgewandelten Programm 127 Befehle enthalten sind, wo­ bei diese Befehle als Befehle 1 bis 127 bezeichnet werden. Pro­ grammadressen 0 bis 126 sind diesen Befehlen entsprechend zuge­ wiesen. Wenn das Programm in den realen Speicher geladen ist, wird die Programmadresse jedes Befehls einer bezüglich der Adresse des vorhergehenden Befehles und bezüglich des führenden Befehls 1 in der Reihenfolge der ursprünglichen Programmadressen in den Bereich von 0 bis 126 jeweils um eins inkrementierte Adresse (d. h. um eins erhöhte Adresse) sein.
Eine oben beschriebene Programmsteuervorrichtung benötigt einen Inkrementierer zum Inkrementieren eines Programmzählers. Ein Inkrementierverarbeitungsablauf benötigt unabdingbar einen Additionsverarbeitungsablauf. Die Verzögerung, die durch den Übertrag verursacht wird, der bei einem Additionsverarbeitungs­ ablauf beteiligt ist, reduziert die Betriebsgeschwindigkeit des Inkrementierers. Angesichts der Notwendigkeit zur Erhöhung der Betriebsgeschwindigkeit von Prozessoren ist es nicht wünschens­ wert, einen solchen Inkrementierer zu verwenden, der im Betrieb langsam ist.
Andererseits wurde z. B. in der Japanischen Patentoffenlegungs­ schrift No. 1-193931 zum Erhöhen der Geschwindigkeit eines Ad­ ditionsverarbeitungsablaufes eine Technik zum Beschleunigen des Betriebes eines Inkrementierers durch Teilen des Inkrementierers in eine Mehrzahl von Blöcken und durch Vorsehen einer Übertrags­ steuerschaltung für jeden Block zum Erzeugen eines Übertrags auf Blockbasis zur Reduzierung der Fortpflanzungsverzögerung, die durch den Übertrag verursacht wird, vorgeschlagen. Eine solche Vorrichtung weist jedoch Nachteile dahingehend auf, daß die Schaltung eines solchen Inkrementierers eine erhöhte Größe aufweist und eine Verbesserung der Betriebsgeschwindigkeit einen Rückschlag bei der Reduzierung der Schaltungsgröße mit sich bringt. Um diese Probleme zu lösen, ist es wünschenswert, Befehle mit hoher Geschwindigkeit durch die effektive Nutzung eines Speichers selbst dann zu lesen, wenn ein großes Programm oder zahlreiche Programme ausgeführt werden.
In KHAMBATA, Adi J., Microprocessors/Microcomputers, John Wiley & Sons, 1982, ISBN 0-471-06490-4, Seiten 12-13 ist die Funk­ tionsweise eines Programmzählers, wie er in Mikroprozessoren ge­ wöhnlicherweise verwendet wird, erläutert.
In TIETZE, Ulrich; SCHENK, Christoph: Halbleiterschaltungstech­ nik, 5. Aufl., Springer-Verlag, 1980, ISBN 3-540-09848-8, Seiten 509-512 ist der Aufbau von Pseudo-Zufallszahlengeneratoren mittels Schieberegistern beschrieben.
Es ist Aufgabe der vorliegenden Erfindung, eine Programmausfüh­ rungssteuervorrichtung, bei der die Befehlslesegeschwindigkeit erhöht ist und die durch eine relativ kleine Schaltung realisiert werden kann, ein Programmausführungssteuerverfahren, das die Be­ fehlslesegeschwindigkeit erhöht, und ein entsprechendes Programm­ umwandlungsverfahren anzugeben.
Die Aufgabe wird gelöst durch eine Vorrichtung nach Anspruch 1 bzw. ein Verfahren nach Anspruch 6 oder 7 oder 8.
Weiterbildungen der Erfindung sind in den Unteransprüchen ange­ geben.
Die Erfindung ermöglicht eine Programmausführungssteuervorrich­ tung bzw. ein solches Verfahren, die bzw. das mit einer relativ kleinen Schaltung das Lesen von Befehlen bei hoher Geschwindig­ keit erlaubt und die Ausführung von großen Programmen oder zahl­ reichen Programmen durch effektive Nutzung eines Speichers er­ möglicht.
Bei dieser Programmausführungssteuereinrichtung werden Befehle aus Adressen, die einer M-reihigen Pseudo-Zufallszahlenfolge entsprechen, aus dem Befehlsspeicher gelesen und an den Dekoder durch die Lese­ schaltung angelegt. Der Befehlsspeicher speichert Befehle des Programmes an Adressen, die durch die erzeugten Zufallszahlen bestimmt sind, in der Reihenfolge von Programmadressen für die Befehle in dem Bereich der M-reihigen Pseudo-Zufallszahlenfolge. Die Befehle werden dadurch aus dem Befehlsspeicher gelesen und in Übereinstimmung mit den Programmadressen ausgeführt. In Übereinstimmung mit den M-reihigen Pseudo-Zufallszahlenfolge, die durch das Rückkopplungs-Schieberegister erzeugt wird, können Pseudo-Zufallszahlen bei hoher Geschwindigkeit ohne einen Additionsverarbeitungsablauf erzeugt werden. Das ermög­ licht der Vorrichtung entsprechend den Ausführungsformen der vorliegenden Erfindung Befehle bei höherer Geschwindigkeit als eine gewöhnliche Vorrichtung, die einen Programmzähler und einen Inkrementierer verwendet, zu lesen. Zusätzlich gibt es, da eine einfache Schaltung, daß heißt ein Rückkopplungs-Regis­ ter, Pseudo-Zufallszahlen erzeugen kann, keine Notwendigkeit zum Erhöhen der Größe der Schaltung. Als ein Ergebnis kann eine Programmausführungssteuervorrichtung, die zum Lesen von Be­ fehlen bei hoher Geschwindigkeit in der Lage ist, durch eine Schaltung relativ kleiner Größe realisiert werden.
Entsprechend des Programmausführungssteuerverfahrens nach Anspruch 6 führt die wiederholte Ausführung des Leseschrittes und des Ausgabe­ schrittes, bis eine vorbestimmte Bedingung erfüllt ist, zum Lesen und Ausführen von Befehlen in der Reihenfolge von Pro­ grammadressen, indem eine Adressierung nicht unter Verwendung eines Programmzählers sondern in Übereinstimmung mit einer Pseudo-Zufallszahlenfolge ausgeführt wird. Da die M-reihige Pseudo-Zufallszahlenfolge bei hoher Geschwindigkeit erzeugt wird, kann eine höhere Befehlslesegeschwindigkeit als bei der Verwendung eines Inkrementierers erreicht bzw. erhalten werden. Zusätzlich dazu kann die M-reihige Pseudo-Zufallszahlenfolge durch eine relativ kleine Schaltung unter Verwendung z. B. eines Rückkopplungs-Schieberegisters erzeugt werden.
Als ein Ergebnis kann ein Programmausführungssteuerverfahren angegeben werden, das ein Hochgeschwindigkeitslesen von Befeh­ len mit einer relativ kleinen Schaltung ermöglicht.
Entsprechend des Programmausführungssteuerverfahrens nach Anspruch 7 wird in dem Schritt des Modifizierens eines Feldes von Befehlen die An­ ordnung der Befehle derart modifiziert, daß die Befehle, die in jedem der Mehrzahl von Segmenten enthalten sind, in Positionen angeordnet werden, die einer M-reihigen bzw. M-gliedrigen Pseudo-Zufallszahlenfolge entsprechen. In dem Schritt des Lesens eines auszuführenden Befehls aus dem Befehls­ speicher wird eine Bestimmung gemacht, ob in dem Befehlsspeicher unter den Segmenten, die Befehle enthalten, deren Anordnung modi­ fiziert ist, ein Segment existiert, das einen auszuführenden Be­ fehl enthält. Wenn das Segment nicht in dem Befehlsspeicher vor­ handen ist, wird das Segment in einen ausgewählten Segmentbe­ reich aus der Mehrzahl von Segmentbereichen basierend auf der vorbestimmten Bedingung geladen, und der auszuführende Befehl wird aus dem Befehlsspeicher gelesen. In dem Schritt des Deko­ dierens eines gelesenen Befehls wird ein Steuersignal ent­ sprechend des gelesenen Befehls an die Programmausführungsvor­ richtung ausgegeben. Weitere Ausgaben sind ein Auswahlsignal, das anzeigt, was aus einer Adresse, die durch eine nächste Pseudo-Zufallszahl bestimmt ist, oder einer Sprungadresse, die durch ein Dekodierergebnis bestimmt ist, auszuwählen ist, und eine Sprungadresse. In dem Schritt des Spezifizierens eines als nächstes zu lesenden Befehls werden Pseudo-Zufallszahlen in Übereinstimmung mit derselben M-reihigen Pseudo-Zufallszahlen­ folge wie diejenige, die für die Modifikation der Befehlsan­ ordnung verwendet wurde, erzeugt, zum Spezifizieren eines als nächstes zu lesenden Befehls durch eine Adressierung, die auf den erzeugten Pseudo-Zufallszahlen, dem Auswahlsignal und der Sprungadresse basiert.
Da die M-reihige Pseudo-Zufallszahlenfolge mit einer höheren Ge­ schwindigkeit als bei einem gewöhnlichen Verfahren, das einen Programmzähler und einen Inkrementierer verwendet, betreibbar ist, ist es möglich, Befehle mit einer höheren Geschwindigkeit als bei einer gewöhnlichen Vorrichtung zu lesen und eine kleinere Schaltung als bei der Verwendung eines Inkrementierers zu verwenden. Zusätzlich dazu wird selbst dann, falls ein Seg­ ment, das einen auszuführenden Befehl enthält, momentan nicht in dem Befehlsspeicher vorhanden ist, da die Befehle auf einer Segmentbasis neu angeordnet sind, die Ausführung des Programms nicht negativ beeinflußt. Die Befehlsspeicherbereiche für diese Segmente können daher für andere Zwecke verwendet werden, was eine effektive Nutzung der Befehlsbereiche ermöglicht. Als ein Ergebnis ist es möglich, ein Programmausführungssteuerver­ fahren anzugeben, daß das Hochgeschwindigkeitslesen von Befeh­ len unter Verwendung einer relativ kleinen Schaltung und die Ausführung eines großen Programmes oder von zahlreichen Pro­ grammen durch effektive Nutzung eines Speichers ermöglicht.
Entsprechend des Programmumwandlungsverfahrens kann ein Programm in Segmente geteilt und eine Anordnung der Befehle des Programmes auf einer Segmentbasis modifiziert werden. Es ist daher möglich, Befehle entsprechend Programmadressen vor der Modifi­ zierung der Anordnung durch die Erzeugung von Pseudo-Zufalls­ zahlen in Übereinstimmung mit derselben M-Reihigen Pseudo-Zu­ fallszahlenfolge wie diejenige für die Modifikation der An­ ordnung mittels eines Rückkopplungs-Schieberegisters zu lesen und auf den Befehlsspeicher mit den Pseudo-Zufallszahlen als Adressen zuzugreifen.
Eine M-reihige Pseudo-Zufallszahlenfolge erlaubt eine kleine Schaltung wie ein Rückkopplungs-Schieberegister zur Erzeugung von Pseudo-Zufallszahlen bei höherer Geschwindigkeit als eine gewöhnliche Adresserzeugung unter Verwendung eines Programmzäh­ lers und eines Inkrementierers. Befehle eines durch dieses Pro­ grammumwandlungsverfahren umgewandelten Programmes können daher mit einer höheren Geschwindigkeit als das Programm vor der Um­ wandlung gelesen werden. Das ermöglicht ein Programmumwandlungs­ verfahren, das die Umwandlung eines Programmes in eine Form er­ möglicht, die bei hoher Geschwindigkeit durch eine relativ kleine Schaltung lesbar ist.
Es folgt die Beschreibung von Ausführungsbeispielen anhand der Figuren. Von den Figuren zeigen:
Fig. 1 eine Blockdarstellung eines Beispiels einer Programm­ ausführungssteuervorrichtung;
Fig. 2 ein Ablaufdiagramm des Verarbeitungsablaufes zum Erzeu­ gen und Ausführen eines durch eine Programmausführungs­ steuervorrichtung auszufühenden Programmes;
Fig. 3 eine Darstellung, die schematisch Programmadressen eines durch eine Programmausführungssteuervorrichtung auszuführenden Programmes in einem realen Speicher zeigt;
Fig. 4 eine Blockdarstellung einer Programmausführungssteuer­ vorrichtung entsprechend einer ersten Ausführungsform der Erfindung;
Fig. 5 eine Blockdarstellung einer Schaltung eines Pseudo-Zu­ fallszahlen-Programmzählers;
Fig. 6 ein Ablaufdiagramm eines Verarbeitungsablaufes zum Er­ zeugen eines durch die Programmausführungssteuervor­ richtung der ersten Ausführungsform auszuführenden Pro­ grammes;
Fig. 7 ein Ablaufdiagramm eines Verarbeitungsablaufes zum Er­ setzen von Programmadressen;
Fig. 8 eine schematische Darstellung, die einen Teil des In­ halts einer Adressumwandlungstabelle zeigt;
Fig. 9 eine schematische Darstellung, die einen Teil des In­ halts der Adressumwandlungstabelle zeigt;
Fig. 10 eine schematische Darstellung, die einen Teil des In­ halts der Adressumwandlungstabelle zeigt;
Fig. 11 eine schematische Darstellung, die einen Teil des In­ halts der Adressumwandlungstabelle zeigt;
Fig. 12 eine schematische Darstellung, die einen Teil des In­ halts der Adressumwandlungstabelle zeigt;
Fig. 13 eine schematische Darstellung, die den Verarbeitungs­ ablauf der Umwandlung des in der ersten Ausführungsform auszuführenden Programmes zeigt;
Fig. 14 eine Blockdarstellung einer Schaltung eines 4-Bit Pseudo-Zufallszahlen-Programmzählers;
Fig. 15 eine Blockdarstellung einer Schaltung eines 10-Bit Pseudo-Zufallszahlen-Programmzählers;
Fig. 16 eine Konzeptdarstellung einer zweiten Ausführungsform der vorliegenden Erfingung;
Fig. 17 ein Ablaufdiagramm eines Verarbeitungsablaufs zum Er­ zeugen eines in der zweiten Ausführungsform auszufüh­ renden Programmes; und
Fig. 18 ein Ablaufdiagramm der Ausführung des Programmes in der zweiten Ausführungsform.
Die vorliegende Erfindung wird nun im folgenden im Detail unter Bezugnahme auf zwei Ausführungsformen beschrieben. Die erste Ausführungsform ist zur Ausführung eines einzelnen Programmes vorgesehen, während die zweite Ausführungsform für die Ausfüh­ rung einer Mehrzahl von Programmen oder eines großen Programmes, das aus einer Mehrzahl von Segmenten aufgebaut ist, vorgesehen ist. Bezüglich der ersten Ausführungsform wird ebenfalls die Be­ schreibung von zwei Modifikationen gegeben. Obwohl in den fol­ genden Ausführungsformen die Beschreibung unter der Annahme ge­ macht wird, daß Zufallszahlen, die durch eine Pseudo-Zufalls­ zahlenfolge erzeugt werden, von einer spezifischen Anzahl von Bits sind, ist die vorliegende Erfindung nicht auf eine solche spezifische Anzahl von Bits begrenzt, sondern sie ist auf irgend eine Anzahl von Bits, abhängig von der angenommenen Maschine, anwendbar.
1. Ausführungsform
Fig. 4 ist eine Blockdarstellung einer Programmsteuereinheit entsprechend der ersten Ausführungsform der vorliegenden Erfin­ dung. Wie in Fig. 4 gezeigt ist, weist die Programmsteuereinheit der vorliegenden Erfindung einen Befehlspeicher 32, einen Be­ fehlsdekoder 34 und einen Pseudo-Zufallszahlen-Programmzähler 30 auf. Der Befehlsspeicher 32 und der Befehlsdekoder 34 sind die­ selben wie bei der in Fig. 1 gezeigten Vorrichtung, ausgenommen daß ein in dem Befehlsspeicher 32 gespeichertes Programm von demjenigen aus Fig. 1 unterschiedlich ist. Das Programm wird später im Detail erläuert. Eine Ausgabe 38 des Befehlsspeichers 32, ein Steuersignal 40, ein Auswahlsignal 42 und eine Sprung­ adresse 44, die von dem Befehlsdekoder 34 ausgegeben werden, sind ebenfalls dieselben wie bei der in Fig. 1 gezeigen Vor­ richtung und es wird keine detaillierte Beschreibung derselben wiederholt.
Der Pseudo-Zufallszahlen-Programmzähler 30, in dem ein Rückkopp­ lungs-Schieberegister zum Erzeugen von M-reihigen Pseudo-Zu­ fallszahlen (d. h. eine Folge mit M Gliedern) vorgesehen ist, dient zum Ausgeben einer Adresse 36 eines Befehls, der als nächstes aus dem Befehlsspeicher 32 zu lesen ist, basierend auf den Pseudo-Zufallszahlen und auf der Sprungadresse 44 und auf dem Auswahlsignal 42, die von dem Befehlsdekoder 34 angelegt werden. Die vorliegende Ausführungsform wird mit "n" gleich "7" beschrieben.
Wie in Fig. 5 gezeigt ist, weist der Pseudozufallszahlen-Pro­ grammzähler 30 sieben Register 70, 72, 74, 76, 78, 80 und 82, sieben Auswahlvorrichtungen 50, 52, 54, 56, 58, 60 und 62, die entsprechend diesen Registern vorgesehen sind, und eine Nicht- Exklusiv-ODER-Schaltung 84 zum Erzeugen eines Nicht-Exklusiven- ODER der Ausgaben der Register 74 und 82 zum Rückkoppeln des Nicht-Exklusiv-ODER an einen Eingang der ersten Auswahlvorrich­ tung 50, auf.
An jeweils einen der entsprechenden Eingänge der Auswahlvor­ richtungen 50 bis 62 werden die Bits 0 bis 6 (I0 bis I6) der Sprungadresse 44 entsprechend angelegt. An den anderen Eingang der Auswahlvorrichtung 50 wird die Ausgabe der Nicht-Exklusiv- ODER-Schaltung 84 angelegt. An die anderen Eingänge der Aus­ wahlvorrichtungen 52 bis 62 werden die Ausgaben der Register 70 bis 80 entsprechend angelegt (siehe Fig. 5). Die Ausgaben der Auswahlvorrichtungen 50 bis 62 werden an die Eingänge ihrer entsprechenden Register 70 bis 82 angelegt. Die Register 70 bis 82 geben Bits 0 bis 6 (00 bis 06) der 7-Bit Ausgabe 36 ent­ sprechend aus.
Die Auswahlvorrichtung 50 dient zum Ausgeben des Bits 0 (I0) der Sprungadresse 44 in dem Fall, in dem das Auswahlsignal 42 die Auswahl der Sprungadresse anzeigt, und in den anderen Fällen zum Auswählen der Ausgabe der Nicht-Exlusiv-ODER-Schal­ tung 84 zum Anlegen derselben an das Register 70. Die Auswahl­ vorrichtung 52 dient zum Auswählen der Eingabe I1 in dem Fall, in dem das Auswahlsignal 42 die Auswahl der Sprungadresse 44 anzeigt, und in den anderen Fällen zum Auswählen der Ausgabe des Register 70 in der vorhergehenden Stufe und zum Anlegen derselben an ihr entsprechendes Register 72. Die anderen Aus­ wahlvorrichtungen 54 bis 62 arbeiten vergleichbar mit der Aus­ wahlvorrichtung 52.
Wenn das Auswahlsignal 42 die Sprungsadresse 44 auswählt, werden die Bits I0 bis I6 der Sprungadresse 44 in den Registern 70 bis 82 entspechend über die Auswahlvorrichtungen 50 bis 62 gesetzt. In den anderen Fällen sind die Register 70 bis 82 über die Aus­ wahlvorrichtungen 50 bis 62 zur Bildung eines Schieberegisters in Reihe geschaltet. Da die Ausgaben der Register 82 und 74 an den Eingang der Auswahlvorrichtung 50, die dem ersten Register 70 enspricht, über die Nicht-Exklusiv-ODER-Schaltung 84 rückge­ koppelt werden, bilden diese Register 70 bis 82 und die Nicht- Exklusiv-ODER-Schaltung 84 in diesem Fall ein Rückkopplungs- Schieberegister. Durch urspüngliches Setzen von 0 in jeden der Register 70 bis 82 dieses Rückkopplungs-Schieberegisters und durch Verschieben von diesen Bit um Bit durch einen Weg der Rückkopplungsschleife wird als Ausgabe 36 eine 7-Bit M-reihige Pseudo-Zufallszahlenfolge erhalten. Wie später beschrieben wird, ist es für diese M-reihige Pseudo-Zufallszahlenfolge bekannt, daß diese eine Anzahl von 127 (27 - 1) Werten, das heißt 0 bis 126, in einer scheinbar zufälligen Reihenfolge annimmt. Die Pseudo-Zufallszahlenfolge für diesen Fall wird später unter Be­ zugnahme auf die Fig. 8 bis 12 beschrieben. Die in Fig. 5 ge­ zeigte Schaltung arbeitet in Synchronisation mit einem Takt­ signal (eine detaillierte Beschreibung desselben wird hier nicht gegeben).
Wie in Fig. 6 gezeigt ist, wird das in dem in Fig. 4 gezeigten Befehlsspeicher 32 gespeicherte Programm wie folgt erzeugt. In Schritt 90 wird auf gewöhnliche Art und Weise ein Hochsprachen­ programm vorbereitet bzw. erzeugt. In Schritt 92 wird das Hoch­ sprachenprogramm in eine Maschinensprache unter Verwendung eines Assemblers, eines Linkers und eines Compilers umgewandelt. Den Maschinensprache-Wortbefehlen werden in gewöhnlicher Weise Programmadressen, die jeweils um eins erhöht sind (inkremen­ tiert), zugewiesen.
In Schritt 94 wird ein Ersetzen der derart vorbereiteten Ma­ schinensprache-Programmadressen ausgeführt. Das Ersetzen wird später unter Bezugnahme auf die Fig. 7 bis 13 beschrieben. Weiter wird in Schritt 96 das Programm, dessen Adressen derart ersetzt sind, in einen realen Speicher geladen. Dann steuert in Schritt 98 die Programmausführungssteuervorrichtung, die in Fig. 4 gezeigt ist, den Programmzähler unter Verwendung eines Pseudo-Zufallszahlen-Zählers zur Ausführung dieses Programmes.
Fig. 7 ist ein Ablaufdiagramm, daß den Verarbeitungsablauf des Ersetzens der Adressen in Schritt 94 aus Fig. 6 im Detail zeigt. Der in dem Ablaufdiagramm gezeigte Verarbeitungsablauf kann durch einen gewöhnlichen Computer ausgeführt werden. Zuerst wird in Schritt 110 ein erster Befehl gelesen. In Schritt 112 wird eine Adresse des gelesenen Befehls unter Verwendung einer Adressenumwandlungstabelle 118 ersetzt. In den Fig. 8 bis 12 sind die Inhalte der Adressumwandlungstabelle 118 gezeigt, deren Bedeutung später beschrieben wird.
In Schritt 114 wird der Befehl, dessen Adresse umgewandelt ist, an die umgewandelte Adresse (Adresse nach der Umwandlung) in einem anderen Speicherbereich als dem, in dem das ursprüngliche Programm gespeichert ist, geschrieben. In Schritt 116 wird be­ stimmt, ob der Verarbeitungsablauf der Umwandlung der Adresse bezüglich aller Befehle abgeschlossen ist. Wenn der Verarbei­ tungsablauf für alle Befehle abgeschlossen ist, wird der Ver­ arbeitungsablauf für das Ersetzen der Adressen beendet. Falls ein Befehl verbleibt, dessen Adressumwandlung noch auszuführen ist, schreitet der Verarbeitungsablauf zu Schritt 110 zurück, um den Verarbeitungsablauf der Schritte 110 bis 116 bezüglich eines nächsten Befehls zu wiederholen.
Die Fig. 8 bis 12 sind Darstellungen der Inhalte der in Fig. 7 gezeigten Adressumwandlungstabelle 118, auf deren Inhalte als erste, zweite und dritte Spalte in der Zeichnung von links Be­ zug genommen wird. Die zweite Spalte speichert Pseudo-Zufalls­ zahlen, die durch den in Fig. 5 gezeigten Pseudo-Zufallszahlen- Programmzähler 30 erzeugt werden, in der Reihenfolge der Er­ zeugung der Zahlen. Es wird angenommen, daß in diesem Fall "alle 0" als ein Ursprungszustand ausgewählt ist. In der ersten Spalte sind jeweils Zahlen gespeichert, die die Reihenfolge des Auftretens der jeweiligen in der zweiten Spalte angezeigten Zu­ fallszahl in der M-reihigen Zufallszahlenfolgen (Folge von M Zufallszahlen) anzeigt. Diese Zahlen stellen außerdem Adressen dar, an denen die entsprechenden Zufallszahlen in der Adressen­ umwandlungstabelle 118 gespeichert sind. In der dritten Spalte erscheinen in Dezimalschreibweise die in der zweiten Spalte an­ gezeigten Werte zum Zwecke des leichteren Verstehens.
Wie in den Fig. 8 bis 12 gezeigt ist, nimmt der in Fig. 5 ge­ zeigte Pseudo-Zufallszahlen-Programmzähler 30 eine Ganzzahl in den Bereich von 0 bis 126 einmal in einem Zyklus, der aus 127 Werten besteht (Nr. 0 bis Nr. 126). Die Reihenfolge des Auftretens der Werte 0, 1, 3, 7, 14, 28, 56, 113, 98, 68, 9 ..., wie sie in der dritten Spalte angezeigt ist, scheint zufällig bzw. will­ kürlich zu sein. Obwohl in der Praxis diese Werte wiederholt in einer vorbestimmten Reihenfolge entsprechend einer festgelegten Sequenz bzw. Folge erscheinen, wie in den Fig. 8 bis 12 zu sehen ist, kann ihre Regelmäßigkeit nur durch Beobachten eines Teils der Werte nicht leicht erkannt bzw. entnommen werden. Das ist der Grund, warum diese Folge als "Pseudo-Zufallszahlen" bezeichnet wird.
Auf die in den Fig. 8 bis 12 gezeigte Tabelle wird mit einer umzuwandelnden Programmadresse eines Befehls als eine Adresse zugegriffen, wobei ein Wert, der an der Adresse in der zweiten Spalte gespeichert ist, die Programmadresse des Befehles er­ setzt und der Befehl an die ersetzende Adresse verschoben wird.
Der Zustand des Programmes, dessen Adressen derart ersetzt wor­ den sind, ist in Fig. 13 gezeigt. Unter Bezugnahme auf Fig. 13 wird angenommen, daß Befehlen 1 bis 127 ursprünglich Programm­ adressen 0 bis 126 entsprechend zugewiesen sind. Wenn diese Be­ fehle an Adressen, die mittels der in den Fig. 8 bis 12 ge­ zeigten Adressumwandlungstabelle umgewandelt sind, gespeichert und in den realen Speicher geladen sind, sind die entsprechen­ den Befehle an scheinbar zufälligen Adressen gespeichert. Zum Beispiel ist Befehl 1 an der Adresse 0, Befehl 2 an der Adresse 1, Befehl 3 an der Adresse 3, Befehl 11 an der Adresse 9, Befehl 6 an der Adresse 28 und Befehl 127 an der Adresse 64 gespeichert.
Der Betrieb der Programmausführungssteuervorrichtung der ersten Ausführungsform wird im folgenden beschrieben, wobei angenommen wird, daß der Befehlsspeicher 32 aus Fig. 4 zuvor das Programm speichert, dessen Adressen in der oben beschriebenen Weise er­ setzt werden. Unter Bezugnahme auf Fig. 5 wird angenommen, daß zuerst in den Registern 70 bis 82 als Reaktion auf ein Rück­ setzsignal 0 gesetzt wird. Jede der Auswahlvorrichtungen 50 bis 62 ist so eingestellt, daß sie die Ausgabe des Registers der vorhergehenden Stufe oder der Nicht-Exklusiv-ODER-Schaltung 84 auswählt. In diesem Zustand führt das Anlegen eines Taktsignals an den Pseudo-Zufallszahlen-Programmzähler 30, der in Fig. 5 gezeigt ist, zur aufeinanderfolgenden Erzeugung von Pseudo-Zu­ fallszahlen, wie sie in den Fig. 8 bis 12 gezeigt sind, und zum aufeinanderfolgenden Anlegen derselben als Ausgabe 36 an den Befehlsspeicher 32. Falls das Auswahlsignal 42 die Auswahlvor­ richtungen 50 bis 62 so steuert, daß sie immer die Eingabe auf der Seite des Rückkopplungs-Schieberegisters auswählen, werden die Werte der Ausgabe 36 entsprechend Dezimalwerten von 0, 1, 3, 7, 14, 28, 56, ..., sein (siehe die dritte Spalte in den Fig. 8 bis 12). Die Befehle 1, 2, 3, 4, 5, 6, ... sind ent­ sprechend an diesen Adressen gespeichert. Darum resultiert das Zugreifen auf den Befehlsspeicher 32 durch die Ausgabe 36 des Pseudo-Zufallszahlen-Programmzählers 30 darin, daß jeder Befehl des Programmes in der ursprünglichen Reihenfolge der Programm­ adressen ausgegeben und als Ausgabe 38 an den Befehlsdekoder 34 angelegt wird. Der Betrieb des Befehlsdekoders 34 ist derselbe wie der eines Eingangs beschriebenen Befehlsdekoders.
Dabei wird zum Zeitpunkt des Ersetzens der Befehlsadresse der Wert einer Sprungadresse, der in ein Befehlswort geschrieben wird, unter Verwendung der Umwandlungstabelle in derselben Art und Weise umgewandelt wie dies bei der Adressumwandlung für jeden Befehl geschieht. Zum Beispiel wird bei einer 7-Bit Adresse der Befehl "Springe zu Adresse 100" in den Befehl "Springe zu Adresse 118" umgewandelt (siehe Nr. 100 in Fig. 11).
Falls als Ergebnis der Dekodierung eines Befehls durch den Befehlsdekoder 34 eine Verzweigung auftritt, legt der Befehls­ dekoder 34 die Sprungadresse 44 an den Pseudo-Zufallszahlen- Programmzähler 30 an. Das Auswahlsignal 42 steuert die Auswahl­ vorrichtungen 50 bis 62 so, daß sie entsprechend ihrer ent­ sprechenden Bits I0-I6 der Sprungadresse 44 auswählen. Die entsprechenden Bits I0-I6 der Sprungadresse 44 werden in den Registern 70 bis 82 gespeichert und an den Befehlsspeicher 32 als Bits 00-06 der Ausgabe 36 angelegt. Als Ergebnis werden die durch den Pseudo-Zufallszahlen-Programmzähler 30 erzeugten Adressen durch die Sprungadresse ersetzt.
Das Rückkopplungs-Schieberegister des Pseudo-Zufallszahlen-Pro­ grammzählers 30, das in Fig. 5 gezeigt ist, bestimmt mit seiner Ausgabe die nächste Zufallszahlenausgabe. Auf das Empfangen eines nächsten Taktes und mit der Steuerung jeder Auswahlvor­ richtung derart, daß sie den Eingang bzw. die Eingabe von der Seite des Rückkopplungs-Schieberegisters auswählt, nimmt der Pseudo-Zufallszahlen-Programmzähler 30 die Erzeugung von Zu­ fallszahlen mit einer Sprungadresse als Startpunkt wieder auf.
Die Programmausführungssteuervorrichtung entsprechend der ersten Ausführungsform ermöglicht daher die Ausführung eines Programms in derselben Art und Weise, wie dies durch eine Vor­ richtung, die einen Programmzähler und einen Inkrementierer verwendet, getan wird. Zusätzlich dazu wird der Pseudo-Zufalls­ zahlen-Programmzähler durch ein Rückkopplungs-Schieberegister gebildet, welches, wie in Fig. 5 gezeigt ist, eine relativ ein­ fachere Schaltung mit einem gegenüber einen System, das einen Inkrementierer verwendet, reduzierten Platzbedarf ist.
Die nächste Programmadressenerzeugung benötigt nur eine Verzö­ gerungszeit, die durch die Nicht-Exlusiv-ODER-Schaltung 84 und die Auswahlvorrichtungen 50 bis 62 verursacht wird, wodurch ein Betrieb mit einer extrem kurzen Verzögerungszeit unabhängig von der Anzahl der Bits einer Adresse ermöglicht wird. Darum weist der Pseudo-Zufallszahlen-Programmzähler 30 eine Wirkung dahin­ gehend auf, daß Adressen zum Lesen von Befehlen mit hoher Ge­ schwindigkeit erzeugt werden.
Darüberhinaus kann ein Programm, daß durch die Programmausfüh­ rungssteuervorrichtung, die diesen Pseudo-Zufallszahlen-Pro­ grammzähler verwendet, auszuführen ist, nur durch Ersetzen der Adressen eines Programmes, das vergleichbar zu einem gewöhn­ lichen Programm in eine Maschinensprache umgewandelt bzw. über­ setzt worden ist, und durch Ersetzen der Sprungadressen, die in Befehlsworten enthalten sind, erzeugt werden. Es ist nur not­ wendig, ein Adressenersetzungsprogramm in den Ablauf des Ver­ arbeitungsablaufs einzusetzen, aber es ist nicht notwendig, einen Assembler, einen Linker oder einen Compiler für die Um­ wandlung in Maschinenworte neu zu erzeugen bzw. vorzubereiten. Nebenbei bemerkt ist ein solcher Verarbeitungsablauf zum Er­ setzen von Adressen nur einmal notwendig.
Obwohl die erste Ausführungsform für den Fall einer 7-Bit Adresse beschrieben worden ist, ist die vorliegende Erfindung nicht darauf beschränkt. Zum Beispiel kann jeglicher Inhalt eines Pseudo-Zufallszahlen-Programmzählers derart ausgewählt werden, daß ein Rückkopplungs-Schieberegister entsprechend der notwendigen Anzahl von Bits, wie z. B. 4-Bit, 9-Bit, 10-Bit, 16-Bit, etc., aufgebaut ist. Bei der Erzeugung von M-reihigen Pseudo-Zufallszahlen ist die Anordnung des Pseudo-Zufallszahlen- Programmzählers im wesentlichen dieselbe Anordnung, wie die in Fig. 5 gezeigte Anordnung, und es muß nur ein Augenmerk darauf gelegt werden, daß die Anzahl der Auswahlvorrichtungen und Re­ gister modifiziert wird, und daß die Ausgabe eines Registers als eine Eingabe der Nicht-Exklusiv-Oder-Schaltung 84 sich ent­ sprechend der Anzahl von Bits einer Adresse unterscheidet.
Die Fig. 14 und 15 zeigen Beispiele einer Anordnung eines 4-Bit Pseudo-Zufallszahlen-Programmzählers bzw. eines 10-Bit Pseudo- Zufallszahlen-Programmzählers. Der in Fig. 14 gezeigte Pseudo- Zufallszahlen-Programmzähler verwendet vier Auswahlvorrichtungen 130 bis 136, vier Register 140 bis 146 und eine Nicht-Exklusiv- ODER-Schaltung 148. Die Verbindung zwischen den Auswahlvorrich­ tungen und den Registern ist im wesentlichen dieselbe wie in Fig. 5. Bei der in Fig. 14 gezeigten Ausführungsform sind als die Eingaben für die Nicht-Exklusiv-ODER-Schaltung 148 die Aus­ gaben des vierten Registers 146 und des ersten Registers 140 ausgewählt.
Der in Fig. 15 gezeigte 10-Bit Pseudo-Zufallszahlen-Programm­ zähler weist zehn Auswahlvorrichtungen 160 bis 178, zehn Regis­ ter 180 bis 198 und eine Nicht-Exklusiv-ODER-Schaltung 200 auf. Die Verbindung zwischen den Auwahlvorrichtungen und den Regis­ tern ist im wesentlichen dieselbe wie die in den Beispielen aus Fig. 5 und 14 gezeigte. In Fig. 15 sind als die Eingaben der Nicht-Exklusiv-ODER-Schaltung 200 die Ausgabe des dritten Re­ gisters 184 und die Ausgabe des zehnten Registers 198 ausge­ wählt.
Die Auswahl der Ausgabe von einem der Register als die Eingabe der Nicht-Exklusiv-ODER-Schaltung hängt davon ab, wieviele Bits eine Zufallszahl aufweist, die durch die M-reihige Pseudo-Zu­ fallszahlen-Folge erzeugt wird. Die Erzeugung von n-Bit Zufalls­ zahlen kann zur Erzeugung einer Pseudo-Zufallszahlen-Folge führen, die einen Wert in dem Bereich von 0 bis 2n - 1 einmal in einer scheinbar willkürlichen Reihenfolge annimmt. Die Adres­ sierung eines Befehlsspeichers entsprechend einer solchen M- reihigen Pseudo-Zufallszahlen-Folge erlaubt die Verwendung des Speichers mit im wesentlichen derselben Effizienz wie bei der Benutzung eines Programmzählers, wobei sie das Lesen von Be­ fehlen bei einer höheren Geschwindigkeit ermöglicht.
Andererseits ist es außerdem möglich, eine Schaltung zu verwen­ den, die wiederholt Pseudo-Zufallszahlen in einem kürzeren Zyk­ lus mit derselben Anzahl von Bits anstelle der M-reihigen Pseudo-Zufallszahlen-Folge erzeugt. Mit dieser Schaltung wird, während das Befehlslesens mit einer höheren Geschwindigkeit als bei der Verwendung eines Programmzählers ausgeführt wird, die Effizienz der Speicherverwendung reduziert.
2. Ausführungsform
Bei der oben beschriebenen Vorrichtung entsprechend der ersten Ausführungsform wird der gesamte Befehlsraum gleichzeitig in Pseudo-Zufallszahlen-Adressen umgewandelt. In einem beteiligten Mikroprozessor (Microcontroller), der z. B. einen in einem LSI (large-scale integrated circuit = hochgradig integrierter Schaltkreis) festgelegten Befehlsspeicher aufweist, sollte nur ein vorbestimmtes Programm betrieben werden. Durch Lesen der Befehle entsprechend der oben beschriebenen ersten Ausführungs­ form kann der Mikroprozessor denselben Betrieb wie bei einer gewöhnlichen Vorrichtung mit höherer Geschwindigkeit ausführen.
Bei Mikroprozessoren zur Verwendung in einer Workstation oder ähnlichem wird jedoch eine Mehrzahl von Programmen eines nach dem anderen oder gleichzeitig ausgeführt, und manchmal ist ein sehr großes Programm auszuführen. Zur Verbesserung der Effizienz der Nutzung des Speichers wird daher ein Programm in Segmente unterteilt und in vielen Umständen auf einer Segmentbasis ge­ steuert bzw. betrieben. Ein Segment wird z. B. von 256 Worten gebildet. Dabei ist ein Segment, zu dem ein ausgeführter bzw. auszuführender Befehl gehört, in einem Befehlsspeicher vorhan­ den, während die anderen Segmente in eine zweite Speichervor­ richtung entsprechend der Notwendigkeit ausgeschrieben und in einen realen Speicher gelesen (geladen) werden, wenn dies not­ wendig ist.
Die bei der ersten Ausführungsform beschriebene Programmausfüh­ rungssteuervorrichtung ist auf einen solchen Fall ohne Modifi­ kation nicht anpaßbar. Falls ein großes Programm, das nicht in Segmente unterteilt ist, nach einer Gesamtsummenumwandlung von Adressen entsprechend einer Pseudo-Zufallszahlen-Folge ausge­ führt wird, werden die Adressen von auszuführenden Befehlen in einem Speicherraum von einer Stelle zu einer anderen springen. Es ist daher unmöglich, daß Programm effizient auszuführen, ohne das alle Segmente in den Befehlsspeicher angeordnet sind.
Das Anordnen aller Segmente in den Befehlsspeicher verursacht jedoch das Problem, daß der durch das Programm belegte Speicher­ raum ansteigt und der für andere Zwecke verwendbare Bereich reduziert wird. Verglichen mit dem Fall, in dem das Programm unter Verwendung einer gewöhnlichen Vorrichtung auf Segment­ basis gemanagte bzw. gesteuert wird, wird insbesondere die Speichereffizienz extrem gestört.
Die zweite Ausführungsform ist zur Lösung dieser Probleme vor­ gesehen. Bei der zweiten Ausführungsform wird eine Adressum­ wandlung für jedes der Segmente eines Programmes entsprechend einer Pseudo-Zufallszahlen-Folge ausgeführt, wodurch die meisten der Adressen, die durch den Programmzähler entsprechend der Pseudo-Zufallszahlen-Folge erzeugt werden, in demselben Seg­ ment existieren. Eine effektive Ausführung der Befehle ist daher durch das Anordnen von nur dem bzw. einem Segment in dem Befehlsspeicher möglich. Falls die Notwendigkeit des Zugriffes auf ein anderes Segment auftritt, kann das andere Segment er­ neut in das Befehlssegment geladen werden, um den Zugriff in Übereinstimmung mit der Pseudo-Zufallszahlen-Sequenz an der Adresse zu starten.
Fig. 16 ist ein Konzeptdarstellung der zweiten Ausführungsform. Wie in Fig. 16 gezeigt ist, wird angenommen, daß ein Speicher­ raum 210 z. B. vier Segmente 212, 214, 216 und 218, die ent­ sprechend unterschiedliche Programme A bis D speichern und Adressen 000-0FF, 100-1FF, 200-2FF und 300-3FF aufweisen, speichert. Die Adressen werden durch Hexadezimalwerte ausge­ drückt.
Zum Beispiel bezüglich des Segmentes 214 werden die Adressen von intern in diesem gespeicherten Befehlen zuvor entsprechend einer Pseudo-Zufallszahlen-Folge umgewandelt, wie es bei der ersten Ausführungsform beschrieben worden ist. Dann wird zum Zeitpunkt der Ausführung auf das Segment entsprechend derselben Pseudo-Zufallszahlen-Folge zugegriffen. Als ein Ergebnis können die Befehle in der ursprünglichen Reihenfolge der Programm­ adressen für jeden Befehl gelesen werden.
Obwohl bezüglich Fig. 16 beschrieben worden ist, daß unter­ schiedliche Programme in den entsprechenden Segmenten ge­ speichert sind, können unterschiedliche Segmentabschnitte des­ selben Programms in den Speicherraum gespeichert werden.
Fig. 17 ist ein Ablaufdiagramm, das zum Zeitpunkt der Erzeugung eines in der zweiten Ausführungsform auszuführenden Programmes ausgeführt wird. Die Schritte 90 und 92 sind dieselben Verar­ beitungsabläufe wie diejenigen, die bei der ersten Ausführungs­ form unter Bezugnahme auf Fig. 6 beschrieben worden sind. Nach­ folgend wird in Schritt 230 ein Verarbeitungsablauf zum Teilen eines erhaltenen Programms in Maschinensprache in einer Mehr­ zahl von Segmenten ausgeführt. Dieser Verarbeitungsablauf ist offensichtlich unnötig, falls die Größe des Programmes in Maschinenspache kleiner als ein Segment ist.
In Schritt 232 wird ein Verarbeitungsablauf zum Ersetzen der Adressen in jedem Segment in Übereinstimmung mit der Pseuo- Zufallszahlen-Folge ausgeführt. Der Verarbeitungsablauf ist äquivalent zu dem Verarbeitungsablauf von Schritt 94 aus Fig. 6 bei der ersten Ausführungsform.
In Schritt 234 werden alle die Segmente, in denen das Ersetzen der Adressen abgeschlossen ist, z. B. als ein Ausführungsmodul des Programmes in einer zweiten Speichervorrichtung gespeichert.
Fig. 18 ist ein Ablaufdiagramm, daß den Verarbeitungsablauf der Programmausführungssteuervorrichtung der vorliegenden Ausfüh­ rungsform zum Zeitpunkt der Ausführung des Programmes, das aus Segmenten besteht, die Befehle enthalten, deren Adressen ent­ sprechend des in Fig. 17 gezeigten Verarbeitungsablaufes umge­ wandelt sind, zeigt. Wie in Fig. 18 gezeigt ist, werden zuerst in Schritt 238 ein zuerst auszuführendes Segment und die Ausfüh­ rung eines führenden (ersten) Befehls des Segmentes ausgewählt.
In Schritt 240 wird bestimmt, ob das Segment in dem Befehls­ speicher (realer Speicher) vorhanden ist oder nicht. Falls es vorhanden ist, schreitet die Steuerung zu Schritt 246, und falls es nicht vorhanden ist, zu Schritt 242 fort.
In Schritt 242 wird ein Verarbeitungsablauf zum Laden des Seg­ mentes, das die auszuführenden Befehle bzw. den auszuführenden Befehl enthält, in den realen Speicher ausgeführt. Die Steue­ rung bzw. der Ablauf schreitet dann zu Schritt 246 fort.
In Schritt 246 wird ein Verarbeitungsablauf zum Ausführen eines Befehls in dem Segment entsprechend des Pseudo-Zufallszahlen- Programmzählers ausgeführt. Die Ausführung dieses Verarbeitungs­ ablaufes bestimmt, ob ein nächster Befehl in der Reihenfolge der Programmadressen auszuführen ist, oder ob eine Verzweigung auftritt. Wenn die Verzweigung auftritt, wird eine Sprungadresse ebenfalls ausgegeben.
In Schritt 248 wird basierend auf dem Ergebnis der Ausführung des Befehles bestimmt, ob der gesamte Betrieb der Vorrichtung zu beenden ist oder nicht. Falls der Betrieb fortzusetzen ist, schreitet die Steuerung bzw. der Ablauf zu Schritt 250 fort.
In Schritt 250 wird bestimmt, basierend auf dem Ergebnis des in Schritt 246 auszuführenden Befehls, ob der als nächstes auszu­ führende Befehl in einem anderen Segment enthalten ist oder nicht. Falls der Befehl nicht in einem anderen Segment enthal­ ten ist, kehrt die Steuerung zu Schritt 246 zurück. Falls der Befehl in einem anderen Segment enthalten ist, kehrt die Steue­ rung zu Schritt 240 zur Wiederholung des Verarbeitungsablaufes von Schritt 240 und der nachfolgenden Schritte zurück.
Das wiederholte Ausführen der Betriebsabläufe der Schritte 240 bis 250 versetzt einen Pseudo-Zufallszahlen-Programmzähler in die Lage, ein großes Programm, das in eine Mehrzahl von Seg­ menten unerteilt ist, oder eine Mehrzahl von Programmen, die in unterschiedlichen Segmenten gespeichert sind, auszuführen.
Zusätzlich kann, da es nur notwendig ist, daß das momentan be­ nötigte Segment in dem Befehlsspeicher vorhanden ist, der Be­ fehlsspeicher effektiv genutzt werden. Die Verwendung des Pseudo-Zufallszahlen-Programmzählers erzeugt also außerdem eine Wirkung dahingehend, daß ein Programm mit höherer Geschwindig­ keit ausgeführt werden kann, als dies durch eine gewöhnliche Vorrichtung unter Verwendung eines Programmzählers und eines Inkrementierers realisiert werden kann. Während das derart ausgeführte Programm das Ersetzen seiner Adressen benötigt, kann das Programm wiederholt ohne ein weiteres Ersetzen der Adressen ausgeführt werden, wenn das Ersetzen einmal ausge­ führt ist. Die Betriebseffizienz, von der Erzeugung eines Programmes bis zur Verwendung desselben, verbessert sich da­ her insgesamt.
Obwohl die vorhergehenden Ausführungsformen unter der Annahme, daß ein Hauptspeicher, etc. als ein realer Speicher verwendet wird, beschrieben worden sind, ist die Verwendung des Pseudo- Zufallszahlen-Programmzählers z. B. für den Zugriff für das Lesen von Befehlen aus einem Befehls-Cache, der in einem LSI vorge­ sehen ist, ebenfalls möglich.

Claims (8)

1. Programmausführungssteuereinrichtung mit
einer Befehlsspeichereinrichtung (32) zum Speichern von Befehlen eines Programmes, die im Programmablauf aufeinanderfolgenden Programmadressen entsprechen, an Adressen der Befehlsspeicher­ einrichtung, die einer M-reihigen Pseudo-Zufallszahlenfolge entsprechen,
einer Befehlsleseeinrichtung (30) zum Erzeugen von Pseudo- Zufallszahlen in Übereinstimmung mit der M-reihigen Pseudo- Zufallszahlenfolge zum Lesen von Befehlen aus der Befehlsspei­ chereinrichtung (32) mit derart erzeugten Pseudo-Zufallszahlen als Leseadressen, und
einer Dekodiereinrichtung (34) zum Dekodieren des gelesenen Befehls.
2. Programmausführungssteuereinrichtung nach Anspruch 1, da­ durch gekennzeichnet,
daß die Befehlsleseeinrichtung (30) eine Rückkopplungs-Schiebe­ registereinrichtung zum Erzeugen der M-reihigen Pseudo-Zufalls­ zahlenfolge aufweist und die Befehle aus der Befehlsspeicher­ einrichtung (32) mittels einer Adressierung, die auf den er­ zeugten Pseudo-Zufallszahlen und den Ergebnissen einer Befehls­ ausführung basiert, liest, und
daß die Dekodiereinrichtung (34) einen gelesenen Befehl zum Ausgeben eines Steuersignals entsprechend des gelesenen Befehls dekodiert und ein Auswahlsignal (42), das anzeigt, ob eine nächste Pseudo-Zufallszahl oder eine Sprungadresse, die durch den gelesenen Befehl bestimmt ist, auszuwählen ist und, für den Fall, daß eine Sprungadresse auszuwählen ist, die Sprungadresse (44) an die Leseeinrichtung (30) anlegt.
3. Programmausführungssteuereinrichtung nach Anspruch 2, da­ durch gekennzeichnet, daß die Rückkopplungs-Schiebeeinrichtung aufweist:
eine Mehrzahl von 1-Bit Registern (70 bis 82; 140 bis 146; 180 bis 198), die zur Bildung eines Schieberegisters verbindbar sind, und
eine Logikschaltung (84, 148, 200) zum Ausführen einer logi­ schen Operation bezüglich der Ausgaben einer vorbestimmten An­ zahl von 1-Bit Registern (74, 82; 140, 146; 184, 198) aus der Mehrzahl von 1-Bit Registern zum Rückkoppeln des Ergebnisses an ein führendes 1-Bit Register (70, 140, 180) des Schieberegi­ sters, wobei die Ausgaben der Mehrzahl von 1-Bit Registern die M-reihigen Pseudo-Zufallszahlen erzeugen können,
wobei das Rückkopplungs-Schieberegister weiterhin eine Auswahl­ einrichtung (50 bis 62; 130 bis 136; 160 bis 178) aufweist, die auf das Auswahlsignal (42) mit dem Auswählen von entweder der Verbindung, durch welche die Mehrzahl von 1-Bit Registern das Schieberegister durch die Logikschaltung (84, 148, 200) bilden, oder der Verbindung, durch welche an die Mehrzahl der 1-Bit Re­ gister entsprechend die entsprechenden Bits der Sprungadresse (I0-I9) angelegt werden, als der Verbindung der Mehrzahl von 1-Bit Registern reagiert.
4. Programmausführungssteuereinrichtung nach Anspruch 3, da­ durch gekennzeichnet,
daß die Auswahleinrichtung eine Mehrzahl von Auswahlvorrichtun­ gen aufweist, die entsprechend der Mehrzahl von 1-Bit Registern zum Auswählen von entweder einem Bit, das von der vorhergehen­ den Stufe in einem Rückkopplungs-Schiebeweg in dem Schieberegi­ ster angelegt wird, oder eines entsprechenden Bits der Sprung­ adresse und zum Anlegen des ausgewählten Bits an das entspre­ chende 1-Bit Register als Reaktion auf das Auswahlsignal vorge­ sehen sind, und
daß die Logikschaltung (84, 148, 200) eine Nicht-Exklusiv-ODER- Schaltung zum Anlegen eines Nicht-Exklusiven-ODER von zwei vor­ bestimmten Ausgaben der Mehrzahl von 1-Bit Registern an eine Auswahlvorrichtung entsprechend dem führenden 1-Bit Register (50, 130, 160) aufweist.
5. Programmausführungssteuereinrichtung nach Anspruch 3 oder 4, dadurch gekennzeichnet,
daß die Rückkopplungs-Schieberegistereinrichtung sieben 1-Bit Register (70 bis 82) aufweist,
daß die Auswahleinrichtung sieben Auswahlvorrichtungen (50 bis 62) aufweist, die entsprechend den sieben 1-Bit Registern zum Auswählen von entweder einem Bit, das von einer vorhergehenden Stufe in dem Rückkopplungs-Schiebeweg in dem Schieberegister angelegt wird, oder von einem entsprechenden Bit (I0-I6) der Sprungadresse (44) und zum Anlegen des ausgewählten Bits an das entsprechende 1-Bit Register als Reaktion auf das Auswahlsignal (42) vorgesehen sind, und
daß die Logikschaltung eine Nicht-Exklusiv-ODER-Schaltung (84) für ein Nicht-Exklusives-ODER der Ausgaben von zwei 1-Bit Regi­ stern (74 und 82) entsprechend Bit 2 und Bit 6 der sieben 1-Bit Register zum Anlegen des Nicht-Exklusiven-ODER an die Auswahl­ vorrichtung (50) entsprechend dem führenden 1-Bit Register (70) aufweist.
6. Programmausführungssteuerverfahren mit den Schritten:
Vorbereiten einer Befehlsspeichereinrichtung (32), in der Be­ fehle eines Programmes, die im Programmablauf aufeinanderfol­ genden Programmadressen entsprechen, an Adressen der Befehls­ speichereinrichtung gespeichert sind, die einer M-reihigen Pseudo-Zufallszahlenfolge entsprechen,
Erzeugen von Pseudo-Zufallszahlen durch eine Rückkopplungs- Schieberegistereinrichtung zum Erzeugen von Pseudo-Zufallszah­ len in Übereinstimmung mit der M-reihigen Pseudo-Zufallszahlen­ folge zum Lesen von Befehlen aus dem Befehlsspeicher (32) durch eine Adressierung basierend auf den erzeugten Pseudo-Zufalls­ zahlen und auf den Ergebnissen der Befehlsausführung,
Dekodieren eines gelesenen Befehls zur Ausgabe eines Steuersi­ gnals entsprechend des gelesenen Befehls an eine Progammausfüh­ rungsvorrichtung, wobei ein Auswahlsignal (42), das anzeigt, ob eine durch eine nächste Pseudo-Zufallszahl bestimmte Adresse oder eine Sprungadresse, die durch den gelesenen Befehl be­ stimmt wird, auszuwählen ist, und eine Sprungadresse (44) aus­ gegeben wird, und
wiederholtes Ausführen des Leseschrittes und des Ausgabeschrit­ tes, bis eine vorbestimmte Bedingung erfüllt ist.
7. Programmausführungssteuerverfahren mit den Schritten:
Teilen (230) eines Programmes in eine Mehrzahl von Segmenten,
Teilen einer Befehlsspeichereinrichtung in eine Mehrzahl von Segmentspeicherbereichen,
Modifizieren (232) einer Anordnung von Befehlen derart, daß die in jedem aus der Mehrzahl der Segmente enthaltenen Befehle, die im Programmablauf aufeinanderfolgenden Programmadressen ent­ sprechen, in Positionen angeordnet werden, die einer M-reihigen Pseudo-Zufallszahlenfolge entsprechen,
Spezifizieren eines durch eine Programmausführungsvorrichtung auszuführenden Befehls,
Bestimmen (240), ob ein Segment, das einen auszuführenden Be­ fehl enthält, aus der Mehrzahl der Segmente, die Befehle ent­ halten, deren Anordnung modifiziert ist, in der Befehlsspei­ chereinrichtung vorhanden ist, und, wenn das Segment nicht vor­ handen ist, Laden (242) des Segmentes in einen ausgewählten Segmentbereich aus der Mehrzahl der Segmentbereiche entspre­ chend einer vorbestimmten Bedingung zum Lesen des auszuführen­ den Befehls aus der Befehlsspeichereinrichtung,
Dekodieren eines gelesenen Befehls zur Ausgabe eines Steuersi­ gnals entsprechend des gelesenen Befehls an die Programmausfüh­ rungsvorrichtung, wobei ein Auswahlsignal, das anzeigt, ob eine durch eine Pseudo-Zufallszahl zu bestimmende Adresse oder eine durch ein Dekodierungsergebnis bestimmte Sprungadresse als nächstes auszuwählen ist, und eine Sprungadresse ausgegeben wird,
Erzeugen von Pseudo-Zufallszahlen in Übereinstimmung mit der M- reihigen Pseudo-Zufallszahlenfolge zum Spezifizieren eines als nächstes zu lesenden Befehls basierend auf den erzeugten Pseudo-Zufallszahlen, auf dem Auswahlsignal und der Sprung­ adresse, und
wiederholtes Ausführen des Leseschrittes, des Ausgabeschrittes und des Schrittes des Spezifizierens eines als nächstes zu le­ senden Befehls, bis eine vorbestimmte Bedingung erfüllt ist.
8. Programmumwandlungsverfahren mit den Schritten:
Vorbereiten einer Tabelle (118), in der eine Anzahl von Pseudo- Zufallszahlen, die in Übereinstimmung mit einer M-reihigen Pseudo-Zufallszahlenfolge erzeugt sind, in der Reihenfolge ihres Auftretens angeordnet sind,
Korrelieren (112) jedes Befehls eines Programms mit einer Pseudo-Zufallszahl, deren Rang des Auftretens gleich dem Rang der Programmadresse des Befehles ist, unter Bezugnahme auf die Tabelle (118), und
Speichern (114) der Befehle des Programmes an den durch die korrelierten Pseudo-Zufallszahlen bestimmten Adressen in der Befehlsspeichereinrichtung (32).
DE19524402A 1994-07-15 1995-07-04 Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge Expired - Fee Related DE19524402C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16348094A JP3469941B2 (ja) 1994-07-15 1994-07-15 プログラム実行制御装置および方法

Publications (2)

Publication Number Publication Date
DE19524402A1 DE19524402A1 (de) 1996-01-18
DE19524402C2 true DE19524402C2 (de) 1998-09-17

Family

ID=15774683

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19524402A Expired - Fee Related DE19524402C2 (de) 1994-07-15 1995-07-04 Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge

Country Status (3)

Country Link
US (1) US5651123A (de)
JP (1) JP3469941B2 (de)
DE (1) DE19524402C2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10336013A1 (de) * 2003-07-31 2005-03-03 Infineon Technologies Ag Verfahren zum Erzeugen eines Pseudozufallsdatenstroms und Schaltungsanordnung zur Durchführung des Verfahrens

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996018144A1 (fr) * 1994-12-05 1996-06-13 International Business Machines Corporation DISPOSITIF ET PROCEDE DE PRODUCTION QUASI-ALEATOIRE DE NOMBRES, ET DISPOSITIF ET PROCEDE D'INTEGRATION MULTIPLE DE LA FONCTION f
JP3505266B2 (ja) * 1995-06-15 2004-03-08 三洋電機株式会社 プログラム実行装置
JP3150611B2 (ja) * 1996-03-29 2001-03-26 株式会社東芝 パターン発生装置
US5944845A (en) 1997-06-26 1999-08-31 Micron Technology, Inc. Circuit and method to prevent inadvertent test mode entry
EP0929040A3 (de) * 1997-12-25 2007-06-27 Nippon Telegraph and Telephone Corporation Mikroprozessor mit Datenverschleierung
DE19837101C2 (de) * 1998-08-17 2000-11-23 Philips Corp Intellectual Pty Programmierbare 1-Bit Datenverarbeitungsanordnung
US6452959B1 (en) * 1999-05-28 2002-09-17 Dot Wireless, Inc. Method of and apparatus for generating data sequences for use in communications
US7107434B2 (en) * 1999-12-20 2006-09-12 Board Of Regents, The University Of Texas System, method and apparatus for allocating hardware resources using pseudorandom sequences
US7139912B2 (en) * 2000-06-09 2006-11-21 Sony Corporation Device authentication
US6904456B2 (en) * 2001-02-20 2005-06-07 Microsoft Corporation Lock-free cache management
FR2821478A1 (fr) * 2001-02-23 2002-08-30 St Microelectronics Sa Procede et dispositif de lecture sequentielle d'une memoire avec saut d'adresse
US20040024803A1 (en) * 2002-07-31 2004-02-05 Allen Montijo Cascaded modified PRBS counters form easily programmed and efficient large counter
US7469253B2 (en) * 2003-04-01 2008-12-23 Microsoft Corporation Associative hash partitioning using pseudo-random number generator
JP2004325233A (ja) 2003-04-24 2004-11-18 Matsushita Electric Ind Co Ltd 半導体装置
DE10340411B4 (de) * 2003-09-02 2005-10-13 Infineon Technologies Ag Vorrichtung und Verfahren zur sicheren Ausführung eines Programms
EP1553477A1 (de) * 2004-01-12 2005-07-13 Siemens Aktiengesellschaft Systemintegritätsüberprüfung für Antriebe
US8549134B1 (en) * 2005-02-11 2013-10-01 Hewlett-Packard Development Company, L.P. Network event indicator system
WO2007102323A1 (ja) * 2006-03-08 2007-09-13 Matsushita Electric Industrial Co., Ltd. インタフェース回路、情報処理装置及び情報処理システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57212563A (en) * 1981-06-25 1982-12-27 Fujitsu Ltd Address reading circuit for one-chip microcomputer
DE3682305D1 (de) * 1985-03-23 1991-12-12 Int Computers Ltd Integrierte digitale schaltungen.
JP2673298B2 (ja) * 1987-12-17 1997-11-05 三菱電機株式会社 セルフテスト機能付半導体集積回路
US4905176A (en) * 1988-10-28 1990-02-27 International Business Machines Corporation Random number generator circuit
US5187676A (en) * 1991-06-28 1993-02-16 Digital Equipment Corporation High-speed pseudo-random number generator and method for generating same
US5473708A (en) * 1993-08-16 1995-12-05 Electro-Sensors, Inc. Pattern processing system using minimum length address loops

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
KHAMBATA, Adi J.: Microprocessors/microcomputers, John Wiley & Sons, 1982, S. 12-13 *
TIETZE/SCHENK: Halbleiterschaltungtechnik, Springer-Verl., 1980, 5. Aufl., S. 509-512 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10336013A1 (de) * 2003-07-31 2005-03-03 Infineon Technologies Ag Verfahren zum Erzeugen eines Pseudozufallsdatenstroms und Schaltungsanordnung zur Durchführung des Verfahrens
DE10336013B4 (de) * 2003-07-31 2005-08-18 Infineon Technologies Ag Verfahren zum Erzeugen eines Pseudozufallsdatenstroms und Schaltungsanordnung zur Durchführung des Verfahrens

Also Published As

Publication number Publication date
JP3469941B2 (ja) 2003-11-25
JPH0830452A (ja) 1996-02-02
US5651123A (en) 1997-07-22
DE19524402A1 (de) 1996-01-18

Similar Documents

Publication Publication Date Title
DE19524402C2 (de) Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge
DE3126878C2 (de) Mikroprogramm-Steuerschaltung zum Ausführen eines aus einem Steuerspeicher in einem Quellenregister aufgenommenen Mikrobefehls
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE1499722B1 (de) Einrichtung zur modifizierung von informationswoertern
DE1915818B2 (de) Steuerschaltung für ein elektronisches Datenverarbeitungssystem
DE2555963A1 (de) Einrichtung zur funktionsmodifizierung
DE1928202B2 (de) Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen
DE2023354A1 (de) Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE3043653A1 (de) Datenverarbeitungsanlage
DE2433436A1 (de) Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer
DE2401364A1 (de) Datenverarbeitungssystem
DE3121046C2 (de)
DE2548720A1 (de) Mikroprogramm-steuerwerk
DE2245284A1 (de) Datenverarbeitungsanlage
DE2403669C3 (de) SpezialComputer
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE3344340A1 (de) Datenprozessor mit einem steuerteil, der einen adressgenerator zum erzeugen von adressen enthaelt, die aus charakteristischen adressteilen zusammengesetzt sind
DE2242009C2 (de) Verfahren und Anordnung zum Erkennen, ob im Mikroprogramm einer Datenverarbeitungsanlage vorgesehene Verzweigungsoperationen ausgeführt werden
DE2440390A1 (de) Elektronischer rechner
DE4318317A1 (de) Datenverarbeitungsvorrichtung und -verfahren zum Ausführen von Operationen in Folge
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen
DE2936801C2 (de) Steuereinrichtung zur Ausführung von Instruktionen
DE2735874C2 (de)

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8125 Change of the main classification

Ipc: G06F 9/32

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee