-
-
Schaltungsanordnung zur Prüfung der Verarbeitbarkeit von
-
Speicheroperanden für logische und dezimale Befehle vor Befehlsausführung.
-
Die Erfindung bezieht sich auf eine Schaltungsanordnung gemäß den
Merkmalen des Oberbegriffs des Patentanspruchs 1.
-
Datenverarbeitungsanlagen der oberen Leistungsklasse arbeiten vielfach
in sogenannter Fließbandtechnik, wobei die Befehlsverarbeitung mit Hilfe zweier
Prozessoren in mehreren parallel arbeitenden Stufen durchgeführt wird.
-
Diese Aufgabenverteilung geht so vor sich, daß ein Befehlsaufbereitungsprozessor
im Vorgriff und parallel zur Befehlsausführung das Befehlslesen, die Befehlsinterpretation,
die Operandenadreßrechnung und das Lesen von Speicheroperanden durchführt, während
ein Befehlsausführungsprozessor die eigentliche Befehlsausführung und die Abspeicherung
der Ergebnisse im Registersatz oder im Puffer bzw. Hauptspeicher übernimmt. Sowohl
der Befehlsaufbereitungsprozessor als auch der Befehlsausführungsprozessor beinhalten
jeweils eigene Rechenwerke mit zugehörigen Mikroprogrammsteuerungen. Auf diese Weise
können mehrere Befehle zeitlich überlappt abgearbeitet werden.
-
Voraussetzung für den dadurch erzielbaren hohen Befehlsdurchsatz ist
zusätzlich eine entsprechende Aufbereitung der Speicheroperanden# z.B. die links-
oder rechtsbündige Ausrichtung sowie die byteweise Markierung von Lese- und Schreiboperanden.
Die jeweils doppelwortweise aus dem Arbeitsspeicher gelesenen, je nach Befehlsart
linksbundig (bei logischen Befehlen) oder rechtsbündig (bei dezimalen Befehlen)
ausgernchteten Operanden werden dann im
Befehlsausführungsprozessor
jeweils doppelwortweise verarbeitet. Bei Speicher-Speicher-Befehlen, abgekürzt SS-Befehlen
werden maximal jeweils 16 Bytes pro Operand ausgelesen, ehe nach der Verknüpfung
das erste Rückschreiben des Ergebnisses erfolgt, wobei jeweils nur die relevanten
Bytes innerhalb eines Doppelwortes zurückgeschrieben werden.
-
Der Arbeitsspeicher wird in sogenannte Seiten eingeteilt, wobei eine
Seite im allgemeinen 2 KB oder 4 KB groß ist, Feldanfang und Feldende eines Operanden
können dabei fallweise auch in benachbarten Seiten liegen (Seitenüberschreitung).
-
Erfolgt nun durch einen Maschinenbefehl eine Veränderung von Operanden
in Registern oder im Arbeitsspeicher, dann muß vor der Befehlsausführung geprüft
werden, ob die miteinander zu verknüpfenden Operanden jeweils in voller Länge zur
Verfügung stehen. Ist dies nicht der Fall, dann muß die Befehlsausführung unterdrückt
werden, damit dieser Befehl später ohne Ergebnisverfälschung wiederholt werden kann,
wenn das Betriebssystem über eine Unterbrechungsmeldung die Operanden bereitgestellt-hat.
Andernfalls würde nämlich der bereits zur Verfügung stehende Teil der Operanden
verarbeitet und das entsprechende Teilergebnis in die Register oder in den Arbeitsspeicher
zurückgeschrieben werden mit der Folge, daß bei einer Befehlswiederholung der ursprüngliche
Operand dann nicht mehr zur Verfügung stehen würde.
-
Vor der Befehlsverarbeitung muß deshalb geprüft werden, ob - alle
Seiten im realen Arbeitsspeicher vorhanden sind und - zu diesen Seiten keine Zugriffsbeschränkungen
- Lesen
nicht erlaubt, Schreiben nicht erlaubt, Lesen und Schreiben
nicht erlaubt - vorliegen.
-
Bei nicht nach dem Fließbandpr:t#nzip arbeitenden Datenverarbeitungsanlagen,
die keinen Befehlsaufbereitungsprozessor enthalten, muß eine Überprüfung auf Seitenüberschreitung
im Zentralprozessor durchgeführt werden. Dies geschieht in der Weise, daß vor Beginn
der eigentlichen Befehlsausführung im Addierwerk des Zentralprozessors in einem
Vorspann Feldanfang und Feldende durch Additionen mit den bekannten Größen (Adresse
der Operanden9 Feldlänge der Operanden) durchgeführt werden. Durch anschließendes
Testen der Addierwerk-Ergebnisse wird festgestellt, ob bei wenigstens einem Operanden
eine Seitenüberschreitung stattgefunden hat mit der Folge, daß dann eine Überprüfung
für das Feldende erforderlich ist. Dieser Vorspann bedeutet nicht nur eine entsprechende
Verringerung des Befehlsdurchsatzes, er stellt auch eine zusätzliche Belastung für
das Mikroprogramm des Zentralprozessors insbesondere für den Fall dar, wenn gar
keine Feldendeüberprüfung erforderlich ist.
-
Der vorliegenden Erfindung liegt nun die Aufgabe zugrunde, für die
Überprüfung, ob die für die Befehlsausführung erforderlichen Operanden in voller
Länge zur Verfügung stehen, einen möglichst einfachen und schnellen Weg aufzuzeigen.
-
Die Lösung dieser Aufgabe ergibt sich erfindungsgemäß aus den im kennzeichnenden
Teil des Patentanspruchs 1 angegebenen Merkmalen.
-
Vorteilhafte Weiterbildungen und Ausgestaltungen der Erfindung sind
in den Unteransprüchen bzw. im nebengeordneten Anspruch 3 angegeben.
-
Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der
Zeichnung näher erläutert. Dabei zeigen: FIG 1 eine Schaltungsanordnung zur Ermittlung
der Feldanfangs- und Feldende-Adresse bzw. zur Überprüfung auf Seitenüberschreitung
für Speicheroperanden FIG 2 den Rechenvorgang im Addierwerk der Feldendenprüfschaltung
gemäß FIG 1 zur Ermittlung einer Seitenüberschreitung bei logischen SS-Befehlen
FIG 3,4 zwei Mikroprogrammabläufe im Befehlsaufbereitungsprozessor für zwei verschiedene
logische SS-Befehle zur jeweiligen Überprüfung auf Seitenüberschreitung Die Überprüfung
auf Seitenüberschreitung erfolgt im Befehlsaufbereitungsprozessor, und zwar jeweils
vor der Ausführung des Befehls im Befehlsausführungsprozessor.
-
Das Ergebnis der Überprüfung wird dann dem Befehlsausführungsprozessor
mit den übrigen Befehlsparametern übergeben und kann dort ausgetestet werden. Im
Befehlsausführungsprozessor muß deshalb kein zusätzlicher Vorspann durchlaufen werden.
-
Für die Feststellung einer eventuell auftretenden Seitenüberschreitung
eines Operanden wird in FIG 1 dargestellte Addierwerk AAD des Befehlsaufbereitungsprozessors
verwendet. Den beiden Eingängen dieses Addierwerks AAD sind jeweils Eingangsmultiplexer
MUX-EA, MUX-EB und zugehörige Eingangspufferregister RA, RB zugeordnet.
-
In einem ersten Addiervorgang wird zunächst aus der Basisadresse B1
und der Distanzadresse D1 des ersten Operanden dessen Feldanfangsadresse A errechnet
und in das
Pufferregister AADR übertragen. Als nächstes erfolgt
die Bestimmung der Feldende-Adresse A in der Weise, daß zur Feldanfangsadresse A
die Feldlänge L hinzuaddiert wird. In analoger Weise erfolgt die Bestimmung der
Feldendeadresse für den zweiten Operanden.
-
In der FIG 2 ist ein Beispiel für die Ermittlung der Feldende-Adresse
für logische SS-Befehle dargestellt.
-
Es wird vorausgesetzt, daß eine Speicherseite jeweils 2 KB groß ist
und daß demzufolge für die Distanz LOC innerhalb einer Seite die Adreßbit 21 21bis
31, d.h.
-
insgesamt 11 Bits vorgesehen sind. Die Bits 8 bis 19 (bei 4 KB-Seiten)
bzw. 8 bis 20 (bei 2 KB-Seiten) geben die Seitennummer SN an. Außerdem sei angenommen,
daß die Operandenlänge 5 Bytes umfaßt, so daß definitionsgemäß die Feldlänge L =
4 (Anzahl der Bytes - 1) beträgt. Gemäß FIG 2 ergibt die Addition aus Feldanfangsadresse
A und Feldlänge L eine Feldendeadresse A*, wobei sich aus der Bitstelle 21, d.h.
aus der höchstwertigen Bitstelle der Distanz LOC innerhalb einer Seite ein Übertrag
C21 ergibt. Das Auftreten dieses Übertrages C21 signalisiert eine Seitenüberschreitung,
d.h. daß das Feldende eines Operanden bereits in einer benachbarten Seite liegt.
Falls kein Ubertrag auftritt, liegen Feldanfang und Feldende des Operanden innerhalb
der gleichen Seite.
-
Bei Verwendung von 4 KB großen Speicherseiten ist der entsprechende
übertrag C20 aus der Bitstelle 20 maßgebend. Der jeweils auftretende Übertrag aus
der Bitstelle 20 (4 KB-Seite) bzw. 21 (2 KB-Seite) wird über ein von einem Ladesignal
LDCA, LDCB für den ersten bzw. zweiten Operanden gesteuertes Flipflop FFA bzw.
-
FFB als Steuersignal CA, OB dem Befehlsausführungsprozessor zum Testen
angeboten (siehe FIG 1).
-
Wird nun aufgrund eines auftretenden übertrag eine Seitenüberschreitung
erkannt, dann wird vor Beginn der Befehlsausführung eine Adreßumsetzung mit der
Adresse für das Feldende (Feldendenprüfung) durchgeführt. Wird während dieser Adreßumsetzung
festgestellt, daß die Seite nicht im realen Arbeitsspeicher ist oder werden Zugriffsbeschränkungen
zu dieser Seite erkannt, dann wird die Befehlsausführung unterdrückt und eine Unterbrechung
an das Betriebssystem gemeldet. Die Zugriffsbeschränkungen können je nach Erfordernis
auf: Lesen nicht erlaubt", "Schreiben nicht erlaubt" oder "Lesen und Schreiben nicht
erlaubt" geprüft werden.
-
Unter bestimmten Voraussetzungen ist unabhängig von einer Seitenüberschreitung
keine Uberprüfung des Feldendes erforderlich. Damit können die im Befehlsaufbereitungsprozessor
erforderlichen Additionen zur Ermittlung einer Seitenüberschreitung entfallen, so
daß die Zeit für die Befehlsaufbereitung entsprechend verkürzt wird.
-
Diese zusätzlichen Prüfungen sind befehlstypabhängig und werden bei
einigen Befehlen wie folgt durchgeführt.
-
1. Logische SS-Befehle a) bei den logischen SS-Befehlen ÜBERTRAGEN
ZEICHEN, ÜBERTRAGEN ZONEN, UND, ODER und EXKLUSIV-ODER werden im Addierer jeweils
aus Basis und Distanz B1 + D1 für den ersten Operanden bzw. B2 + D2 für den zweiten
Operanden in jeweils einer Elementaroperation die entsprechenden Feldanfangsadressen
errechnet, die dem Befehlsausführungsprozessor übergeben werden.
-
(siehe FIG 3). Zur Feststellung einer Seitenüberschreitung sind zwei
zusätzliche Elementaroperationen erforderlich, nämlich Adresse erster Operand plus
Feldlänge und Adresse zweiter Operand plus Feldlänge. Um auch das Mikroprogramm
des Befehlsaufbereitungsprozes-
sors nicht in jedem Fall durch
diese zwei Elementaroperationen zu belasten, wird mit Hilfe zusätzlicher Schaltungsmaßnahmen
ermittelt, ob unabhängig von einer Seitenüberschreitung eine Feldendenüberprüfung
überhaupt erforderlich ist.
-
Vor dem ersten Rückschreiben des Ergebnisses werden von beiden Operanden
maximal 16 Bytes vorgelesen. Ist die Feldlänge L>15, d.h. wenn mehr als 16 Bytes
zu verarbeiten sind, dann ist für die beiden Operanden die Überprüfung auf Seitenüberschreitung
erforderlich Das Kriterium für L > 15 wird durch eine ODER-Verknüpfung der vier
höchstwertigen Bits des 8 Bit langen Längenfeldes L erkannt. Ist dagegen die Feldlänge
Lc,15, dann gilt folgendes: - Wird das Ergebnis in mehr als ein Doppelwort des Arbeitsspeichers
zurückgeschrieben (bei L 5 15 maximal zwei oder drei Doppelworte), dann ist eine
Überprüfung auf Seitenüberschreitung für den ersten Operanden erforderlich. Bei
Seitenüberschreitung muß mit dem Feldende des ersten Operanden (Schreibadresse)
geprüft werden, ob in diese Seite geschrieben werden kann. Im Normalfall wird bei
Leseoperationen auf ~Lesen erlaubt und bei Schreiboperationen auf Schreiben erlaubt"
geprüft. Wird in diesem Fall beim Lesen des ersten Operanden zusätzlich auf "Schreiben
erlaubt" geprüft, kann die Addition (B1 + D1) + L zur Feststellung der Seitenüberschreitung
für den ersten Operanden entfallen.
-
- Wird das Ergebnis in nur ein Doppelwort des Arbeitsspeichers zurückgeschrieben
(LmaX <7), dann ist keine Überprüfung auf Seitenüberschreitung erforderlich Wird
nämlich bei diesem Schreibzugriff die Zugriffsbeschränkung Schreiben nicht
erlaubt"
erkannt, dann wird das Programm unterbrochen und das Zurückschreiben des Ergebnisses
in den Arbeitsspeicher wird nicht ausgeführt. Der Schreibzugriff in nur ein Doppelwort
wird durch den Test: WMODW = nein (vgl. hierzu Abschnitt b) erkannt.
-
Damit braucht für L <15 im Mikroprogramm des Befehlsaufbereitungsprozessors
keine Überprüfung auf Seitenüberschreitung durchgeführt werden. Das entsprechende
Mikroprogramm ist aus FIG 3 ersichtlich. LDCA und LDCB sind Signale zur Übernahme
des übertrag C aus der Bitstelle 20 bzw.
-
21, womit eine Seitenüberschreitung signalisiert wird.
-
b) Beim logischen SS-Befehl ÜBERTRAGEN ZEICHENFOLGE erfolgt die Berechnung
der Operandenadressen und die Überprüfung auf Seitenüberschreitung in analoger Weise.
Mit der Adresse des ersten Operanden wird nicht aus dem Arbeitsspeicher gelesen,
sondern nur in den Arbeitsspeicher geschrieben. Es besteht also keine Möglichkeit;
über den Lesezugriff gleichzeitig eine eventuelie Zugriffsbeschränkung für das anschließende
Schreiben festzustellen.
-
Die bei Feldlänge L c 15 und Zurückschreiben des Ergebnisses in mehr
als ein Doppelwort erforderliche Überprüfung auf "Schreiben erlaubt" mit dem Feldende
kann daher nur durch eine Überprüfung auf Seitenüberschreitung für den ersten Operanden
festgestellt werden. Hierfür ist eine zusätzlicge Elementaroperation erforderlich.
Das entsprechende Mikroprogramm für diesen Befehl ist in FIG 4 dargestellt. Der
Test: WMODW: "Schreiben in mehr als ein Doppelwort" wird
aus dem
Übertrag bei der Addition der niederwertigen drei Bits der Schreibadresse (B1 +
D1) und einer "1" in der nächsthöheren Bitstelle einerseits mit den niederwertigen
vier Bits des Längenfeldes L andererseits ermittelt.
-
c) Bei anderen logischen SS-Befehlen führt der Befehlsaufbereitungsprozessor
keine Addition zur Ermittlung einer Seitenüberschreitung durch, weil z.B.
-
keine Überprüfung erforderlich ist, bzw. das Kriterium der Feldlänge
nicht explizit aus dem Längenfeld L entnommen werden kann. Für diese Gruppe von
Befehlen wird die Feststellung einer Seitenüberschreitung befehisabhängig vom Befehlsausführungsprozessor
durchgeführt.
-
2. Dezimale SS-Befehle Bei allen Dezimalbefehlen erfolgt die Verarbeitung
von rechts nach links, das heißt zur Ermittlung der Anfangsadressen müssen im Befehlsaufbereitungsprozessor
für den ersten Operanden die Additionen B1 + D1 und (B1 + D1) + L1 und für den zweiten
Operanden die Additionen B2 + D2 und (B2 + D2) + L2 durchgeführt und die so ermittelten
Adressen dem Befehlsausführungsprozessor übergeben werden Vor dem Rückschreiben
des Eegebnisses in den Arbeitsspeicher wird von beiden Operanden die gesamte Feldlänge
(maximal 16 Bytes) vorgelesen. Für den zweiten Operanden ist deshalb keine Überprüfung
auf Seitenüberschreitung erforderlich. Eine Seitenüberschreitung des ersten Operanden
kann ohne Verlängerung des Mikroprogramms bei der Ausführung der Addition (B1 +
D1) + L1 am Übertrag aus der Bitstelle 20 bzw. 21 erkannt werden.
-
3. Sonstige Befehle Bei den Befehlen SPEICHERN MEHRFACH, LADEN MEHRFACH,
SPEICHERN BITFELD, LADEN BITFELD, SPEICHERN ZEICHEN MIT MASKE, EINSETZEN ZEICHEN
MIT MASKE und VER-GLEICHEN LOGISCH MIT MASKE wird in einer ersten Elementaroperation
die Operandenadresse aus B1 + D1 berechnet und in einer zusätzlichen Elementaroperation
die Prüfung auf Seitenüberschreitung durchgeführt.
-
Da die genaue Feldlänge nicht direkt dem Maschinenbefehl entnommen
werden kann, wird befehlsabhängig die maximal mögliche Feldlänge wie folgt addiert:
STM, LM (B1 + D1) + 63 STBF, LBF (B1 + D1) + 4 STCM, ICM, CLM (B1 + D1) + 3 Wird
bei dieser Addition eine Seitenüberschreitung erkannt, dann muß im Befehlsausführungsprozessor
durch Addition der tatsächlichen Feldlänge erneut geprüft werden, ob eine wirkliche
Seitenüberschreitung vorliegt.
-
Zur beschleunigten Durchführung der für die Überprüfung auf Seitenüberschreitung
erforderlichen Addiervorgänge erweist es sich im übrigen als zweckmäßig, wenn für
das Addierwerk AAD der FIG 1 eine Addierkaskade verwendet wird, weil dann beide
Additionen pro Operand in einer einzigen Elementaroperation durchgeführt werden
können, derart, daß zunächst die Zwischensumme B1 + D1 und unmittelbar darauffolgend
in einem zweiten Addierer die Gesamtsumme (B1 + D1) + L bzw. für den zweiten Operanden
B2 + D2 und (B2 + D2) + L errechnet wird.
-
Im Befehlsaufbereitungsprozessor besteht darüber hinaus in Abhängigkeit
vom Ergebnis einer Seitenüberschreitung für den ersten und/oder zweiten Operanden
die Möglichkeit, getrennte Start-Adressen an den Befehlsausführungsprozessor zu
liefern, damit dieser mit der Überprüfung für das Feldende des entsprechenden Operanden
beginnen kann, so daß das Haupt-r!fikroprogramm nicht durch zusätzliche Tests belastet
wird