DE19524402C2 - Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-Zufallszahlenfolge - Google Patents
Programmausführungssteuereinrichtung mit einer Adressierbarkeit entsprechend einer M-reihigen Pseudo-ZufallszahlenfolgeInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 claims 13
- 230000002596 correlated effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 30
- 238000006243 chemical reaction Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 229940036310 program Drugs 0.000 description 2
- 150000001768 cations Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000003608 fece Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001850 reproductive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/72—Indexing scheme relating to groups G06F7/72 - G06F7/729
- G06F2207/7219—Countermeasures 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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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).
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)
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)
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 |
US20090060191A1 (en) * | 2006-03-08 | 2009-03-05 | Hiroyuki Yabuno | Interface circuit, information processing device, and information processing system |
Family Cites Families (6)
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 |
EP0196171B1 (de) * | 1985-03-23 | 1991-11-06 | International Computers Limited | 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 |
-
1994
- 1994-07-15 JP JP16348094A patent/JP3469941B2/ja not_active Expired - Fee Related
-
1995
- 1995-06-05 US US08/460,947 patent/US5651123A/en not_active Expired - Fee Related
- 1995-07-04 DE DE19524402A patent/DE19524402C2/de not_active Expired - Fee Related
Non-Patent Citations (2)
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)
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 |
---|---|
DE19524402A1 (de) | 1996-01-18 |
JP3469941B2 (ja) | 2003-11-25 |
US5651123A (en) | 1997-07-22 |
JPH0830452A (ja) | 1996-02-02 |
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 | |
DE68928848T2 (de) | Multi-Prozessor-Rechnersystem mit prozessunabhängiger Adressierung von Kommunikationsregistern | |
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 | |
DE3752280T2 (de) | Mustergenerator | |
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 | |
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 | |
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 | |
DE69221465T2 (de) | Regelungsverfahren für einen programmierbaren Kontroller |
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 |