DE3882298T2 - Schaltung zur steuersignalerzeugung für eine arithmetische logische einheit in einem digitalverarbeitungsgerät. - Google Patents

Schaltung zur steuersignalerzeugung für eine arithmetische logische einheit in einem digitalverarbeitungsgerät.

Info

Publication number
DE3882298T2
DE3882298T2 DE19883882298 DE3882298T DE3882298T2 DE 3882298 T2 DE3882298 T2 DE 3882298T2 DE 19883882298 DE19883882298 DE 19883882298 DE 3882298 T DE3882298 T DE 3882298T DE 3882298 T2 DE3882298 T2 DE 3882298T2
Authority
DE
Germany
Prior art keywords
signal
signals
control
data
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19883882298
Other languages
English (en)
Other versions
DE3882298D1 (de
Inventor
T Fox
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DE3882298D1 publication Critical patent/DE3882298D1/de
Application granted granted Critical
Publication of DE3882298T2 publication Critical patent/DE3882298T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/267Microinstruction selection based on results of processing by instruction selection on output of storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

    Hintergrund der Erfindung 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft allgemein das Gebiet digitaler Datenverarbeitungssysteme.
  • 2. Beschreibung des Stands der Technik
  • Ein typisches digitales Datenverarbeitungssystem enthält drei grundlegende Elemente, nämlich ein Prozessorelement, ein Speicherelement und ein Eingangs/Ausgangs-Element. Das Speicherelement speichert Informationen in adressierbaren Speicherstellen. Diese Informationen enthalten sowohl Daten als auch Befehle zum Verarbeiten der Daten. Das Prozessorelement enthält eine oder mehrere digitale Datenverarbeitungseinheiten oder "Prozessoren", von denen jeder verursacht, daß Informationen zu ihm vom Speicherelement aus übertragen oder geholt werden, jeder die ankommenden Informationen als entweder Befehle oder Daten interpretiert und jeder die Daten in Übereinstimmung mit den Befehlen verarbeitet. Die Ergebnisse werden dann in adressierten Stellen im Speicherelement gespeichert.
  • Das Eingangs/Ausgangs-Element kommuniziert auch mit dem Speicherelement, um Informationen in das System hinein zu übertragen und um verarbeitete Daten von ihm zu erhalten. Einheiten, die das Eingangs/Ausgangs-Element aufweisen, arbeiten normalerweise in Übereinstimmung mit Steuerinformationen, die ihm vom Prozessorelement zugeführt werden. Die Steuerinformationen definieren den Betrieb, der von der Eingangs/Ausgangs-Einheit durchgeführt werden soll. Zumindest eine Klasse von Operationen, die von einer Eingangs/Ausgangs-Einheit durchgeführt wird, ist die Übertragung von Anwenderinformationen, d. h. von Informationen, die von einem Anwenderprogramm verwendet werden, zwischen der Eingangs/Ausgangs-Einheit und dem Speicherelement. Typische Einheiten, die ein Eingangs/Ausgangs-Element enthalten, umfassen z. B. Drucker, Fernschreiber, Videoanzeige-Terminals und können auch Sekundär-Informationsspeichereinrichtungen enthalten, wie z. B. Disketten- oder Band-Speichereinheiten.
  • Zusätzlich zu der Funktion als Eingangs/Ausgangs-Einrichtungen können Disketten-Speichereinheiten und manchmal Bandspeicher- Einheiten auch als Teil des Speicherelements dienen. Insbesondere enthält ein Speicherelement typischerweise einen Hauptspeicher, dessen Inhalte für den Prozessor relativ schnell zugreifbar sind, der aber im allgemeinen ein Speicher mit relativ hohen Kosten ist. Moderne Hauptspeicher werden typischerweise unter Verwendung von MOS oder bipolarer Halbleitertechnologie realisiert und können Speicher in der Größenordnung von einem Teil eines Megabyte bis hin zu mehreren zehn Megabyte bereitstellen.
  • Ein Prozessor enthält eine Anzahl von Schaltungen, die eine Schnittstellenschaltung, die es ihm erlaubt, mit anderen Einheiten in dem System zu kommunizieren, eine Datenwegschaltung, in der die Verarbeitung tatsächlich auftritt, und eine Steuerschaltung enthalten, die die Datenwegschaltung und die Schnittstellenschaltung in Antwort auf die Verarbeitung steuert. Ein Prozessor kann auch Schaltungen zum Durchführen von Speicherverwaltungsoperationen, wenn der Prozessor eine virtuelle Adressierung unterstützt, und einen Cache-Speicher enthalten. Die Datenwegschaltung enthält typischerweise einen Satz von Registern für allgemeine Zwecke, einen Satz von Kurzzeitregistern, einen Satz von Arbeitsregistern, von denen alle Daten speichern können, und Arithmetik- und Logik-Schaltungen zum Durchführen von arithmetischen und logischen Operationen mit den Daten.
  • Ein typischer Befehl enthält einen Betriebscode und einen oder mehrere Operandenspezifizierer. Ein Operandenspezifizierer kann die Daten enthalten, sie spezifizieren jedoch im allgemeinen eine Stelle in einem Datenverarbeitungssystem, die die Daten enthält, die verarbeitet werden sollen. Der Operationscode definiert, wie die Daten verarbeitet werden sollen. Ein Operandenspezifizierer kann die Stellen in dem Speicher, die Eingangs/Ausgangs-Einheiten, die Register allgemeinen Zwecks oder andere Prozessorregister außerhalb des Datenwegs identifizieren, wenn sie Daten beinhalten, die verarbeitet werden sollen. Die Kurzzeitregister und Arbeitsregister dürfen nicht in einem Befehl identifiziert werden, aber sie werden unter bestimmten Umständen dazu verwendet, um vorübergehend zu verarbeitende Daten zu speichern, insbesondere, wenn die Daten von außerhalb des Prozessors sind. Zudem erfordert die Ausführung einiger Befehle mehrere Zyklen durch die Arithmetik- und Logikschaltungen, wobei jeder Zyklus Zwischenergebnisse erzeugt, und die Kurzzeitregister können insbesondere dazu verwendet werden, die Zwischenergebnisse zu speichern. Nach dem Verarbeiten werden die verarbeiteten Daten in den Arbeitsregistern gespeichert, bevor sie zu der letztendlichen Speicherstelle gesendet werden, die auch ein Register für allgemeine Zwecke oder der Speicher sein kann.
  • In jedem Verarbeitungszyklus geben die Steuerschaltungen Mikrobefehle zum Steuern der Register und der Arithmetik- und Logischaltungen im Datenweg aus. In einem typischen Mikrobefehl müssen die Steuerschaltungen die Identifikation von drei Stellen bereitstellen, zwei, um die zu verarbeiteten Daten bereitzustellen, und die dritte, um die Daten für die Speicherung zu empfangen. Das Bereitstellen dieser Informationen in den Mikrobefehlen hat deshalb ein Mikrowort-Feld explizit für alle drei Stellen erfordert. Somit sind Verbindungen für alle drei Felder erforderlich, um die Informationen in den Feldern zu den Arbeitsregistern von der Steuerschaltung aus zu übertragen. Darüberhinaus erfordert das Bereitstellen eines Mikrobefehl-Feldes explizit für alle drei Register auch Schaltungen in den Steuerschaltungen zum Erzeugen dieser Felder. In einem Mikroprozessor ist es bevorzugt, die Anzahl der Verbindungen zwischen den Schaltungen zu minimieren, und auch die Anzahl der Schaltungen, die den Mikroprozessor bilden, zu minimieren.
  • Die Arithmetik- und Logikschaltungen führen typischerweise eine ausgewählte Anzahl von relativ einfachen Arithmetik- und Logikoperationen mit Eingangswerten durch, welche die Addition, die Subtraktion, Vergleiche, Durchlassen (wobei ein Wert an einem ausgewählten Eingang zum Ausgang durchgelassen wird), das Komplement (wobei der Wert am ausgewählten Eingang invertiert oder komplementiert wird) usw. enthalten. Unter der Steuerung von Mikrobefehlen können jedoch komplexere Arithmetik- und Logikoperationen, wie z. B. die Multiplikation und die Division, aufgebaut werden, um einen Programmbefehl auszuführen. Eine Multiplikation kann als eine Serie von Additionen, Verschiebungen und Durchlaßoperationen durchgeführt werden, und eine Division kann als eine Serie von Addition, Schiebe- und Subtraktions-Operationen durchgeführt werden, wobei jede Operation durch einen Mikrobefehl freigegeben wird. Ob z. B. bei einer Multiplikation eine Addition oder eine Durchlaß-Operation durchgeführt werden soll, hängt von den Ergebnissen der vorhergehenden Operation ab. In gegenwärtigen Systemen wird das Decodieren jedes Mikrobefehls verzögert, bis die Ergebnisse jeder Operation bestimmt worden sind, was die Zeit, die dafür erforderlich ist, um die Operation durchzuführen, verlängert.
  • Überblick über die Erfindung
  • Die vorliegende Erfindung stellt einen neuen Prozessor zur Verwendung in einem digitalen Datenverarbeitungssystem zur Verfügung.
  • Der Prozessor enthält eine Schaltung, die Steuersignale erzeugt, die die Arithmetik- und Logikeinheit steuern. Wenn in Antwort auf einen Programmbefehl, unterschiedliche Operationen erforderlich sind und eine Auswahl auf der Basis der Ergebnisse einer gegenwärtigen Operation erforderlich ist, erzeugt die Schaltung Steuersignale für alle möglichen Operationen, die beim Durchführen des Programmbefehls erforderlich sind. Die Steuersignale werden zu einem Multiplexer gesendet, der die Steuersignale auswählt, um den Mikroprozessor in Antwort auf die Ergebnisse der vorhergehenden Operation zu steuern. Somit können die Steuersignale vor der Beendigung einer Operation erzeugt werden, was eine relativ lange Operation ist, aber unmittelbar nach der Bestimmung der Ergebnisse der Operation ausgewählt werden, was eine relativ kurze Operation ist.
  • Die Merkmale, die im Oberbegriff des Anspruchs 1 erwähnt sind, wissen wir von Digitalprozessoren aus dem Stand der Technik. Die erteilte Erfindung ist wie in Anspruch 1 gekennzeichnet.
  • Kurzbeschreibung der Zeichnungen
  • Die Erfindung wird im einzelnen in den angehängten Ansprüchen erläutert. Die obenstehenden und weitere Vorteile dieser Erfindung können besser verstanden werden, indem auf die nachfolgende Beschreibung in Verbindung mit den begleitenden Zeichnungen Bezug genommen wird, in denen:
  • Fig. 1A ein allgemeines Blockdiagramm eines digitalen Datenverarbeitungssystems ist, das die Erfindung aufweist, und Fig. 1B ein organisatorisches Blockdiagramm eines Prozessors ist, der in dem System verwendet wird, das in der Fig. 1A dargestellt ist;
  • Fig. 2, die die Fig. 2A bis 2D aufweist, ist ein Timing- Diagramm, das zum Verstehen der Erfindung nützlich ist;
  • Fig. 3A, 3B und 3C sind Blockdiagramme eines Abschnitts eines Prozessors, der in Fig. 1B dargestellt ist, und beziehen sich insbesondere auf die Übertragung von Informationen durch den Datenweg;
  • Fig. 4A ist ein detailliertes Blockdiagramm und die Fig. 4B-1 und 4B-2 sind genauere Schaltungsdiagramme eines Abschnitts des Prozessors, der in Fig. 1 dargestellt ist, die sich insbesondere auf die Umsetzung von virtuellen Adressen in physikalische Adressen beziehen;
  • Fig. 5 ist ein detailliertes Blockdiagramm eines Abschnitts des Prozessors, der in Fig. 1B dargestellt ist, das sich insbesondere auf das Lesen von Daten aus dem Cache-Speicher bezieht; und
  • Fig. 6 ist ein detailliertes Blockdiagramm eines Abschnitts des Prozessors, der in Fig. 1B dargestellt ist, das sich insbesondere auf die Schaltungen zum Steuern der Übertragungen zu weiteren Abschnitten des Systems bezieht.
  • Detaillierte Beschreibung einer erläuternden Ausführungsform Allgemeine Beschreibung
  • Mit Bezug auf die Fig. 1 enthält ein Datenverarbeitungssystem, das die Erfindung enthält, als grundlegende Elemente eine zentrale Verarbeitungseinheit (CPU) 10, einen Speicher 11 und ein oder mehrere Eingangs/Ausgangs-Subsysteme 12 (ein Eingangs/Ausgangs-Subsystem wird in der Fig. 1 gezeigt). Ein Bus 13 verbindet die CPU 10, den Speicher 11 und die Eingangs/Ausgangs-Subsysteme 12 parallel. Die CPU 10 führt Befehle aus, die in adressierbaren Speicherstellen im Speicher 11 gespeichert sind. Die Befehle identifizieren Operationen, die mit Operanden durchgeführt werden sollen, welche auch in adressierbaren Stellen in der Speichereinheit gespeichert sind. Die Befehle und Operanden werden von der CPU 10 geholt, wenn sie benötigt werden, und verarbeitete Daten werden zur Speicherung in den Speicher 11 zurückgegeben. Die CPU 10 sendet auch Steuerinformationen zu den Eingangs/Ausgangs-Subsystemen 12, die sie dazu freigeben, ausgewählte Operationen durchzuführen, wie z. B. das Senden von Daten zum Speicher 11 oder das Lesen von Daten aus dem Speicher 11. Solche Daten können Befehle oder Operanden enthalten, die zum Speicher 11 gesendet werden, oder Paralleldaten, die aus dem Speicher 11 zur Speicherung oder zur Anzeige gelesen werden.
  • Eine Bedienerkonsole 14 dient als Bedienerschnittstelle. Sie erlaubt dem Bediener, Daten zu überprüfen und abzulegen, eine Operation der CPU 10 anzuhalten oder die CPU 10 schrittweise durch eine Sequenz aus Befehlen zu führen und die Antworten der CPU 10 in Antwort darauf zu bestimmen. Sie ermöglicht es dem Bediener auch, das System über eine Hochladeprozedur zu initialisieren, und verschiedene Diagnosetests auf dem gesamten Datenverarbeitungssystem durchzuführen.
  • Das Datenverarbeitungssystem kann verschiedene Typen von Eingangs/Ausgangs-Einheiten 20 enthalten, die Disketten- und Bandmassenspeicher-Einheiten, Fernschreiber, Videoanzeigeterminals, Zeilendrucker, Telephon und Computernetzwerkeinheiten und ähnliches einschließen. Alle diese Einheiten kommunizieren mit dem Bus 13 über einen Einrichtungsbus 21 über einen oder mehrere Controller 22. Ein Controller 22, der Einrichtungsbus 21, mit dem er verbunden ist, und die Eingangs/Ausgangs-Einheiten 22, die mit dem Controller kommunizieren, definieren ein Eingangs/Ausgangs-Subsystem 12.
  • Der Speicher 11 enthält einen Speichercontroller 15, der direkt mit dem Bus 13 und einer Vielzahl von Feldern 17 verbunden ist. Die Felder 17 enthalten eine Vielzahl von adressierbaren Speicherstellen, in denen Informationen gespeichert sind. Der Speichercontroller 15 empfängt Übertragungsnachfragen von der CPU 10 oder von einem Eingangs/Ausgangs-Subsystem 12 über den Bus 13. Verschiedene Typen von Übertragungsnachfragen können über den Bus 13 gesendet werden, die in zwei allgemeine Klassen fallen. In einer Klasse werden Informationen in eine Speicherstelle hineingeschrieben oder in ihr gespeichert, und in der anderen Klasse werden Informationen aus einer Speicherstelle wiedergewonnen oder ausgelesen.
  • Das System, das in Fig. 1 dargestellt ist, enthält auch einen Schreibpuffer 23, der mit dem Bus 13 und dem Speichercontroller 15 verbindet und Schreib-Übertragungsnachfragen abfängt, die an die CPU 10 oder den Speicher 11 gerichtet sind. In diesem System antwortet der Speichercontroller 15 nicht auf Schreibnachfragen, die über den Bus 13 von entweder der CPU 10 oder den Eingangs/Ausgangs-Controller 22 gesendet werden. Insbesondere puffert der Schreibpuffer 11 die Schreibinformationen, die sowohl die Daten, die geschrieben werden sollen, als auch die zugeordneten Adressen enthalten, die die Stellen in den Feldern 17 identifizieren, in die die Daten gespeichert werden sollen. Wenn der Speichercontroller eine Schreiboperation annehmen kann, sendet der Schreibpuffer die Adresse und die zugeordneten Daten über einen internen Bus 24 zum Speichercontroller 15, der damit fort fährt die Felder 17 dafür freizugeben, die Daten in der durch die Adresse identifizierten Stelle zu speichern. Somit, wenn die Übertragungsgeschwindigkeit von Schreib-Daten von der CPU 10 über den Bus 13 zu groß für eine Annahme durch den Speicher 11 wird, kann der Schreibpuffer 23 die Nachfragen puffern, bis der Speicher 11 sie annehmen kann. Der Speichercontroller 15 ist auch direkt mit dem Bus 13 verbunden, um auf Lesenachfragen von der CPU 10 oder dem Eingangs/Ausgangs-Controller 22 zu antworten und um Lesedaten an sie zurückzugeben.
  • Fachleute verstehen es, daß der Schreibpuffer 23 vorteilhafterweise in einem Einzelprozessorsystem, wie es in der Fig. 1 dargestellt ist, verwendet werden kann, daß er aber am vorteilhaftesten in einem Vielprozessorsystem (nicht gezeigt) verwendet werden kann. In einem Vielprozessorsystem empfängt der Speicher 11 Lese- und Schreibnachfragen von einer Anzahl von CPUs und zugeordneten Eingangs/Ausgangs-Subsystemen 12. Um eine Verzögerung der Verarbeitung durch eine CPU 10 zu vermeiden, die darauf wartet, eine Schreiboperation durchzuführen, nimmt der Schreibpuffer 23 die Schreibadresse und Daten, und die CPU 10 kann die Verarbeitung wieder aufnehmen.
  • Der Schreibpuffer enthält weiterhin Schaltungen zum Überwachen von Lesenachfragen über den Bus 13 von der CPU 10. Wenn der Schreibpuffer 23 bestimmt, daß eine Lesenachfrage über den Bus 13 gesendet wurde, die Daten identifiziert, die er puffert und die er noch nicht zum Speicher 11 übertragen hat, sperrt er über seinen internen Bus 24 den Speichercontroller, auf die Nachfrage zu antworten. Statt dessen sendet der Schreibpuffer 23 die nachgefragten Daten über den Bus 13, um die Leseoperation abzuschließen.
  • Das System, das in Fig. 1 dargestellt ist, enthält auch eine Systemsteuerschaltung 25, die unter der Steuerung der CPU 10 Arbitrations-Operationen durchführt, um dadurch den Zugriff der verschiedenen Eingangs/Ausgangs-Subsysteme 12 auf den Bus 13 zu regulieren, wenn mehr als eines im System vorhanden ist.
  • Die CPU 10 enthält einen Prozessor 30 und einen optionalen Gleitkommaprozessor 31. Wie es typisch ist, ist der Gleitkommaprozessor eine Option und muß nicht in einem digitalen Datenverarbeitungssystem oder in einer CPU 10, die in Übereinstimmung mit der Erfindung aufgebaut ist, vorhanden sein. Der Gleitkommaprozessor enthält Schaltungen, die zum Verarbeiten von Befehlen mit ausgewählten Typen von Daten optimiert sind, nämlich von Daten in Gleitkommaformaten. Der Prozessor 30 kann typischerweise die gleichen Daten verarbeiten, aber er benötigt mehr Zeit, um die Verarbeitung durchzuführen. Ein detailliertes Funktions-Blockdiagramm eines Prozessors 30, der in dem System verwendet wird, ist in der Fig. 1B dargestellt. Gemäß Fig. 1B enthält der Prozessor 30 eine Busschnittstellenschaltung 33, die mit verschiedenen Steuerleitungen des Busses 13 (die zusammen durch das Bezugszeichen 13A angegeben werden) verbindet und Signale über verschiedene Leitungen des Busses, wie weiter unten beschrieben wird, sendet und empfängt. Die Busschnittstellenschaltung verbindet auch einen internen IDAL Bus 34, der Signale zu und vom Cache 35 überträgt, einen Datenweg 36, eine Speicherverwaltungseinheit 37 und eine Prozessorsteuerschaltung 40. Eine Busschnittstellenschaltung 33 für eine Ausführungsform des Prozessors 30 wird weiter unten in Verbindung mit der Fig. 6 beschrieben.
  • Eine Anzahl von Registern verbindet auch mit dem internen IDAL Bus 34 und unter der Steuerung der Busschnittstellenschaltung 33 überträgt sie Daten zwischen dem internen IDAL Bus 34 und den DAL Leitungen 50 des Busses 13. Unter der Steuerung der Busschnittstelleneinheit 33 empfangen ein Schreibdatenregister 250 bzw. ein Schreibadreßregister 251 Schreibdaten bzw. die Adresse der Stelle im Speicher 11 oder von Eingangs/Ausgangs- Einheiten 12, in denen die Schreibdaten gespeichert werden sollen. Zu geeigneten Zeitpunkten, wie weiter unten beschrieben wird, gibt die Busschnittstelleneinheit 33 die Inhalte dieser Register dazu frei, über einen Multiplexer 253 auf die DAL Leitungen 50 gesendet zu werden, um eine Schreiboperation durchzuführen. Unter der Steuerung der Busschnittstelleneinheit 33 empfängt ein Leseadreßregister 252 auf ähnliche Art und Weise eine Adresse einer Stelle, die zu lesende Daten enthält. Zu einem gegebenen Zeitpunkt gibt die Busschnittstelleneinrichtung 33 die Inhalte des Leseadreßregisters 252 dazu frei, über den Multiplexer 253 auf die DAL Leitungen 50 ausgekoppelt zu werden, um eine Leseoperation durchzuführen. Die Lesedaten werden in einem Eingangsregister 254 auch unter der Steuerung der Busschnittstelleneinheit 33 zwischengespeichert (latch). Die Busschnittstelleneinheit 33 kann die Inhalte des Eingangsregisters 254 dazu freigeben, als RCV DAT empfangene Datensignale auf den internen IDAL Bus 34 ausgekoppelt zu werden.
  • Die Prozessorsteuerschaltung 40 decodiert Programmbefehle, die aus dem Speicher 11 gelesen werden und gibt in hintereinanderfolgenden Verarbeitungszyklen den Datenweg 36 dazu frei, die Arithmetik- und Logikoperationen durchzuführen, die dafür erforderlich sind, den Befehl auszuführen. Der Datenweg 36 enthält einen Satz aus Registern 255 zum Speichern von Daten, die verarbeitet werden sollen, und Arithmetik- und Logikschaltungen 256 zum Durchführen der Verarbeitung. Der Datenweg 36 wird genauer weiter unten in Verbindung mit den Fig. 3A und 3B beschrieben.
  • Eine Ausführungsform des Prozessors 30 verwendet virtuelle Adressen und stellt Virtuell-Adreß-Umsetzschaltungen 37 zum Umsetzen der virtuellen Adressen in physikalische Adressen zur Verfügung. Die Virtuell-Adreß-Umsetzschaltungen enthalten einen Satz aus Quellenregistern 257, die die virtuellen Adressen von anderen Schaltungen im Prozessor 30 empfangen, und zwar vornehmlich vom Datenweg 36, und einen Umsetzpuffer 260, der gewisse Umsetzinformationen enthält. Umsetzungen werden notwendigerweise unter Steuerung der Prozessorsteuerschaltung 40 durchgeführt. Physikalische Adressen werden von den Umsetzschaltungen 37 auf den internen IDAL Bus 34 durch einen Multiplexer 261 ausgekoppelt. Der Datenweg 36 kann auch physikalische Adressen enthalten und stellt einen zweiten Quelleneingang für den Multiplexer 261 bereit. Die Prozessorsteuerschaltung 40 steuert den Multiplexer 261.
  • Der Cache-Speicher 35 ist eine herkömmliche Informationsspeicherschaltung in einer CPU 10. Die Cache-Speicher werden in K. Hwang und F. Briggs, Computer Architectur And Parallel Processing (McGraw-Hill, 1984), Kapitel 2.4, Seiten 98 und folgende und in V. Hamacher, Computer Organiszation (McGraw-Hill, 1984), Kapitel 8.6, Seite 306 und folgende beschrieben. Der Cache- Speicher 35 enthält einen Datenspeicherbereich 38, der eine Vielzahl von Speicherstellen enthält. Der Datenspeicherbereich 38 ist in Blöcken organisiert, wobei jeder Block zwei Speicherstellen enthält. Jede Speicherstelle speichert ein Wort an Information, d. h. die Menge an Information, die über den Bus 13 gleichzeitig übertragen werden kann. In einer spezifischen Ausführungsform entspricht ein Informationswort vier Byte oder zweiunddreißig binären Stellen von Information. Somit kann jeder Block acht Byte an Information speichern.
  • Wie weiter unten genauer in Verbindung mit der Fig. 5 beschrieben wird, enthält der Cache-Speicher 35 Treffer(hit)/Fehler(miss)-Logikschaltungen 262, die bestimmen, ob eine physikalische Adresse, die durch die Virtuell-Adreß-Umsetzschaltungen erzeugt wird, einer Adresse im Cache-Speicher 35 entspricht. Der Abschnitt niedriger Ordnung der virtuellen Adresse von den Quellenregistern 257, in einer Ausführungsform die VA SRCE (8 : 3) Signale, wird über einen Multiplexer 264 gekoppelt, um einen Block im Datenspeicherbereich und den zugeordneten Kennzeicheneintrag 41 auszuwählen. Die Treffer/Fehler- Logikschaltungen 262 bestimmen dann, ob die Inhalte des zugeordneten Kennzeicheneintrags 41 der umgesetzten physikalischen Adresse entspricht. Wenn eine solche Entsprechung vorliegt, erzeugt die Treffer/Fehler-Logik ein ausgegebenes HIT Signal, das zu der Busschnittstelleneinheit 33 gesendet wird. Wenn die Busschnittstelleneinheit 33 kein ausgegebenes HIT Signal empfängt, gibt sie auf herkömmliche Art und Weise eine Operation über den Bus 13 dafür frei, die Inhalte der adressierten Stelle zu lesen. Wenn das HIT Signal ausgegeben ist, gibt die Busschnittstelleneinheit 33 die Operation über den Bus 13 nicht frei, sondern erlaubt den Daten vom Cache-Datenspeicherbereich 38 über einen Multiplexer 263 über den internen IDAL Bus 34 gesendet zu werden. Im allgemeinen werden solche Daten zum Datenweg 36 gesendet.
  • Wie es von Fachleuten verstanden wird, sind die Informationen, die in einem Block im Cache-Speicher 35 gespeichert sind, wenn sie von der Speichereinheit 11 empfangen werden, eine Kopie der Informationen, die in der Speichereinheit 11 gespeichert sind. Jeder Block im Cache-Speicher 35 hat ein zugeordnetes Kennzeichen 41, dessen Inhalte durch die Busschnittstellenschaltung 36 eingerichtet werden, um die Stellen in der Speichereinheit 11 zu identifizieren, von denen die Informationen kopiert wurden. Zudem enthält jeder Block ein Alt-Zeichen 42, das von der Busschnittstellenschaltung zurückgesetzt oder gelöscht wird, um anzuzeigen, ob die Inhalte des Blocks tatsächlich Kopien der Stellen sind, die von dem Kennzeichen identifiziert werden, d. h. ob die Inhalte des Blocks alt sind.
  • In einer Ausführungsform des Cache-Speichers 35 sind der Datenspeicherbereich 38, die Kennzeichen 41 und die Zeichen 42 dynamische Speicher. Ein Auffrischzähler 262 unter Steuerung der Busschnittstelleneinheit 33 erzeugt Auffrischadressen, die über den Multiplexer 264 gekoppelt werden, um die dynamischen Speicher aufzufrischen.
  • Ein Befehl kann einen oder mehrere Operandenspezifizierer enthalten, die die Stelle des Operanden in den Registern in dem Datenweg 36 identifizieren oder die eine Adresse identifizieren, die die Stelle des Operanden in dem virtuellen Adreßraum identifizieren. Vergleiche z. B. das US-Patent 4,236,206 für eine zentrale Verarbeitungseinheit zum Ausführen von Befehlen mit variabler Länge, ausgegeben an W. D. Strecker, usw. am 25. November 1980. Die Prozessorsteuerschaltung 40 decodiert in Verbindung mit dem Datenweg jeden Operandenspezifizierer, um die Stellen der Operanden zu identifizieren, und fährt dann damit fort, sie aus den identifizierten Stellen zu erhalten. Ein Operandenspezifizierer kann selbst den Operanden enthalten (d. h. der Operandenspezifizierer kann "literal" sein) oder der Operandenspezifizierer kann eines der Datenweg-Register (nicht gezeigt), wenn es den Operanden enthält, identifizieren.
  • Alternativerweise kann der Operand in einer Stelle in dem virtuellen Speicherplatz des Programms sein, und der Operandenspezifizierer kann angeben, wie diese Stelle zu bestimmen ist. Wenn der Operand im virtuellen Speicherraum ist, gibt die Steuerschaltung 40 die Speicherverwaltungsschaltung 37 dazu frei, die virtuelle Adresse in die physikalische Adresse umzusetzen. Nachdem die physikalische Adresse des Operanden erhalten wurde, erhält die Busschnittstelle 33 den Operanden. Zuerst bestimmt sie, ob der Operand im Cache-Speicher 35 ist. Wenn der Operand im Cache-Speicher ist, sendet die Busschnittstelle den Operanden zum Datenweg 36. Andererseits, wenn der Operand nicht im Cache-Speicher 35 ist, sendet die Busschnittstellenschaltung 33 eine Lesenachfrage über den Bus 13 zum Speicher 11, um den Operanden zu lesen. Nachdem alle Operanden erhalten worden sind, kann der Datenweg 36 die Operation, die der Befehl erfordert, durchführen.
  • Der Operandenspezifizierer kann auch die Stelle identifizieren, in die die verarbeiteten Daten gespeichert werden sollen. Die Steuerschaltung 40 und die Speicherverwaltungsschaltung 37 werden auf die gleiche Art und Weise, wie oben beschrieben wurde, verwendet, um die physikalische Adresse zu bestimmen. Wenn die verarbeiteten Daten im Speicher 11 gespeichert werden sollen, führt die Busschnittstelle 33 die erforderliche Schreiboperation über den Bus 13 aus. Zudem, wenn die physikalische Adresse einem geeigneten Kennzeichen im Cache 35 entspricht, gibt die Busschnittstelle 33 die Daten dazu frei, im Cache 35 gespeichert zu werden.
  • Die Busschnittstelleneinheit 33 enthält eine Zustandsmaschine 270, die die Übertragung von Daten über den Bus 13 steuert, und eine IDAL Zustandsmaschine 271, die die Übertragung von Daten über den internen IDAL Bus 34 steuert. Die Busschnittstelleneinheit steuert auch die FPP Logikschaltung 272, die wiederum die Kommunikationen mit dem Gleitkommaprozessor 31 steuert. Die Busschnittstelleneinheit 33 wird genauer weiter unten in Verbindung mit der Fig. 6 beschrieben.
  • Operationen über den Bus 13
  • Der Bus 13 enthält eine Anzahl von Leitungen zum Übertragen von Signalen, die Informationen für die verschiedenen Einheiten, die mit ihm verbunden sind, darstellen. Insbesondere enthält der Bus 13 DAL (31 : 0) Datenadreßleitungen 50, die DAT Daten und ADRS Adreßsignale übertragen. Wenn die CPU 10, genauer der Prozessor 30, eine Übertragung initiiert, indem er den Busmaster für die Übertragung macht, sendet der Prozessor 30 zuerst die ADRS Adreßsignale über die DAL (31 : 0) Datenadreßleitungen 50 und sendet gleichzeitig TR Type (2 : 0) Übertragungstyp-Befehlssignale auf den Leitungen 52, die angeben, ob die Übertragungsoperation eine Lese- oder eine Schreiboperation ist. Eine kurze Zeit später, die ausreicht, den ADRS Adreßsignalen und den TR TYPE (2 : 0) Übertragungstyp-Befehlssignalen zu erlauben, abzuklingen, gibt der Prozessor 30 dann ein ADRS STR Adreßabtastsignal auf einer Leitung 51 aus.
  • Wenn das ADRS STR Adreßabtastsignal ausgegeben wird, empfangen und decodieren alle anderen Einheiten, die mit dem Bus 13 verbunden sind, die ADRS Adreß- und TR TYPE (2 : 0) Übertragungstyp- Befehls-Signale, wobei die Einheit, die die Stelle enthält, welche durch die ADRS Adreßsignale identifiziert wird, die Antworteinheit oder der Slave für die Übertragung ist. Wenn die Übertragungsoperation eine Schreiboperation ist und die ADRS Adreßsignale eine Stelle in dem Speicher 11 identifizieren, ist der Schreibpuffer 23 die Slave-Einheit. Eine ausgewählte Zeit später, nachdem der Prozessor 30 das ADRS STR Adreßabtastsignal ausgegeben hat, entfernt er die ADRS Adreßsignale und die TR TYPE (2 : 0) Übertragungstyp-Befehlssignale von den jeweiligen Leitungen.
  • Wenn die gesendeten TR TYPE (2 : 0) Übertragungstyp-Befehlssignale eine Schreiboperation definieren, dann sendet die Master- Einheit Datensignale über die Leitungen 50 und gibt dann ein DATA STR Datenabtastsignal auf eine Leitung 53 aus. Die Slave- Einheit empfängt und speichert dann die gesendeten Daten. Wenn die Daten gespeichert worden sind, dann gibt die adressierte Einheit ein RDY Bereitsignal auf eine Leitung 54 aus, wenn die Operation ohne Fehler beendet wurde, oder ein ERR Fehlersignal auf eine Leitung 55 aus, wenn ein Fehler während der Speicheroperation aufgetreten ist.
  • Wenn andererseits die gesendeten TR TYPE (2 : 0) Übertragungstyp- Befehlssignale eine Leseoperation definieren, liest die Slave- Einheit die Daten aus der Stelle, die durch die Adreßsignale identifiziert wird, sendet sie über die DAL (31 : 0) Datenadreßleitungen 50 und sendet ein ausgegebenes RDY Bereitsignal über die Leitung 54. In Antwort darauf empfängt der Prozessor 30 die Daten und sendet ein ausgegebenes DATA STR Datenabtastsignal über die Leitung 53.
  • Bei einer Lese-Operation oder einer Schreib-Operation, nachdem der Slave das RDY Bereitsignal oder das ERR Fehlersignal ausgegeben hat, wenn ein Fehler während der Übertragung aufgetreten ist, negiert der Prozessor 30 das DATA STR Datenabtastsignal. Die Slave-Einheit negiert dann das RDY Bereit- oder das ERR Fehlersignal, und der Prozessor 30 negiert dann das ADRS STR Adreßabtastsignal, um die Übertragung zu vervollständigen.
  • Einheiten, die mit dem Bus 13 verbunden sind, und zwar andere als der Prozessor 30, können den Busmaster bilden und können Übertragungen mit dem Speicher 11 über ihn initiieren. Das Eingangs/Ausgangs-Subsystem 12 und insbesondere ihre Eingang/Ausgangs-Controller 22 können Busmaster werden. Um Busmaster zu werden, gibt der Eingangs/Ausgangs-Controller 22 ein DMR Direktspeichernachfragesignal über eine Leitung 56 aus. Der Prozessor 30 gibt dann ein DMG Direktspeichergewährungssignal auf einer Leitung 57 aus, das durch den Eingangs/Ausgangs-Controller 22 empfangen wird. Zu diesem Zeitpunkt initiiert der Eingangs/Ausgangs-Controller eine Übertragung mit dem Speicher auf gleiche Art und Weise, wie obenstehend in Verbindung mit dem Prozessor 30 beschrieben wurde. Der Eingangs/Ausgangs-Controller hält das DMR Direktspeichernachfragesignal ausgegeben aufrecht, bis er die Übertragung abgeschlossen hat. Somit, wenn der Eingangs/Ausgangs-Controller mehrere Übertragungen benötigt, kann er das DMR Direktspeichernachfragesignal ausgegeben beibehalten, bis er die Übertragungen abgeschlossen hat. Während das DMR Direktspeichernachfragesignal ausgegeben ist, ist der Prozessor 30 in einem Stillstands-Zustand, d. h. er überwacht die Signale auf den verschiedenen Leitungen des Busses 13, aber ansonsten führt er keine Befehle aus.
  • Wenn das System mehrere Eingangs/Ausgangs-Subsysteme 12 enthält, werden separate Nachfragesignale von den Eingangs/Ausgangs-Controllern 22, um Busmaster zu werden, zu dem System-Controller gesendet, der das DMR Direktspeichernachfragesignal ausgibt und den Zustand des DMG Direktspeichergewährungssignals überwacht. Wenn der Prozessor 30 das DMG Direktspeichergewährungssignal ausgibt, gibt der System-Controller einen der Eingangs/Ausgangs-Controller 22 dazu frei, Busmaster gemäß einem Prioritäts-Arbitrationsschema zu werden.
  • Der Bus 13 hat auch eine Anzahl weiterer Leitungen, die Status- und Steuersignale übertragen. Eine Leitung 60 überträgt CLK Taktsignale, die dazu verwendet werden, Operationen in dem System zu synchronisieren. Die verschiedenen Signale auf dem Bus 13 werden in Antwort auf die CLK Taktsignale zeitgesteuert.
  • Eine Leitung 61 überträgt ein CCTL Cache-Steuersignal, das zwei Funktionen hat. Wie in der mitanhängigen US-Patent-Anmeldung Seriennummer 908,825 beschrieben wird, die am 12. September 1986 im Namen von Paul Rubinfeld für ein Cache-Ungültigkeitsprotokoll für ein digitales Datenverarbeitungssystem eingereicht wurde, wird das CCTL Cache-Steuersignal von z. B. einem Eingangs/Ausgangs-Controller 22 ausgegeben, wenn er der Busmaster ist und eine Schreiboperation in den Speicher 11 hinein durchgeführt wird. Der Eingangs/Ausgangs-Controller 22 gibt das CCTL Signal aus, während er die ADRS Adreßsignale auf den DAL Datenadreßleitungen 50, TR TYPE Übertragungstypsignale auf die Leitungen 52 und das ADRS STR Adreßabtastsignal auf der Leitung 51 ausgibt. Wenn das CCTL Cache-Steuersignal ausgegeben ist und die TR TYPE Übertragungstypsignale eine Schreiboperation in den Speicher 11 hinein angeben, überprüft die Busschnittstelle 33 die Inhalte der Kennzeichen 41 aller Cache-Einträge. Wenn die ADRS Signale auf den DAL Datenadreßleitungen 55 des Busses 13 den Inhalten eines Kennzeichen 41 entsprechen, setzt die Busschnittstelle 33 das S Alt-Zeichen 42 für diesen Cache-Block zurück.
  • Das CCTL Cache-Steuersignal wird auch vom Speicher 11 ausgegeben, um den Prozessor 30 daran zu hindern, Daten in den Cache 35 zu speichern, die während einer Leseoperation nachgefragt wurden. Das kann z. B. da verwendet werden, wo der Speicher 13 ein Vielanschluß-Speicher ist, d. h. wenn er von mehreren Prozessoren geteilt wird, wobei jeder Prozessor auf den Speicher 11 über einen separaten Bus zugreifen kann und wobei die Daten, die gelesen werden, von einem Satz von adressierbaren Speicherstellen sind, die für alle Prozessoren verfügbar sind. Es ist nicht erwünscht, solche Daten im Cache 35 gespeichert zu haben, da ein anderer Prozessor die Inhalte der aufgeteilten Stellen aktualisieren kann, und, da diese Aktualisierungen nicht über den Bus 13 stattfinden, können sie nicht von dem Prozessor 30 festgestellt werden. Wenn der Prozessor 30 diese Daten vom Cache verwendet hat, können sie den Inhalten der geeigneten Stellen im Speicher nicht entsprechen. In Verbindung mit dieser Verwendung des CCTL Cache-Steuersignals gibt der Speicher 11 das CCTL Cache-Steuersignal gleichzeitig mit seiner Übertragung der Daten über die DAL Datenadreßleitungen 50 aus und erhält das CCTL Cache-Steuersignal ausgegeben aufrecht, bis er die Daten entfernt.
  • Der Bus 13 enthält auch eine Leitung 62, die ein CLR WRT BUF Löschen-Schreibpuffersignal überträgt. Das CLR WRT BUF Löschen- Schreibpuffersignal wird von dem Prozessor 30 in Antwort auf gewisse Bedingungen ausgegeben, die intern im Prozessor 30 sind und die ansonsten außerhalb des Prozessors 30 nicht detektierbar sein wurden. Z.B. gibt der Prozessor 30 das CLR WRT BUF Löschen-Schreibpuffersignal aus, wenn er einen Befehl ausführt, der ihn dazu veranlaßt, Verarbeitungskontexte zu schalten, oder wenn er damit anfängt, eine Interrupt Service Routine oder eine Ausnahmeroutine auszuführen. Das CLR WRT BUF Löschen-Schreibpuffersignal wird von einem Feld in Mikrobefehlen gesteuert, die von einer Prozessorsteuerschaltung 40 erzeugt werden, während diese Befehle ausgeführt werden.
  • Wenn das CLR WRT BUF Löschen-Schreibpuffersignal ausgegeben ist, bestimmt der Schreibpuffer 23, ob er Daten enthält, die im Speicher 11 gespeichert werden sollen. Wenn er dies nicht tut, tut er nichts. Jedoch, wenn der Schreibpuffer 23 Daten, die im Speicher 11 gespeichert werden sollen, enthält, gibt er das DMR Direktspeichernachfragesignal aus und fährt damit fort, zu versuchen, seine übrigen Daten in dem Speicher 11 zu speichern. In Antwort auf das ausgegebene DMR Direktspeichernachfragesignal, gibt der Prozessor das DMG Direktspeichergewährungssignal aus, das von dem Schreibpuffer 23 ignoriert wird, und er geht in den Stillstand über. Der Schreibpuffer 23 erhält das DMR Direktspeichernachfragesignal im ausgegebenen Zustand aufrecht, bis alle Daten, die er enthält, sorgfältig im Speicher 11 gespeichert worden sind. Wenn kein Fehler im Speicher auftritt, negiert der Schreibpuffer 23 dann das DMR Direktspeichernachfragesignal, wodurch dem Prozessor 30 erlaubt wird, fortzufahren.
  • Wenn ein Fehler während eines Schreibvorgangs in den Speicher 11 hinein auftritt, signalisiert der Schreibpuffer 23 einen Fehler an den Prozessor, was dem Prozessor 30 erlaubt, Routinen zu verarbeiten, um den Fehler innerhalb des gegenwärtigen Kontexts zu lokalisieren und zu korrigieren. Dies vereinfacht erheblich die Fehlerbehebung. Wenn dem Prozessor erlaubt wird, Kontexte zu schalten, bevor ein Fehler detektiert wird, würde es schwierig sein, den Kontext zu bestimmen, der anfänglich die Daten erzeugt hat. Die Fehlerbehebung wird vereinfacht, wenn der Kontext identifiziert werden kann, und so verhindert der Schreibpuffer 23, daß der Prozessor Kontexte schaltet, bis alle Daten vom gegenwärtigen Kontext sorgfältig im Speicher 11 abgespeichert worden sind.
  • Übertragungen mit dem Gleitkommaprozessor 31
  • Der Prozessor 30 ist auch mit dem Gleitkommaprozessor 31 verbunden, um (1) die Operationscodes von Gleitkommabefehlen zu dem Gleitkommaprozessor 31 zu übertragen, um die Operation anzugeben, die durchgeführt werden soll, wie weiter unten in Verbindung mit der Fig. 2A beschrieben wird, um (2) Operandendaten dafür freizugeben, daß sie zu dem Gleitkommaprozessor 31 zum Verarbeiten übertragen werden, wie es in Verbindung mit den Fig. 2B und 2C beschrieben wurde, und um (3) verarbeitete Daten vom Gleitkommaprozessor 31 zu erhalten, wie in Verbindung mit Fig. 2D beschrieben wurde. Der Prozessor 30 und der Gleitkommaprozessor 31 werden durch zwei Sätze von Leitungen 70 und 71 miteinander verbunden, wobei die Leitungen 70 CP STA (1 : 0) Gleitkommastatussignale übertragen und wobei die Leitungen 71 CP DAT (5 : 0) Gleitkommadatensignale übertragen. Der Gleitkommaprozessor 31 ist auch mit mehreren Leitungen des Busses 13 verbunden, einschließlich den DAL Datenadreßleitungen 50, einer Leitung 60 zum Empfangen von CLK Signalen, einer Leitung 51 zum Empfangen des ADRS STR Adreßabtastsignals, einer Leitung 54 zum Empfangen des RDY Bereitsignals, einer Leitung 55 zum Empfangen des ERR Fehlersignals und einer Leitung 57 zum Empfangen des DMG Direktspeichergewährungssignals. Die CP STA (1 : 0) Gleitkommastatussignale und die CP DAT (5 : 0) Gleitkommadatensignale werden synchron mit den CLK Signalen auf der Leitung 60 gesendet.
  • Wenn er im Wartezustand ist, tastet der Gleitkommaprozessor 31 wiederholt synchron mit dem CLK Signal auf der Leitung 60 die Zustände der Signale auf den Leitungen 70 und 71 ab. Wenn zumindest eine der Leitungen 71 ein ausgegebenes Niveau-Signal überträgt, speichert der Gleitkommaprozessor 31 die Signale auf diesen Leitungen und die Signale auf den Leitungen 70 zwischen. Gemäß der Fig. 2A, wenn der Prozessor 30 einen Befehl an den Gleitkommaprozessor 31 sendet, sendet er zumindest einen Abschnitt des Betriebscodes des Befehls zu dem Gleitkommaprozessor 31 als CP DAT (5 : 0) Gleitkommadatensignale über Leitungen 71 während eines Intervalls, das durch eine ausgewählte Anzahl von Marken des CLK Taktsignals definiert ist. Während des Intervalls zwischenspeichert und speichert der Gleitkommaprozessor 31 die Signale in Synchronismus mit einer der Marken des CLK Signals. Am Ende des Intervalls entfernt der Prozessor 30 die Signale von den Leitungen 70 und 71.
  • Die CP DAT (5 : 0) Gleitkommadatensignale, die über die Leitungen 71 gesendet werden, sind dafür ausreichend, eine Gleitkomma- Arithmetikoperation, die durchgeführt werden soll, zu identifizieren, und identifizieren auch die Anzahl von Operanden, die bei der Operation verwendet werden sollen. Gleichzeitig mit dem Senden der Operationsinformationen über die Leitungen 71 werden andere Informationen als CP STA (1 : 0) Gleitkommastatussignale über Leitungen 70 gesendet, die weitere Informationen liefern, welche sich auf Gleitkommaverarbeitung beziehen. Insbesondere können die Gleitkommaoperanden in einer Anzahl von Formaten codiert werden, die als Datentypen bezeichnet werden, und Informationen bezüglich des Formats der Operanden werden als CP STA (1 : 0) Gleitkommastatussignale über die Leitungen 70 gesendet. In einer Ausführungsform werden einige der Informationen bezüglich dem Format der Operanden auch über die Leitungen 71 zusammen mit den Operationsinformationen gesendet.
  • Nach Empfangen des Operationscodes decodiert ihn der Gleitkommaprozessor 31, um die Operation, die durchgeführt werden soll, und die Anzahl der Operanden zu bestimmen, die erforderlich sind. Der Prozessor 30 (in Antwort auf das Senden des Operationscode) und der Gleitkommaprozessor 31 (in Antwort auf das Empfangen des Operationscodes) gehen dann in einen Zustand über, in dem die Operanden über die DAL Datenadreßleitungen 50 übertragen werden. Die Datentyp-Informationen werden dazu verwendet, für den Gleitkommaprozessor 31 das Format jedes der Operanden zu identifizieren. In Verbindung mit einigen Operandenformaten sind mehr Bits in einigen Operandenformaten erforderlich, als durch eine einzelne Übertragung über die DAL Datenadreßleitungen 50 untergebracht werden können, und somit sind mehrere Übertragungen erforderlich, um einen einzelnen Operanden zu übertragen. Die Datentyp-Information gibt somit auch die Anzahl der Übertragungen über die DAL Datenadreßleitungen 50 an, die dafür erforderlich sind, jeden Operanden zu übertragen.
  • Ein Operand kann in einer von drei Quellen gespeichert werden, nämlich im Speicher 11 (Fig. 1), im Cache 35 oder in den Registern (gezeigt in Fig. 3A) des Prozessors im Datenweg 36. Die unterschiedlichen Operanden, die für eine einzelne Operation erforderlich sind, können auch in einer der drei Quellen gespeichert werden. Wenn mehrere Übertragungen über DAL Datenadreßleitungen 50 erforderlich sind, um einen einzelnen Operanden zu übertragen, finden jedoch normalerweise alle Übertragungen mit Bezug auf eine einzelne Quelle statt. Fig. 2B zeigt die Zustände der Signale, die gesendet werden, um einen Operanden vom Speicher auszulesen, und Fig. 2C zeigt die Signale, die gesendet werden, um einen Operanden vom Cache 35 oder von den Registern im Datenweg 36 zu übertragen. Insbesondere zeigen die Fig. 2B und 2C die Zustände der Signale, um eine einzelne Übertragung über DAL Datenadreßleitungen 50 zu bewirken, und es sollte erkannt werden, daß mehrere Übertragungen für einen einzelnen Operanden erforderlich sein können.
  • Gemäß Fig. 2B, wenn ein Operand im Speicher 11 ist, initiiert der Prozessor 30 dessen Auslesen aus dem Speicher 11. Insbesondere führt der Prozessor 30 eine Leseoperation durch, wie oben beschrieben wurde, indem er die ADRS Adreßsignale auf den DAL Datenadreßleitungen 50 einrichtet und das ADRS STR Adreßabtastsignal ausgibt. Kurz danach richtet der Prozessor 30 die CP STA (1 : 0) Gleitkommastatussignale auf den Leitungen 70 ein, die den binären Wert Null haben, d. h. er negiert beide CP STA (1 : 0) Gleitkommastatussignale. Zudem sendet der Prozessor 30 CP DAT (5 : 0) Gleitkommadatensignale auf den Leitungen 71, in denen die CP DAT (5 : 4) Gleitkommadatensignale einen Adreßausrichtcode enthalten, der angibt, wieviele der Daten, die über die DAL Datenadreßleitungen 50 gesendet werden, im Operanden verwendet werden sollen. Das CP DAT (0) Gleitkommadatensignal wird ausgegeben, wenn der Operand ein kurzer Literal auf den DAL (5 : 0) Datenadreßleitungen ist, und ansonsten wird das CP DAT (1) Gleitkommadatensignal ausgegeben.
  • Da der Gleitkommaprozessor 31 bereits die Operationsinformationen in der Prozedur, die obenstehend in Verbindung mit der Fig. 2A beschrieben wurde, empfangen hat, ist er in einem Zustand, einen Operanden zu empfangen. Das ausgegebene CP DAT (5 : 0) Gleitkommadatensignal gibt dem Gleitkommaprozessor 31 an, daß er die Signale auf ausgewählten Leitungen des Busses 13 abtasten soll, und zwar insbesondere die Leitung 51, die das ADRS STR Adreßabtastsignal überträgt. Der Gleitkommaprozessor 31 verwendet den ausgegebenen Zustand des ADRS STR Adreßabtastsignals dazu, zu bestimmen, daß der Operand von dem Speicher 11 ausgelesen wurde. Wenn das ADRS STR Adreßabtastsignal ausgegeben ist und wenn er das ausgegebene CP DAT (5 : 0) Gleitkommadatensignal empfängt, speichert der Gleitkommaprozessor 31 die Datensignale auf den DAL Datenadreßleitungen 50 in Antwort auf die Ausgabe des RDY Bereitsignals durch den Speicher 11 auf der Leitung 54 zwischen. Der Prozessor 30 antwortet mit dem DATA STR Datenabtastsignal, um die Übertragung abzuschließen.
  • Es ist verständlich, daß, wenn der Speicher 11 auf eine Lesenachfrage mit einem ausgegebenen ERR Fehlersignal anstatt mit einem ausgegebenen RDY Bereitsignal antwortet, der Gleitkommaprozessor 31 die auf den DAL Datenadreßleitungen 50 gesendeten Datensignale nicht zwischenspeichert. Der Prozessor 30 führt alle erforderlichen Fehlerbehebungsoperationen durch, wie z. B. wiederholte Versuche, die erforderlich sein können, und wiederholt die Operation, die in der Fig. 2B dargestellt ist.
  • Fig. 2C stellt ein Timing-Diagramm dar, das nützlich zum Verstehen der Übertragung eines Operanden vom Prozessor 30 zu dem Gleitkommaprozessor 31 ist, unabhängig davon, ob der Operand im Cache 35 oder in einem Register im Datenweg 36 ist (weiter unten in Verbindung mit Fig. 3A beschrieben). In jedem Fall richtet der Prozessor Datensignale auf den DAL Datenadreßleitungen 50 und CP DAT (5 : 0) Gleitkommadatensignale ein, die die gleiche Codierung haben, wie zuvor in Verbindung mit der Fig. 2B beschrieben wurde, und negiert beide CP STA (1 : 0) Gleitkommastatussignale. Diese Signale werden vom Prozessor 30 für eine ausgewählte Anzahl von Marken des CLK Taktsignals aufrecht erhalten. Während dieses Intervalls speichert der Gleitkommaprozessor 31 die Signale auf den DAL Datenadreßleitungen 50. Wenn mehrere Übertragungen über die DAL Datenadreßleitungen 50 erforderlich sind, um einen gesamten Operanden zu übertragen, wird die Sequenz, die in Fig. 2C dargestellt ist, wiederholt.
  • Wenn der Datentyp eines Operanden derart ist, daß mehrere Übertragungen über die DAL Datenadreßleitungen 50 erforderlich sind, um den gesamten Operanden zu übertragen, wiederholen der Prozessor 30, der Speicher 11 und der Gleitkommaprozessor 31 die Operationen, die in den Fig. 2B und 2C dargestellt sind, bis der gesamte Operand übertragen ist.
  • Es ist verständlich, daß die Sequenz von Operationen, die in Fig. 2B dargestellt ist, ähnlich der Sequenz von Operationen ist, die in Fig. 2C dargestellt ist, mit den folgenden Unterschieden. Wenn das ADRS STR Adreßabtastsignal auf der Leitung 51 ausgegeben wird und wenn das CP DAT (5 : 0) Gleitkommadatensignal ausgegeben ist, verwendet der Gleitkommaprozessor 31 das ausgegebene RDY Bereitsignal als eine Anzeige dafür, daß der Operand (oder ein Abschnitt des Operanden) dann auf den DAL Datenadreßleitungen 50 ist. Wenn jedoch das ADRS STR Adreßabtastsignal nicht ausgegeben ist, wenn das CP DAT (5 : 0) Gleitkommadatensignal ausgegeben ist, verwendet der Gleitkommaprozessor 31 die Ausgabe des CP DAT (5 : 0) Gleitkommadatensignals als eine Anzeige dafür, daß der Operand (oder ein Abschnitt des Operanden) dann auf den DAL Datenadreßleitungen 50 ist. In beiden Fällen speichert der Gleitkommaprozessor 31 die Signale auf den DAL Datenadreßleitungen in Synchronismus mit dem CLK Taktsignal auf der Leitung 60 zwischen, und zwar im ersten Fall nach dem Empfangen des RDY Bereitsignals und im zweiten Fall nach dem Empfangen eines CP DAT (5 : 0) Gleitkommadatensignals, das ausgegeben ist.
  • Nachdem die Operanden übertragen wurden, gehen der Prozessor 30 und der Gleitkommaprozessor 31 in einen Zustand über, in dem der Prozessor 30 dafür bereit ist, die Ergebnisse zu empfangen, wenn der Gleitkommaprozessor 31 dazu bereit ist, sie zu senden. Die Fig. 2D zeigt ein Timing-Diagramm, das die Details der Sequenz von Operationen darstellt, die vom Prozessor 30 und vom Gleitkommaprozessor 31 verwendet werden, um die verarbeiteten Daten zu dem Prozessor 30 zu übertragen. Die verarbeiteten Daten weisen sowohl die Zustandscodes auf, die anzeigen, ob das Ergebnis eine negative Zahl oder eine Null war, und weitere, ausgewählte Tatsachen, die das Ergebnis betreffen, und ferner Datensignale, die den Wert der Berechnung wiedergeben, die von dem Gleitkommaprozessor 31 durchgeführt wurde.
  • Gemäß Fig. 2D sendet der Prozessor 30 anfänglich einen Signalcode über die Leitungen 70 und 71, der angibt, daß er dazu bereit ist, die verarbeiteten Daten zu empfangen. In einer Ausführungsform werden die CP STA (1 : 0) Gleitkommastatussignale beide negiert und das CP DAT (3) Gleitkommadatensignal wird ausgegeben, wobei die anderen negiert werden. Danach kann der Gleitkommaprozessor 31 über die Leitungen 70 und 71 senden.
  • Wenn der Gleitkommaprozessor 31 dazu bereit ist, die verarbeiteten Daten zu übertragen, sendet er CP STA (1 : 0) Gleitkommastatussignale, die einen Code für diesen Effekt wiedergeben, und zwar gleichzeitig mit CP DAT (5 : 0) Gleitkommadatensignalen, die die Zustandscodes wiedergeben. Der Gleitkommaprozessor 31 hält diese Signale für eine ausgewählte Anzahl von Marken des CLK Taktsignals aufrecht, und richtet dann die Datensignale auf den DAL Datenadreßleitungen 50 zusammen mit einem Code auf den Leitungen 70 und 71 für diesen Effekt ein. Bei mehreren Transfers über die DAL Datenadreßleitung 50, um die verarbeiteten Datensignale zu übertragen, überträgt sie der Gleitkommaprozessor 31 synchron mit dem CLK Taktsignal.
  • Während der Gleitkommaprozessor 31 Operanden verarbeitet und bevor er die Ergebnisse zum Prozessor 30 sendet, kann der Prozessor 30 das DMG Direktspeichergewährungssignal ausgeben, um dem Eingangs/Ausgangs-Subsystem 12 zu erlauben, in eine Übertragung mit dem Speicher 11 einzugreifen. Der Gleitkommaprozessor 31 überwacht den Zustand der Leitung 57, nachdem der Prozessor 30 angezeigt hat, daß er dazu bereit ist, die verarbeiteten Daten zu empfangen. Wenn das DMG Direktspeichergewährungssignal auf der Leitung 57 ausgegeben ist und wenn der Gleitkommprozessor 31 dazu bereit ist, die verarbeiteten Daten zurückzugeben, verzögert der Gleitkommaprozessor 31 das Zurückgeben der verarbeiteten Daten, bis das DMG Signal negiert worden ist.
  • Zudem, wenn z. B. beim Lesen von Operanden aus dem Speicher 11 ein Fehler auftritt, zeigt der Prozessor 30 nicht an, daß er es wünscht, verarbeitete Daten von dem Gleitkommaprozessor 31 aus zu empfangen. Der Prozessor 30 bricht die Operation des Gleitkommaprozessors 30 nicht ab; statt dessen, wenn der Prozessor 30 einen neuen Operationscode zum Gleitkommaprozessor 31 sendet, arbeitet der Gleitkommaprozessor 31 mit diesem Operationscode. Es ist verständlich, daß die CP STA (1 : 0) Gleitkommastatussignale und die CP DAT (5 : 0) Gleitkommadatensignale, die vom Prozessor 30 über die Leitungen 70 und 71 gesendet werden, um anzugeben, daß er dazu bereit ist, die verarbeiteten Daten zu empfangen, nicht irgendeinem Operationscode entsprechen brauchen, um dem Gleitkommaprozessor 31 zu erlauben, zwischen ihnen zu unterscheiden.
  • Datenweg 36
  • Der Datenweg 36 des Prozessors 30 wird in Verbindung mit den Fig. 3A und 3B beschrieben. Gemäß Fig. 3A enthält der Datenweg 36 eine Vielzahl von Registersätzen, die einen Satz von fünfzehn Registern 80 für allgemeine Zwecke, die als GPR 0 bis GPR 14 bezeichnet sind, ferner einen Satz von sechzehn Kurzzeitregistern 81, die als TEMP 0 bis TEMP 15 bezeichnet sind, und ferner einen Satz aus acht Arbeitsregistern 82 enthalten, die als WO bis W7 bezeichnet sind. Zudem enthält der Datenweg 36 eine Arithmetik- und Logikeinheit 83, die unter der Steuerung der ALU CTRL Steuersignale von einer ALU Steuerschaltung 84 Arithmetikoperationen und Logikoperationen mit den Daten von einer Anzahl von Quellen durchführt. Die ALU Steuerschaltung 84 wiederum wird von ALU OP SEL Operationsauswahlsignalen gesteuert, die von den Steuerschaltungen 40 (Fig. 2), wie untenstehend beschrieben wurde (Fig. 3C), erzeugt werden. Die Daten, die in der Arithmetik- und Logikeinheit 83 verwendet werden, werden von den Registern 80, 81 und 82, einem Q Register (nicht gezeigt), das in Verbindung mit Multiplikations- und Divisionsoperationen verwendet wird, verschiedenen weiteren Registern im Prozessor, dem Speicher 11 oder dem Cache 35, wenn die erforderlichen Daten im Cache sind, und ferner von weiteren Quellen im Datenverarbeitungssystem bereitgestellt, wie es im Stand der Technik bekannt ist.
  • Die Arithmetik- und Logikeinheit 83 empfängt Daten, die verarbeitet werden sollen, durch zwei Eingangsanschlüsse, nämlich einen A IN Eingangsanschluß und einen B IN Eingangsanschluß, verarbeitet die Daten in Übereinstimmung mit ALU CTRL Steuersignalen aus dem Steuermikrowort und sendet verarbeitete Daten durch einen W OUT Schreibausgangsanschluß. Die Quellen der Eingangsdaten sind alle mit den A IN und B IN Eingangsanschlüssen in einer Konfiguration mit verdrahtetem Oder (wired-OR) verbunden. Das Steuermikrowort von der Steuerschaltung 40 (Fig. 1) bestimmt, welche der Quellen der Daten, die tatsächlich zu den A IN und B IN Eingangsanschlüssen gesendet werden, und welche der möglichen Speicherstellen verwendet werden, in die die verarbeiteten Daten gespeichert werden sollen. Insbesondere enthalten Quellen von Daten für den A IN Eingangsanschluß in einer Ausführungsform alle Register in den Sätzen 80, 81 und 82, ausgewählte, verschiedene Register im Prozessor und den Speicher 11 oder den Cache 35. Andererseits enthalten die Quellen der Daten für den B IN Eingangsanschluß nur Register im Satz 82 und weitere, ausgewählte verschiedene Prozessorregister. Die verarbeiteten Daten können in irgendeine der Stellen eingeschrieben werden, die ansonsten Quellen von Daten sein können.
  • Dementsprechend empfangen die Register 80 für allgemeine Zwecke zwei Sätze von Steuersignalen, nämlich einen Satz von A EN GPR "A" Freigabesteuersignale für Register allgemeinen Zwecks und einen Satz von W EN GPR Schreibfreigabe-Steuersignale für Register allgemeinen Zwecks. Wenn der A IN Eingang der Arithmetik- und Logikeinheit 83 die Inhalte des Register allgemeinen Zwecks empfangen soll, wird ein entsprechendes der A EN GPR "A" Freigabesteuersignale für Register allgemeinen Zwecks ausgegeben, das die Inhalte dieses Registers allgemeinen Zwecks dazu freigibt, zu dem A IN Eingangsanschluß der Arithmetik- und Logikeinheit 83 gesendet zu werden. Ähnlich wird, wenn der Ausgang der Arithmetik- und Logikeinheit 83 in eines der Register 80 allgemeinen Zwecks geladen werden soll, eines der W EN GPR Schreibfreigabe-Steuersignale für Register allgemeinen Zwecks, das diesem Register allgemeinen Zwecks zugeordnet ist, ausgegeben.
  • Der Kurzzeitregistersatz 81 und der Arbeitsregistersatz 82 empfangen ähnliche Steuersignale. Insbesondere empfängt der Kurzzeitregistersatz 81 einen Satz von A EN TEMP "A" Freigabe-Kurzzeitsteuersignalen zum Freigeben der Inhalte von ausgewählten Kurzzeitregistern, die zu dem A IN Eingangsanschluß der Arithmetik- und Logikeinheit 83 übertragen werden sollen. Zudem gibt ein Satz von W EN TEMP Schreibfreigabe-Kurzzeitsteuersignalen die verarbeiteten Daten von dem W OUT Ausgangsanschluß der Arithmetik- und Logikeinheit 83 dazu frei, in einem ausgewählten Kurzzeitregister im Kurzzeitregistersatz 81 gespeichert zu werden.
  • Der Arbeitsregistersatz 82 empfängt einen Satz von A EN WR "A" und B EN WR "B" Freigabe-Arbeitsregistersteuersignalen zum Freigeben der Inhalte der ausgewählten Arbeitsregister, um sie zu dem A IN Eingangsanschluß bzw. zu dem B IN Eingangsanschluß zu übertragen. Zudem empfängt der Arbeitsregistersatz 82 einen Satz von W EN WR Schreibfreigabe-Arbeitsregistersteuersignalen zum Freigeben der verarbeiteten Daten von der Arithmetik- und Logikeinheit 83, um in einem ausgewählten Arbeitsregister gespeichert zu werden. Ahnliche Steuersignale (nicht gezeigt) werden für weitere Quellen von Daten für die A IN und B IN Eingangsanschlüsse der Arithmetik- und Logikeinheit 83 und für Stellen erzeugt, in die die verarbeiteten Daten gespeichert werden können.
  • Fig. 3B stellt ein Logikdiagramm einer Schaltung dar, die verschiedene Registersteuersignale erzeugt, die in Fig. 3A dargestellt sind, und ferner auch weitere Steuersignale, die nicht gezeigt werden. Einleitend enthält das Steuermikrowort drei Felder, die Signale definieren, die die Quellen der Signale steuern, die zu den A IN und B IN Eingangsanschlüssen der Arithmetik- und Logikeinheit 83 übertragen werden, und die Zielorte der Signale von dem W OUT Ausgangsanschluß steuern. Insbesondere enthält das Steuermikrowort ein Feld, das A SEL (5 : 0) "A" Auswahlsteuersignale, B SEL (3 : 0) "B" Auswahlsteuersignale und DEST (1 : 0) Zielort-(d. h. Schreib) Auswahlsteuersignale definiert.
  • Die Steuerschaltung 40 (Fig. 1) gibt ein NEW INST Neu-Befehlssignal aus, wenn sie mit der Verarbeitung eines neuen Befehls anfängt, und ferner ein NXT SPC Nächster-Spezifizierersignal aus, wenn sie mit dem Decodieren jedes Operandenspezifizierers beginnt. Gemäß Fig. 3B wird in Antwort auf das NEW INST Neu- Befehlssignal von der Steuerschaltung 40 ein Zähler 85 initialisiert. Jedes Mal, wenn ein Operandenspezifizierer decodiert wird, gibt die Steuerschaltung das NXT SPC Nächster-Spezifizierersignal aus, das den Zähler dazu freigibt, fortzuschreiten. Der Zähler 85 erzeugt ein binär codiertes SN Spezifizierernummer-Signal, das den Operandenspezifizierer, der decodiert wird, identifiziert.
  • In Antwort auf das SN Spezifizierernummer-Signal erzeugen zwei Decodierer 86 und 87 Ausgangssignale WX EN WSN (X ist 0, 2, 4, 7, 3, 1 in der Reihenfolge, in der die Signale vom Zähler 85 erzeugt werden) bzw. WX EN WSN+1 (X ist 1, 3, 5, 0, 4, 2). Im allgemeinen werden Operanden in den Arbeitsregistersatz 82 von irgendwoher in dem digitalen Datenverarbeitungssystem übertragen, bevor eine Arithmetik- oder Logikoperation mit ihm ausgeführt wird, und die WX EN WSN und WX EN WSN+1 Signale beziehen sich auf die Reihenfolge, in der die Operanden in die entsprechenden Arbeitsregister geladen werden. Wenn jeder Operand in das Arbeitsregister einpaßt, werden die Arbeitsregister in Antwort auf die WX EN WSN Signale geladen. Wenn jedoch ein Dateneintrag mehr Platz benötigt, als von einem Arbeitsregister zur Verfügung gestellt wird, wird ein Teil von ihm in das Arbeitsregister geladen, das durch das WX EN WSN Signal identifiziert wird, und der Rest wird in das Arbeitsregister geladen, das durch das WX EN WSN+1 Signal identifiziert wird.
  • Wenn z. B. beim Ausführen eines Befehls jeder Operand in ein einzelnes Arbeitsregister einpaßt, wird der erste Operand in das Register Null im Arbeitsregistersatz 82 hinein übertragen, der zweite Operand in das Register 2, der dritte Operand in das Register 4 usw. in der Reihenfolge, die vom Decodierer 86 identifiziert wird. In der speziellen Ausführungsform die hier beschrieben wird, kann ein Maximum von sechs Operanden beim Ausführen eines Befehls verwendet werden. Wenn jeder Operand zwei Arbeitsregister erfordert, wird der erste Operand in das Register 0 übertragen, wie es durch den Decodierer 86 bestimmt wird, und in das Register 1, wie es durch den Decodierer 87 bestimmt wird.
  • Ein Decodierer 90 empfängt die A SEL (5 : 0) "A" Auswahlsteuersignale und erzeugt in Antwort auf die Codierung dieser Steuersignale eine Anzahl von A EN XX Freigabesignalen (XX bezieht sich auf GPR 0 bis GPR 14, TEMP 0 bis TEMP 15, WO bis W7, WSN, WSN+1 und OTHER, wobei sich "OTHER" auf ausgewählte, weitere Register in dem Prozessor 30, einschließlich des zuvor erwähnten Q-Registers bezieht). Ähnlich empfängt ein Decodierer 91 die B SEL (3 : 0) "B" Auswahlsteuersignale und erzeugt in Antwort auf die Codierung dieser Steuersignale eine Anzahl von B EN XX Freigabesignalen (XX bezieht sich auf WO bis W7, WSN, WSN+1, und WEI- TERE, wobei sich "WEITERE" auf ausgewählte, weitere Register in dem Prozessor 30 bezieht) auf entsprechenden Ausgangssignalleitungen.
  • Das A EN WSN Freigabesignal wird mit einem Satz aus durchlaßgesteuerten Treibern 100, die die WX EN WSN Freigabe-Schreib-Spezifizierernummer-Signale vom Decodierer 90 gesteuert durchlassen und ihnen erlauben, auf die entsprechende Signalleitung auszukoppeln, die die A EN WX (X ist 0, 2, 4, 7, 3 und 1) Signale vom Decodierer 90 übertragen. Somit, wenn der Decodierer 90 in Antwort auf die A SEL (5 : 0) "A" Auswahlsignale das A EN WSN Freigabe-Arbeitsregister-Spezifizierernummer-Signal ausgibt, erregen die Treiber die Signalleitung, die das WX EN WSN Signal übertragen, das dann vom Decodierer 86 ausgegeben wird. Durchlaßgesteuerte Treiber 101, die von dem A EN WSN+1 Freigabesignal gesteuert werden, machen das Gleiche für die WX EN WSN+1 Signale, die vom Decodierer 87 erzeugt werden. Zudem machen die durchlaßgesteuerten Treiber 102 und 103, die von B EN WSN und B EN WSN+1 Freigabesignalen gesteuert werden, das Gleiche für die WX EN WSN und WX EN WSN+1 Signale in Verbindung mit den B EN WO bis B EN W7 Freigabesignalleitungen.
  • Zudem werden die Ausgangssignale von dem Decodierer 90 und 91 und den Treibern 100 bis 103 mit den Zwischenspeichereinrichtungen (latch) 92 und 93 gekoppelt. Die Zwischenspeichereinrichtungen 92 und 93 koppeln die Zustände des Eingangssignals zu ihren jeweiligen Ausgangsanschlüssen, wenn die A LTH HOLD und die B LTH HOLD Zwischenspeicher-Haltesignale negiert werden, und speichern die Zustände der jeweiligen Signalleitungen zwischen, wenn die A LTH HOLD und die B LTH HOLD Zwischenspeicher-Haltesignale ausgegeben werden. Die Steuerschaltung 40 gibt die A LTH HOLD und die B LTH HOLD Zwischenspeicher-Haltesignale aus, wenn die Signale auf den entsprechenden Signalleitungen stabil geworden sind, um bei der Erzeugung der verschiedenen W EN XX Schreibfreigabesignale verwendet zu werden, so daß die Steuerschaltung damit fortfahren kann, einen neuen Steuer- Mikrobefehl zu erzeugen und zu verwenden, die ansonsten die Ausgänge der Decodierer 90 und 91 dazu veranlassen könnte, sich zu ändern, und verursachen könnte, daß die Signale auf den Signalleitungen variieren.
  • Die Signale, die in den Zwischenspeichereinrichtungen 92 und 93 zwischengespeichert sind, werden mit entsprechenden Sätzen von Eingangsanschlüssen eines Multiplexers 104 gekoppelt. Zudem hat der Multiplexer 104 einen dritten Satz von Eingangsanschlüssen, die die WX EN WSN Signale vom Decodierer 86 empfangen, und ferner einen vierten Satz von Eingangsanschlüssen, die negierte Niveausignale empfangen. Ein ausgewählter Satz von Eingangsanschlüssen empfängt die DEST (1 : 0) Zielortsignale von der Steuerschaltung 40, wobei die DEST (1 : 0) Zielortsignale von Steuermikrobefehlen stammen. Die zwei DEST (1 : 0) Zielortsignale wählen einen von vier Sätzen von Eingangssignalen aus, der mit dem Ausgang gekoppelt werden soll, und erzeugen die erforderlichen W EN XX (XX bezieht sich auf GPR, TEMP, WR und OTHER (weitere)) Schreibfreigabesignale. Dementsprechend werden die Schreibfreigabesignale in Antwort auf die zwei DEST (1 : 0) Zielortsignale ausgewählt, die viel weniger Signale sind, als ansonsten dafür erforderlich sein würden, um die große Anzahl von möglichen Zielorten für die verarbeiteten Daten auszuwählen.
  • Wie zuvor erwähnt wurde, werden die Operationen, die durch die Arithmetik- und Logikeinheit 83 (Fig. 3A) durchgeführt werden, durch ALU CTRL Signale von der ALU Steuerschaltung 84 gesteuert, die wiederum von den ALU OP SEL Operationsauswahlsignalen von Steuerschaltungen 40 (Fig. 1B) des Prozessors 30 gesteuert wird. Gemäß Fig. 3C enthält die ALU Steuerschaltung 84 einen Decodierer 85 in der Form einer programmierbaren Logikfeldschaltung (programmable logic array circuit), die ALU CTRL CODE Steuercodesignale in Antwort auf die ALU OP SEL Operationsauswahlsignale erzeugt. Zudem empfängt ein Decodierer 86 die ALU OP SEL Operationsauswahlsignale und erzeugt ein MUL Multipliziersignal oder ein DIV Dividiersignal in Antwort auf ausgewählte Codierungen der ALU OP SEL Operationsauswahlsignale.
  • Als Hintergrundinformation führt eine spezielle Ausführungsinformation, da die Arithmetik- und Logikschaltung 83 nicht direkt eine Multiplikations- oder Divisionsoperation durchführt, eine Multiplikationsoperation durch, wenn sie durch einen Programmbefehl spezifiziert wird, indem ein bekannter sequentieller Addition-Schiebe-Multiplikation-Algorithmus realisiert wird. Die gleiche Ausführungsform führt eine Divisionsoperation durch, wenn sie von einem Programmbefehl spezifiziert wird, indem ein bekannter Schiebe-Subtrahier/Addier-Nicht-Rückstell-Divisionsalgorithmus realisiert wird.
  • Beim Multiplikationsalgorithmus erzeugen die Steuerschaltungen 40 eine Serie von ALU OP SEL Operationsauswahlsignalen, die die Arithmetik- und Logikeinheit 83 dazu freigeben, Additions- oder Durchlaßoperationen durchzuführen (bei einer Durchlaßoperation werden die Signale an einem Eingangsanschluß der Arithmetik- und Logikeinheit zu dem Ausgangsanschluß gesendet), wobei deren Ergebnisse in dem zuvor erwähnten Q-Register (nicht gezeigt) gespeichert werden. Beim Divisionsalgorithmus geben die ALU OP SEL Operationsauswahlsignale die Arithmetik- und Logikeinheit 83 dazu frei, Additions- oder Subtraktionsoperationen durchzuführen, deren Ergebnisse auch im Q-Register gespeichert werden. Die Auswahl, welche Operation durchgeführt werden soll, d. h. ob die Additionsoperation oder Durchlaßoperation für den Multiplikationsprogrammbefehl durchgeführt werden soll oder ob die Addition- oder die Subtraktionsoperation für den Divisionsprogrammbefehl durchgeführt werden soll, basiert auf einem Abschnitt des Ergebnisses der vorhergehenden Operation in der Reihenfolge.
  • Um ein Verzögern der Erzeugung der ALU OP SEL Operationsauswahlsignale durch die Steuerschaltungen 40 (Fig. 1B) zu vermeiden, bis die Ergebnisse der vorhergehenden Operation bestimmt worden sind, enthält die ALU Steuerschaltung 84 eine Schaltung zum Erzeugen von zumindest einigen der ALU CTRL Steuersignalen, wenn die ALU OP SEL Operationsauswahlsignale, die MUL Operation bzw. die DIV Operation identifizieren. Der Decodierer 85 erzeugt einige dieser Signale und sendet sie als ALU CTRL CODE Steuercodesignale, die mit einem Eingang eines Multiplexers 88 gekoppelt werden, dessen Ausgangssignale die ALU CTRL Steuersignale aufweisen, die die Arithmetik- und Logikeinheit 83 steuern.
  • Der zweite Eingang des Multiplexers 88 empfängt PRESET CTRL CODE Vorgabe-Steuercodesignale. Unter Bezug auf den vorhergehenden Absatz, da die Multiplizier- und Dividieroperationen beide einen Additionsschritt enthalten, identifizieren die PRE- SET CTRL CODE Vorgabe-Steuercodesignale die Additionsoperation. Wenn die ALU OP SEL Signale die MUL Operation identifizieren, identifizieren die ALU CTRL CODE Steuercodesignale die Durchlaßfunktion der Arithmetik- und Logikeinheit. Wenn andererseits die ALU OP SEL Operationsauswahlsignale die DIV Dividieroperation identifizieren, identifizieren die ALU CTRL CODE Steuercodesignale die Subtraktionsoperation.
  • Der zweite Decodierer 86 empfängt auch die ALU OP SEL Operationsauswahlsignale von der Steuerschaltung 40 (Fig. 1B) und gibt ein MUL Multipliziersignal aus, wenn sie die MUL Multiplizieroperation identifizieren, und gibt ein DIV Dividiersignal aus, wenn sie die DIV Dividieroperation identifizieren. Die MUL Multiplizier- und DIV Dividiersignale wiederum steuern eine Multiplexersteuerschaltung 87, die RESULTS Signale von anderen Schaltungen empfängt, die den Abschnitt der vorhergehenden Ergebnisse wiedergeben, welche die Operationen, die durchgeführt werden sollen, wie es im Stand der Technik bekannt ist, bestimmen. In Antwort auf die RESULTS Signale und die MUL Multiplizier- und DIV Dividiersignale vom Decodierer 86 erzeugt die Multiplexersteuerschaltung 87 ein MUX SEL Multiplexerauswahlsignal, das den Multiplexer 88 steuert.
  • Insbesondere, wenn der Decodierer 86 ein MUL Multipliziersignal erzeugt und die RESULTS Signale anzeigen, daß die Additionsoperation durchgeführt werden soll, erzeugt die Multiplexersteuerschaltung 87 ein MUX SEL Multiplexerauswahlsignal, das die PRE- SET CTRL CODE Vorgabe-Steuercodesignal mit der Arithmetik- und Logikeinheit 83 koppelt, wodurch sie freigegeben wird, eine Additionsoperation durchzuführen. Ähnlich, wenn der Decodierer 86 ein DIV Dividiersignal erzeugt und die RESULTS Signale anzeigen, daß die Additionsoperation durchgeführt werden soll, wird das MUX SEL Multiplexerauswahlsignal erzeugt, das die PRESET CTRL CODE Vorgabe-Steuercodesignale mit der Arithmetik- und Logikeinheit 83 koppelt, um sie dazu freizugeben, eine Additionsoperation durchzuführen.
  • Andererseits, wenn (1) der Decodierer 86 ein MUL Multipliziersignal erzeugt und die RESULTS Signale anzeigen, daß die Durchlaßoperation durchgeführt werden soll, oder (2) wenn der Decodierer 86 ein DIV Dividiersignal erzeugt und die RESULTS Signale anzeigen, daß die Subtrahieroperation durchgeführt werden soll, gibt das MUX SEL Multiplexerauswahlsignal den Multiplexer 88 dazu frei, die ALU CTRL CODE Signale vom Decodierer 85 zu seinem Ausgang als ALU CTRL Signale zu koppeln, die die Arithmetik- und Logikschaltung 83 steuern. Wenn der Decodierer 86 weder ein MUL Multipliziersignal noch ein DIV Dividiersignal erzeugt, gibt das MUX SEL Multiplexerauswahlsignal auch den Multiplexer 88 dazu frei, die ALU CTRL CODE Signale vom Decodierer 85 zu seinem Ausgang als ALU CTRL Steuersignale zum Steuern der Arithmetik- und Logikschaltung 83 zu koppeln.
  • Es ist verständlich, daß die Schaltung, die in Fig. 3C dargestellt wird, bei geeigneter Auswahl des Decodierers 86 des Multiplexers 88 und der Multiplexersteuerschaltung 87 auch in Verbindung mit anderen Arithmetik- und Logikeinheit-Operationen verwendet werden kann, die insgesamt oder teilweise von den Ergebnissen der vorhergehenden Operation abhängen. Die Schaltung erleichtert die Reduzierung der Zeit zwischen Arithmetik- und Logikoperationen in solchen Fällen, da die Steuerschaltungen 40 nicht darauf warten müssen, bis die Ergebnisse der Operation bestimmt sind, bevor die ALU OP SEL Operationsauswahlsignale für die nachfolgende Operation erzeugt werden.
  • Übereinstimmungs-Verifikationsschaltung für Umsetzpuffer 260 in Speicherverwaltungsschaltung 37
  • In einem System, das eine CPU 10 (Fig. 1) enthält, wird eine Anordnung mit virtuellem Speicher verwendet, in welcher jedes Programm so betrachtet wird, daß ihn der gesamte Speicherplatz zugeordnet wird, der größer als der physikalische Speicherraum sein kann, der vom Speicher 11 zur Verfügung gestellt wird. Wenn der Prozessor 30 auf eine bestimmte Stelle im virtuellen Speicherraum zugreifen muß, werden die erforderlichen Abschnitte des virtuellen Speicherraums in den physikalischen Speicher 11 hinein und aus dem physikalischen Speicher 11 heraus geschoben, wie sie benötigt werden, wobei die Abschnitte des virtuellen Speicherraums, die nicht im physikalischen Speicher 11 sind, in einer Massenspeichervorrichtung, typischerweise eine Plattenspeichereinheit, gespeichert werden.
  • Ein Abschnitt des Prozessors 30, nämlich die Speicherverwaltungsschaltung 37, führt eine Umsetzung zwischen der Adresse des virtuellen Speicherraums, die als "virtuelle Adresse" bezeichnet wird, und der physikalischen Adresse im physikalischen Speicher 11 durch, wobei Einträge in einer Umsetzseitentabelle (nicht gezeigt) verwendet werden, die auch im Speicher 11 gespeichert ist. Die Prozedur zum Umsetzen von virtuellen Adressen in physikalische Adressen in einem System, das einen virtuellen Speicher aufweist, ist bestens bekannt, und wird hier nicht beschrieben.
  • Um die Umsetzung von virtuellen Adressen in physikalische Adressen zu beschleunigen, enthält die Speicherverwaltungsschaltung 37 einen Umsetzpuffer 260, der eine ausgewählte Anzahl von Seitentabelleneinträgen speichert, die vor kurzem in Verbindung mit der Umsetzung verwendet wurden. Die Schaltungen für den Umsetzpuffer 260 werden in Blockdiagrammform in der Fig. 4A dargestellt, und genauere Logikdiagramme des Umsetzpuffers 260 werden in den Fig. 4B-1 und 4B-2 dargestellt.
  • Gemäß der Fig. 4A enthält der Umsetzpuffer 260 einen inhaltsadressierbaren Speicher 110, der eine Vielzahl von Einträgen hat, die den Abschnitt höherer Ordnung einer virtuellen Adresse speichern, einen Treffer(hit)-Puffer 111 und eine Seitenrahmennummer-Speicherschaltung 112. Der Abschnitt höherer Ordnung der virtuellen Adresse identifiziert eine "Seite" in dem virtuellen Speicherraum, wobei die Seite eine vorgegebene Anzahl von hintereinanderfolgenden Speicherstellen hat. Die Seitenrahmennummer-Speicherschaltung enthält die gleiche Anzahl an Einträgen wie der inhaltsadressierbare Speicher. Jeder Eintrag in der Seitenrahmennummer-Schaltung wird mit einem Eintrag in dem inhaltsadressierbaren Speicher verbunden und speichert den Abschnitt höherer Ordnung oder die Seitenrahmennummer der physikalischen Adresse entsprechend dem Abschnitt höherer Ordnung der virtuellen Adresse in dem inhaltsadressierbaren Speicher. In einer Ausführungsform enthalten der inhaltsadressierbare Speicher und die Seitenrahmennummer-Speicherschaltung achtundzwanzig Einträge.
  • Der Umsetzpuffer 260 hat auch eine Schutzlogik-Schaltung 113, die auch achtundzwanzig Einträge enthält, von denen jeder einem Eintrag in dem inhaltsadressierbaren Speicher zugeordnet ist. Jeder Eintrag in der Schutzlogikschaltung speichert einen decodierten Schutzcode, der für die Zugriffsrechte des Programms auf die Inhalte der Speicherstellen repräsentativ ist, die durch die Inhalte des entsprechenden Eintrags in dem inhaltsadressierbaren Speicher 110 identifiziert werden.
  • Zudem hat der Umsetzpuffer 260 vier Sätze von Zeichen, nämlich einen NLU Nicht-Zuletzt-Verwendet-Zeichensatz 114, einen TB.V Umsetzpuffer-260-Gültigkeits-Zeichensatz 115, einen PTE.V Seitentabelleneintrag-Gültigkeits-Zeichensatz 116 und einen PTE.M Seitentabelleneintrag-Modifiziert-Zeichensatz 117. Jeder Eintrag in den inhaltsadressierbaren Speicher 110 ist mit einem NLU Nicht-Zuletzt-Verwendet-Zeichen im Satz 114, mit einem TB.V Umsetzpuffer-260-Zeichen im Satz 115, mit einem PTE.V Seitentabelleneintrag-Gültigkeits-Zeichen im Satz 116 und mit einem PTE.M Seitentabelleneintrag-Modifiziert-Zeichen im Satz 117 verbunden. Der NLU Nicht-Zuletzt-Verwendet-Zeichensatz 114 und der TB.V Umsetzpuffer-260-Gültigkeits-Zeichensatz 115 werden zum Steuern der Operation des Umsetzpuffers verwendet. Insbesondere wird der NLU Zeichensatz 114 in Verbindung mit dem Ersetzen von Einträgen in dem Umsetzpuffer 260 verwendet, wenn ein neuer Seitentabelleneintrag vom Speicher 11 empfangen wird. Die Zeichen der Umsetzpuffer-260-Einträge, die nicht unmittelbar zuvor verwendet wurden, werden gesetzt, und sie können durch einen neuen Eintrag ersetzt werden. Die TB.V Umsetzpuffer-260-Gültigkeits-Zeichen 115 geben an, daß die entsprechenden Einträge in dem inhaltsadressierbaren Speicher 110 und in der Seitenrahmennummer-Schaltung 112 gültig sind, d. h. daß sie verwendet werden können.
  • Die verbleibenden Zeichen bilden einen Teil der Seitentabelleneinträge, die aus dem Speicher 11 ausgelesen werden. Die PTE.V Seitentabelleneintrag-Gültigkeits-Zeichen 116 geben an, ob der entsprechende Seitentabelleneintrag gültig ist und verwendet werden kann. Die PTE.M Seitentabelleneintrag-Modifiziert-Zeichen 117 geben an, ob die entsprechenden Seiten modifiziert wurden. Wenn eine Seite nicht modifiziert wurde, wenn die Stellen im physikalischen Speicher 11 für eine andere Seite in dem virtuellen Adreßraum verwendet wird, wird sie nicht auf der Platte oder dem Band gespeichert.
  • Wenn der Prozessor 30 (Fig. 1) auf dem Speicher zugreifen soll, indem er eine bestimmte virtuelle Adresse verwendet, bestimmt er zuerst, ob der Umsetzpuffer 260 einen Eintrag im inhaltsadressierbaren Speicher 110 entsprechend dem Abschnitt höherer Ordnung der virtuellen Adresse enthält. Ein VA SRCE Virtuell-Adreß-Quellensignal, das den Abschnitt höherer Ordnung der virtuellen Adresse wiedergibt, wird zu dem inhaltsadressierbaren Speicher 110 gesendet. Wenn ein Eintrag in dem inhaltsadressierbaren Speicher 110 dem VA SRCE Virtuell-Adreß- Quellensignal entspricht und wenn das zugeordnete Zeichen in dem TB.V Umsetzpuffer-260-Gültigkeits-Zeichensatz 115 im gesetzten Zustand ist, was angibt, daß der Eintrag gültig ist, wird ein entsprechendes der PTE HIT (27 : 0) Seitentabelleneintrag-Treffersignale auf den Leitungen 113 ausgegeben. Die Trefferpuffer 111 puffern die PTE HIT (27 : 0) Seitentabelleneintrag- Treffersignale und zeitsteuert sie in Antwort auf interne Timing-Signale. Wenn eines der PTE HIT (27 : 0) Seitentabelleneintrag-Treffersignale zu einem vorgesehenen Zeitpunkt ausgegeben wird, wird ein entsprechendes HIT SEL (27 : 0) Trefferauswahlsignal ausgegeben. Das ausgegebene der HIT SEL (27 : 0) Trefferauswahlsignale gibt den entsprechenden von achtundzwanzig Einträgen in der Seitenrahmennummer-Speicherschaltung 112 dazu frei, zum internen Bus 34 übertragen zu werden.
  • Der Umsetzpuffer 260 enthält auch eine Schutzlogikschaltung 113, die achtundzwanzig Einträge enthält, von denen jeder in decodierter Form Bits speichert, die die Zugriffsrechte des Programms auf die Inhalte der Seite wiedergeben, die durch die Seitenrahmennummer in dem entsprechenden Eintrag in der Seitenrahmennummer-Speicherschaltung 112 identifiziert wird. Jeder Seitentabelleneintrag enthält zusätzlich zu der Seitenrahmennummer, die in der Seitenrahmennummer-Schaltung 112 gespeichert ist, ein Schutzfeld, das den niedrigsten Betriebsschutz-Niveaumodus identifiziert, bei dem der Prozessor 30 arbeitet und bei dem auf die Seite für Lese- und Schreiboperationen zugegriffen werden kann. Der Decodierer 120 empfängt das Schutzfeld und erzeugt die decodierten Schutzfeldbits, die in der Schutzlogikschaltung gespeichert werden, wenn die entsprechenden Einträge in dem inhaltsadressierbaren Speicher 110 und in der Seitenrahmennummer-Schaltung 112 in den Umsetzpuffer 260 geladen werden, der in der Fig. 4A dargestellt wird.
  • Spezifisch stellt eine Ausführungsform vier Betriebsschutz-Niveaumodi zur Verfügung, die (in abnehmender Reihenfolge des Privilegs) als Kern (K), Ausführer (E), Überwacher (S) und Anwender (U) bezeichnet werden. Wenn auf eine Seite bei einer Lese- oder Schreiboperation zugegriffen werden kann und der Prozessor 30 in einem Betriebsprivileg-Niveaumodus arbeitet, kann auf sie für die gleiche Lese- oder Schreiboperation zugegriffen werden, wenn der Prozessor 30 in höheren Betriebsprivileg-Niveaumodi arbeitet. In dieser Ausführungsform sind die codierten Schutzwerte vom Seitentabelleneintrag und die Werte der entsprechenden decodierten Bits, die von der Decodiererschaltung 120 für die Speicherung in der Schutzlogik 113 erzeugt werden, wie folgt: codiertes Schutzfeld Zugriffsrechte decodiertes Schutzfeld (0 = negiert, 1 = ausgegeben, R = Lesezugriff, W = Schreibzugriff, "-" = weder Lesezugriff noch Schreibzugriff)
  • Es ist verständlich, daß die decodierten Werte einen Acht-Bitcode wiedergeben, wobei die vier Bits linker Hand die Betriebsprivileg-Niveaumodi wiedergeben, in denen die Stellen, die durch die zugeordneten Seitenrahmennummern identifiziert werden, gelesen werden können, und wobei die Bits rechter Hand die Betriebsprivileg-Niveaumodi wiedergeben, in denen die Stellen, die durch die zugeordneten Seitenrahmennummern identifiziert werden, beschrieben werden können. Innerhalb jeder Vier- Bit-Gruppe beziehen sich die Bits auf einen der Betriebsprivileg-Niveaumodi.
  • Spezifisch beziehen sich die Bits von links nach rechts innerhalb jeder Vier-Bit-Gruppe auf die Betriebsprivileg-Niveaumodi mit abnehmendem Privileg.
  • Wenn der Umsetzpuffer 260, der in Fig. 4A dargestellt ist, beim Umsetzen einer virtuellen Adresse in eine physikalische Adresse verwendet wird, und zwar gleichzeitig mit dem Senden des VA SRCE Virtuell-Adreß-Quellensignals zu dem inhaltsadressierbaren Speicher, empfängt ein weiterer Decodierer 121 ein CUR MODE Momentanprivileg-Niveaumodus-Signal, ein ausgebenes RD Lesesignal, wenn die Operation eine Leseoperation ist, oder ein ausgegebenes WRT Schreibsignal, wenn die Operation eine Schreiboperation ist. Das CUR MODE Momentanmodussignal identifiziert den momentanen Schutzniveau-Betriebsmodus, in dem der Prozessor 30 arbeitet.
  • In Antwort darauf gibt der Decodierer 121 eines von acht P CODE (7 : 0) Schutzcodesignalen auf entsprechenden Signalleitungen 122 aus, die die momentane Lese- oder Schreiboperation in Verbindung mit dem momentanen Betriebsschutz-Niveaumodus identifizieren. D.h. daß jedes der vier Signale höherer Ordnung in den P CODE (7 : 0) Schutzcodesignalen mit den vier Betriebsschutz- Niveaumodi in Verbindung mit der Leseoperation verbunden ist, und daß die vier Signale niedriger Ordnung mit einem der vier Betriebsschutz-Niveaumodi in Verbindung mit der Schreiboperation wie folgt verbunden sind: Betriebsmodus Operation P CODE (7 : 0) Signale Kern Lesen Schreiben Ausführer Überwacher Anwender (0 = negiert, 1 = ausgegeben)
  • Die Schutzlogikschaltung vergleicht die P CODE (7 : 0) Signale mit den Inhalten der Schutzlogik 113. Wenn das ausgegebene P CODE (7 : 0) Schutzcodesignal zumindest einem gesetzten Bit in dem decodierten Schutzfeld, das in einem Eintrag in der Schutzlogik 113 gespeichert ist, entspricht, wird eines der ACCESS (27 : 0) Zugriffssignale auf einer der Leitungen 123, die mit dem Eintrag verbunden sind, ausgegeben. Andererseits, wenn das ausgegebene P CODE (7 : 0) Schutzcodesignal nicht zumindest einem gesetzten Bit in dem decodierten Schutzfeld in einem Eintrag entspricht, wird keines der ACCESS (27 : 0) Zugriffssignale ausgegeben.
  • Die ACCESS (27 : 0) Zugriffssignale werden mit entsprechenden HIT SEL (27 : 0) Trefferauswahlsignalen UND-verknüpft, um NO STALL (27 : 0) Signale zu erzeugen, von denen jedes mit einem der Einträge in dem Umsetzpuffer verbunden ist. Der Prozessor 30 verwendet die NO STALL (27 : 0) Signale dafür, zu bestimmen, ob ein Eintrag im Umsetzpuffer 260 die erforderliche Seitenrahmennummer enthält, und wenn das der Fall ist, ob der Prozessor versucht, eine Leseoperation oder Schreiboperation auf eine Seite im Speicher 11 in einem Betriebsprivileg-Niveaumodus durchzuführen, der nicht ausreicht. Wenn zumindest eines der NO STALL (27 : 0) Signale ausgegeben wird, enthält ein Eintrag in dem Umsetzpuffer 260 die erforderliche Seitenrahmennummer, und der Prozessor 30 hat den erforderlichen Betriebsprivileg-Niveaumodus.
  • Die Fig. 4B-1 und 4B-2 stellen detaillierte Logikdiagramme eines Abschnitts eines Eintrags in verschiedenen der Schaltungen im Umsetzpuffer 260 dar, der in der Fig. 4A dargestellt ist. Insbesondere weist jeder Eintrag im inhaltsadressierbaren Speicher 110, in der Seitenrahmennummer-Schaltung 112 und in der Schutzlogik 113 eine Vielzahl von identischen Logik- und Speicherzellen auf, wobei jede Zelle ein Bit höherer Ordnung der zugeordneten virtuellen Adresse, der Seitenrahmennummer und des decodierten Schutzfelds speichert. Da die Zellen identisch sind, wird nur eine Zelle von jeder der Schaltungen 110, 112 und 113 in den Fig. 4B-1 und 4B-2 gezeigt.
  • Gemäß der Fig. 4B-1 enthält der inhaltsadressierbare Speicher 110 eine CAM Zelle 131, die mit einer Leitung 132 verbunden ist, um eines der VA SRCE Virtuell-Adreß-Quellensignale höherer Ordnung, insbesondere das VA SRCE (Y) Signal, von den Schaltungen 251 (Fig. 1B) innerhalb des Prozessors 30 zu empfangen. Die Schaltungen 251 stellen auch ein Signal VA SRCE (Y) COMP Signal auf einer Leitung 132A zur Verfügung, das im allgemeinen komplementär zu dem VA SRCE (Y) ist, mit der Ausnahme, wie weiter unten beschrieben wird. Die anderen CAM Zellen in dem Eintrag, der die CAM Zelle 131 enthält, empfangen andere VA SRCE Signale parallel, wobei alle VA SRCE Signale den gesamten Abschnitt höherer Ordnung der virtuellen Adresse aufweisen, die zum inhaltsadressierbaren Speicher 110 (Fig. 4A) gesendet wird. Alle Einträge in dem inhaltsadressierbaren Speicher 110 empfangen die VA SRCE Virtuell-Adreß-Quellensignale zur gleichen Zeit.
  • Die VA SRCE Virtuell-Adreß-Quellensignale können an den inhaltsadressierbaren Speicher 110 für einen von zwei Zwecken gerichtet sein, nämlich entweder einen Eintrag in den Umsetzpuffer zu schreiben oder eine Adreßumsetzung zu erhalten.
  • Während ein Eintrag in den Umsetzpuffer geschrieben wird, senden andere Schaltungen innerhalb des Prozessors 30 die Bits höherer Ordnung der virtuellen Adresse als VA SRCE Virtuell- Adreß-Quellensignale und geben ein TBE WRT Umsetzpuffer-260- Eintrag-Schreibsignal aus, das mit dem Umsetzpuffer-260- Eintrag, der geschrieben werden soll, verbunden ist. In Antwort darauf werden Durchlaßtransistoren 133 und 133A in der Zelle 131 eingeschaltet, die das Signal auf den Leitungen 132 und 132A mit einem Flip-Flop koppeln, das die Inverter 134 und 135 aufweist. Wenn das Adreßbit auf der Leitung 132 ausgegeben wird (und sein Komplement auf der Leitung 132A negiert wird), ist der Ausgang des Inverters 134 auf niedrig (low) und der Ausgang des Inverters 135 ist auf hoch (high). Wenn das Adreßbit auf der Leitung 132 negiert ist, ist der Ausgang des Inverters 134 auf hoch und der Ausgang des Inverters 135 ist auf niedrig.
  • Die Seitenrahmennummer-Schaltung enthält auch eine Anzahl von Einträgen, von denen jeder eine Anzahl von Zellen aufweist, wobei eine Zelle 140 in der Fig. 4B-1 dargestellt ist. Wenn das TBE WRT Umsetzpuffer-260-Schreibsignal ausgegeben ist, das eine Schreiboperation in den Umsetzpuffer-260-Eintrag angibt, wird ein Durchlaßtransistor 142 eingeschaltet, der ein PFN (Z) Seitenrahmennummer-(Z)-Signal auf einer Leitung 143 von anderen Schaltungen innerhalb des Prozessors 30 aus mit einem Flip Flop koppelt, das Inverter 144 und 145 aufweist. Die Zustände der Signale von den Invertern 144 und 145 in Antwort auf die Zustände des PFN (Z) Signals sind ähnlich zu den Zuständen der Signale von Invertern 134 und 135. Das PFN (Z) Seitenrahmennummer-(Z)-Signal ist ein Bit der Seitenrahmennummer, die in dem Eintrag gespeichert wird, der die Zelle 141 enthält.
  • Ähnlich enthält die Schutzlogik eine Anzahl von Einträgen, von denen jeder eine Anzahl von Zellen enthält, wobei eine Zelle 151, in der Fig. 4B-2 dargestellt ist. Wenn das TBE WRT Umsetzpuffer-260-Schreibsignal ausgegeben ist, wird ein Durchlaßtransistor 152 eingeschaltet, der ein PROT DEC (W) decodiertes Schutzcodesignal von Decodierschaltung 120 mit einem Flip-Flop koppelt, das Inverter 154 und 155 aufweist. Die Zustände der Inverter 154 und 155 in Antwort auf die Zustände der PROT DEC (W) codierten Schutzsignale sind ähnlich zu den Zuständen der Signale von den Invertern 134 und 135.
  • Die PTE.V Seitentabelleneintrag-Gültigkeits-Zeichen 116 und die PTE.M Seitentabelleneintrag-Modifiziert-Zeichen 117 enthalten Zellen 161 bzw. 171, die ähnlich in der Struktur sind. Das Zeichen enthält einen Durchlaßtransistor 162, der, wenn er durch das ausgegebene TBE WRT Umsetzpuffer-260-Eintrag-Schreibsignal eingeschaltet ist, das PTE V WRT Seitentabelleneintrag- Gültigkeits-Schreibsignal von anderen Schaltungen innerhalb des Prozessors 30 zur Speicherung in einem Flip Flop koppelt, das Inverter 164 und 165 aufweist. Das Zeichen 117 enthält auch einen Durchlaßtransistor 172, der, wenn er durch das TBE WRT Umsetzpuffer-Eintrag-Schreibsignal eingeschaltet ist, ein PTE M WRT Seitentabelleneintrag-Modifiziert-Schreibsignal zum Speichern in einem Flip Flop koppelt, das Inverter 164 und 165 aufweist.
  • Das NLU Zeichen 114 (Fig. 4A) nimmt nicht an der Umsetzoperation teil, und wird in der Fig. 4B-1 und 4B-2 nicht dargestellt. Die TB.V Umsetzpuffer-260-Gültigkeits-Zeichen sind ähnlich in der Struktur und in der Verbindung zu den PTE.V Seitentabelleneintrag-Zeichen und werden nicht weiter diskutiert.
  • Wie oben beschrieben, werden die Schaltungen, die in den Figuren 4B-1 und 4B-2 dargestellt sind, auch in Verbindung mit der Umsetzung virtueller Adressen in physikalische Adressen verwendet. In der nachfolgenden Beschreibung wird davon ausgegangen, daß der Abschnitt höherer Ordnung der virtuellen Adresse in dem Eintrag, der die Zelle 131 (Fig. 4B-1) enthält, gespeichert wurde, daß die entsprechende Seitenrahmennummer in dem Eintrag mit der Zelle 141 gespeichert wurde, daß die entsprechenden decodierten Schutzfeldbits vom Decodierer 151 in der Zelle mit der Zelle 151 gespeichert wurden und daß das entsprechende PTE.V Seitentabelleneintrag-Zeichen konditioniert wurde, um anzuzeigen, daß der Seitentabelleneintrag gültig ist.
  • Gemäß der Fig. 4B-1 wird unmittelbar vor der Umsetzung eine Vorlade-Spannung an die Leitung 143, an eine Leitung 181, die das PTE HIT (X) Seitentabelleneintrag-Signal überträgt, und an eine Leitung 183 angelegt (die in den Leitungen 123 enthalten ist, Fig. 4A), die ein ACCESS (X) Zugriffssignal überträgt, wobei diese beiden Signale mit einem einzelnen Eintrag in dem Umsetzpuffer verbunden sind. Während der Vorlade-Zeit werden das VA SRCE (Y) Signal und das VA SRCE (Y) COMP Signal von den Virtuell-Adreß-Quellenschaltungen 251 (Fig. 1B) negiert (in einen Zustand mit niedriger Spannung), um die Transistoren 136 und 138 abzuschalten, damit der Vorladebetrieb stattfinden kann. Zudem wird eine niedrige Spannung an die Leitung 182 angelegt, die das HIT SEL (X) Trefferauswahlsignal überträgt, das auch mit dem Eintrag verbunden ist. Die Leitung 181 ist mit allen Zellen 131 in einem Eintrag im inhaltsadressierbaren Speicher 110 verbunden, die Leitung 182 ist mit allen Zellen 141 in einem zugeordneten Eintrag in der Seitenrahmennummer-Schaltung 112 verbunden und die Leitung 183 ist mit allen Zellen 151 in dem zugeordneten Eintrag in der Schutzlogikschaltung 113 verbunden.
  • Nachdem die Leitungen vorgeladen wurden, senden andere Schaltungen innerhalb des Prozessors 30 die VA SRCE Virtuell-Adreß- Quellensignale zu dem inhaltsadressierbaren Speicher 110 (Fig. 4A). Die Zelle 131 enthält einen Vergleicher, der Transistoren 136 bis 139 aufweist, die den Zustand des Signals auf der Leitung 132 mit den Zuständen der Inverter 134 und 135 vergleicht, die den Zustand des Signals auf der Leitung 132 wiedergeben, der zuvor zwischengespeichert wurde, als der Eintrag geschrieben wurde. Insbesondere, wenn das VA SRCE (Y) Virtuell-Adreß- Quellensignal, das vom Flip Flop zwischengespeichert wurde, das die Inverter 134 und 135 aufweist, vorher ausgegeben wurde, ist der Ausgang des Inverters 134 niedrig, und der Ausgang des Inverters 135 ist hoch. Somit schaltet der Inverter 134 den Transistor 139 aus, und der Inverter 135 schaltet den Transistor 137 ein. Wenn das VA SRCE (Y) Signal nun ausgegeben wird, wird der Transistor 138 eingeschaltet und ein Inverter 140 schaltet den Transistor 136 aus. Da die Transistoren 136 und 139 ausgeschaltet sind, gibt es keinen Stromweg zwischen der Leitung 181 und Erde. Somit verbleibt die Leitung auf dem Vorlade-Spannungsniveau.
  • Ähnlich ist der Ausgang des Inverters 134 hoch und der Ausgang des Inverters 135 niedrig, wenn das VA SRCE (Y) Virtuell-Adreß- Quellensignal, das von dem Flip-Flop zwischengespeichert wurde, welches die Inverter 134 und 135 aufweist, vorher negiert wurde. Somit schaltet der Inverter 134 den Transistor 139 ein, und der Inverter 135 schaltet den Transistor 137 aus. Wenn das VA SRCE (Y) Signal nun während einer Umsetzung negiert wird, wird der Transistor 138 ausgeschaltet und der Inverter 140 schaltet den Transistor 136 ein. Da die Transistoren 137 und 138 ausgeschaltet sind, gibt es keinen Stromweg zwischen der Leitung 181 und Erde. Bei diesem Zustand bleibt die Leitung 181 auch auf dem Vorladespannungsniveau.
  • Wenn das VA SRCE (Y) Virtuell-Adreß-Quellensignal, das vom Flip-Flop zwischengespeichert wird, welches die Inverter 134 und 135 aufweist, zuvor ausgegeben wurde, ist der Transistor 139 aus und der Transistor 137 ein. Wenn das VA SRCE (Y) Signal nun während einer Umsetzung negiert wird, wird der Transistor 138 ausgeschaltet und der Transistor 136 wird eingeschaltet.
  • Somit existiert ein Stromweg zwischen der Leitung 181 und Erde durch die Transistoren 136 und 137, und so wird diese Spannung an der Leitung 181 auf das Erde-Spannungsniveau reduziert. Es ist verständlich, daß ein Stromweg, wenn das zuvor zwischengespeicherte VA SRCE (Y) Virtuell-Adreß-Quellensignal negiert wurde und während einer Umsetzung ausgegeben wird, zwischen der Leitung 181 und Erde durch die Transistoren 138 und 139 existiert, so daß die Spannung an der Leitung 181 auch auf Erde-Spannungsniveau reduziert wird.
  • Dementsprechend isoliert, wenn der Zustand des VA SRCE (Y) Virtuell-Adreß-Quellensignals während einer Umsetzung der gleiche ist, als wenn der Eintrag geschrieben wurde, die Zelle 131 die Leitung 181 gegenüber dem Erde-Spannungsniveau, damit sie auf einem Vorlade-Spannungsniveau verbleibt. D.h. die Zelle erlaubt, wenn die zwei Zustände die gleichen in einer Zelle 131 sind, daß das PTE HIT (X) Seitentabelleneintrag-Treffersignal ausgegeben wird. Andererseits, wenn die zwei Zustände unterschiedlich sind, wird die Leitung 181 auf niedriges Spannungsniveau gezogen, d. h., daß das PTE HIT (X) Seitentabelleneintrag-Treffersignal negiert wird. Da alle Zellen 131 in dem Eintrag im inhaltsadressierbaren Speicher 110 mit der Leitung 181 verbunden sind, müssen die Zustände in allen von ihnen übereinstimmen, damit das PTE HIT (X) Seitentabelleneintrag-Treffersignal ausgegeben werden kann.
  • Wenn das PTE HIT (X) Signal ausgegeben wird, wird ein Transistor 184 im Trefferpuffer 111 eingeschaltet. Wenn ein PH2 Phasen-Zwei-Taktsignal als nächstes ausgegeben wird, wird ein Transistor 185 auch eingeschaltet, der wirkungsvoll die Leitung 183 mit der positiven Energieversorgung Vdd koppelt. Das ausgegebene HIT SEL (X) Trefferauswahlsignal schaltet einen Transistor 186 in der Zelle 141 in der Seitenrahmennummer- Schaltung 112 ein, wodurch der Ausgang eines Puffertransistors 187, der den Zustand des Bits der Seitenrahmennummer, die in der Zelle 141 gespeichert ist, wiedergibt, mit der Leitung 143 gekoppelt wird. Der Ausgang wird von einem Verstärker 190 verstärkt und auf eine Leitung des Busses 34 ausgekoppelt.
  • Der Ausgang des Puffertransistors 187 gibt den Zustand des Bits der Seitenrahmennummer, die in der Zelle 141 gespeichert ist, wieder. Insbesondere, wenn das Bit negiert wird, schaltet der Inverter 144 den Transistor 185 ein. Wenn das HIT SEL (X) Trefferauswahlsignal ausgegeben wird, das den Transistor 186 einschaltet, wird ein Stromweg von der Leitung 143 aus, durch die Transistoren 186 und 187 zur Erde ausgebildet, wodurch das PFN (Y) Seitenrahmennummer-(Bit Y)-Signal negiert wird. Andererseits, wenn das zuvor gespeicherte Bit ausgegeben wird, schaltet der Inverter 144 den Transistor 187 aus, so daß auch dann, wenn der Transistor 186 ein ist, die vorgeladene Leitung 143 auf einem hohen Spannungsniveau verbleibt und das PFN (Y) Signal ausgegeben wird.
  • Gleichzeitig mit der Sendung der VA SRCE Virtuell-Adreß- Quellensignale zu dem inhaltsadressierbaren Speicher sendet der Decodierer 121 die P CODE (7 : 0) Schutzcodesignale zu der Schutzlogik 113. Wie zuvor erwähnt wurde, wird in einer Ausführungsform eines der P CODE (7 : 0) Schutzcodesignale ausgegeben, um den gegenwärtigen Schutzniveaumodus des Prozessors und ferner die Operation (Lesen oder Schreiben) zu identifizieren, die stattfinden soll. Die anderen P CODE (7 : 0) Schutzcodesignale werden negiert.
  • Gemäß Fig. 4B-2 enthält die Zelle 151 in der Schutzlogik 113 einen Transistor 156, der von dem P CODE (Z) Schutzcodesignal, das zur Zelle gesendet wird, gesteuert wird, und einen Transistor 157, der von einem Flip-Flop gesteuert wird, das Inverter 154 und 155 aufweist. Die zwei Transistoren 156 und 157 sind in Serie zwischen der Leitung 183 verbunden, die das ACCESS (X) Zugriffssignal befördert, das mit dem Eintrag verbunden ist.
  • Der Zustand des Transistors 157, d. h., ob er ein oder aus ist, hängt von dem Ausgangssignal des Inverters 154 ab, der wiederum von dem Zustand des PROT DEC (W) Schutzdecodiersignals abhängt, wenn der Eintrag zuletzt geschrieben wurde. Insbesondere, wenn das PROT DEC (W) Schutzdecodiersignal ausgegeben war, wird das Ausgangssignal vom Inverter 154 negiert, und der Transistor 157 ist aus. Andererseits, wenn das PROT DEC (W) Schutzdecodiersignal negiert war, wird das Ausgangssignal vom Inverter 154 ausgegeben, und der Transistor 157 ist ein.
  • Ähnlich hängt der Zustand des Transistors 156 von dem Zustand des P CODE (Z) Schutzcodesignals ab. Wenn das P CODE (Z) Schutzcodesignal ausgegeben ist, ist der Transistor 156 ein, wohingegen, wenn das Signal negiert ist, der Transistor 156 aus ist.
  • Die Transistoren 156 und 157 steuern den Zustand der Leitung 183 und somit den ausgegebenen und negierten Zustand des ACCESS (X) Signals, das von ihr übertragen wird. Wenn beide Transistoren 156 und 157 ein sind, existiert ein Stromweg zwischen der Leitung 183 und der Erde durch die Zelle 151 und dementsprechend wird das ACCESS (X) Signal negiert. Andererseits, wenn entweder der Transistor 156 oder der Transistor 157 aus ist, existiert kein Stromweg zwischen der Leitung 183 und der Erde durch die Zelle 151. Wenn kein Stromweg durch die anderen Zellen in dem Eintrag in der Schutzlogik 113 existiert, wird das ACCESS (X) Signal ausgegeben.
  • Es ist verständlich, daß die Zelle 151 im wesentlichen einen Vergleich zwischen dem zuvor geschriebenen PROT DEC (W) decodierten Schutzsignal, das zuvor von dem Flip-Flop zwischengespeichert wurde, das die Inverter 154 und 155 aufweist, und dem P CODE (Z) Signal durchführt, das vom Decodierer 121 während einer Zugriffsnachfrage erzeugt wird. Insbesondere negiert die Zelle 151 das ACCESS (X) Signal nur, wenn das P CODE (Z) Signal vom Decodierer 121 ausgegeben wird und wenn das zuvor zwischengespeicherte PROT DEC (W) decodierte Schutzsignal vom Decodierer 120 negiert ist, womit angezeigt wird, daß der Prozessor 30 nicht auf einem ausreichend hohen Privileg-Niveau arbeitet.
  • Das HIT SEL (X) Trefferauswahlsignal und das ACCESS (X) Signal werden mit einem UND-Gatter 190 gekoppelt. Wenn das HIT SEL (X) Trefferauswahlsignal und das ACCESS (X) Signal ausgegeben werden, erzeugt das UND-Gatter 190 das NO STALL (X) Signal für den Umsetzpuffer-260-Eintrag, das anzeigt, daß der Prozessor 30 kann, wenn das TB.V Umsetzpuffer-260-Gültigkeitszeichen im Satz 115 und PTE.V Seitentabelleneintrag-Gültigkeits-Zeichen im Satz 116, wie weiter unten beschrieben, konditioniert sind. Andererseits, wenn das NO STALL Signal ausgegeben ist, führen andere Schaltungen innerhalb des Prozessors 30 eine korrigierende Aktion durch. Insbesondere, wenn kein HIT SEL (X) Trefferauswahlsignal ausgegeben ist, können die anderen Schaltungen einen Seitentabelleneintrag vom Speicher 11 (Fig. 1) erhalten und eine Umsetzung versuchen. Gleichzeitig kann der Seitentabelleneintrag, der aus dem Speicher 11 gelesen wird, in einen Eintrag in dem Umsetzpuffer 260 (Fig. 4A) geschrieben werden, indem die NLU Nicht-Zuletzt-Verwendet-Zeichen 114 verwendet werden.
  • Andererseits, wenn das ACCESS (X) Signal negiert ist, koppelt ein Inverter 191 ein ausgegebenes Signal mit einem Eingang des UND-Gatters 192. Wenn das entsprechende HIT SEL (X) Trefferauswahlsignal ausgegeben ist, was eine Übereinstimmung im inhaltsadressierbaren Speicher 110 anzeigt, wird das UND-Gatter 192 erregt, um ein ACC VIOL (X) Zugriffsverletzungssignal auszugeben, das anzeigt, daß der Prozessor 30 nicht den erforderlichen Betriebsschutz-Niveaumodus hat, um die nachgefragte Zugriffsoperation durchzuführen. Der Prozessor kann herkömmliche Wiederherstellungsoperationen in Antwort auf die Zugriffsverletzung durchführen.
  • Wie angemerkt wurde, verwendet der Prozessor 30 auch die Zustände der TB.V Umsetzpuffer-260-Gültigkeits-Zeichen 115 und der PTE.V Seitentabelleneintrag-Gültigkeits-Zeichen 116 (Fig. 4A) wenn ein NO STALL (X) Signal ausgegeben ist. Da die Strukturen der Zeichen ähnlich sind, wird nur eines der PTE.V Seitentabelleneintrag-Gültigkeits-Zeichen 116 im Detail beschrieben. Gemäß der Fig. 4B-2, wenn der Seitentabelleneintrag in dem Eintrag im Umsetzpuffer 260 gültig ist, wenn der Umsetzpuffer-260-Eintrag geschrieben wurde, war das PTE.V WRT Seitentabelleneintrag-Gültigkeits-Schreibsignal ausgegeben, wodurch das Flip Flop gesetzt wird, das die Inverter 164 und 165 aufweist, und wodurch das PTE.V Seitentabelleneintrag-Gültigkeits-Zeichen gesetzt wird. In diesem Zustand war der Eingang des Inverters 164 auf einem hohen Spannungsniveau, und sein Ausgang war auf einem niedrigen Spannungsniveau.
  • In diesem Zustand hält ein Inverter 166 einen Transistor 167 in einem Ein-Zustand. Das ausgegebene HIT SEL (X) Trefferauswahlsignal, das mit dem Umsetzpuffer-260-Eintrag verbunden ist, schaltet einen anderen Transistor 168 ein, der in Serie mit dem Transistor 167 zwischen einer Leitung 169 und Erde verbunden ist. Somit, wenn beide Transistoren 167 und 168 in einer Zelle 161 eingeschaltet sind, wird ein Erde-Niveausignal an die Leitung 169 angelegt. Der Inverter 170 komplementiert das Signal auf ein hoch ausgegebenes PTE V OUT Seitentabelleneintrag-Gültigkeits-Aus-Signal.
  • Die Leitung 169 ist gemeinsam mit Transistoren verbunden, die den Transistor 168 in allen Zellen 161 in allen Einträgen im Umsetzpuffer 260 (Fig. 4A) entsprechen. Somit, wenn ein HIT SEL (X) Signal in irgendeinem der Umsetzpuffer-260-Einträge ausgegeben wird, wenn das PTE.V Zeichen in diesem Umsetzpuffer- 260-Eintrag gesetzt ist, sind dann beide Transistoren 167 und 168 auf ein und ein Erde-Niveausignal wird an die Leitung 169 angelegt.
  • Andererseits, wenn das PTE.V Seitentabelleneintrag-Gültigkeits- Zeichen gelöscht ist, d. h., wenn das zuvor geschriebene PTE V WRT Seitentabelleneintrag-Gültigkeits-Schreibsignal negiert wurde, ist es verständlich, daß der Transistor 167 auf aus ist, wodurch die Leitung 169 gegenüber Erde isoliert wird. Wenn die Leitung 169 vor der Umsetzoperation vorgeladen wird, wird das sich ergebende PTE V OUT Seitentabelleneintrag-Aus-Signal vom Inverter 170 negiert.
  • Die PTE.M Seitentabelleneintrag-Modifiziert-Zeichen 117 sind ähnlich zu den PTE.V Seitentabelleneintrag-Gültigkeits-Zeichen 116 strukturiert und arbeiten in einer ähnlichen Art und Weise. Das PTE.M Signal wird jedoch in Antwort auf ein PTE.M WRT Seitentabelleneintrag-Mmodifiziert-Schreibsignal konditioniert, das nur ausgegeben wird, wenn die Seite im Speicher 11 geschrieben wird. Die Zelle 171 (Fig. 4B-2) stellt eine Ausführungsform eines der PTE.M Seitentabelleneintrag-Zeichen 117 dar.
  • Nachdem die Seitenrahmennummer von der Schaltung 112 (Fig. 4A) gesendet worden ist und das NO STALL Signal erzeugt wurde, negiert der Prozessor das PH2 Taktsignal, das den Transistor 185 (Fig. 4B-1) ausschaltet, und gibt ein PH4 Taktsignal aus, das den Transistor 193 einschaltet. Der Transistor 193 koppelt ein Erde-Niveausignal mit der Leitung 182, wodurch jedes HIT SEL (X) Signal negiert wird, das ausgegeben worden sein könnte. Der Prozessor negiert dann das PH4 Taktsignal und der Umsetzpuffer 260 (Fig. 4A) ist dann dazu bereit, eine virtuelle Adresse zu empfangen.
  • Es ist verständlich, daß der Umsetzpuffer 260 eine Bestimmung erlaubt, ob der Prozessor in einem ausreichenden Betriebsprivileg-Niveaumodus arbeitet, um einen Zugriff durchzuführen, und zwar gleichzeitig mit der Auswahl und der Sendung einer Seitenrahmennummer, die für die Umsetzung der virtuellen Adresse in die physikalische Adresse erforderlich ist. In zuvor bekannten Umsetzpuffern wurden die codierten Inhalte des Schutzfeldes von den Umsetzpuffern mit der Seitenrahmennummer gesendet und eine Bestimmung wurde zu diesem Zeitpunkt durchgeführt, ob der Prozessor einen erforderlichen Betriebsprivileg-Niveaumodus hatte, um die Operation durchzuführen. Dies verzögert den Prozessor, eine Zugriffsverletzung zu erkennen, wenn er nicht in einem erforderlichen Betriebsprivileg-Niveaumodus arbeitete, um den Zugriff zu machen.
  • Cache-Logik
  • Wie oben stehend beschrieben wurde, enthält der Prozessor 30 einen Cache-Speicher 35 (Fig. 1B), der Kopien von zumindest einigen Daten speichert, die kurz zuvor vom Speicher 11 aus empfangen wurden. Wenn Daten dann aus der adressierten Stelle im Speicher 11 ausgelesen werden sollen, bestimmt der Prozessor 30 zuerst, ob der Cache-Speicher 35 eine Kopie der Daten in der adressierten Stelle enthält. Die Fig. 5 zeigt ein Funktionsblockdiagramm der Schaltungen im Cache-Speicher 35 zum Bestimmen, ob der Cache die identifizierten Daten enthält, und auch zum Senden unter der Steuerung der Busschnittstelleneinheit 33 der Daten auf dem internen IDAL Bus 34.
  • Mit Bezug auf die Fig. 5 enthält der Cache 35 zwei Datenspeichersätze 39A und 39B, von denen jeder in einer spezifischen Ausführungsform vierundsechzig Einträge enthält, die in einen Zeichensatz 42A, 42B, einen Merkmalssatz 41A, 41B und einen Datenspeicherbereich 38A, 38B aufgeteilt sind. Jeder Eintrag in den Merkmalssätzen 41A und 41B enthält auch ein Paritätsbit zum Verifizieren der Unversehrtheit der Merkmalsinformationen, die in den entsprechenden Merkmalssätzen gespeichert sind. Jeder Eintrag in dem Datenspeicherbereich 38A und 38B speichert zwei Wörter oder acht Byte von Daten, wobei ein Wort ein Wort hoher Ordnung und das andere Wort ein Wort niedriger Ordnung aufweist.
  • Der Cache-Speicher 35 ist als Zwei-Weg-Satz-Assoziativ-Cache organisiert, in dem der Abschnitt niedriger Ordnung der Adresse einen von vierundsechzig Einträgen in jedem der Datenspeichersätze 39A und 39B identifiziert. Wenn ein Eintrag in einem der Datenspeichersätze 39A und 39B im Cache 35 mit Daten vom Speicher 11 aus geschrieben wird, identifiziert der Abschnitt niedriger Ordnung der physikalischen Adresse den Eintrag in dem Datenspeichersatz, in den die Daten geschrieben werden sollen, und der Abschnitt hoher Ordnung der physikalischen Adresse mit einem Paritätsbit, wird in dem Merkmalssatz 41A oder 41B gespeichert.
  • Die virtuelle Adresse in einem Register 300 in den Quellenregistern 257 (Fig. 1B) weist in der beschriebenen Ausführungsform zweiunddreißig Bits auf, wobei die Bits (31 : 9) den Abschnitt höherer Ordnung und die Bits (8 : 0) den Abschnitt niedriger Ordnung aufweisen. Der Abschnitt höherer Ordnung wird als VA SRCE (31 : 9) Virtuell-Adreß-Quellensignale zur Umsetzlogik 301 gesendet, die eine Seitenrahmennummer erzeugt und sie zu den Seitenrahmennummernregister 302 im Cachespeicher 35 sendet. Die Logik 301 kann den Umsetzpuffer 260, der oben in Verbindung mit den Fig. 4A, 4B-1 und 4B-2 beschrieben wurde, aufweisen und sie kann auch andere herkömmliche Mechanismen zum Erzeugen der Seitenrahmennummer aus dem Abschnitt höherer Ordnung der virtuellen Adresse aufweisen. Die Bits (8 : 0) der virtuellen Adresse ändern sich während der Adreßumsetzung nicht.
  • Die Bits (8 : 3) des Abschnitts niedriger Ordnung der virtuellen Adresse werden vom Register 300 als VA SRCE (8 : 3) Virtuell- Adreß-Quellensignale zu den Datenspeichersätzen 39A und 39B gesendet. Die VA SRCE (8 : 3) Virtuell-Adreß-Quellensignale identifizieren einen von vierundzechzig Einträgen in beiden Datenspeichersätzen. In Antwort auf den Empfang der VA SRCE (8 : 3) Virtuell-Adreß-Quellensignale werden die Inhalte des identifizierten Eintrags von dem entsprechenden Datenspeichersatz aus gesendet.
  • Insbesondere werden die Inhalte des ausgewählten Eintrags in dem Datenspeichersatz A als VALID SET A und TAG + PARITY SET A Signale zu einem Vergleicher 303 gesendet. Das Wort höherer Ordnung des identifizierten Eintrags wird als HIGH A Signale zu einem Multiplexer 304 gesendet, und das Wort niedriger Ordnung wird als LOW A Signale zum Multiplexer 304 gesendet. Der Multiplexer wird von dem VA SRCE (2) Virtuell-Adreß-Quellensignal entsprechend dem Bit (2) des Registers 300 gesteuert. In Antwort auf das VA SRCE (2) Virtuell-Adreß-Quellensignal koppelt der Multiplexer 304 eines der Eingangssignale als DATA SET A Signale mit einem Durchlaßtreiber 310.
  • Ähnliche Signale werden zum Komparator 305 und zum Multiplexer 306 von dem Datenspeichersatz 39B aus auf der Basis seines Eintrags gesendet, der von den VA SRCE (8 : 3) Virtuell-Adreß- Quellensignalen identifiziert wird. Der Multiplexer 306 wird auch von dem VA SRCE (2) Virtuell-Adreß-Quellensignal gesteuert, um eines der HIGH B oder LOW B Eingangssignale von dem Datenspeicherbereich 38B aus mit dem Durchlaßtreiber 311 als DATA SET B Signale zu koppeln.
  • Die Seitenrahmennummer im Register 302 wird auch zu den Komparatoren 303 und 305 gesendet. Die Seitenrahmennummer wird auch zu einem Paritätsgenerator 307 gesendet, der ein PAR Paritätssignal erzeugt, das auch zu den Komparatoren 303 und 305 gesendet wird. Wenn die Seitenrahmennummer vom Register 302 und das PAR Paritätssignal vom Paritätsgenerator 307 dem TAG + PARITY SET A Signal entspricht, und wenn das VALID SET A Signal vom Zeichensatz 41A ausgegeben ist, gibt der Komparator 303 ein SET A HIT Signal aus. Ähnlich, wenn die Seitenrahmennummer vom Register 302 und das PAR Paritätssignal vom Paritätsgenerator 307 dem TAG + PARITY SET B Signal entspricht und wenn das VALID SET B Signal vom Zeichensatz 41B ausgegeben ist, gibt der Komparator 305 das SET B HIT Signal aus.
  • Das SET A HIT Signal und das SET B HIT Signal werden mit einem ODER-Gatter 312 gekoppelt, das ein ausgegebenes HIT Signal erzeugt, wenn entweder das SET A HIT Signal oder das SET B HIT Signal ausgegeben ist. Das HIT Signal wird zu einer Busschnittstelleneinheit 33 gesendet, um anzuzeigen, daß der Cache-Speicher 35 die Daten, die durch die virtuelle Adresse im Register 300 identifiziert werden, enthält. In Antwort darauf gibt die Busschnittstelleneinheit 33 ein IDAL CACHE XMIT internes Bus-Cache-Sendesignal aus.
  • Das SET A HIT Signal vom Komparator 303 erregt auch, wenn ausgegeben, einen Eingang des UND-Gatters 313. Wenn das IDAL CACHE XMIT interne Bus-Cache-Sendesignal ausgegeben wird, koppelt der Durchlaßtreiber 310 das DATA SET A Signale vom Multiplexer 304 aus auf den internen IDAL Bus 34 aus. Ähnlich erregt auch das SET B HIT Signal vom Komparator 305, wenn es ausgegeben wird, einen Eingang des UND-Gatters 314, und wenn das IDAL CACHE XMIT interne Bus-Cache-Sendesignal ausgegeben wird, koppelt der Durchlaßtreiber 311 die DATA SET B Signale vom Multiplexer 306 auf den internen IDAL BUS 34 aus.
  • Die Anordnung des Cache-Speichers 35, die in Fig. 5 gezeigt wird, stellt mehrere Vorteile zur Verfügung. Erstens, obwohl der Cache-Speicher 35, der in der Fig. 5 gezeigt wird, ein Zwei-Wege-Satz-Assoziativ-Cache ist, ist es verständlich, daß er auf einen n-Weg ("n" ist eine ganze Zahl)-Satz-Assoziativ- Cache sehr leicht nur durch Verwendung zusätzlicher Schaltungen erweitert werden kann, wie es für jeden Satz in Fig. 5 für die zusätzlichen Sätze dargestellt ist. Zudem, da auf die Datenspeichersätze 39A und 39B anfänglich auf der Basis der Bits (8 : 3) der virtuellen Adresse zugegriffen wird, die während der Umsetzung der virtuellen Adresse in die physikalische Adresse unveränderlich bleiben, kann zur gleichen Zeit, wenn die Umsetzung der Bits höherer Ordnung (31 : 9) stattfindet, um die Seitenrahmennummer zu erzeugen, die Trefferbestimmung oder Fehlerbestimmung sehr schnell stattfinden. Wenn erforderliche Daten in dem Cache-Speicher 35 sind, können die Daten beschleunigt aus diesem erhalten werden, und wenn sie nicht im Cache- Speicher 35 sind, kann die Busschnittstelleneinheit 33 eine Ausleseoperation für die Daten sehr kurz danach initiieren, nachdem die Seitenrahmennummer erzeugt worden ist.
  • Busschnittstellenschaltung 33
  • Eine Busschnittstellenschaltung 33 in einer Ausführungsform des Prozessors 30 wird in der Fig. 6 dargestellt. Gemäß Fig. 6 enthält die Busschnittstellenschaltung 33 eine Zustandsmaschine 270, die den Bus 13 (Fig. 1A) steuert, und eine zweite Zustandsmaschine 271, die die Operationen über den internen IDAL Bus 34 steuert. Die beiden Zustandsmaschinen 270 und 271 arbeiten unabhängig, mit der Ausnahme von einigen Zeichen- und Steuersignalen, die weiter unten beschrieben werden, die der Zustandsmaschine 271 erlauben, der Zustandsmaschine 270 anzuzeigen, daß Operationen über den Bus 13 erforderlich sind, und von Antwortsignalen, die von der Zustandsmaschine 270 erzeugt werden, um die Beendigung der Operationen der Zustandsmaschine 271 anzuzeigen.
  • Die Zustandsmaschine 271, die den internen IDAL Bus 34 steuert, empfängt Eingangssignale von einer Anzahl von Quellen innerhalb des Prozessors 30, die im allgemeinen von der Steuerlogik 273 angezeigt werden, von mehreren Anschlüssen am Bus 13, die im allgemeinen durch Stifte 274 des Bus 13 angezeigt werden, und von Mikrobefehlen von der Steuerschaltung 40 aus (Fig. 1B). Die Zustandmaschine 271 sendet Ausgangssignale, um eine Anzahl von Schaltungen innerhalb des Prozessors 30 zu steuern, einschließlich der Logikschaltungen 272, die die Übertragungen mit dem Gleitkommaprozessor 31 steuern, und mehrere Signale, die die Funktion des Cache und des Adreß-Eingangsmultiplexers 264 (Fig. 1B) steuern. Zudem steuern auch Ausgangssignale von der Zustandsmaschine 271 die Logik 276, die Zeichen (nicht gezeigt) enthält, die anzeigen, daß eine Leseoperation anhängig ist, was wiederum durch den Zustand des RD REQ Lesenachfragesignals angezeigt wird, daß eine Schreiboperation anhängig ist, wie es durch den Zustand des WRT REQ Schreibnachfragsignals angezeigt wird, und daß eine Übertragung von Operanden von dem Prozessor 30 zu dem Gleitkommaprozessor 31 anhängig ist, wie es durch den Zustand eines BRDCST REQ Broadcast-Nachfragesignals angezeigt wird.
  • Die Steuerlogik 276 kann unter der Steuerung des Betriebssystems auch bestimmen, ob gewisse Informationen, die über den Bus 13 (Fig. 1A) während einer Leseoperation empfangen werden, in dem Cache 35 (Fig. 1B) gespeichert werden sollen. Z.B. kann das Betriebssystem den Prozessor 35 konditionieren, alle Informationen zu speichern, die er in dem Cache 35 liest. Alternativerweise kann das Betriebssystem das Speichern von Prozessorbefehlen in dem Cache 35 nicht erlauben, sondern kann nur das Speichern von Daten, die verarbeitet werden sollen, in dem Cache erlauben. Im allgemeinen erlaubt das Betriebssystem jedoch nicht das Speichern von Informationen im Cache 35, die von verschiedenen Steuerregistern in den anderen Abschnitten des Systems aus empfangen werden, das in Fig. 1A dargestellt wird.
  • Die Steuerlogik 276 konditioniert ein CACHE ACC cacheverarbeitbares Zugriffssignal, um das Cache-Verarbeiten der Informationen, die über den Bus 13 empfangen werden, zu steuern.
  • Wie obenstehend beschrieben wurde, kann eine Einheit, die außerhalb des Prozessors 30 ist, auch steuern, ob die Übertragung mittels eines CCTL Cache-Steuersignals auf der Leitung 61 (Fig. 1A) cache-verarbeitet werden soll.
  • Die Zustandsmaschine 271 steuert direkt oder indirekt durch eine andere Steuerlogik (nicht gezeigt) auch das Laden von Schreibdaten und von Lese- und Schreibadressen in die Zwischenspeicher 250 bis 252 hinein, und steuert auch die Übertragung von Lesedaten vom Eingangsdatenzwischenspeicher 254 aus auf der Basis der Zustände der Signale an den Stiften 274.
  • Die Zustandsmaschine 270, die die Übertragungen über den Bus 13 steuert, empfängt die RD REQ Lesenachfrage-, die WRT REQ Schreibnachfrage- und die BRDCST REQ Broadcast-Nachfrage-Signale von der Steuerlogik 276 und auch Signale von den Busstiften 274, und erzeugt Signale, die zu Logikschaltungen 277 gesendet werden, die den Zustand mehrerer der Signale steuern, die der Bus 13 aufweist. Zudem erzeugt die Zustandsmaschine 270 Signale, die zur Steuerlogik 280 gesendet werden, die wiederum den Betrieb der Zwischenspeicher 250, 251, 252 und 254 und des Multiplexers 253 (Fig. 1B) steuert, um Signalen zu erlauben, auf die DAL Daten/Adreß-Leitungen 50 des Busses 13 ausgekoppelt zu werden bzw. von diesen aus empfangen zu werden. Nachdem eine Leseoperation abgeschlossen worden ist, gibt die Zustandsmaschine 270 auch ein CLR RD FLAGS Löschen- Lesen-Zeichen-Signal aus, das die Steuerlogik 276 dazu freigibt, das RD REQ Lese-Nachfragesignal zu negieren.
  • Mit diesem Hintergrund wird der Betrieb der Bussteuerschaltung 33, die in Fig. 6 dargestellt wird, nachfolgend beschrieben. Während der Schreiboperation, wie durch die Steuerschaltung 40 freigegeben wird, wenn das DMA OR WRT PND (DMA oder schreibanhängig) Signal nicht von der Steuerlogik 273 ausgegeben wird, lädt die Zustandsmaschine 271 zuerst die Adresse der Stelle, die in den Schreibadreß-Zwischenspeicher 251 (Fig. 1B) eingeschrieben werden soll, und bestimmt, ob die Stelle im Cache 35 (Fig. 1B) cache-verarbeitet ist. Wenn das DNA OR WRT PND Signal ausgegeben ist, verwendet entweder eine andere Einheit in dem System, das in Fig. 1A dargestellt ist, den Bus 13 oder die Zustandsmaschine 271 hat eine Schreibadresse und Daten, die nicht über den Bus 13 übertragen worden sind, dazu freigegeben, in die Zwischenspeicher 251 bzw. 250 (Fig. 1B) geladen zu werden.
  • Wenn das DNA OR WRT PND (DNA oder schreibanhängig) Signal nicht ausgegeben ist, wird eine Bestimmung gemacht, ob die Stelle, die geschrieben werden soll, cache-verarbeitet ist. Wenn die Stelle cache-verarbeitet ist, muß der Eintrag im Cache 35, der dieser Stelle entspricht, mit neuen Daten aktualisiert werden. Um zu bestimmen, ob die Stelle cache-verarbeitet ist, erzeugt die Zustandsmaschine 271 CACHE FTN (1 : 0) Cache- Funktionssignale, die den Cache dazu freigeben, daß er gelesen wird, und ferner CACHE ADRS (1 : 0) Signale, die den Multiplexer 264 dazu freigeben, die physikalische Adresse zu verwenden, die von der Virtuell-Adreß-Umsetzschaltung 37 erzeugt wird. Während dieser Operation wird das IDAL CACHE XMIT Cache-Sendesignal (Fig. 5) negiert, um die Daten vom Cache dafür zu sperren, auf den internen Datenbus 34 ausgekoppelt zu werden. Wenn die Stelle cache-verarbeitet ist, wird das HIT Signal von einem UND-Gatter 312 (Fig. 5) ausgegeben, was in dem Zustand des MISS Signals von der Steuerlogik 273 wiedergegeben wird.
  • Wenn das MISS Signal nicht ausgegeben wird, wird die Stelle, die beschrieben werden soll, cache-verarbeitet. In Antwort auf ein negiertes MISS Signal, erzeugt die Zustandsmaschine 271 CACHE FTN (1 : 0) Cache-Funktionssignale, die eine Cache- Schreiboperation freigeben, und CACHE ADRS (1 : 0) Cache- Adreßsignale, die den Multiplexer 264 dazu freigeben, die Adresse von der Virtuell-Adreß-Umsetzschaltung 37 zu verwenden. Gleichzeitig werden die Daten, die in den Cache-Eintrag hineingeschrieben werden, in dem Schreibdatenzwischenspeicher 250 (Fig. 1B) gespeichert, und die Zeichen in der Steuerlogik werden konditioniert, um ein ausgegebenes WR REQ Schreibnachfragesignal zu erzeugen. Während dieser Operation wird das MBOX STALL Signal ausgegeben, um die Virtuell-Adreß- Umsetzschaltung für den Betrieb zu sperren.
  • Andererseits, wenn das MISS Signal ausgegeben wird, ist die Stelle, die geschrieben werden soll, nicht cache-verarbeitet. In Antwort auf das ausgegebene MISS Signal, gibt die Zustandsmaschine die Schreibdaten dazu frei, im Schreibdatenzwischenspeicher 250 (Fig. 1B) zwischengespeichert zu werden, und das WRT REQ Signal dazu frei, durch die Steuerlogik 276 ausgegeben zu werden. Zudem werden die CACHE ADRS (1 : 0) Cache-Adreßsignale konditioniert, um einen Auffrisch(refresh)-Zähler 262 (Fig. 1B) zu inkrementieren, und um den Multiplexer 264 dafür freizugeben, die Adressen mit den Zeichen 42, den Merkmalen 41 und den Datenspeicher 38 (Fig. 1B) zu koppeln, um ihnen zu erlauben, aufgefrischt zu werden. Während dieser Operation wird das MBOX STALL Signal auch ausgegeben, um die Virtuell-Adreß-Umsetzschaltung für den Betrieb zu sperren, um sie davon abzuhalten, eine andere physikalische Adresse zu erzeugen.
  • Nachdem die Schreiboperation abgeschlossen wurde, wird das DNA OR WRT PND (DNA oder schreibanhängig) Signal negiert. Dies erlaubt einer anderen Adresse und Schreibdaten, in die Zwischenspeicher 250 und 251 (Fig. 1B) geladen zu werden. Die Auffrischoperation wird auch freigegeben.
  • Die Operationen, die von der Zustandsmaschine 271 während einer Leseoperation durchgeführt werden oder freigegeben werden, hängen davon ab, ob die nachgefragten Informationen ein Befehl oder Daten sind und ob die nachgefragten Informationen im Cache 35 (Fig. 1B) waren. Die Informationen sind im Cache, wenn die Stelle, die durch die Adresse identifiziert wird, cacheverarbeitet ist und wenn es keinen Paritätsfehler bezüglich entweder dem Merkmal 41A, 41B oder den Daten 38A, 38B (Fig. 5) gibt, die den Cache-Eintrag unverwendbar machen würden. Eine Leseoperation kann erforderlich sein, um einen Befehl auszulesen, wobei in diesem Fall die Steuerlogik 273 ein IB REQ Befehlspuffernachfragesignal ausgibt. Ansonsten gibt die Steuerschaltung 40 ein RD Lesesignal aus. Wenn die erforderlichen Informationen nicht im Cache 35 sind, gibt die Steuerlogik 273 auch ein READ MISS Signal aus. Das READ MISS Signal ist das Komplement des HIT Signals, das in Fig. 5 dargestellt ist.
  • In Antwort auf ein ausgegebenes RD Lesesignal von der Steuerschaltung 40 oder auf die Ausgabe des IB REQ Befehlspuffernachfragesignals erzeugt die Zustandsmaschine 271 CACHE FTN (1 : 0) Cache-Funktionssignale, die eine Cache-Lesung freigeben, und ferner CACHE ADRS (1 : 0) Cache-Adreßsignale, die den Multiplexer 264 (Fig. 1B) dazu freigeben, die Adresse von der Virtuell- Adreß-Umsetzlogik 37 zu verwenden. Gleichzeitig gibt die Zustandsmaschine 271 das ARM ADRS STR Ausrüst-Adreß-Abtastsignal aus, das die Adresse von der Virtuell-Adreß-Umsetzlogik 37 dafür freigibt, in den Lese-Adreß-Zwischenspeicher 252 geladen zu werden. Wenn die Operation in Antwort auf das IB REQ Signal war, gibt die Zustandsmaschine 271 auch ein INIT IB REQ Initialisiere-Befehlspuffer-Nachfragesignal aus, das die Steuerlogik 273 dafür freigibt, ein Zeichen zu setzen, das wiederum die Ausgabe eines PREV IB REQ Vorhergehendes-Befehlspuffer-Nachfragesignal freigibt. Wenn die Informationen im Cache 35 sind, erlaubt die Zustandsmaschine 261, daß die Informationen vom Cache 35 ausgekoppelt werden, wie obenstehend in Verbindung mit Fig. 5 beschrieben wurde, und die Operation ist beendet.
  • Wenn die Informationen nicht im Cache 35 sind und wenn das DNA OR WRT PND (DNA oder schreibanhängig) Signal ausgegeben ist, gibt die Zustandsmaschine 271 das STALL Signal und das MBOX STALL Signal aus, um den Prozessor 30 in den Stillstand zu bringen, und ferner CACHE ADRS (1 : 0) Signale, die eine Auffrischoperation erlauben. Der Stillstand erlaubt, daß die Schreiboperation abgeschlossen wird, bevor mit der Leseoperation fortgefahren wird.
  • Wenn das DNA OR WRT PND (DNA oder schreibanhängig) Signal negiert ist, fährt die Leseoperation fort. Die Zustandsmaschine 271 gibt die Steuerlogik 276 frei, das RD REQ Lesenachfragesignal auszugeben. Die Zustandsmaschine 271 überwacht dann das CACHEABLE Signal, das CCTL Cache-Steuersignal, das RDY Bereitsignal und das ERR Fehlersignal, um das Ende der Leseoperation zu bestimmen. Wenn das CACHEABLE Signal oder das CCTL Cachesteuersignal angeben, das die Informationen nicht cache-verarbeitet werden sollen, gibt es eine einzige Übertragung über den Bus 13. Andererseits, wenn die Informationen cacheverarbeitet werden sollen, sind zwei Übertragungen erforderlich, eine für das untere Wort und die andere für das obere Wort in dem Cache-Eintrag (Fig. 5).
  • Wenn die Übertragung cache-verarbeitet werden soll, wenn das RDY Bereitsignal empfangen wird und wenn das DAL PAR ERR Paritätsfehlersignal nicht ausgegeben wird, was keinen Paritätsfehler in den empfangenen Imformationen angibt, gibt die Zustandsmaschine den Multiplexer 264 (Fig. 1B) dafür frei, die Adresse von der Virtuell-Adreß-Umsetzschaltung zu verwenden, um einen Eintrag im Cache 35 auszuwählen, und gibt die Informationen dazu frei, entweder in das ausgewählte obere Wort oder das ausgewählte untere Wort geladen zu werden. Das Wort im Cache 35, in das die Informationen geladen werden soll, hängt von der Bedingung des VA (2) Virtuell-Adreß-Bits (siehe Fig. 5) ab. Die Information werden dann mit dem Datenweg 36 (Fig. 1B) gekoppelt.
  • Wenn das DAL PAR ERR Paritätsfehlersignal ausgegeben ist, oder wenn das ERR Fehlersignal auf der Leitung 55 (Fig. 1A) ausgegeben ist, was eine Fehlerantwort durch die andere Einheit, die an der Übertragung beteiligt ist, anzeigt, hängt die Operation davon ab, ob das PREV IB REQ Vorhergehendes-Befehlspuffernachfragesignal ausgegeben ist. Wenn es ausgegeben ist, wird die Steuerschaltung 40 (Fig. 1B) durch ein ausgegebenes IB FILL ERR Befehlspuffer-Auffüll-Fehlersignal benachrichtigt, um ihr zu erlauben, eine korrigierende Aktion auszuführen. Wenn das PREV IB REQ Vorhergehendes-Befehlspuffer-Nachfragesignal nicht ausgegeben ist, wird das STALL Signal und das MBOX STALL Signal ausgegeben, um den Prozessor 30 in den Stillstand zu versetzen, und ein TRAP REQ Unterbrechungsnachfragesignal wird ausgegeben, das der Prozessorsteuerschaltung 40 erlaubt, ausgewählte Wiederherstellungsoperationen durchzuführen.
  • Wenn die empfangenen Informationen cache-verarbeitet werden sollen und wenn entweder das ERR Fehlersignal oder das DAL PAR ERR Paritätsfehlersignal ausgegeben ist, wenn die Daten empfangen werden, fährt die Zustandsmaschine 271 damit fort, ein zweites Wort dafür freizugeben, empfangen und im Cache 35 gespeichert zu werden. Wenn das zweite Wort in geeigneter Weise empfangen worden ist, wird es im Cache 35, wie oben beschrieben, gespeichert. Die Zustandsmaschine 271 erzeugt CACHE ADRS (1 : 0) Cache-Adreßsignale, die den Multiplexer 264 dafür freigeben, die Adresse von der Virtuell-Adreß- Umsetzschaltung 37 zu verwenden, und ferner CACHE FTN (1 : 0) Cache-Funktionssignal, die das zweite Wort dafür freigeben, im Cache-Eintrag gespeichert zu werden. Die Zustandsmaschine 271 gibt jedoch die Informationen nicht dafür frei, zum Datenweg 36 übertragen zu werden.
  • Andererseits, wenn das ERR Fehlersignal oder wenn die DAL PAR ERR Paritätsfehlersignale ausgegeben sind, wird das MBOX STALL Signal ausgegeben, um die Virtuell-Adreß-Umsetzschaltung 37 in den Stillstand zu versetzen, und der Eintrag im Cache, in den das erste Wort geschrieben wurde, wird als ungültig markiert. Zur gleichen Zeit werden die CACHE ADRS (1 : 0) Signale konditioniert, um den Multiplexer 264 dafür freizugeben, die Auffrischadresse vom Auffrischzähler 262 zu verwenden, um die Inhalte des Cache 35 aufzufrischen und um den Zähler zu inkrementieren.
  • Die Zustandsmaschine 271 gibt die Auffrischoperationen dafür frei, immer dann durchgeführt zu werden, wenn die Zustandsmaschine 271 Informationen nicht dafür freigibt, in den Cache 35 geschrieben zu werden oder aus dem Cache 35 gelesen zu werden. Um das Auftreten von Operationen freizugeben, erzeugt die Zustandsmaschine 271 CACHE ADRS Signale, die den Multiplexer 264 dafür freigeben, Auffrischadreßsignale von dem Auffrischzähler 262 zu verwenden, um die Inhalte der Speicherschaltungen 38, 41 und 42 (Fig. 1B) auf herkömmliche Art und Weise aufzufrischen.
  • Die Zustandsmaschine 271 gibt auch Einträge im Cache 35 dazu frei, in Antwort auf ein DNA INV REQ Ungültigkeits-Nachfragesignal von der Steuerlogik 273 ungültig gemacht zu werden. Wie obenstehend in Verbindung mit Fig. 1B beschrieben wurde, wird dieses Signal in Antwort auf das Zusammentreffen eines ausgegebenen CCTL Cache-Steuersignals und eines aus gegebenen ADRS STR Adreßabtastsignals erzeugt, wenn beide Signale durch andere Einheiten in dem System, das in Fig. 1A dargestellt ist, ausgegeben werden. Dies tritt auf, wenn die anderen Einheiten DNA (direct memory access = Direktspeicherzugriff) Operationen mit dem Speicher 11 durchführen, und damit das DMG Direktspeichergewährungssignal ausgegeben wird. Wenn eine andere Einheit Daten zu einer Stelle im Speicher 11 überträgt, die im Cache 35 cache-verarbeitet ist, muß der Cache-Eintrag als ungültig markiert werden. Gemäß Fig. 1B gibt ein UND- Gatter 401 in Antwort auf ein Zusammentreffen des DMG Signals und des ADRS STR Adreßabtastsignals den Eingangsdatenzwischenspeicher 254 dafür frei, die Signale zwischenzuspeichern, die in diesem Fall Adreßsignale auf den DAL Daten/Adreßleitungen 50 sind.
  • In Antwort auf das DNA INV REQ Ungültigkeits-Nachfragesignal versucht die Zustandsmaschine 271 zuerst, eine Leseoperation mit dem Cache 35 durchzuführen, indem sie die Adresse in dem Eingangsdatenzwischenspeicher 254 verwendet, ohne daß sie erlaubt, daß die Daten vom Cache auf den internen Bus 34 ausgekoppelt werden. Wenn das MISS Signal ausgegeben ist, ist die Stelle nicht cache-verarbeitet und nichts weiter passiert.
  • Wenn jedoch das MISS Signal negiert ist, ist die Stelle cacheverarbeitet, die durch die Adresse in dem Eingangsdatenzwischenspeicher 254 identifiziert wird, und die Zustandsmaschine initiiert eine Cache- Ungültigmachungsoperation. Dabei erzeugt sie CACHE FTN (1 : 0) Cache-Funktionssignale, die eine Ungültigmachungsoperation freigeben, und ferner CACHE ADRS (1 : 0) Cacheadreßsignale, die den Multiplexer 264 dafür freigeben, die Inhalte des Eingangsdatenzwischenspeichers bei der Ungültigmachung zu verwenden.
  • Die Zustandsmaschine 270 arbeitet in Antwort auf das CCTL Cache-Steuersignal, das DMR Direktspeichernachfragesignal, das RDY Bereitsignal und das ERR Fehlersignal vom Bus 13, ferner in Antwort auf das RD REQ Lesenachfragesignal, das WRT REQ Schreibnachfragesignal, das BRDCST REQ Broadcast- Nachfragesignal und das CACHE ACC Cache-Verarbeitbar-Zugriffsignal von der Steuerlogik 276 und in Antwort auf das INH DNA Sperr-Direktspeicherzugriffssignal und das ARM RD REQ Ausrüst-Lesenachfragesignal von der Zustandsmaschine 271. Wenn die Zustandsmaschine 270 ein ausgegebenes DMR Direktspeichernachfragesignal empfängt, das anzeigt, daß eine andere Einheit in dem System, das in Fig. 1A dargestellt ist, es wünscht, eine Übertragung über den Bus 13 durchzuführen, negiert sie, sofern nicht das INH DNA Sperr-DNA-Signal oder das BRDCST REQ Broadcast-Nachfragesignal ausgegeben werden, das DIS DMG Sperr-Direktspeichergewährungssignal, das wiederum die Steuerlogik 277 dafür freigibt, das DMG Direktspeichergewährungssignal auszugeben. Das ausgegebene DMG Direktspeichergewährungssignal gibt eine andere Einheit dafür frei, eine Übertragung über den Bus 13 durchzuführen. Zudem gibt die Zustandsmaschine 270 das DATA IN Signal aus, das die DAL Steuerlogik 280 dafür freigibt, die DAL Daten/Adreß-Leitungen 50 zu konditionieren, um andere Einheiten in dem System zu erlauben, sie zu verwenden. Die Zustandsmaschine gibt auch das TRI-STATE STR Signal aus, um die Steuerlogik 277 dafür freizugeben, anderen Einheiten die Verwendung des DATA STR Datenabtastsignals, des ADRS STR Adreßabtastsignals und des TR TYPE Übertragungstypsignals zu verwenden.
  • Alternativerweise, wenn keine andere Einheit in dem System eine Übertragung über den Bus 13 durchführen soll, gibt die Zustandsmaschine 270 die Übertragungen über ihn in Antwort auf das RD REQ Signal, auf das WRT REQ Signal und auf das BRDCST REQ Broadcast-Nachfragesignal von der Steuerlogik 276 frei. Wenn das WRT REQ Schreibnachfragesignal ausgegeben wird, was eine Schreibadresse und Schreibdaten in den Zwischenspeicher 251 bzw. 250 (Fig. 1B) angibt, und wenn das DMR Signal nicht ausgegeben ist, erzeugt die Zustandsmaschine 270 DAL CONT (1 : 0) (DAL Inhalte) Signale, die den Multiplexer 253 dafür freigeben, eine Schreibadresse vom Zwischenspeicher 251 aus auf die DAL Daten/Adreß-Leitungen 50 auszukoppeln. Gleichzeitig gibt die Zustandsmaschine 270 ein ADRS STR EN Adreßabtastfreigabesignal aus, das wiederum die Steuerlogik 277 dafür freigibt, das ADRS STR Adreßabtastsignal auszugeben.
  • Als nächstes erzeugt die Zustandsmaschine 270 DAL CONT (1 : 0) (DAL Inhalte) Signale, die den Multiplexer 253 dafür freigeben, die Inhalte des Schreibdatenzwischenspeichers 250 auf die DAL Daten/Adreß-Leitungen 50 auszukoppeln. Gleichzeitig gibt die Zustandsmaschine 270 ein DATA STR EN Datenabtastfreigabesignal aus, das die Steuerlogik 277 dafür freigibt, das DATA STR Datenabtastsignal auszugeben. Danach wartet die Zustandsmaschine, bis das RDY Bereitsignal oder ERR Fehlersignal ausgegeben werden. Wenn das ausgegebene RDY Signal empfangen wird, wird die Operation durch das Negieren des ADRS STR EN Adreßabtastfreigabesignal und des DATA STR EN Datenabtastfreigabesignal beendet, was wiederum die Steuerlogik 277 dazu freigibt, das ADRS STR Adreßabtastsignal bzw. das DATA STR Datenabtastsignal zu negieren, und die Steuerlogik 276 wird dazu freigegeben, das WRT REQ Signal zu negieren.
  • Andererseits, wenn das ausgegebene ERR Fehlersignal empfangen wird, führt die Zustandsmaschine 270 einen Wiederversuch durch, bei dem sie DAL CONT (1 : 0) (DAL Inhalte) Signale erzeugt, die den Multiplexer 253 dafür freigeben, die Schreibdatensignale von dem Zwischenspeicher 250 aus auf die DAL Daten-Adreß-Leitungen 50 auszukoppeln.
  • Wenn das RDY Bereitsignal und das ERR Fehlersignal ausgegeben sind, wird ein Wiederversuch signalisiert und die Übertragung wird erneut versucht.
  • Wenn keine andere Operation auftritt, erzeugt die Zustandsmaschine 270 DAL CONT (1 : 0) (DAL Inhalte) Signale, die den Multiplexer 253 dafür freigeben, die Inhalte des Lese- Adreß-Zwischenspeichers 252 auf die DAL Daten/Adreß-Leitungen 50 auszukoppeln. Dies erlaubt der Zustandsmaschine 270, eine Leseoperation schnell zu initiieren, wenn andere Signale und Zustände erlauben, daß eine Leseoperation auftritt. Während einer Leseoperation, wenn das RD REQ Lesenachfragesignal ausgegeben ist, gibt die Zustandsmaschine 270 das ADRS STR EN Adreßabtastfreigabesignal aus, das wiederum die Steuerlogik 277 dafür freigibt, das ADRS STR Adreß-Abtastsignal auszugeben. Die Zustandsmaschine 270 gibt dann das DATA IN Daten-Ein-Signal aus, das die Steuerlogik 280 dafür freigibt, die DAL Daten/Adreß-Leitungen 50 zu konditionieren, um andere Einheiten in dem System dafür freizugeben, sie zu verwenden. Gleichzeitig gibt die Zustandsmaschine die DATA STR EN Datenabtastfreigabe aus, die wiederum die Steuerlogik 277 dafür freigibt, das DATA STR Datenabtastsignal auszugeben.
  • Die nächsten Operationen hängen davon ab, ob das CACHE ACC Cache-Verarbeitbar-Zugriffssignal durch die Steuerlogik 276 ausgegeben wird. Wenn das Signal ausgegeben ist, sind die ausgelesenen Daten cache-verarbeitbar und damit werden zwei Worte über den Bus 13 gelesen. Andererseits, wenn das CACHE ACC Cache-Verarbeitbar-Zugriffssignal nicht ausgegeben ist, sind die ausgelesenen Daten nicht cache-verarbeitbar, und nur ein Wort wird über den Bus 13 gelesen. Wenn das CACHE ACC Cache- Verarbeitbar-Zugriffssignal nicht ausgegeben ist, gibt die Zustandsmaschine 270 ein RD DATA LAT Lesedatenzwischenspeichersignal aus, das, wenn es ausgegeben ist, den Eingangszwischenspeicher 254 (Fig. 1B) dafür freigibt, die Signale auf den DAL Daten/Adreß-Leitungen 50 zu empfangen. Wenn das RD DATA LAT Lesedatenzwischenspeichersignal hiernach negiert wird, werden die Signale durch den Eingangszwischenspeicher zwischengespeichert. Die Zustandsmaschine 270 negiert das RD DATA LAT Lesedatenzwischenspeichersignal in Antwort auf das aus gegebene RDY Bereitsignal, wenn das ERR Fehlersignal negiert ist, und gibt das CLR RD FLAGS Löschen-Lesen-Zeichen-Signal aus. In Antwort auf das ausgegebene CLR RD REQ Signal negiert die Steuerlogik 276 das RD REQ Lesenachfragesignal.
  • Andererseits, wenn das CACHE ACC Cache-Verarbeitbar- Zugriffssignal ausgegeben ist, wird eine Leseoperation wie obenstehend beschrieben durchgeführt. Wenn das CCTL Cache- Steuersignal nicht ausgegeben ist, wenn die Daten im Eingangsdatenzwischenspeicher zwischengespeichert sind, wird eine zweite Operation auch durchgeführt. Wenn andererseits das CCTL Cache-Steuersignal ausgegeben ist, was anzeigt, daß die andere Einheit, die an der Übertragung beteiligt ist, ein Cache-Verarbeiten der Daten ausschließt, wird die zweite Operation nicht durchgeführt.
  • Die Zustandsmaschine 271 verwendet das INH DNA Sperr-Direktspeicherzugriffssignal, um die Zustandsmaschine 270 dafür zu sperren, das DMG Direktspeichergewährungssignal in Antwort auf den Empfang eines DMR Direktspeichernachfragesignals von anderen Einheiten auszugeben. Das INH DNA Sperr-Direktspeicherzugriffssignal wird während bestimmter Übertragungen mit dem Gleitkommaprozessor 31 (Fig. 1A) ausgegeben.
  • Das RD BRDCST Lesen-Broadcast-Signal und das BASIC BRDCST grundlegende Broadcast-Signal von der Steuerschaltung 40 geben die Zustandsmaschine 271 dafür frei, Gleitkommaoperanden-Informationen vom Cache 35 oder von den Registern 255 in dem Datenweg 36 (siehe Fig. 1B) zu übertragen. Die Steuerlogik 276 wird auch dafür freigegeben, die BRDCST REQ Broadcast- Nachfragesignale freizugeben, um wiederum die Zustandsmaschine 270 dafür freizugeben, diese Informationen, wie zuvor beschrieben, zu übertragen. Die Zustandsmaschine 271 gibt auch die Steuerlogik 273 dafür frei, ein Zeichen zu setzen, das ein FPP PND Gleitkommaprozessor-Anhängig-Signal ausgibt. Die Zustandsmaschine 271 gibt ein SIG FPP Signal- Gleitkommaprozessorsignal aus, um der FPP Schnittstellenschaltung 272 anzuzeigen, daß sie bereit dazu ist, die Ergebnisse der Gleitkommaoperation von dem Gleitkommaprozessor 31 zu empfangen. Wenn die Zustandscodes bereit sind, wie obenstehend beschrieben wurde, gibt die Schnittstellenschaltung 272 ein CP OK Signal aus, und wenn die resultierenden Daten bereit sind, gibt sie ein CP RDY Bereitsignal aus. In Antwort auf das CP RDY Bereitsignal gibt die Zustandsmaschine 271 die Zustandsmaschine 270 dafür frei, die sich ergebenden Daten zu empfangen. Wenn der Gleitkommaprozessor 31 einen Fehler signalisiert, gibt die Schnittstellenschaltung 272 ein CP ERR Fehlersignal aus. In Antwort auf das CP OK Signal, das CP RDY Signal oder das CP ERR Signal gibt die Zustandsmaschine 271 das Zeichen dafür frei, das das FPP PND Gleitkommaprozessor-Anhängig-Signal steuert, rückgesetzt zu werden, wodurch das Signal negiert wird.
  • Die Busschnittstellenschaltung 33 stellt eine Anzahl von Vorteilen zur Verfügung. Erstens vereinfacht die Verwendung von zwei Zustandsmaschinen 270 und 271, von denen jede unterschiedliche Operationen steuert und jede durch Zeichen kommuniziert, die Schaltung erheblich.
  • Des weiteren gibt die Zustandsmaschine 271 das Auffrischen des Cache 35 frei, wodurch die Verwendung dynamischer Speicherelemente im Cache erlaubt wird. Dies reduziert die physikalische Größe des Cache oder erleichtert es alternativerweise, mehr Cache-Speicher auf der gleichen Fläche vorzusehen, als es in der Vergangenheit der Fall gewesen ist.
  • Des weiteren ist es verständlich, daß die Busschnittstellenschaltung 33 beim Auslesen cache-verarbeitbarer Daten zuerst die Daten ausliest, die für das Programm erforderlich sind, und dann die anderen Daten und dann das andere Wort zur Speicherung in dem Cache-Eintrag ausliest. In bekannten Systemen wurden die Datenwörter in der Reihenfolge ausgelesen, in der sie im Speicher gespeichert wurden und somit konnte das erste Datenwort nicht das gewesen sein, welches unmittelbar vom Programm benötigt wurde. Dies verzögerte die Fortsetzung der Verarbeitung, bis das zweite Wort ausgelesen war.
  • Zudem erlaubt die Schnittstellenschaltung 33, daß Leseoperationen in dem Maße initiiert werden, daß eine Leseadresse erzeugt wird und in dem Leseadreßzwischenspeicher 252 zwischengespeichert wird, während eine Schreiboperation anhängig ist. Die Leseoperation wird nicht abgeschlossen, bis die anhängige Schreiboperation abgeschlossen ist, aber, wenn die Schreiboperation abgeschlossen worden ist, kann die Leseadresse unmittelbar gesendet werden.
  • Schließlich erlaubt die Busschnittstellenschaltung auch, daß Cache-Einträge ungültig gemacht werden, und zwar durch eine Direktspeicherzugriffs-Operation, die durch andere Einheiten in dem System, das in Fig. 1A dargestellt ist, durchgeführt wird, unabhängig davon, ob Lese- oder Schreiboperationen im Prozessor 30 gesetzt wurden. D.h., daß die Cache-Eintrag-Ungültigmachungs-Operation in Antwort auf eine DNA Adresse stattfinden kann, die im Eingangszwischenspeicher 254 empfangen wird, während Schreibdaten und eine Schreibadresse in den entsprechenden Zwischenspeichern 251 bzw. 250 gespeichert sind (Fig. 1B) und eine Leseadresse im Zwischenspeicher 252 gespeichert ist. Dies vereinfacht den Ungültigmachungsprozeß.

Claims (5)

1. Prozessor zur Verwendung in einem digitalen Datenverarbeitungssystem, der aufweist:
A. eine Steuereinrichtung (40) zum Erzeugen einer Serie von Mikrobefehlen in Antwort auf einen Programmbefehl;
B. eine Arithmetik- und Logikeinrichtung (83) mit Eingangsanschlüssen (AIN, BIN) zum Empfangen von Eingangsdatensignalen, mit einem Ausgangsanschluß (WOUT) zum Senden verarbeiteter Datensignale und mit einem Steueranschluß zum Empfangen von Operations-Steuerworten (ALU CTRL) zum Durchführen ausgewählter Operationen mit den Eingangsdatensignalen an den Eingangsanschlüssen (AIN, BIN), um verarbeitete Datensignale an dem Ausgangsanschluß (WOUT) in Antwort auf die Operations-Steuerworte an dem Steueranschluß zu erzeugen, dadurch gekennzeichnet, daß der Prozessor aufweist:
C. eine Steuerwort-Erzeugungseinrichtung (85), die mit der Steuereinrichtung (40) verbunden ist, zum Erzeugen von Steuerworten (ALU CTRL CODE) in Antwort auf die Erzeugung von Operations-Auswahlsignalen (ALU OP SEL) von vorgegebenen Mikrobefehlen der Mikrobefehle durch die Steuereinrichtung;
D. eine Steuerwort-Auswahleinrichtung (86,87,88), die mit der Steuerwort-Erzeugungseinrichtung (85) und mit dem Steueranschluß der Arithmetik- und Logikeinrichtung (83) verbunden ist, zum selektiven Koppeln entweder des vorgegebenen Steuerwortes (PRESET CTRL CODE) oder des Steuerwortes von der Steuerwort-Erzeugungseinrichtung (85) mit dem Steueranschluß als Operations- Steuerwort in Antwort auf verarbeitete Datensignale an dem Ausgangsanschluß.
2. Prozessor, wie in Anspruch 1 definiert, dadurch gekennzeichnet, daß die Steuerwort-Auswahleinrichtung aufweist:
A. eine Multiplexer-Einrichtung (88) zum selektiven Koppeln entweder des vorgegebenen Steuerwortes oder des Steuerwortes von der Steuerwort-Erzeugungseinrichtung (85) mit dem Steueranschluß als Operations-Steuerwort (ALU CTRL) in Antwort auf ein Multiplexer-Steuersignal (MUX SEL);
B. eine Multiplexer-Steuereinrichtung (86, 87) zum Erzeugen des Multiplexer-Steuersignals in Antwort auf die Operations-Auswahlsignale und die verarbeiteten Datensignale an dem Ausgangsanschluß
3. Prozessor, wie in Anspruch 2 definiert, dadurch gekennzeichnet, daß die Multiplexer-Steuereinrichtung aufweist:
A. eine Decodierer-Einrichtung (86) zum Erzeugen von Programmbefehl-Identifikationssignalen (MUL DIV) in Antwort auf Operations-Auswahl-Signale von vorgegebenen Mikrobefehlen der Mikrobefehle; und
B. eine Multiplexer-Steuerschaltungs-Einrichtung (87) zum Erzeugen eines Multiplexer-Steuersignals in Antwort auf die Programmbefehl-Identifikationssignale (MUL DIV) und die verarbeiteten Datensignale.
4. Prozessor zur Verwendung in einem digitalen Verarbeitungssystem, wie in Anspruch 1 beansprucht, dadurch gekennzeichnet, daß:
A. die Steuereinrichtung (40) in einer Vielzahl von hintereinanderfolgenden Verarbeitungszyklen die Serie von Mikrobefehlen in Antwort auf den Programmbefehl erzeugt;
B. die Steuerwort-Erzeugungseinrichtung (85) die alternierenden Steuerworte während zumindest einigen der Verarbeitungszyklen erzeugt;
C. die Arithmetik- und Logikeinrichtung (83) während jedes Verarbeitungszyklus die ausgewählten Operationen mit den Eingangsdaten-Signalen durchführt; und
D. die Steuerwort-Auswahleinrichtung (86, 87, 88) selektiv während jedes Verarbeitungszyklus entweder das vorgegebene Steuerwort oder das Steuerwort von der Steuerwort-Erzeugungseinrichtung (85) mit dem Steueranschluß als Operationssteuerworte in Antwort auf verarbeitete Datensignale an dem Ausgangsanschluß koppelt.
5. Prozessor, wie in Anspruch 4 definiert, dadurch gekennzeichnet, daß die Multiplexer-Steuereinrichtung (87) das Multiplexer-Steuersignal während jedes Verarbeitungszyklus erzeugt.
DE19883882298 1987-02-24 1988-02-05 Schaltung zur steuersignalerzeugung für eine arithmetische logische einheit in einem digitalverarbeitungsgerät. Expired - Fee Related DE3882298T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US1837787A 1987-02-24 1987-02-24

Publications (2)

Publication Number Publication Date
DE3882298D1 DE3882298D1 (de) 1993-08-19
DE3882298T2 true DE3882298T2 (de) 1994-02-24

Family

ID=21787603

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19883882298 Expired - Fee Related DE3882298T2 (de) 1987-02-24 1988-02-05 Schaltung zur steuersignalerzeugung für eine arithmetische logische einheit in einem digitalverarbeitungsgerät.

Country Status (5)

Country Link
EP (1) EP0302926B1 (de)
JP (1) JPH061440B2 (de)
CA (1) CA1305557C (de)
DE (1) DE3882298T2 (de)
WO (1) WO1988006759A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0388735A3 (de) * 1989-03-10 1993-01-13 Nec Corporation Mikroprogrammsteuerung mit Generator für feste Befehle und Mikroprogrammspeicher

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS538034A (en) * 1976-06-30 1978-01-25 Toshiba Corp Electronic computer
JPS5730196A (en) * 1980-07-29 1982-02-18 Nec Corp Information processor
JPS5947649A (ja) * 1982-09-13 1984-03-17 Hitachi Ltd デ−タ処理装置
JPS60207929A (ja) * 1984-03-31 1985-10-19 Fujitsu Ltd 除算制御方式
EP0215028A4 (de) * 1985-02-20 1987-07-23 Magellan Corp Australia Mikroprogrammsteuergerät.

Also Published As

Publication number Publication date
EP0302926A1 (de) 1989-02-15
WO1988006759A1 (en) 1988-09-07
DE3882298D1 (de) 1993-08-19
JPH01502622A (ja) 1989-09-07
CA1305557C (en) 1992-07-21
JPH061440B2 (ja) 1994-01-05
EP0302926B1 (de) 1993-07-14

Similar Documents

Publication Publication Date Title
DE3751426T2 (de) Busschnittstellenschaltung für digitalen Datenprozessor.
DE3854369T2 (de) Zentralprozessoreinheit für digitale datenverarbeitungsanordnung mit cache-speicherverwaltungsvorrichtung.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE68917326T2 (de) Organisation eines integrierten Cachespeichers zur flexiblen Anwendung zur Unterstützung von Multiprozessor-Operationen.
DE69031367T2 (de) Blockübertragungs- und Koprozessorschnittstellenbefehl
DE3688192T2 (de) Seitenorganisierter cachespeicher mit virtueller adressierung.
DE3750107T2 (de) Cachespeicherkohärenzsteuerung mit einem Speicher, der ein laufendes Lesen anzeigt.
DE69031433T2 (de) Speicherzugriffsausnahmebehandlung bei vorausgelesenen Befehlswörtern in dem Befehlsfliessband eines Rechners mit virtuellem Speicher
DE68926059T2 (de) Organisation einer integrierten Cache-Einheit zur flexiblen Verwendung beim Entwurf von Cache-Systemen
DE69332663T2 (de) Datenprozessor mit einem Cachespeicher
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE3486161T2 (de) Datenverarbeitungssystem mit Datenkohärenz.
DE68926385T2 (de) Methode und Hardware-Ausführung von komplexen Datentransferbefehlen
DE3851746T2 (de) Sprungvorhersage.
DE68928519T2 (de) Verfahren und Vorrichtung zur Vorhersage der richtigen Durchführung der Übersetzungen von virtuellen in physikalische Adressen
US4851991A (en) Central processor unit for digital data processing system including write buffer management mechanism
DE3587031T2 (de) Zugriffpruefungseinrichtung fuer digitale datenverarbeitungsanordnung, welche einen speicher mit seitenabruf hat.
US5091845A (en) System for controlling the storage of information in a cache memory
US5119484A (en) Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
DE68926761T2 (de) Mehrprozessorsystem mit einem mehranschlüssigen Cachespeicher
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
DE3932695A1 (de) Datenverarbeitungssystem vom mehrfach virtuellen adressraum-typ
DE3854770T2 (de) Busadapter für digitales Rechensystem
DE3740834A1 (de) Aufrechterhaltung der kohaerenz zwischen einem mikroprozessorenintegrierten cache-speicher und einem externen speicher

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee