DE2456602C2 - Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher - Google Patents

Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher

Info

Publication number
DE2456602C2
DE2456602C2 DE2456602A DE2456602A DE2456602C2 DE 2456602 C2 DE2456602 C2 DE 2456602C2 DE 2456602 A DE2456602 A DE 2456602A DE 2456602 A DE2456602 A DE 2456602A DE 2456602 C2 DE2456602 C2 DE 2456602C2
Authority
DE
Germany
Prior art keywords
segment
ring
procedure
ring number
address
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
Application number
DE2456602A
Other languages
English (en)
Other versions
DE2456602A1 (de
Inventor
Marc Appell
John Garches Bradley
Philippe Hubert Paris De Rivet
Benjamin S. Boston Mass. Frankling
Georges Vaucresson Lepicard
Original Assignee
Compagnie Internationale Pour L'informatique Cii-Honeywell Bull, Paris
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 Compagnie Internationale Pour L'informatique Cii-Honeywell Bull, Paris filed Critical Compagnie Internationale Pour L'informatique Cii-Honeywell Bull, Paris
Publication of DE2456602A1 publication Critical patent/DE2456602A1/de
Application granted granted Critical
Publication of DE2456602C2 publication Critical patent/DE2456602C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

Die Erfindung geht aus von einer Datenverarbeitungsanordnung nach dem Oberbegriff des Patentanspruchs 1.
In der Vergangenheit sind mehrere Methoden verwendet worden, um Informationen zu schützen. Einige sind von Robert M. Grahem in einem Dokument mit dem Titel » Schutz in einer Informations-Verarbeitungs-Rouiine« erläutert worden, das in CACM veröffentlicht wurde (Mai 1968).
Dieser Typ des Speicherschutzes ist für die heutigen Mehrprogramm-Systeme nicht geeignet, da keine Privilegabstufungen oder Zugänglichkeits-Abstufungen vorhanden sind, was die Kontrolle über den Informationszugriff ernsthaft einschränkt. Für die verschiedenen Zugangsrechte zu den verschiedenen Informationstypen sollten Vorkehrungen getroffen sein. Eine Teillösung dieses Problems ergibt sich aus dem Konzept eines Speichers, der als Informationseinheit ein Segment besitzt, bei dem der Zugriff kontrolliert ist. Verschiedene Zugriffsgrade zu jedem Segment werden möglich, wenn verschiedene Privilegtypen vorgesehen werden, die mit jedem Segment verbunden sind, z. B. Master/Slave, Schreiben/Nicht-Schreiben und Ausführen/Nicht-Ausführen. Dieses Schutzverfahren für die Anonymität und Unversehrtheit der Informationen berücksichtigt jedoch nicht den Benutzer der Informationen. Bei dieser Art des Schutzes erhält nicht der Benutzer ein Privileg, sondern
is die zu schützenden Informationen. In diesem Fall hat ein Benutzer, wenn er überhaupt ein Zugriffsrecht /ti einem Segment besitzt, in gleicher Weise Zugang zu allen anderen Benutzern, die Zugang zu diesem Segment besitzen. David C. Evans und Jean Yves LeClerc haben in einem Dokument mit dem Titel »Adreßplanung und Zugriffskontrolle in einem Dialog-Computer« (SJCC 1967) das Problem erkannt und versucht, eine Lösung zu finden. Evans und LeCierc sagten in diesem Artikel auf Seite 23 »Der Benutzer eines Compuicr-Sysicms soiiie in
M der Lage sein, in beliebiger Weise kontrolliert mit dem System, mit seinen eigenen Berechnungs-Prozessen und mit anderen Benutzern in einem Dialog zu stehen. Ihm sollte ein großes Informations-Speicher- und Informations-Rückruf-System zugänglich sein, das als Datei-System bezeichnet wird. Das Datei-System sollte allen Benutzern den Zugriff auf Informationen auf eine Art und Weise ermöglichen, die eine selektiv kontrollierte Anonymität und Sicherheit der Informationen gestattet Ein Benutzer sollte die Möglichkeit haben, seinen Berechnungsvorgang in halb-unabhängige Aufgaben mit einem kontrollierten Austausch und einer kontrollierten Wechselwirkung zu unterteilen. Diese Fähigkeit müßte die menschlichen Anstrengungen herabsetzen, die zur Entwicklung, Entstörung und Änderung von Programmen erforderlich sind, und sie sollte eine gesteigerte Zuverlässigkeit der Programme ermöglichen. Das System sollte fu:ht willkürlich die Benutzung der Eingabe/ Ausgabe-Einrichtungen einschränken oder die Eingabe/Ausgabe-Programmierung des Benutzers beeinträchti gen. Evans und LeClerc schlugen bedingte Zugriffsrechte bei der Prozedurausführung vor. Gemäß ihrem Vorschlag ist das Segment immer noch die Informationseinheit, zu der der ZugHff kontrolliert wird; die Zugriffskontrollattribute eines Segments sind jedoch im wesentlichen in einer Tabelle aufgezeichnet, in der der Benutzer-Name und die Prozeduren enthalten sind, deren Eintragungen die Zugriffsarten sind. Eine derartige Lösung hat jedoch schwerwiegende Nachteile.
Erstens stellt das Erstellen und Aktualisieren der Tabelle mit den Zugriffs-Kontrollattributen jedes Segments eine umfangreiche Arbeit dar. Zweitens müssen eine zu häufige Benutzung des Segments sowie das Auftreten von Geschehnissen berücksichtigt werden. Zur Überwindung dieses Problems wurde eine Zugriffskontroüc mit Hilfe einer Prozedurgruppe vorgeschlagen. Gemäß diesem Vorschlag werden zusammengehörige Prozeduren in »Prozedurgruppen« zusammengefaßt, und die Zugriffsrechte zu den Segmenten ergeben sich aus der Identi tat der Gruppe, zu der die um Zugriff ersuchende Prozedur gehört
Dieses Verfahren erleichterte das Problem der Entv/icklung und Aktualisierung der umfangreichen Segment-Ziigriffskontrollattribut-Tabellen aller Segmente, warf jedoch das Problem auf, festzustellen, zu welcher Gruppe eine bestimmte Prozedur gehörte, insbesondere, wenn eine Prozedur aus einer Anzahl vieler Gruppen bestand oder bestehen konnte. Diese Zweideutigkeit bei der Definition der Gruppen und die möglichen Übergänge
zwischen den Gruppen machen die Durchführung einer Zugriffskontrolle auf der Basis von Prozedurgruppen extrem schwierig.
Um die bei der »Gruppen-Technik« aufgetretenen Schwierigkeiten zu überwinden, wurde ein Ringkonzept entwickelt Das Ringkonzept faßt die Prozedurgruppen in Ringen zusammen, die unzweideutig durch steigende Privilegstufen geordnet werden können. Durch Zuweisung einer Reihe von Gruppen zu einer Reihe konzentri-
scher Ringe und durch Zuweisen von Nummern zu jedem Ring, wobei der kleinste Ring die niedrigste Nummer besitzt und jede/ folgende Ring stufenweise eine höhere Nummer erhält, können verschiedene Privilegstuten unzweideutig dem Benutzer sines Segments zugewiesen werden. Bei diesem Konzept besitzt der innerste Ring mit der niedrigsten Nummer die höchste Privilegstufe. Es kann also festgelegt werden, daß Benutzern in der niedrigsten Ringnummer Informationen zugänglich sind, die höhere Ringnummern besitzen, während Benutzern
in einer höheren Ringnummer Informationen mit niedrigeren Ringnummern nicht oder nur auf eine bestimmte Weise zugänglich sind. Diese offensichtliche Änderung der Priviiegstufe mit einer Änderung in Ringen ist ein Konzept das die Einwände hinsichtlich einer Änderung von Prozedurgruppen ausräumt
MULTICS (Multiplexed Information and Computing Service) ist ein Betriebssystem, das ursprünglich vom Massachusetts-Institute of Technology in Zusammenarbeit mit General Electric Co. und anderen entwickelt wurde. Die MULTICS-Datenverarbeitungsanordnung, von der die vorliegende Erfindung ausgeht und die im Oberbegriff des Patentanspruchs 1 angegeben ist, ist in »Communications of the ACM«, März 1972. Band 15. Nr. 3. Seiten 157 bis 170 beschrieben. MULTlCS wendete als erstes die Ringtheorie des Software-Schutzes auf einem umgebauten Honeywell-635-Computer und später auf einem HoneywelI-645-Computer an. Bei der MUL-TlCS-Phiiosophie kommen 64 Schutzringe, die von 0 bis 63 durchnumeriert sind, zur Anwendung. Die Theorie wird allgemein in einer Broschüre mit dem Titel »ZugriffskontroHe zum virtuellen MULTICS-Speicher« beschrieben, die von Honeywell Information Systems Ina in den »MULTICS Technical Papers«, Nr. AG95, Rev. O beschrieben wurde. Eine detailliertere Beschreibung des MULTICS-Ringschutzes befindet sich in Kapitel 4 eines Buches mit dem Titel »Das MULTICS-System, eine Überprüfung seiner Struktur«, von Elliot I. Organick,
das von der MIT Press veröffentlicht wurde, und ebenfalls im MULTICS-System-Programmier-Handbuch 1969, MIT-Projckt MAC. Kurz im MULTICS-System kommt keine »reine Ringschutz-Strategie« zur Anwendung, sondern die »Ring-Klammer-Schutzstrategie«, in der die Zugriffsrechte eines Benutzers hinsichtlich eines bestimmten Segments in einem Zugriffs-Modus und einer dreifachen Ringnummer (rl, r2, r3) codiert sind, die für ein best in-"lies Segment als »Ring-Klammern« des Benutzers bezeichnet werden. Ein Zitat aus den Seiten 137 bis 139 du. »MULT1CS Technical Papers« mit dem Titel »Zugriffs-Kontrolle zum virtuellen MULTICS-Speichcr« gibt die Regeln und Bedingungen zur Benutzung und zur Änderung von Ringen an.
Dieses Ringschutz-Konzept wurde zuerst in Verbindung mit Software-Techniken verwendet, die 64 getrennte Ringe benutzten. Anschließend wurde ein Versuch zur Bildung einer brauchbaren Hardware-Basis für den Ringschutz unternommen. Der Honeywell-645-Computer stellt einen ersten solchen Versuch dar. Das Honeywell-System 645 unterscheidet sich von dem bereits beschriebenen Ring-Hardware-Konzept in mehreren Punkten, die, zusammengenommen, auf die Tatsache hinauslaufen, daß der Honeywell-645-Computer eine Zwei-Ring- und nicht 64-Ring-Maschine ist und anstelle eines Ring-Registers mit einem Master- und einem Slave-Modus arbeitet, der dem Prozessor im Master-Modus eine höhere Potenz als im Slave-Modus verleiht. Das Zugriffs-Kontrollfeld des SDW Segment-Descriptor-Worts des 645-Computers enthält keine Informationen bezüglich der Ringe; insbesondere enthält es keine Ringklammern. Es beinhaltet jedoch entweder:
a) eine Zugriffsmodus-Information, die möglicherweise beide Descriptors enthält,
— nur im Master-Modus zugänglich, jjj
— Master-Modus-Prozedur; oder 20 i\
b) die Spezifizierung eines der acht speziell »gelenkter Fehler« (Fallen), die immer dann auftreten, wenn ein Ί Zugriff zu den Segment-Descriptor-Worten (SDW) durchgeführt wird. «
Die Prozedur befindet sich nur im »Master-Modus«, wenn eine Prozedur durchgeführt wird, deren SDW eine ' ü
»Masler-Modus-Prozedur« kennzeichnet. Der Prozessor kann in den folgenden Fällen während der Ausführung 25 f\ einer Slave-Modus-Prozedur in den Master-Modus übergehen:
- Fehler,
— Ausführung einer Unterbrechung. -
Der Zugriffs-KontroIImechanismus des Prozessors 645 interpretiert das SDW während des Adressier-Zyklus und löst je nach SDW und (für gewöhnlich) dem versuchten Zugriff, wie folgt, die geeignete Aktion aus:
a) Wenn das SDW einen bestimmten »gelenkten Fehler« auslöst, tritt dieser Fehler auf;
b) wenn das SDW andererseits nicht den versuchten Zugriff gestattet, tritt der entsprechende Zugriffs-Übertretungsfehlerauf;
der Zugriff wird dann ausgeführt.
Wenn ein Fehler auftritt, geht der 645-Computer in den Master-Modus über und überträgt die Steuerung an die entsprechende Master-Modus-Fehlerverarbeitungsprozedur (Zugriffssteuerung zum virtuellen MULTICS-Speicher, siehe bereits erwähntes Dokument, Seiten 157 bis 158).
Da MULTICS und die Honeywell-645-Version des Ringschutzes hauptsächlich softwareseitig gelöst wurden, ergibt sich eine beträchtliche Überlastung des Betriebssystem-Supervisors, insbesondere wenn Aufrufe nach höheren oder niedrigeren Bedeutungsstufen durch Überspringen zu einer Supervisor-Prozedur durchgeführt wurden. Dies machte einen Zugriff-Kontrollmechanismus erforderlich, der funktionell in der Lage war, wirksam seine Informations-Schutzfunktion durchzuführen, der relativ einfach arbeitete, wirtschaftlich herzustellen, zu f§
bedienen und zu warten war und die allgemeine Programmierung nicht beeinträchtigte. Das Honeywell-Computer-System 6000 entspricht diesen Anforderungen durch die hardwareseitige Realisierung des größten Teils des Ringschutz-Mechanismus. Nun stand eine spezielle Zugriffs-Prüflogik, die mit der segmentierten Adressierungs-Hardware integriert war, zur Verfügung, um alle virtuellen Speicherreferenzen freizugeben und außerdem einige Sonderbefehle zum Wechsel des Durchführungsrin^es ermöglichte. Bestimmte Teile des Ringsystems, insbesondere nach außen gerichtete Abrufe und die Rückkehr oder die Aufrufe nach einer geringeren Bedeutungsstufe und die Rückkehr davon, warfen Probleme auf, die die Durchführung der Ringschutz-Funktion durch Übertragung der Steuerung auf einen Supervisor erforderten. Nun waren weitere Hardware- und Technik-Verbesserungen erforderlich, die die vollständige Realisierung des Ringschutzes auf der Hardware-Firmware-Seite ermöglichten und den Kriterien Funktionsfähigkeit, Wirtschaftlichkeit, Einfachheit und allgemeine Programmierung entsprachen.
Aufgabe der Erfindung ist die Schaffung einer Datenverarbeitungsanordnung der eingangs angegebenen Art, die einen in Hardware/Firmware ausführbaren Schutz vor gegenseitigen Störungen zwischen Prozessen aufweist, die in einer multiprogrammierbaren Datenverarbeitungsanordnung dadurch auftreten können, daß gleiehe Segmente von verschiedenen Prozessen benutzt werden können.
Diese Aufgabe wird durch die Lehre des Patentanspruchs 1 gelöst
Computer-Daten und -Prozeduren werden geschützt, indem Prozesse daran gehindert werden, ineinander überzugreifen oder den Adreßraum des jeweils anderen Prozesses in illegaler Weise gemeinsam zu benutzen. Dies wird mit einer Ringschutzstruktur durchgeführi, die hardware-firmwareseitig realisiert wird und die Adressierbarkeit des Speichers entsprechend den Privilegstufen begrenzt
Prozesse benutzen eine segmentierte Adresse während ihres Ablaufs, wobei festgelegte Felder in den Segment- und/oder Prozedur-Descriptoren den Adreßraum der verschiedenen Prozesse des Systems je nach
'•if Privilegstufen zuweisen. Hardware-Überprüfungen stellen fest, ob die von einem Prozeß benutzte Adresse zu
i| dem diesem Prozeß zugewiesenen Adreßraum gehört, und wenn sich die Adresse außerhalb der zugewiesenen
Privilegstufe befindet, wird der Zugang zu der adressierten Information abgelehnt.
; Die Datenverarbeitungsanordnung verfügt gemäß einer Weiterbildung der Erfindung über vier Ringklassen,
λ 5 die von 0 bis 3 durchnumeriert sind. Jeder Ring stellt eine System-Privilegstufe dar, wobei die Stufe 0 (der
j j innerste Ring) das höchste Privileg und die Stufe 3 (der äußerte Ring) das niedrigste Privileg besitzt.
'! In Weiterbildung der Erfindung wird ein Computer-Ringschutz-Mechanismus geschaffen, der nach innen
i~; gerichtete A jfrufe (Aufrufe zu einer niedrigeren Ringnummer) über ein »Tor« ermöglicht, jedoch keine nach
,' außen gerichteten Aufrufe gestattet.
j ίο Eine Weiterbildung der Erfindung besteht in der Schaffung eines Ringschutzmechanismus, bei dem eine
;| Prozedur im Lese/Schreib-Modus in festgelegten Ringen ablaufen kann, wogegen eine Prozedur im Durchfühlt rungs- Modus in festgelegten Ringklammem ablaufen kann.
(f. Durch eine andere Weiterbildung der Erfindung wird ein Ring-Kreuzungsmechanismus geschaffen, der hard-
L| ware-identifizierbare Rückstell-Stacks und einen Prozedur-Aufrufmechanismus verwendet.
ψ 15 Weitere vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben.
!J Die Erfindung wird nun anhand der Zeichnung beispielshalber erläutert. Es zeigt
ψ, Fig. 1 das Blockdiagrammeiner Datenverarbeitungsanordnung, in der die Erfindung zur Anwendung kommt,
% F i g. 2 ein schematisches Diagramm, das die Privilegstufen der Erfindung darstellt,
SS F i g. 3 ein FhißHiagramm Her in ripr Erfindung angewendeten segmentiert?". Adreßstruktur,
H 20 Fig.4A bis J schematische Diagramme der verschiedenen neuartigen Hardwarestrukturen, die in der Erfin-
H dung zur Anwendung kommen,
ig F i g. 5 ein schematisches Diagramm der Ringschutz-Hardware der Datenverarbeitungsanordnung,
U F i g. 6 ein schematisches Diagramm der segmentierten Adressierungs-Hardware der Datenverarbeitungsan-
j| Ordnung,
Λ 25 F i g. 7a-7b und 8a—c genaue Logik-Blockschaltbilder der Ringschutz-Hardware;
I F i g. 9a bis 9h die Erklärung der in den Diagrammen verwendeten Symbole,
» F i g. 10 ein schematisches Diagramm der drei Stack-Segmente, jeweils eins für Ring 0.1 und 3,
I F i g. 11A das Format des Eingabe-Prozedur-Befehls,
β F i g. 11B das Format eines Prozedur-Descriptors,
30 F i g. 1 IC das Format eines Durchschalt-Prozedur-Descriptors GPD, der das erste Wort des Segments das die Prozedur-Descriptors bildet,
F i g. 11D das Format des Ausgabe-Prozedurbefehls,
Fig. 12 ein Flußdiagramm eines Teils des Eingabebefehls, das zur Ringkreuzung und Ring-Überprüfung gehört,
35 F i g. 13 einen Segment-Descriptor und das Segment, das die Prozedur-Descriptors enthält,
Fig. 14 bis 16 Flußdiagramme, die die verschiedenen Operationen darstellen, die bei der Ausführung des Eingabe-Prozedur-Befehls durchgeführt werden und
F i g. 17 ein Flußdiagramm des Ausgabebefehls.
Wie bereits erläutert, hat das Ring-Konzept des Informationsschutzes seinen Ursprung in MULTICS und 40 wurde auf verschiedenen Honeywell-Computer-Systemen angewendet. Das ursprüngliche MULTICS-Konzept erforderte 64 Ringe oder Privilegstufen, und die spätere Anwendung besaß das Äquivalent von 2 Ringen-auf dem Honeywell 645 und 8 Ringe auf dem Honeywell 6000. Daten- und Prozedursegmente sind in einer Hierarchie von 4 Ringen oder Klassen zusammengefaßt (siehe Fig.2). Die vier Ringe oder Privilegstufen werden durch die Ganzzahlen 0 bis 3 identifiziert; jeder Ring stellt eine Privilegstufe im System dar, wobei die Stufe 0 das höchste 45 und die Stufe 3 das niedrigste Privileg besitzt Die Stufe 0 ist als der innerste Ring und Stufe 3 als der äußerste Ring bekannt Der grundlegende Begriff, der bereits erläutert wurde, ist der, daß eine Prozedur, die zu einem inneren Ring gehört, freien Zugriff auf Daten eines äußeren Ringes hat Umgekehrt kann eine in einem äußeren Ring befindliche Prozedur nicht auf Daten eines inneren Ringes zugreifen, ohne eine Schutz-Überschreitungsausnahme hervorzurufen. Die Übertragung der Kontrolle zwischen Prozeduren wird mit einem Schutzmecha-50 nismus überwacht, so daß eine Prozedur-Ausführung in einem äußeren Ring keine direkte Verzweigung zu einer in einem inneren Ring befindlichen Prozedur durchführen kann. Dieser Typ der Übertragungs-Kontrolle wird nur durch die Durchführung eines besonderen Prozedur-Aufruf-Befehls möglich. Dieser Befehl ist auf mehrere Arten vor Mißbrauch geschützt Es ist ein Durchschalt-Mechanismus vorhanden, um zu gewährleisten, daß ein Eintritt in Prozeduren nur über vorgesehene Eintritts-Punkte möglich ist, die beim Überkreuzen von Ringen als 55 Tore bezeichnet werden. Der Segment-Descriptor einer solchen Prozedur enthält ein Tor-Bit, welches angibt, daß ein Eintritt in die in diesem Segment befindliche Prozedur nur über Tore möglich ist Die diese Tore betreffenden Informationen sind am Anfang der Segmente enthalten und werden von der Hardware zum Eintritt an einem legalen Eintritts-Punkt verwendet
Die Prozedur selbst muß nun überprüfen (auf eine Art, die notwendigerweise von der Funktion der Prozedur 60 abhängt), ob sie legal aufgerufen wird. Ein weiterer Hardware-Schutzmechanismus steht für den Fall zur Verfügung, daß die aufrufende Prozedur eine Adresse als Parameter angibt; es ist dann möglich, daß die privilegiertere Prozedur fälschlicherweise Informationen ändert, die sich in dieser Adresse befinden, was der weniger privilegierte Aufrufer nicht hatte tun können, da ihm der Ringmechanismus den Zugang verwehrt hätte. Zur Vermeidung dieser Möglichkeit steht ein Adreß-Freigabebefehl zur Verfugung.
65 Eine wichtige Vereinbarung ist hier erforderlich, um dzn Prozedur-Aufrufmechanismus zu schützen. Diese Vereinbarung legt fest, daß es nicht allgemein zulässig ist diesen Mechanismus zum Aufrufen einer Prozedur in einem weniger privilegierten Ring zu benutzen und in einen höher privilegierten Ring zurückzukehren. Diese Einschränkung ist notwendig, da nicht gewährleistet ist daß die im höheren Ring befindliche Prozedur tatsäch-
lieh zurückkehrt, daß sie nicht, freiwillig oder absichtlich. Informationen zerstört, auf die die privilegiertere Prozedur baut, oder daß sie nicht zufällig oder absichtlich die Sicherheit des Stack (Definition siehe »Erläuterung der ver sendeten Ausdrücke«) verletzt. Jeder dieser Vorgänge könnte zu unvorhersehbaren Resultaten und zum Zusammenbruch des Systems führen.
Die Privilegstufen sind relativ unabhängig vom ProzeB-Steuermechanismus, und es sind hier nLht wie im IBM-System 360 privilegierte und nicht-privilegierte Pro.iesse beabsichtigt. Vielmehr kann der gleiche Prozeß Prozeduren auf verschiedenen Privileg-Stufen (Ringen) durchführen, abgesehen von durch den Ringmechanismus auferlegten Einschränkungen. In diesem Sinne kann der Ringmechanismus als Möglichkeit zur Unterteilung des gesamten Adreßraums betrachtet werden, der einem Prozeß gemäß der Privilegstufe zugewiesen ist.
Der hier definierte Ringmechanismus ermöglicht es ein und demselben Segment, gleichzeitig bis zu drei verschiedenen Ringen anzugehören, d. h. jeder Segment-Descriptor enthält drei Ringnummern, eine für jeden : j der möglichen Zugriffstypen.
Daher kann sich ein und dasselbe Segment in Ring 1 für den Schreib-Zugriff, im Ring 2 für den Ausführungs- \.·; Zugriff und in Ring 3 für den Lese-Zugriff befinden. Ein offensichtlicher Anwendungsfall hierfür ist der Fall eines
i; Prozedur-Segments, das nur von Ring 0 (möglicherweise dem Lader) geschrieben werden, jedoch in Ring 3
ώ> ausgeführt werden kann.
Von den vier verfügbaren Ringen sind zwei dem Betriebssystem und zwei den Benutzern zugewiesen. Ring 0, der Ring mit dem höchsten Privileg, ist für diejenigen Betriebssystem-Segmente reserviert, die für die Funktion • '■'■ uus gesamtem Systems unerläßlich sind. Diese Segmente bilden den harten Kern, dessen einwandfreies Funktio-
j! nieren zu allen Zeitpunkten lebenswichtig ist, um eine Katastrophe zu verhindern. Einbezogen wären hierbei die
, ■, .Systcm-I.iformationsbasis, diejenigen Prozeduren, die sich auf die Organisation des räumlichen Speichers oder
den Start von räumlichen Datenübertragungs-Operationen beziehen, und die Mechanismen, die die System-Funktionen, wie den Ausnahme-Supervisor, den Planer und die Hilfsquellen-Verwaltung durchführen.
■ Ring 1 enthält wesentlich mehr Betriebssystem-Segmente, deren Ausfall nicht zu einer Katastrophe führen,
sondern einen Wiederstart ermöglichen wurden. Hierzu gehören die Sprachübersetzer, die Daten- und MeI-dungs-Verwaltung, und die Job- und Prozeß-Verwaltung. Aufgrund der zwei für das Betriebssytem verfügbaren Ringe ist das Problem der Aufrechterhaltung der System-Integrität besser beherrschbar geworden, da der kleinere harte Kern, der kritisch ist, isoliert ist und sorgfältig geschützt werden kann.
Die Ringe 3 und 4 stehen fir den Benutzer zur Durchführung von Zuordnungen entsprechend seinem Bedarf zur Verfugung. Zwei wichtige Möglichkeiten sind die Entstörungs- und Eigentumsprogramme. Die entstörten ; Programme können dem Ring 4 zugeordnet werden, wogegen die überprüften Programme und die Daten, mit
■' denen sie arbeiten, sich in Ring 3 befinden können; auf diese Weise können die Auswirkungen von Fehlern
'.; lokalisiert werden. Eigentums-Programme können durch Unterbringung in Ring 3 vor ihren Benutzern ge-
■:} schützt werden, wogegen die letzteren den Ring 4 zugewiesen bekommen. Auf diese und andere Arten können
\ die beiden Ringe flexibel in Anwendungen benutzt werden.
s Allgemeine Regeln des Ringsysiems ■
j 1. Eine Prozedur in einem inneren Ring, wie Ring 2, F i g. 2, hat freien Zugriff zu Ddien in einem äußeren Ring,
.ι wie Ring 3, und es ergibt sich ein legaler 7 riff (Pfeil 201). Andererseits hat eine Prozedur in einem äußeren
H Ring, wie Ring 3, keinen Zugriff zu Date.. . sich in einem inneren Ring, wie Ring 2, befinden und ein Versuch
:i eines Zugriffs löst einen illegalen Zugriff (Pfeil 202) aus.
:j 2. Eine in einem äußeren Ring, wie Ring 3, befindliche Prozedur kann über das Tor 204 zu einem innerer". Ring
;' wie Ring 1 springen, was zu einer legalen Verzweigung 203 führt; eine Prozedur, die in einem inneren Ring, wie
% Ring 2, abläuft, kann jedoch nicht auf einen äußeren Ring, wie Ring 3, springen.
ji 3. Jedem Segment, das Daten enthält, sind zwei Ringwerte zugeordnet, einer für Lesen (RD) und einer für
i Schreiben (WR). Diese Ringwerte geben den maximalen Ringwert an, bei dem eine Prozedur beim Zugriff zu
i Daten entweder im Lese- oder im Schreib-Modus ablaufen kann.
ϊ Jedesmal, wenn ein Prozedurbefehl ausgeführt wird, erfolgt eine Überprüfung der Prozedur-Ringnummer
Tj (tatsächliche Adreßringnummer EAR) gegenüber Ringnummern, die dem die adressierten Daten enthaltenden
■5 Segment zugeordnet sind EAR ist die höchste Nummer der Prozeßringnummern im Prozessor-Befehlszähler
% (siehe spätere Beschreibung) und aller Ringnummern der Basis-Register und Daten-Descriptors, die sich im
\ Adressierungs-Pfad befinden. Auf der Basis eines Vergleichs der Ringnummern wird der Zugang zu den Daten
I freigegeben oder gesperrt Wenn zum Beispiel in einem Segment mit einem maximalen Lese-Ringwert von 3 und
ja einem maximalen Schreib-Ringwert von 1 eine Systemtabelle vorhanden ist, kann die in Ring 3 ablaufende
s Benutzerprozedur die Tabelle lesen, diese jedoch nicht durch Schreiben aktualisieren.
I Prozedur-Aufruf- und Stack-Mechanismus
I Der Prozedur-Aufruf- und Stack-Mechanismus ist ein wichtiger Mechanismus, der vom Ringschutz-Mecha-
ig nismus der vorliegenden Erfindung benutzt wird.
% Prozedur-Aufrufe werden benutzt, um von einer Prozedur auf eine andere überzugehen, den Benutzer-Proze-
% duren den Gebrauch der Dienste des Betriebssystems zu ermöglichen und innerhalb des Betriebssystems eine
1 molekulare Struktur zu erzielen. Ein Prozedur-Aufruf wird mit Hilfe von Befehlen und einer von der Hardware
I erkannten Größe, die als Stack bezeichnet wird, durchgeführt.
M Ein Stack ist ein Mechanismus, der auf der Basis »zuletzt hinein — zuerst heraus« die Aufnahme, Speicherung
it und das Wiederauffinden von Daten ermöglicht Stacks befinden sich in speziellen Segmenten, die als Stack-Seg-
H menie bezeichnet werden. Ein Stack-Segment besteht aus einer Anzahl von aneinander angrenzenden Teilen.
die als Stack-Rahmen bezeichnet werden und jeder Prozedur dynamisch zugewiesen werden. Der erste Stack-Rahmen wird an das untere Ende des Segments geladen und die darauffolgenden Rahmen danach. Der letzte geladene Rahmen wird als Spitze des Stacks bezeichnet Ein T-Rsgister 114 (Fi g. 1) lokalisiert die Spitze des Stacks für den gerade aktiven Prozeß. Ein virtuelles T-Register ist im Prozeß-Steuerblock (PCB) aller anderen
Prozesse innerhalb des Systems vorhanden.
Ein Stack-Ra'imen besteht aus drei Zonen: einer Arbeitszone, in der Variable gespeichert werden, einer Sicherstellungs-Zone, in der der Inhalt von Registern sichergestellt wird und einer Kommunikations-Zonc, in die Parameter zwischen Prozeduren eingegeben werden. Vor einem Prozeduraufruf muß der Benutzer diejenigen Register angeben, deren Inhalt er sicherstellen möchte, und er muß die zur aufgerufenen Prozedur durchzuge benden Parameter in die Kommunikations-Zone eingeben. Wenn der Aufruf erfolgt ist stellt die Hardware den Inhalt des Befehlszählers und der angegebenen Basis-Register sicher, um die Rückkehr von der aufgerufenen Prozedur zu erleichtern.
Jeder Prozeduraufruf erzeugt einen Stack-Rahmen innerhalb eines Stack-Segments, und anschließende Verfahrensaufrufe erzeugen zusätzliche Rahmeio. Jeder Austritt aus einer dieser aufgerufenen Prozeduren bewirkt die Löschung eines Stack-Rahmens innerhalb des Stacks. Daher wird eine Geschichte der Aufrufe festgehalten, um die geordnete Rückkehr zu erleichtern.
Um den Schutz zwischen Prozeduren, die in verschiedenen Ringen ablaufen zu gewährleisten, werden verschiedene Stack-Segmente benutzt Ein Stack-Segment entspricht jedem Schutzring pro Prozedur. Ein Prozeß-Steuerblock (PCB) enthält drei Stack-Basis-Worte (SBW), die auf den Start des Stack-Segments für die mit dem
Verfahren verbundenen Ringe 0,1 und 2 hinweisen. Das Stack-Segment von Ring 3 kann niemals über einen
nach innen gerichteten Aufruf eingegeben werden: daher ist seine Stack-Startadresse nicht im PCB erforderlich.
Der Prozedur-Aufruf wird von Benutzern verwendet, die ihre Programme modular geschrieben haben, um
von einem Programm-Modul zu einem andei en überzugehen. Der Aufruf wird von Benutzer-Programmen verwendet, die die Dienste des Betriebssystems benutzen wollen. Der Aufruf wird vom Betriebssystem selbst benutzt, um eine entsprechende Modularstruktur zu erreichen.
Die Hauptanforderungen an einen Prozedur-Aufrufmechanismus sind:
1. Oberprüfung des Rechtes des Aufrufers, mit dem Aufrufer in Verbindung zu treten.
2. Sicherstellung des Aufrufer-Status, was Sicherstellungsregister, Befehlszahler (für die Rückkehr) und andere Status-Bits beinhaltet;
3. Ermöglichen der Eingabe von Parametern;
4. Feststellen des gültigen Eintritts-Punktes für die aufgerufene Prozedur;
5. Durchführung aller erforderlichen Einstellungen im Adessierungsmechanismus;
6. Eintritt in die neue Prozedur.
Wenn die aufgerufene Prozedur zu Ende ist oder austritt muß alles, was auch beim Aufruf geschehen ist rückgängig werden, so daß der Status der aufrufenden Prozedur wieder zu dem wird, was er vor dem Aufruf war.
Vor der Durchführung eines Prozedur-Aufrufs wird der Befehl »REPARE STACK« (Stack vorbereiten) durchgeführt Dieser Befehl bewirkt eine Speicherung der vom Programmierer im Befehl spezifizierten Register im Suck. Er bewirkt eine Sicherstellung des Status-Registers (Fig. 1); er stellt dem Programmierer einen Hinweis für den Parameter-Raum zur Verfugung, in dem er nun die an die aufgerufene Prozedur durchzugebenden Informationen laden kann.
Ein weiterer Befehl »ENTER PROCEDURE« (Prozedur eingeben) ermöglicht den Prozeduraufruf mit Hilfe der folgenden Schritte, die den oben aufgeführten Anforderungen entsprechen:
1. Ring-Überprüfung — der Ring des Aufrufers wird überprüft, um zu gewährleisten, daß dieser Ring die neue Prozedur aufrufen kann; der Aufruf muß zu einer kleineren oder gleichen Ringnummer durchgeführt werden; und wenn eine Ringkreuzung auftritt muß die neue Prozedur über ein Tor 204 von F i g. 2 geleitet werden. Die neue Ringnummer entspricht dann der der aufgerufenen Prozedur; so 2. Der Inhalt des Befehlszählers wird sichergestellt;
3. Das Basis-Register (siehe F i g. 1) wird auf 0 positioniert, um tatsächlich auf die durchgegebenen Parameter hinzuweisen;
4. Der Eintrittspunkt der aufgerufenen Prozedur ergibt sich aus einem Prozedur-Descriptor. dessen Adresse im Befehl »ENTER PROCEDURE« enthalten ist;
5. Ein Hinweis zur Verkettungs-Information wird im Basis-Register Nr. 7 geladen;
6. Die neue Prozedur wird durch Laden der neuen Ringnummer und der Adresse des Eintrittspunktes in den Befehlszähler eingegeben.
Der Rest des gegenwärtig benutzten Stack-Rahmens steht ebenfalls der aufzurufenden Prozedur zur Speicherung von örtlichen Variablen zur Verfügung.
Wenn die aufgerufene Prozedur eine Rückkehr erfordert, führt sie den Befehl »EXIT PROCEDURE« (Prozeß-Ausgabe) durch. Der Inhalt der Register und des Befehlszählers wird nun aus den im Stack befindlichen Sicherstellungszonen zurückübertragen.
Beschreibung des bevorzugten Ausführungsbeispiels
In F i g. 1 sind ein Blockdiagramm und ein Computer-Hardware-System dargestellt, das die Erfindung anwendet. Ein Hauptspeicher 1Ol besteht aus vier Metalloxyd-Halbleitcr-Speichermodulen (MOS-Speichermodulcn).
Die vier Speichermodule 1 bis 4 sind über den Hauptspeicher-Sequenzer 102 mit der zentralen Verarbeitungseinheit 100 verbunden. Die vier Speichermodule 1 bis 4 sind ebenfalls über den Hauptspeicher-Sequenzer 102 und den IOC (nicht abgebildet) mit dem Peripherie-Untersystem, z. B. den Magnetbandeinheiten und Platteneinheiten (nicht abgebildet), verbunden. Der Hauptspeicher-Sequenzer ermöglicht den Zugriff auf allen vier Speichermodulen sowie deren Steuerung.
Die Funktionen der CPU werden von einem Festspeicher (ROM), der hier als Steuerspeichereinheit 110 bezeichnet wird, gesteuert
Der Steuerspeicher-Interface-Adapter 109 ist in Verbindung mit der Steuerspeichereinheit 110, der Datennuß-Steuereinheit 106, der Adreß-Steuereinheit 107 und der arithmetischen Logikeinheit 112, um den Betrieb des Steuerspeichers zu steuern. Der Steuerspeicher-Interface-Adapter 109 beinhaltet eine Logik zur Adreßänderung des Steuerspeichers, zum Testen, zur Fehlerüberprüfung, und zur Hardware-Adreßerzeugung. Die Hardware-Adreßerzeugung wird im allgemeinen zur Entwicklung der Startadresse von Fehlersequenzen oder für die Initialisierungs-Sequenz verwendet
Der Pufferspeicher 104 wird zur Speicherung der am meisten oder der zuletzt gerade benutzten Informationen verwendet die von der CPU verarbeitet werdea
Die Datenfluß-Steuereinheit 106 führt die Interface-Funktion zwischen der CPU 100 und dem Hauptspeicher 101 und/oder dem Puffer-Speicher 104 durch. Während einer Speicher-Leseoperation können Informal inen im Hauptspeicher oder im Pufferspeicher lokalisiert werden. Die Datenfluß-Steuereinheit hat die Aufgabe, festzustellen, welche Einheit die Informationen enthält und diese Informationen zum richtigen Zeitpunkt den CPU-Registern zuzuleiten. Die Datenfluß-Steuereinheit führt ebenfalls die Maskierung während partieller Schreiboperationen durch.
Die Befehlserfassungseinheit 108, die mit der Datenfluß-Steuereinheit eines Stacks der Adreß-Steuereinheit 107. der arithmetischen Logik-Einheit 112 und der Steuerspeicher-Einheit 110 über Interface-Funktionen verbunden ist, hat die Aufgabe, der CPU 100 ständig Befehle zuzuführen.
Die Adreß-Steuereinheit 107 ist mit der Befehls-Erfassungs-Einheit 108, dem Pufferspeicherverzeichnis 105, dem Hauptspeicher-Sequenzer 102, der arithmetischen Logik-Einheit 112, der Datenfluß-Steuereinheit 106 und der Steuerspeicher-Einheit 110 über den Steuerspeicher-Interface-Adapter 109 verbunden. Die Adreß-Steuereinheit 107 ist für die gesamte Adreß-Entwicklung in der CPU verantwortlich.
Die arithmetische Logikeinheit 112, die über Interface-Funktionen mit der Adreß-Steuereinheit 107, der Befehls-Erfassungseinheit 108 und dem Steuerspeicher 110 verbunden ist, ist die Hauptarbeitszone der CPU 100. Ihre Hauptfunktion besteht darin, die von der CPU angeforderten arithmetischen Operationen und Datenmanipulationen durchzuführen.
Mit der arithmetischen Logikeinheit 112 und der Steuerspeicher-Einheit 110 ist die lokale Speichereinheit 111 verbunden, die typischerweise aus einem 256-Positions-Festkörperspeicher (32 Bits pro Position) und der A uswahl- und Lese/Schreib-Logik für den Speicher besteht.
Die lokale Speichereinheit !! 1 wird zur Speicherung von CPU-Sieuerinionriätiönen und Wärtungsinformationen benutzt Zusätzlich enthält die lokale Speichereinheit 111 Speicherpositionen, die hauptsächlich zur zeitweiligen Speicherung von Operanden und Teilresultaten während Datenmanipulationen verwendet werden.
Die zentrale Verarbeitungseinheit 100 enthält typischerweise 8 Basis-Register (BR) 116, die bei der Adreß-Entwicklung zur Definierung einer Segment-Nummer, eines Offset und einer Ringnummer verwendet werden. Der Offset ist ein Hinweis innerhalb des Segments, und die Ringnummer wird in der Adreß-Legalitätsrechnung verwendet, um die Zugriffsrechte für eine bestimmte Zugriffsoperation zu einem Segment zu überprüfen.
Der Befehlszähler 118 ist mit dem lokalen Register des Hauptspeichers (MLR) 103 und der Befehlserfassungs-Einheit 108 verbunden; er ist ein 32-Bit-Register, das die Adresse des nächsten Befehls und die gegenwärtige Ringnummer des Prozesses (PRN) enthält Die zentrale Verarbeitungs-Einheit beinhaltet weiterhin ein T-Register 114, das über Interface-Funktionen mit der Befehls-Erfassungseinheit 108 verbunden ist und typischerweise ein 32-Bit-Register ist, das eine Segmentnummer und eine positive 16-Bit- oder 22-Bit-Ganzzahl enthält, mit dem die relative Adresse der Spitze der Prozedur-Stacks festgelegt wird. Das Status-Register 115 ist ein 8-Bit-Register in der CPU, das unter anderem die letzte Ringnummer enthält, d. h. den vorherigen Wert tier Prozedur-Ringnummer(PRN).
Der Hautspeicher 101 wird durch das Speicher-Adreßregiscrr (MAR) 1IS adressiert, und die'von (MAR) 119 adressierte Information wird abgegriffen und zwischenzeitlich im Speicher-Lokal-Register (MLR) 103 gespeichert.
In F i g. 3 ist ein Flußdiagramm der allgemeinen Regeln für die segmentierte Adreßentwicklung dargestellt.
Bei der in F i g. 3 dargestellten Adreßentwicklung können 16 indirekte Adressierungspegel in der Adreßentwicklung benutzt werden. Dies ist natürlich für den Konstrukteur lediglich eine Frage der Auswahl. ?,!
In den Fig.4A bis 4] stellen die Fig.4A und 4B das Format des durch das Bezugszeichen 118 von Fig. I |:
gekennzeichneten Befehlszählers dar. Der Befehlszähler (IC) 118 ist ein 32-Bit-Register, das die Adresse des ;
nächsten Befehls und die gegenwärtige Ringnummer des Prozesses (PRN) enthält. Gemäß den F i g. 4A und 4B *;
ist das TAG ein 2-Bit-Feld. PRN ist ein 2-Bit-Feld, das die gegenwärtige Ringnummer des zur Festlegung der 60 ¥ Zugriffsrechte zum Hauptspeicher zu benutzenden Prozesses angibt. SEG ist typischerweise entweder ein f
12-Bit- oder ein 6-Bit-Feld, das die Nummer des Segments angibt, in dem die Befehle durchgeführt werden *.·'
sollen. Das OFFSET ist typischerweise entweder ein 16-Bit- oder ein 12-Bit-Feld, das die Adresse das Befehls :;
innerhalb des SEG-Segments definiert. ;
Die I"i g. 4C bis 4F stellen das Format von Segment-Desciptors dar, wobei die Fi g. 4C und 4D das erste und 65 <■' zweite Wori eines direkten Segment-Descriptors darstellen, wogegen in den F i g. 4E und 4F das erste und das zweite Wort eines indirekten Segment-Descriptors gezeigt ist. %
Die Länge des Segment-Descriptors beträgt 2 Worte, jedes Wort besteht aus 32 Bits. In den F i g. 4C bis 4D ist
jeweils das erste und das zweite Wort eines direkten Segment-Descriptors dargestellt P ist ein Anwesenheits-Bit Wenn P gleich 1 ist befindet sich das vom Segment-Descriptor definierte Segment im Hauptspeicher, wenn P gleich Null ist ist das Segment nicht vorhanden, und ein Zugriff zum Segment-Descriptor löst eine Ausnahme »fehlendes Segment« aus. Alle anderen Felder innerhalb eines Segment-Descriptors haben nur dann eine Bedeutung, wenn P den Wert 1 hat A ist das Verfügbarkeits-Bit Wenn A gleich Null ist ist das Segment nicht verfügbar (oder gesperrt), und ein Zugriff zum Segment löst eine Ausnahme »Segment nicht verfügbar« aus. Wenn A gleich Eins ist ist das Segment verfügbar (oder freigegeben), und es kann erfaßt werden. I ist das Umleitungs-Bit Wenn I gleich Null ist ist der Segment-Descriptor direkt Wenn I gleich Eins ist ist der Segment-Descriptor indirekt U ist das Benutzt-Bit Wenn U gleich Null ist ist kein Zugriff auf das Segment erfolgt Wenn U gleich Eins ist ist ein Zugriff auf das Segment erfolgt U wird durch jeden Segment-Zugriff auf Eins gesetzt W ist das Geschrieben-Bit Wenn W gleich Null ist ist im Segment keine Schreiboperation durchgeführt worden. Wenn W gleich 1 ist ist im Segment eine Schreiboperation durchgeführt worden. W wird durch alle Schreiboperationen gesetzt GS ist das Durchschalt-Semaphor-Bit Wenn der bereits erwähnte Verfahrens-Aufruf-Mechanismus erfordert, daß das Segment ein Durchschalt-Segir.ent ist oder wenn der Prozedur-Kommunikations-Mechanismus (nicht dargestellt) erfordert, daß das Segment ein Segment-Descriplor-Segment (SD) ist werden die GS-Bits überprüft Um ein gültiges Durchschaltsegment zu sein, müssen die GS-Bits den Wert 10 haben. Um ein gültiges SD-Segment zu sein, müssen die GS-Bits den Wert 01 haben. Wenn ein Durchschalt- oder ein SD-Segment nicht erforderlich ist werden diese Bits ignoriert Das BASE ist ein 24-Bit-FeId, das die absolute Adresse in Vierfachworten des ersten Bytes des Segments definiert Dieses Feld wird mit 16 multipliziert um die Byte-Adresse der Segment-Basis zu errechnen. Das SIZE-FeId wird zum Errechnen der Segment-Gijöae verwendet Wenn STN größer oder gleich Null jedoch kleiner oder gleich 6 ist beträgt die Länge aes SiZE-Feides iö Bits. Wenn STN größer oder gleich 8, jedoch kleiner oder gleich 15 ist beträgt die Größe des SIZE-Feldes 12 Bits. Die Anzahl der Bytes im Segment beträgt 16 X(SIZE+1). Wenn SIZE Null ist, beträgt die Segment-Größe 16 Bytes. RD ist das Lese-Zugriffsfeld. Dieses 2-Bit-Feld gibt die maximale EAR an (tatsächliche Adreß-Ringnummer) bei der eine Leseoperation im Segment zulässig ist (Eine Prozedur kann immer ihr eigenes Segment lesen, wenn EAR gleich PRN ist) WR ist das Schreib-Zugriffsfeld. Dieses 2-Bit-Feld gibt die maximale EAR an, bei der eine Schreiboperation im Segment zulässig ig* und die minimale FRN bei der das Segment durchgeführt werden kann. MAXR ist die maximale Ringnummer. Dieses 2-Bit-Feld gibt die maximale PRN an, bei der das Segment benutzt werden kann. WP ist das Schreiberlaubnis-Bit Dieses Bit gibt an, ob eine Schreiboperation am Segment durchgeführt werden kann. Wenn WP gleich Null ist kann keine Schreiboperation durchgeführt werdea Wenn WP gleich Eins ist kann eins Schreiboperation durchgeführt werden, wenn ί: AR gleich oder größer als Null, jedoch gleich oder kleiner als WR ist EP ist ein Ausführungserlaubnis-Bit Dieses Bit gibt an, oh das Segment benutzt werden kann. Wenn EP gleich Null ist darf das Segment nicht benutzt werden. Wenn EP gleich Eins ist kann das Segment bei jeder PRN benutzt werden, bei der PRN gleich oder größer als WR, jsdoc'- gleich oder kleiner als MAXR ist MBZ ist ein Sonderfeld, das, wenn es erzeugt wird, vor seinem Gebrauch durch die Hardware von der Software auf Null gelöscht werden muß.
In den Fig.4E bis 4F sind die dargestellten Definitionen der verschiedenen Felder ähnlich den bereits aufgeführten; das Wort 0 beinhaltet jedoch ein Speicherplatz-Feld und Wort 1 ein RSU-FeId. Das Speicherplatz-Feld ist ein 28-Bit-Feld, das die absolute Adresse eines direkten Segment-Descriptors angibr. Der Wert im Speicherplatz-Feld muß ein Vielfaches von 8 betragen. Das RSU-FeId ist ein für Software-Zwecke reserviertes Sonderfeld. Die F i g. 4G bis 4H stellen das Format der Basis-Register dar (BR), die im Adreß-Errechnungs-Prozeß zur Definition einer Segmenttabellen-Nummer, einer Segmenttabellen-Eingabe-Nummer, eines OFFSET und einer Ringnummer verwendet werden.
Gemäß Fig. 1 und Markierung 116 sind typischerweise 8 Basis-Register vorhanden. Ein Basis-Register wird als Basisregister 0 bis 7 spezifiziert oder identifiziert. Die Größe eines Basis-Registers beträgt 32 Bits. Das Basis-Register-Format von Fig.4G wird für kleine Segmente benutzt d.h. Segmente, bei denen STN gleich oder größer als 8, jedoch kleiner oder gleich 15 ist, wogegen das Format des Basis-Registers von F i g. 4H für große Segmente verwendet wird, d. h. Segmente, bei denen STN größer oder gleich Null, jedoch kleiner oder gleich 6 ist In den F i g. 4G bis 4H ist TAG ein 2-Bit-Feld, das dem TAG des bereits erwähnten Daten-Descriptors entspricht. RING ist ein 2-Bit-Feld, das für Schutzzwecke die mit der segmentierten Adresse verbundene Ringnummer enthält. Das bereits erwähnte SEG-FeId identifiziert ein in einer Segmenttabelle beschriebenes Segment STN ist die Segment-Tabellennummer und STE ist die Segmenttabellen-Eintragsnummer. OFFSET ist je nach Segmenttabellen-Nummer ein 16-Bit oder ein 22-Bit-Feld, das eine positive ganze Zahl definiert. OFFSET wird bei der Adreßentwicklung als Hinweis innerhalb eines Segments benutzt
In den F i g. 41 bis 4J ist das Format des T-Registers dargestellt Das T-Register ist ein 32-Bit-Register, das eine Segmentnummer und eine positive 16-Bit- oder 22-Bit-Ganzzahl enthält, mit dem die relative Adresse der Spitze des bereits erwähnten Prozedur-Stacks definiert wird. Das T-Register ist in Fig. 1 durch die Markierung 114 gekennzeichnet. Die verschiedenen Felder des T-Registers entsprechen der oben aufgeführten Definition.
Die Fig.3 und 4A bis 4J enthalten eine detailliertere Beschreibung der Berechnung der absoluten Adresse sowie der Zugriffs-Überprüfung. Im allgemeinen besteht die Berechnung der absoluten Adresse aus dem Aufrufen eines durch STN und STE angegebenen Segment-Descriptors und der Benutzung des Segment-Descriptors auf vier Arten:
Zugriffs-Überprüfung, Berechnen der absoluten Adresse, Begrenzungs-Überprüfung und Aktualisierung (U- und W-Kennmarken). Die absolute Adresse kann direkt oder indirekt sein, und sie wird durch eine crslc Ableitung einer tatsächlichen Adresse aus STN, STE und SRA (relative Segmcntadrcsse) erzeugt. STN wirt! aus den Bits 4 bis 8 des in der Bcfehlssilbc eines Befehls spezifizierten Basis-Registers BR erzeugt. Wenn STN gleich 7 ist, wird eine Ausnahme »Überschreitung der Segmenttabellen-Wortmatrix« erzeugt. STE wird aus dem in der Adrcßsilbe spezifizierten Basis-Register erzeugt. Wenn STN 4 :4 ist (d. h. bei Bit 4 beginnt und die nächsten 4
;."' Bits mit einschließt), und größer oder gleich Null oder kleiner oder gleich 6 ist, befindet sich STE in den Bits 8 und
Ü 9 eines Basis-Registers. Wenn STN 4 :4 ist (d. h. 4 Bits beginnend mit Bit 4) und größer oder gleich 8, jedcch
kleiner oder gleich 15 ist, befindet sich STE in den Bits 8 bis 15 eines Basis-Registers BR. Die relative Segment-Adresse SRA für die direkte Adressierung wird durch Addition der Verschiebung in der Adreßsilbe, des OFFSET des Basis-Registers BR und des 32-Bit-Inhalts eines Index-Registers, wenn in der Adreßsilbe spezifi-
■ ziert, errechnet. Die Summe dieser drei Größen ist eine vorzeichenlose binäre 32-Bit-Ganzzahl, die kleiner als
die den Segmenten STN, STE entsprechende Segmentgröße sein muß.
Die indirekte Adressierung erfolgt durch Aufrufen eines Daten-Descriptors und Berechnen einer Adresse aus diesem Descriptor. Die tatsächliche Adresse des Daten-Descriptors wird wie bei der direkten Adressierung errechnet, mit dem Unterschied, daß der Inhalt des Hinweisregisters nicht benutzt wird. Bei der Entwicklung der Adresse aus dem Daten-Descriptor kann die tatsächliche Adresse durch eine indirekte Adressierung zu einem lTS-Segment-Descriptor und eine indirekte Adressierung zum ΓΓΒΒ-Basis-Descriptor errechnet werdea Wenn es sich um den ITS-Descriptor handelt, werden STN und STE in der gleichen Weise wie bei einem Basis-Register aus dem Descriptor abgegriffen. SRA wird durch Addition der Verschiebung innerhalb des Descriptors mit dem
Inhalt eines in der Adreßsilbe spezifizierten Hinweis-Registers errechnet Wenn der Descriptor ein ITBB-Descriptor ist, werden STN und STE aus dem im BBR-FeId des Descriptors in gleicher Weise wie bei der direkten Adressierung abgegriffen (d. h. das vom ITBB-Descriptor benutzte Basis-Register). SRA w:,rd durch Addition der Verschiebung innerhalb des Descriptors mit dem OFFSET des Basis-Registers und dem Inhalt eines in der Adreßsilbe spezifizierten H in weis-Registers errechnet.
Wie in F i g. 3 dargestellt, kann der indirekte Adressierungsprozeß bis auf 16 Pegel erweiter' werden.
Jede tatsächliche Adresse enthält Schutzinformationen, die bei der Adreßentwicklung errechnet werden und die Zugriffsrechte der Ringschutz-Hardv^are des absoluten Adreß-Berechnungsmechanismus überprüfen. Die tatsächliche Adresse enthält Schutzinformationen in Form einer tatsächlichen Adreß-Ringnummer EAR. Die EAR wird aus der Basis-Register-Ringnummer BRN und der Ringnummer des laufenden Prozesses PRN durch Abgreifen der maximalen Ringnummer errechnet Bei der Entwicklung der EAR für die indirekte Adressierung kommt eine etwas umständlichere, jedoch im wesentlichen mit Jer indirekten Adressierung identische Prozedur zur Anwendung. Bei der indirekten Adressierung ist die EAR für das Erfassen des ersten Descriptors (EAR I) nochmals die maximale Ringnummer des in der Adreßsilbe spezifizierten Basis-Registers und die Ringnummer des laufenden Prozesses (PRN), der sich im Befehlszähler 118 von F i g. 1 befindet und im 00-Register 512 von
$ F i g. 5 gespeichert wird. Die EAR für das Erfassen des zweiten Descriptors (EAR 2) der indirekten Vielfachpe-
ti gel-Adressierung ist das Maximum der folgenden Werte:
a) EARI;
U b) die Ringnummer im ersten Descriptor, wenn die indirekte Adressierung eine indirekte Angabe eines jp Segments ist;
g c) die Ringnummer aus einem Basis-Register 116, das als Datenbasis-Register BBR verwendet wird, wenn der M erste Descriptor eine indirekte Adresse zum Segment-Descriptor ITBB darstellt
£i Die EAR für das Erfassen der Daten der indirekten Vielfach-Pegel-Adressierung ist das Maximum der
&jj folgenden Werte:
j.; a) EAR2:
;"' . b) die Ringnummer im zweiten Descriptor, wenn dieser ein Indirektadressen-Segment-Descriptor ITS ist;
Λ c) die Ringnummer in einem der als Daten-Basis-Register BBR benutzten Basis-Register, wenn der zweite
Descriptor eine indirekte Adresse zum Basis-Descriptor ITBB ist
In den Fig.5 und 6 wird die Übertragung und Handhabung der verschiedenen Ringnummer-Typen auf I.: Systemebene beschrieben. Die detaillierten logischen Blockdiagramme für die Durchführung der Übertragun-
' gen und Operationen von F i g. 5 werden später beschrieben. Gemäß F i g. 6 wird in der segmentierten Adreß-
cntwicklung ein Assw.iativ-Speicher 600 verwendet, der in der US-Patentanmeldung 2 83 617 vom 24.8.1972 beschrieben ist. Der Assoziativ-Speicher 600 beinhaltet hauptsächlich einen 'UAS-Assoziator 609, dessen Schaltungen <\ssoziativ-Speioherzellen, Bit-Abtast-Verstärker und -Treiber sowie Wort-Abtast-Verstärker und -Trei-■ ber (nicht abgebildet) beinhalten. Ein Wort oder ein beliebiger Teil eines im UAS-Assoziator 609 befindlichen
Wortes, kann gelesen und mit einem anderen Wort verglichen werden, wodurch ein Übereinstimmungs- oder ■ Nicht-Übereinstimmungs-Signal erzeugt wird, oder entweder in einem ganz?n oder in einem ausgewählten Teil
des Assoziators 609 geschrieben werden. Zum Beispiel kann das US-Register 607 eine Segment-Nummer enthalten, die sich ebenfalls im Assoziativ-Speicher 600 befinden kann. Mit dem UAS-Assoziator 609 wird ein Vergleich durchgeführt, und wenn Gleichheit festgestellt wird, tritt eine Übereinstimmung auf. Das Gleichheitsoder Übereinstimmungs-Signal wird der Codiereinheit 610 zugeführt Die Codiereinheit 610 hat die Aufgabe, das Übereinstimmungs-Signal auf einer der Gleichheitsleitungen in eine 4-Bit-Adresse umzuwandeln. Die Codiereinheit 610 führt diese 4-Bit-Adresse dem UAB-Assoziator-Pufferspeicher 611 zu, so daß die in dieser speziellen Position des UAB-Assoziator-Pufferspeichers 611 befindlichen Informationen ausgewählt werden. Die im UAB-Assoziator-Pufferspeicher 611 befindlichen Informationen können zur zeitweiligen Speicherung in das UV-Registcr 613 übertragen werden oder zur Übertragung jeweils dem QA- oder QB-Bus 614 bzw. 615 zugeführt werden. Durch diese Plazierung einer vorgespeicherten Segmentnummer im Assoziativ-Speicher 600 (die dort nach einer Entwicklung einer absoluten Adresse plaziert worden sein kann) ist eine Regenerierung der gleichen Adresse nicht erforderlich. In Fig.6 ist der UAB-Assoziator-Pufferspeicher 611 beim Speichern eines ersten und /weiten Wortes eines Segment-Descriptors dargestellt; andere Informationstypen können jedoch auch hier
gespeichert werden.
Gemäß Fig.6 wird jedes der 8 Basis-Register 602 jeweils über die UG- und UH-Register 603 bzw. 604 adressiert, die die Basis-Register-Adressen aus einer Befehls-Adreßsilbe oder einem durch die Befehlsformate spezifizierten Basis-Register enthalten. Die Basis-Register 602 enthalten Informationen wie z. B. TAG, die Basis-Register-Ringnummer BRN, die Segment-Tabeiiennummer STN, der Segment-Tabeileneintrag STE und »OFFSET«, die in den Basis-Registern 1 und 2 der Basis-Registergruppe 602 enthalten (oder abgebildet) sind. Das Schreiben in den Basis-Registern wird von der UWB-Logik 601 unter der Steuerung durch Mikrooperationen durchgeführt. Als Beispiel ist dargestellt, daß die Informationen aus dem UM-Register 502 von F i g. 5 in die Bit-Positionen (2, 3) eines ausgewählten Basis-Registers geschrieben werden können; die Informationen vom
ίο QA-Bus können ebenfalls in die Basis-Register übertragen werden, und als Vorbereitung wird ein ausgewähltes Basis-Register gelöscht, d. h. mit Nullen aufgefüllt. Das Lesen aus einem beliebigen dieser Basis-Register wird von der UBR-Logik 605 durchgeführt. Im allgemeinen ermöglicht die UBR-Logik 605 die Übertragung des Inhalts des entsprechenden Basis-Registers auf den QA- oder QB-Bus oder zum UN-Register 608. Es ist /u bemerken, daß das UN-Register 608 die Bits 8 bis 31 der Basis-Register beinhaltet, die den OFFSFT-Teil der segmentierten Adresse darstellen. Weiterhin liest die UBR-Logik 605 bei Adressierung durch eine im Bcfchls-Pufferspeicher IB enthaltene Adresse (nicht dargestellt) die SEG-Segmentnummer (die aus STN und STE entwickelt wird) über die UBS-Übertragungslogik 606 in das US-Register 607. Der Vergleich der Segmentnummer SEG im US-Register 607 mit dem Assoziativ-Speicher 600 kann nun, wie bereits beschrieben, durchgeführt werden. Es ist zu bemerken, daß die Sits (4 bis i5) des QA-Süs ebenfalls in das US-Register 607 eingc-rcseii oder aus diesem ausgelesen werden können, !n gleicher Weise können die Bits 8 bis 31 vom QA-Bus 614 in das UN-Register 608 übertragen werden. Weiterhin können die Bits (9 bis 11) des US-Registers 607, wie vom Pfeil US (9 bis 11) gekennzeichnet, in den QA-Bus 614 eingelesen werden (die Pfeile zu den verschiedenen Registern und/oder Logikschaltungen kennzeichnen die Datenquelle und die mit einer Nummer versehenen Pfeile kennzeichnen die Bit-Nummern dieser Daten).
Wie in den Fig.5 und 6 dargestellt, speichert ein 2-Bit-UP-Register 501 die Ringnummer des laufenden Prozesses PRN. Die Ringnummer des laufenden Prozesses PRN ergibt sich über die Bits IC (2—3) des QA-Bus 614 von Fig.6 aus den Bits 2 und 3 des Befehlszählers (118 von Fig. 1). Die Bits IC (2-3) des QA-Bus 614 werden unter der Steuerung durch eine Mikrooperation UV9QAC ia das 2-Bit-UV-Register 503 übertragen. Die Mikrooperationen ergeben sich aus Mikrobefehlen in der Steuerspeicher-Einheit UO. In Fig.5 kennzeichnet der mit einem Kreis versehene Punkt eine Mikrooperation, und die ersten beiden Buchstaben der Bezeichnung der Mikrooperation kennzeichnen die Bestimmung der zu übertragenden Daten; der vierte und fünfte Buchstabe kennzeichnen die Quelle der übertragenen Daten; das dritte Zeichen kennzeichnet, ob eine vollständige oder eine Teil-Übertragung durchgeführt wird, wobei F eine vollständige Übertragung kennzeichnet, wogegen das sechste Zeichen angibt, ob das Signal, das die Übertragung auslöst, einen hohen oder einen niedrigen Wert hat;
die geraden Ziffern kennzeichnen einen niedrigen Signalwert, und die ungeraden Ziffern kennzeichnen einen hohen Signalwert Als Anwendungsbeispiel dieser Regel kennzeichnen die Bits 2 und 3 auf dem QA-Bus den Strich des QA-Pfeils (2, 3): hierdurch wird gekennzeichnet, daß PRN die QRN-Verfahren-s-Ringnummer hl. die unter der Steuerung durch die Mikrooperation UV9QA0 zu übertragen ist und angibt, daß die Übertragung zum UV-Register durchgeführt werden soll und eine Teilübertragung des QA-Bus ist, und daß die Datenquelle der
QA-Bus ist und eine unbedingte Übertragung durchgeführt wird, da das sechste Zeichen gleich Null ist. Die Übertragung von der QA-Bus-Quelle zu UV-Register ist unbedingt Diese »0« ist das entsprechende siebte Zeichen in der logischen Datei-Bezeichnung des Unterbefehls UV9QA10. Wenn die Prozeß-Ringnummcr PRN einmal vom QA-Bus 614 zum UV-Register 503 übertragen ist, findet unter der Steuerung durch die Mikrooperation UM9UV0 eine weitere Übertragung vom UV-Register 503 zum UN-Register 502 statt. Schließlich erfolgt
eine weitere Übertragung vom UM-Register 502 unter der Steuerung durch eine UP9UM0-Mikrooperation zum UP-Register501.
Das 2-Bit-Register UM 502 wird zur Erzeugung der tatsächlichen Adreß-Ringnummer EAR während der ITS- und ITBB- (d. h. Umleitung zum Segment und Umleitung zur Basis, EAR = MAX (BRN, PRN, DRN/BBR (BRN) usw.) Adreßerzeugung für die Befehlsformat-Typen von Adreßsilbe 1 und Adreßsilbe 2 benutzt. Die EAR
so wird gemäß den bereits erwähnten Regeln unter Benutzung eines oder mehrerer im Block 510 dargestellten Tests erzeugt KTd die maximale Ringnummer wird entwickelt und im UM-Register 502 untergebracht das oie tatsächliche Adreß-Ringnummer EAR speichert (Einzelheiten der Logik oder die Durchführung der Vergleiche von Block 510 werden später genauer beschrieben). Das UO-Register wird benutzt um die Adreßsilbe 1 der tatsächlichen Adreß-Ringnummer EAR sicherzustellen, wenn die Adreßsilbe 2 zum Erfassen von EAR 2 benutzt
Die 2-Bit-Register UV 503 und UW 504 werden hauptsächlich zur Speicherung verschiedener Ringnummem benutzt die sich an der Außenseite der Ringüberprüfungs-Hardware von F i g. 5 ergeben und die zu anderen Teilen der Ring-Überprüfungs-Hardware übertragen oder dort verarbeitet werden. Zum Beispiel wird die Ringnummer BRN des Basis-Registers von den Bit-Positionen 2 und 3 der UBS-Übertragungslogik 606 unter der Steuerung durch die Mikrooperation UVFBSO zum UV-Register 503 übertragen; die maximale Ringnummer MAXR von Wort 2 des Segment-Descriptors (ebenfalls in den Bits 36 und 37 des UAB-Assoziator-Puffer-Speichers 611 dargestellt) wird vom UAB-Pufferspeicher 611 unter der Steuerung durch die Mikrooperation UVFABI zum UV-Register 503 übertragen. Weiterhin werden die Bits 34 und 35 des UAB-Pufferspeichers 611, die die Schreib-Ringnummer WR darstellen, unter der Steuerung durch die Mikrooperation UVFABO zum UV-Register 503 übertragen. Das UW-Register 504 nimmt ähnliche Übertragungen von anderen Ringnummern aus verschiedenen Teilen des Systems auf. Zum Beispiel können die Bits 34 und 35, die die Schreib-Ringnummer WR des UAB-Pufferspeichers 611 darstellen, ebenfalls unter der Steuerung durch die Mikrooperation UWFABI zum UW-Register 504 übertragen werden; die Bits 32 und 33, die Lese-Ringnummer RD des UAB-Pufferspei-
chcrs 611 können ebenfalls unter der Steuerung durch die Mikroopenilion UWI'AHO um UW-Register 504 übertrügen worden; weiterhin können die Bits 0 und I des QA-Uns 614 unter der Steuerung durch die Mikroopenilion IJW9QA0/um UW-Rcgis(cr 504 übertragen werden. Es ist weiterhin zu bemerken. dnU mehrere Überiragungspfiidc vom UW-Register 504 unter der Steuerung durch die Mikrooperation UV9UW0zum UV-Register 503 benutzt werden; der Übertragungspfad vom UV-Register 503 zum UM-Register 502 unter der Steuerung durch die Mikrooperation UM9UV0;der Übertragungspfad vom UM-Register 502 zum UP-Register 501 unter der Steuerung durch die Mikrooperation UP9UM0; der Übertragungspfad vom UP-Register 501 zum UM-Ref ;.-ter 502 unter der Steuerung durch die Mikrooperation UM9UP0; der Übertragungspfad vom UM-Register 502 zum UO-Register 512 unter der Steuerung durch die Mikrooperation U09UM0; und schließlich der Übertragungspfad vom UO-Register 512 zum UM-Register 502 unter der Steuerung durch die Mikrooperation UM9U00.
Daher beinhaltet das UP-Register 501 die Ringnummer des laufenden Prozesses PRN; die Register UM 502 und UO 512 werden zur Übertragung von Operationen und weiterhin zur Erzeugung der EAR benutzt; das UV-Register 503 kann zu verschiedenen Zwecken und zu verschiedenen Zeitpunkten die Ringnummer PRN des J
laufenden Prozesses, die Basis-Register-Ringnummer BRN, die maximale Ringnummer MAXR, die Schreib-Ringnummer WR oder die Lese-Ringnummer RD speichern. Das UW-Register 504 kann zu verschiedenen Zeitpunkten die Lese-Ringnummer RD, die Schreib-Ringnummer WR und die Bits 0 und 1 des QA-Bus aufnehmen. UMR 505 ist eine Logikschaltung, deren Einzelheiten in Fig.8d dargestellt sind und die den Inhalt der Register UM und UV vergleicht. 'JhAR 503 überüägi den größeren der freien Werte in die Register und speichert diesen Wert im UM-Register 502 unter der Steuerung durch die Mikrooperation UMFRMO. Dies ist eine Möglichkeit zur Erzeugung der tatsächlichen Adreß-Ringnummer EAR. Die UMR-Logik 505 kann ebenfalls den größeren Wert des Inhalts von Registern UP oder der Bits 2 und 3 der UBS-Logik 606 erzeugen. Dies ist eine weitere Methode und/oder ein zusätzlicher Schritt zur Erzeugung der tatsächlichen Adreß-Ringnummer EAR. Die UMR-Logik 505 wird ebenfalls benutzt, um festzustellen, ob während der Übertragung einer Schreib-Ringnummer WR zum UV-Register 503 eine Schreib-Überschreitung aufgetreten ist oder nicht, und sie vergleicht danach den Inhalt vom UM-Register 502, (das EAR enthält) mit dem Inhalt des UV-Registers 503 um festzustellen, welcher Inhalt größer ist. Das das UM-Register 502 die tatsächliche Adreß-Ringnummer EAR speichert, zeigt ein Vergleich des UM-Registers mit dem UV-Register an, ob EAR größer als WR oder umgekehrt ist. Wenn WP (d. h. das Schreiberlaubnis-Bit im Segment-Descriptor) gleich Eins ist und sich EAR im Bereich 0 EAR WR befindet, kann eine Schreiboperation zum Segment durchgeführt werden. Es ist zu bemerk n, daß die Eingaben zur UMR-Logik 505 direkt oder indirekt von allen Registern 501 bis 504 aus, von anderen Logikschaltungen 506,507 und auch von der UBS-Logik 606 aus durchgeführt werden können.
Die UWV-Logik 506 entspricht der detailliert in Fig.8a dargestellten Logik. Die UWV-Logik 506 erhält direkte oder indirekte Eingaben von den Registern 501 bis 504 und jeweils von den Logikschaltungen 505 und 507; sie erzeugt ein Ausführungs-Überschreitungssignal, wenn ein Vergleich der Register UW 504, UM 502 und UV 503 anzeigt, daß die maximale Ringnummer MAXR gleich oder größer als die tatsächliche Adreß-Ringnummer EAR ist, gleich oder größer als die Schreib-Ringnummer WR ist oder logisch Nu!! ist, d. h, damit eine Prozedur in der Lage ist, in einem bestimmten Segment das durch die tatsächliche Adresse gekennzeichnet ist, zu arbeiten, muß die maximale Ringnummer MAXR größer oder gleich der tatsächlichen Adreß-Ringnummer sein, und die tatsächliche Adreß-Ringnummer EAR muß größer oder gleich der Schreib-Ringnummer WR sein. Die ,0 UWV-Logik 506 führt auch die in Block 510 dargestellten Tests durch. Es kann angezeigt werden, daß der Inhalt des UW-Registers gleich oder kleiner als der Inhalt des UV-Registers ist; daß der Inhalt des UM-Registers gleich oder größer als der Inhalt des UV-Registers ist; daß der Inhalt des UV-Registers gleich dem Inhalt des UM-Registers ist; daß der Inhalt des UV-Registers gleich oder größer als der Inhalt des UM-Registers ist; und daß der Inhalt des UM-Registers größer als der Inhalt des UW-Registers ist. Wenn diese Tests durchgeführt werden, können natürlich verschiedene Ringnummer-Werte die Register belegen.
Die UEP-Logik 507 entspricht der detailliert in Fig.8b dargestellten Logik. Die UEP-Logik 507 erzeugt in Verbindung mit der UWV-Logik 506 die Lese-Überschreitungsausnahme. Die Lese-Überschreitungsausnahme kann jedoch übersprungen werden, wenn die tatsächliche Adreß-Ringnummer EAR gleich der Ringnummer des laufenden Prozesses PRN ist da eine Prozedur immer die Erlaubnis zum Lesen ihres eigenen Segments besitzt und wenn die Segment-Nummer des Prozedur-Segment-Descriptors (nicht dargestellt) und die Segment-Nummer der bei der Erzeugung der tatsächlichen Adresse benutzten Adreßsilbe identisch sind.
Zur Darstellung des Überspringens des Lese-Überschreitungssignals wird angenommen, daß die tatsächliche Adreß-Ringnummer EAR größer als die Lese-Nummer RD ist die ein Lese-Überschreitungs-Signal mit logisch Hins erzeugen würde, das als ein Eingang dem UND-Gatter 522 zugeführt würde. Das Lese-Überschreitungs-Aufnahmesignal kann unter den folgenden beiden Bedingungen nicht erzeugt werden, selbst wenn ein Lese-Überschreitungs-Signal vorhanden ist:
1. Die tatsächliche Adreß-Ringnummer EAR ist gleich der Prozeß-Ringnummer PRN; d.h. der Inhalt des UN-Registers ist gleich dem Inhalt des UP-Registers; und
2. Die Segment-Nummer, die in der Adreßsilbe des Segments enthalten ist in dem eine Prozedur eine Leseoperation durchführen will, ist gleich der Segment-Nummer des (nicht abgebildeten) Prozedur-Segment-Descriptors, der gegenwärtig ablaufenden Prozedur, und dies wird durch Setzen eines Bits gekennzeichnet das als P-Bit bezeichnet wird und das 13. Bit des UE-Registers 650 ist (Das UE-Register 650 ist ein Speicher des Inhalts des UAS-Assoziators 609, wenn sich aus einem Vergleich des Inhalts des US-Registers 607 ein »Hit« ergeben hat) Da in diesem Beispiel angenommen wird, daß EAR gleich PRN ist, wird die UEP-Logik 507 dem UND-Gatter 520 ein »1«-Signal als ein Eingang zuführen und da weiterhin angenommen wurde, daß die Segment-Nummer SEG der Adreß-Silbe des adressierten Segments gleich der Seg-
ment-Nummer SEG des Prozedur-Segment-Descriptors (nicht dargestellt) der gerade ablaufenden Prozedur ist, wird das P-Bit des Prozedur-Segment-Descriptors gesetzt und .iun wird der andere, dem UND-Gatter 520 zugeführte Eingang, auf logisch 1 sein, und daher das UND-Gatter 520 freigeben; daher wird ein logisches »1«-Signal dem Eingang des Inverters 521 zugeführt, das als logisches »O«-Signal am Ausgang des Inverters 521 auftritt und nun als ein weiterer Eingang dem UND-Gatter 522 zugeführt wird. Da dem
UND-Gatter 522 ein logisches Null-Signal zugeführt wird, kann über den Amplifier 523 kein Lesc-Übcrschreitungs-Ausnahmesignal erzeugt werden, selbst wenn das dritte dem UND-Gatter 522 xugeführic Signal nut logisch Eins ist.
ίο Um nun zu erläutern, wie ein Lese-Überschreitungssignal erzeugt und nicht übersprungen wird, wird angenommen, daß der Ausgang der UEP-Logik 507 anzeigt, daß der Inhalt des UM-Registers nicht gleich dem Inhalt des UP-Registers ist. Daraufhin würde dieser Eingang des UND-Gatters 520 logisch »0« und daher würde das UND-Gatter 520 nun nicht freigegeben, und sein Ausgang wäre logisch »0« und würde dem Eingang des Inverters 521 zugeführt. Da der Eingang des Inverters 521 logisch »0« ist, wäre sein Ausgang logisch »1« und würde als ein Eingang dem UND-Gatter 522 zugeführt. Wenn weiterhin die tatsächliche Adreß-Ringnummer EAR größer als die Lese-Ringnummer RD ist (d. h. der Inhalt des UM-Registers ist größer als der des UW-Registers), wäre dieses Signal auf logisch »1« und würde als ein weiterer Eingang dem UND-Gatter 522 zugeführt. Das UND-Gatter besitzt noch einen dritten Eingang, der ebenfalls logisch »1« sein muß, um das UND-Gatter 522 freizugeben. Dieser dritte Eingang ist logisch »1«. wenn das UND-Gatter 526 freigegeben ist. Da Has UND-Gatter 526 eine Eingangs-Klemme besitzt, die logisch »1« ist, wenn die 00-Klemme des LJRVI F-Flops 524 logisch »0« ist, wird das UND-Gatter 526 durch Anlegen des Mikrooperations-Lese-Überschreitungs-Abfragesignal AJERVA an eine Eingangsklemme des UND-Gatters 526 freigegeben, während die 00-Klemme des URVl F-Flops 524 logisch »0« ist. Daher sind alle Eingangsklemmen des UND-Gatters 522 auf logisch I und erzeugen das Lese-Überschreitungs-Ausnahmesignal.
Die Ausführungs-Überschreitungsausnahme wird auf zwei Arten erzeugt. Es ist bereits erläutert worden, daß g ein Ausführungs-Überschreitungssignal erzeugt wird, wenn die UBV-Logik 506 anzeigt, daß WR gleich oder
größer als ER ist, kleiner oder gleich MAXR ist, oder logisch Null ist. Dieser hohe Wert Ausführungs-Überschreitungssignal wird einem »einbeinigen« UND-Gatter 550 zugeführt, das wiederum über den Amplifier 552 mit der Eingangsklemme des »zweibeinigen« UND-Gatters 553 verbunden ist. Wenn ein Ausführungs-Über-
schreitungs-Abfrage-Mikrooperationssignal AJBEVA als weiterer Eingang dem »zweibeinigen« UND-Gatter 553 zugeführt wird, wird dieses Gatter freigegeben und erzeugt seinerseits das Ausführungs-Überschreitungssignal über den Amplifier (Verstärker) 554. Die andere Methode, mit der eine Ausführungs-Überschreitungs-Ausnahme mit Hilfe der Ausführungs-Überschreitungs-Hardware 511 erzeugt wird, kommt zur Anwendung, wenn das Ausführungs-Erlaubnis-Bit EP nicht gesetzt ist. Wenn diese Bedingung logisch 1 ist, wird sie dadurch
angezeigt, daß das siebte Bit des UY-Registers 613 auf logisch 1 ist; dieses Bit wird nun der Eingangsklemme eines »einbeinigen« UND-Gatters 551 zugeführt, dessen Ausgang als logisches »1«-Signal über den Verstärker 552 einer Eingangsklemme des UND-Gatters 553 zugeführt wird. Wenn das Ausführungs-Überschreitungs-Abfrage-mikröoperätiönssignai AjEEVA logisch 1 wird, erfolgt die Freigabe des UND-Gatters 553, und die Ausführungs-Überschreitungs-Ausnahme wird über den Amplifier 554 erzeugt.
Die Schreib-Überschreitungs-Ausnahme wird ebenfalls auf zwei Arten erzeugt. Es ist bereits erläutert worden, wie die UMR-Logik 505 ein Schreib-Überschreitungssignal erzeugt, wenn EAR größer als WR i«. Dieses Schreib-Überschreitungssignal wird einer Eingangsklemme des UND-Gatters 545 zugeführt. Das UND-Gatter
545 wird freigegeben, wenn seine zweite Eingangsklemme logisch 1 wird und auf diese Weise über den Verstärker 547 eine Schreib-Überschreitungsausnahme erzeugt. Die zweite Eingangsklemme des UND-Gatters 545
wird logisch 1, wenn das UND-Gatter 542 freigegeben wird. Das UND-Gatter 542 wird freigegeben, wenn die seinen Eingangsklemmen zugeführten Eingangssignale logisch 1 sind. Ein Eingangssignal ist logisch 1, wenn das UWVIF-Flop 541 logisch 0 ist und seinerseits ein logisches 0-Signal der Eingangsklemme des Inverters 543 zuführt, der wiederum ein logisches »1«-Signal einer Eingangsklemme des UND-Gatters 542 zuführt; das andere Eingangssignal ist logisch 1, wenn das Schreib-Überschreitungs-Abfrage-Mikrooperationssignal AJEWVA lo-
gisch 1 ist und dies tritt auf, wenn es erforderlich ist, eine Prozedur für die Schreib-Überschreitungsausnahme abzufragen. (Die Flip-Flops URVl F, URMl F und UWVl F werden auf logisch 0 gesetzt, wenn Unterbrechungen oder Software auftrittXDie Flip-Flops UWV2F, URV2F und URN2F werden zur Reserve-Speicherung übermäßiger Prüfinformationen der Ring-Überprüfung verwendet) Die andere Methode zur Erzeugung einer Schreib-Überschreitungsausnahme wird angewendet, wenn das Schreib-Erlaubnisbit WP nicht gesetzt ist Diese Bedingung wird dadurch gekennzeichnet, daß das Bit 6 des UV-Registers 613 logisch 1 ist Wenn diese Bedingung gegeben ist und das logische 1-Signal (d. h. das sechste Bit des UV-Registers) als ein Eingang dem UND-Gatter
546 zugeführt wird und das Abfragesignal AJEWVA logisch 1 ist und als ein weiterer Eingang dem UND-Gatter 546 zugeführt ist, wird das UND-Gatter 546 freigegeben und über den Verstärker 547 tritt eine Schreib-Überschreitungsausnahme auf.
Die aus den Flip-Flops 532 und 533 bestehende Logikschaltung 591 ermöglicht in Verbindung mit dem Verstärker 530, dem UND-Gatter 531 und dem Inverter 530a die Erzeugung des maximalen Ring-Nummern-Wertes im Register UM 502 (EAR) unter der Steuerung durch einen »Splatterw-Befehl-Unterbefehl (nicht erläutert) aus der Befehlserfassungseinheit IFU. Wenn angenommen wird, daß das URN1F-Flip-Flop 532 auf logisch 0 gesetzt ist, wogegen das URN2F-Flip-FIop 533 auf logisch 1 gesetzt ist wird während der Ausführung
b5 des »Splatter«-Unterbefehls die Eingangsklemms 531a des UND-Gatters 531 auf logisch 1 sein; daher wird, wenn das Flip-Flop 532 logisch ö ist, das Signal über den Inverter 530a invertiert und das UND-Gatter 531 wird freigegeben. Daher wird nun der Maximalwert des Inhalts des UP-Registers 501 oder die Bits 2 und 3 des Logik-Sektors U BS 606 in das UM-Register 502 übertragen. Wenn umgekehrt das Flip-Flop 532 au/ logisch 1 ist
wird der Inhalt des UM-Registers nicht über die bereits erwähnten Quellen geändert und diejenige EAR, die im UM-Register 502 aus der indirekten Umleitungs-Adressierprozedur entwickelt wurde, wird benutzt. Das Flip-Flop 5T3 ist ein Reservespeicher für die EAR von Adreßsilbe 2, wenn diese benutzt wird.
In den F i g. 7,8 und 5 besteht insofern eine Übereinstimmung, als daß die detaillierte Logik für die Hardware von Fig. 5 in den Fig. 7 und 8 wie folgt dargestellt ist: Fig. 7c und U W-Register 504, Fig. 7b und UV-Register 503, F i g. 7c und Block 590, F i g. 7d und Block 591, F i g. 7e und Block 592, F i g. 7f und UP-Register 501, F i g. 7g und UO-Register 512,Fi g. 7h und UM-Register 502, Fi g. 8a und UWV-Logik 506. Fi g. 8b 'jnd UEP-Logik 507, und Fi g. 8g und UMR-Logik505.
Gemäß F i g. 7a besteht das UW-Register jeweils aus zwei Flip-Flops, 715a und 720a; jedes Flip-Flop kann ein Informalions-Bit des UW-Registers aufnehmen. Mit dem Flip-Flop 7J5a sind vier UND-Gatter 711a bis 714a gekoppelt, die über eine ODER-Funktion miteinander verbunden sind, jedes Gatter (ausgenommen Gatter 713a) besitzt zwei Eingangsklemmen und mindestens ein Signal, das jeder Eingangsklemme zugeführt wird. Eine Eingangsklemme des UND-Gatters 714a ist mit der Setz-Klemme UWOOOlO des Flip-Flops 715a verbunden. Das Flip-Flop 715a ist ebenfalls mit der Klemme H27 verbunden, um von einem Taktgeber ein Timing-Signal aufzunehmen, das als PDA-Signal bezeichnet wird. Das Flip-Flop 720a ist mit den UND-Gattern 716a bis 719a gekoppelt, die über eine ODER-Funktion miteinander verbunden sind. Eine Eingangs-Klemme des UND-Gatters 716a ist mit einer Eingangs-Klemme des UND-Gatters 711a verbunden; eine Eingangsklemme des UND-Gatters 717a ist mit einer Eingangsklemme des UND-Gatters 712a verbunden, und eine Eingangsklemme des UND-Gatters 719a ist mit der Eingangsklemme des UND-Gatters 714= gekoppelt, wogegen die andere Eingangsklemme des UND-Gatters 719a mit der Setzkiemme UWOOUO des Flip-Flops 720a gekoppelt ist Das Flip-Flop 720a ist ebenfalls mit der H27-Klemme verbunden, um die PDA-Impulse aufzunehmen. Die UND-Gatter 701 a bis 704a sind über ODER-Funktionen miteinander verbunden, und alle ihre Ausgangsklemmen sind mit der Eingangs-Klemme des Inverters 705a verbunden. Das UND-Gatter 706a ist mit dem Verstärker 708a gekoppelt; dagegen ist das UND-Gatter 707a mit dem Verstärker 709a gekoppelt; eine Eingangsklemme des UND-Gatters 706a ist mit einer Eingangsklemme des UND-Gsttters 707a verbunden. Die Ausgangsklemme des Inverters 705a ist mit einer Eingangsklemme der UND-Gatter 714a und 719a verbunden; die Ausgangsklemme des Verstärkers 708a ist mit der Eingangsklemme des UND-Gatters 713a verbunden und die Ausgangsklemme des Verstärkers 709a ist mit der Eingangsklemme des UND-Gatters 718a verbunden.
Die Signale, die den Eingängen der UND-Gatter zugeführt werden, und die als Ausgangssignale an den Verstärkern, Invertern oder Flip-Flop abgegriffenen Signale werden mit Buchstaben bezeichnet, die einen speziellen Code bilden. Da sowohl Daten- wie auch Steuersignale entweder zugeführt oder abgenommen werden, sind zwei Codes vorhanden, ein Code für Steuersignale und ein anderer für die Datensignale. Der Code für die Steuersignale ist bereits detailliert beschrieben worden und wird hier zusammengefaßt Kurz, die ersten '; beiden Zeichen eines Steuersignals kennzeichnen die Bestimmung der zu übertragenden Daten; das dritte
'': Zeichen gibt an, ob eine vollständige oder eine Teilübertragung durchgeführt werden muß, wobei der Buchstabe
■ F eine vollständige Übertragung kennzeichnet; alle übrigen Zeichen kennzeichnen eine Teilübertragung; das
vierte und fünfte Zeichen kennzeichnen die Datenquelle, und wenn die Quelle durch mehr als zwei Buchstaben r identifiziert wird, brauchen nur die letzten zwei Buchstaben benutzt zu werden, das sechste und das siebte Ί Zeichen sind im allgemeinen Nummern und kennzeichnen, ob das Signal logisch > >1« oder »0« ist, d.h. eine
j ungerade Ziffer in der sechsten Position kennzeichnet logisch »1« und eine gerade Ziffer in der sechsten Position
Iv kennzeichnet logisch »0«; die siebte Posit: ennzeichnet, ob es sich um die erste, zweite, dritte usw. Auftritts-
; stufe des Signals handelt Daten werden ji.vioch anders gekennzeichnet Die ersten drei Daten-Zeichen kenn-
v1 zeichnen die Datenquelle, das vierte und fünfte Zeichen, die Ziffern sein können, kennzeichnen die Bit-Rnsitio-
'< nen, in denen sich die Daten innerhalb der Quelle befinden, und die sechste und siebte Position sind dem Code
der Steuersignale insofern ähnlich, als sie anzeigen, ob das Signal logisch »1« oder logisch »0« ist, und die Auftrittstufe des Signals angeben. Im allgemeinen zeigt das Format selbst an, ob das Signal ein Steuer- oder
■ Datensignal ist und anhand der F i g. 5 und 6 können die Quelle und die Bestimmung festgestellt werden. Für
• diese allgemeine Regel gibt es Ausnahmen, die in der Beschreibung und im Anhang erläutert werden.
Als Anwendungsbeispiel dieser Vereinbarung sind in der Fig.7a die folgenden Signale Steuersignale UWFABl 1, AWFAB10, UW9QA10. Die folgenden Signale sind Datensignale: UAB3410, AUB3210, UAB3510.
: UAB3310, QAOOl 10 und QAOOOlO. Die folgenden Signale sind Ausnahmen: PDARGlO ist ein Timing-Signal,
;.; dessen Quelle der PDA-Taktgeber ist; UWHOLlO ist ein Haltesignal für das Halten der Informationen in den
g Flip-Flops 715a und 720a; UWOBKlO und UWlBKlO sind logische Reservefunktionen, deren Hauptaufgabe in
κ der Erweiterung dor Eingabefähigkeit der Flip-Flops 715a und 720a besteht. Dies erfolgt durch Verbinden des
UW-Registers, das aus den Flip-Flops 715a und 720a besteht mit den Bits 0 und 1, die jeweils durch die
Flip-Flops 715a und 720a dargestellt werden; zuletzt ist USCLRlO das Initialisierungs-Signal zum Initialisieren
f| und Löschen der Flip-Flops auf Null.
?| Als Beispiel der oben aufgeführten Vereinbarungen ist hier das dem Eingang des »einbeinigen« UND-Gatters
702a zugeführte Signal UWFABl 1 ein Steuersignal, das Daten (die Bits 34 und 35) aus dem UAB-Assoziator-
•3 Pufferspeicher 611 (das »U« im Signal wurde ausgelassen) zum UW-Register 504 überträgt; diese Übertragung
ist eine vollständige Übertragung zum UW-Register 1; die ungerade Ziffer kennzeichnet, daß das Signal logisch
1 ist Das dem Eingang des »einbeinigen« UND-Gatters 703 zugeführte Signal UWFABlO ist ein Steuersignal
mit der gleichen Quelle und Bestimmung, wie das dem UND-Gatter 702a zugeführte Signal, mit der Ausnahme,
% daß die Bits 32 und 33 von UAB zum UW-Register übertragen werden. Das dem »einbeinigen« UND-Gatter
§ 704a zugeführte Signal UW9QA10 ist ebenfalls ein Steuersignal, bei dem Daten vom QA-Bus 614 zum UW-Regi-
M ster übertragen werden; die Übertragung kann eine Teilübertragung sein. Das dem UND-Gatter 706a zugeführ-
;fij ic Signal UA00010 ist ein Datensignal, bei dem sich die Daten auf dem QA-Bus 614 befinden (die dritte Position
ti wird hier nicht benutzt, da die ersten beiden Positionen in ausreichender Weise die Position der Daten beschrei-
Ϊ 15
ben, und dieses Datensignal stellt das ak 00 auf dem QA-Bus 614 identifizierte Bit dar. Das Signal QA00110 ist ähnlich dem vorstehend beschriebenen Signal, mit der Ausnahme, daß die durch dieses Signal identifizierten Daten die Daten von Position 01 des QA-Bus 614 sind. Daher wird durch die Anwendung dieser Regel und die Fig.5 bis 9, die Ringschutz-Hardware vollständig definiert und kann ohne Schwierigkeiten von einer Person aufgebaut werden, die ordnungsgemäß in der Computer-Technik geschult ist.
In Fig.7b ist das detaillierte logische Blockdiagramm für das UV-Register 503 dargestellt Das Signal UVHOLlO ist ein Halte-Signal für das UV-Register 503 und wird über den Inverter 7306 erzeugt, wenn keinem der »einbeinigen« UND-Gatter 7016 bis 7086 ein logisches »1«-Signal zugeführt wird. Das UVHOLIO-Signal wird dem UND-Gatter 7236 zugeführt und verursacht die Aufrechterhaltung der im UV-Register 503 enthalte nen Informationen. Das mit dem Eingang des UND-Gatters 7046 und den Ausgängen der UND-Gatter 7056 bis 7086 gekoppelte Signa! UVHOLlE erweitert die Anzahl der Steuersignale, die das Haltesigna! UVHOLlO erzeugen können. Das mit den Ausgängen der UND-Gatter 7106 bis 7136 und dem Eingang des UND-Gatters 7226 gekoppelte Signal UVOBKlO wird ebenfalls zur Erweiterung der Anzahl der Eingangssignale benutzt, die dem Flip-Flop 7246 zugeführt werden können. Das mit den Eingängen der UND-Gatter 7166 bis 7186 und dem Eingang des UND-Gatters 7276 gekoppelte Signal UVlBKlO erweitert in gleicher Weise die Anzahl der Eing&ngssignale, die dem Flip-Flop 7296 zugeführt werden können.
In F i g. /g ist das detaillierte logische Blockdiagramm des U0-Registers 512 dargestellt Die UND-Gatter 70ig bis 704^ sind über ODER-Funktionen miteinander verbunden, und ihr Ausgang wird als Eingang dem Inverter 705^zugeführt Die UND-Gatter 706# bis 709^ sind ebenfalls über ODER-Funktionen miteinander verbunden
und ihre Ausgänge sind mit dem Flip-Flop 710^gekoppelt Weiterhin ist ein Eingang des UND-Gatters 709# mit der UOfiOOiO-Klemme des Fiip-Fiöps 7iSg gekoppelt Die UND-Gatter 7iigbis 7i4g sind ebenfalls über eine ODER-Funktion miteinander verbunden und in gleicher Weise mit dem Flip-Flop 715^ gekoppelt Es ist zu bemerken, daß ebenfalls ein Eingang des UND-Gatters 706^ mit einem Eingang eines UND-Gatters 711^ gekoppelt ist; ein Eingang des UND-Gatters 707^ist mit einem Eingang des UND-Gatters 712^gekoppelt, und ein Eingang des UND-Gatters 709#ist mit einem Eingang des UND-Gatters 714^ gekoppelt Das vom Inverter 705^ erzeugte UOHOLl 0-Signal ist ebenfalls mit einem Eingang der UND-Gatter 709#und 714^ gekoppelt und wird zur Aufrechterhaltung der Informationen im U0-Register 512 benutzt XOO stellt eine Masseverbindung dar, und XNU kennzeichnet einen nicht benutzten Eingang.
Fi g. 7f ist ein detailliertes logisches Blockdiagramm des UP-Registers 501. Diese Figur entspricht der bereits
erwähnten F i g. 7g mit der Ausnahme, daß andere Signale mit anderen Bestimmungen und anderen Quellen verwendet werden.
In Fig.7h ist das detaillierte logische Blockdiagramm des UM-Registers 502 dargestellt. Die UND-Gatter 701A bis 704Λ sind miteinander über eine ODER-Funktion verbunden, um über den Inverter 705Λ das UMHOLl 0-Haltesignal zu erzeugen. Die UND-Gatter 706Λ bis 709A sind zu einer ODER-Funktion miteinander verbunden und mit dem Eingang des UND-Gatters 704A gekoppelt, um die Anzahl der Signale zu vergrößern, die zur Erzeugung des UMHOLIO-Signals verwendet werden können, !n gleicher Weise sind die UND-Gatter 711A bis 714A über eine ODER-Funktion miteinander verbunden und werden dem Eingang des UND-Gatters 723A zugeführt, um die Anzahl der Signale zu vergrößern, die dem Flip-Flop 730A zugeführt werden können; in gleicher Weise sind ebenfalls die UND-Gatter 715A bis 719A über eine ODER-Funktion miteinander verbunden und mit dem Eingang des UND-Gatters 727A verbunden, um die Anzahl der Signale zu vergrößern, die dem Flip-Flop 731A zugeführt werden können. Eine Leitung 740A für die Zuführung der PDA-Signale zu den Rip-Flops 730A und 731A ist jeweils an den Punkten 734A und 735A angekoppelt Der Eingang des UND-Gatters 703A wird ebenfalls durch Kopplung des Ausgangs des Verstärkers 733A mit dem Eingang des UND-Gatters 703A, um zwei weitere Eingänge URNlFOO und IRNUMlO erweitert
In den F i g. 7c bis 7e sind detaillierte logische Blockdiagramme der Schreibausnahme-Steuerlogik 590, der IFU-Unterbefehls-Steuerlogik 591 und der Lese-Überschreitungs-Ausnahme-Steuerlogik 592 dargestellt. In F i g. 7c sind die Flip-Flops 705c und 710cdargestellt, die jeweils den Flip-Flops 541 und 540 entsprechen. Durch die Mikrooperation URW2F10 werden die Informationen des Flip-Flops 710c zum Flip-Flop 705c übertragen. Das Haltesignal UWVlHlO wird zur Aufrechterhaltung der zum Flip-Flop 710c übertragenen Informationen
so verwendet wogegen das U vW2H10-Signal zur Aufrechterhaltung der zum Flip-Flop 705c übertragenen informationen verwendet wird. In gleicher Weise werden in Fig.7d die Informationen vom Flip-Flop 710</zum Flip-Flop 705</durch das Mikrooperations-Signal URNSWlO übertragen, und in F i g. 7e werden die Informationen des Flip-Flops 71Oe unter der Steuerung durch das Mikrooperations-Signal URW2F10 zum Flip-Flop 709c übertragen.
In den F i g. 8a, 8b und 8d sind detaillierte logische Blockdiagramme der UWV-Logik 506, der UWEP-Logik 507 und der UMR-Logik 505 dargestellt In Fig.8a ist die Logik dargestellt mit der ein logisches »!«-Signal erzeugt wird, wenn eine der Test-Bedingungen 510 vorhanden ist und außerdem das Ausführungs-Überschreitungs-Signal erzeugt wird, wenn der Inhalt des UW-Registers kleiner oder gleich dem Inhalt des UM-Registers ist, kleiner oder gleich dem Inhalt des UV-Registers ist oder logisch »0« ist Das Signal UWLEVlO zeigt, wenn es
μ erzeugt wird, an, daß der Inhalt des UW-Registers 504 gleich oder kleiner als der Inhalt des UV-Registers 503 ist, Die Logik zur Erzeugung dieses Signals wurde aus dem folgenden boolschen Ausdruck abgeleitet:
X1 = (BCD) + (ABD) + (AC)
Hierbei stellt Xi das Ausgangssignal des Verstärkers 805a dar, und die verschiedenen Buchstaben des Ausdrucks entsprechen den verschiedenen Eingangsklemmen der UND-Gatter 801a bis 804a.
Eine Anzeige, daß der Inhalt des UV-Registers 503 größer oder gleich dem Inhalt des UM-Registcrs 502 ist, tritt bei der Erzeugung des UVGEMIO-Signals auf. Dieses Signal wird als Antwort auf verschiedene Eingaben
an den über ODER-Funktionen miteinander verbundenen UND-Gatter 816a bis 819a. die mit dem Eingang des Inverters 820a gekoppelt sind, erzeugt Die Logik für die Erzeugung des Signals UVGEMlO ist gemäß des folgenden boolschen Ausdrucks entwickelt worden:
X2 = (BCD) + (ABD) + (AC)
Eine Anzeige, daß der Inhalt des UM-Registers 502 größer oder gleich dem Inhalt des UV-Registers 503 ist, erfolgt durch Erzeugung des Signals UMGEVlO über den Inverter 810a als Antwort auf die verschiedenen Eingaben an den UND-Gattern 806a bis 809a, die über eine ODER-Funktion miteinander verbunden sind. Die Logik für die Erzeugung dieses Signals wurde anhand des folgenden boolschen Ausdrucks entwickelt: ι ο
X3 = (BCD) + (ABD) + (AU)
(Hierbei ist X3 das erzeugte Ausgangssigna].)
In gleicher Weise wird das UVEQM 10-Signal anhand des folgenden boolschen Ausdrucks entwickelt:
X4 = (AU) + (ÄC) + (BD) + (SD)
Die Erzeugung des UVEQM 10-Signals zeigt an, daß der Inhalt des UV-Registers 503 gleich dem Inhalt des UM-Registers 502 ist „
Die Erzeugung des UMGEWIO-Signals zeigt an, daß der Inhalt des UM-Registers 502 gleich oder größer als der Inhalt des UW-Registers 504 ist und von einer Logik erzeugt wird, die aus dem folgenden boolschen Ausdruck entwickelt wurde:
X7 = (AC) + (AQ + (BD) + (BD)
25
X5 = (BCD) + (ABD) + (AC)
Die Erzeugung des UMGTWl0-SignaIs zeigt an, daß der Inhalt des UM-Registers 502 größer als der Inhalt des UW-Registers 504 ist und daß dieses Signal von einer Logik erzeugt wird, die anhand des folgenden, boolschen Ausdrucks entwickelt wurde:
X6 = (ABD) + C(BD + A)
Die Erzeugung des Signals UWGMVOO zeigt an, daß der Inhalt des UW-Registers kleiner oder gleich dem Inhalt des UM-Registers ist, kleiner oder gleich dem Inhalt des UV-Registers ist oder logisch »0« ist Es wird erzeugt, wenn sowohl das UVGEM 10-Signal, das anzeigt, daß der Inhalt des UV-Registers größer oder eleich dem inhalt des UM-Registers ist, wie auch das UMGEWl0-Signal, das anzeigt, daß der Inhalt des UM-Reglsters größer oder gleich dem Inhalt des UW-Registers ist, auf logisch »1« sind.
Gemäß Fig.8b wird ein UMEQPIO-Signal von einer Logik erzeugt, die anhand des folgenden boolschen Ausdrucks entwickelt wurde:
40
Wenn dieses Signal auf logisch 1 ist, zeigt es an, daß der Inhalt des UM-Registers 502 größer als der Inhalt des UP-Registers 501 ist.
In Fig.8b ist das detaillierte logische Blockdiagramm für die Durchführung der Operationen der in Fig.5 dargestellten UMR-Logik 505 dargestellt Eine der Operationen dieser Logik besteht darin, den Maximalwert des Inhalts des UP-Registers 501 und der Bits 2 und 3 der UBS-Logik 606 festzustellen. Zu diesem Zweck muß eine Angabe vorhanden sein, ob der Inhalt von UP kleiner als der Inhalt von UBS ist, oder ob der Inhalt von UP größer als der Inhalt von UBS ist.
Das Erzeugen des Signals UPLEBlO zeigt an, daß der Inhalt des UP-Registers 501 gleich oder kleiner als die Bits 2 und 3 der UBS-Logik 606 ist; die Erzeugung des Signals VJPGTBlO zeigt dagegen an, daß der Inhalt des UP-Registers 501 größer als die Bits 2 und 3 der UBS-Logik 606 ist. Diese Signale werden von einer Logik erzeugt, die anhand des folgenden boolschen Ausdrucks entwickelt wurde:
X8 = (BCD) + (ABD) + (AC)
Hierbei ist Xg der Ausgang des Inverters 805c/und die Buchstaben des Ausdrucks entsprechen den verschiedenen Eingängen der UND-Gatter 801c/bis803d
Um zu erläutern, wie der Maximalwert des Inhalts des UP-Registers und der UBS-Logik durch die Ausgangs-.Signalc UMPBOIO und UMPBIlO der Verstärker 814i/ und 817<i bestimmt wird, muß zuerst angenommen to werden, daß der Inhalt des UP-Registers gleich oder kleiner als die Bits 2 und 3 der UBS-Logik ist, da Bit 2 »1« ist und Bit 3 »1« ist, wogegen das UB-Register 01 enthält. Diese Tatsache wird dadurch gekennzeichnet, daß das UPLEBIO-Signal logisch 1 ist und das UPGTBIO-Signal logisch 0 ist, da es der invertierte Wert des Signals UPLEBIO ist. Dieses UPLEBIO-Signal mit dem Logikpegel 1 wird einem Eingang des UND-Gatters 813c/und ebenfalls einem Eingang des UND-Gatters 806c/zugeführt.
Wenn das Bit 2 der UBS-Logik, wie durch das Signal UBS0210 gekennzeichnet, auf »1« ist, wird das UND-Gatter 813c/freigegeben und das Signal UMPBOlO wird logisch »1« und kennzeichnet, daß Bit 2 der UBS-Logik auf »1« ist. Wenn weiterhin das Bit 3 der UBS-Logik, gemäß der Anzeige durch das Eingangs-Signal UBS0310,
das als weiterer Eingang dem UND-Gatter 816</ zugeführt wird, auf »1« ist, wird das UND-Gatter 816c/ freigegeben und das Signal UMPBl 10 ist logisch 1. Daher befindet sich, unter den angenommenen Bedingungen bei denen die Bits (2,3) der UBS-Logik gleich oder größer als der Inhalt des UP-Registers sind, der Maximalwert der beiden Quantitäten in UBS und seine Zahl beträgt binär 11 oder dezimal 4. Daran kann erkannt werden, wie zuerst ein Vergleich durchgeführt wird um festzustellen, welche Hardware das Maximum enthält und wie danach eine Überprüfung durchgeführt wird, um den Wert dieses Maximums festzustellen. Durch eine ähnliche Analyse kann festgestellt werden, wie der Wert des UP-Registers mit Hilfe der Signale UMPBOlO und UMPB110 festgestellt werden kann, wenn der Inhalt des UP-Registers größer als das zweite und dritte Bit der UBS-Logik ist In gleicher Weise kann der Maximalwert des UM-Registers 502 oder des UV-Registers 503 jeweils durch die
ίο Signale UVGEMlO und UMGTVlO ermittelt werden, wenn das UV-Register 503 gleich oder größer als das UM-Register 502 ist, und umgekehrt, wenn das UM-Register 502 größer als das UV-Register 503 ist
In den F i g. 9a bis 9i befindet sich eine Erklärung der in den F i g. 7 und 8 verwendeten Symbole. F i g. 9a stellt das Symbol dar. das bei einer internen Verbindung innerhalb einer Logikplatte verwendet wird. F i g. 9b stellt eine Ausgangsklemmen-Verbindung dar. Fig.9c entspricht einer Eingangsklemmen-Verbindung und ist im
allgemeinen eine Quelle außerhalb der dargestellten Logikplatte. Fig.9d enthält das für ein UND-Gatter benutzte SymboL Fig.9e ist das für einen Verstärker benutzte Symbol; Fig.9f ist dagegen das für einen Inverter benutzte Symbol. F i g. 9g stellt die drei UND-Gatter 90tg bis 903g dar, die über eine ODER-Funktion miteinander verbunden sind und daher den Ausgang 904^·auf logisch »1« setzen, wenn eines der UND-Gatter 90ig bis 903g auf logisch »1« ist F i g. 9h enthält das Symbol eines Flip-Flops, das eine 00-Rücksetzklemme und
eine lO-Setzfesemme besitzt Eine PDA-Leitung führt die Takt-Impulse heran, die benutzt werden, um das J
Flip-Flop zur Zustands-Umschaltung zu veranlassen, wenn am Flip-Flop andere Bedingungen vorhanden sind. ■ F i g. 9i stellt ein Mikrooperations-Steuersignal dar. | Ringüberprüfung und Ringkreuzung
Um die Ringschute-Struktur zwischen den Prozeduren durchzuführen, die in den verschiedenen Ringen arbeiten, werden in der Erfindung Rückstell-Stacks für den Prozedurverkettungs-Mechanismus verwendet, bei dem ein Teil eines jeden Stacks, der als Stack-Rahmen bezeichnet wird, dynamisch jeder Prozedur zugewiesen wird. Verschiedene Stack-Segmente werden für jeden Ring benutzt, und jedes Stack-Segment entspricht einem
Ring. Wenn daher eine Prozedur im RN-Ring abläuft, befindet sich ihr Stack-Rahmen im RN-Stack-Segment
In Fi g. 10 sir d drei Stack-Segmente 1001 bis 1003 dargestellt, die entsprechend die Stack-Rahmen Sl bis S3 enthalten. Ring 3 ist dem Stack-Segment 1001 zugewiesen, Ring 1 dem Stack-Segment 1002 und Ring 0 dem Stack-Segment 1003. Innerhalb eines jeden Stack-Segments sind eine Prozedur Pl mit dem Stack-Rahmen Sl des Segments 1001, eine Proz'jdur P2 mit dem Stack-Rahmen S2 des Stack-Segments 1002 und eine P3-Prozedur mit dem Stack-Rahmen S3 des St&ck-Segments 1003 verbunden. Die segmentierten Adressen (d. h. Segmentnummer und relative Segmentadresse SEG, SRA) des ersten Bytes des Stack-Segments für die Ringe 0,1 und 2 befinden sich jeweils in den Stack-Basisworten SBWO bis SBW2, die sich wiederum im Prozeß-Steuerblock 104 befinden. Da das Stack-Segment von Ring 3 niemals über einen nach innen gerichteten Aufruf eingegeben werden kann (d. h. von einem höheren Ring als Ring 3), ist seine Stack-Startadresse nicht erforderlich. Jeder Stack-Rahmen Sl, S2 und S3 ist jeweils in eine Arbeitszone 1005,1006 und 1007, in einen unbenutzten Teil 1008, 1009 und 1010, der für Ausrichtungszwecke benutzt wird, in eine Sicherstellungszone 1011,1012 und 1013 und in eine Kommunikations-Zone 1014,1015 und 1016 unterteilt Die Arbeitszone wird, wenn erforderlich, von ihrer Prozedur benutzt und kann Informationen enthalten, die vom Prozeß benötigt werden, wie z. B. örtliche Variablen usw. Die Sicherstellungszone des Stack-Rahmens wird zur Speicherung des Inhalts verschiedener Register, wie z. B. des Status-Registers, des T-Registers und des Inhalts des Befehlszählers verwendet. Die Kommunikations-Zone speichert Informationen, die zur Durchgabe von Parametern zwischen den Prozeduren erforderlich sind. Vor dem Aufruf einer gegebenen Prozedur speichert der Benutzer die Register, deren Inhalt er erhalten möchte in der Sicherstellungszone, und er lädt weiterhin die an die aufgerufene Prozedur weiterzuleitenden Parameter in die Kommunikationszone. Wenn der Aufruf durchgeführt ist, führt die Hardware die
so Sicherstellung des Inhalts des Befehls-Zählers und anderer angegebener Register durch, um eine Rückkehr von der aufgerufenen Prozedur zu erleichtern. Jeder Prozedur-Aufruf erzeugt einen Stack-Rahmen innerhalb des Stack-Segments, und anschließende Prozedur-Aufrufe erzeugen zusätzliche Rahmen. Nun ist ein Stack entwikkelt und besteht aus einer Anzahl aneinander angrenzender Teile, die als Stack-Rahmen bezeichnet werden, die dynamisch jeder Prozedur zugewiesen werden. Diese Stacks befinden sich in Stack-Segmenten. Allgemein wird der erste Stack-Rahmen in den Anfangsbereich des Segments geladen und die nachfolgenden Rahmen danach. Deiletzte geladene Rahmen wird als Spitze des Stacks bezeichnet. Ein T-Register 114 von F i g. 1 lokalisiert die Spitze des Stacks für den gerade aktiven Prozeß. Eine Prozedur, wie zum Beispiel Pl, die in Ring 3 abläuft, kann eine in Ring 1 ablaufende Prozedur P2 aufrufen, die wiederum eine in Ring 0 ablaufende Prozedur aufruft. Jedesmal, wenn eine Prozedur aufgerufen wird, erzeugt sie innerhalb ihres Ring-Stack-Segments einen Stack- Rahmen (d. h. es definiert die Struktur für die Durchführung der Prozedur) und das T-Register 114, das die Adresse der Spitze des Stacks für den gerade aktiven Prozeß angibt, wird geladen. Die Prozedur Pl (wie bereits vorausgesetzt) kann die Prozedur P2 aufrufen, die ihrerseits wieder die Prozedur P3 aufrufen kann, und da diese Aufrufe von einer höheren zu einer niedrigeren Ringnummer erfolgen, wird eine Ringkreuzung erforderlich, die einen nach innen gerichteten Aufruf nach sich zieht und gemäß einer oben beschriebenen Methode entwickelt wird. Bei jedem Prozedurwechsel wird der Inhalt der erforderlichen Register und Parameter sichergestellt, um eine Rückkehr von der angerufenen Prozedur zu erleichtern.
Der Zugriff auf eine Prozedur erfolgt immer mit Hilfe von »ENTER PROCEDURE«-Befehlen über einen Prozedur-Descriptor 1110. Das Format des Befehls »ENTER PROCEDURE« 1100 ist in Fig. 11a dargestellt.
Der Operations-Code (OP) 1101 belegt die Bit-Positionen 0 bis 7. Der Komplememär-Code 1102 ist ein Ein-Bit-Code und belegt die Bit-Positionen 8 bis 9; wenn der Kornplementär-Code auf logisch i ist, lautet der i· Befehl ENT, wenn der Komplementär-Code dagegen logisch 0 ist, lautet der Befehl ENTSR und das Basis-Register muß das Basis-Register 0 (BRO) sein. Die Adreßsilbe AS 1104 belegt die Bit-Position 12 bis 31 und erzeugt die AS-Adreßsilbe des Prozedur-Descriptors 1110. Wenn ein »ENTER PROCEDURE«-BefehI eine Ringkreuzung benötigt, erfolgt zwangsweise ein Zugriff zum Durchschalt-Prozedur-Descriptor 1120. Dies wird durch die Positionierung des GS-Feldes 1302 des Segment-Descriptors 1301 auf logisch 10 gekennzeichnet Im allgemeinen befindet sich das GS-FeId dann auf 10, wenn einer der »ENTER PROCEDURE«-Befehle benutzt wird.
Der Segment-Descriptor wird benutzt lan auf die Basis des gewünschten Segments hinzuweisen, in diesem Fall enthält das Segment 1300 des Durchschaltprozedur-Descriptors GPD 1120. Das erste Wort des Segments 1300, das den Durchschaltprozedur-Descriptor (GPD's) enthält, wird so wie in Fig. lic dargestellt ist forma- '-';- tiert. Das TAG 1121 belegt die Bit-Positionen 0 und 1 und muß einen Fehler-Descriptor anzeigen, d.h. das
TAG-FeId muß auf logisch 11 sein. Die maximale Ringnummer CMRN 1122 des Aufrufers belegt die Bit-Positionen 2 und 3 und kennzeichnet den höchsten Ring, bei dem legal eine Aufruf-Prozedur über den Durchschalt-Prozedur-Descriptor GPD durchgeführt werden kann. Eine Aufruf-Überschreitungsausnahme wird erzeugt wenn : die Ringnummer des Aufrufers größer als CMRN 1122 ist Die Adreßbegrenzung des Durchschalt-Prozedur-
Descriptors GPDAB 1124 belegt die Bit-Positionen 10 bis 31 und muß größer als die relative Segment-Adresse ;, SRA sein (d. h. die Verschiebung des GPD innerhalb des Segments des Prozedur-Descriptors 1300), da andererseits eine illegale GPD-Zugriffs-Ausnahme auftritt. Daher wird ein Durchschalt-Prozedur-Descriptor GPD als .:. erstes Wort des Segments verwendet das Prozedur-Descriptore enthält Ein GPD wird weio-hin benutzt, um
ύ festzulegen, ob der Aufrufer das Recht hat, eine Zugriffsoperation zürn Segment über die maxiirale Aufrufer-
i>; Ringnummer CMRN durchzuführen und ?b sich der aufgerufene Prozedur-Descriptor innerhalb der Adreßbe-
3 grenzung des Durchschalt-Prozedur-Descriptors befindet Wenn einmal feststeht, daß der Aufruf zu einem
■t Segment legal ist und der Aufrufer das Recht besitzt das Segment zu benutzen, wird die Adresse aus der
jl Adreßsilbe AS 1104 des Eingabe-Befehls 1100 erzeugt, und der erforderliche Prozedur-Descriptor 1100 (siehe
u auch Fig. 13) wird aufgerufen. Das Format des Prozedur-Descriptors 1110 ist in Fig. 11b dargestellt und
\l besteht aus zwei 32-Bit-Worten — jeweils Wort 0 und Wort 1. Wort 0 enthält die segmentierte Adresse 1113 des
}u Eintrittspunktes EP der gewünschten Prozedur. Die segmentierte Adresse besteht wie dies bei der segmentier-
ji ten Adresse jedes Operanden der Fall ist, aus der Segment-Nummer SEG und der relativen Segment-Adresse
I SRA. Das Wort 0 des Prozedur-Descriptors enthält eine Eintrittspunkt-Ringnummer EPRN 1112 und ein
II TAG-FeId 1111. Der Wert des TAG-Feldes wird wie folgt interpretiert
I* a) Wenn TAG logisch 00 enthält, ist der Prozedur-Descriptor direkt
ψ b) Wenn TAG logisch 01 ist, ist der Prozedur-Descriptor ein erweiterter Descriptor und enthält Wort 1, also
ί · insgesamt 2 Worte.
if c) Wenn TAG logisch 10 ist, ist der Prozedur-Descriptor indirekt und eine Ausnahme »illegaler Prozedur-
p Descriptor« tritt auf, und
'£ d) Wenn TAG logisch 11 ist, handelt es sich um einen Fehler-Prozedur-Descriptor, und eine Ausnahme tritr auf.
a Die Lä-ige von Wort 1 des Prozedur-Descriptors beträgt 32 Bits und wird verwendet, wenn TAG einen
W erweiterten Descriptor anzeigt und die segmentierte Adresse eines Verkettungsabschnitts enthält, dessen Inhalt
;-; zum Prozedur-Eintrittszeitpunkt in das B3sis-Register BR7 geladen wird.
£j In Fig. 12 ist ein Teil des EBT-Befehls und insbesondere der Teil dargestellt, der sich auf die Ringkreuzung
•i- und Ring-Überprüfungs-Erfordernisse bezieht Der ENT-Befehl wird aufgerufen (1201) und ein Vergleich (1202)
[:; wird durchgeführt, bei dem der segmentierte Teil des Basis-Registers BRn mit dem segmentierten Teil der
}_: Adresse des T-Registers verglichen wird; wenn der Vergleich keine Gleichheit erbringt, wird ein illegales
;: Stack-Basis-Register 1208 angezeigt
Wenn andererseits eine Gleichheit auftritt, wird ein weiterer Vergleich 1203 durchgeführt, bei dem das 30. Bit einschließlich der nächsten beiden Bits (d. h. Bits 30 und 31) des Basis-Registers η (BRn) auf 0 verglichen wird; ; wenn das Ergebnis nicht gleich 0 ist, wird nochmals ein illegales Stack-Basis-Register 1208 angezeigt Wenn das
,:■ Resultat gleich 0 ist, kennzeichnet dies, daß der Inhalt von BRn hinsichtlich der Wortbegrenzung ausgerichtet ist,
·., und ein r-eiterer Vergleich 1204 wird durchgeführt, um festzustellen, ob das TAG-FeId von BRn (d. h. die beiden
V Bits von Bit 0 aus) gleich 0 ist. Ein TAG mit logisch 0 gibt an, d*3 der Zugriff zu den Informationen über einen
"■■ direkten Descriptor erfolgt; dies ist eine der Bedingungen des ENT-Befehls. Wenn das TAG-FeId, (d. h. die Bits 0
;'■■.' und I von BRn) gleich 0 ist, werden die in den Flußdiagrammen der Fig. iA bis 16 dargestellten Funktionen
durchgeführt (siehe Flußdiagramm 12, Block 1205). Wenn dabei die entsprechenden Bedingungen erfüllt werden, £'■ erfolgt eine weitere Überprüfung 1206, um festzustellen, ob die angegebene relative Segment-Adresse des
ί,' Eintrittspunktes (SRAep) gerade ist, da Befehle von Halbwort-Begrenzungen aus starten. Wenn diese Adresse
0 ungerade ist, wird die Ausnahme »illegale Verzweigungsadresse« 1209 erzeugt, wenn die Ausnahme legal ist,
V- wird der ENT-Befehl 1207 über weitere, nicht dargestellte Schritte, abgewickelt
' Gemäß den Flußdiagrammen des Zugriffs-Überprüfungsmechanismus der F i g. 14 bis 16 werden im allgemeinen die folgenden Operationen jedesmal dann durchgeführt, wenn der Befehl »ENTER PROCEDURE« einge- : leitet wird.
a) Das Recht azs Aufrufers mit seinem Teilnehmer in Verbindung zu treten, wird überprüft, indem zuerst im /weiten Wort des Segment-Descriptors die Aufruf-Klammer festgelegt wird, die der Aufrufer benutzt. (Die Aufruf-Klammer ,ivgibt sich durch die Erfassung der kleinsten Ringnummer aus dem Schreib-Ringnummcr-FcId WR und der maximalen Ringnummer aus dem Feld der maximalen Ringnummer MAXR.)
b) Eine Entscheidung hinsichtlich der nächsten Prozeß-Ringnummer wird getroffen, indem festgestellt wird ob sich der Aufrufer in der gleichen Aufruf-Klammer befindet, wie der aufgerufene Teilnehmer; dies ftihri zu einem »Nichtstun«; es wird festgestellt, ob sich der Aufrufer in einer Aufrufklammer befindet, die dk Durchführung eines nach außen gerichteten Aufrufes erfordert, durch den eine Ausnahme-Bedingung erzeugt wird, die von einem hier nicht beschriebenen Mechanismus verarbeitet wird; oder es wird festgestellt, ob sich der Aufrufer in einer Aufrufklammer befindet, die einen nach innen gerichteten Aufrul erfordert (d. h. einen Aufruf zu einer Aufrufklammer, die eine Ringkreuzung von einer größeren zu cinci kleineren Ringnummer erfordert in diesem Fall muß sich die Ringkreuzung an einem gültigen Eingabepunki EP befinden und der Eingabepunkt muß freigegeben sein).
ίο c) Für den aufgerufenen Teilnehmer wird ein Stack-Rahmen erzeugt (d. h. ein Raum im bereits erwähnter Format des entsprechenden Segments wird zugewiesen), und der Stack-Rahmen und die Stack-Rahmen-Register werden aktualisiert.
d) Eine Verzweigung zum Eintrittspunkt der Prozedur wird durchgeführt, auf die der Prozedur-Descriptoi hinweist
Gemäß F i g. 14 wird die Zugriffs-Überprüfung (1401) gestartet, indem die Adreßsilbe AS entwickelt wird, die die tatsächliche Adreß-Ringnummer EAR, die Segmentnummer des Prozedur-Descriptors SEGi-d und die relative Segment-Adresse des Prozedur-Descriptors SRAPD enthält. Nach Entwicklung dieser Informationen wird dci Prozedur-Descriptor IUO aus SKCJpd. SRApd (1403) abgegriffen, wobei Zugriffsrechte zum Scratch-Pad-Spei eher ignoriert werden. Der Prozedur-Descriptor 1110 erzeugt das TAG-FeId, das feststellt, ob der Descriptor eir direkter, erweiterter, indirekter oder ein Fehler-Descriptor ist; TAG stellt die Eintrittspunkt-Ringnummei EPRN und das Segment (SRAEP) fest, das den Eintrittspunkt der relativen Segmentadresse (SRAkp) des Eintrittspunktes enthält. Das TAG-FeId wird überprüft (1404), um festzustellen, ob der Descriptor 1110 ein direkter, erweiterter, indirekter oder ein Fehler-Descriptor ist, indem sein Feld gemäß dem bereits beschriebenen Code überprüft wird. Nur ein direkter oder erweiterter Prozedur-Descriptor ist zulässig. Ein indirekter odci Fehler-Descriptor ist nicht zulässig und löst beim Zugriff einen hier nicht beschriebenen Ausnahme-Mechanismus aus. Wenn einmal festgestellt wurde, daß ein Zugriff zu einem legalen Prozedur-Descriptor erfolgt ist beginnt bei Punkt A 1405 die Überprüfung des tatsächlichen Aufrui-Rechts.
Gemäß F i g. 15 und von Punkt A 1405 aus, werden die maximale Ringnummer MAXR, die Schreib-Ringnum-
mer WR und das Ausführungserlaubnis-Bit EP des Segments abgegriffen, das die SEGEP-Eintrittspunkte enthält; diese Informationen befinden sich im Segment-Descriptor für das Segment das die Eintrittspunkte (SEGkiO enthält. Die Schreib-Ringnummer WR wird mit der maximalen Ringnummer MAXR 1503 verglichen; wenn die Schreib-Ringnummer WR größer als die maximale Ringnummer MAXR ist, kann das Segment nicht benutzt werden und eine Ausführungsüberschreitungsausnahme 1513 tritt auf. Wenn die Schreib-Ringnummer WR gleich oder kleiner als die maximale Ringnummer MAXR ist, wird das Ausführungserlaubnis- Bit EP mit logisch I verglichen; wenn das EP-Bit nicht logisch 1 ist, tritt nochmals eine Ausführungsüberschreitungsausnahme 1513 auf; wenn das EP-Bit jedoch gleich 1 ist, wird die tatsächliche ÄdfeB-Ringnümfricf EAR aer aufrufenden Prozedur mit EPRN auf ein Maximum erhöht, um eine neue EAR2 zu entwickeln, — (MAX, (EAR, EPRN)), wobei EAR das im Befehlszähler IC enthaltene Maximum von PRN und von allen Ringnummern in den Basis-Registern und Daten-Descriptors, wenn vorhanden, ist, die sich innerhalb des Pfades befinden, der zum Prozedur-Descriptor führt. Die tatsächliche Adreßringnummer EAR2 wird nun. 1506, mit der maximalen Ringnumrner MAXR des MAXR-Segment-Descriptors von SEGep verglichen, der die maximale Ringnummer darstellt, bei der eine Prozedur durchgeführt werden kann. Wenn EAR2 größer als MAXR ist, ist der Prozeduraufruf ein nach innen gerichteter Aufruf, der eine Verzweigung der über den gültigen Eintrittspunkt einzugebenden
Prozedur und der Zugriffs-Überprüfungsoperation zu Punkt B 1507 erfordert Die folgenden Überprüfungs-Operationen werden nun durchgeführt:
a) SEGep wird überprüft um festzustellen, ob es sich um ein zulässiges Durchschah-Segment handelt.
b) Die maximale Ringnummer CMRN des Abrufers wird überprüft um festzustellen, ob diese gleich oder größer als die tatsächliche Adreßringnummer EAR des Abrufers ist
Wenn diese Bedingungen nicht vorhanden sind, tritt eine illegale Durchschalt-Segment-Ausnahme 1603 oder eine Abruf-Überschreitungs- Ausnahme 1615 auf.
Gemäß dem Verzweigungspunkt B 1507 von Fig. 16 wird mit der ersten durchgeführten Überprüfung 1602
festgestellt ob das Segment das die Prozedur-Descriptors enthält ein Gatter-Segment ist oder nicht Dies geschieht durch die Überprüfung des Durchschalt/Semaphor-Feldes GS, des Segment-Descriptors, welcher auf das Segment des Prozedur-Descriptors hinweist um festzustellen, ob das Feld auf logisch 10 ist Wenn das GS-FeId des Segment-Descriptors des Segments, das Prozedur-Descriptor enthält, auf logisch 10 ist handelt es sich um ein Durchschah-Segment und das erste Wort des Segments, das den Prozedur-Descriptor enthält ist ein
Durchschalt-Prozedur-Descriptor GPD 1120 von F i g. 1 Ic und F i g. 13. Das erste Wort 1120 des Segments, das die Prozedur-Descriptors enthält wird nun aus der Adresse SEGpd, 0 unter Ignorieren der Zugriffsrechte zum Scratch-Pad-Speicher abgegriffen. Es ist zu bemerken, daß das TAG-FeId des ersten Worts 1120 des Segments, das den Prozedur-Descriptor SEGPD 1300 enthält logisch 11 sein muß (Fig. 13); dies kennzeichnet einen Fehler-Descriptor. Weiterhin muß das MBZ-FeId auf 0 positioniert sein.
Diese Bedingungen werden vom Hardwarc/Firmware-Schritt 1605 (arithmetische Logikeinheit) überprüft, und wenn diese Bedingungen nicht gegeben sind, tritt eine illegale Durchschaltsegment-Ausnahme 1603 auf. Wenn diese Bedingungen jedoch nicht gegeber? sind, wird weiterhin eine Überprüfung 1606 durchgeführt um festzustellen, ob die relative Segmentadresse des Prozedur-Descriptors SRAPD 1110 ein Vielfaches von 8 ist
Wenn die Bedingung von 1606 nicht gegeben ist. tritt eine illegale System-Objekt-Adreßausnahme 1613 auf, andernfalls wird der nächste Schritt 1607 durchgeführt. Schritt 1607 überprüft, ob die relative Segmentadresse des Prozedur-Descriptors SRAPD sich innerhalb der Adreßbegrenzung GPDAB 1124 des Gatter-Prozedur-Descriptors 1120 befindet oder nicht: wenn sich die Adresse nicht innerhalb der Adreßbegrenzung befindet, handelt es sich um einen illegalen Prozedur-Descriptor und eine illegale Zugriffs-Ausnahme 1614 des Durchschalt-Prozedur-Descriptors GPD tritt auf. Wenn sich die Adresse jedoch innerhalb der Adreßbegrenzung des Durchschalt-Prozedur-Descriptors (d.h. SRAPD ist kleiner als GODAB) befindet, wird in 1608 das Recht des Aui'.jfers überprüft, mit dem Aufgerufenen in Verbindung zu treten. Dies erfolgt durch Vergleich der tatsächlichen Adreß-Ringnummer EAR2 mit der im ersten Wort 1120 des Prozedur-Descriptor-Segments 1300 befindlichen maximalen Ringnummer CMRN 1J22 des Aufrufers. Wenn EAR2 größer als die CMRN des Aufrufers ist, tritt eine Aufruf-Überschreitungsausnahme 1615 auf, die anzeigt, daß der Aufrufer unter diesen Umständen nicht das Recht besitzt, einen legalen, nach innen gerichteten Aufruf durchzuführen, d. h. von einer höheren Ringnummer zu einer niedrigeren Ringnummer. Wenn EAR2 andererseits niedriger oder gleich CMRN ist, ist der nach innen gerichtete Aufruf legal und in 1609 wird eine Überprüfung durchgeführt, um festzustellen, ob die Prozeß-Ringnummer PRN, die mit der im Befehlszähler IC kurz vor der Durchführung des Aufrufs befindlichen Ringnummer der laufenden Prozedur identisch ist, niedriger als die maximale Ringnummer MAXR von SEGEP ist; wenn dies der Fall ist, führt der Zugriffsmechanismus eine Verzweigung zu Punkt C 1508 durch, andernfalls wird eine neue Prozedur-Ringnummer NPRN errechnet und einer maximalen Ringnummer MAXR ISi 1 beigefügt.
Im allgemeinen ist die tatsächliche Adreß-Ringnummer EAR2 mit der Prozedur-Ringnummer PRN des Aufrufers identisch. In manchen Fällen ist der EAR2 jedoch größer als die PRN, wenn es erforderlich ist, eine maximale Sicherheit zu gewährleisten, daß dem Aufrufer nicht der Zugriff zu einem bestimmten Segment verweigert wird. In solchen Fällen wird PRN zur Übernahme des Wertes von EAR2 gezwungen, um zu gewährleisten, daß der Aufruf nach einem Austritt zur maximalen Ringnummer zurückgeleitet wird. Zu diesem Punkt ist zu bemerken, daß dieser Prüfmechanismus benutzt wurde, da die EAR2 größer als die MAXR und daher größer als die Spitze der Abrufklammer des Verfahrens war und aus diesem Grunde ein nach innen gerichteter Abruf erforderlich war, der notwendigerweise die Benutzung eines gültigen Gatters erforderte, und der Mechanismus beinhaltete diese Gatter-Überprüfungen. Durch eine Rückverzweigung zu C 1508 (Fig. 15) wird eine weitere Überprüfurg 1509 durchgeführt, um nun festzustellen, daß die Prozeß-Ringnummer PRN größer als die Schreib-Ringnummer WR von SEGEP ist, die in diesem Zusammenhang die kleinste Ringnummer darstellt, bei der eine Prozedur ablaufen kann.
Wenn die Schreib-Ringnummer WR größer als die Prozeß-Ringnummer PRN ist, tritt eine Ausnahme »nach außen gerichteter Aufruf« 1514 auf. Wenn WR jedoch gleich oder niedriger als PRN ist, handelt es sich um einen legalen Aufruf und NPRN wird auf PRN 1510 gesetzt.
Nach Durchführung der vorstehend beschriebenen Überprüfungen wird ein nach innen gerichteter Aufruf durchgeführt; nach dem Ablauf der gewünschten Operation erfolgt eine Rückverzweigung zum Ausgangspunkt des ablaufenden Programms mit Hilfe des »Exit«-Befehls. Während der »ENTER INSTRUCTION« wurde der Inhalt des Befehlszählers IC vor der Durchführung des Aufrufs in der Sicherstellungs-Zone des Stack-Rahmens des Aufrufers gespeichert. Weiterhin wurde auch die Ringnummer des Aufrufers während des »ENTER«-Befehls im Basis-Register 0 BROsichergestellt.
Das Formai des »Exit«-Befehls 1130 ist in F i g. 11B dargestellt. Der Operations-Code OP 1131 befindet sich in den Bit- Positionen 0 bis 7, und der Komplementär-Code C1133 in den Bit-Positionen 12 bis 15. Der Komplementär-Code ermöglicht anderen Befehlen die Benutzung des gleichen 8-Bit-Operations-Code. Das MBZ-FeId 1132 in den Bit-Positionen 8 bis 11 muß 0 sein, da andernfalls eine Ausnahme »illegales Format-Feld« auftritt. (BRO ist im allgemeinen ein Hinweis für die Kommunikations-Zone des Stack-Rahmes des Aufrufers.)
Beim Ablauf des EXIT-Befehls müssen vorbestimmte Überprüfungen durchgeführt werden, um zu gewährleisten, daß der Aufrufer nicht seine Identität geändert hat, um so eine andere, nicht vorgesehene Privilegstufe zu benutzen. Gemäß F i g. 17 wird eine erste Überprüfung (1701) durchgeführt, um festzustellen, ob das TAG-FeId des Befehlszähler-Inhalts ICC einen direkten Descriptor anzeigt Der Inhalt logisch 00 im TAG-FeId kennzeichnet einen direkten Descriptor; andernfalls tritt eine Ausnahme 1702 »illegale Stack-Daten« auf; wenn der Wert jedoch 0 ist, wird das Ringfeld im Befehlszähler-Inhalt ICC auf die neue Prozeß-Ringnummer NPR 1703 positioniert. Hierdurch wird die neue Prozeß-Ringnummer NPR auf den Wert gebracht, den sie vor der ersten Überprüfung des Aufrufs besaß. Weitere Überprüfungen werden jedoch durchgeführt, um zu gewährleisten, daß kein weiterer »Betrug« vorliegt Nun muß die Ringnummer von Basis-Register 0, die sich in der Bit-Position 2 befindet und auf 2 Bit-Positionen einschließlich der Bit-Position 2 erweitert ist gleich der neuen Prozeß-Ringnummer NPR 1704 sein. (Es wird nochmals daran erinnert, daß beim Aufruf des ENTER-Befehls die Ringnummer, die der Aufrufer vor dem Aufruf besaß, in den Bits 2 und 3 des Basis-Registers Ö (BRO), gespeichert wurde.)
Wenn sich aus der Prüfung 1704 ergibt, daß die neue Prozeß-Ringnummer NPRN nicht gleich der Ringnummer in den Bit-Positionen 2 und 3 des Basis-Registers 0 (BRO) ist, tritt eine Ausnahme 1702 »illegale Stack-Daten« auf. Die nächste Überprüfung 1705 stellt fest, ob ein nach innen oder ein nach außen gerichteter Aufruf durchgeführt werden muß. Da vorher bereits ein nach innen gerichteter Aufruf durchgeführt wurde, ist nun ein nach außen gerichteter Aufruf erforderlich, um den Ausgangspunkt zu erreichen, von dem die Prozedur aufgerufen wurde. Da die Erfindung weiterhin keinen nach außen gerichteten Aufruf gestattet besteht nie die Notwendigkeit eines nach innen gerichteten Rücksprungs. Nun wird die neue Prozeß-Ringnummer NPRN mit der Pro/.eß-Ringnumrner PRN 1705 verglichen, und wenn NPRN kleiner als PRN ist wird ein nach innen gerichteter Rücksprung erforderlich und eine Ausnahme 1706 »nach innen gerichteter Rücksprung« wird erzeugt Wenn die Überprüfung 1705 jedoch erfolgreich durchgeführt wurde (d. h. NPRN ist gleich oder größer als PRNX wird eine Überprüfung durchgeführt, um festzustellen, ob eine Rückkehr zu der segmentierten Adresse SEGr, die die
I» Prozedur aufrief, durchgeführt wurde und eine Rückkehr zur Abrufklammer der aufrufenden Prozedur wird
I .durchgeführt, und das Ausführungs-Bit EP wird gesetzt. Dies erfolgt durch Erfassen des Segment-Descriptors
SEGr der aufrufenden Prozedur 1707 und mit Hilfe der Überprüfungen 1709,1711 und 1712. Bei der Durchführung der Überprüfungen 1709, 1711 und 1712, stellen die Überprüfungen 1709 und 1711 fest, ob die neue ' 5 Prozeß-Ringnummer NPRN größer als die kleinste Ringnummer WR, jedoch kleiner als die maximale Ringnummer MAXR i't (d. h. daß sich die Ringnummer in der Aufrufklammer der aufrufenden Prozedur, also in ihrer ',-'. vorgeschriebenen Position befindet). Abschließend wird mit Überprüfung 1712 gewährleistet, daß das Ausfüh-
:i rungs-ErlauLnisbit EP auf 1 gesetzt ist. Nun ist ein voller Zyklus abgeschlossen, ein Aufruf wurde über einen
t ENTER-Befehl durchgeführt; die erforderliche Operation oder Verarbeitung wurde mit Hilfe der aufgerufenen
;;; io Prozedur durchgeführt; und danach erfolgte eine Rückkehr mit Hilfe des EXIT-Befehls zur aufrufenden Prozc-
S| dur.
|f Nach der hier erfolgten Darstellung und Beschreibung des bevorzugten Aufbaus der Erfindung kann der
f.| Fachmann erkennen, daß im Rahmen der Erfindung vielfältige Änderungen durchgeführt werden können.
'.'! 15 Erläuterung der verwendeten Ausdrücke
i| JOB
Der Job ist die Hauptarbeitseinheit für den Stapel-Benutzer. Er ist die »Größe« für die Beschreibung,
1 Planung und Realisierung der Arbeit, die άζτ Benutzer durchführen möchte.
I 20 JOB-STEP(JOb-SCHRITT)
fs Eine kleinere Einheit der Stapelarbeit. Der Job-Schritt ist im allgemeinen ein Schritt bei der Ausführung eines Jobs, der aus einer logisch zusammengehörigen Verarbeitung besteht.
f TASK(AUFGABE)
'"I Die kleinste Einheit der benutzerdefinierten Arbeit. Innerhalb einer Task ist keine für den Benutzer
>' 25 erkennbare Parallelarbeit zulässig.
I PROGRAM (PROGRAMM)
\ Ein Satz von Algorithmen, der vom Programmierer geschrieben wurde und die zur Durchführung eines
■i Jobs oder eines Teils eines Jobs erforderlichen Informationen liefert.
I PROCESS GROUP PLEX
\ 30 Die systeminterne Darstellung einer spezifischen Job-Durchführung.
I PROCESS GROUP (PROZESSGRUPPE)
Ii Eine zusammengehörige Gruppe von Prozessen; im allgemeinen die für die Durchführung eines
ί' einzelnen Job-Schrittes erforderlichen Prozesse.
a PROCESS(PROZESS)
a 35 Die kontrollierte Durchführung von Befehlen ohne Parallelarbeit. Seine tatsächliche Darstellung und
I seine Steuerung werden von der internen System-Konzeption oder von Vereinbarungen bestimmt.
I PROCEDURE(PROzEDUR)
Eine bezeichnete Software-Funktion oder ein Algorithmus, die ohne Parallelarbeit von einer Verarbeitungseinheit ausgeführt werden können. Ihr tatsächlicher Aufbau (der Code mit den dazugehörigen 40 Informationen, Aufruf und Benutzung) werden von der internen Systemkonzeption oder von Vereinbarungen bestimmt
LOGICAL PROCESS (l.OGISCHER PROZESS)
Die zur Ausführung eines Prozesses erforderliche Gruppierung von Hardware-Einrichtungen und Steuerinformationen.
45 ADDRESS SPACE SEGMENTATION (ADRESSRAUM-SEGMENTIERUNG)
Die Gruppierung der logischen Adressen, zu deren Umwandlung in absolute Adressen während eines bestimmten Prozesses die CPU berechtigt ist Obwohl ein Prozessor technisch in der Lage ist, jede einzelne Zelle des Timing-Speichers zu adressieren, ist es wünschenswert, den Zugriff auf nur diejenigen Zellen zu beschränken, die während des dem Prozessor zugeordneten Prozesses benutzt werden,
so LOGICAL ADDRESS (LOGISCHE ADRESSE)
Ein Element des Prozeß-Adreßraums, wie z. B. die Segmentnummer SEG und die D-Verschiebung.
BASIC ADDRESS DEVELOPMENT(BASIS-ADRESS-ENTWICKLuNG)
Eine Hardware-Prozedur, die eine Anzahl von Adreß-Elementen bearbeitet, um eine absolute Adresse zu berechnen, die für den Zugriff zu einer Byte-Position im Kern verwendet wird.
55 PROCESS CONTROL BLOCK (PROZESS-STEUER-BLOCK)
Ein Prozeß-Steuerblock PCB ist jedem Prozeß zugeordnet, und er enthält Informationen hinsichtlich des mit ihm zugeordneten Prozesses einschließlich der absoluten Adresse von Tabellen zur Definition der Segmenttabellen, auf die der Prozeß Zugriff hat.
J. P. TABLES (J. P.-TABELLEN)
60 Eine Sammlung logischer Adressen zur Lokalisierung eines einem Prozeß zugeordneten Prozeß-Steuerblocks
S EG pd
Das Segment das den Prozedur-Descriptor enthält
SEGep
65 Das Segment das den im Prozedur-Descriptor enthaltenen Eintrittsounkt enthält
PRN
Die Prozeß-Ringnummer, die sich kurz vor dem Aufruf im IC-Befehlszähler befindet oder mit Hilfe des ENTER-Befehls errechnet wird.
22
EAR
MAXR
WR
EP
CMRN
NPRN
EPRN
Anhang
Die tatsächliche Adreß-Ringnummer; diese ist das Maximum der folgenden Nummern:
d) Der im IC befindlichen Prozeß-Ringnummer PRN; oder
b) aller Ringnummern des Basis-Registers und der Daten-Descriptors (wenn vorhanden), die sich in dem Pfad befinden, der vom. Aufruf-Befehl zum Prozedur-Descriptor führt und die im [VoEedur- 5 Descriptor selbst befindliche Eintrittspunkt-Ringnummer EPRN mit einschließt.
Die höchste Ringnummer, bei der eine Prozedur ablaufen kann; MAXR befindet sich im Segment-Descriptor von SEGep·
Die kleinste Ringnummer, bei der eine Prozedur ablaufen kann; WR befindet sich im Segment-Descriptor SEGep.
Das im Segment-Descriptor von SEGep befindliche Ausführungs-Erlaubnisbit.
Die maximale Ringnummer des Aufrufers, die sich im ersten Wort des SEGpD-Segments befindet, wenn dieses Segment als Tor-Segment identifiziert ist (d. h. mit gesetztem Tor-Code).
Neue ProzeB-Ringnummer.
Ri/ignummerdes Eintrittspunktes (Prozeß-Prozedur-Descripior).
Signalbczeichnung
1) WSCLR
2) PDARG
3) PDURGIT
4) UWOBK
5) UWHOL
6) UWIBK
7) UWOOOOO
8) UW00010
9) UW00100 UW00110
10) UVSPS
11) UVSPD
12) UVOBK
13) UVOOOOO UV00010 UV00100
Typ
Funktion
Steuersignal Steuersignal Verbindungsaignal
Verbindungssignal Steuersignal
Steuersignal
Steuersignal Datensignal Erweiterungssignal
1 14) UVOOIlO Steuersignal Steuereingang für UWVl F;
15) UWVBS Datensignal Dateneingang für UWVlF;
Vk 16) UWV1D Flip/Flop Schreib-Steuer-Flip-Flop;
UWV2F
Löscht das Register, an das es angelegt wird; PDA-Takt-Signal;
Anschlußstift, an einem Ende mit PDA und am anderen Ende mit dem Register verbunden;
erweitert die Eingänge des UW-Registers; hält Informationen in dem Register, an das es an-
gcicgt Wifu;
wie UWOBK, jedoch a.i eine andere Eingangsklemme des UW-Registers angeschlossen; 40
Löschklemme eines Flip-Flops des UW-Registers;
Flip-Flop-Setz-KIemme des UW-Registers; 45
Identisch mit 7 +8, jedoch anderes Flip-Flop;
Ersatz-Steuereingang; 50
Ersatz- Dateneingang;
wie UWOBK und UWlBK, ist jedoch an verschiedene Register und Gatter angeschlossen; 55
wie UWOOOOO, UWOOOlO, UWOOlOO und UWOOIlO, jedoch an das UV-Flip-Flop angeschlossen;
Anhang (Fortsetzung) Signalbezeichnung
Typ Funktion
5 17) UWVlS UWV2S
Steuersignal
18) UWVlD Datensignal
IO 19) UWVlH Steuersignal
20) UWVlC Steuersignal
15 21)
22)
UWV2C
URNlS
URN2S
Steuersignal
Steuersignal
20 23)
24)
URNlD
URNSW
Datensignal
Steuersignal
25 25) URN2F Flip-Flop
26) URNlH Steuersignal
in 27) URN2C Steuersignal
JV 28) URWlS
URW2S
Steuersignal
35 29)
30)
URWlD
URV2F
Datensignal
Fiip-Fiop
31) XNU
40 32) XOO
Steuereingang für UWVl F und UWV2F; Dateneingang für UWVl F; Halten des UWVl F-FIip-Flops; Löschen von UWVl F; Löschen von UWV2F; Steuereingänge für URNl F und URN2F; Dateneingang für URN IF;
Übertragung von URNlF zu URN2F un< URN2FzuURN1F;
Steuerung des Lademaximums (UP, UBS nacl UM);
Halten des URNIF-Flip-Flops; Löschen von URN2F; Steuereingänge für URVIF und URV2F; Dateneingang für URVl F; Lese-Sieuer-Fiip-Fiop;
kennzeichnet eine hier nicht benutzte Klemme; mit Masse verbundener Eingang.
Hierzu 29 Blatt Zeichnungen
45
50 55 60 65

Claims (13)

Patentansprüche:
1. Multiprogrammierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher und weiche abhängig von intern gespeicherten, Programme bildenden Befehlswörtern Informationen verarbeitet,
— wobei in dem virtuellen Speicher eine Mehrzahl von verschiedenen Informationsgruppen gespeichert ist, die jeweils einem Adreßraum zugeordnet sind, welcher durch ein Segment mit einstellbarcn£}renzen begrenzt ist,
— wobei der virtuelle Speicher wenigstens eine Segmenttabelle enthält, in der eine Mehrzahl von Scgment-Descriptoren enthalten ist, die jeweils einem Segment zugeordnet sind,
— wobei jeder Segment-Descriptor enthält:
— ein erstes Zugriffs-Informationselement zum Schützen der in dem virtuellen Speicher gespeicherten Daten vor unbefugten Benutzern durch Einschränken der Zugänglichkeit der Daten mittels Datenfeldern (Zugriffsfeld; F i g. 4D), welche diejenige von verschiedenen Privilegstufen angeben, die für einen Zugriff auf das zugehörige Segment gegeben sein muß;
— ein zweites Zugriffs-Informationselement (PRN), das die Berechtigung des in der Ausführung befindlichen Programms zum Zugriff auf den Speicher festlegt;
— wobei ferner in einer Mehrzahl von Basis-Registern (116; Fig.4G, 4H), die den Befehlswörtern zugeordne*, sind, dritte Zugriffs-Informationselemente (RN, BRN, DRN) enthalten sind, welche die Berechtigung amn Zugriff eines Befehlswortes auf den Speicher angeben;
— wobei die zweiten Zugriffs-Informationselemente (PRN) und die dritten Zugriffs- Informationselemente (RN, BRN, DRN) an eine Bestimmungseinrichtung (505,502,512) angelegt sind, die aus ihnen eine der effektiven Privilegstufe entsprechende effektive Adreßringnummer (EAR) des in der Ausführung befindlichen Befehlswones bestimmt;
— wobei eine auf die effektive Adreßringnummer (EAR) und auf das erste Zugriffs-Informationselement (Zugriffsfeld; F i g. 4D) ansprechende Einrichtung (505 bis 511) den Zugriff des Befehlswortes auf das zu dem Segment-Descriptor gehörende Segment eingeschränkt; und
— wobei die Privilegstufen ein konzentrisches Ringschutzsystem bilden, in dem jeder Informationsgruppe vorbestimmte Ringnummern zugeordnet sind, welche die jeweiligen mit steigender Ringnummer abnehmenden Privilegstufen angeben,
dadurckgekeniizeicKnet, daß
a) das erste Zugriffs-Infornuuonselement (Zugriffsfeld; F i g. 4D) enthält:
— ein erstes Datenfeld, in dem die maximale Lese-Ringnummer (RD) gespeichert ist, die zum Auslesen der Information einer ausgewählten Informationsgruppe erforderlich ist;
— ein zweites Datenfeld, in dem die maximale Schreib-Ringnummer (WR) gespeichert ist, die zum Einschreiben von Informationen in der betreffenden Informationsgruppe erforderli'-)> ist;
— ein drittes Datenfeld, in dem die maximale Ringnummer (MAXR) gespeichert ist, die zur Verarbeitung der Information aus einer ausgewählten Informationsgruppe erforderlich ist;
— ein Ausführungserlaubnis-Bit (EP), das die Ausführung einer Befehlsgruppe entweder zuläßt oder sperrt, und
— ein Schreiberlaubnis-Bit (WP), welches das Einschreiben einer ausgewählten Informationsgruppc entweder zuläßt oder sperrt;
b) ein Vergleicher (505) vorgesehen ist, der die effektive Adreßringnummer (EAR) und die Schreib-Ringnummer (WR) miteinander vergleicht, wobei das Ausgangssignal des Vergleichers (505) in einer Schreib-Oberschreitungs-Schaltungsanordnung (509) zu einem Schreibüberschreitungs-Ausnahmesignal verarbeitet wird, wenn die effektive Adreßringnummer (EAR) größer ist als die Schreib-Ringnummer (WR);
c) ein Vergleicher (506) vorgesehen ist, der die maximale Ringnummer (MAXR) und die Schreib-Ringnummer (WR) mit der effektiven Adreßringnummer (EAR) vergleicht, und eine Ausführungs-Überschrcitungs-Schaitungsanordnung (511) aus dem Ausgangssignal des Vergleichers (506) ein Ausführungsüberschreitungs-Ausnahmesignal erzeugt, wenn die maximale Ringnummer (MAXR) nicht gleich oder größer als die effektive Adreßringnummer (EAR) ist, die ihrerseits nicht gleich oder größer als die Schreib-Ringnummer (WR) ist;
d) ein Vergleicher (506) vorgesehen ist, der die effektive Adreßringnummer (EAR) mit der Lese-Ringnummer (RD) vergleicht, und eine Lese-Überschreitungs-Schaltungsanordnung (508) aus dem Ausgangssigna! des Vergleichers (506) ein Lese-Überschreitungs-Ausnahmesignal erzeugt, wenn die effektive Adreßringnummer (EAR) größer als die Lese-Ringnummer (RD) ist; und
e) eine Speichereinrichtung (501) zum Speichern einer Prozeßringnummer (PRN) eines in der Ausführung befindlichen Prozesses und eine Umgehungseinrichtung, die das Lese-Überschreitungs-Ausnahmesignai umgeht, wenn die effektive Adreßringnummer (EAR) gleich der Prozeßringnummer (PRN) des jeweils in der Ausführung befindlichen Prozesses ist, vorgesehen sind.
M
2. Datcnverarbcitung.sanordnung nach Anspruch 1, dadurch gekennzeichnet, daß das zweite Datenfeld
zusätzlich die minimale Ringnummcr (WR) angibt, ciie zur Verarbeitung von Informationen der betreffenden Informationsgruppe erforderlich ist.
3. Datenverarbeitungsanordnung nach Anspruch 2, dadurch gekennzeichnet, daß eine Zugriffsprüfeinrich-
tung die Übertragung der Kontrolle über die Datenverarbeitungseinheit (CPU) von einer ersten ausgewählten Prozedur (d. h. einem Aufrufer) mit einer ersten Ringnummer, die eine dem Aufrufer zugeordnete minimale Privilegstufe anzeigt, auf eine zweite ausgewählte Prozedur (d. h. eine aufgerufene) mit einer zweiten Ringnummer, die eine der aufgerufenen Prozedur zugeordnete minimale Privilegstufe anzeigt, und daß die Zugriffsprüfeinrichtung mehrere Ring-Stack-Segmenteinrichtungen enthält, die jeweils einer Ring-Stack-Segmentnummer zugeordnet sind, die die minimale Privilegstufe angibt, die für eine der Prozeduren erforderlich ist, damit sie zu einem ausgewählten Ring-Stack-Segment Zugang hat
4. Datenverarbeiiungsanordnung nach Anspruch 3, dadurch gekennzeichnet daß vier Privilegstufen mit den Ringnummern 0 bis 3 und entsprechend vier Ring-Stack-Segmenteinrichtungen vorgesehen sind.
5. Datenverarbeitungsanordnung nach Anspruch 3, dadurch gekennzeichnet daß die Zugriffsprüfeinrichtung Stack-Rahmeneinrichtungen enthält die ausgewählten Prozeduren zugeordnet sind, daß die Stack-Rahmen-Einrichtungen entsprechend der Ringnummer der zugeordneten Prozedur der Stack-Rahmen-Einrichtung innerhalb der Ring-Stack-Segmenteinrichtungen zu Gruppen geordnet sind, und daß die Stack-Rahmen-Einrichtung der Sicherstellung der Register des Aufrufers vor der Übergabe der Kontrolle an den Ausrufenden dienen.
6. Datenverarbei£ung£anordnung nach Anspruch 4 und 5, dadurch gekennzeichnet daß die Zugriffsprüfeinrichtung erste Teilelement-Einrichtungen aufweist, die abhängig von den ersten, zv/eiten, dritten und vierten Ring-Stack-Segmenteinrichtungen Übertragungsverbindungen zwischen einer ausgewählten Stack-Rahmen-Einrichtung in einem ersten Ring-Stack-Segment dem eine Ringnummer zugeordnet ist und einer ausgewählten weiteren Stack-Rahmen-Einrichtung in einem zweiten Ring-Stack-Segmer/, dem eine weitere Ringnummer zugeordnet ist, herstellen.
7. Datenverarbeitungsanordnung n.ch einem der vorstehenden Ansprüche, dadurch gekennzeichnet daß
a) jeder Segment-Descriptor in vorbestimmten Positionen seines Formats ein Zugriffsinformationselement, ein Tor-Anzeigeelement und ein Basisadressenetement aufweist, von denen das Zugriffsinformationselement die minimale Privilegstufe anzeigt, die für eine vorbestimmte Zugriffsart erforderlich ist, die in einem ausgewählten Segment zulässig ist, während das Tor-Anzeigeelement selektiv anzeigt, daß der Eintrittspunkt zu einem vorbestimmten Segment durch eine Prozedur überwacht werden muß, und das Basisadressenelement den Start-Speicherplatz eines ausgewählten Segments in dem virtuellen Speicher adressiert
b) mehrere Speichereinrichtungen mit einem vorbestimmten Format in einem vorbestimmten Abschnitt eine Segmentnummer (SEG) zur Identifizierung einer ausgewählten Segmenttabelle und des Orts eines Segment-Descriptors innerhalb der ausgewählten Segmenttabelle speichern und ferner in einem vorbestimmten weiteren Abschnitt eine Offset-Adresse innerhalb des Segments durch den Segment-Descriptor speichern, die aus der Segmentbasis das erste Byte eines Worts innerhalb des Segments adressiert,
c) eine Adressiereinrichtung abhängig von einem Adreß-Silbenelement eines ausgeführten Befehls eine der Speichereinrichtungen adressiert,
d) eine weitere Speichereinrichtung aus der Adreß-Silbe eine Verschiebung (D) speichert, die dazu dient aus dem ersten Byte des Worts innerhalb des Segments jedes andere Byte des Worts zu adressieren,
e) Jne Addiereinrichtung die Verschiebung (D) und die Basisadresse zu der Offset-Adresse addiert, und
f) eine Überwachungseinrichtung in dem virtuellen Speicher abhängig von dem Tor-Anzeigeelement in einem ausgewählten Segment-Descriptor eine Änderung der Privilegstufe einer ausgewählten ersten Prozedur überwacht
8. Datenverarbeitungsanordnung nach Anspruch 7, gekennzeichnet durch mehrere Adressiereinrichtun- gen, die jeweils eine vorbeshmmte erste Struktur zur Adressierung einer ausgewählten zweiten Prozedur adressieren und von einem ersten Segment der Segmente begrenzt sind.
9. Datenverarbeitungsanordnung nach .Anspruch 8, dadurch gekennzeichnet, daß die Überwachungseinrichtung eine Datenstruktur bildet, die ein vorbestimmtes Format aufweist und in einem vorbestimmten ersten Abschnitt des Segments ein die maximale Ringnummer (d. h. die minimale Privileg-Siufe) eines Aufrufers anzeigendes Element (CMRN) enthält, das für die erste ausgewählte Prozedur zum Zugriff auf das ersi.2 der Segmente benötigt wird.
10. Datenverarbeitungsanordnung nach Anspruch 9, dad-'vch gekennzeichnet daß sich die Überwachungseinrichtung am Anfang des ersten der Segmente befindet
11. Datenverarbeitungsanordnung nach Anspruch 8, dadurch gekennzeichnet, daß die ausgewählten Prozeduren von vorbestimmten der Segmente begrenzt sind.
12. Datenverarbeitungsanordnung nach Anspruch 11, dadurch gekennzeichnet, daß alle Adressiereinrichtungen mit einem vorbestimmten Segment verbunden sind und in vorbestimmten Abschnitten der ersten Struktur ein Eintrittspunkt-Ringnummer-Element (EPRN) zur Anzeigt der maximalen Ringnummer (d. h. der minimalen Privilegstufe) enthalten, die für die erste ausgewählte Prozedur zur Übertragung der Kontrol-Ic über die zentrale Verarbeitungseinheit (CPU) auf die zweite ausgewählte Prozedur erforderlich ist.
13. Datenverarbeitungsanordnung nach Anspruch 12, dadurch gekennzeichnet, daß die Adressiereinrichlungcn außerdem ein Eintrittspunkt-Adressenelement (EP) zur Anzeige der effektiven Adresse in einem ausgewählten der vorbestimmten Segmente enthalten.
DE2456602A 1973-11-30 1974-11-29 Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher Expired DE2456602C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR7342706A FR2258112A5 (de) 1973-11-30 1973-11-30

Publications (2)

Publication Number Publication Date
DE2456602A1 DE2456602A1 (de) 1975-06-19
DE2456602C2 true DE2456602C2 (de) 1985-11-14

Family

ID=9128514

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2456602A Expired DE2456602C2 (de) 1973-11-30 1974-11-29 Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher

Country Status (9)

Country Link
US (1) US4177510A (de)
JP (1) JPS618459B2 (de)
BR (1) BR7410047A (de)
CA (1) CA1055615A (de)
DE (1) DE2456602C2 (de)
FR (1) FR2258112A5 (de)
GB (1) GB1483282A (de)
IT (1) IT1026694B (de)
NL (1) NL7415569A (de)

Families Citing this family (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4471429A (en) * 1979-12-14 1984-09-11 Honeywell Information Systems, Inc. Apparatus for cache clearing
US4319323A (en) * 1980-04-04 1982-03-09 Digital Equipment Corporation Communications device for data processing system
US4409655A (en) * 1980-04-25 1983-10-11 Data General Corporation Hierarchial memory ring protection system using comparisons of requested and previously accessed addresses
EP0150522B1 (de) * 1980-04-25 1989-08-30 Data General Corporation Datenverarbeitungssystem mit hierarchischem Speicherschutz
US4386399A (en) * 1980-04-25 1983-05-31 Data General Corporation Data processing system
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys
US4500952A (en) * 1980-05-23 1985-02-19 International Business Machines Corporation Mechanism for control of address translation by a program using a plurality of translation tables
US4445170A (en) * 1981-03-19 1984-04-24 Zilog, Inc. Computer segmented memory management technique wherein two expandable memory portions are contained within a single segment
US4514800A (en) * 1981-05-22 1985-04-30 Data General Corporation Digital computer system including apparatus for resolving names representing data items and capable of executing instructions belonging to general instruction sets
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4481570A (en) * 1981-08-07 1984-11-06 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Automatic multi-banking of memory for microprocessors
US4450522A (en) * 1981-09-11 1984-05-22 Data General Corporation Apparatus for deriving addresses of data using displacements from base addresses which change only on call and return
US4503492A (en) * 1981-09-11 1985-03-05 Data General Corp. Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure
US4453215A (en) * 1981-10-01 1984-06-05 Stratus Computer, Inc. Central processing apparatus for fault-tolerant computing
US4597084A (en) * 1981-10-01 1986-06-24 Stratus Computer, Inc. Computer memory apparatus
ATE25779T1 (de) * 1981-10-01 1987-03-15 Stratus Computer Inc Digitale datenverarbeitungsanlage mit zuverlaessigkeits-bus-protokoll.
US4866604A (en) * 1981-10-01 1989-09-12 Stratus Computer, Inc. Digital data processing apparatus with pipelined memory cycles
JPS6145272B2 (de) * 1981-12-04 1986-10-07 Burroughs Corp
US4803655A (en) * 1981-12-04 1989-02-07 Unisys Corp. Data processing system employing a plurality of rapidly switchable pages for providing data transfer between modules
US4519032A (en) * 1982-06-09 1985-05-21 At&T Bell Laboratories Memory management arrangement for microprocessor systems
JPS58225432A (ja) * 1982-06-24 1983-12-27 Toshiba Corp 要求バツフア装置
US4590552A (en) * 1982-06-30 1986-05-20 Texas Instruments Incorporated Security bit for designating the security status of information stored in a nonvolatile memory
JPS5960652A (ja) * 1982-09-30 1984-04-06 Fujitsu Ltd デ−タ処理装置
US4581702A (en) * 1983-01-10 1986-04-08 International Business Machines Corporation Critical system protection
US4573119A (en) * 1983-07-11 1986-02-25 Westheimer Thomas O Computer software protection system
US4587610A (en) * 1984-02-10 1986-05-06 Prime Computer, Inc. Address translation systems for high speed computer memories
US4621321A (en) * 1984-02-16 1986-11-04 Honeywell Inc. Secure data processing system architecture
CA1235821A (en) * 1984-06-28 1988-04-26 John Zolnowsky Data processor having module access control
DE3440796C2 (de) * 1984-11-08 1986-10-16 Schröter, Klaus, 1000 Berlin Kommunikationssystem
US4787031A (en) * 1985-01-04 1988-11-22 Digital Equipment Corporation Computer with virtual machine mode and multiple protection rings
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
CA1244555A (en) * 1985-06-17 1988-11-08 Walter H. Schwane Process transparent multi storage mode data transfer and buffer control
US4703417A (en) * 1985-06-27 1987-10-27 Honeywell Information Systems Inc. Call instruction for ring crossing architecture
US4866599A (en) * 1985-06-27 1989-09-12 Bull Hn Information Systems Inc. Call instruction, return instruction and trap procedure for ring crossing architecture
JPH0782458B2 (ja) * 1985-09-06 1995-09-06 株式会社日立製作所 データ処理装置
US4757533A (en) * 1985-09-11 1988-07-12 Computer Security Corporation Security system for microcomputers
US4809160A (en) 1985-10-28 1989-02-28 Hewlett-Packard Company Privilege level checking instruction for implementing a secure hierarchical computer system
US4797853A (en) * 1985-11-15 1989-01-10 Unisys Corporation Direct memory access controller for improved system security, memory to memory transfers, and interrupt processing
US4794515A (en) * 1986-01-17 1988-12-27 International Business Machines Corporation Protection of data in a multiprogramming data processing system
US5233700A (en) * 1987-03-03 1993-08-03 Nec Corporation Address translation device with an address translation buffer loaded with presence bits
US4961137A (en) * 1987-04-17 1990-10-02 U.S. Philips Corporation Method for operating a multiprocessor system for therein establishing a global binary assertion and a multiprocessor apparatus comprising synchronization means for such establishing, in particular for effecting a garbage collection operation
US5140684A (en) * 1987-09-30 1992-08-18 Mitsubishi Denki Kabushiki Kaisha Access privilege-checking apparatus and method
US4937736A (en) * 1987-11-30 1990-06-26 International Business Machines Corporation Memory controller for protected memory with automatic access granting capability
US4975878A (en) * 1988-01-28 1990-12-04 National Semiconductor Programmable memory data protection scheme
US5197141A (en) * 1988-01-30 1993-03-23 Nec Corporation Software controlled method of issuing hardware control commands to memory controller from prefetch unit by combining request code and address specified in program instructions
US5129087A (en) * 1988-02-03 1992-07-07 International Business Machines, Corp. Computer system and a method of monitoring transient data structures in a computer system
US4943913A (en) * 1988-02-10 1990-07-24 International Business Machines Corporation Operating system accessing control blocks by using home address space segment table to control instruction and operand fetch and store operations
US5434999A (en) * 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
US5051894A (en) * 1989-01-05 1991-09-24 Bull Hn Information Systems Inc. Apparatus and method for address translation of non-aligned double word virtual addresses
US5117491A (en) * 1989-03-31 1992-05-26 Bull Hn Information Systems Inc. Ring reduction logic using parallel determination of ring numbers in a plurality of functional units and forced ring numbers by instruction decoding
FR2652926B1 (fr) * 1989-10-06 1994-07-08 Bull Sa Procede d'exploitation de la memoire dans un systeme informatique du type a adressage virtuel et dispositif pour la mise en óoeuvre dudit procede.
US5469556A (en) * 1989-12-12 1995-11-21 Harris Corporation Resource access security system for controlling access to resources of a data processing system
JP2536651B2 (ja) * 1990-02-21 1996-09-18 日本電気株式会社 例外アドレスバッファ管理方式
US5574912A (en) * 1990-05-04 1996-11-12 Digital Equipment Corporation Lattice scheduler method for reducing the impact of covert-channel countermeasures
GB9010603D0 (en) * 1990-05-11 1990-07-04 Int Computers Ltd Access control in a distributed computer system
US5596751A (en) * 1990-06-05 1997-01-21 Siemens Aktiengesellschaft Method for processing a user program on a parallel computer system
DE4018012A1 (de) * 1990-06-05 1991-12-12 Siemens Ag Verfahren zur bearbeitung eines benutzerprogramms auf einem parallelrechnersystem
US5596718A (en) * 1992-07-10 1997-01-21 Secure Computing Corporation Secure computer network using trusted path subsystem which encrypts/decrypts and communicates with user through local workstation user I/O devices without utilizing workstation processor
US5596739A (en) * 1994-02-08 1997-01-21 Meridian Semiconductor, Inc. Method and apparatus for detecting memory segment violations in a microprocessor-based system
US5864683A (en) * 1994-10-12 1999-01-26 Secure Computing Corporartion System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US6963859B2 (en) 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US7613659B1 (en) * 1994-11-28 2009-11-03 Yt Acquisition Corporation System and method for processing tokenless biometric electronic transmissions using an electronic rule module clearinghouse
US7882032B1 (en) 1994-11-28 2011-02-01 Open Invention Network, Llc System and method for tokenless biometric authorization of electronic communications
US5784615A (en) * 1994-12-13 1998-07-21 Microsoft Corporation Computer system messaging architecture
US5933632A (en) * 1995-12-21 1999-08-03 Intel Corporation Ring transitions for data chunks
US5918018A (en) * 1996-02-09 1999-06-29 Secure Computing Corporation System and method for achieving network separation
US5867647A (en) * 1996-02-09 1999-02-02 Secure Computing Corporation System and method for securing compiled program code
US5913024A (en) * 1996-02-09 1999-06-15 Secure Computing Corporation Secure server utilizing separate protocol stacks
US6003084A (en) * 1996-09-13 1999-12-14 Secure Computing Corporation Secure network proxy for connecting entities
US6072942A (en) * 1996-09-18 2000-06-06 Secure Computing Corporation System and method of electronic mail filtering using interconnected nodes
US5950195A (en) * 1996-09-18 1999-09-07 Secure Computing Corporation Generalized security policy management system and method
US5983350A (en) * 1996-09-18 1999-11-09 Secure Computing Corporation Secure firewall supporting different levels of authentication based on address or encryption status
US6144934A (en) * 1996-09-18 2000-11-07 Secure Computing Corporation Binary filter using pattern recognition
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US5915087A (en) * 1996-12-12 1999-06-22 Secure Computing Corporation Transparent security proxy for unreliable message exchange protocols
US5968133A (en) * 1997-01-10 1999-10-19 Secure Computing Corporation Enhanced security network time synchronization device and method
US6105132A (en) * 1997-02-20 2000-08-15 Novell, Inc. Computer network graded authentication system and method
US6233684B1 (en) 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
US6357010B1 (en) * 1998-02-17 2002-03-12 Secure Computing Corporation System and method for controlling access to documents stored on an internal network
US6321336B1 (en) 1998-03-13 2001-11-20 Secure Computing Corporation System and method for redirecting network traffic to provide secure communication
US6182226B1 (en) 1998-03-18 2001-01-30 Secure Computing Corporation System and method for controlling interactions between networks
US6453419B1 (en) 1998-03-18 2002-09-17 Secure Computing Corporation System and method for implementing a security policy
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6711607B1 (en) 2000-02-04 2004-03-23 Ensim Corporation Dynamic scheduling of task streams in a multiple-resource system to ensure task stream quality of service
US6529985B1 (en) 2000-02-04 2003-03-04 Ensim Corporation Selective interception of system calls
US6560613B1 (en) 2000-02-08 2003-05-06 Ensim Corporation Disambiguating file descriptors
US6754716B1 (en) 2000-02-11 2004-06-22 Ensim Corporation Restricting communication between network devices on a common network
US6748592B1 (en) 2000-02-14 2004-06-08 Xoucin, Inc. Method and apparatus for protectively operating a data/information processing device
US7343421B1 (en) 2000-02-14 2008-03-11 Digital Asset Enterprises Llc Restricting communication of selected processes to a set of specific network addresses
US6948003B1 (en) 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US7216345B1 (en) * 2000-04-07 2007-05-08 Hall Aluminum Llc Method and apparatus for protectively operating a data/information processing device
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US20030159070A1 (en) * 2001-05-28 2003-08-21 Yaron Mayer System and method for comprehensive general generic protection for computers against malicious programs that may steal information and/or cause damages
US9213836B2 (en) 2000-05-28 2015-12-15 Barhon Mayer, Batya System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US6986052B1 (en) 2000-06-30 2006-01-10 Intel Corporation Method and apparatus for secure execution using a secure memory partition
US7143024B1 (en) 2000-07-07 2006-11-28 Ensim Corporation Associating identifiers with virtual processes
US6909691B1 (en) 2000-08-07 2005-06-21 Ensim Corporation Fairly partitioning resources while limiting the maximum fair share
US7412605B2 (en) 2000-08-28 2008-08-12 Contentguard Holdings, Inc. Method and apparatus for variable encryption of data
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US6732211B1 (en) 2000-09-18 2004-05-04 Ensim Corporation Intercepting I/O multiplexing operations involving cross-domain file descriptor sets
US7343324B2 (en) 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
US7219354B1 (en) 2000-12-22 2007-05-15 Ensim Corporation Virtualizing super-user privileges for multiple virtual processes
US6912294B2 (en) 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US8069116B2 (en) 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US7028009B2 (en) 2001-01-17 2006-04-11 Contentguardiholdings, Inc. Method and apparatus for distributing enforceable property rights
US6618736B1 (en) 2001-03-09 2003-09-09 Ensim Corporation Template-based creation and archival of file systems
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US8275709B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US8001053B2 (en) 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US6895503B2 (en) 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US8099364B2 (en) 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7725401B2 (en) 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US7774280B2 (en) 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
WO2002101490A2 (en) 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Cryptographic trust zones in digital rights management
US6718421B1 (en) * 2001-06-19 2004-04-06 Webtv Networks, Inc. Interconnect bus
US8261095B1 (en) 2001-11-01 2012-09-04 Google Inc. Methods and systems for using derived user accounts
US7840488B2 (en) 2001-11-20 2010-11-23 Contentguard Holdings, Inc. System and method for granting access to an item or permission to use an item based on configurable conditions
WO2003044680A1 (en) 2001-11-20 2003-05-30 Contentguard Holdings, Inc. Systems and methods for creating, manipulating and processing rights and contract expressions using tokenized templates
US7974923B2 (en) 2001-11-20 2011-07-05 Contentguard Holdings, Inc. Extensible rights expression processing system
US7805371B2 (en) 2002-03-14 2010-09-28 Contentguard Holdings, Inc. Rights expression profile system and method
KR100703521B1 (ko) 2002-03-14 2007-04-03 콘텐트가드 홀딩즈 인코포레이티드 사용권리 표현을 처리하기 위한 방법 및 장치
US20040024670A1 (en) 2002-04-29 2004-02-05 Contentguard Holdings, Inc. Rights management system using legality expression language
US7685642B2 (en) 2003-06-26 2010-03-23 Contentguard Holdings, Inc. System and method for controlling rights expressions by stakeholders of an item
US7398390B2 (en) * 2003-08-08 2008-07-08 Hewlett-Packard Development Company, L.P. Method and system for securing a computer system
EP1538507A1 (de) * 2003-12-02 2005-06-08 Axalto S.A. Flash-Speicher Zugriffsverfahren und -system
US20050278790A1 (en) * 2004-06-10 2005-12-15 International Business Machines Corporation System and method for using security levels to simplify security policy management
US7475431B2 (en) * 2004-06-10 2009-01-06 International Business Machines Corporation Using security levels to improve permission checking performance and manageability
US20060078126A1 (en) * 2004-10-08 2006-04-13 Philip Cacayorin Floating vector scrambling methods and apparatus
US8660961B2 (en) 2004-11-18 2014-02-25 Contentguard Holdings, Inc. Method, system, and device for license-centric content consumption
US7720767B2 (en) 2005-10-24 2010-05-18 Contentguard Holdings, Inc. Method and system to support dynamic rights and resources sharing
US7949841B2 (en) * 2006-12-08 2011-05-24 Microsoft Corporation Protection of critical memory using replication
US8112597B2 (en) * 2006-12-08 2012-02-07 Microsoft Corporation Critical memory
US9596250B2 (en) 2009-04-22 2017-03-14 Trusted Knight Corporation System and method for protecting against point of sale malware using memory scraping
JP5637145B2 (ja) * 2009-11-26 2014-12-10 日本電気株式会社 バスモニタ回路及びバスモニタ方法
US8793429B1 (en) * 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
US10324796B2 (en) * 2016-08-11 2019-06-18 International Business Machines Corporation Stack detail recovery
US11171983B2 (en) * 2018-06-29 2021-11-09 Intel Corporation Techniques to provide function-level isolation with capability-based security
US12019601B2 (en) * 2019-12-26 2024-06-25 Yahoo Assets Llc Horizontal skimming of composite datasets
US11507554B2 (en) 2019-12-26 2022-11-22 Yahoo Assets Llc Tree-like metadata structure for composite datasets
CN113891072B (zh) * 2021-12-08 2022-02-11 北京拙河科技有限公司 基于亿级像素数据的视频监测与异常分析系统与方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3264615A (en) * 1962-12-11 1966-08-02 Ibm Memory protection system
US3340539A (en) * 1964-10-27 1967-09-05 Anelex Corp Stored data protection system
US3377624A (en) * 1966-01-07 1968-04-09 Ibm Memory protection system
US3504349A (en) * 1967-09-27 1970-03-31 Ibm Address examination mechanism for use in a system operating with dynamic storage relocation
US3593300A (en) * 1967-11-13 1971-07-13 Ibm Arrangement for automatically selecting units for task executions in data processing systems
US3562717A (en) * 1968-02-23 1971-02-09 Gen Electric System protection apparatus
NL6806735A (de) * 1968-05-11 1969-11-13
US3528062A (en) * 1968-07-05 1970-09-08 Ibm Program interlock arrangement,including task suspension and new task assignment
US3573855A (en) * 1968-12-31 1971-04-06 Texas Instruments Inc Computer memory protection
US3675209A (en) * 1970-02-06 1972-07-04 Burroughs Corp Autonomous multiple-path input/output control system
US3614740A (en) * 1970-03-23 1971-10-19 Digital Equipment Corp Data processing system with circuits for transferring between operating routines, interruption routines and subroutines
GB1329721A (en) * 1970-05-26 1973-09-12 Plessey Co Ltd Data processing devices
JPS4930578B1 (de) * 1970-09-30 1974-08-14
US3727192A (en) * 1971-04-30 1973-04-10 North Electric Co A central processing system having preloader and data handling units external to the processor control unit
US3693165A (en) * 1971-06-29 1972-09-19 Ibm Parallel addressing of a storage hierarchy in a data processing system using virtual addressing
JPS5140772B2 (de) * 1971-07-26 1976-11-05
GB1410631A (en) * 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
US3858182A (en) * 1972-10-10 1974-12-31 Digital Equipment Corp Computer program protection means
US3893084A (en) * 1973-05-01 1975-07-01 Digital Equipment Corp Memory access control system
IT986411B (it) * 1973-06-05 1975-01-30 Olivetti E C Spa Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario
US4017840A (en) * 1973-06-15 1977-04-12 Gte Automatic Electric Laboratories Incorporated Method and apparatus for protecting memory storage location accesses
FR2253430A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US3916385A (en) * 1973-12-12 1975-10-28 Honeywell Inf Systems Ring checking hardware

Also Published As

Publication number Publication date
GB1483282A (en) 1977-08-17
BR7410047A (pt) 1976-05-25
AU7584074A (en) 1976-06-03
IT1026694B (it) 1978-10-20
DE2456602A1 (de) 1975-06-19
JPS50114934A (de) 1975-09-09
FR2258112A5 (de) 1975-08-08
JPS618459B2 (de) 1986-03-14
US4177510A (en) 1979-12-04
NL7415569A (nl) 1975-06-03
CA1055615A (en) 1979-05-29

Similar Documents

Publication Publication Date Title
DE2456602C2 (de) Multiprogramierbare Datenverarbeitungsanordnung mit interner Programmierung und virtuellem Speicher
DE2458065C2 (de) Datenverarbeitungsanlage
DE3689569T2 (de) Verfahren zur Systemdateiensicherung und Datenverarbeitungseinheit zu dessen Durchführung.
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE3048365C2 (de)
DE3851049T2 (de) Ein Sicherheitswegmechanismus für ein Betriebssystem.
DE3854616T2 (de) Nichthierarchischer Programmberechtigungsmechanismus.
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE69731998T2 (de) Informationsverarbeitungsvorrichtung und Verfahren
DE2500006A1 (de) Wirtsdatenverarbeitungssystem und verfahren zur emulation von eingabe/ausgabe- befehlen
EP0011685B1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE3131204A1 (de) Adressumrechnungs- und generatoranordnung
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2719295A1 (de) Programmsteuerung
DE2459006A1 (de) Verfahren und einrichtung zur entwicklung absoluter adressen bei segmentadressierung
DE2517276A1 (de) Datenverarbeitungssystem
DE19536169A1 (de) Multifunktionale Chipkarte
DE2837872A1 (de) Digitalrechner mit ueberlappender betriebsweise unter verwendung einer bedingten steuerung zur minimierung von zeitverlusten
DE2629266A1 (de) Ein/ausgabe-system
DE2629459A1 (de) Datenverarbeitungssystem
DE68929080T2 (de) Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor

Legal Events

Date Code Title Description
OGA New person/name/address of the applicant
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition